CN106993237A - Dynamic self-adapting code rate selection method based on MPEG DASH agreements - Google Patents

Dynamic self-adapting code rate selection method based on MPEG DASH agreements Download PDF

Info

Publication number
CN106993237A
CN106993237A CN201710240780.0A CN201710240780A CN106993237A CN 106993237 A CN106993237 A CN 106993237A CN 201710240780 A CN201710240780 A CN 201710240780A CN 106993237 A CN106993237 A CN 106993237A
Authority
CN
China
Prior art keywords
value
code check
bandwidth
downloaded
section
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.)
Granted
Application number
CN201710240780.0A
Other languages
Chinese (zh)
Other versions
CN106993237B (en
Inventor
靳雁霞
马光远
张建华
杜博
雷海卫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
North University of China
Original Assignee
North University of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by North University of China filed Critical North University of China
Priority to CN201710240780.0A priority Critical patent/CN106993237B/en
Publication of CN106993237A publication Critical patent/CN106993237A/en
Application granted granted Critical
Publication of CN106993237B publication Critical patent/CN106993237B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management 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/262Content 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/26208Content 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/26216Content 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management 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/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL

Abstract

The invention discloses the dynamic self-adapting code rate selection method based on MPEG DASH agreements, the HTTP connections of server and client are initially set up;User end to server sends HTTP Get requests, and request is downloaded MPD file and stored;Server is received carries out response transmission MPD file to client after the request of client, client is downloaded to MPD file and the MPD file of download is parsed;The URL addresses obtained according to parsing MPD are first downloaded part section with minimum code rate and are put into buffer area, and network bandwidth when being cut into slices to foradownloaded video is calculated, and count and record and network bandwidth when downloading next video slicing is predicted;The code check for downloading next video segment is made a choice with reference to the remaining situation of current cache area video segment, until terminating.Realize and improve video quality as far as possible on the premise of smooth playing, greatly enhance user's viewing experience.

Description

Dynamic self-adapting code rate selection method based on MPEG-DASH agreements
Technical field
The invention belongs to technical field of video transmission, it is related to streaming media video based on MPEG-DASH agreements or audio A kind of transmission, and in particular to dynamic self-adapting code rate selection method based on MPEG-DASH agreements.
Background technology
At present, being continuously increased with the network bandwidth, people are also constantly increasing to the demand of media information.According to Cisco Company shows that, by 2017, media flow will occupy the 86% of whole network flow, all kinds of matchmakers in the report that May in year is issued Body is applied as a part indispensable in people's informatized life.Current various multimedia application layer go out not thoroughly, they Collection audio is provided for people, video, picture and text are experienced in the comprehensive of one.It is intended that obtaining more rapidly, more smooth, higher quality Media services experience, how to meet this demand turn into current stream media technology a big difficult point.
Stream media technology refers to the technology using streaming manner transmission media data, and its main feature is by servicing Device to user it is continuous, transmit media data in real time.In the system using stream media technology, user is without waiting for total data Downloading completion can play out, that is, realize the effect played when downloading, and greatly reduce user and start the time and to user The demand of side cache size.Traditional RTP/RTSP stream media technologys are carried out data transmission using udp protocol, therefore are only capable of providing Insecure transmission.Additionally due to RTP/RTSP stream media technologys need specific streaming media server, cause lower deployment cost compared with It is high.For these problems, HTTP dynamic self-adaptings Streaming Media (DASH, Dynamic Adaptive Streaming over HTTP) technology turns into the new lover of Streaming Media circle in recent years.The technology uses HTTP/TCP protocol infrastructures, provides the user reliable Data transfer.The technology uses 80 ports simultaneously, therefore can easily pass through fire wall.Furthermore, DASH technologies can be weighed With common Web server, lower deployment cost is low.Finally, the media table of the same media content different quality rank of the technical support Show, especially moving end subscriber can be according to capacity of equipment, buffer size and the real-time adjust request of real-time network bandwidth situation Media quality rank, the characteristics of possessing dynamic self-adapting.Therefore, DASH technologies have obtained all kinds of manufacturers and standardization body Extensive concern, is expected to turn into main flow stream media technology of future generation.
But MPEG-DASH agreements define only MPD file structure and Streaming Media section form, and client is not provided The flow or mechanism of end selection section file, to a certain extent dynamic self-adapting code rate selection method based on DASH agreements Quality directly determines the height of streaming media efficiency and the viewing experience of user, so the dynamic based on DASH agreements is adaptive Code rate system of selection has very big research and development space, and does not have similar techniques appearance also now.
The content of the invention
To achieve the above object, the present invention provides a kind of dynamic self-adapting code rate selection side based on MPEG-DASH agreements Method, realizes and improves video quality as far as possible on the premise of smooth playing, greatly enhances user's viewing experience.
The technical solution adopted in the present invention is that the dynamic self-adapting code rate selection method based on MPEG-DASH agreements has Body is followed the steps below:
Step 1, the HTTP connections of server and client are set up;
Step 2, user end to server sends HTTP Get requests, and request is downloaded MPD file and stored;
Step 3, server is received carries out response transmission MPD file to client after the request of client, client is to MPD File is downloaded and the MPD file of download is parsed;In order that video can be commenced play out as early as possible, according to parsing MPD Range of code rates corresponding to the URL of video slicing obtained by file first downloads a part of video segment, service with minimum code rate Device, which is received, gives client transmission video segment file after request, client is downloaded to section file;
Step 4, network bandwidth when being cut into slices to step 3 foradownloaded video is calculated, and is counted and is recorded and uses Kalman Filter forecasting method is predicted to network bandwidth when downloading next video slicing;
Step 5, according to the prediction bandwidth obtained by step 4 and with reference to the remaining situation of current cache area video segment to downloading The code check of next video segment makes a choice;
Step 6, step 4-5 is jumped to if video segment is without completion is all downloaded, continues executing with prediction and downloaded Journey, otherwise exits cyclic process, and method terminates.
Further, the detailed process of the step 1 is:
Step 11:Create a URL object;
Step 12:Create a HTTP link;
Step 13:Data are obtained using IO streams.
Further, the detailed process of the step 2 is:
Step 21:Judge that MPD file whether there is, 0 is otherwise returned if returning to 1 in the presence of if;
Step 22:File is downloaded when file is not present;
Step 23:Stored to downloading the file completed.
Further, the detailed process of the step 3 is:
Step 31:Obtain the specified attribute of Representation elements in MPD file, it is only necessary to obtain id, width, Tri- attributes of height;
Step 32:Obtain the URL of each grade video segment in MPD file;
Step 33:The video segment that minimum code rate is chosen in the URL addresses according to obtained by parsing MPD file is downloaded.
Further, the detailed process of the step 4 is:
Step 41:Obtain the network bandwidth b of downloading slicingn
Wherein:tn(e) represent that the time completed is downloaded in n-th of section;Tn (s) represent n-th section start download when Between;R (n) represents the selected code check of n-th of section;θ represents that duration is played in each section, and its value is 2 seconds;bnIt is n-th The network download bandwidth value of individual section;
Step 42:Set up system state equation and measurement equation:
Wherein:bn+1It is the prediction download bandwidth value of (n+1)th section;Yn+1It is n+1 section bandwidth measuring value;A is shape State transfer matrix, reflects system from the download bandwidth of n-th of section to the state change of (n+1)th;unIt is n-th of section Dominant vector;B is control allocation matrix;qnAnd rn+1It is system noise and measurement noise, q respectivelynStatistical property E [qn]=0, rn+1Statistical property E [rn+1]=0;H is observing matrix;
Step 43:By the optimum bandwidth value of n-th of burstRemove the state value of (n+1)th burst of predictionDue to mould The random disturbances q of typenDo not know in advance, soBy the prediction download bandwidth of next burst with it is upper The optimal download bandwidth of one burst be considered as it is identical, even A=1, dominant vector un=0, obtain:
Step 44:By last error covariance pnWith system noise qnCovariance Q predict new error covariance I.e.
Wherein Q is system noise qnCovariance, type belongs to white Gaussian noise;For (n+1)th slicer error association side The predicted value of difference, i.e., new error covariance;
Step 45:Calculate kalman gainHere measured value is Calculated value is so H=1 is
Wherein R is measurement noise rn+1Covariance;
Step 46:It is rightCorrection updates,
NowFor the optimum bandwidth of (n+1)th burst;Yn+1For the bandwidth measuring value of (n+1)th section;
Step 47:Continue step 48 if completion is not yet all downloaded in section, otherwise exit whole prediction process;
Step 48:Estimate that the iteration of the optimum bandwidth value of the n-th+2 sections is updated operation for next step, that is, update pn+1Value:
Pn+1It is the optimum bandwidth deviation of (n+1)th section;
Step 49, step 43 is jumped to, repeats to step 47 to terminate always.
Further, the detailed process of the step 5 is:
Step 51:If video slicing is not downloaded all and completed, i.e., there are still prediction bandwidth, then step 52 is performed, otherwise Downloading process terminates;
Step 52:
In order to ensure buffer area occurs without overflow and underflow, at the same ensure buffering area can effectively cancellation bandwidth fluctuation made Into forecasting inaccuracy really bring broadcasting stagnate or buffer overflow possibility, now to two time threshold values of setting buffers qminAnd qmax, the code to be chosen is determined according to the threshold values of setting buffers and the burst number existed and prediction bandwidth Rate value.
Further, the detailed process of the step 52 is:
Step 521:
Calculate n-th of burst snThe remaining duration of buffering area after the completion of download:
T(tn(e))=T (tn(s))+θ-(tn(e)-tn(s)) (8)
Wherein T (tn(e)) represent that n-th of burst has downloaded rear buffering area duration, while being also to start download (n+1)th to cut The duration of buffering area during piece, T (tn(s)) duration of buffering area when representing to start to download n-th of burst, while being also to have downloaded the The duration of buffering area during n-1 burst;
Step 522:
As T (tn+1(s)) < qminWhen buffer area section have the possibility being finished, in order to ensure buffering area has enough regard Frequency section must assure that T (tn+1(e))≥qmin, then its code check need meet:
The formula equal sign left side is only calculated obtained value and is designated as ψ by ψ without implication, code check r (n+1) value selected by (n+1)th For max (r (1), ψ), but it is due to that code check value is series of discrete value, so final on the premise of ensureing that video playback is smooth Code check value be apart from max (r (1), ψ) it is nearest take fixed code check value downwards, wherein r (1) be when video segment is generated most Small code check;
Step 523:
As T (tn+1(s)) > qmaxWhen buffering area have the possibility that overflow goes out be loaded with enough sections, continuation, in order to true Protecting buffering area, overflow does not ensure T (tn+1(e))≤qmax, then its code check need meet:
ξ is without implication, and the value for only obtaining the formula equal sign left side is designated as ξ;
Situation one:R (p) >=ξ is in order to ensure video pictures small shake as far as possible, and the code check value of selection is ξ, simultaneously because Code check value is series of discrete value, so code check value final on the premise of ensureing that video playback is smooth is nearest apart from ξ Fixed code check value is taken upwards;
Situation two:During r (p) < ξ, buffer area overflow must be occurred by continuing download, in order to avoid such case occurs then Start sleep mechanism, that is, a period of time can be suspended by downloading, and n-th of burst s is recalculated after pausenBuffered after the completion of download The remaining duration in area, proceeds code check judgement, and wherein r (p) is maximal rate when video segment is generated;
Step 524:
Work as qmin≤T(tn+1(s))≤qmaxWhen, the burst number of buffering area is in an optimal scope, the value model of code check Enclose for:
In order to reduce code check fluctuation, code check value is identical with upper one section code check value holding:R (n+1)=r (n).
Beneficial effects of the present invention:The present invention is the adaptively selected algorithm of dynamic code rate based on DASH agreements, is related to Bandwidth prediction and buffer queue management, realize video quality and change with the dynamic of network condition.Algorithm employs Kalman's filter Ripple predicts bandwidth, greatly improves precision of prediction, and the bandwidth predicted is combined with buffer area restrictive condition, finally Determine the code check of section to be downloaded and download the section file of the code check.It ensure that and carried as far as possible on the premise of smooth playing High video playing quality, greatly enhances user's viewing experience.
Brief description of the drawings
In order to illustrate more clearly about the embodiment of the present invention or technical scheme of the prior art, below will be to embodiment or existing There is the accompanying drawing used required in technology description to be briefly described, it should be apparent that, drawings in the following description are only this Some embodiments of invention, for those of ordinary skill in the art, on the premise of not paying creative work, can be with Other accompanying drawings are obtained according to these accompanying drawings.
Fig. 1 is the client of the embodiment of the present invention and the connection interaction figure of server.
Fig. 2 is the MPD structural representations of the embodiment of the present invention.
Fig. 3 is the flow chart of the code check adaptive algorithm of the embodiment of the present invention.
Embodiment
Below in conjunction with the embodiment of the present invention, the technical scheme in the embodiment of the present invention is clearly and completely retouched State, it is clear that described embodiment is only a part of embodiment of the invention, rather than whole embodiments.Based on the present invention In embodiment, the every other implementation that those of ordinary skill in the art are obtained under the premise of creative work is not made Example, belongs to the scope of protection of the invention.
As shown in figure 1, the embodiments of the invention provide a kind of dynamic self-adapting code rate selection based on MPEG-DASH agreements Method, including following functions:Set up server and HTTP connections, download and storage MPD file, the parsing MPD of client File, code check are adaptively selected.
Thinking is as follows:The HTTP connections of server and client are initially set up, client is from clothes after the completion of connection is set up Business device downloads MPD file and it is stored and parsed;Secondly in order to shorten the broadcasting that buffer time carries out video as early as possible, and Initial data is accumulated for follow-up bandwidth prediction, first one is downloaded with minimum code rate according to the range of code rates obtained by parsing MPD file Partial video is cut into slices and network bandwidth when downloading partial video section is calculated, counted and recorded, and uses karr Graceful filter forecasting method is predicted to network bandwidth when downloading next video slicing;Finally according to prediction resulting above Bandwidth and the remaining situation of current cache area video segment make a choice to the code check for downloading next video segment, so that being broadcast Put video quality and dynamically adapt to different networking situations.
Specifically follow the steps below:
Step 1,
Initially set up the HTTP connections of server and client;Because DASH in application layer is to be used as host-host protocol using HTTP , and HTTP is based on Transmission Control Protocol, so the session of client and server needs to set up connection in transport layer.
Its detailed process for setting up the HTTP connections of server and client is:
Step 11:Create a URL object;
Step 12:Create a HTTP link;
Step 13:Data are obtained using IO streams.
Step 2,
Then user end to server sends HTTP Get requests, and request is downloaded MPD file and stored.
Detailed process is:
Step 21:Judge that MPD file whether there is, 0 is otherwise returned if returning to 1 in the presence of if;
Step 22:File is downloaded when file is not present;
Step 23:Stored to downloading the file completed.
Step 3,
Server is received carries out response transmission MPD file to client after the request of client, client is entered to MPD file Row is downloaded and the MPD file of download is parsed;In order that video can be commenced play out as early as possible, according to parsing MPD file institute Range of code rates corresponding to the URL of obtained video slicing first downloads a part of video segment with minimum code rate, and server is received Video segment file is sent to client after request, client is downloaded to section file.The structure of MPD file such as Fig. 2 institutes Show.
Detailed process is:
Step 31:The specified attribute of Representation elements in MPD file is obtained, only needs to obtain id here, Tri- attributes of width, height;
Step 32:Obtain the URL of each grade video segment in MPD file;
Step 33:The video segment that minimum code rate is chosen in the URL addresses according to obtained by parsing MPD file is downloaded.
Step 4,
Network bandwidth when being cut into slices to step 3 foradownloaded video is calculated, and is counted and is recorded and uses Kalman filtering pre- Survey method is predicted to network bandwidth when downloading next video slicing.
Fig. 3 is the flow chart of the adaptively selected algorithm of code check, although after client is downloaded and parsed to MPD file The URL of video file has been obtained, but in order that user obtains more preferable audiovisual experience and can't be directly downloaded, it is necessary to pass through Cross the adaptively selected strategy of code check.
It is comprised the following steps that:
Step 41:Obtain the network bandwidth b of downloading slicingn
Wherein:tn(e) represent that the time completed is downloaded in n-th of section;tn(s) represent n-th section start download when Between;R (n) represents the selected code check of n-th of section;θ represents that duration is played in each section, here, and each section is played Duration is all identical, and its value of identical time span is all cut into for 2 seconds when carrying out video cutting encapsulation;bnIt is n-th The network download bandwidth value of section.
Step 42:Set up system state equation and measurement equation:
Wherein:bn+1It is the prediction download bandwidth value of (n+1)th section;Yn+1It is n+1 section bandwidth measuring value;A is shape State transfer matrix, reflects system from the download bandwidth of n-th of section to the state change of (n+1)th;unIt is n-th of section Dominant vector;B is control allocation matrix;qnAnd rn+1It is system noise and measurement noise, q respectivelynStatistical property E [qn]=0, rn+1Statistical property E [rn+1]=0;H is observing matrix.
Step 43:By the optimum bandwidth value of n-th of burstRemove the state value of (n+1)th burst of predictionDue to mould The random disturbances q of typenDo not know in advance, soUnder usual condition due to bandwidth excursion not It is very big, it is possible to regarding the optimal download bandwidth of the prediction download bandwidth of next burst and a upper burst as , even A=1, dominant vector un=0, obtain:
Step 44:By last error covariance pnWith system noise qnCovariance Q predict new error covariance I.e.
Wherein Q is system noise qnCovariance, its type belongs to white Gaussian noise;For (n+1)th slicer error association The predicted value of variance, i.e., new error covariance.
Step 45:Calculate kalman gainHere measured value is Calculated value is so H=1 is
Wherein R is measurement noise rn+1Covariance;
Step 46:It is rightCorrection updates,
NowFor the optimum bandwidth of (n+1)th burst;Yn+1For the bandwidth measuring value of (n+1)th section.
Step 47:Continue step 48 if completion is not yet all downloaded in section, otherwise exit whole prediction process.
Step 48:Estimate that the iteration of the optimum bandwidth value of the n-th+2 sections is updated operation for next step, that is, update pn+1Value:
Pn+1It is the optimum bandwidth deviation of (n+1)th section;
Step 49, step 43 is jumped to, repeats to step 47 to terminate always.
Step 5:According to the prediction bandwidth obtained by step 4 and with reference to the remaining situation of current cache area video segment to downloading The code check of next video segment makes a choice, and detailed process is:
Step 51:If video slicing is not downloaded all and completed, i.e., there are still prediction bandwidth, then step 52 is performed, otherwise Downloading process terminates.
Step 52:
In order to ensure buffer area occurs without overflow and underflow, at the same ensure buffering area can effectively cancellation bandwidth fluctuation made Into forecasting inaccuracy really bring broadcasting stagnate or buffer overflow possibility, now to two time threshold values of setting buffers qminAnd qmax, the code to be chosen is determined according to the threshold values of setting buffers and the burst number existed and prediction bandwidth Rate value.
Wherein, step 52 is specially:
Step 521:
Calculate n-th of burst snThe remaining duration of buffering area after the completion of download:
T(tn(e))=T (tn(s))+θ-(tn(e)-tn(s)) (8)
Wherein T (tn(e)) represent that n-th of burst has downloaded rear buffering area duration (while being also to start download (n+1)th to cut The duration of buffering area during piece), T (tn(s)) when representing to start to download n-th of burst buffering area duration (while being also to have downloaded the The duration of buffering area during n-1 burst).
Step 522:
As T (tn+1(s)) < qminWhen buffer area section have the possibility being finished, in order to ensure buffering area has enough regard Frequency section must assure that T (tn+1(e))≥qmin, then its code check need meet:
ψ has no implication, and the formula equal sign left side is only calculated to obtained value and is designated as ψ.Code check r (n+1) selected by (n+1)th Value should be max (r (1), ψ), but be due to that code check value is series of discrete value, so ensureing the smooth premise of video playback Down final code check value be apart from max (r (1), ψ) it is nearest take fixed code check value downwards.Wherein r (1) generates for video segment When minimum code rate.
Step 523:
As T (tn+1(s)) > qmaxWhen buffering area have the possibility that overflow goes out be loaded with enough sections, continuation, in order to true Protecting buffering area, overflow not must assure that T (tn+1(e))≤qmax, then its code check need meet:
ξ similarly has no concrete meaning, and the value for only obtaining the formula equal sign left side is designated as ξ;
Situation one:R (p) >=ξ is in order to ensure video pictures small shake as far as possible, and the code check value of selection should be ξ, simultaneously Because code check value is series of discrete value, thus code check value final on the premise of ensureing that video playback is smooth be apart from ξ most Near takes fixed code check value upwards.
Situation two:During r (p) < ξ, buffer area overflow must be occurred by continuing download, in order to avoid such case occurs then Start sleep mechanism, that is, a period of time can be suspended by downloading, and n-th of burst s is recalculated after pausenBuffered after the completion of download The remaining duration in area, proceeds code check judgement.Wherein r (p) is maximal rate when video segment is generated.
Step 524:
Work as qmin≤T(tn+1(s))≤qmaxWhen, the burst number of buffering area is in an optimal scope, the value model of code check Enclose for:
In order to reduce code check fluctuation, code check value is identical with upper one section code check value holding:R (n+1)=r (n).
Step 6:Step 4-5 is jumped to if video segment is without completion is all downloaded, prediction is continued executing with and downloaded Journey, otherwise exits cyclic process, and method terminates.
The method that the present invention employs Kalman prediction in bandwidth prediction, because the principle of this method defers to pre- The iteration process of survey-amendment, so ensure that its bandwidth prediction precision;Hold secondly as mobile client has storage Not enough actual conditions are measured, such case most probably causes buffer area to occur " spilling " phenomenon, when lower overflow occurs for buffer area, Video playback can be stagnated, when being overflowed in generation, bandwidth resources can not be made full use of to improve video playing quality again. Buffer area control strategy, and the side by the way that bandwidth prediction is combined with buffer area control are added again in order to solve this problem Method predicts the code check of video segment to be downloaded, can so cause the selected slice code check can to meet the actual feelings of client-cache Condition, the problem of reduction is brought by buffer overflow, preferentially ensure that video smooth playing, and selected code check can be made to meet network again Bandwidth actual change situation, it is ensured that video quality, greatly enhances user's viewing experience.
The foregoing is merely illustrative of the preferred embodiments of the present invention, is not intended to limit the scope of the present invention.It is all Any modification, equivalent substitution and improvements made within the spirit and principles in the present invention etc., are all contained in protection scope of the present invention It is interior.

Claims (7)

1. the dynamic self-adapting code rate selection method based on MPEG-DASH agreements, it is characterised in that specifically enter according to following steps OK:
Step 1, the HTTP connections of server and client are set up;
Step 2, user end to server sends HTTP Get requests, and request is downloaded MPD file and stored;
Step 3, server is received carries out response transmission MPD file to client after the request of client, client is to MPD file It is downloaded and the MPD file of download is parsed;In order that video can be commenced play out as early as possible, according to parsing MPD file Range of code rates corresponding to the URL of resulting video slicing first downloads a part of video segment with minimum code rate, and server is received Video segment file is sent to client after to request, client is downloaded to section file;
Step 4, network bandwidth when being cut into slices to step 3 foradownloaded video is calculated, and is counted and is recorded and uses Kalman filtering Predicted method is predicted to network bandwidth when downloading next video slicing;
Step 5, it is according to the prediction bandwidth obtained by step 4 and next to downloading with reference to the remaining situation of current cache area video segment The code check of individual video segment makes a choice;
Step 6, step 4-5 is jumped to if video segment is without completion is all downloaded, continues executing with prediction and downloading process, it is no Cyclic process is then exited, method terminates.
2. the dynamic self-adapting code rate selection method according to claim 1 based on MPEG-DASH agreements, its feature exists In the detailed process of the step 1 is:
Step 11:Create a URL object;
Step 12:Create a HTTP link;
Step 13:Data are obtained using IO streams.
3. the dynamic self-adapting code rate selection method according to claim 1 based on MPEG-DASH agreements, its feature exists In the detailed process of the step 2 is:
Step 21:Judge that MPD file whether there is, 0 is otherwise returned if returning to 1 in the presence of if;
Step 22:File is downloaded when file is not present;
Step 23:Stored to downloading the file completed.
4. the dynamic self-adapting code rate selection method according to claim 1 based on MPEG-DASH agreements, its feature exists In the detailed process of the step 3 is:
Step 31:Obtain the specified attribute of Representation elements in MPD file, it is only necessary to obtain id, width, Tri- attributes of height;
Step 32:Obtain the URL of each grade video segment in MPD file;
Step 33:The video segment that minimum code rate is chosen in the URL addresses according to obtained by parsing MPD file is downloaded.
5. the dynamic self-adapting code rate selection method according to claim 1 based on MPEG-DASH agreements, its feature exists In the detailed process of the step 4 is:
Step 41:Obtain the network bandwidth b of downloading slicingn
b n = r ( n ) t n ( e ) - t n ( s ) θ - - - ( 1 )
Wherein:tn(e) represent that the time completed is downloaded in n-th of section;tn(s) represent that n-th of section starts the time downloaded;r (n) the selected code check of n-th of section is represented;θ represents that duration is played in each section, and its value is 2 seconds;bnIt is to cut for n-th The network download bandwidth value of piece;
Step 42:Set up system state equation and measurement equation:
b n + 1 = Ab n + Bu n + q n Y n + 1 = H ( Ab n + Bu n + q n ) + r n + 1 - - - ( 2 )
Wherein:bn+1It is the prediction download bandwidth value of (n+1)th section;Yn+1It is n+1 section bandwidth measuring value;A is that state turns Matrix is moved, system is reflected from the download bandwidth of n-th of section to the state change of (n+1)th;unIt is the control of n-th of section Vector;B is control allocation matrix;qnAnd rn+1It is system noise and measurement noise, q respectivelynStatistical property E [qn]=0, rn+1 Statistical property E [rn+1]=0;H is observing matrix;
Step 43:By the optimum bandwidth value of n-th of burstRemove the state value of (n+1)th burst of predictionDue to model Random disturbances qnDo not know in advance, soBy the prediction download bandwidth of next burst and upper one The optimal download bandwidth of individual burst be considered as it is identical, even A=1, dominant vector un=0, obtain:
b n + 1 = b ^ n + 1 - = b ^ n - - - ( 3 )
Step 44:By last error covariance pnNew error covariance is predicted with system noise qn covariance QI.e.
p n + 1 - = p n + Q - - - ( 4 )
Wherein Q is system noise qnCovariance, type belongs to white Gaussian noise;For (n+1)th slicer error covariance Predicted value, i.e., new error covariance;
Step 45:Calculate kalman gainHere measured value is meter Calculation value is so H=1 is
K n + 1 = p n + 1 - p n + 1 - + R - - - ( 5 )
Wherein R is measurement noise rn+1Covariance;
Step 46:It is rightCorrection updates,
b ^ n + 1 = b ^ n + 1 - + K n + 1 ( Y n + 1 - b ^ n + 1 - ) - - - ( 6 )
NowFor the optimum bandwidth of (n+1)th burst;Yn+1For the bandwidth measuring value of (n+1)th section;
Step 47:Continue step 48 if completion is not yet all downloaded in section, otherwise exit whole prediction process;
Step 48:Estimate that the iteration of the optimum bandwidth value of the n-th+2 sections is updated operation for next step, that is, update pn+1Value:
p n + 1 = ( 1 - K n + 1 ) p n + 1 - - - - ( 7 )
Pn+1It is the optimum bandwidth deviation of (n+1)th section;
Step 49, step 43 is jumped to, repeats to step 47 to terminate always.
6. the dynamic self-adapting code rate selection method according to claim 1 based on MPEG-DASH agreements, its feature exists In the detailed process of the step 5 is:
Step 51:If video slicing is not downloaded all and completed, i.e., there are still prediction bandwidth, then step 52 is performed, is otherwise downloaded Process terminates;
Step 52:
In order to ensure buffer area occurs without overflow and underflow, at the same ensure buffering area can effectively cancellation bandwidth fluctuation caused by Broadcasting stagnation or the possibility of buffer overflow that forecasting inaccuracy is really brought, now to two time threshold values q of setting buffersminWith qmax, the code check value to be chosen is determined according to the threshold values of setting buffers and the burst number existed and prediction bandwidth.
7. the dynamic self-adapting code rate selection method according to claim 6 based on MPEG-DASH agreements, its feature exists In the detailed process of the step 52 is:
Step 521:
Calculate n-th of burst snThe remaining duration of buffering area after the completion of download:
T(tn(e))=T (tn(s))+θ-(tn(e)-tn(s)) (8)
Wherein T (tn(e)) represent that n-th of burst has downloaded rear buffering area duration, while being also when starting to download (n+1)th section The duration of buffering area, T (tn(s) duration of buffering area when) representing to start to download n-th of burst, while being also to have downloaded (n-1)th The duration of buffering area during individual burst;
Step 522:
As T (tn+1(s)) < qminWhen buffer area section have the possibility being finished, in order to ensure buffering area has enough videos to cut Piece must assure that T (tn+1(e))≥qmin, then its code check need meet:
r ( n + 1 ) ≤ b ( n + 1 ) + b ( n + 1 ) θ ( T ( t n + 1 ( s ) ) - q m i n ) = ψ - - - ( 9 )
The formula equal sign left side is only calculated obtained value and is designated as ψ, code check r (n+1) value selected by (n+1)th is by ψ without implication Max (r (1), ψ), but be due to that code check value is series of discrete value, so final on the premise of ensureing that video playback is smooth Code check value be apart from max (r (1), ψ) it is nearest take fixed code check value downwards, wherein r (1) is minimum when video segment is generated Code check;
Step 523:
As T (tn+1(s)) > qmaxWhen buffering area have the possibility that overflow goes out be loaded with enough sections, continuation, in order to ensure Overflow does not ensure T (t to buffering arean+1(e))≤qmax, then its code check need meet:
r ( n + 1 ) ≥ b ( n + 1 ) + b ( n + 1 ) θ ( T ( t n + 1 ( s ) ) - q m a x ) = ξ - - - ( 10 )
ξ is without implication, and the value for only obtaining the formula equal sign left side is designated as ξ;
Situation one:R (p) >=ξ is in order to ensure video pictures small shake as far as possible, and the code check value of selection is ξ, simultaneously because code check Value is series of discrete value, so code check value final on the premise of ensureing that video playback is smooth is apart from nearest upward of ξ Take fixed code check value;
Situation two:During r (p) < ξ, buffer area overflow must be occurred by continuing download, in order to avoid such case occurs then to start Sleep mechanism, that is, a period of time can be suspended by downloading, and n-th of burst s is recalculated after pausenBuffering area is remained after the completion of download Remaining duration, proceeds code check judgement, and wherein r (p) is maximal rate when video segment is generated;
Step 524:
Work as qmin≤T(tn+1(s))≤qmaxWhen, the burst number of buffering area is in an optimal scope, the span of code check For:
b ( n + 1 ) + b ( n + 1 ) &theta; ( T ( t n + 1 ( s ) ) - q m a x ) < r ( n + 1 ) < b ( n + 1 ) + b ( n + 1 ) &theta; ( T ( t n + 1 ( s ) ) - q min ) - - - ( 11 )
In order to reduce code check fluctuation, code check value is identical with upper one section code check value holding:R (n+1)=r (n).
CN201710240780.0A 2017-04-13 2017-04-13 Dynamic self-adapting code rate selection method based on MPEG-DASH agreement Expired - Fee Related CN106993237B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710240780.0A CN106993237B (en) 2017-04-13 2017-04-13 Dynamic self-adapting code rate selection method based on MPEG-DASH agreement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710240780.0A CN106993237B (en) 2017-04-13 2017-04-13 Dynamic self-adapting code rate selection method based on MPEG-DASH agreement

Publications (2)

Publication Number Publication Date
CN106993237A true CN106993237A (en) 2017-07-28
CN106993237B CN106993237B (en) 2019-05-10

Family

ID=59416160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710240780.0A Expired - Fee Related CN106993237B (en) 2017-04-13 2017-04-13 Dynamic self-adapting code rate selection method based on MPEG-DASH agreement

Country Status (1)

Country Link
CN (1) CN106993237B (en)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108063955A (en) * 2017-12-15 2018-05-22 重庆邮电大学 The code check switching method of dynamic self-adapting transmission of video based on state machine
CN108833996A (en) * 2018-07-03 2018-11-16 湖北大学 Service node selection, update and code rate adaptive approach in distributed DASH system
CN108924667A (en) * 2018-08-03 2018-11-30 阳雨哲 A kind of maximized available bandwidth adaptive video fragment request method of support QoE
CN108989838A (en) * 2018-08-07 2018-12-11 刘子和 A kind of DASH code rate adaptive approach based on complexity of video content perception
CN109040855A (en) * 2018-09-03 2018-12-18 重庆邮电大学 A kind of wireless DASH streaming media bit rate smooth adaptive transmission method
CN109302623A (en) * 2018-11-01 2019-02-01 南京大学 A kind of transmission method based on QoE model dynamic self-adapting video
CN109672910A (en) * 2018-12-25 2019-04-23 北京微播视界科技有限公司 Video broadcasting method, device, electronic equipment and computer readable storage medium
CN109714631A (en) * 2019-02-26 2019-05-03 华南理工大学 One kind being based on HTTP video flowing dynamic self-adaptation bit-rate selection method
CN109996087A (en) * 2019-03-21 2019-07-09 武汉大学 A kind of code rate adaptive approach and device towards net cast based on finite state machine
CN110198495A (en) * 2019-06-28 2019-09-03 广州市百果园信息技术有限公司 A kind of method, apparatus, equipment and the storage medium of video download and broadcasting
CN111225209A (en) * 2018-11-23 2020-06-02 北京字节跳动网络技术有限公司 Video data plug flow method, device, terminal and storage medium
CN111447448A (en) * 2020-04-13 2020-07-24 武汉理工大学 DASH video code rate selection method based on user experience and terminal energy consumption
WO2020155959A1 (en) * 2019-01-30 2020-08-06 上海哔哩哔哩科技有限公司 Definition switching method and apparatus, computer device, and readable storage medium
CN111510790A (en) * 2019-01-30 2020-08-07 上海哔哩哔哩科技有限公司 Video request method, system, computer device and computer readable storage medium
CN112437321A (en) * 2020-11-11 2021-03-02 天津大学 Adaptive code rate calculation method based on live broadcast streaming media
CN112543357A (en) * 2020-11-26 2021-03-23 郑州铁路职业技术学院 Streaming media data transmission method based on DASH protocol
CN113382078A (en) * 2021-06-21 2021-09-10 上海哔哩哔哩科技有限公司 Data processing method and device
CN113411643A (en) * 2021-05-26 2021-09-17 中国人民解放军国防科技大学 Video quality optimization method, system, electronic equipment and storage medium
CN113453076A (en) * 2020-03-24 2021-09-28 中国移动通信集团河北有限公司 User video service quality evaluation method and device, computing equipment and storage medium
CN113473248A (en) * 2020-03-30 2021-10-01 中国电信股份有限公司 Streaming media transmission method, device and computer readable storage medium
CN113645228A (en) * 2021-08-09 2021-11-12 北京凌壹世纪科技有限公司 Code rate self-adaptive video distribution method and system
WO2022183922A1 (en) * 2021-03-04 2022-09-09 北京字跳网络技术有限公司 Adaptive video playing method, and device
CN115988267A (en) * 2022-12-20 2023-04-18 哈尔滨工业大学(深圳) DASH-based video code rate self-adaptive adjustment method and system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110270913A1 (en) * 2010-04-29 2011-11-03 Irdeto Corporate B.V. Controlling an adaptive streaming of digital content
US20130044801A1 (en) * 2011-08-16 2013-02-21 Sébastien Côté Dynamic bit rate adaptation over bandwidth varying connection
CN103338393A (en) * 2013-06-13 2013-10-02 西安交通大学 Video code rate selecting method driven by user experience under HSPA system
CN103974147A (en) * 2014-03-07 2014-08-06 北京邮电大学 MPEG (moving picture experts group)-DASH protocol based online video playing control system with code rate switch control and static abstract technology
CN105025330A (en) * 2014-04-30 2015-11-04 深圳Tcl新技术有限公司 Media file playing control method and apparatus based on DASH protocol
CN105744299A (en) * 2014-12-08 2016-07-06 深圳Tcl数字技术有限公司 Dynamic code rate switching method, server and system
CN106028085A (en) * 2016-06-14 2016-10-12 浙江工业大学 DASH-based multi-client-side code rate self-adaption and oscillation compensation method
CN106303704A (en) * 2016-08-19 2017-01-04 上海交通大学 A kind of DASH flow medium live system based on proxy server and method

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110270913A1 (en) * 2010-04-29 2011-11-03 Irdeto Corporate B.V. Controlling an adaptive streaming of digital content
US20130044801A1 (en) * 2011-08-16 2013-02-21 Sébastien Côté Dynamic bit rate adaptation over bandwidth varying connection
CN103338393A (en) * 2013-06-13 2013-10-02 西安交通大学 Video code rate selecting method driven by user experience under HSPA system
CN103974147A (en) * 2014-03-07 2014-08-06 北京邮电大学 MPEG (moving picture experts group)-DASH protocol based online video playing control system with code rate switch control and static abstract technology
CN105025330A (en) * 2014-04-30 2015-11-04 深圳Tcl新技术有限公司 Media file playing control method and apparatus based on DASH protocol
CN105744299A (en) * 2014-12-08 2016-07-06 深圳Tcl数字技术有限公司 Dynamic code rate switching method, server and system
CN106028085A (en) * 2016-06-14 2016-10-12 浙江工业大学 DASH-based multi-client-side code rate self-adaption and oscillation compensation method
CN106303704A (en) * 2016-08-19 2017-01-04 上海交通大学 A kind of DASH flow medium live system based on proxy server and method

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108063955A (en) * 2017-12-15 2018-05-22 重庆邮电大学 The code check switching method of dynamic self-adapting transmission of video based on state machine
CN108063955B (en) * 2017-12-15 2020-02-11 重庆邮电大学 State machine based code rate switching method for dynamic self-adaptive video transmission
CN108833996A (en) * 2018-07-03 2018-11-16 湖北大学 Service node selection, update and code rate adaptive approach in distributed DASH system
CN108833996B (en) * 2018-07-03 2020-07-10 湖北大学 Service node selection, update and code rate self-adaption method in distributed DASH system
CN108924667A (en) * 2018-08-03 2018-11-30 阳雨哲 A kind of maximized available bandwidth adaptive video fragment request method of support QoE
CN108989838A (en) * 2018-08-07 2018-12-11 刘子和 A kind of DASH code rate adaptive approach based on complexity of video content perception
CN109040855A (en) * 2018-09-03 2018-12-18 重庆邮电大学 A kind of wireless DASH streaming media bit rate smooth adaptive transmission method
CN109302623B (en) * 2018-11-01 2020-06-09 南京大学 QoE model-based dynamic adaptive video transmission method
CN109302623A (en) * 2018-11-01 2019-02-01 南京大学 A kind of transmission method based on QoE model dynamic self-adapting video
CN111225209A (en) * 2018-11-23 2020-06-02 北京字节跳动网络技术有限公司 Video data plug flow method, device, terminal and storage medium
CN111225209B (en) * 2018-11-23 2022-04-12 北京字节跳动网络技术有限公司 Video data plug flow method, device, terminal and storage medium
CN109672910A (en) * 2018-12-25 2019-04-23 北京微播视界科技有限公司 Video broadcasting method, device, electronic equipment and computer readable storage medium
CN111510790B (en) * 2019-01-30 2021-10-15 上海哔哩哔哩科技有限公司 Video request method, system, computer device and computer readable storage medium
US11496536B2 (en) 2019-01-30 2022-11-08 Shanghai Bilibili Technology Co., Ltd. Method of requesting video, computing device, and computer-program product
WO2020155959A1 (en) * 2019-01-30 2020-08-06 上海哔哩哔哩科技有限公司 Definition switching method and apparatus, computer device, and readable storage medium
CN111510790A (en) * 2019-01-30 2020-08-07 上海哔哩哔哩科技有限公司 Video request method, system, computer device and computer readable storage medium
US11303949B2 (en) 2019-01-30 2022-04-12 Shanghai Bilibili Technology Co., Ltd. Method of switching resolution, computing device, and computer-readable storage medium
CN109714631A (en) * 2019-02-26 2019-05-03 华南理工大学 One kind being based on HTTP video flowing dynamic self-adaptation bit-rate selection method
CN109996087A (en) * 2019-03-21 2019-07-09 武汉大学 A kind of code rate adaptive approach and device towards net cast based on finite state machine
CN110198495A (en) * 2019-06-28 2019-09-03 广州市百果园信息技术有限公司 A kind of method, apparatus, equipment and the storage medium of video download and broadcasting
CN110198495B (en) * 2019-06-28 2022-03-22 广州市百果园信息技术有限公司 Method, device, equipment and storage medium for downloading and playing video
CN113453076A (en) * 2020-03-24 2021-09-28 中国移动通信集团河北有限公司 User video service quality evaluation method and device, computing equipment and storage medium
CN113453076B (en) * 2020-03-24 2023-07-14 中国移动通信集团河北有限公司 User video service quality evaluation method, device, computing equipment and storage medium
CN113473248A (en) * 2020-03-30 2021-10-01 中国电信股份有限公司 Streaming media transmission method, device and computer readable storage medium
CN111447448A (en) * 2020-04-13 2020-07-24 武汉理工大学 DASH video code rate selection method based on user experience and terminal energy consumption
CN111447448B (en) * 2020-04-13 2022-02-01 武汉理工大学 DASH video code rate selection method based on user experience and terminal energy consumption
CN112437321A (en) * 2020-11-11 2021-03-02 天津大学 Adaptive code rate calculation method based on live broadcast streaming media
CN112437321B (en) * 2020-11-11 2022-04-19 天津大学 Adaptive code rate calculation method based on live broadcast streaming media
CN112543357A (en) * 2020-11-26 2021-03-23 郑州铁路职业技术学院 Streaming media data transmission method based on DASH protocol
CN112543357B (en) * 2020-11-26 2023-09-08 郑州铁路职业技术学院 Stream media data transmission method based on DASH protocol
WO2022183922A1 (en) * 2021-03-04 2022-09-09 北京字跳网络技术有限公司 Adaptive video playing method, and device
CN113411643A (en) * 2021-05-26 2021-09-17 中国人民解放军国防科技大学 Video quality optimization method, system, electronic equipment and storage medium
CN113382078B (en) * 2021-06-21 2022-07-08 上海哔哩哔哩科技有限公司 Data processing method and device
CN113382078A (en) * 2021-06-21 2021-09-10 上海哔哩哔哩科技有限公司 Data processing method and device
CN113645228A (en) * 2021-08-09 2021-11-12 北京凌壹世纪科技有限公司 Code rate self-adaptive video distribution method and system
CN115988267A (en) * 2022-12-20 2023-04-18 哈尔滨工业大学(深圳) DASH-based video code rate self-adaptive adjustment method and system
CN115988267B (en) * 2022-12-20 2023-09-15 哈尔滨工业大学(深圳) Video code rate self-adaptive adjustment method and system based on DASH

Also Published As

Publication number Publication date
CN106993237B (en) 2019-05-10

Similar Documents

Publication Publication Date Title
CN106993237A (en) Dynamic self-adapting code rate selection method based on MPEG DASH agreements
CN104205769B (en) The DASH clients and receiver of the improvement selected using playback rate
CN104471955B (en) The method and server to multiple media apparatus are provided by video content
US10110650B2 (en) Client side stream switching
CN109302623B (en) QoE model-based dynamic adaptive video transmission method
EP2300928B1 (en) Client side stream switching
US9374406B2 (en) Dash client and receiver with a download rate estimator
US20090125636A1 (en) Payload allocation methods for scalable multimedia servers
CN104412253B (en) The method of self adaptation stream transmission is known for the quality in hypertext transfer protocol
US20140136653A1 (en) Dash client and receiver with download rate acceleration
CN103004190B (en) Video stream
CN103905924B (en) The video adaptive reception method and apparatus of end side
CN104620595A (en) Proactive video frame dropping
WO2017084277A1 (en) Code stream self-adaption method and system for online media service
Nguyen et al. An adaptive streaming method of 360 videos over HTTP/2 protocol
CN108023864A (en) Streaming Media method for pushing and device
Togou et al. An elastic dash-based bitrate adaptation scheme for smooth on-demand video streaming
CN114416013A (en) Data transmission method, data transmission device, electronic equipment and computer-readable storage medium
Thang et al. Video streaming over HTTP with dynamic resource prediction
Ameur TCP protocol optimization for HTTP adaptive streaming
Park et al. Rate adaptation scheme for HTTP-based streaming to achieve fairness with competing TCP traffic
Khorov et al. Analytical Study of Adaptive Video Generation in CCTV Over Public Wireless Networks
CN106790047A (en) A kind of method of the dynamic adjustment video code rate based on PID controller
WO2010049879A1 (en) Method for buffering streaming data and a terminal device

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: 20190510

CF01 Termination of patent right due to non-payment of annual fee