BE1022040B1 - METHOD AND SYSTEM FOR MANAGING A VIDEO FRAME WAITING LINE. - Google Patents
METHOD AND SYSTEM FOR MANAGING A VIDEO FRAME WAITING LINE. Download PDFInfo
- Publication number
- BE1022040B1 BE1022040B1 BE2013/0873A BE201300873A BE1022040B1 BE 1022040 B1 BE1022040 B1 BE 1022040B1 BE 2013/0873 A BE2013/0873 A BE 2013/0873A BE 201300873 A BE201300873 A BE 201300873A BE 1022040 B1 BE1022040 B1 BE 1022040B1
- Authority
- BE
- Belgium
- Prior art keywords
- queue
- video frame
- fill level
- frames
- video
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000007726 management method Methods 0.000 claims description 12
- 230000003111 delayed effect Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims 2
- 238000001094 photothermal spectroscopy Methods 0.000 description 6
- 238000002372 labelling Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000001788 irregular Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/87—Regeneration of colour television signals
- H04N9/877—Regeneration of colour television signals by assembling picture element blocks in an intermediate memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Environmental & Geological Engineering (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
De uitvinding heeft betrekking op een werkwijze voor het beheren van de wachtrij van videoframes tussen een decodeervoorziening en de weergever, gebaseerd op het bepalen van het huidige vulniveau van de wachtrij en het bijstellen van de afgifte aan de weergever op basis van ten minste het huidige vulniveau van de wachtrij; en op een combinatie van genoemde werkwijze met frameschatting en/of een combinatie met weergevercontrole.The invention relates to a method of managing the queue of video frames between a decoder and the renderer, based on determining the current queue fill level and adjusting the output to the renderer based on at least the current fill level. from the queue; and to a combination of said method with frame estimation and / or a combination with display control.
Description
WERKWIJZE EN SYSTEEM VOOR HET BEHEREN VAN EEN WACHTRIJ VAN VIDEOFRAMES Vakgebied van de uitvindingMETHOD AND SYSTEM FOR MANAGING A WAITING VIDEO FRAMES Subject field of the invention
De uitvinding heeft betrekking op werkwijzen, systemen en software voor het beheren van een of meer wachtrijen van videoframes.The invention relates to methods, systems and software for managing one or more queues of video frames.
AchtergrondBackground
In controlekamer- en observatietoepassingen worden gecomprimeerde videostromen, van codeervoorzieningen van verschillende fabrikanten, afgeleverd als netwerkpakketten via niet-triviale netwerkarchitecturen. Verwacht wordt dat deze videostromen worden weergegeven op een gelijkmatig verdeelde wijze in de tijd zodat de kijker vloeiende constante bewegingen waarneemt. Een aantal netwerkvideonormen voorziet in zogenaamde PTS's (Présentation TimeStamps; hierna ook "presentatietijdregistratie") voor elk frame. Tevens kunnen frameherhalingsfrequenties worden gecodeerd in de videostromen. Met behulp van frameherhalingsfrequentie en de PTS-informatie kan de videoframeverdeling in de tijd worden gereconstrueerd. Helaas is dit in de praktijk niet altijd haalbaar want: (1) Niet alle codeervoorzieningleveranciers ondersteunen correcte PTS. Dit houdt onder andere in: ontbrekende PTS's of zelfs verkeerd berekende PTS's. (2) Niet alle codeervoorzieningen ondersteunen geldige frameherhalingsfrequentie-informatie in hun stromen. (3) Vertragingen kunnen ontstaan op netwerkschakelaars, zenders of ontvangers die netwerk-jitter introduceren in de netwerkpakketten van de videoframes. (4) Tengevolge van veranderende bandbreedte-eisen aan CPU's tijdens het codeerproces kan het ook gebeuren dat jitter geïntroduceerd wordt in een netwerkstroom. v ^In control room and observation applications, compressed video streams, from coding facilities from different manufacturers, are delivered as network packages via non-trivial network architectures. These video streams are expected to be displayed in an evenly distributed manner over time so that the viewer observes smooth constant movements. A number of network video standards provide for so-called PTSs (Presentation TimeStamps; hereinafter also "presentation time registration") for each frame. Frame repetition frequencies can also be coded in the video streams. With the help of frame repetition frequency and the PTS information, the video frame distribution can be reconstructed over time. Unfortunately, this is not always feasible in practice because: (1) Not all coding provider suppliers support correct PTS. This includes: missing PTSs or even incorrectly calculated PTSs. (2) Not all coding features support valid frame repetition frequency information in their streams. (3) Delays may occur on network switches, transmitters or receivers that introduce network jitter into the network packages of the video frames. (4) Due to changing bandwidth requirements for CPUs during the coding process, it can also happen that jitter is introduced into a network stream. v ^
Gewoonlijk wordt een wachtrij gebruikt om de jitter uit de binnenkomende stroom te elimineren. De frames worden opgeslagen in de wachtrij zoals deze worden ontvangen van de decodeervoorziening. De binnenkomende frames worden opgeslagen in deze wachtrij tijdens, bijvoorbeeld, een vooraf bepaald tijdsbestek. De frames kunnen dan uit de wachtrij worden gehaald door de weergever (renderer) met een constante uitvoersnelheid. Wanneer de gemiddelde ontvangstsnelheid van de frames in de wachtrij gelijk is aan de constante uitvoersnelheid, dan staat de wachtrij het uit de wachtrij halen van de frames toe met een constante uitvoersnelheid ook al werden de frames ontvangen met een onregelmatige snelheid. Dit elimineert de onregelmatige aankomsttijden, maar introduceert een extra vertraging en vergroot daardoor de totale vertraging. Indien de wachtrijvertraging op een voldoende grote waarde wordt gesteld om de ergste jitter te bestrijken, dan zou een regelmatige afgifte van frames aan de weergever gegarandeerd zijn. In praktische toepassingen zou dit echter resulteren in een grote wachtrijvertraging en in een onacceptabele totale vertraging.Usually a queue is used to eliminate the jitter from the incoming stream. The frames are stored in the queue as they are received from the decoding device. The incoming frames are stored in this queue during, for example, a predetermined period of time. The frames can then be taken out of the queue by the viewer (renderer) with a constant output speed. If the average reception speed of the frames in the queue is equal to the constant output speed, then the queue allows the withdrawal of the frames with a constant output speed even though the frames were received at an irregular speed. This eliminates irregular arrival times, but introduces an additional delay and therefore increases the total delay. If the queue delay is set to a sufficiently large value to cover the worst jitter, then a regular delivery of frames to the viewer would be guaranteed. In practical applications, however, this would result in a large queue delay and an unacceptable total delay.
Tegenover het hiervoor beschreven vaste-jitterwachtrijbeheer, is een aantal adaptieve jitterwachtrijbeheerconcepten voorgesteld. In 6,684,273 B2 wordt een werkwijze beschreven om de wachtrijafmeting aan te passen aan de gemeten vertraging van de ontvangen pakketten. In 7,983,309 B2 wordt een buffertijd voor een of meer frames ontvangen door een framebuffer bepaald op basis van een specifieke buffertijd samenhangend met een specifiek frame en van informatie die een specifieke hoeveelheid data opgeslagen in de framebuffer vertegenwoordigt. US8015306 beschrijft het synchroniseren van streaming-media met meervoudige uitvoertoestellen (meervoud), waarbij deze streaming-media bediend worden door een of meer mediaservers. Beschreven wordt een master-toestel, dat in actie komt om deze synchronisatie te bewerkstelligen. Deze actie houdt in: verzoeken aan de mediaserver om meer data om in de buffer te plaatsen. US 8015306 beschrijft bovendien hoe elk (slave-) uitvoertoestel op eigen initiatief acties uitvoert om buffervulniveaus te handhaven, maar deze actie beperkt tot afspeelcorrecties (versnellen of vertragen), en specificeert dat dit dient om de buffervulling tussen een lage en hoge grens te houden. US8015306 lost een probleem op bij het synchroniseren, waarbij het master-toestel daarbij kan proberen een nominaal bufferniveau te handhaven en dit wordt bereikt door invoercontrole op de buffer. De slave-toestelacties richten zich niet op nominaal-niveaucontrole maar op grenscontrole. US8015306 geeft tevens een concept aan van voorwaardelijke tijdmarkering. US5812699 noemt het handhaven van een bufferniveau, maar in de context van compressie, voor afgifte aan een codeervoorziening. US2012/0106651 beschrijft het gebruik van een concept van tijd, met name overdrachttijd en gebruikt de controle op een werkmodus van een decodeervoorziening. Terwijl Afb. 6 daarvan wel melding maakt van controleacties op de weergeverbuffer tussen de decodeervoorziening en de weergever (in aanvulling op controleacties op de decodeervoorzieningbuffer), gebeurt dit door veranderen van de werkmodus van de decodeervoorziening (stoppen en slechts hervatten indien een lager niveau wordt bereikt). US 5677969 bespreekt acties met betrekking tot een decodeervoorzieningbufferniveau (dus vóór de decodeervoorziening) maar beschrijft alleen acties ten aanzien van snelheidregelaar en codeervoorziening. US 2008107031 bespreekt de beheersing van overdrachtsnelheden en het uitfilteren van videopakketten indien een pakketwachtrij vol is in een context van dynamisch veranderende links.Opposite to the fixed jitter queue management described above, a number of adaptive jitter queue management concepts have been proposed. In 6,684,273 B2 a method is described to adjust the queue size to the measured delay of the received packets. In 7,983,309 B2, a buffer time for one or more frames received by a frame buffer is determined based on a specific buffer time associated with a specific frame and from information representing a specific amount of data stored in the frame buffer. US8015306 describes synchronizing streaming media with multiple output devices (plural), wherein these streaming media are served by one or more media servers. A master device is described that takes action to effect this synchronization. This action includes: requesting the media server to put more data in the buffer. US 8015306 also describes how each (slave) output device performs actions on its own initiative to maintain buffer fill levels, but limits this action to playback corrections (speeding up or slowing down), and specifies that this serves to keep the buffer filling between a low and high limit. US8015306 solves a problem with synchronization, in which the master device can thereby try to maintain a nominal buffer level and this is achieved by input check on the buffer. The slave device actions do not focus on nominal level control but on border control. US8015306 also indicates a concept of conditional time marking. US5812699 mentions maintaining a buffer level, but in the context of compression, for delivery to an encoder. US2012 / 0106651 describes the use of a concept of time, in particular transfer time, and uses the control on a working mode of a decoding device. While Fig. 6 does mention control actions on the display buffer between the decoder and the reproducer (in addition to control actions on the decoder buffer), this is done by changing the operating mode of the decoder (stopping and only resuming if a lower level is reached). US 5677969 discusses actions with regard to a decoding provision buffer level (i.e. before the decoding provision), but only describes actions with regard to the speed controller and coding provision. US 2008107031 discusses the control of transfer rates and the filtering of video packets if a packet queue is full in a context of dynamically changing links.
Doel van de uitvindingObject of the invention
Het doel van de uitvinding is werkwijzen, systemen en software te presenteren die geen presentatietijdregistratie vereisen en ook geen frameherhalingsfrequentie-informatie gecodeerd in de videoframes, terwijl deze ondertussen vloeiende en constante presentatie mogelijk maken van willekeurige videostromen.The object of the invention is to present methods, systems and software that do not require presentation time registration and also no frame repeat frequency information encoded in the video frames, while in the meantime allowing smooth and constant presentation of random video streams.
Korte beschrijving van de uitvindingBrief description of the invention
De verschillende aspecten van de uitvinding worden beschreven in conclusies 1 tot en met 49.The various aspects of the invention are described in claims 1 to 49.
In een eerste aspect van de uitvinding wordt een werkwijze beschreven voor het beheren van een wachtrij van videoframes, bijvoorbeeld tussen een decodeervoorziening en een weergever (weergave-eenheid voor de gedecodeerde videoframes), waarbij de werkwijze omvat: - bepalen van het huidige vulniveau van de wachtrij (bijvoorbeeld: tellen van de hoeveelheid videoframes in de wachtrij); en - bijstellen of aanpassen van de afgifte aan de weergever door vergelijking van het huidige vulniveau van de wachtrij met een eerste vooraf bepaald vulniveau om het huidige vulniveau P zo dicht mogelijk bij dit eerste vooraf bepaalde vulniveau te houden.In a first aspect of the invention a method is described for managing a queue of video frames, for example between a decoder and a reproducer (display unit for the decoded video frames), the method comprising: - determining the current fill level of the queue (for example: counting the amount of video frames in the queue); and - adjusting or adjusting the output to the display by comparing the current fill level of the queue with a first predetermined fill level to keep the current fill level P as close as possible to this first predetermined fill level.
In een uitvoeringsvorm daarvan kan de stap van het bijstellen van de afgifte alleen gebruikt worden wanneer het huidige vulniveau hoger is dan een tweede vooraf bepaald vulniveau, waarbij met name in een dergelijk geval de afgifte van de videoframes wordt vertraagd, bij voorkeur met een vertraging afhankelijk van het verschil (bijvoorbeeld proportioneel) tussen het huidige vulniveau en het tweede vooraf bepaalde vulniveau.In one embodiment thereof, the step of adjusting the release can only be used when the current fill level is higher than a second predetermined fill level, wherein in particular in such a case the release of the video frames is delayed, preferably with a delay depending on of the difference (e.g. proportional) between the current fill level and the second predetermined fill level.
In een uitvoeringsvorm ervan wordt, in het geval dat een betrouwbare schatting van de videoframeherhalingsfrequentie kan worden berekend, tijdinformatie gehecht aan een videoframe voordat het videoframe wordt afgeleverd bij de weergever, waarbij met name een betrouwbare schatting geacht wordt beschikbaar te zijn wanneer een vooraf gedefinieerde minimumhoeveelheid videoframes de wachtrij heeft doorlopen en/of wanneer de videoframeherhalingsfrequentie (volgens de schatting) een vooraf gedefinieerde minimumframeherhalingsfrequentie overschrijdt, waarbij bij voorkeur de schatting van de videoframeherhalingsfrequentie wordt bepaald uit de totale verblijfstijd in de wachtrij van een vooraf bepaalde hoeveelheid videoframes (bij voorkeur gelijk aan de vooraf gedefinieerde minimumhoeveelheid).In one embodiment thereof, in the case that a reliable estimate of the video frame repetition frequency can be calculated, time information is attached to a video frame before the video frame is delivered to the reproducer, in particular a reliable estimate is deemed to be available when a predefined minimum amount video frames has passed through the queue and / or when the video frame repetition frequency (according to the estimate) exceeds a predefined minimum frame repetition frequency, the estimation of the video frame repetition frequency preferably being determined from the total residence time in the queue of a predetermined amount of video frames (preferably equal to the predefined minimum quantity).
De werkwijze volgens het eerste aspect van de uitvinding en de uitvoeringsvormen ervan die kunnen worden gecombineerd, is onderdeel van het behandelen van videoframes door een weergever, waarbij: - de weergever het videoframe laat vallen indien het videoframe afgeleverd wordt wanneer het videoframegeheugen van de weergever vol is; en/of - het behandelen van een videoframe het voorzien van een afgeleverd videoframe van een tijdindicatie omvat en, indien de weergavesnelheid van de weergever niet is staat is het videoframe weer te geven zodanig dat de aan het videoframe gehechte tijdindicatie valt binnen een vooraf bepaald tijdvenster, de weergever het videoframe laat vallen; en/of - de weergever het videoframe weergeeft in overeenstemming met de aangehechte tijdindicatie.The method according to the first aspect of the invention and the embodiments thereof that can be combined is part of the handling of video frames by a viewer, wherein: the viewer drops the video frame if the video frame is delivered when the viewer's video frame memory is full is; and / or - treating a video frame comprising providing a delivered video frame with a time indication and, if the playback speed of the reproducer is not capable of displaying the video frame such that the time indication attached to the video frame falls within a predetermined time window , the viewer drops the video frame; and / or - the viewer displays the video frame in accordance with the attached time indication.
In een tweede aspect van de uitvinding is sprake van een besturingsorgaan geschikt voor het beheren van de wachtrij van een systeem, omvattend een decodeervoorziening, een wachtrij voor het tijdelijk opslaan van meerdere videoframes en een weergever, waarbij het besturingsorgaan omvat middelen (hardware of een combinatie van hardware en software) voor het uitvoeren van een van de gepresenteerde werkwijzen.In a second aspect of the invention there is a control device suitable for managing the queue of a system, comprising a decoding device, a queue for temporarily storing a plurality of video frames and a reproducer, the control device comprising means (hardware or a combination of hardware and software) for performing one of the presented methods.
Een derde aspect van de uitvinding voorziet in een systeem, welk systeem omvat: een decodeervoorziening, een wachtrij voor het tijdelijk opslaan van meerdere videoframes en een weergever, verder omvattend een besturingsorgaan voor het beheren van de wachtrij, welk besturingsorgaan middelen omvat voor het uitvoeren van een van de gepresenteerde werkwijzen.A third aspect of the invention provides a system, which system comprises: a decoder, a queue for temporarily storing a plurality of video frames and a reproducer, further comprising a controller for managing the queue, which controller comprises means for performing one of the methods presented.
Een vierde aspect van de uitvinding betreft een computerprogrammaproduct en een verwant, voor een machine leesbaar, opslagmedium, omvattend codesegmenten die, wanneer uitgevoerd op een geschikte verwerkingsmachine, de stappen in een van de gepresenteerde werkwijzen implementeren.A fourth aspect of the invention relates to a computer program product and a related machine-readable storage medium comprising code segments which, when executed on a suitable processing machine, implement the steps in one of the presented methods.
In een bepaald aspect maakt de onderhavige uitvinding werkwijzen en systemen beschikbaar voor het beheren van een wachtrij van videoframes tussen een specifiek toestel (bijvoorbeeld een decodeervoorziening) van specifieke media (bijvoorbeeld video) en een specifiek enkel uitvoertoestel (bijvoorbeeld een weergever). Een stap kan worden voorzien waarin de afgifte naar het specifieke enkele uitvoertoestel, bijvoorbeeld naar de weergever, wordt bijgesteld, bijvoorbeeld door het vergelijken van ten minste het huidige vulniveau van de wachtrij met een eerste vooraf bepaald vulniveau, en het niet synchroniseren maar het zo dicht mogelijk bij dit eerste vooraf bepaalde vulniveau houden van het huidige vulniveau P . Een stap kan worden voorzien waarin het huidige vulniveau P zo dicht mogelijk bij dit eerste vooraf bepaald vulniveau wordt gehouden. Optioneel wordt aan het specifieke enkele uitvoertoestel, bijvoorbeeld de weergever, niet toegestaan verdere acties te ondernemen. Het is mogelijk videoframes te laten vallen wanneer het specifieke enkele uitvoertoestel, bijvoorbeeld het videoframegeheugen van de weergever, vol is of bezig is met het uitvoeren van uitvoeriger tijdgebaseerd laten vallen van videoframes. Een nominaal bufferniveau kan worden verkregen door regeling van de afgifte vanuit de wachtrij. Beschreven worden tijdetikettering en/of een indicatie van de betrouwbare videoframeherhalingsfrequentieschatting, bijvoorbeeld door de tijdetikettering te gebruiken voor voorwaardelijk gebruik of voor het bepalen van de tijdindicatie of hoe een dergelijke schatting of etiketgebaseerd laten vallen of weergeven kan worden berekend.In one aspect, the present invention makes methods and systems available for managing a queue of video frames between a specific device (e.g., a decoder) of specific media (e.g., video) and a specific single output device (e.g., a viewer). A step may be provided in which the output to the specific single output device, e.g. to the display, is adjusted, e.g., by comparing at least the current fill level of the queue with a first predetermined fill level, and not synchronizing it but so close possibly keeping the current filling level P at this first predetermined filling level. A step can be provided in which the current filling level P is kept as close as possible to this first predetermined filling level. Optionally, the specific single output device, for example the viewer, is not allowed to take further actions. It is possible to drop video frames when the specific single output device, for example, the video frame memory of the viewer, is full or busy performing more time-based dropping of video frames. A nominal buffer level can be obtained by controlling the delivery from the queue. Described are time labeling and / or an indication of the reliable video frame repeat frequency estimation, for example by using the time labeling for conditional use or for determining the time indication or how such an estimate or label-based dropping or display can be calculated.
Dienovereenkomstig wordt wachtrijbuffervulniveaubeheer van videodata verkregen van een decodeervoorziening zoals beschreven. Sturing werkt bij voorkeur in op de videocompressieverwerking. Een vergelijking met een drempelwaarde kan worden gemaakt, waarbij deze drempelwaarde dynamisch wordt gevormd, om een hogere en lagere niveaucontrole te bereiken (zoals getoond in Afb. 5). Zodoende wordt afgifte aan de weergever bijgesteld en een bufferniveau gehandhaafd. Verder wordt beheer van een wachtrij beschreven na de decodeervoorziening door inwerken op de afgifte richting de weergever. Voorzien kan worden in een vaste link tussen een decodeervoorziening en een weergever, die de wachtrij daartussen beheert maar inwerkt op de afgifte vanuit de wachtrij naar de weergever, terwijl het bufferniveau wordt gehandhaafd in plaats van dat een mechanisme te hulp geroepen wordt wanneer de wachtrij vol is.Accordingly, queue buffer level management of video data is obtained from a decoder as described. Control preferably acts on the video compression processing. A comparison with a threshold value can be made, this threshold value being dynamically formed to achieve a higher and lower level control (as shown in Fig. 5). Thus, delivery to the reproducer is adjusted and a buffer level is maintained. Furthermore, management of a queue is described after the decoding provision by acting on the delivery towards the reproducer. A fixed link can be provided between a decoder and a viewer, which manages the queue between them but acts on delivery from the queue to the viewer, while maintaining the buffer level instead of relying on a mechanism when the queue is full is.
Korte beschrijving van de tekeningenBrief description of the drawings
Afb. 1: Voorbeeldwachtrij voor gedecodeerde frames metFig. 1: Sample queue for decoded frames with
Afb. 2 toont een stroomschema van de werkwijze in overeenstemming met een uitvoeringsvorm van de uitvinding.Fig. 2 shows a flow chart of the method in accordance with an embodiment of the invention.
Afb. 3 toont een schema van de uitgevonden systemen en subsystemen.Fig. 3 shows a diagram of the invented systems and subsystems.
Afb. 4 toont een generiek stroomschema van de uitgevonden werkwijzen. Gedetailleerde beschrijving van de uitvindingFig. 4 shows a generic flow chart of the invented methods. Detailed description of the invention
De uitvinding voorziet in werkwijzen, systemen en software voor wachtrijbeheer en maakt onder andere de gelijkmatige weergave in de tijd van de videoframes mogelijk. Een werkwijze wordt beschreven waarbij de jitter van de binnenkomende stroom wordt geëlimineerd bij een minimale toename van de totale vertraging, met een constante wachtrijgrootte. De wachtrij of framebuffer heeft een gesloten-lusregelsysteem om het vulniveau van de wachtrij constant te houden. De gemiddelde frameherhalingsfrequentie van de decodeervoorzieninguitgangsstroom kan verschillen van de schermframeherhalingsfrequentie.The invention provides methods, systems and software for queue management and enables, among other things, the uniform display of the video frames over time. A method is described in which the jitter of the incoming stream is eliminated with a minimal increase in the total delay, with a constant queue size. The queue or frame buffer has a closed loop control system to keep the queue fill level constant. The average frame repetition frequency of the decoding output current may differ from the screen frame repetition frequency.
Merk op dat de uitgevonden werkwijzen geïmplementeerd kunnen worden in een specifieke ASIC of uitgevoerd kunnen worden als software op een general-purpose-eenheid of een GPU (Graphic Processing Unit) of een combinatie van deze.Note that the invented methods can be implemented in a specific ASIC or can be implemented as software on a general-purpose unit or a GPU (Graphic Processing Unit) or a combination of these.
In tegenstelling tot US8015306 voorziet de onderhavige uitvinding in het beheren van de wachtrij van videoframes tussen een specifiek toestel (een decodeervoorziening) van specifieke media (video) en een specifiek enkel uitvoertoestel (een weergever). De onderhavige uitvinding voorziet in het bijstellen van de afgifte aan de weergever, hetgeen wordt gerealiseerd door vergelijking van ten minste het huidige vulniveau van de wachtrij met een eerste vooraf bepaald vulniveau en niet door synchronisering maar handhaving van het huidige vulniveau P zo dicht mogelijk bij dit eerste vooraf bepaald vulniveau. De onderhavige uitvinding voorziet in het houden van het huidige vulniveau P zo dicht mogelijk bij dit eerste vooraf bepaalde vulniveau. De uitvinding staat tevens de weergever toe verdere acties te ondernemen en beschrijft het laten vallen van videoframes wanneer het videoframegeheugen van de weergever vol is of bezig is met het uitvoeren van uitgebreider tijdgebaseerd laten vallen van videoframes. De uitvinding voorziet in het handhaven van een nominaal bufferniveau door regeling van de afgifte vanuit de wachtrij. Naast bespreking van tijdetikettering geeft de uitvinding de betrouwbare-videoframeherhalingsfrequentieschattinggebaseerde benaderingen aan die de tijdetikettering gebruiken voor voorwaardelijk gebruik of voor het bepalen van de tijdindicatie of hoe een dergelijke schatting of etiketgebaseerd laten vallen of weergeven kan worden berekend.In contrast to US8015306, the present invention provides for managing the queue of video frames between a specific device (a decoding device) of specific media (video) and a specific single output device (a reproducer). The present invention provides for adjusting the delivery to the reproducer, which is achieved by comparing at least the current fill level of the queue with a first predetermined fill level and not by synchronizing but maintaining the current fill level P as close as possible to this first predetermined fill level. The present invention provides for keeping the current fill level P as close as possible to this first predetermined fill level. The invention also allows the viewer to take further actions and describes the dropping of video frames when the video frame memory of the viewer is full or busy performing more extensive time-based dropping of video frames. The invention provides for maintaining a nominal buffer level by controlling delivery from the queue. In addition to discussing time labeling, the invention provides the reliable video frame repeat frequency estimation based approaches that use time labeling for conditional use or for determining the time indication or how such an estimate or label-based dropping or display can be calculated.
In tegenstelling tot US5812699 voorziet de uitvinding in wachtrijbuffervulniveaubeheer van videodata verkregen van een decodeervoorziening. De sturing is bijgevolg volkomen verschillend aangezien deze in plaats daarvan inwerkt op de videocompressieverwerking, waarbij tevens de aangegeven context of doelen volkomen verschillend zijn. Bovendien wordt, terwijl een vergelijking met een drempelwaarde wordt gemaakt, deze drempelwaarde dynamisch uitgevoerd, om ook hier feitelijk een hogere en lagere niveaucontrole te bereiken, zoals getoond in Afb. 5.In contrast to US5812699, the invention provides queue buffer level management of video data obtained from a decoder. The control is therefore completely different, since it acts instead on the video compression processing, whereby the indicated context or goals are also completely different. Moreover, while a comparison with a threshold value is being made, this threshold value is dynamically executed to achieve a higher and lower level control, as shown in Fig. 5.
In tegenstelling tot US2012/0106651 is het in de uitvinding de afgifte aan de weergever die wordt bijgesteld, waarbij het doel het handhaven is van een bufferniveau. Het concept van tijd en gebruik daarvan is eveneens volkomen verschillend.In contrast to US2012 / 0106651, it is in the invention the delivery to the reproducer that is adjusted, the purpose of which is to maintain a buffer level. The concept of time and use thereof is also completely different.
In tegenstelling tot US 5677969 gaat de uitvinding over wachtrijbeheer van een wachtrij na de decodeervoorziening door inwerken op de afgifte richting de weergever.In contrast to US 5677969, the invention is about queue management of a queue after the decoding provision by acting on the delivery towards the reproducer.
In tegenstelling tot US 2008107031 richt de uitvinding zich hoofdzakelijk op een vaste link tussen een decodeervoorziening en een weergever, die de wachtrij daartussen beheert maar inwerkt op de afgifte vanuit de wachtrij naar de weergever, terwijl het bufferniveau wordt gehandhaafd, in plaats van dat een mechanisme te hulp geroepen wordt wanneer de wachtrij vol is.In contrast to US 2008107031, the invention focuses primarily on a fixed link between a decoder and a reproducer, which manages the queue between them but acts on delivery from the queue to the reproducer, while maintaining the buffer level, rather than a mechanism is called to help when the queue is full.
UitvoeringsvormEmbodiment
Voor het ondervangen van ontbrekende of onjuiste PTS- en frameherhalingsfrequentie-informatie en het verkrijgen van een vloeiende en gelijkmatige presentatie van een videostroom, passen wij hier toe: een framebuffer of wachtrij in een soort gesloten-lusregelsysteem als een oplossing voor het hiervoor beschreven probleem. In het eerste onderdeel van de beschrijving wordt ervan uitgegaan dat de gemiddelde frameherhalingsfrequentie van de decodeervoorziening-output gelijk is aan de schermframeherhalingsfrequentie, maar de uitvinding is niet daartoe beperkt.To overcome missing or incorrect PTS and frame repeat frequency information and to obtain a smooth and even presentation of a video stream, we apply here: a frame buffer or queue in a kind of closed-loop control system as a solution to the problem described above. In the first part of the description, it is assumed that the average frame repetition frequency of the decoding provision output is equal to the screen frame repetition frequency, but the invention is not limited thereto.
FrameherhalingsfrequentieberekeningFrame refresh rate calculation
De gemiddelde frameherhalingsfrequentie van de uitgangsstroom van de decodeervoorziening wordt aangegeven door fs. Aangezien geen binnen-de-bandframeherhalingsfrequentie kan worden gebruikt, berekenen wij de gemiddelde frameherhalingsfrequentie fs door deze af te leiden van het totale tijdsbestek Taccn van n eerder gedecodeerde frames. Bij voorkeur wordt dit berekend als een voortschrijdend gemiddelde. De gemiddelde frameherhalingsfrequentie wordt geactualiseerd aan het eind van de decodering van elk frame. De gemiddelde frameduur Ts = = wordt geactualiseerd volgens fs. fsThe average frame repetition frequency of the output current of the decoding device is indicated by fs. Since no within-the-band frame repeat frequency can be used, we calculate the average frame repeat frequency fs by deriving it from the total time frame Taccn of n previously decoded frames. This is preferably calculated as a moving average. The average frame repetition frequency is updated at the end of the decoding of each frame. The average frame duration Ts = = is updated according to fs. fs
De gemiddelde frameherhalingsfrequentie wordt berekend over de tijdintervallen van bijvoorbeeld de laatste 60 frames die ontvangen werden door de wachtrij.The average frame repetition frequency is calculated over the time intervals of, for example, the last 60 frames received by the queue.
voorin front of
Zolang als n < 60 frames, wordt de frameherhalingsfrequentie niet gebruikt om nieuwe frameherhalingsfrequentie- en tijdinformatie te genereren. Indien een frameherhalingsfrequentie beneden 10 fps (frames per seconde) wordt berekend, wordt de frameherhalingsfrequentie ook niet gebruikt voor het genereren van nieuwe frameherhalingsfrequentie- en tijdinformatie, want een dergelijke lage frameherhalingsfrequentie geeft in de meeste gevallen het bestaan aan vanhetzij een instabiele stroom, hetzij een signaal verloren/gevonden situatie. Indien de stroom een frameherhalingsfrequentie heeft beneden een zekere waarde, bijvoorbeeld 10 fps, omdat sprake is van een minibeeldenstroom of dergelijke, leert de ervaring dat het beter is om de weergever zijn best te laten doen een dergelijke stroom weer te geven.As long as n <60 frames, the frame repeat frequency is not used to generate new frame repeat frequency and time information. If a frame repetition rate below 10 fps (frames per second) is calculated, the frame repetition frequency is also not used to generate new frame repetition frequency and time information, because such a low frame repetition frequency indicates in most cases the existence of either an unstable current or an unstable current. lost / found situation signal. If the stream has a frame repetition frequency below a certain value, for example 10 fps, because there is a mini-picture stream or the like, experience shows that it is better to let the reproducer do his best to display such a stream.
Wachtrij voor gedecodeerde framesQueue for decoded frames
Gedecodeerde frames worden in volgorde opgenomen in de framebuffer. De maximumwachtrijafmeting wordt aangegeven als Qmax en het minimumvulniveau van de wachtrij wordt aangegeven als Qmin . Het feitelijke vulniveau wordt aangegeven als P. In het algemeen:Decoded frames are included in order in the frame buffer. The maximum queue size is indicated as Qmax and the minimum fill level of the queue is indicated as Qmin. The actual fill level is indicated as P. In general:
Indien de wachtrij vol is (P = Qmax)' zullen nieuw in de wachtrij op te nemen frames de oudste frames in de wachtrij doen wegvallen.If the queue is full (P = Qmax) 'new frames to be added to the queue will cause the oldest frames in the queue to be dropped.
De keuze van en Qmin is belangrijk. De geheugengrootte die nodig is om de frames op te slaan in de wachtrijis proportioneel met (Qmax + 1)· De wachtrijvertraging is proportioneel metThe choice of and Qmin is important. The memory size required to store the frames in the queue is proportional to (Qmax + 1) · The queue delay is proportional to
wantbecause
is het aantal frames dat moet worden aangehouden in de wachtrij. Het is daarom belangrijk een minimumwaarde te vinden van Qmax en Qmin die onder praktische omstandigheden niet resulteert in wachtrijover- of onderbezetting.is the number of frames to be held in the queue. It is therefore important to find a minimum value of Qmax and Qmin that under practical circumstances do not result in queue overcrowding or understaffing.
Gesloten lus om het wachtrijvulniveau gelijk te houden aan QminClosed loop to keep the queue fill level equal to Qmin
Het huidige vulniveau van de wachtrij wordt gebruikt als de gesloten-lusregelwaarde. De opdracht van de gesloten lus is het huidige vulniveau P zo dicht mogelijk bij Qmtn te houden. Na het starten van de stroom begint de wachtrij niet met het afleveren van de frames aan de weergever zolang het vulniveau P < Qmin. Zodra het minimumvulniveau is bereikt, zal de wachtrij proberen P = Qmin te handhaven door bijstelling van de snelheid van de afgifte aan de weergever.The current fill level of the queue is used as the closed loop rule value. The command of the closed loop is to keep the current fill level P as close as possible to Qmtn. After starting the flow, the queue does not start delivering the frames to the viewer as long as the fill level P <Qmin. Once the minimum fill level is reached, the queue will attempt to maintain P = Qmin by adjusting the rate of delivery to the display.
Er zijn twee tijdelijke situaties: (1) Aanvankelijk wacht de gesloten lus met afgifte van frames aan de weergever tot p = Qmin is bereikt. (2) Indien P = Qmin is bereikt of P > Qmin, maar fs kan nog niet worden berekend, worden de volgende frames onmiddellijk afgeleverd. Tijdinformatie noch een duur worden gevoegd bij de frame-informatie; de weergever probeert onmiddellijk in te werken op het frame. Indien de interne structuren van de weergever vol zijn, laat deze het frame vallen.There are two temporary situations: (1) Initially, the closed loop with frame delivery waits until p = Qmin is reached. (2) If P = Qmin is reached or P> Qmin, but fs cannot be calculated yet, the following frames are delivered immediately. Neither time information nor a duration are added to the frame information; the viewer immediately tries to work on the frame. If the internal structures of the viewer are full, it will drop the frame.
Er zijn twee regimesituaties: (1) Indien P > Qmin en fs kan worden afgeleid, wordt het volgende frame onmiddellijk afgeleverd. Eraan gehecht wordt: de huidige tijd tnow en de duur ervan Ts, afgeleid van fs. Gewoonlijk wordt de weergever aangedreven door de schermframeherhalingsfrequentie V-Sync van het grafische toestel. Indien de weergever het frame niet kan behandelen voordat tnow + Ts, zal deze het frame laten vallen. (2) Indien P < Qmin zal de afgifte van frames vanuit de wachtrij worden vertraagd tijdens een tijd tsieep. De vertragingstijd is afhankelijk van het verschil tussen Qmin 6Π P ·There are two regime situations: (1) If P> Qmin and fs can be derived, the following frame is delivered immediately. The current time tnow and its duration Ts, derived from fs. Typically, the viewer is driven by the screen frame repetition rate V-Sync of the graphics device. If the viewer cannot handle the frame before tnow + Ts, it will drop the frame. (2) If P <Qmin, the delivery of frames from the queue will be delayed during a time tsep. The delay time depends on the difference between Qmin 6Π P ·
(vergelijking 1)(comparison 1)
De standaardwaarde vanThe default value of
en (voorwaarde 1) de standaardwaarde vanand (condition 1) the default value of
(voorwaarde 2)(condition 2)
Vergelijking 1 en voorwaarden 1 en 2 zijn beide experimenteel bepaald voor jittervrije werking, laagste totale vertraging en minimumgeheugengrootte, gebruikmakend van een groot aantal codeervoorzieningen van verschillende fabrikanten en met verschillende netwerkomstandigheden.Equation 1 and conditions 1 and 2 are both experimentally determined for jitter-free operation, lowest total delay and minimum memory size, using a large number of coding provisions from different manufacturers and with different network conditions.
Dit betekent dat de wachtrij 4 frames dient te bevatten voor optimale werking (.P = Qmin) en tslee%This means that the queue must contain 4 frames for optimal operation (.P = Qmin) and tslee%
voorin front of
De gemiddelde vertraging Tdeiay veroorzaakt door de wachtrij is:The average Tdeiay delay caused by the queue is:
Indien de afgifte van frame k aan de weergever wordt vertraagd met een tijd tsieep, zal de weergever frame (k — 1) herhalen.If the delivery of frame k to the viewer is delayed by a time, the viewer will repeat frame (k - 1).
Indien de weergever niet in staat is frames te verwerken, tengevolge van het aflopen van tnow + Ts of vanwege overbezetting in de wachtrij, dan wordt overgegaan tot het laten vallen van enkele frames.If the viewer is unable to process frames, due to the expiration of tnow + Ts or due to overcrowding in the queue, then a few frames are dropped.
Wachtrij onderbezetQueue understaffed
Indien de wachtrij zonder frames raakt vanwege een signaalverlies van de stroom of overmatige jitter in de stroom, dan moet de weergever het laatste frame verdubbelen.If the queue runs out of frames due to a signal loss from the stream or excessive jitter in the stream, the viewer must double the last frame.
Wachtrij overbezetQueue busy
Indien de wachtrij overloopt vanwege een burst (lawine) in de stroom of omdat het niet mogelijk is de frames zo snel als vereist af te leveren, laat de wachtrij de oudste frames in de wachtrij vallen om plaats te maken voor het nieuwe frame.If the queue overflows due to a burst in the stream or because it is not possible to deliver the frames as fast as required, the queue drops the oldest frames in the queue to make way for the new frame.
Loskoppelen van wachtrij en weergeverDisconnect from queue and viewer
Het accepteren van frames in de wachtrij en het afleveren van frames bij de weergever moeten gescheiden zijn. De wachtrij moet werken in een thread (uitvoerbaar programma(deel)) apart van de threads van de weergavetaken. Hierdoor wordt vermeden dat de wachtrijcapaciteit om verdere frames te accepteren geblokkeerd wordt door weergavevertragingen.Accepting frames in the queue and delivering frames to the viewer must be separate. The queue must work in a thread (executable program (part)) separate from the threads of the display tasks. This prevents the queue capacity to accept further frames from being blocked by display delays.
Gemiddelde frameherhalingsfrequentie van de binnenkomende stroom fs verschilt van de schermframeherhalingsfrequentie fd.Average frame repetition frequency of the incoming stream fs differs from the screen frame repetition frequency fd.
Het betreffende algoritme werkt ook indien de gemiddelde frameherhalingsfrequentie fs van de binnenkomende stroom verschilt van de schermframeherhalingsfrequentie fd. Het doel van de wachtrij is het jittervrijmaken van de stroom. De wachtrij wordt gevuld met frames van de decodeervoorziening met een gemiddelde snelheid gelijk aan fs . Dit betekent dat de wachtrij frames moet afleveren bij de weergever ook met een gemiddelde snelheid fs. (1)The relevant algorithm also works if the average frame repetition frequency fs of the incoming stream differs from the screen frame repetition frequency fd. The purpose of the queue is to make the power jitter free. The queue is filled with frames of the decoder with an average speed equal to fs. This means that the queue must deliver frames to the viewer also with an average speed fs. (1)
Indien de gemiddelde frameherhalingsfrequentie van de stroom lager is dan de frameherhalingsfrequentie van het scherm, moet de weergever frames zelf herhalen. (2)If the average frame repetition frequency of the stream is lower than the frame repetition frequency of the screen, the viewer must repeat frames himself. (2)
Indien de frameherhalingsfrequentie van de stroom hoger is dan de frameherhalingsfrequentie van het scherm, loopt de wachtrij over en laat frames vallen, want de weergever accepteert niet meer data dan deze kan verwerken.If the frame repetition frequency of the stream is higher than the frame repetition frequency of the screen, the queue overflows and drops frames, because the viewer does not accept more data than it can process.
Andere uitvoeringsvormen van de uitvindingOther embodiments of the invention
De uitvinding is bruikbaar voor alle gevallen waarbij videoframes moeten worden gepresenteerd, weergegeven of getoond in overeenstemming met ongeacht welk tijdvereiste ofwel in absolute tijd of relatief met betrekking tot elkaar of beide, bijvoorbeeld tijdvereisten verwant met het realiseren van een vloeiende presentatie van een videostroom, bijvoorbeeld door uitvoering van een gelijkmatige presentatie in het tempo van de videoframes.The invention is useful for all cases where video frames are to be presented, displayed or shown in accordance with any time requirement either in absolute time or relative to each other or both, e.g. time requirements related to the realization of a smooth presentation of a video stream, e.g. by performing an even presentation at the pace of the video frames.
Verder zal duidelijk zijn dat de uitvinding eveneens toegepast kan worden in situaties waarbij meervoudige wachtrijen worden gebruikt (bijvoorbeeld gerelateerd aan verschillende typen videoframes) en dat de parameters zoals minimumbuffervul niveau, maximumbuffervul niveau, vertragingberekening-parameters kunnen verschillen per wachtrij.Furthermore, it will be understood that the invention can also be applied in situations where multiple queues are used (e.g. related to different types of video frames) and that the parameters such as minimum buffer fill level, maximum buffer fill level, delay calculation parameters may differ per queue.
De uitvinding gaat over het beheren van een of meer wachtrijen (aangeduid als framebuffer(s)) voor gedecodeerde frames, waarbij gedecodeerde frames in volgorde worden opgenomen, met name het uitvoeren van de uitgevonden werkwijzen in een of meer verschillende situaties zoals (1) indien de wachtrij vol is (P = Qmax) of bijna vol, bij een vervangingsstrategie (bijvoorbeeld nieuw in de wachtrij op te nemen frames laten de oudste frames in de wachtrij wegvallen) of alternatieve strategieën; of (2) in nog andere situaties.The invention relates to managing one or more queues (referred to as frame buffer (s)) for decoded frames, wherein decoded frames are recorded in sequence, in particular performing the invented methods in one or more different situations such as (1) if the queue is full (P = Qmax) or almost full, with a replacement strategy (for example new frames to be added to the queue, the oldest frames in the queue are dropped) or alternative strategies; or (2) in other situations.
Zoals hiervoor uiteengezet, kan een gesloten lus worden gebruikt om het wachtrijvulniveau gelijk aan Qmin te houden maar in feite kan elk doelgetal tussen Qmiri en Qmax worden geselecteerd. Het huidige vulniveau van de wachtrij wordt gebruikt als de controlewaarde en elke willekeurige controlestrategie (bijvoorbeeld PID) kan daarbij worden gebruikt (open lus, gesloten lus) op basis van het huidige vulniveau P, maar tevens van eerdere waarden of zelfs voorspelde waarden, bij voorkeur met de opdracht het huidige vulniveau P zo dicht mogelijk te houden bij een doelwaarde (vast of variërend in de tijd)As explained above, a closed loop can be used to keep the queue fill level equal to Qmin, but in fact any target number between Qmiri and Qmax can be selected. The current fill level of the queue is used as the control value and any control strategy (for example PID) can be used (open loop, closed loop) based on the current fill level P, but also from previous values or even predicted values, preferably with the command to keep the current filling level P as close as possible to a target value (fixed or varying over time)
Vanzelfsprekend zijn de uitgevonden werkwijzen in staat initialisatie of tijdelijke aspecten bij het vullen van de wachtrij te herkennen.Of course, the invented methods are capable of recognizing initialization or temporary aspects when filling the queue.
In een uitvoeringsvorm van de uitgevonden werkwijzen worden berekende of geschatte frameherhalingsfrequentiedata gebruikt en zijn de uitgevonden werkwijzen (voor wachtrijbeheerperspectief of weergavebeheer of beide) in staat te werken zelfs wanneer zulke data niet betrouwbaar zijn (c.q. geacht worden niet betrouwbaar te zijn).In one embodiment of the invented methods, calculated or estimated frame repetition frequency data is used and the invented methods (for queue management perspective or display management or both) are capable of operating even when such data are not reliable (or are deemed not to be reliable).
Verder voorzien de uitgevonden werkwijzen in een oplossing om blokkeren te vermijden tengevolge van weergavevertragingen, door het accepteren van frames in de wachtrij en het verder afleveren van frames bij de weergever van elkaar te ontkoppelen, door gebruik te maken van multi-threading, waarbij de verschillende sub-werkwijzen aparte threads hebben.Furthermore, the invented methods provide a solution to avoid blocking due to display delays, by accepting frames in the queue and further delivering frames to the display from each other, by using multi-threading, the different sub-methods have separate threads.
Zoals hiervoor aangegeven kunnen de uitgevonden werkwijzen zich baseren op frameherhalingsfrequentieberekeningen, uitgaande van historische gemiddelde data, waarbij deze werkwijzen bij voorkeur alleen worden ingeschakeld wanneer deze betrouwbare data kunnen produceren.As indicated above, the invented methods can be based on frame repetition frequency calculations, starting from historical average data, these methods preferably being enabled only when they can produce reliable data.
Tenslotte kan worden gesteld dat de uitvinding betrekking heeft op een werkwijze voor het beheren van de wachtrij van videoframes tussen een decodeervoorziening en de weergever, op basis van het bepalen van het huidige vulniveau van de wachtrij en bijstellen van de afgifte aan de weergever uitgaande van ten minste het huidige vulniveau van de wachtrij; en op de combinatie van genoemde werkwijze met frameschatting en/of de combinatie met weergevercontrole.Finally, it can be said that the invention relates to a method for managing the queue of video frames between a decoder and the reproducer, on the basis of determining the current fill level of the queue and adjusting the output to the reproducer from least the current fill level of the queue; and on the combination of said method with frame estimation and / or the combination with viewer control.
Afb. 3 toont een systeem met een eerste subsysteem (bijvoorbeeld een decodeervoorziening) (10), een wachtrij (20) en een tweede subsysteem (bijvoorbeeld een weergever) (30), eerste middelen (CPU, GPU, ASIC) (40), het meten van wachtrijinformatie (huidige en/of voorgaande) en het creëren, op basis daarvan, van signalen voor het accepteren van frames in de wachtrij en/of het overdragen van frames buiten de wachtrij; en verder tweede middelen (CPU, GPU, ASIC) (50) voor het genereren van stuursignalen voor het tweede subsysteem. Genoemde middelen kunnen communiceren met elkaar en kunnen verder eerste subsysteeminformatie ontvangen. Merk op dat (30)(40) mogelijk één systeem is maar dat bij voorkeur de werkwijzen voor wachtrij- en tweede-subsysteembeheer (of zelfs beheer van het eerste subsysteem) gebruik maken van een eigen controle-thread.Fig. 3 shows a system with a first subsystem (e.g. a decoding facility) (10), a queue (20) and a second subsystem (e.g. a viewer) (30), first means (CPU, GPU, ASIC) (40), measuring of queue information (current and / or preceding) and the creation, on that basis, of signals for accepting frames in the queue and / or transferring frames outside the queue; and further second means (CPU, GPU, ASIC) (50) for generating control signals for the second subsystem. Said means can communicate with each other and can further receive first subsystem information. Note that (30) (40) may be one system, but preferably the methods for queue and second subsystem management (or even management of the first subsystem) use its own control thread.
Afb. 4 toont een algemeen stroomschema van een werkwijze (100) voor het bepalen van een afgiftesnelheid (als onderdeel van het beheren van het wachtrijvulniveau), een werkwijze (120) voor het beheren van de weergave (als onderdeel van het tot stand brengen van kwaliteitsweergave) en/of een werkwijze (130) voor het bepalen van geschatte frameherhalingsfrequentie-informatie, waarbij met name het vulniveau (105) wordt ingevoerd, resulterend in een afgiftesnelheid (115), terwijl de uitkomst (125) is: ofwel weergave op basis van toegevoegde tijdinformatie (zoals op basis van een geschatte frameherhalingsfrequentie) of weergave op basis van het gewoon herhalen van een frame of het gewoon laten vallen van een frame. De invoer (135) heeft betrekking op de tijd doorgebracht in een wachtrij en is gebaseerd op de betrouwbaarheid van de schatting, waarbij voorzien wordt in aan te hechten tijdinformatie (145).Fig. 4 shows a general flow chart of a method (100) for determining a release rate (as part of managing the queue zero level), a method (120) for managing the display (as part of establishing quality display) and / or a method (130) for determining estimated frame repetition frequency information, in particular the filling level (105) being input, resulting in a release rate (115), while the result (125) is: either display based on added time information (such as based on an estimated frame repetition frequency) or display based on simply repeating a frame or dropping a frame. The entry (135) relates to the time spent in a queue and is based on the reliability of the estimate, providing time information to be appended (145).
Claims (49)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1223407.6A GB2509313A (en) | 2012-12-27 | 2012-12-27 | Managing a queue of video frames using the current queue fill level |
GB12234076 | 2012-12-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
BE1022040B1 true BE1022040B1 (en) | 2016-02-08 |
Family
ID=47682607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BE2013/0873A BE1022040B1 (en) | 2012-12-27 | 2013-12-24 | METHOD AND SYSTEM FOR MANAGING A VIDEO FRAME WAITING LINE. |
Country Status (3)
Country | Link |
---|---|
BE (1) | BE1022040B1 (en) |
GB (1) | GB2509313A (en) |
WO (1) | WO2014102337A1 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150350656A1 (en) * | 2014-05-30 | 2015-12-03 | Qualcomm Innovation Center, Inc. | Dynamic video core clock and voltage scaling |
CN112887510A (en) * | 2021-01-19 | 2021-06-01 | 三一重工股份有限公司 | Video playing method and system based on video detection |
CN112929741B (en) * | 2021-01-21 | 2023-02-03 | 杭州雾联科技有限公司 | Video frame rendering method and device, electronic equipment and storage medium |
CN113347488B (en) * | 2021-08-04 | 2021-11-19 | 腾讯科技(深圳)有限公司 | Video rendering method, device, equipment and storage medium |
CN114205662B (en) * | 2021-12-13 | 2024-02-20 | 北京蔚领时代科技有限公司 | Low-delay video rendering method and device of iOS (integrated operation system) terminal |
CN115190325B (en) * | 2022-07-01 | 2023-09-05 | 广州市百果园信息技术有限公司 | Frame loss control method, device, equipment, storage medium and program product |
CN116389719B (en) * | 2023-06-07 | 2023-08-15 | 安元科技股份有限公司 | Video analysis frame extraction and inspection optimization system and method based on polling frame extraction |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812699A (en) * | 1995-12-07 | 1998-09-22 | Intel Corporation | Counter-based controller for video compression |
US6690645B1 (en) * | 1999-12-06 | 2004-02-10 | Nortel Networks Limited | Method and apparatus for active queue management based on desired queue occupancy |
WO2004045197A2 (en) * | 2002-11-07 | 2004-05-27 | Thomson Licensing S.A. | A system and method for determining lip synchronization between audio and video in a digitized environment using buffer calculation |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5677969A (en) * | 1995-02-23 | 1997-10-14 | Motorola, Inc. | Method, rate controller, and system for preventing overflow and underflow of a decoder buffer in a video compression system |
US7684336B2 (en) * | 2006-11-09 | 2010-03-23 | Sri International | Real-time video packet monitoring and processing for enhanced quality of service |
US8483286B2 (en) * | 2010-10-27 | 2013-07-09 | Cyberlink Corp. | Batch processing of media content |
-
2012
- 2012-12-27 GB GB1223407.6A patent/GB2509313A/en not_active Withdrawn
-
2013
- 2013-12-24 BE BE2013/0873A patent/BE1022040B1/en active
- 2013-12-27 WO PCT/EP2013/078066 patent/WO2014102337A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812699A (en) * | 1995-12-07 | 1998-09-22 | Intel Corporation | Counter-based controller for video compression |
US6690645B1 (en) * | 1999-12-06 | 2004-02-10 | Nortel Networks Limited | Method and apparatus for active queue management based on desired queue occupancy |
WO2004045197A2 (en) * | 2002-11-07 | 2004-05-27 | Thomson Licensing S.A. | A system and method for determining lip synchronization between audio and video in a digitized environment using buffer calculation |
Also Published As
Publication number | Publication date |
---|---|
GB201223407D0 (en) | 2013-02-06 |
GB2509313A (en) | 2014-07-02 |
WO2014102337A1 (en) | 2014-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BE1022040B1 (en) | METHOD AND SYSTEM FOR MANAGING A VIDEO FRAME WAITING LINE. | |
US11706272B2 (en) | Adaptive streaming with early client indication | |
US10499071B2 (en) | Dynamic bit rate adaptation over bandwidth varying connection | |
US9485298B2 (en) | Device with video buffer modeling and methods for use therewith | |
US11317171B2 (en) | Viewer importance adaptive bit rate delivery | |
EP3391654B1 (en) | Variable buffer handling for adaptive bitrate streaming | |
CA2888218C (en) | Playback stall avoidance in adaptive media streaming | |
EP3448041A1 (en) | Video player client, system, and method for live broadcast video synchronization | |
EP3563575B1 (en) | Transmission parameter control for segment delivery | |
KR101931407B1 (en) | Integral controller based pacing for http pseudo-streaming | |
US20130262694A1 (en) | Buffering in HTTP Streaming Client | |
US20120297430A1 (en) | Central controller to manage network resources across a group of playback devices to control streaming video quality across the group of playback devices | |
US20190364311A1 (en) | Managing congestion response during content delivery | |
EP2633690A1 (en) | Delivery quality of experience (qoe) in a computer network | |
CN112929741A (en) | Video frame rendering method and device, electronic equipment and storage medium | |
US20180367827A1 (en) | Player client terminal, system, and method for implementing live video synchronization | |
US20160050243A1 (en) | Methods and devices for transmission of media content | |
US20120089730A1 (en) | Modifying command sequences | |
WO2011119132A2 (en) | Variable bit rate video streaming over peer-to-peer networks | |
EP3479581B1 (en) | Methods and nodes for synchronized streaming of a first and a second data stream | |
US10313759B1 (en) | Enabling playback and request of partial media fragments | |
US11206295B1 (en) | System and method for streaming content selection | |
WO2021013558A1 (en) | A media client with adaptive buffer size and the related method | |
JP6501691B2 (en) | Client device of content distribution system, method and program for determining playback start timing of content | |
US20130141596A1 (en) | Transmitter, transmission method, and program |