CN109121020B - Dynamic cache scheduling method, device and storage device for SVC-DASH on-demand system - Google Patents
Dynamic cache scheduling method, device and storage device for SVC-DASH on-demand system Download PDFInfo
- Publication number
- CN109121020B CN109121020B CN201811063602.6A CN201811063602A CN109121020B CN 109121020 B CN109121020 B CN 109121020B CN 201811063602 A CN201811063602 A CN 201811063602A CN 109121020 B CN109121020 B CN 109121020B
- Authority
- CN
- China
- Prior art keywords
- video
- layer
- bmax
- cache
- buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 239000012634 fragment Substances 0.000 claims abstract description 39
- 239000000872 buffer Substances 0.000 claims description 82
- 230000006872 improvement Effects 0.000 abstract description 5
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000000694 effects Effects 0.000 abstract description 3
- 230000002411 adverse Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2401—Monitoring of the client buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26216—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4335—Housekeeping operations, e.g. prioritizing content for deletion because of storage space restrictions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
The invention provides a dynamic cache scheduling method, equipment and storage equipment for an SVC-DASH on-demand system, wherein the method comprises the following steps: the fragments are transversely stacked in the dynamic cache space, so that a better on-demand effect is realized, and the adverse effect of frequent fluctuation of network quality in a heterogeneous network on the viewing experience of a user is solved; the model of fragment retrieval by layer is adopted, the smoothness and the stability of video playing are improved, a dynamic cache mechanism is added, the speed of improving the video quality is increased, and the stability of the video quality is further improved by increasing the fault tolerance of scheduling and the utilization rate of bandwidth. The dynamic cache scheduling device and the storage device for the SVC-DASH on-demand system are used for realizing the dynamic cache scheduling method for the SVC-DASH on-demand system. The invention has the beneficial effects that: compared with the existing SVC-DASH scheduling method, the technical scheme of the invention has better performance in the aspects of quality improvement speed, quality average level, video playing fluency and playing quality smoothness.
Description
Technical Field
The invention relates to the field of audio and video application, in particular to a dynamic cache scheduling method, device and storage device for an SVC-DASH on-demand system.
Background
Today, the distribution and transmission of network content is growing dramatically, with video content occupying a large proportion. By cisco vni (cisco vni) it was predicted that by 2021 annual global IP traffic will reach 3.3ZB, while video traffic will account for 82% of the world's dominance. In terms of video transmission, in the face of heterogeneity of terminals and networks, we need to provide different quality videos for different devices and varying networks. HTTP Adaptive Streaming (HAS) technology comes along, a client can select video fragments with different qualities according to its own condition, and DASH, as a member of HAS, HAS developed into the most advanced video streaming technology today by virtue of its many advantages. Meanwhile, since h.264/SVC (scalable video coding) can greatly save server storage space and possess more flexible regulation modes, more and more SVC-DASH schemes have been proposed in recent years.
However, some problems still exist, such as frequent video quality switching and even video interruption, which may occur in a network environment with frequent fluctuation, and the viewing experience of the user is seriously affected. Existing SVC-DASH solutions mostly adjust the video quality by bandwidth prediction or simple lateral stacking. The invention provides a dynamic cache scheduling method based on SVC-DASH. Thereby dealing with the negative impact of frequent jittering of the bandwidth on the video quality, while further improving on the deficiencies of the existing SVC-DASH solutions.
Disclosure of Invention
In order to solve the above problems, the present invention provides a dynamic cache scheduling method, device and storage device for an SVC-DASH on-demand system, and the dynamic cache scheduling method for the SVC-DASH on-demand system mainly includes the following steps:
s101: acquiring a video source with an SVC format, and uniformly separating the video source into n video fragments; uniformly separating each video fragment into m video blocks according to the quality level of the video source, stacking the m video blocks of each video fragment into m layers, and storing all the video blocks in a server; each video block corresponds to a slice number i and a layer sequence number j; wherein m and n are integers greater than or equal to 1; the value range of i is [1, n ], and the value range of j is [1, m ]; initializing the values of i and j to be 1;
s102: initializing buffer area parameters: setting the variation range of the height Lmax of the cache region as [1, m ], setting the variation range of the length Bmax of the cache region as [ min, max ], wherein the cache area of the cache region is a rectangular region with the length Bmax and the height Lmax; initializing the value of Lmax to be m and the value of Bmax to be max; dividing the buffer area into Lmax Bmax storage blocks, wherein the storage blocks are arranged according to the coordinates [1,1], [1,2] … [1, Bmax ], [2,1] … [2, Bmax ] … [ Lmax, Bmax ] in sequence and are used for storing the video blocks;
s103: downloading the video block with the fragment number i and the layer number j to a first empty storage block,
s104: after the video block is downloaded, updating cache state data and average network bandwidth avgBW of a cache region; the cache state data comprises the download number of each layer of video block in the cache region and the slice number of the latest downloaded video block in the cache region;
s105: adjusting the height Lmax of the cache area according to the average bandwidth avgBW;
s106: adjusting the length Bmax of the buffer area according to the buffer state data;
s107: judging whether the downloading is finished or the video client is closed; if yes, go to step S109; if not, go to step S108;
s108: traversing all the storage blocks of the cache region, searching a first empty storage block, and determining a fragment number i and a layer sequence number j of a next downloaded video block according to cache state data of the cache region; returning to step S103;
s109: and finishing the caching program to finish the dynamic caching scheduling.
Further, in step S105, the specific step of adjusting the cache height Lmax according to the average network bandwidth avgBW includes:
s201: judging whether the average network bandwidth avgBW is more than or equal to the code rate Q of the k-1 layer videok-1(ii) a If yes, cachingThe value of the zone height Lmax is k; if not, go to step S202; wherein k is an integer and has a value range of [1, m]And the initial value of k takes the maximum value m;
s202: updating k to k-1, and judging whether k is 1 or not; if so, the value of the height Lmax of the cache region is 1; if not, returning to the step S201;
further, in step S106, the specific step of adjusting the buffer length Bmax according to the buffer status data includes:
s301: judgment condition Bmax>buf fer_len1Not less than min and buf fer _ lenLmax<buf fer_len1Whether the two are true at the same time; if yes, updating Bmax to Bmax-1; if not, go to step S302; wherein buf fer _ len1Is the download number of the layer 1 video block in the buffer, buf fer _ lenLmaxThe number of the downloaded video blocks of the highest layer of the cache area is the number of the downloaded video blocks of the highest layer of the cache area;
s302: judgment condition Bmax ═ buf fer _ len1<max and buf fer _ lenmax=buf fer_len1Whether the two are true at the same time; if yes, updating Bmax to Bmax + 1; if not, the Bmax value is not changed.
Further, in step S108, the specific step of adjusting the slice number i and the layer sequence number j corresponding to the next downloaded video block according to the buffer height Lmax, the buffer length Bmax, and the buffer status includes:
s401: judging whether the cache region has the layers of the residual storage blocks, starting to judge from the first layer of the cache region, and making the number p of judging layers equal to 1;
s402: judging whether p is less than or equal to Lmax; if yes, go to step S403; if not, go to step S406;
s403: judging whether a p-th layer in a cache region has a vacant storage block; if yes, go to step S405; if not, go to step S404;
s404: updating p to p +1, and returning to the step S402;
s405: assigning the layer serial number j as p, and judging whether the p layer has a video block; if yes, i is equal to the slice number of the latest downloaded video block of the p-th layer plus 1; if not, i is equal to the first fragment number of the layer 1 of the cache region;
s406: judging whether the slice number of the last video block of the first layer of the cache region is n; if yes, ending the downloading; if not, go to step S407;
s407: suspending the downloading thread, setting i as the next number of the last fragment number of the layer 1 of the cache region, and setting the sequence number j as 1; circularly judging whether the buffer area has vacant storage blocks, and continuing downloading once the vacant storage blocks appear; and when the video fragments are cached, the decoding playing thread continuously takes out the video fragments from the cache region to the client side for decoding playing, and when one video fragment is taken out, the rest video fragments in the cache region move forwards in sequence.
A storage device storing instructions and data for implementing a dynamic cache scheduling method for an SVC-DASH on-demand system.
A dynamic cache scheduling device for SVC-DASH on-demand system, comprising: a processor and the storage device; the processor loads and executes the instructions and data in the storage device for implementing a dynamic cache scheduling method for an SVC-DASH on-demand system.
The technical scheme provided by the invention has the beneficial effects that: compared with the existing SVC-DASH scheduling method, the technical scheme of the invention has better performance in the aspects of quality improvement speed, quality average level, video playing fluency and playing quality smoothness.
Drawings
The invention will be further described with reference to the accompanying drawings and examples, in which:
fig. 1 is a flowchart of a dynamic cache scheduling method for an SVC-DASH on-demand system in an embodiment of the present invention;
FIG. 2 is a diagram illustrating a video buffer model according to an embodiment of the present invention;
fig. 3 is a detailed flowchart of a dynamic cache scheduling method for an SVC-DASH on-demand system in an embodiment of the present invention;
FIG. 4 is a diagram of a video buffer model 1 according to an embodiment of the present invention;
FIG. 5 is a diagram of a video buffer model 2 according to an embodiment of the present invention;
FIG. 6 is a diagram of a video buffer model 3 according to an embodiment of the present invention;
FIG. 7 is a diagram of a video buffer model 4 according to an embodiment of the present invention;
FIG. 8 is a diagram of a video buffer model 5 according to an embodiment of the present invention;
fig. 9 is a schematic diagram of the operation of the hardware device in the embodiment of the present invention.
Detailed Description
For a more clear understanding of the technical features, objects and effects of the present invention, embodiments of the present invention will now be described in detail with reference to the accompanying drawings.
Embodiments of the present invention provide a dynamic cache scheduling method, device and storage device for an SVC-DASH on-demand system, which are used in the video buffer model shown in fig. 2.
Referring to fig. 1, fig. 1 is a flowchart of a dynamic cache scheduling method for an SVC-DASH on-demand system in an embodiment of the present invention, which specifically includes the following steps:
s101: acquiring a video source with an SVC format, and uniformly separating the video source into n video fragments; uniformly separating each video fragment into m video blocks according to the quality level of the video source, stacking the m video blocks of each video fragment into m layers, and storing all the video blocks in a server; each video block corresponds to a slice number i and a layer sequence number j; wherein m and n are integers greater than or equal to 1; the value range of i is [1, n ], and the value range of j is [1, m ]; initializing the values of i and j to be 1;
s102: initializing buffer area parameters: setting the variation range of the height Lmax of the cache region as [1, m ], setting the variation range of the length Bmax of the cache region as [ min, max ], wherein the cache area of the cache region is a rectangular region with the length Bmax and the height Lmax; initializing the value of Lmax to be m and the value of Bmax to be max; dividing the buffer area into Lmax Bmax storage blocks, wherein the storage blocks are arranged according to the coordinates [1,1], [1,2] … [1, Bmax ], [2,1] … [2, Bmax ] … [ Lmax, Bmax ] in sequence and are used for storing the video blocks; wherein [1,1], [2,1] … [ Bmax,1] is a first layer of a cache region, [1,2], [2,2] … [ Bmax,2] is a second layer of the cache region, [1, j ], [2, j ] … [ Bmax, j ] is a jth layer of the cache region, and [1, Lmax ], [2, Lmax ] … [ Bmax, Lmax ] is a ltax layer of the cache region;
s103: downloading the video block with the fragment number i and the layer number j to a first empty storage block,
s104: after the video block is downloaded, updating cache state data and average network bandwidth avgBW of a cache region; the cache state data comprises the download number of each layer of video block in the cache region and the slice number of the latest downloaded video block in the cache region;
s105: adjusting the height Lmax of the cache area according to the average bandwidth avgBW;
s106: adjusting the length Bmax of the buffer area according to the buffer state data;
s107: judging whether the downloading is finished or the video client is closed; if yes, go to step S109; if not, go to step S108;
s108: traversing all the storage blocks of the cache region, searching a first empty storage block, and determining a fragment number i and a layer sequence number j of a next downloaded video block according to cache state data of the cache region; returning to step S103;
s109: and finishing the caching program to finish the dynamic caching scheduling.
In step S105, the specific step of adjusting the height Lmax of the buffer area according to the average network bandwidth avgBW is as follows:
s201: judging whether the average network bandwidth avgBW is more than or equal to the code rate Q of the k-1 layer videok-1(ii) a If so, the value of the height Lmax of the cache region is k; if not, go to step S202; wherein k is an integer and has a value range of [1, m]And the initial value of k takes the maximum value m;
s202: updating k to k-1, and judging whether k is 1 or not; if so, the value of the height Lmax of the cache region is 1; if not, returning to the step S201;
in step S106, the specific step of adjusting the buffer length Bmax according to the buffer status data is:
s301: judgment condition Bmax>buf fer_len1Not less than min and buf fer _ lenLmax<buf fer_len1Whether or not to simultaneously establish(ii) a If yes, updating Bmax to Bmax-1; if not, go to step S302; wherein buf fer _ len1Is the download number of the layer 1 video block in the buffer, buf fer _ lenLmaxThe number of the downloaded video blocks of the highest layer of the cache area is the number of the downloaded video blocks of the highest layer of the cache area;
s302: judgment condition Bmax ═ buf fer _ len1<max and buf fer _ lenLmax=buf fer_len1Whether the two are true at the same time; if yes, updating Bmax to Bmax + 1; if not, the Bmax value is not changed.
In step S108, the step of determining the slice number i and the layer sequence number j of the next downloaded video block according to the first empty storage block is as follows:
s401: judging whether the cache region has the layers of the residual storage blocks, starting to judge from the first layer of the cache region, and making the number p of judging layers equal to 1;
s402: judging whether p is less than or equal to Lmax; if yes, go to step S403; if not, go to step S406;
s403: judging whether a p-th layer in a cache region has a vacant storage block; if yes, go to step S405; if not, go to step S404;
s404: updating p to p +1, and returning to the step S402;
s405: assigning the layer serial number j as p, and judging whether the p layer has a video block; if yes, i is equal to the slice number of the latest downloaded video block of the p-th layer plus 1; if not, i is equal to the first fragment number of the layer 1 of the cache region;
s406: judging whether the slice number of the last video block of the first layer of the cache region is n; if yes, ending the downloading; if not, go to step S407;
s407: suspending the downloading thread, setting i as the next number of the last fragment number of the layer 1 of the cache region, and setting the sequence number j as 1; circularly judging whether the buffer area has vacant storage blocks, and continuing downloading once the vacant storage blocks appear; and when the video fragments are cached, the decoding playing thread continuously takes out the video fragments from the cache region to the client side for decoding playing, and when one video fragment is taken out, the rest video fragments in the cache region move forwards in sequence.
Fig. 3 is a detailed flowchart of a dynamic cache scheduling method for an SVC-DASH on-demand system in an embodiment of the present invention, which shows an implementation flow of the entire dynamic cache scheduling method, and the explanation of variables corresponding to fig. 3 is shown in table 1:
table 1 variables table 1
i(1~n) | Video block slice number |
j(1~m) | Video block layer sequence number |
Lmax(1~m) | Buffer height |
Bmax(min~max) | Buffer length |
Qk(1<=k<=m) | Code rate of k-th layer video |
buffer_lenp(1<=p<=m) | Number of downloaded p-th layer video blocks in cache region |
last_idq(1<=q<=n) | Cache area q-th layer latest video fragment number |
avgBW | Average network bandwidth |
The basic idea is as follows: downloading from the base layer (layer 1 of the buffer area) backwards in sequence, and filling the first enhancement layer (layer 2 of the buffer area) when the filling of the base layers of all the video fragments in the buffer is finished, and so on, and along with the stacking of the enhancement layers, the video quality is continuously improved until the highest level of the video quality is reached. At the same time, the maximum level of stacking in the cache (cache height) is limited according to recent bandwidth. When the buffer area has empty columns (corresponding to video slices) and there are still unfilled upper-layer slices, if the buffer length is not at the minimum, the buffer is shortened, as shown in fig. 4. When the buffer is full and the buffer length does not reach the maximum value, the buffer is lengthened, as shown in fig. 5. The variables in each figure have the meanings shown in table 2.
Table 2 variables table 2
Seg id | Buffer memory partition number |
Layer id | Buffer layer sequence number |
Bmax | Buffer length |
Lmax | Buffer height |
Dynamic Area | Dynamic range of variation |
Decoding | Decoding playing area |
Buffering | Buffer area |
Through the mode of stacking in order, can effectively reduce the phenomenon of the card pause, reduce the quality switching frequency by a wide margin simultaneously. In addition, due to the introduction of dynamic caching and hierarchy constraints, the method (LSDC) of the present invention has advantages over the pure stack (WQUAD) mainly in two points:
(1) quickly improve quality
t0 indicates the start of the download, when the buffer is empty, tp indicates the p-th slice duration after the start of the download thread, and the number in the video block indicates that it is downloaded in the p-th slice duration. Assume that the bandwidth is 4 video blocks/slice duration thereafter. In WQUAD, the buffer length remains unchanged (15), in LSDC the buffer length is compressed from 15 at t1 to 5 at t4, and then restored to 15 at t37 for 33 fragmentation durations. As can be seen from fig. 6, WQUAD is upgraded to the highest level in quality at the 13 th slice, and upgraded to the highest level at the 4 th slice in LSDC. This is because in LSDC, the buffer length is adaptively adjusted every time a video block is downloaded, and the buffer upper layer is filled in advance by compressing the buffer length in the previous period, so as to quickly improve the quality (when the video block of the first layer of a video slice is downloaded, the video slice can be played, and the more the video block of a video slice is downloaded, the higher the video playing quality of the video slice is), the buffer length is slowly increased after the buffer is filled, and the maximum length is recovered after the 37 th slice duration. The WQUAD reaches saturation before the 37 th fragment duration, and the redundant bandwidth is wasted later, which is equivalent to that the quality of the redundant bandwidth in the later stage of pre-branching is improved in advance.
(2) Improving fault tolerance
In the caching process, if the cache area is full at a certain time, it is assumed that t0 is at this time. The network fluctuates and the bandwidth decreases to 2 video block/slice duration and later increases to 4 video block/slice duration. Fig. 7 is a filling case of the first 15 slice durations, and as can be seen from fig. 7, WQUAD stacks the subsequent slice columns all to the second tier, while LSDC maintains the quality at Lmax by compressing the buffer length. After 15 slicing periods, WQUAD will experience a degradation in quality level while LSDC remains unchanged. At t31, the LSDC buffer length compresses to the limit, losing the throttling power, and begins the same stacking mode as the WQUAD, which corresponds to a compressed version of WQUAD. If the bandwidth then rises back up, the LSDC will gradually expand the buffer length until recovery. As can be seen from fig. 8, if the bandwidth is increased at t31, LSDC fills the high-level video block in the buffer rapidly, then gradually increases the buffer length, and returns the compressed buffer length to t46, and in the process, the buffer length is always maintained at the level of Lmax, while WQUAD has undergone the level decrease of 20 slices, and the quality is increased only at the 21 st playing slice, so that the LSDC effectively avoids the fluctuation of the bandwidth.
Compared with the existing scheduling method, the technical scheme of the invention has good or even better performance in the aspects of quality improvement speed, average video quality, video playing smoothness and stability under four different network environments (stability, gradual change, mutation and jitter).
Referring to fig. 9, fig. 9 is a schematic diagram of a hardware device according to an embodiment of the present invention, where the hardware device specifically includes: a dynamic cache scheduling device 901 for an SVC-DASH on-demand system, a processor 902, and a storage device 903.
Dynamic cache scheduling device 901 for SVC-DASH on-demand system: the dynamic cache scheduling device 901 for the SVC-DASH on-demand system implements the dynamic cache scheduling method for the SVC-DASH on-demand system.
The processor 902: the processor 902 loads and executes the instructions and data in the storage device 903 for implementing the dynamic cache scheduling method for the SVC-DASH on-demand system.
Storage device 903: the storage device 903 stores instructions and data; the storage device 903 is used for implementing the dynamic cache scheduling method for the SVC-DASH on-demand system.
The invention has the beneficial effects that: compared with the existing SVC-DASH scheduling method, the technical scheme of the invention has better performance in the aspects of quality improvement speed, quality average level, video playing fluency and playing quality smoothness.
The above description is only for the purpose of illustrating the preferred embodiments of the present invention and is not to be construed as limiting the invention, and any modifications, equivalents, improvements and the like that fall within the spirit and principle of the present invention are intended to be included therein.
Claims (3)
1. The dynamic cache scheduling method for the SVC-DASH on-demand system is characterized by comprising the following steps: the method comprises the following steps:
s101: acquiring a video source with an SVC format, and uniformly separating the video source into n video fragments; uniformly separating each video fragment into m video blocks according to the quality level of the video source, stacking the m video blocks of each video fragment into m layers, and storing all the video blocks in a server; each video block corresponds to a slice number i and a layer sequence number j; wherein m and n are integers greater than or equal to 1; the value range of i is [1, n ], and the value range of j is [1, m ]; initializing the values of i and j to be 1;
s102: initializing buffer area parameters: setting the variation range of the height Lmax of the cache region as [1, m ], setting the variation range of the length Bmax of the cache region as [ min, max ], wherein the cache area of the cache region is a rectangular region with the length Bmax and the height Lmax; initializing the value of Lmax to be m and the value of Bmax to be max; dividing the buffer area into Lmax Bmax storage blocks, wherein the storage blocks are arranged according to the coordinates [1,1], [1,2] … [1, Bmax ], [2,1] … [2, Bmax ] … [ Lmax, Bmax ] in sequence and are used for storing the video blocks; wherein [1,1], [2,1] … [ Bmax,1] is a first layer of a cache region, [1,2], [2,2] … [ Bmax,2] is a second layer of the cache region, [1, j ], [2, j ] … [ Bmax, j ] is a jth layer of the cache region, and [1, Lmax ], [2, Lmax ] … [ Bmax, Lmax ] is a ltax layer of the cache region;
s103: downloading the video block with the fragment number i and the layer number j to a first empty storage block,
s104: after the video block is downloaded, updating cache state data and average network bandwidth avgBW of a cache region; the cache state data comprises the download number of each layer of video block in the cache region and the slice number of the latest downloaded video block in the cache region;
s105: adjusting the height Lmax of the cache area according to the average bandwidth avgBW;
s106: adjusting the length Bmax of the buffer area according to the buffer state data;
s107: judging whether the downloading is finished or the video client is closed; if yes, go to step S109; if not, go to step S108;
s108: traversing all the storage blocks of the cache region, searching a first empty storage block, and determining a fragment number i and a layer sequence number j of a next downloaded video block according to cache state data of the cache region; returning to step S103;
s109: finishing the caching program to finish dynamic caching scheduling;
in step S105, the specific step of adjusting the cache height Lmax according to the average network bandwidth avgBW is as follows:
s201: judging whether the average network bandwidth avgBW is more than or equal to the code rate Q of the k-1 layer videok-1(ii) a If so, the value of the height Lmax of the cache region is k; if not, go to step S202; wherein k is an integer and has a value range of [1, m]And the initial value of k takes the maximum value m;
s202: updating k to k-1, and judging whether k is 1 or not; if so, the value of the height Lmax of the cache region is 1; if not, returning to the step S201;
in step S106, the specific step of adjusting the buffer length Bmax according to the buffer status data is:
s301: judgment condition Bmax>buffer_len1Not less than min and buffer _ lenLmax<buffer_len1Whether the two are true at the same time; if yes, updating Bmax to Bmax-1; if not, go to step S302; wherein, buffer _ len1Buffer _ len is the download number of the layer 1 video block in the bufferLmaxThe number of the downloaded video blocks of the highest layer of the cache area is the number of the downloaded video blocks of the highest layer of the cache area;
s302: judgment condition Bmax ═ buffer _ len1<max and buffer _ lenLmax=buffer_len1Whether the two are true at the same time; if yes, updating Bmax to Bmax + 1; if not, the Bmax value is not changed;
In step S108, the step of determining the slice number i and the layer sequence number j of the next downloaded video block according to the first empty storage block is:
s401: judging whether the cache region has the layers of the residual storage blocks, starting to judge from the first layer of the cache region, and making the number p of judging layers equal to 1;
s402: judging whether p is less than or equal to Lmax; if yes, go to step S403; if not, go to step S406;
s403: judging whether a p-th layer in a cache region has a vacant storage block; if yes, go to step S405; if not, go to step S404;
s404: updating p to p +1, and returning to the step S402;
s405: assigning the layer serial number j as p, and judging whether the p layer has a video block; if yes, i is equal to the slice number of the latest downloaded video block of the p-th layer plus 1; if not, i is equal to the first fragment number of the layer 1 of the cache region;
s406: judging whether the slice number of the last video block of the first layer of the cache region is n; if yes, ending the downloading; if not, go to step S407;
s407: suspending the downloading thread, setting i as the next number of the last fragment number of the layer 1 of the cache region, and setting the sequence number j as 1; circularly judging whether the buffer area has vacant storage blocks, and continuing downloading once the vacant storage blocks appear; and when the video fragments are cached, the decoding playing thread continuously takes out the video fragments from the cache region to the client side for decoding playing, and when one video fragment is taken out, the rest video fragments in the cache region move forwards in sequence.
2. A storage device, characterized by: the storage device stores instructions and data which, when executed by a processor, implement the dynamic cache scheduling method for an SVC-DASH on-demand system of claim 1.
3. A dynamic buffer scheduling equipment for SVC-DASH on-demand system, characterized in that: the method comprises the following steps: a processor and the storage device of claim 2; the processor loads and executes the instructions and data in the storage device to implement the dynamic cache scheduling method for the SVC-DASH on-demand system of claim 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811063602.6A CN109121020B (en) | 2018-09-12 | 2018-09-12 | Dynamic cache scheduling method, device and storage device for SVC-DASH on-demand system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811063602.6A CN109121020B (en) | 2018-09-12 | 2018-09-12 | Dynamic cache scheduling method, device and storage device for SVC-DASH on-demand system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109121020A CN109121020A (en) | 2019-01-01 |
CN109121020B true CN109121020B (en) | 2020-01-17 |
Family
ID=64859149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811063602.6A Expired - Fee Related CN109121020B (en) | 2018-09-12 | 2018-09-12 | Dynamic cache scheduling method, device and storage device for SVC-DASH on-demand system |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109121020B (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102761776A (en) * | 2012-08-01 | 2012-10-31 | 重庆大学 | Video and audio synchronizing method of P2PVoD (peer-to-peer video on demand) system based on SVC (scalable video coding) |
CN103402136A (en) * | 2013-07-29 | 2013-11-20 | 重庆大学 | Self-adaptive cache adjustment control method and device and self-adaptive player |
WO2014011559A1 (en) * | 2012-07-09 | 2014-01-16 | Qualcomm Incorporated | Smoothing of difference reference picture |
CN103905820A (en) * | 2012-12-28 | 2014-07-02 | 中国科学院声学研究所 | Client side video quality self-adaption method and system based on SVC |
CN104270646A (en) * | 2014-09-22 | 2015-01-07 | 何震宇 | Self-adaption transmission method and system based on mobile streaming media |
CN104811746A (en) * | 2015-03-31 | 2015-07-29 | 康佳集团股份有限公司 | Method and system for achieving integration of SVC (scalable video coding) and DASH (dynamic adaptive streaming over HTTP (hypertext transport protocol)) through multiple connections |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9912941B2 (en) * | 2012-07-02 | 2018-03-06 | Sony Corporation | Video coding system with temporal layers and method of operation thereof |
GB2506911B (en) * | 2012-10-12 | 2015-12-09 | Canon Kk | Method and correponding device for streaming video data |
CN106028057A (en) * | 2016-05-05 | 2016-10-12 | 北京邮电大学 | Caching method for adaptive streaming content of scalable coding in mobile CCN (Content-Centric Network) |
-
2018
- 2018-09-12 CN CN201811063602.6A patent/CN109121020B/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014011559A1 (en) * | 2012-07-09 | 2014-01-16 | Qualcomm Incorporated | Smoothing of difference reference picture |
CN102761776A (en) * | 2012-08-01 | 2012-10-31 | 重庆大学 | Video and audio synchronizing method of P2PVoD (peer-to-peer video on demand) system based on SVC (scalable video coding) |
CN103905820A (en) * | 2012-12-28 | 2014-07-02 | 中国科学院声学研究所 | Client side video quality self-adaption method and system based on SVC |
CN103402136A (en) * | 2013-07-29 | 2013-11-20 | 重庆大学 | Self-adaptive cache adjustment control method and device and self-adaptive player |
CN104270646A (en) * | 2014-09-22 | 2015-01-07 | 何震宇 | Self-adaption transmission method and system based on mobile streaming media |
CN104811746A (en) * | 2015-03-31 | 2015-07-29 | 康佳集团股份有限公司 | Method and system for achieving integration of SVC (scalable video coding) and DASH (dynamic adaptive streaming over HTTP (hypertext transport protocol)) through multiple connections |
Non-Patent Citations (3)
Title |
---|
Rate adaptation algorithm with backward quality increasing property for SVC-DASH;Simge Gizem Ozcan et al.;《2017 IEEE 7th International Conference on Consumer Electronics - Berlin》;20171218;第24-28页 * |
可伸缩视频编码传输速率控制技术研究;朱海波;《中国博士学位论文全文数据库信息科技辑,2014年第5期》;20140515;第1-99页 * |
可伸缩视频编码在移动互联网中的应用与实现;蒋宇浩等;《微电子学与计算机》;20161231;第33卷(第12期);第134-138页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109121020A (en) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10623785B2 (en) | Streaming manifest quality control | |
CN106303704B (en) | DASH (dynamic Address translation over Ethernet) streaming media live broadcasting system and method based on proxy server | |
JP6271445B2 (en) | Improved DASH client and receiver with request cancellation | |
EP3022884B1 (en) | Quality optimization with buffer and horizon constraints in adaptive streaming | |
US9402058B2 (en) | Content delivery system, content delivery method and content delivery program | |
Famaey et al. | On the merits of SVC-based HTTP adaptive streaming | |
JP2015513840A5 (en) | ||
CA2505853A1 (en) | Transmission of video | |
JP2015511782A (en) | Improved DASH client and receiver with download rate estimator | |
Barannik et al. | The technology of the video stream intensity controlling based on the bit-planes recombination | |
JP2015515173A (en) | Control of HTTP streaming between source and receiver via multiple TCP connections | |
CN103905820A (en) | Client side video quality self-adaption method and system based on SVC | |
CN110022498B (en) | Method and device for realizing code rate switching | |
CN108235136A (en) | A kind of data playing method and terminal device | |
US20060031564A1 (en) | Methods and systems for streaming data at increasing transmission rates | |
CN109121020B (en) | Dynamic cache scheduling method, device and storage device for SVC-DASH on-demand system | |
CN113099259B (en) | Multicast transmission method and device of streaming media, multicast server and medium | |
CN109121019B (en) | Dynamic cache scheduling method, device and storage device for SVC-DASH on-demand system | |
CN115988267B (en) | Video code rate self-adaptive adjustment method and system based on DASH | |
CN109121018B (en) | Dynamic cache scheduling method, device and storage device for SVC-DASH on-demand system | |
JP5481923B2 (en) | Image coding apparatus, image coding method, and image coding program | |
CN116347126A (en) | Real-time video transmission optimizing coding and decoding method | |
Zhao et al. | A stochastic optimization-based bitrate adaptation for QoE maximization in wireless video streaming | |
Chen et al. | Adaptive media playout assisted rate adaptation scheme for HTTP adaptive streaming over lte system | |
Gharsallaoui et al. | Video streaming strategy based on feedback control loop theory in cloud platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200117 Termination date: 20210912 |
|
CF01 | Termination of patent right due to non-payment of annual fee |