written 6.2 years ago by |
Video on demand (display) (VOD) are systems which allow users to select and watch/listen to video or audio content when they choose to, rather than having to watch at a specific broadcast time.
Television VOD systems can either stream content through a set-top box, a computer or other device, allowing viewing in real time, or download it to a device such as a computer, digital video recorder (also called a personal video recorder) or portable media player for viewing at any time.
Different Broadcasting schemes of video on Demand are as follows:
Staggered Broadcasting
Staggered Broadcast (SB) is a simple periodic broadcast technique. It works as follows. Without loss of generality, we focus on a single video.
This video is partitioned into K equally sized segments {s1, s2, ..., sK}. The duration of each segment is s = V /K, where V is the duration of the entire video.
Given the video consumption rate r (bps), we allocate a server bandwidth of r × K for the video2 . This bandwidth is divided into K equal channels, each repeatedly broadcasting the video with a transmission rate equal to the consumption rate.
Harmonic Broadcasting
Similar to SB, Harmonic Broadcasting (HB) divides each video into K equally sized segments {s1, s2, ..., sK}. The server bandwidth for a video is also divided into K channels, however with different bandwidth allocation.
Specifically, each segment si is broadcast repeatedly on channel i at rate r/i (bps), hence the name “Harmonic”. As such, it takes longer to download a later segment than a previous segment.
At the client side, it has to tune in all K channels and receive the data for all the K segments. The client starts the playback as soon as it can download the first segment. Before that, all the received segments are stored in the client cache.
The cache space required can be up to 40% of the video. The good thing is that, because of the Harmonic rate allocation, it is guaranteed that by the time a segment is finished playing, the next segment is either in the cache or readily available from its broadcast channel.
Fast Broadcasting
SB broadcast all segments of each video on every channel.
HB broadcast each segment on a different channel. Unlike these two strategies, Fast Broadcasting (FB) allows to broadcast more than one segment on each channel. FB divides each video into n equally-sized segment.
The server bandwidth for a video is also divided into K equal-rate channels as in SB.
The broadcast schedule at the server is as follows:
- Channel 1 broadcasts segment s1 repeatedly
- Channel 2 broadcasts 2 segments, s2 and s3, repeatedly one after another • Channel 3 broadcasts 4 segments, s4, s5, s6, s7 repeatedly one after another
- Channel i (i > 3) broadcasts 2 i−1 segments s2 i−1 , s2 i−1+1, ..., s2 i−1 repeatedly one after another
Pagoda Broadcasting
Similar to FB, Pagoda Broadcasting (PaB) allows to broadcast more than one segment on each channel. PaB differs from FB in the selection of segments to broadcast on each channel. PaB divides each video into n equally-sized segment.
The server bandwidth for a video is also divided into K equal-rate channels. Each channel is logically divided into time-slots, each for a duration of a segment. The time-slots are indexed as slot0, slot1, slot2, ... At the server side, channel 1 broadcasts s1 repeatedly {s1, s1, ...}.
Pyramid Broadcasting
All the aforementioned broadcasting techniques partition each video into segment of equal size. On the contrary, Pyramid Broadcast (PyB) partitions each video into K segments of increasing sizes: (hence, the name “pyramid”).
si = V(α-1)/(αk -1) , if i=1
s1 * αi – 1
,
otherwise
Algorithm
- Tune in channel 1 and start download the first segment s1 at the first occurrence and play it concurrently
Set i = 1
While (i ≤ K)
As soon as segment si is started to be played, also tune in channel i + 1 to download segment si+1 at the earliest possible time and store it into a buffer
Once finishing playing segment si , switch to play segment s2 from the buffer
Set i := i + 14
End While
Permutation-based Broadcasting
Permutation-based Broadcasting (PbP) is an extension to PyB in an attempt to reduce the client cache space requirement, however at a cost of more complexity.
In PyB, each segment is broadcast sequentially on its corresponding channel. In PbP, each channel is further divided into P sub channels with B KP (bps) each.
A replica of segment si is repeatedly broadcast on each of the P sub channels of channel i with a phase delay of si/P seconds. Since the sub channels are time-multiplxed on their parent channel, the client cache space required is less.
Skyscraper Broadcasting
Similar to PyB, Skyscraper Broadcasting (SkB) also divides the server bandwidth for each video into K channels, each of rate B/K and broadcasting repeatedly a segment of the video.
However, unlike PyB, SkB decomposes the video into K segments of the following sizes
si = s1, i = 1
2s1, i = 2, 3
2si−1 + 1, i mod 4 = 0
si−1, i mod 4 = 1
si−1 + 2, i mod 4 = 2
si−1, i mod 4 = 3
That is, the sizes of the segments are
[1, 2, 2, 5, 5, 12, 12, 25, 25, 52, 52, ...] × s1
The technique is called “Skyscraper” because of this segment sizing3 . SkB uses a control value W to restrict the segments from being too large.