BE1022040B1 - METHOD AND SYSTEM FOR MANAGING A VIDEO FRAME WAITING LINE. - Google Patents

METHOD AND SYSTEM FOR MANAGING A VIDEO FRAME WAITING LINE. Download PDF

Info

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
Application number
BE2013/0873A
Other languages
Dutch (nl)
Inventor
Mirko Gunther
Mirek Chalinski
Original Assignee
Barco Nv.
Barco Control Rooms Gmbh
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 Barco Nv., Barco Control Rooms Gmbh filed Critical Barco Nv.
Application granted granted Critical
Publication of BE1022040B1 publication Critical patent/BE1022040B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/172Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing 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/44004Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/87Regeneration of colour television signals
    • H04N9/877Regeneration of colour television signals by assembling picture element blocks in an intermediate memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-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)

ConclusiesConclusions 1. Werkwijze voor het beheren van de wachtrij van videoframes tussen een decodeervoorziening en de weergever, omvattend de volgende stappen: - het bepalen van het huidige vulniveau van de wachtrij; en - het bijstellen van de afgifte aan de weergever door vergelijking van ten minste 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.A method for managing the queue of video frames between a decoder and the reproducer, comprising the steps of: - determining the current fill level of the queue; and - adjusting the delivery to the reproducer by comparing at least 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. 2. Werkwijze volgens conclusie 1, waarbij genoemde stap van het bijstellen van de afgifte alleen uitgevoerd kan worden wanneer het huidige vulniveau hoger is dan een tweede vooraf bepaald vulniveau.The method of claim 1, wherein said step of adjusting the release can only be performed when the current fill level is higher than a second predetermined fill level. 3. Werkwijze volgens conclusie 2, waarbij, wanneer genoemde stap van het bijstellen van de afgifte niet uitgevoerd kan worden, afgifte van de videoframes wordt vertraagd.The method of claim 2, wherein, if said step of adjusting the release cannot be performed, release of the video frames is delayed. 4. Werkwijze volgens conclusie 3, waarbij de vertraging afhankelijk is van het verschil tussen het huidige vulniveau en het tweede vooraf bepaalde vulniveau.The method of claim 3, wherein the delay is dependent on the difference between the current fill level and the second predetermined fill level. 5. Werkwijze volgens conclusie 2, 3 of 4, waarbij de eerste en tweede vooraf bepaalde vulniveaus gelijk zijn.The method of claim 2, 3 or 4, wherein the first and second predetermined fill levels are the same. 6. Werkwijze volgens een van de voorgaande conclusies, waarbij, indien het huidige vulniveau een derde vooraf bepaald vulniveau overschrijdt, nieuw in de wachtrij op te nemen frames de oudste frames in de wachtrij laten vallen.A method according to any of the preceding claims, wherein if the current fill level exceeds a third predetermined fill level, new frames to be included in the queue drop the oldest frames into the queue. 7. Werkwijze volgens een van de voorgaande conclusies, waarbij, in het geval dat een betrouwbare schatting van de videoframeherhalingsfrequentie kan worden berekend, tijdinformatie gehecht wordt aan een videoframe voordat het videoframe wordt afgeleverd bij de weergever.The method according to any of the preceding claims, wherein, 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. 8. Werkwijze volgens conclusie 7, waarbij een betrouwbare schatting geacht wordt beschikbaar te zijn wanneer een vooraf gedefinieerde minimumhoeveelheid videoframes de wachtrij heeft doorlopen.The method of claim 7, wherein a reliable estimate is deemed to be available when a predefined minimum amount of video frames has passed through the queue. 9. Werkwijze volgens conclusie 7 of 8, waarbij een betrouwbare schatting geacht wordt beschikbaar te zijn wanneer de videoframeherhalingsfrequentie (volgens de schatting) een vooraf gedefinieerde minimumframeherhalingsfrequentie overschrijdt.The method of claim 7 or 8, wherein a reliable estimate is deemed to be available when the video frame repetition frequency (according to the estimate) exceeds a predefined minimum frame repetition frequency. 10. Werkwijze volgens conclusie 7, 8 of 9, waarbij de schatting van de videoframeherhalingsfrequentie wordt bepaald uit de totale verblijfstijd in de wachtrij van een vooraf bepaalde hoeveelheid videoframes (gelijk aan de vooraf gedefinieerde minimumhoeveelheid).The method of claim 7, 8 or 9, wherein the estimate of the video frame repetition frequency is determined from the total residence time in the queue of a predetermined amount of video frames (equal to the predefined minimum amount). 11. Werkwijze volgens conclusie 9 of 10, waarbij deze schatting wordt geactualiseerd bij het decoderen van een nieuw frameThe method according to claim 9 or 10, wherein this estimate is updated when decoding a new frame 12. Werkwijze volgens conclusie 9, 10 of 11, waarbij genoemde schatting wordt berekend als een voortschrijdend gemiddelde.The method of claim 9, 10 or 11, wherein said estimate is calculated as a moving average. 13. Werkwijze voor het behandelen van videoframes door een weergever, op basis van de werkwijze volgens een van de voorgaande conclusies voor afgifte van videoframes uit de wachtrij tussen een decodeervoorziening en de weergever; waarbij de weergever het videoframe laat vallen indien afgeleverd wanneer het videoframegeheugen van de weergever vol is.A method of handling video frames by a viewer, based on the method of any one of the preceding claims, for delivering video frames from the queue between a decoder and the viewer; the viewer dropping the video frame when delivered when the video frame memory of the viewer is full. 14. Werkwijze voor het behandelen van videoframes door een weergever, op basis van de werkwijze volgens een van de voorgaande conclusies voor afgifte van videoframes uit de wachtrij tussen een decodeervoorziening en de weergever; verder omvattend de volgende stappen: - hechten van een tijdindicatie aan een afgeleverd videoframe; en - laten vallen, door de weergever, van het videoframe indien de weergever het videoframe niet met een zodanige weergavesnelheid kan weergeven dat de aan het videoframe gehechte tijdindicatie binnen een vooraf bepaald tijdvenster valt.A method for handling video frames by a viewer, based on the method according to any of the preceding claims, for delivering video frames from the queue between a decoder and the viewer; further comprising the following steps: - attaching a time indication to a delivered video frame; and - dropping, by the reproducer, the video frame if the reproducer cannot display the video frame at such a display speed that the time indication attached to the video frame falls within a predetermined time window. 15. Werkwijze volgens een van de voorgaande conclusies voor het behandelen van videoframes door een weergever, waarbij de weergever het videoframe weergeeft in overeenstemming met de aangehechte tijdindicatie.A method according to any one of the preceding claims for treating video frames by a viewer, the viewer displaying the video frame in accordance with the attached time indication. 16. Werkwijze volgens een van de voorgaande conclusies, waarbij de tijdindicatie gebaseerd is op de geschatte videoframeherhalingsfrequentie.The method of any one of the preceding claims, wherein the time indication is based on the estimated video frame repetition frequency. 17. Werkwijze volgens een van de voorgaande conclusies voor het behandelen van videoframes door een weergever, waarbij de weergever weergave van een voorgaand videoframe herhaalt indien andere videoframes vertraagd zijn.A method according to any preceding claim for treating video frames by a viewer, the viewer repeating display of a previous video frame if other video frames are delayed. 18. 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 voor het bepalen van het huidige vulniveau van de wachtrij; en - middelen voor het bijstellen van de afgifte aan de weergever door ten minste het huidige vulniveau van de wachtrij te vergelijken met een eerste vooraf bepaald vulniveau om het huidige vulniveau P zo dicht mogelijk bij dit eerste vooraf bepaalde vulniveau te houden.A controller suitable for managing the queue of a system, comprising a decoder, a queue for temporarily storing multiple video frames and a reproducer, the controller comprising: - means for determining the current filling level of the queue; and - means for adjusting the delivery to the reproducer by comparing at least the current filling level of the queue with a first predetermined filling level to keep the current filling level P as close as possible to this first predetermined filling level. 19. Besturingsorgaan volgens conclusie 18, waarbij de middelen voor het bijstellen aangepast zijn zodat de afgifte alleen kan plaatsvinden wanneer het huidige vulniveau hoger is dan een tweede vooraf bepaald vulniveau.The controller of claim 18, wherein the means for adjusting is adjusted so that delivery can only take place when the current fill level is higher than a second predetermined fill level. 20. Besturingsorgaan volgens conclusie 19, waarbij de middelen voor het bijstellen aangepast zijn, zodat, indien de afgifte niet uitgevoerd kan worden, afgifte van de videoframes vertraagd wordt.The controller of claim 19, wherein the means for adjusting is adjusted so that if the delivery cannot be performed, delivery of the video frames is delayed. 21. Besturingsorgaan volgens conclusie 20, aangepast zodat de vertraging afhankelijk is van het verschil tussen het huidige vulniveau en het tweede vooraf bepaalde vulniveau.The controller of claim 20, adapted so that the delay is dependent on the difference between the current fill level and the second predetermined fill level. 22. Besturingsorgaan volgens conclusie 19, 20 of 21, aangepast zodat de eerste en tweede vooraf bepaalde vulniveaus gelijk zijn.The controller of claim 19, 20 or 21, adapted so that the first and second predetermined fill levels are equal. 23. Besturingsorgaan volgens een van conclusies 18 tot en met 22, aangepast zodat, indien het huidige vulniveau een derde vooraf bepaald vulniveau overschrijdt, nieuw in de wachtrij op te nemen frames de oudste frames in de wachtrij laten vallen.A controller according to any of claims 18 to 22, adapted so that if the current fill level exceeds a third predetermined fill level, new frames to be included in the queue drop the oldest frames into the queue. 24. Besturingsorgaan volgens een van conclusies 18 tot en met 23, aangepast zodat, in het geval dat een betrouwbare schatting van de videoframe-herhalingsfrequentie kan worden berekend, tijdinformatie gehecht wordt aan een videoframe voordat het videoframe afgeleverd wordt aan de weergever.A controller according to any of claims 18 to 23, adapted so that, in the case that a reliable estimate of the video frame repeat frequency can be calculated, time information is attached to a video frame before the video frame is delivered to the reproducer. 25. Besturingsorgaan volgens conclusie 24, aangepast zodat een betrouwbare schatting geacht wordt beschikbaar te zijn wanneer een vooraf gedefinieerde minimumhoeveelheid videoframes de wachtrij heeft doorlopen.The controller of claim 24, adapted so that a reliable estimate is deemed to be available when a predefined minimum amount of video frames has passed through the queue. 26. Besturingsorgaan volgens conclusie 24 of 25, aangepast zodat een betrouwbare schatting geacht wordt beschikbaar te zijn wanneer de videoframe-herhalingsfrequentie (volgens de schatting) een vooraf gedefinieerde minimum-frameherhalingsfrequentie overschrijdt.A controller according to claim 24 or 25, adapted so that a reliable estimate is deemed to be available when the video frame repeat frequency (according to the estimate) exceeds a predefined minimum frame repeat frequency. 27. Besturingsorgaan volgens conclusie 24, 25 of 26, aangepast zodat de schatting van de videoframeherhalingsfrequentie bepaald wordt uit de totale verblijfstijd van een vooraf bepaalde hoeveelheid videoframes (gelijk aan de vooraf gedefinieerde minimumhoeveelheid) in de wachtrij.A controller according to claim 24, 25 or 26, adapted so that the estimate of the video frame repetition frequency is determined from the total residence time of a predetermined amount of video frames (equal to the predefined minimum amount) in the queue. 28. Besturingsorgaan volgens conclusie 26 of 27, aangepast zodat deze schatting wordt geactualiseerd bij het decoderen van een nieuw frame.A controller according to claim 26 or 27, adapted so that this estimate is updated when decoding a new frame. 29. Besturingsorgaan volgens conclusie 26, 27, 28, aangepast zodat genoemde schatting wordt berekend als een voortschrijdend gemiddelde.The controller of claim 26, 27, 28, adapted so that said estimate is calculated as a moving average. 30. Systeem, omvattend 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 omvat: . - middelen voor het bepalen van het huidige vulniveau van de wachtrij; en - middelen voor het bijstellen van de afgifte aan de weergever door vergelijking van ten minste 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.A system comprising 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 determining the current filling level of the queue; and - means for adjusting the delivery to the reproducer by comparing at least 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. 31. Systeem volgens conclusie 30, waarbij de middelen voor het bijstellen aangepast zijn zodat de afgifte alleen kan plaatsvinden wanneer het huidige vulniveau hoger is dan een tweede vooraf bepaald vulniveau.The system of claim 30, wherein the means for adjusting is adjusted so that delivery can only take place when the current fill level is higher than a second predetermined fill level. 32. Systeem volgens conclusie 31, waarbij de middelen voor het bijstellen aangepast zijn zodat de afgifte niet kan plaatsvinden en afgifte van de videoframes wordt vertraagd.The system of claim 31, wherein the means for adjusting is adjusted so that delivery cannot take place and delivery of the video frames is delayed. 33. Systeem volgens conclusie 32, aangepast zodat de vertraging afhankelijk is van het verschil tussen het huidige vulniveau en het tweede vooraf bepaalde vulniveau.The system of claim 32, adapted so that the delay depends on the difference between the current fill level and the second predetermined fill level. 34. Systeem volgens conclusie 31, 32 of 33, aangepast zodat de eerste en tweede vooraf bepaalde vulniveaus gelijk zijn.The system of claim 31, 32 or 33, adapted so that the first and second predetermined fill levels are equal. 35. Systeem volgens een van conclusies 30 tot en met 34, aangepast zodat, indien het huidige vulniveau een derde vooraf bepaald vulniveau overschrijdt, nieuwe in de wachtrij op te nemen frames de oudste frames in de wachtrij laten vallen.The system of any of claims 30 to 34, adapted so that if the current fill level exceeds a third predetermined fill level, new frames to be included in the queue drop the oldest frames into the queue. 36. Systeem volgens een van conclusies 30 tot en met 35, aangepast zodat, in het geval dat een betrouwbare schatting van de videoframeherhalingsfrequentie berekend kan worden, tijdinformatie gehecht wordt aan een videoframe voordat het videoframe wordt afgeleverd aan de weergever.A system according to any of claims 30 to 35, adapted so that, 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. 37. Systeem volgens conclusie 36, aangepast zodat een betrouwbare schatting geacht wordt beschikbaar te zijn wanneer een vooraf gedefinieerde minimumhoeveelheid videoframes de wachtrij heeft doorlopen.The system of claim 36 adapted so that a reliable estimate is deemed to be available when a predefined minimum amount of video frames has passed through the queue. 38. Systeem volgens conclusie 36 of 37, aangepast zodat een betrouwbare schatting geacht wordt beschikbaar te zijn wanneer de videoframeherhalingsfrequentie (volgens de schatting) een vooraf gedefinieerde minimum- frameherhalingsfrequentie overschrijdt.The system of claim 36 or 37, adapted so that a reliable estimate is deemed to be available when the video frame repetition frequency (according to the estimate) exceeds a predefined minimum frame repetition frequency. 39. Systeem volgens conclusie 36, 37 of 38, aangepast zodat de schatting van de videoframeherhalingsfrequentie bepaald wordt uit de totale verblijfstijd in de wachtrij van een vooraf bepaalde hoeveelheid videoframes (gelijk aan de vooraf gedefinieerde minimumhoeveelheid).The system of claim 36, 37 or 38, adapted so that the estimate of the video frame repetition frequency is determined from the total residence time in the queue of a predetermined amount of video frames (equal to the predefined minimum amount). 40. Systeem volgens conclusie 38 of 39, aangepast zodat deze schatting geactualiseerd wordt bij het decoderen van een nieuw frame.The system of claim 38 or 39, adapted so that this estimate is updated when decoding a new frame. 41. Systeem volgens conclusie 38, 39 of 40, waarbij genoemde schatting berekend wordt als een voortschrijdend gemiddelde.The system of claim 38, 39 or 40, wherein said estimate is calculated as a moving average. 42. Systeem volgens een van conclusies 30 tot en met 41, waarbij de weergever het videoframe laat vallen indien dit afgeleverd wordt wanneer het videoframegeheugen van de weergever vol is.The system of any of claims 30 to 41, wherein the viewer drops the video frame if it is delivered when the video frame memory of the viewer is full. 43. Systeem volgens een van conclusies 30 tot en met 42, verder omvattend: - middelen voor het hechten van een tijdindicatie aan een afgeleverd videoframe; waarbij de weergever aangepast is zodat, indien de weergever het videoframe niet met een zodanige weergavesnelheid kan weergeven dat de aan het videoframe gehechte tijdindicatie binnen een vooraf bepaald tijdvenster valt, de weergever het videoframe laat vallen.A system according to any of claims 30 to 42, further comprising: - means for attaching a time indication to a delivered video frame; wherein the reproducer is adapted so that if the reproducer cannot display the video frame at such a display speed that the time indication attached to the video frame falls within a predetermined time window, the reproducer drops the video frame. 44. Systeem volgens conclusie 43, waarbij de weergever aangepast is voor het weergeven van het videoframe in overeenstemming met de aangehechte tijdindicatie.The system of claim 43, wherein the viewer is adapted to display the video frame in accordance with the attached time indication. 45. Systeem volgens een van conclusies 30 tot en met 44, aangepast zodat de tijdindicatie gebaseerd is op de geschatte videoframeherhalingsfrequentie.The system of any of claims 30 to 44, adapted so that the time indication is based on the estimated video frame repetition frequency. 46. Systeem volgens een van conclusies 20 tot en met 45, waarbij de weergever aangepast is voor het herhalen van de weergave van een voorafgaand videoframe indien andere videoframes vertraging hebben opgelopen.The system of any of claims 20 to 45, wherein the viewer is adapted to repeat the display of a previous video frame if other video frames have been delayed. 47. Computerprogrammaproduct omvattend codesegmenten die, wanneer uitgevoerd op een geschikte verwerkingsmachine, de stappen van een van de werkwijzen van conclusies 1 tot en met 17 implementeren.A computer program product comprising code segments which, when executed on a suitable processing machine, implement the steps of any of the methods of claims 1 to 17. 48. Computerprogrammaproduct volgens conclusie 47, waarbij de stappen van de werkwijzen volgens conclusies 1 tot en met 17 samenhangend met wachtrijbeheer en de stappen van de werkwijzen volgens conclusies 1 tot en met 17 samenhangend met de weergever gebruikmaken van afzonderlijke threads.The computer program product of claim 47, wherein the steps of the methods of claims 1 to 17 associated with queue management and the steps of the methods of claims 1 to 17 associated with the viewer use separate threads. 49. Machineleesbaar signaalopslagmedium, waarin het computerprogrammaproduct volgens conclusie 47 of 48 is opgeslagen.A machine-readable signal storage medium, wherein the computer program product according to claim 47 or 48 is stored.
BE2013/0873A 2012-12-27 2013-12-24 METHOD AND SYSTEM FOR MANAGING A VIDEO FRAME WAITING LINE. BE1022040B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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