RS64742B1 - Smanjenje kašnjenja kod video kodiranja i dekodiranja - Google Patents

Smanjenje kašnjenja kod video kodiranja i dekodiranja

Info

Publication number
RS64742B1
RS64742B1 RS20230857A RSP20230857A RS64742B1 RS 64742 B1 RS64742 B1 RS 64742B1 RS 20230857 A RS20230857 A RS 20230857A RS P20230857 A RSP20230857 A RS P20230857A RS 64742 B1 RS64742 B1 RS 64742B1
Authority
RS
Serbia
Prior art keywords
frame
frames
delay
reorder
syntax
Prior art date
Application number
RS20230857A
Other languages
English (en)
Inventor
Gary J Sullivan
Original Assignee
Microsoft Technology Licensing Llc
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 Microsoft Technology Licensing Llc filed Critical Microsoft Technology Licensing Llc
Publication of RS64742B1 publication Critical patent/RS64742B1/sr

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/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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • 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/184Methods 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 bits, e.g. of the compressed video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

Opis
[0001] Inženjeri koriste kompresiju (koja se takođe naziva izvorno kodiranje ili izvorno enkodiranje) kako bi se smanjila brzina prenosa digitalnog videa. Kompresija smanjuje troškove skladištenja i prenošenja video informacija konvertovanjem tih informacija u oblik manje brzine prenosa.
Dekompresija (koja se takođe naziva dekodiranje) rekonstruiše verziju originalnih informacija iz kompresovanog oblika. "Kodek" predstavlja sistem za kodiranje/dekodiranje.
[0002] Tokom prethodne dve decenije, usvajani su razni standardi za video-kodek, uključujući H.261, H.262 (MPEG-2 ili ISO/IEC 13818-2), H.263 i H.264 (AVC ili ISO/IEC 14496-10) standardi i MPEG-1 (ISO/IEC 11172-2), MPEG-4 Visual (ISO/IEC 14496-2) i SMPTE 421M standarde. U novije vreme, u razvoju je HEVC standard. Standard za video-kodek obično definiše opcije za sintaksu enkodiranog protoka bitova videa, pri čemu se detaljno obezbeđuju parametri u protoku bitova kada se određene karakteristike koriste u kodiranju i dekodiranju (cf. US 2010/0266012A1 ili P. V. Rangan et al.:
"Continuity and Synchronization in MPEG", IEEE Journal on Selected Areas in Comunications, vol.14, No.
1, January 1996). U mnogim slučajevima, standard za video-kodek takođe obezbeđuje detalje o operacijama dekodiranja koje bi dekoder trebalo da izvodi kako bi se postigli ispravni rezultati kod dekodiranja.
[0003] Osnovni cilj kompresije je da se obezbedi dobra performansa izobličenja brzine. Tako da za određenu brzinu prenosa, enkoder pokušava da obezbedi najveći kvalitet videa. Ili, za određeni nivo kvaliteta/vernosti originalnom videu, enkoder pokušava da obezbedi enkodirani video najmanje brzine prenosa. U praksi, u zavisnosti od upotrebnog scenarija, razmatranja kao što su vreme kodiranja, kompleksnost kodiranja, resursi kodiranja, vreme dekodiranja, kompleksnost dekodiranja, resursi dekodiranja, sveukupno odlaganje, i/ili glatkoća prilikom reprodukcije takođe utiču na odluke koje se donose tokom kodiranja i dekodiranja.
[0004] Na primer, u razmatranje se uzima upotreba scenarija kao što je reprodukcija videa iz skladišta, , reprodukcija videa iz enkodiranih podataka koji teku preko mrežne veze, i transkodiranje videa (iz jedne brzinr prenosa u drugu brzinu prenosa, ili jednog standarda u drugi standard). Na strani enkodera, takve primene mogu da dopuste kodiranje van mreže koje uopšte nije osetljivo na vreme. Samim tim, enkoder može da poveća vreme kodiranja i da poveća resurse koji se koriste tokom kodiranja kako bi se pronašao najefikasniji način za kompresovanje videa, i samim tim poboljšala performansa izobličenja brzine. Ukoliko je na strani dekodera takođe prihvatljiva mala količina odlaganja, enkoder može dodatno da poboljša performansu izobličenja brzine, npr., iskorišćavanjem zavisnosti među slikama u odnosi na slike koje su više napredovale u sekvenci.
[0005] Sa druge strane, u razmatranje se uzimaju scenariji kao što su konferencija na daljinu putem desktop uređaja, video nadzor, videotelefonija i drugi scenariji komunikacije u stvarnom vremenu. Takve primene su osetljive na vreme. Malo kašnjenje između snimanja ulaznih slika i reprodukcije izlaznih slika predstavlja ključni faktor u performansi. Kada se alati za kodiranje/dekodiranje podešeni za komunikaciju koja nije u stvarnom vremenu primenjuju u scenarijima komunikacije u stvarnom vremenu, sveukupno kašnjenje je često neprihvatljivo veliko. Odlaganja koja ovi alati uvode tokom kodiranja i dekodiranja mogu da poboljšaju performansu za redovnu reprodukciju videa, ali ometaju komunikaciju u stvarnom vremenu.
Stoga, cilj ovog pronalaska je da obezbedi poboljšani postupak i prenosni nosač podataka za smanjenje kašnjenje kod video dekodiranja i kodiranja.
Ovaj cilj rešava predmet nezavisnih patentnih zahteva.
Poželjni načini ostvarivanja se definišu zavisnim patentnim zahtevima.
[0006] Ukratko, detaljan opis predstavlja tehnike i alate za smanjenje kašnjenje prilikom video kodiranja i dekodiranja. Tehnike i alati mogu da smanje kašnjenje tako da se poboljša odgovor u komunikaciji u stvarnom vremenu. Na primer, tehnike i alati smanjuju sveukupno kašnjenje ograničavanjem kašnjenja usled promene redosleda video okvira, i ukazivanjem na ograničenje kašnjenja usled promene redosleda okvira jednim ili više elemenata sintakse koji prate kodirane podatke za okvire videa.
[0007] Prema jednom aspektu ovde opisanih tehnika i alata, alat kao što je video enkoder, alat za komunikaciju u stvarnom vremenu sa video enkoderom, ili drugi alat, postavljaju jedan ili više elemenata sintakse koji ukazuju na ograničenje kašnjenja (npr., ograničenje kašnjenje usled promene redosleda okvira u skladu sa zavisnostima među slikama između više okvira video sekvence). Alat ispisuje taj element(e) sintakse, čime se olakšava jednostavnije i brže određivanje kada su rekonstruisani okviri spremni za izlaz po izlaznom redosledu okvira.
[0008] Prema drugom aspektu ovde opisanih tehnika i alata, alat kao što je video dekoder, alat za komunikaciju u stvarnom vremenu sa video dekoderom, ili drugi alat, prima i raščlanjuje jedan ili više elemenata sintakse koji ukazuju na ograničenje kašnjenja (npr., ograničenje kašnjenja usled promene redosleda okvira). Taj alat takođe prima enkodirane podatke za više okvira video sekvence. Barem neki od enkodiranih podataka se dekodira kako bi se rekonstruisao jedan od okvira. Alat može da odredi ograničenje kašnjenja na osnovu elemen(a)ta sintakse, zatim koristi to ograničenje kašnjenja kako bi se odredilo kada je taj rekonstruisani okvir spreman za izlaz (po izlaznom redosledu). Alat ispisuje rekonstruisani okvir.
[0009] Gorepomenuti i drugi predmeti, karakteristike, i prednosti ovog pronalaska će postati jasniji iz detaljnog opisa koji sledi uz pozivanje na prateće crteže.
KRATAK OPIS CRTEŽA
[0010]
Fig.1 predstavlja dijagram primera računarskog sistema u kojem neki od opisanih načina ostvarivanja mogu da se primene.
Fig.2a i 2b predstavljaju dijagrame primera mrežnih okruženja u kojima neki od opisanih načina ostvarivanja mogu da se primene.
Fig.3 predstavlja dijagram primera sistema enkodera u kombinaciji sa kojima neki od opisanih načina ostvarivanja mogu da se primene.
Fig.4 predstavlja dijagram primera sistem dekodera u kombinaciji sa kojima neki od opisanih načina ostvarivanja mogu da se primene.
Fig.5a-5e predstavljaju dijagrame koji prikazuju kodirani redosled i izlazni redosled za okvire u nekoliko primera nizova.
Fig.6 predstavlja dijagram toka postupka koji prikazuje primer tehnika za podešavanje i ispisivanje jednog ili više elemenata sintakse koji ukazuju na ograničenje kašnjenja.
Fig.7 predstavlja dijagram toka postupka koji prikazuje primer tehnika za dekodiranje sa smanjenim kašnjenjem.
DETALJAN OPIS
[0011] Detaljan opis predstavlja tehnike i alate za smanjenje kašnjenje prilikom video kodiranja i dekodiranja. Te tehnike i alati mogu da pomognu da se smanji kašnjenje tako da se poboljša odgovor u komunikaciji u stvarnom vremenu.
[0012] Kod scenarija video kodiranja/dekodiranja, neko odlaganje je neizbežno između vremena kada je video ulaznog okvira primljen i vremena kada je taj okvir reprodukovan. Okvir enkodira enkoder, isporučuje se dekoderu i dekodira ga dekoder, a neku količinu kašnjenja uzrokuju praktična ograničenja resursa kodiranja, resursa dekodiranja i/ili mrežni propusni opseg. Ipak, drugo kašnjenje je moguće izbeći. Na primer, kašnjenje mogu da uvedu enkoder i dekoder kako bi se poboljšala performansa izobličenja brzine (npr., da se iskorišćavaju zavisnosti među okvirima od slika koje su naprednije u sekvenci). Takvo kašnjenje može da se smanji, mada može da postoji kazna u smislu performanse izobličenja brzine , iskorišćavanja procesora ili glatkoće reprodukcije.
[0013] Sa ovde opisanim tehnikama i alatima, kašnjenje se smanjuje ograničavanjem kašnjenja (dakle, ograničavanjem vremenskog opsega zavisnosti među slikama) i ukazivanjem dekoderu na ograničenje kašnjenja. Na primer, to ograničenje kašnjenja predstavlja ograničenje kašnjenja usled promene redosleda okvira. Alternativno, ograničenje kašnjenja je ograničenje u smislu sekundi, millisekundi, ili druge vremenske mere. Dekoder može zatim da odredi ograničenje kašnjenja i da koristi to ograničenje prilikom određivanja koji okviri su spremni za izlaz. Na ovaj način, odlaganje može da se smanji za konferenciju na daljinu putem desktop uređaja, videotelefoniju, video nadzor, video sa veb kamerom i za druge aplikacije u stvarnom vremenu.
[0014] Neke od ovde opisanih inovacija su ilustrovane uz pozivanje na elemente sintakse i operacije specifične za H.264 i/ili HEVC standard. Takve inovacije takođe mogu da se primenjuju i za druge standarde ili formate.
[0015] Generalno su moguće razne alternative ovde opisanih primera. Određene tehnike opisane uz pozivanje na dijagrame toka postupka mogu biti izmenjene promenom redosleda faza prikazanih na dijagramima toka postupka, deljenjem, ponavljanjem ili izostavljanjem određenih faza, itd. Razni aspekti smanjenja kašnjenja za video kodiranje i dekodiranje mogu da se koriste u kombinaciji ili odvojeno. Različiti načini ostvarivanja koriste jednu ili više ovde opisanih tehnika i alata. Neke od ovde opisanih tehnika i alata se bave jednim ili više problema navedenih u stanju tehnike. Obično data tehnika/alat ne rešava sve takve probleme.
I. Primer računarskih sistema.
[0016] Fig.1 ilustruje opšti primer pogodnog računarskog sistema (100) u kojem može da se primenjuje nekoliko opisanih tehnika i alata. Računarski sistem (100) nije predviđen da ukazuje na bilo kakvo ograničenje u smislu opsega upotrebe ili funkcionalnosti, jer tehnike i alati mogu da se primenjuju u različitim računarskim sistemima opšte ili posebne namene.
[0017] Uz pozivanje na Fig.1, računarski sistem (100) uključuje jednu ili više procesnih jedinica (110, 115) i memoriju (120, 125). Na Fig.1, ova najosnovnija konfiguracija (130) je unutar isprekidane linije. Te procesne jedinice (110, 115) izvršavaju instrukcije koje može da izvrši računar. Procesna jedinica može biti centralna procesna jedinica (CPU) opšte namene, procesor u integrisanom kolu specifične namene (ASIC) ili bilo koja vrsta procesora. U višeprocesnom sistemu, više procesnih jedinica izvršava instrukciju koju može da izvrši računar kako bi se povećala procesna snaga. Na primer, Fig.1 prikazuje centralnu procesnu jedinicu (110) kao i grafičku procesnu jedinicu ili ko-procesnu jedinicu (115). Opipljiva memorija (120, 125) može biti privremena memorija (npr., registri, keširani podaci, RAM), memorija sa stalnim sadržajem (npr., ROM, EEPROM, fleš memorija, itd.), ili neka kombinacija te dve, kojoj može da pristupi procesna jedinica (e). Memorija (120, 125) skladišti softver (180) koji primenjuje jednu ili više inovacija za smanjenje kašnjenja prilikom video kodiranja i dekodiranja, u obliku instrukcija koje su pogodne za izvršavanje od strane procesne jedinice(a).
[0018] Računarski sistem može da ima dodatna svojstva. Na primer, računarski sistem (100) uključuje skladište (140), jedan ili više ulaznih uređaja (150), jedan ili više izlaznih uređaja (160), i jednu ili više komunikacionih veza (170). Mehanizam međuveze (nije prikazan) kao što je magistrala, upravljač, ili mreža međusobno povezuje komponente računarskog sistema (100). Obično softver operativnog sistema (nije prikazan) obezbeđuje operativno okruženje za izvršavanje drugog softvera u računarskom sistemu (100), i koordinira aktivnostima komponenti računarskog sistema (100).
[0019] Opipljivo skladište (140) može biti prenosivo ili neprenosivo i uključuje magnetne diskove, magnetne trake ili kasete, CD-ROM, DVD, ili bilo koje nosače podataka koji mogu da se koriste za skladištenje informacija na neprolazan način i koji mogu biti dostupni unutar računarskog sistema (100).
Skladište (140) čuva uputstva za softver (180) koji primenjuje jednu ili više inovacija za smanjenje kašnjenja prilikom video kodiranja i dekodiranja.
[0020] Ulazni uređaj(i) (150) mogu biti povezani sa ulaznim uređajem kao što su tastatura, miš, olovka, ili upravljačka kuglica, glasovni ulazni uređaj, uređaj za skeniranje, ili drugim uređajem koji obezbeđuje ulaz u računarski sistem (100). Za video kodiranje, ulazni uređaj(i) (150) može biti kamera, video kartica, TV kartica, ili sličan uređaj koji prihvata video ulaz u analognom ili digitalnom obliku, ili CD-ROM ili CD-RW koji očitava video zapise u računarski sistem (100). Izlazni uređaj(i) (160) može biti ekran, štampač, zvučnik, CD-zapisivač, ili drugi uređaj koji obezbeđuje izlaz iz računarskog sistema (100).
[0021] Komunikaciona veza(e) (170) omogućava komunikaciju preko sredstva komunikacije do drugog računara. Sredstvo komunikacije prenosi informacije kao što je instrukcija koju može da izvrši računar, audio ili video ulaz ili izlaz, ili drugi podaci u modulirani signal podataka. Modulirani signal podataka je signal koji ima jednu ili više karakteristika definisanih ili promenjenih tako da se informacija enkodira u signal. Primera radi, i bez ograničenja, sredstva komunikacije mogu da koriste električni, optički, RF, ili drugi nosač.
[0022] Tehnike i alati mogu biti opisani u opštem kontekstu prenosnih nosača podataka. Prenosni nosači podataka predstavljaju bilo koje dostupno opipljivo sredstvo kojem se može pristupiti u računarskom okruženju. Primera radi, i bez ograničenja, sa računarskim sistemom (100), prenosni nosači podataka uključuju memoriju (120, 125), skladište (140), i kombinacije bilo kojih od gore navedenih.
[0023] Tehnike i alati mogu biti opisani u opštem kontekstu instrukcija koje može da izvrši računar, kao što su one koje su uključene u programske module, pri čemu se izvršavaju u računarskom sistemu na ciljanom stvarnom ili virtuelnom procesoru. Generalno, programski moduli uključuju rutine, programe, biblioteke, predmete, klase, komponente, strukture podataka, itd. koje izvode određene zadatke ili primenjuju određene apstrakte tipove podataka. Funkcionalnost programskih modula može da se kombinuje ili razdeli između programskih modula po želji u raznim načinima ostvarivanja. Instrukcije koje može da izvrši računar za programske module mogu da se izvrše unutar lokalnog ili distribuiranog računarskog sistema.
[0024] Pojmovi "sistem" i "uređaj" se ovde naizmenično koriste. Osim ukoliko kontekst ne nalaže drugačije, nijedan pojam ne ukazuje ni na kakvo ograničenje tipa računarskog sistema ili računara. Generalno računarski sistem ili računar mogu biti lokalni ili distribuirani, i mogu da uključuju bilo koju kombinaciju hardvera za konkretnu namenu i/ili hardvera za opštu namenu sa softverom koji primenjuje ovde opisanu funkcionalnost.
[0025] Prezentacije radi, detaljan opis koristi pojmove kao što su "odrediti" i "koristiti" kako bi se opisale računarske operacije u računarskom sistemu. Ovi pojmovi predstavljaju apstrakcije visokog nivoa za operacije koje izvodi računar, i ne bi ih trebalo mešati sa radnjama koje izvodi čovek. Stvarne računarske operacije koje odgovaraju ovim pojmovima se razlikuju u zavisnosti od primene.
II. Primer mrežnih okruženja.
[0026] Fig.2a i 2b prikazuju primer mrežnih okruženja (201, 202) koja uključuju video enkodere (220) i video dekodere (270). Ti enkoderi (220) i dekoderi (270) su povezani preko mreže (250) pomoću odgovarajućeg protokola komunikacije. Ta mreža (250) može da obuhvata internet ili drugu računarsku mrežu.
[0027] U mrežnom okruženju (201) prikazanom na Fig.2a, svaki alat (210) za komunikaciju u stvarnom vremenu ("RTC") uključuje i enkoder (220) i dekoder (270) za dvosmernu komunikaciju. Dati enkoder (220) može da proizvede izlaz u skladu sa SMPTE 421M standardom, ISO-IEC 14496-10 standardom (takođe poznatim kao H.264 ili AVC), HEVC standardom, drugim standardom, ili vlasničkim formatom, sa odgovarajućim dekoderom (270) koji prihvata enkodirane podatke od enkodera (220). Dvosmerna komunikacija može biti deo video-konferencije, video telefonskog poziva, ili drugog scenarija dvostrane komunikacije. Iako mrežno okruženje (201) na Fig.2a uključuje dva alata (210) za komunikaciju stvarnom vremenu, mrežno okruženje (201) umesto toga uključuje tri ili više alata (210) za komunikaciju u stvarnom vremenu koji učestvuju u višestranoj komunikaciji.
[0028] Alat (210) za komunikaciju u stvarnom vremenu upravlja kodiranjem putem enkodera (220). Fig. 3 prikazuje primer sistema (300) enkodera koji može biti obuhvaćen alatom (210) za komunikaciju u stvarnom vremenu. Alternativno, alat (210) za komunikaciju u stvarnom vremenu koristi drugi sistem enkodera. Alat (210) za komunikaciju u stvarnom vremenu takođe upravlja dekodiranjem dekoderom (270). Fig.4 prikazuje primer sistema (400) dekodera, koji može biti obuhvaćen alatom (210) za komunikaciju u stvarnom vremenu. Alternativno, taj alat (210) za komunikaciju u stvarnom vremenu koristi drugi sistem dekodera.
[0029] U mrežnom okruženju (202) prikazanom na Fig.2b, alat (212) za kodiranje uključuje enkoder (220) koji enkodira video za isporuku do alata (214) za višestruku reprodukciju, koji uključuju dekodere (270). Jednosmerna komunikacija može biti obezbeđena za sistem video nadzora, sistem video nadzora veb kamerom, prezentaciju konferencije na daljinu putem desktop uređaja ili drugi scenario u kojem je video enkodiran i poslat sa jedne lokacije na jednu ili više drugih lokacija. Iako mrežno okruženje (202) na Fig.2b uključuje dva alata (214) za reprodukciju, mrežno okruženje (202) može da uključuje više ili manje alata (214) za reprodukciju. Generalno, alat (214) za reprodukciju komunicira sa alatom (212) za kodiranje kako bi se odredio protok videa koji bi alat (214) za reprodukciju trebalo da primi. Alat (214) za reprodukciju prima taj protok, sprema primljene enkodirane podatke za odgovarajući period, i započinje dekodiranje i reprodukciju.
[0030] Fig.3 prikazuje primer sistema (300) enkodera koji može biti obuhvaćen alatom (212) za kodiranje. Alternativno, alat (212) za kodiranje koristi drugi sistema enkodera. Alat (212) za kodiranje može takođe da uključuje logiku upravljača na strani servera za upravljanje vezama sa jednim ili više alata (214) za reprodukciju. Fig.4 prikazuje primer sistema (400) dekodera , koji može biti obuhvaćen alatom (214) za reprodukciju . Alternativno, alat (214) za reprodukciju koristi drugi sistem dekodera.
Alat (214) za reprodukciju takođe može da uključuje logiku upravljača na strani klijenta za upravljanje vezama sa alatom (212) za kodiranje.
[0031] U nekim slučajevima, upotreba elementa sintakse za označavanje kašnjenja (npr., kašnjenje usled promene redosleda okvira) je specifična za određeni standard ili format. Na primer, enkodirani podaci mogu da sadrže jedan ili više elemenata sintakse koji ukazuju na ograničenje kašnjenja kao dela sintakse protoka bitova elementarno kodiranog videa definisanog prema standardu ili formatu, ili kao što su definisani metapodaci multimedije koji se odnose na enkodirane podatke. U takvim slučajevima, alat (210) za komunikaciju u stvarnom vremenu, alat (212) za kodiranje i/ili alat (214) za reprodukciju sa smanjenim kašnjenjem može da zavisi od kodeka, u tome što odluke koje donose mogu da zavise od sintakse protoka bitova za određeni standard ili format.
[0032] U drugim slučajevima, upotreba elementa sintakse za označavanje ograničenja kašnjenja (npr., kašnjenje usled promene redosleda okvira) je izvan određenog standarda ili formata. Na primer, element(i) sintakse koji ukazuje na ograničenje kašnjenja može biti signaliziran kao deo sintakse protoka prenosa multimedije, datoteke za skladištenje multimedija ili, uopštenije, protokola multiplikovanja multimedijalnog sistema ili transportnog protokola. Ili, element(i) sintakse koji označavaju kašnjenje mogu da posreduju između alata (210) za komunikaciju u stvarnom vremenu, alata (212) za kodiranje i/ili alata (214) za reprodukciju prema protokolu za pregovaranje u svojstvima multimedije. U takvim slučajevima, alat (210) za komunikaciju u stvarnom vremenu, alat (212) za kodiranje i alat (214) za reprodukciju sa smanjenim kašnjenjem mogu biti nezavisni od kodeka, po tome što oni mogu da rade sa bilo kojim dostupnim video enkoderom i dekoderom, pod pretpostavkom da je nivo kontrole nad zavisnostima među okvirima podešen tokom kodiranja.
III. Primer sistema enkodera.
[0033] Fig.3 predstavlja blok dijagram primera sistema (300) enkodera zajedno sa kojim neki opisani načini ostvarivanja mogu da se primene. Sistem (300) enkodera može biti alat za kodiranje opšte namene koji može da radi u bilo kom od višestrukih režima rada kao što je režim kodiranja sa malim kašnjenjem za komunikaciju u stvarnom vremenu, režim transkodiranja, i režim redovnog kodiranja za reprodukciju multimedija iz datoteke ili protoka, ili može biti alat za kodiranje sa posebnom namenom podešen za jedan takav režim kodiranja. Sistem (300) enkodera može biti primenjen kao operativni sistemski modul, kao deo biblioteke aplikacija ili kao samostalna aplikacija. Sve u svemu, sistem (300) enkodera prima sekvencu okvira (311) izvornog videa od izvora (310) videa i proizvodi enkodirane podatke kao izlaz do kanala (390). Izlaz kodiranih podataka u kanal može da uključuje jedan ili više elemenata sintakse koji ukazuju na ograničenje kašnjenja (npr., kašnjenje usled promene redosleda okvira) kako bi se olakšalo dekodiranje sa smanjenim kašnjenjem.
[0034] Izvor (310) videa može biti kamera, tv kartica, prenosno skladište, ili drugi izvor digitalnog videa. Izvor (310) videa proizvodi sekvencu video okvira pri brzini okvira od, na primer, 30 okvira u sekundi.
Kako se ovde upotrebljava, pojam "okvir" se generalno odnosi na izvor, kodirane ili rekonstruisane podatke o slici. Za progresivan video, okvir predstavlja progresivni okvir videa. Za isprepletani video, u primerima načina ostvarivanja, isprepletani okvir videa se raspliće pre kodiranja. Alternativno, dva komplementarna isprepletana video polja se kodiraju kao isprepletani okvir videa ili odvojena polja. Pored označavanja progresivnog video okvira, pojam "okvir" može da označi pojedinačno nespareno video polje, komplementarni par video polja, ravan video objekat koji predstavlja video objekat u datom vremenu, ili regionu od značaja u većoj slici. Ta ravan video objekta ili oblast mogu da budu deo veće slike koja uključuje više objekata ili oblasti scene.
[0035] Dolazni izvorni okvir (311) se čuva u skladišnom prostoru (320) privremene memorije izvornog okvira koji uključuje više skladišnih prostora bafera (321, 322, ... , 32n) okvira. Bafer (321, 322, itd.) okvira čuva jedan izvorni okvir u skladišnom prostoru (320). Nakon što je jedan ili više izvornih okvira (311) sačuvan u baferima (321, 322, itd.) okvira, birač (330) okvira periodično bira pojedinačni izvorni okvir iz skladišnog prostora (320) izvornog okvira. Redosled po kojem birač (330) okvira bira okvire za ulaz u enkoder (340) može da se razlikuje od redosled po kojem izvor (310) videa proizvodi okvire, npr., okvir može biti ispred po redosledu, kako bi se olakšala privremena predikcija unazad. Pre enkodera (340), sistem (300) enkodera može da uključuje pretprocesor (nije prikazan) koji izvodi prethodnu obradu (npr., filtriranje) izabranog okvira (331) pre kodiranja.
[0036] Enkoder (340) enkodira izabrani okvir (331) kako bi se proizveo kodirani okvir (341) i takođe proizvodi kontrolne signale (342) upravljanja memorijom. Ako trenutni okvir ne predstavlja prvi okvir koji je enkodiran, prilikom izvođenja postupka kodiranja, enkoder (340) može da koristi jedan ili više prethodno enkodiranih/dekodiranih okvira (369) koji se prethodno čuvaju u skladišnom prostoru (360) privremene memorije dekodiranog okvira. Takvi čuvani dekodirani okviri (369) se koriste kao referentni okviri za predikciju među okvirima sadržaja trenutnog izvornog okvira (331). Generalno, enkoder (340) uključuje više kodirajućih modula koji izvode zadatke kodiranja kao što je procena i kompenzacija pokreta, transformisanja frekvencije, kavntizacija i kodiranje entropije. Tačne operacije koje izvodi enkoder (340) mogu da se razlikuju u zavisnosti od formate kompresije. Format izlaznih enkodiranih podataka može biti Windows Media Video format, VC-1 format, MPEG-x format (npr., MPEG-1, MPEG-2, ili MPEG-4), H.26x format (npr., H.261, H.262, H.263, H.264), HEVC format ili drugi format.
[0037] Kodirani okviri (341) i kontrolne signale (342) upravljanja memorijom obrađuje emulator (350) postupka dekodiranja. Emulator (350) postupka dekodiranja primenjuje nešto od funkcionalnosti dekodera, na primer, zadatke dekodiranja kako bi se rekonstruisali referentni okviri koje koristi enkoder (340) prilikom kompenzacije i procene pokreta. Emulator (350) postupka dekodiranja koristi kontrolne signale (342) upravljanja memorijom kako bi se odredilo da li dati kodirani okvir (341) mora da se rekonstruiše i čuva za upotrebu kao referentni okvir prilikom predikcije među okvirima naknadnih okvira koji bi trebalo da se kodiraju. Ako kontrolni signali (342) ukazuju da je potrebno da se kodirani okvir (341) čuva, emulator (350) postupka dekodiranja modeluje postupak dekodiranja koji bi se izvodio dekoderom koji prima kodirani okvir (341) i proizvodi odgovarajući dekodirani okvir (351). U svemu tome, kada enkoder (340) koristi dekodirani okvir(e) (369) koji se čuvaju u skladišnom prostoru (360) dekodiranog okvira, emulator (350) postupka dekodiranja takođe koristi dekodirani okvir(e) (369) iz skladišnog prostora (360) kao deo postupka dekodiranja.
[0038] Skladišni prostor (360) privremene memorije dekodiranog okvira uključuje više skladišnih prostora (361, 362, ..., 36n) bafer okvira. Emulator (350) postupka dekodiranja koristi kontrolne signale (342) upravljanja memorijom kako bi upravljao sadržajima skladišnog prostora (360) kako bi se identifikovao bilo koji od bafera okvira (361, 362, itd.) sa okvirima koji više nisu potrebni enkoderu (340) za upotrebu kao referentni okviri. Posle modelovanja postupka dekodiranja, emulator (350) postupka dekodiranja čuva novodekodirani okvir (351) u baferu okvira (361, 362, itd.) koji je identifikovan na ovaj način.
[0039] Kodirani okviri (341) i kontrolni signali (342) upravljanja memorijom su takođe baferisani u oblasti (370) privremeno kodiranih podataka. Kodirani podaci koji su agregirani u oblasti (370) kodiranih podataka mogu da sadrže, kao deo sintakse elementarnog kodiranog video protoka bitova, jednog ili više elemenata sintakse koji ukazuju na ograničenje kašnjenja. Ili, kodirani podaci koji su agregirani u oblasti (370) kodiranih podataka mogu da uključuju element(e) sintakse koji ukazuju na ograničenje kašnjenja kao dela metapodataka multimedije koji se odnose na kodirane video podatke (npr., kao jedan ili više parametara u jednoj ili više poruka o informacijama o dodatnim kontakt osobama ("SEI") ili poruka o informacijama o upotrebljivosti videa ("VUI")).
[0040] Agregirane podatke (371) iz oblasti privremenih kodiranih podataka (370) obrađuje enkoder (380) kanala. Enkoder (380) kanala može da pakuje agregirane podatke za prenos u obliku protoka multimedije, i u tom slučaju enkoder (380) kanala može da dodaje, kao deo sintakse protoka prenosa multimedije, element sintakse(s) koji ukazuje na ograničenje kašnjenja. Ili, enkoder (380) kanala može da organizuje agregirane podatke za skladištenje u obliku datoteke, i u tom slučaju enkoder (380) kanala može da doda, kao deo sintakse datoteke za skladištenje multimedije, elemente sintakse koji ukazuju na ograničenje kašnjenja. Ili, uopštenije, enkoder (380) kanala može da primenjuje jedan ili više protokola multiplikovanja multimedijalnog sistema ili transportnih protokola, i u tom slučaju enkoder (380) kanala može da doda, kao deo sintakse protokola, element(e) sintakse koji ukazuje na ograničenje kašnjenja. Enkoder (380) kanala obezbeđuje izlaz u kanal (390), koji predstavlja skladište, komunikacionu vezu, ili drugi kanal za izlaz.
IV. Primer sistema dekodera.
[0041] Fig.4 predstavlja blok dijagram primera sistema (400) dekodera u kombinaciji sa kojim neki od opisanih načina ostvarivanja mogu da se primene. Sistem (400) dekodera može biti alat za dekodiranje opšte namene koji može da funkcioniše u bilo kojem od više režima dekodiranja kao što je režim dekodiranja sa malim kašnjenjem za komunikaciju u stvarnom vremenu i režim redovnog dekodiranja za reprodukciju multimedije iz datoteke ili protoka, ili može biti alat za dekodiranje posebne namene podešen za jedan takav režim dekodiranja. Sistem (400) dekodera može biti primenjen kao operativni sistemski modul, kao deo biblioteke aplikacija ili kao samostalna aplikacija. Sve u svemu, sistem (400) dekodera prima kodirane podatke od kanala (410) i proizvodi rekonstruisane okvire kao izlaz za izlazno odredište (490). Kodirani podaci mogu da uključuju jedan ili više elemenata sintakse koji ukazuju na ograničenje kašnjenja (npr., kašnjenje usled promene redosleda okvira) kako bi se olakšalo dekodiranje sa smanjenim kašnjenjem.
[0042] Sistem (400) dekodera uključuje kanal (410), koji može da predstavlja skladište, komunikacionu vezu, ili drugi kanal za kodirane podatke kao ulaz. Kanal (410) proizvodi kodirane podatke koje je kanal kodirao. Dekoder (420) kanala može da obrađuje kodirane podatke. Na primer, dekoder (420) kanala depakuje podatke koji su agregirani za prenos u obliku protoka multimedije, i u tom slučaju dekoder (420) kanala može da se raščlani, kao deo sintakse protoka prenosa multimedije, elemen(a)ta sintakse koji ukazuje na ograničenje kašnjenja. Ili, dekoder (420) kanala razdvaja podatke kodiranog videa koji su bili agregirani za skladište u obliku datoteke, i u tom slučaju dekoder (420) kanala može da raščlani, kao deo sintakse datoteke za skladištenje multimedije, element(e) sintakse koji ukazuju na ograničenje kašnjenja. Ili, uopštenije, dekoder (420) kanala može da primenjuje jedan ili više protokola demultiplikovanja multimedijalnog sistema ili transportnih protokola, i u tom slučaju dekoder (420) kanala može da raščlani, kao deo sintakse protokola, element(e) sintakse koji ukazuju na ograničenje kašnjenja.
[0043] Kodirani podaci (421) odnosno izlaz iz dekodera (420) kanala se čuva u oblasti privremeno kodiranih podataka (430) dok se ne primi dovoljna količina takvih podataka. Kodirani podaci (421) uključuju kodirane okvire (431) i kontrolne signale (432) upravljanja memorijom. Kodirani podaci (421) u oblasti (430) kodiranih podataka mogu da sadrže, kao deo sintakse elementarnog kodiranog video protoka bitova, jedan ili više elemenata sintakse koji ukazuju na ograničenje kašnjenja. Ili, kodirani podaci (421) u oblasti (430) kodiranih podataka mogu da uključuju element(e) sintakse koji ukazuju na ograničenje kašnjenja kao dela metapodataka multimedije koji se odnose na enkodirane video podatke (npr., kao jedan ili više parametara u jednoj ili više SEI poruka ili VUI poruka). Generalno, oblast (430) kodiranih podataka privremeno čuva kodirane podatke (421) dok takve kodirane podatke (421) ne iskoristi dekoder.
[0044] (450). U tom trenutku, kodirani podaci za kodirani okvir (431) i kontrolni signali (432) upravljanja memorijom se prenose iz oblasti (430) kodiranih podataka do dekodera (450). Kako se dekodiranje nastavlja, novi kodirani podaci se dodaju u oblast (430) kodiranih podataka a najstariji kodirani podaci koji ostaju u oblasti kodiranih podataka (430) se prenose do dekodera (450).
[0045] Dekoder (450) periodično dekodira kodirani okvir (431) kako bi proizveo odgovarajući dekodirani okvir (451). Po potrebi, prilikom izvođenja postupka dekodiranja, dekoder (450) može da koristi jedan ili više prethodno dekodiranih okvira (469) kao referentnih okvira za predikciju među okvirima. Dekoder (450) očitava takve prethodno dekodirane okvire (469) iz skladišnog prostora privremene memorije dekodiranog okvira (460). Generalno, dekoder (450) uključuje više dekodirajućih modula koji izvode zadatke dekodiranja kao što su dekodiranje entropije, inverzna kvantizacija, pretvaranja frekvencije i kompenzacija pokreta. Tačne operacije koje izvodi dekoder (450) mogu da zavise od formata kompresije.
[0046] Skladišni prostor (460) privremene memorije dekodiranog okvira uključuje više skladišnih prostora (461, 462, ..., 46n) bafera okvira. Skladišni prostor (460) dekodiranog okvira predstavlja primer bafera dekodirane slike. Dekoder (450) koristi kontrolne signale (432) upravljanja memorijom za identifikovanje bafera (461, 462, itd.)okvira u kojima može da čuva dekodirani okvir (451). Dekoder (450) čuva dekodirani okvir (451) u tom baferu okvira.
[0047] Izlazni sekvencer (480) koristi kontrolne signale (432) upravljanja memorijom kako bi se identifikovalo kada je sledeći okvir koji se proizvodi po izlaznom redosledu dostupan u skladišnom prostoru (460) dekodiranog okvira. Da bi se smanjilo kašnjenje sistema za kodiranje-dekodiranje, izlazni sekvencer (480) koristi elemente sintakse koji ukazuju na ograničenja kašnjenja kako bi se ubrzala identifikacija okvira koji se proizvode po izlaznom redosledu. Kada je sledeći okvir
[0048] (481) koji se proizvodi po izlaznom redosledu dostupan u skladišnom prostoru (460) dekodiranog okvira, očitava ga izlazni sekvencer (480) i izlazi do izlaznog odredišta (490) (npr., ekrana). Generalno, redosled po kojem okviri izlaze iz skladišnog prostora (460) dekodiranog okvira putem izlaznog sekvencera (480) mogu da se razlikuju od redosleda po kojem okvire dekodira dekoder (450).
V. Elementi sintakse koji olakšavaju kodiranja i dekodiranja smanjenog kašnjenja.
[0049] U većini sistema video-kodeka, kodirani redosled (koji se takođe naziva redosled dekodiranja ili redosled protoka bitova) predstavlja redosled po kojem se okviri videa prikazuju u kodiranim podacima u protoku bitova i, samim tim, obrađuju tokom dekodiranja. Kodirani redosled može da se razlikuje od redosleda po kojem kamera hvata okvire pre kodiranja i razlikuju se od redosleda po kojem se dekodirani okviri prikazuju, skladište, ili na drugi način izlaze posle dekodiranja (redosled izlaza ili redosled prikazivanja). Promena redosleda okvira u odnosu na izlazne podatke ima koristi (prvenstveno u smislu sposobnosti kompresije), ali povećava kašnjenje s kraja na kraj postupaka kodiranja i dekodiranja.
[0050] Ovde opisane tehnike i alati smanjuju kašnjenje usled promene redosleda video okvira i, pružanjem informacija o ograničenjima promene redosleda kašnjenje sistemima dekodera, takođe olakšavaju smanjenje kašnjenja putem sistema dekodera. Takvo smanjenje kašnjenja je korisno za mnoge namene. Na primer, može da se smanji vremensko kašnjenje koje se javlja u interaktivnoj video komunikaciji pomoću video konferencijskog sistema, tako da će protokol konverzacije i interaktivnost komunikacije između udaljenih učesnika biti brži i prirodniji.
A. Pristupi izlaznom vremenu i izlaznoj promeni redosleda.
[0051] Prema H.264 standardu, dekoder može da koriste dva pristupa kako bi se odredilo da li je dekodirani okvir spreman za izlaz. Dekoder može da koristi informacije o vremenu u obliku vremenskih žigova dekodiranja i izlaznih vremenskih žigova (npr., kao signalizirano u SEI porukama o vremenskom određivanu slike). Ili, dekoder može da koristi ograničenja kapaciteta buferovanja signalizirana raznim elementima sintakse kako bi se odredilo da je dekodirani okvir spreman za izlaz.
[0052] Informacije o vremenu mogu biti povezan sa svakim dekodiranim okvirom. Dekoder može da koristi informacije o vremenu kako bi se odredilo kada je dekodirani okvir spreman za izlaz. U praksi, međutim, takve informacije o vremenu mogu biti nedostupne dekoderu. Štaviše, čak kada su informacije o vremenu dostupne, neki dekoderi zapravo ne koriste ovu informaciju (npr., zato što je dekoder napravljen tako da radi nevezano za to da li su informacije o vremenu dostupne ili ne).
[0053] Ograničenja kapaciteta buferovanja su označena sa nekoliko elemenata sintakse prema H.264 standardu (i radnim verzijama HEVC standarda), uključujući element sintakse max_dec_frame_buffering, element sintakse num_reorder_frames, relativne informacije o promeni redosleda (označene sa informacije o "broju redosleda slika") i druge kontrolne informacije upravljanja memorijom u protoku bitova. Element sintakse max_dec_frame_buffering (ili izvedena varijabla označena sa MaxDpbFrames) označava potrebnu veličinu bufera dekodirane slike ("DPB") u jedinicama okvira bafera. Kao takav, element sintakse max_dec_frame_buffering izražava kapacitet memorije najvišeg nivoa koja se koristi za kodiranu video sekvencu, tako da omogućava dekoderu da slike izlaze po tačnom redosledu. Element sintakse num_reorder_frames (ili max_num _reorder_frames) označava maksimalan broj okvira (ili parove komplementarnih polja, ili neuparena polja) koji mogu da prethode bilo kom okviru (ili paru komplementarnog polja, ili neuparenom polju) po kodiranom redosledu i da ga prate po izlaznom redosledu. Drugim rečima, num_reorder_frames označava ograničenje kapaciteta memorije neophodnog za promenu redosleda slika. Element sintakse max_num_ref_frames označava maksimalan broj kratkoročnih i dugoročnih referentnih okvira (ili komplementarnih parova referentnih polja, ili neuparenih referentnih polja) koji mogu da se koriste u postupku dekodiranja postupka za među predikciju bilo koje slike u sekvenci. Element sintakse max_num_ref_frames takođe određuje veličinu kliznog prozora za obeležavanje dekodirane referentne slike. Kao num_reorder_frames, max_num_ref_frames označava ograničenje kapaciteta potrebne memorije.
[0054] Dekoder koristi max_dec_frame_buffering (ili MaxDpbFrames) i num_reorder_frames elemente sintakse kako bi se odredilo kada se premašuje ograničenje kapaciteta buferovanja. Ovo se dešava, na primer, kada je potrebno da se novi dekodirani okvir čuva u DPB, ali ne postoji dovoljno preostalog dostupnog prostora u DPB. U ovoj situaciji, dekoder koristi informacije o broju redosleda slika kako bi se identifikovalo, među slikama koje su dekodirane, koja je po izlaznom redosledu najranija. Slika koja je po izlaznom redosledu najranija je tada izlazna. Takva obrada se ponekad naziva "ispadanje" zato što slika "ispada" iz DPB dolaskom nove slike koju je potrebno skladištiti.
[0055] Informacije označene elementima sintakse max_dec_frame_buffering (ili MaxDpbFrames) i num_reorder_frames su dovoljne za određivanje kapaciteta memorije potrebne u dekoderu. Kada se koriste za kontrolu postupka "ispadanja" za ispisivanje slike, ipak, upotreba takvih informacija može bespotrebno da uvede kašnjenje. Kao što je definisano u H.264 standardu, elementi sintakse max_dec_frame_buffering i num_reorder_frames ne utvrđuju ograničenje količine promene redosleda koja može da se primeni na bilo koju određenu sliku i, samim tim, ne utvrđuju ograničenje na kašnjenje s kraja na kraj. Nevezano za vrednosti ovih elemenata sintakse, određena slika može da se čuva u DPB proizvoljno dugo pre izlaza, što odgovara suštinskom kašnjenju koje dodaje prethodno buferovanje izvornih slika putem enkodera.
B. Elementi sintakse koji označavaju ograničenja kašnjenja usled promene redosleda okvira.
[0056] Ovde opisane tehnike i alati smanjuju kašnjenje u sistemu video komunikacije. Alat za kodiranje, alat za komunikaciju u stvarnom vremenu, ili drugi alat postavlja granicu opsega promene redosleda koja može da se primenjuje na bilo koji okvir u kodiranoj video sekvenci. Na primer, granica se izražava kao broj okvira koji prethode bilo kom datom okviru u sekvenci kodiranih videa po izlaznom redosledu i prati po kodiranom redosledu. Ta granica ograničava promenu redosleda kašnjenja koja je dozvoljena za bilo koji određeni okvir u toj sekvenci. Drugačije rečeno, ta granica ograničava privremeni opseg promene redosleda (u smislu okvira) između kodiranog redosleda i izlaznog redosleda koji može da se primenjuje na bilo koji određeni okvir. Ograničavanje opsega promene redosleda pomaže da se smanji odlaganje s kraja na kraj. Takođe, utvrđivanje takve granice može biti korisno u protokolima za pregovaranje o sistemu u stvarnom vremenu ili specifikacijama aplikacija za upotrebne scenarije u kojima je smanjenje kašnjenja važno.
[0057] Jedan ili više elemenata sintakse označavaju ograničenje kašnjenja usled promene redosleda okvira. Signaliziranje ograničenje kašnjenja usled promene redosleda okvira olakšava pregovaranje sistema i nivoa za interaktivnu komunikaciju u stvarnom vremenu ili druge upotrebne scenarije. Pruža način da se direktno izraze ograničenja kašnjenja usled promene redosleda okvira i okarakterišu svojstva protoka multimedije ili sesije.
[0058] Video dekoder može da koristi naznačeno ograničenje kašnjenja usled promene redosleda okvira kako bi se omogućio izlaz smanjenog kašnjenja dekodiranih video okvira. Određenije, u odnosu na okvir postupaka "ispadanja", signaliziranje ograničenja kašnjenja usled promene redosleda okvira omogućava da dekoder jednostavnije i brže identifikuje okvire u DPB koji su spremni za izlaz. Na primer, dekoder može da odredi status kašnjenja okvira u DPB računanjem razlike između kodiranog redosleda za okvir i izlaznog redosleda. Poređenjem statusa kašnjenja okvira sa kašnjenjem ograničenja usled promene redosleda okvira, dekoder može da odredi kada je postignuto ograničenje kašnjenja usled promene redosleda okvira. Dekoder može neposredno da ispiše bilo koji okvir koji je dostigao ovu granicu. Ovo može da pomogne dekoderu da brže identifikuje okvire koji su spremni za izlaz, u odnosu na postupke "ispadanja" koji koriste razne elemente sintakse i strukture praćenja. Na ovaj način, dekoder brzo (ili ranije) može da odredi kada dekodirani okvir može biti ispisan. Što brže (i ranije) dekoder može da identifikuje kada okviri mogu biti ispisani, to brže (i ranije) dekoder može da ispiše video na ekranu ili sledećim fazama obrade.
[0059] Samim tim, pomoću ograničenje kašnjenja usled promene redosleda okvira, dekoder može da počne da počne sa izlazom okvira iz skladišta dekodiranog okvira pre nego što se prostor za skladištenje dekodiranih okvira ispuni, ali i da i dalje obezbeđuje usklađeno dekodiranje (tj., dekodiranje svih okvira tako da ti okviri odgovaraju u bit okvirima dekodiranim pomoću druge, konvencionalne šeme). Ovo značajno smanjuje odlaganje kada je to odlaganje (kod okvira) označeno kašnjenjem elementa sintakse mnogo manje od veličine (u okvirima) skladištenog prostora dekodiranog okvira.
[0060] Fig.5a-5e ilustruje niz (501-505) okvira sa različitim zavisnostima među okvirima. Taj niz karakterišu različite vrednosti za (1) ograničenje kapaciteta memorije neophodne za promenu redosleda slika (odnosno, broja okvira bafera koji se koriste za skladištenje referentnih okvira u svrhe promene redosleda, npr., kao što je označeno sa elementom sintakse num_reorder_frames, i (2) ograničenje kašnjenja usled promene redosleda okvira, npr., kako je naznačeno varijabilnim MaxLatencyFrames. Na Fig.5a-5e, za dati okvir indeks j označava položaj okvira po izlaznom redosledu, a indeks k označava položaj okvira po kodiranom redosledu. Okviri su prikazani po izlaznom redosledu – vrednost indeksa izlaznih podataka se povećava sa leva na desno. Strelice ilustruju zavisnosti među okvirima zbog kompenzacije pokreta, u skladu sa kojima se prethodni okviri po kodiranom redosledu koriste za predikciju sledećih okvira po kodiranom redosledu. Radi pojednostavljivanja, Fig.5a-5e prikazuju zavisnosti među okvirima na nivou okvira (a ne na nivou makroblokova, blokova, itd. na kojima referentni okviri mogu da se menjaju), a Fig.5a-5e prikazuju najviše dva okvira kao referentne okvire za dati okvir. U praksi, kod nekih primena, različiti makroblokovi, blokovi itd. u datom okviru mogu da koriste različite referentne okvire, a više od dva referentna okvira mogu da se koriste za dati okvir.
[0061] Na Fig.5a, niz (501) uključuje devet okvira. Poslednji okvir F8<1>po izlaznom redosledu koristi prvi okvir F0<0>kao referentni okvir. Drugi okviri u nizu (501) koriste i poslednji okvir F8<1>i prvi okvir F0<0>kao referentne okvire. Ovo znači da se okvir F0<0>dekodira prvi, nakon čega sledi okvir F8<1>, nakon čega sledi okvir F1<2>, itd. U nizu (501) prikazanom na Fig.5a, vrednost num_reorder_frames je 1. U bilo kojoj tački obrade sistema dekodera, među okvirima prikazanim na Fig.5a, postoji samo jedan okvir (F8<1>) koji se skladišti u skladišnom prostoru dekodiranog okvira u svrhe promene redosleda. (Prvi okvir F0<0>se takođe koristi kao referenti okvir i skladišti se, ali se ne skladišti u svrhe promene redosleda. Pošto su izlazni podaci za prvi okvir F0<0>manji od izlaznih podataka intermedijarnih okvira, prvi okvir F0<0>se ne broji u svrhe num_reorder_frames.). Uprkos maloj vrednosti za num_reorder_frames, niz (501) ima relativno veliko kašnjenje – vrednost MaxLatencyFrames je 7. Posle kodiranja prvi okvir F0<0>, enkoder čeka dok ne buferiše još osam izvornih okvira pre kodiranja sledećeg okvira F1<2>po izlaznom redosledu, budući da sledeći okvir F1<2>zavisi od poslednjeg okvira F8<1>u tom nizu (501). Vrednost MaxLatencyFrames predstavlja efikasno maksimalno dozvoljenu razliku između vrednosti donjeg indeksa i vrednosti gornjeg indeksa za bilo koji određeni kodirani okvir.
[0062] Na Fig.5b, niz (502) uključuje devet okvira, kao u nizu (501) sa Fig.5a, ali je zavisnosti među okvirima različita. Vremenska promena redosleda okvira se javlja tokom kratkih opsega. Kao rezultat, niz (502) ima dosta manje kašnjenje - vrednost MaxLatencyFrames je 1. Vrednost num_reorder_frames je i dalje 1.
[0063] Na Fig.5c, niz (503) uključuje deset okvira. Najduža zavisnost među okvirima je kraća (po vremenskom opsegu) od najduže zavisnosti među okvirima na Fig.5a, ali je duža od najduže zavisnosti među okvirima na Fig.5b. Niz (503) ima istu nisku vrednost od 1 za num_reorder_frames, i ima relativno malu vrednost od 2 za MaxLatencyFrames. Niz (503) samim tim omogućava manje kašnjenje s kraja na kraj od niza (501) sa Fig.5a, mada ne tako malo kao ono koje dozvoljava niz (502) sa Fig.5b.
[0064] Na Fig.5d, niz (504) uključuje okviri organizovan po vremenskoj hijerarhiji sa tri vremenska sloja u skladu sa zavisnostima među okvirima. Najniža vremenska rezolucija uključuje prvi okvir F0<0>i poslednji okvir F8<1>. Sledeći sloj vremenske rezolucije dodaje okvir F4<2>, koji zavisi od prvog okvira F0<0>a poslednji okvir F8<1>. Najveći sloj vremenske rezolucije dodaje preostale okvire. Niz (504) prikazan na Fig.5d ima relativno nisku vrednost od 2 for num_reorder_frames ali relativno visoku vrednost od 7 za MaxLatencyFrames, najmanje za najveći sloj vremenske rezolucije, usled razlike između kodiranog redosleda i izlaznog redosleda za poslednji okvir F8<1>. Kada bi samo neposredni sloj vremenske rezolucije ili najniži sloj vremenske rezolucije bio dekodiran, ograničenje odlaganja okvira promene redosleda može biti smanjeno do 1 (za neposredni sloj) ili 0 (za najniži sloj). Kako bi se olakšalo dekodiranje sa smanjenim kašnjenjem na raznim vremenskim rezolucijama, elementi sintakse mogu da označavaju ograničenja kašnjenja usled promene redosleda okvira za različite slojeve po vremenskoj hijerarhiji.
[0065] Na Fig.5e, niz (505) uključuje okvire organizovane po vremenskoj hijerarhiji sa tri vremenska sloja u skladu sa različitim zavisnostima među okvirima. Najniži sloj vremenske rezolucije uključuje prvi okvir F0<0>, srednji okvir F4<1>i poslednji okvir F8<5>. Sledeći sloj vremenske rezolucije dodaje okvire F2<2>(koji zavisi od prvog okvira F0<0>i srednjeg okvira F4<1>) i F6<6>(koji zavisi od srednjeg okvira F4<1>i poslednjeg okvira F8<5>). Najveći sloj vremenske rezolucije dodaje preostale okvire. U odnosu na niz (504) sa Fig.5d, niz (505) sa Fig.5e i dalje ima relativno malu vrednost od 2 za num_reorder_frames ali ima nižu vrednost od 3 za MaxLatencyFrames, barem za najveći sloj vremenske rezolucije, usled razlike između kodiranog redosleda i izlaznog redosleda za srednji okvir F4<1>i poslednji okvir F8<5>. Ako se samo neposredni sloj vremenske rezolucije ili najniži sloj vremenske rezolucije dekodira, ograničenje odlaganja okvira promene redosleda može da se smanji do 1 (za neposredni sloj) ili 0 (za najniži sloj).
[0066] U primerima prikazanim na Fig.5a-5e, ako je poznata vrednost MaxLatencyFrames, dekoder može da identifikuje određene okvire kao spremne za neposredan izlaz nakon primanja prethodnog okvira po izlaznom redosledu. Za dati okvir, vrednost izlaznog redosleda okvira minus vrednost kodiranog redosleda okvira mogu biti jednake vrednosti MaxLatencyFrames. U ovom slučaju, dati okvir je spreman za izlaz čim je okvir koji je pre njega po izlaznom redosledu primljen. (Nasuprot tome, takvi okviri ne bi mogli da budu identifikovani kao spremni za izlaz pomoću num_reorder_frames alone dok se ne prime dodatni okviri ili dok se ne dostigne krajnja sekvenca.) Određenije, dekoder može da koristi vrednost MaxLatencyFrames kako bi se omogućio raniji izlaz sledećih okvira:
● U nizu (501) sa Fig.5a, okvir F8<1>.
● U nizu (502) sa Fig.5b, okviri F2<1>, F4<3>, F6<5>, i F8<7>.
● U nizu (503) sa Fig.5c, okviri F3<1>, F6<4>, i F9<7>.
● U nizu (504) sa Fig.5d, okvir F8<1>.
● U nizu (505) sa Fig.5e, okviri F4<1>, i F8<5>.
Pored toga, izjava ili pregovaranje oko vrednosti MaxLatencyFrames na sistemskom nivou može da obezbedi sažeto izražavanje karakteristika kašnjenja protoka bitova ili sesiju na način koji ne omogućava merenje kapaciteta promene redosleda skladišta i oznaku takvog kapaciteta pomoću num_reorder_frames.
C. Primeri primena
[0067] Elementi sintakse koji označavaju ograničenje kašnjenja usled promene redosleda okvira mogu biti signalizirani na razne načine, u zavisnosti od primene. Elementi sintakse mogu biti signalizirani kao deo skupa parametara sekvence ("SPS"), skupa parametara slike ("PPS"), ili drugi element protoka bitova, signaliziran kao deo SEI poruke, VUI poruke ili drugih metapodataka, ili signaliziran na neki drugi način. U bilo kojoj od ovih primena, element sintakse koji označava vrednost može biti enkodiran pomoću nepotpisanog eksponencijalnog Golombovog kodiranja, nekog drugog oblika entropijskog kodiranja, ili kodiranja fiksne dužine, zatim signaliziran. Dekoder izvodi odgovarajuće dekodiranje nakon primanja elementa sintakse.
[0068] Kod prve primene, zastavica max_latency_limitation zastavica signalizira. Ako zastavica ima prvu binarnu vrednost (npr., 0), ne nameće se nikakvo ograničenje kašnjenja usled promene redosleda okvira. U ovom slučaju, vrednost elementa sintakse max_latency_frames nisignalizira ili je izignorisana.
Drugačije, (zastavica sa drugom binarnom vrednošću kao što je 1), vrednost elementa sintakse max_latency_frames signalizira označavanje ograničenja kašnjenja usled promene redosleda okvira. Na primer, u ovom slučaju, vrednost koja signalizira element sintakse max_latency_frames može biti bilo koja ne-negativna cela vrednost.
[0069] Kod druge primene, element sintakse max_latency_frames_plus1 signalizira označavanje ograničenje kašnjenja usled promene redosleda okvira. Ako max_latency_frames_plus1 ima prvu vrednost (npr., 0), ne nameće se nikakvo ograničenje kašnjenja usled promene redosleda okvira. Za druge vrednosti (npr., vrednosti bez nule), vrednost ograničenja kašnjenja usled promene redosleda okvira je podešena na max_latency_frames_plusl - 1. Na primer, vrednost max_latency_frames_plus1 je u opsegu od 0 do 2<32>, uključujući i - 2.
[0070] Slično tome, kod treće primene,element sintakse max_latency_frames signalizira označavanje ograničenja kašnjenja usled promene redosleda okvira. Ako max_latency_frames ima prvu vrednost (npr., maksimalnu vrednost), ne nameće se nikakvo ograničenje usled promene redosleda okvira. Za druge vrednosti (npr., vrednosti manje od maksimalne vrednosti), vrednost ograničenja kašnjenja usled promene redosleda okvira je podešena na max_latency_frames.
[0071] Kod četvrte primene, ograničenje kašnjenja usled promene redosleda okvira je označeno u odnosu na maksimalnu veličinu memorije okvira. Na primer, kašnjenje ograničenja je signalizirano kao porast u odnosu na element sintakse num_reorder_frames. Uobičajeno, ograničenje kašnjenja usled promene redosleda okvira (u smislu okvira) je veće od ili jednako num_reorder_frames. Da bi se sačuvali bitovi kod signaliziranja kašnjenja ograničenje, razlika između kašnjenje ograničenja i num_reorder_frames se enkodira (npr., pomoću nepotpisanog eksponencijalnog Gombovog kodiranja, nekog drugo oblika entropijskog kodiranja) zatim signalizira. Element sintakse max_latency_increase_plus1 signalizira označavanje ograničenja kašnjenja usled promene redosleda okvira. Ako max_latency_increase_plus1 ima prvu vrednost (npr., 0), ne nameće se nikakvo ograničenje usled promene redosleda okvira. Za druge vrednosti (npr., vrednosti bez nule), vrednost ograničenja kašnjenja usled promene redosleda okvira je podešena na num_reorder_frames max_latency_increase_plus1 - 1. Na primer, vrednost max_latency_increase_plus1 je u opsegu od 0 do 2<32>, uključujući i- 2.
[0072] Alternativno, jedan ili više elemenata sintakse koji označavaju ograničenje kašnjenja usled promene redosleda okvira se signaliziraju na drugi način.
D. Drugi načini označavanja ograničenja kašnjenja.
[0073] U mnogim od prethodnih primera, ograničenje kašnjenja predstavlja ograničenje kašnjenja usled promene redosleda okvira koje se izražava u smislu broja okvira. Uopštenije, ograničenje kašnjenja predstavlja ograničenje odlaganja koje može da se izrazi u smislu broja okvira ili da se izrazi u sekundama, millisekundama ili drugoj jedinici za vreme. Na primer, ograničenje kašnjenja može biti izraženo kao apsolutna mera za vreme kao što je 1 sekunda ili 0.5 sekundi. Enkoder može da konvertuje takvu vremensku jedinicu u broj okvira (uzimajući u vid brzinu video okvira), zatim da enkodira taj video tako da su zavisnosti među okvirima između više okvira video sekvence u skladu sa brojem okvira. Ili, bez obzira na promenu redosledu okvira i zavisnosti među okvirima, enkoder može da koristi istu meru za ograničavanje opsega do kojeg se odlaganje koristi da ublaži kratkoročne fluktuacije u brzini protoka enkodiranog videa, kompleksnosti kodiranja, mrežnom propusnom opsegu, itd.
Dekoder može da koristi istu meru za određivanje kada okvir može biti izlaz iz bafera dekodirane slike.
[0074] Ograničenje kašnjenja može da se ispregovara između transmitera i prijemnika tako da se napravi kompromis odgovora (nedostatak odlaganja) sa mogućnošću da se ublaže kratkoročne fluktuacije u brzini protoka enkodiranog videa, mogućnošću da se ublaže kratkoročne fluktuacije u kompleksnosti kodiranja, mogućnošću da se ublaže u mrežnom propusnom opsegu i/ili drugim faktorom koji ima koristi od povećanog odlaganja. Kod takvih pregovaranja, može biti korisno da se utvrdi i okarakteriše ograničenje kašnjenja tako da je nezavisno od brzine okvira. Ograničenje zatim može da se primenjuje tokom kodiranja i dekodiranja, pri čemu se uzima u obzir brzina video okvira. Ili, ograničenje može da se primenjuje tokom kodiranja i dekodiranja bez obzira na brzinu videa.
E. Opšte tehnike za podešavanje i ispisivanje elemenata sintakse.
[0075] Fig.6 prikazuje primer tehnike (600) za podešavanje i ispisivanje elemenata sintakse koji olakšavaju dekodiranje sa smanjenim kašnjenjem. Na primer, alat za komunikaciju u stvarnom vremenu ili alat za kodiranje opisan uz pozivanje na Fig.2a i 2b izvodi tehniku (600). Alternativno, drugi alat izvodi tehniku (600).
[0076] Za početak, alat definiše (610) jedan ili više elemenata sintakse koji ukazuju na ograničenje kašnjenja (npr., kašnjenje usled promene redosleda okvira, kašnjenje u smislu vremenske jedinice) u skladu sa zavisnostima među okvirima između više okvira video sekvence. Kada alat uključuje video enkoder, isti taj alat takođe može da prima okvire, enkodira okvire kako bi se proizveli enkodirani podaci (pomoću zavisnosti među okvirima koji su u skladu sa ograničenjem kašnjenja usled promene redosleda okvira), i ispisuje enkodirane podatke za skladište ili prenos.
[0077] Obično, ograničenje kašnjenja usled promene redosleda okvira predstavlja kašnjenje usled promene redosleda omogućeno za bilo koji okvir u video sekvenci. Ograničenje može biti izraženo na razne načine, ipak, i imati razna druga značenja. Na primer, ograničenje može biti izraženo u smislu maksimalnog broja okvira koji prethode datom okviru po izlaznom redosledu ali prati dati okvir po kodiranom redosledu. Ili, ograničenje može biti izraženo kao maksimalna razlika između kodiranog redosleda i izlaznog redosleda za bilo koji okvir u video sekvenci. Ili, fokusiranje na pojedinačni okvir, ograničenje može biti izraženo kao kašnjenje usled promene redosleda povezanog sa datim, specifičnim okvirom u video sekvenci. Ili, fokusiranje na grupu okvira, ograničenje može biti izraženo kao kašnjenje usled promene redosleda povezanog sa grupom okvira u video sekvenci. Ili, ograničenje može biti izraženo na neki drugi način.
[0078] Sledeće, alat ispisuje (620) element(e) sintakse. Ovo olakšava određivanje kada su rekonstruisani okviri spremni za izlaz po izlaznom redosledu više okvira. Element(i) sintakse mogu biti ispisani kao deo skupa parametara sekvence ili skupa parametara slike u elementarno kodiranom video protoku bitova, kao deo sintakse za datoteku skladišta podataka ili protok prenosa multimedije za okvire takođe uključuje enkodirane podatke za okvire, kao deo protokola pregovaranja o svojstvima multimedije (npr., tokom razmene protoka ili vrednosti parametara sesije tokom pregovaranja sistema i nivoa), kao deo informacija multimedijalnog sistema multiplikovanih sa enkodiranim podacima za okvire, ili kao deo metapodataka multimedije koji se odnose na enkodirane podatke za okvire (npr., u SEI porukama ili VUI porukama). Različiti elementi sintakse mogu biti ispisani kako bi se označile potrebe kapaciteta memorije. Na primer, element sintakse veličine bufera (kao što je max_dec_frame_buffering) može da označi maksimalnu veličinu DPB, a element sintakse okvira memorije (kao što je num_reorder_frames) može da označi maksimalnu veličinu memorije okvira za promenu redosleda.
[0079] Vrednost ograničenja kašnjenja može biti predstavljena na razne načine, kao što je opisano u odeljku V.C. Na primer, alat ispisuje zastavicu koja označava prisustvo ili odsustvo elemen(a)ta sintakse. Ako zastavica označava da su element(i) sintakse odsutni, onda je ograničenje kašnjenja nedefinisano ili ima podrazumevanu vrednost. Inače, element(i) sintakse prate i označavaju ograničenje kašnjenja. Ili, jedna vrednost elemen(a)ta sintakse označava da je ograničenje kašnjenja nedefinisano ili da ima podrazumevanu vrednost, a druge moguće vrednosti elemen(a)ta sintakse označavaju ceo broj za ograničenja kašnjenja. Ili, za slučajeve po kojem ograničenje kašnjenja predstavlja ograničenje kašnjenja usled promene redosleda okvira, data vrednost elemen(a)ta sintakse označava ceo broj za ograničenje kašnjenja usled promene redosleda okvira u odnosu na maksimalnu veličinu memorije okvira za promenu redosleda, koja je označena sa različitim elementom sintakse kao što je num_reorder_frames. Alternativno, ograničenje kašnjenja je predstavljeno na neki drugi način.
[0080] Kod nekih primena, okviri video sekvence su organizovani u skladu sa vremenskom hijerarhijom. U ovom slučaju, različiti elementi sintakse mogu da označavaju različita ograničenja kašnjenja usled promene redosleda okvira za različite vremenske slojeve vremenske hijerarhije.
F. Opšte tehnike za primanje i upotrebu elemenata sintakse.
[0081] Fig.7 prikazuje primer tehnike (700) za primanje i upotrebu elemenata sintakse koji olakšavaju dekodiranje sa smanjenim kašnjenjem. Na primer, alat za komunikaciju u stvarnom vremenu ili alat za reprodukciju opisan uz pozivanje na Fig.2a i 2b izvodi tehniku (700). Alternativno, drugi alat izvodi tehniku (700).
[0082] Za početak, alat prima i raščlanjuje (710) jedan ili više elemenata sintakse koji ukazuju na ograničenje kašnjenja (npr., kašnjenje usled promene redosleda okvira, kašnjenje u smislu vremenske jedinice). Na primer, raščlanjivanje uključuje očitavanje jednog ili više elemenata sintakse koji označavaju ograničenje kašnjenja iz protoka bitova. Alat takođe prima (720) enkodirane podatke za više okvira video sekvence. Alat može da raščlani element(e) sintakse, i, na osnovu elemen(a)ta sintakse, odredi ograničenje kašnjenja. Obično, ograničenje kašnjenja usled promene redosleda okvira predstavlja kašnjenje usled promene redosleda omogućeno za bilo koji okvir u video sekvenci. Ograničenje može biti izraženo na razne načine, ipak, i imati razna druga značenja, kao što je opisano u prethodnom odeljku. Element(i) sintakse mogu biti signalizirani kao deo skupa parametara sekvence ili skupa parametara slike u elementarno kodiranom video protoku bitova, kao deo sintakse za datoteku skladišta nosača ili protoka prenosa multimedije, kao deo protokola pregovaranja oko svojstava multimedije, kao deo informacija multimedijalnog sistema multiplikovanih sa enkodiranim podacima, ili kao deo

Claims (15)

  1. metapodataka multimedije koji se odnose na enkodirane podatke. Alat može da primi i raščlani različite elemente sintakse koji označavaju potrebe kapaciteta memorije, na primer, element sintakse veličine bufera kao što je max_dec_frame_buffering i element sintakse okvira memorije kao što je num_reorder_frames.
    [0083] Vrednost ograničenja kašnjenja može biti predstavljena na razne načine, kao što je opisano u odeljku V.C. Na primer, alat prima zastavicu koja označava prisustvo ili odsustvo elemen(a)ta sintakse. Ako zastavica označava da je element(e) sintakse(s) odsutan, onda je ograničenje kašnjenja nedefinisano ili ima podrazumevanu vrednost. Inače, element(i) sintakse prate i označavaju ograničenje kašnjenja. Ili, jedna vrednost elemen(a)ta sintakse označava da je ograničenje kašnjenja nedefinisano ili ima podrazumevanu vrednost, a druge moguće vrednosti elemen(a)ta sintakse označavaju ceo broj za ograničenje kašnjenja. Ili, za slučajeve po kojem to ograničenje kašnjenja predstavlja ograničenje kašnjenja usled promene redosleda okvira data vrednost elemen(a)ta sintakse(s) označava ceo broj za ograničenje kašnjenja usled promene redosleda okvira u odnosu na maksimalnu veličinu memorije okvira za promenu redosleda, koja je označena različitim elementom sintakse kao što je num_reorder_frames. Alternativno, ograničenje kašnjenja je signalizirano na neki drugi način.
    [0084] Vraćajući se na Fig.7, alat dekodira (730) najmanje neke od enkodiranih podataka kako bi se rekonstruisao jedan od okvira. Alat ispisuje (740) rekonstruisani okvir. Postupajući tako, alat može da koristi ograničenje kašnjenja za određivanje kada je rekonstruisani okvir spreman za izlaz, npr., po izlaznom redosledu okvira video sekvence.
    [0085] Kod nekih primena, okviri video sekvence su organizovani u skladu sa vremenskom hijerarhijom. U ovom slučaju, različiti elementi sintakse mogu da označavaju različita ograničenja kašnjenja okvira usled promene redosleda za različite vremenske slojeve vremenske hijerarhije. Alat može da izabere jedno od različitih ograničenja kašnjenja okvira usled promene redosleda u zavisnosti od vremenske rezolucije izlaza.
    [0086] U smislu mnogih mogućih načina ostvarivanja na koje se mogu primeniti principi ovde otkrivenog pronalaska, trebalo bi da se shvati da ilustrovani načini ostvarivanja predstavljaju samo poželjne primere ovog pronalaska i ne bi trebalo da se tumače u smislu ograničavanja obima ovog pronalaska. Umesto toga, obim ovog pronalaska se definiše patentnim zahtevima u nastavku. Samim tim se štiti sve što potpada pod obim ovih patentnih zahteva.
    Patentni zahtevi
    1. Postupak u računarskom sistemu koji primenjuje video dekoder (450), pri čemu taj postupak obuhvata:
    primanje i raščlanjivanje elementa sintakse koji označava maksimalnu veličinu memorije okvira za promenu redosleda, pri čemu se ta maksimalna veličina memorije okvira za promenu redosleda izražava u smislu maksimalnog broja okvira koji mogu da prethode bilo kom okviru video sekvence po kodiranom redosledu, ali prate taj okvir po izlaznom redosledu;
    primanje i raščlanjivanje (710) jednog ili više različitih elemenata sintakse koji označavaju ograničenje kašnjenja usled promene redosleda okvira, pri čemu se to ograničenje kašnjenja usled promene redosleda okvira izražava u smislu maksimalnog broja okvira koji mogu da prethode bilo kom okviru video sekvence po izlaznom redosledu, ali prate taj okvir po kodiranom redosledu; primanje (720) enkodiranih podataka za mnoštvo okvira video sekvence;
    sa video dekoderom, dekodiranje (730) najmanje nekih enkodiranih podataka kako bi se rekonstruisao jedan od mnoštva okvira; i
    izlaz (740) rekonstruisanog okvira.
  2. 2. Postupak prema zahtevu 1, pri čemu taj postupak dalje obuhvata:
    određivanje ograničenja kašnjenja usled promene redosleda okvira na osnovu jednog ili više elemenata sintakse; i
    korišćenje ograničenja kašnjenja usled promene redosleda okvira kako bi se odredilo da li je rekonstruisani okvir spreman za izlaz po izlaznom redosledu mnoštva okvira video sekvence.
  3. 3. Postupak prema zahtevu 2 u kojem je to mnoštvo okvira video sekvence organizovano u skladu sa vremenskom hijerarhijom, pri čemu oni različiti od jednog ili više elemenata sintakse označavaju različita ograničenja kašnjenja usled promene redosleda okvira za različite vremenske slojeve vremenske hijerarhije, pri čemu taj postupak dalje obuhvata izbor jednog od različitih ograničenja kašnjenja usled promene redosleda okvira u zavisnosti od vremenske rezolucije izlaza.
  4. 4. Postupak prema bilo kom od zahteva 1 do 3 pri čemu ograničenje kašnjenja predstavlja ograničenje kašnjenja usled promene redosleda okvira, i pri čemu to ograničenje kašnjenja usled promene redosleda okvira predstavlja kašnjenje usled promene redosleda koje je dozvoljeno za bilo koji okvir u video sekvenci.
  5. 5. Postupak prema bilo kom od zahteva 1 do 4 u kojem je jedan ili više različitih elemenata sintakse i enkodiranih podataka signalizirano kao deo sintakse za protok bitova kodiranog videa, pri čemu taj postupak dodatno obuhvata:
    primanje i raščlanjivanje elementa sintakse veličine bufera koji označava maksimalnu veličinu bufera dekodirane slike, pri čemu je taj element sintakse veličine bufera drugačiji od jednog ili više različitih elemenata sintakse koji označavaju ograničenje kašnjenja usled promene redosleda okvira.
  6. 6. Postupak prema bilo kom od zahteva 1 do 5 u kojem je jedan ili više različitih elemenata sintakse signalizirano kao deo skupa parametara sekvence, skupa parametara slike, sintakse za datoteku skladišta podataka koja takođe uključuje enkodirane podatke, sintaksu za protok prenosa multimedije koja takođe uključuje enkodirane podatke, protokol za pregovaranje o svojstvima multimedije, informacije multimedijalnog sistema multiplikovane sa enkodiranim podacima ili metapodacima multimedije koji se odnose na enkodirane podatke.
  7. 7. Postupak prema bilo kom od zahteva 1 do 6 u kojem jedna moguća vrednost jednog ili više različitih elemenata sintakse znači da je ograničenje kašnjenja usled promene redosleda okvira nedefinisano ili ima podrazumevanu vrednost, i pri čemu druge moguće vrednosti jednog ili više različitih elemenata sintakse označavaju ceo broj za ograničenje kašnjenja usled promene redosleda okvira.
  8. 8. Postupak prema bilo kom od zahteva 1 do 7 u kojem vrednost jednog ili više različitih elemenata sintakse označava ceo broj za ograničenje kašnjenja usled promene redosleda okvira u odnosu na maksimalnu veličinu memorije okvira za promenu redosleda.
  9. 9. Jedan ili više prenosnih nosača podataka na kojima se skladište instrukcije koje može da izvrši računar, koje uzrokuju programiranje računarskog sistema za izvođenje operacija, pri čemu je jedan ili više prenosnih nosača podataka izabran samo iz grupe koju čine memorija sa stalnim sadržajem i uređaj za skladištenje, a pri čemu te operacije obuhvataju:
    primanje i raščlanjivanje (710) jednog ili više elemenata sintakse koji označavaju ograničenje kašnjenja usled promene redosleda okvira, pri čemu se to ograničenje kašnjenja usled promene redosleda okvira izražava u smislu maksimalnog broja okvira koji mogu da prethode bilo kom okviru video sekvence po izlaznom redosledu, ali prate taj okvir po kodiranom redosledu; određivanje ograničenja kašnjenja usled promene redosleda okvira na osnovu jednog ili više elemenata sintakse;
    primanje (720) enkodiranih podataka za mnoštvo okvira video sekvence;
    sa video dekoderom, dekodiranje (730) najmanje nekih enkodiranih podataka kako bi se rekonstruisao jedan od mnoštva okvira; i
    izlaz (740) rekonstruisanog okvira, pri čemu se ograničenje koristi za određivanje kada je rekonstruisani okvir spreman za izlaz.
  10. 10. Jedan ili više prenosnih nosača podataka prema zahtevu 9, pri čemu te operacije dodatno obuhvataju:
    primanje i raščlanjivanje jednog ili više elemenata sintakse koji označavaju maksimalnu veličinu memorije okvira za promenu redosleda, pri čemu se ta maksimalna veličina memorije okvira za promenu redosleda izražava u smislu maksimalnog broja okvira koji može da prethodi bilo kom okviru video sekvence po kodiranom redosledu ali prate taj okvir po izlaznom redosledu.
  11. 11. Jedan ili više prenosnih nosača podataka prema zahtevu 9 ili 10, pri čemu su jedan ili više elemenata sintakse i enkodirani podaci signalizirani kao deo sintakse za protok videa kodiranog videa, pri čemu te operacije dodatno obuhvataju:
    primanje i raščlanjivanje elementa sintakse veličine bufera koji označava maksimalnu veličinu bufera dekodirane slike, pri čemu je element sintakse veličine bufera drugačiji od jednog ili više elemenata sintakse koji označavaju ograničenje kašnjenja usled promene redosleda okvira.
  12. 12. Jedan ili više prenosnih nosača podataka prema bilo kom od zahteva 9 do 11, pri čemu je jedan ili više elemenata sintakse signaliziran kao deo skupa parametara sekvence, skupa parametara slike, sintakse za datoteku skladišta multimedije koja takođe uključuje enkodirane podatke, sintaksu za protok prenosa multimedije koja takođe uključuje enkodirane podatke, protokol za pregovaranje o svojstvima multimedije, informacije multimedijalnog sistema multiplikovane sa enkodiranim podacima ili metapodacima multimedije koji se odnose na enkodirane podatke.
  13. 13. Jedan ili više prenosnih nosača podataka prema bilo kom od zahteva 9 do 12, pri čemu jedna moguća vrednost jednog ili više elemenata sintakse znači da je ograničenje kašnjenja usled promene redosleda okvira nedefinisano ili ima podrazumevanu vrednost, i pri čemu druge moguće vrednosti jednog ili više elemenata sintakse označavaju ceo broj za ograničenje kašnjenja usled promene redosleda okvira.
  14. 14. Jedan ili više prenosnih nosača podataka prema bilo kom od zahteva 9 do 13, pri čemu vrednost jednog ili više elemenata sintakse označava ceo broj za ograničenje kašnjenja usled promene redosleda okvira u odnosu na maksimalnu veličinu memorije okvira za promenu redosleda, pri čemu je ta maksimalna veličina memorije okvira za promenu redosleda označena različitim elementom sintakse.
  15. 15. Jedan ili više prenosnih nosača podataka prema zahtevu 14, pri čemu ograničenje kašnjenja usled promene redosleda okvira može da se odredi kao maksimalan broj za maksimalnu veličinu memorije okvira za promenu redosleda plus ceo broj za ograničenje kašnjenja usled promene redosleda okvira minus 1.
RS20230857A 2011-06-30 2011-10-11 Smanjenje kašnjenja kod video kodiranja i dekodiranja RS64742B1 (sr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161571553P 2011-06-30 2011-06-30
EP20162441.8A EP3691268B1 (en) 2011-06-30 2011-10-11 Reducing latency in video encoding and decoding

Publications (1)

Publication Number Publication Date
RS64742B1 true RS64742B1 (sr) 2023-11-30

Family

ID=47390681

Family Applications (1)

Application Number Title Priority Date Filing Date
RS20230857A RS64742B1 (sr) 2011-06-30 2011-10-11 Smanjenje kašnjenja kod video kodiranja i dekodiranja

Country Status (28)

Country Link
US (21) US8837600B2 (sr)
EP (4) EP3691268B1 (sr)
JP (1) JP6059219B2 (sr)
KR (1) KR101944565B1 (sr)
CN (2) CN103621085B (sr)
AU (1) AU2011371809B2 (sr)
BR (1) BR112013033552B1 (sr)
CA (1) CA2840427C (sr)
CL (1) CL2013003736A1 (sr)
CO (1) CO6862115A2 (sr)
DK (1) DK3691268T3 (sr)
ES (1) ES2958967T3 (sr)
HR (1) HRP20231180T1 (sr)
HU (1) HUE063498T2 (sr)
IL (2) IL230189A (sr)
LT (1) LT3691268T (sr)
MX (1) MX2013015154A (sr)
MY (2) MY189650A (sr)
NZ (1) NZ619406A (sr)
PH (1) PH12013502659A1 (sr)
PL (1) PL3691268T3 (sr)
PT (1) PT3691268T (sr)
RS (1) RS64742B1 (sr)
RU (1) RU2587467C2 (sr)
SG (1) SG10201408609SA (sr)
TW (3) TWI587693B (sr)
WO (1) WO2013002818A1 (sr)
ZA (1) ZA201308553B (sr)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2587467C2 (ru) 2011-06-30 2016-06-20 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Сокращение задержки при кодировании и декодировании видео
KR20130058584A (ko) * 2011-11-25 2013-06-04 삼성전자주식회사 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치
CN107257490B (zh) 2012-01-27 2019-12-17 太阳专利托管公司 图像编码方法及图像编码装置
FR2994785A1 (fr) * 2012-08-23 2014-02-28 France Telecom Procede de traitement d'un flux multimedia, terminal de communication, serveur et produit programme d'ordinateur correspondant.
US9161039B2 (en) 2012-09-24 2015-10-13 Qualcomm Incorporated Bitstream properties in video coding
JP5820551B1 (ja) * 2012-09-28 2015-11-24 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 映像シーケンスのピクチャの復号化及び符号化
US9374585B2 (en) 2012-12-19 2016-06-21 Qualcomm Incorporated Low-delay buffering model in video coding
CN116320392A (zh) * 2013-01-04 2023-06-23 Ge视频压缩有限责任公司 高效可伸缩编码概念
JP5811106B2 (ja) * 2013-01-11 2015-11-11 セイコーエプソン株式会社 映像処理装置、表示装置および映像処理方法
US20140301477A1 (en) * 2013-04-07 2014-10-09 Sharp Laboratories Of America, Inc. Signaling dpb parameters in vps extension and dpb operation
JP5680807B1 (ja) * 2013-06-05 2015-03-04 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 動画像符号化方法、動画像符号化装置、送信装置及びプログラム
CN104685318B (zh) * 2013-06-27 2018-01-26 松下电器(美国)知识产权公司 运动传感器装置、电路、记录介质以及图像处理装置
WO2015001770A1 (ja) * 2013-07-01 2015-01-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 複数の光源を有するモーションセンサ装置
WO2015008479A1 (en) * 2013-07-14 2015-01-22 Sharp Kabushiki Kaisha Signaling indications and constraints
US9674257B2 (en) * 2013-12-31 2017-06-06 Echostar Technologies L.L.C. Placeshifting live encoded video faster than real time
JP5866499B2 (ja) * 2014-02-24 2016-02-17 パナソニックIpマネジメント株式会社 監視カメラシステム及び監視カメラシステムの制御方法
US10419703B2 (en) * 2014-06-20 2019-09-17 Qualcomm Incorporated Automatic multiple depth cameras synchronization using time sharing
DE102014214750B3 (de) * 2014-07-28 2015-06-11 Reimar Lenz Bildaufnahmesystem mit schnell vibrierendem Global-Shutter-CMOS-Sensor
TWI500904B (zh) * 2014-09-18 2015-09-21 Vivotek Inc 立體攝影機及用來測量立體攝影機與基準面之距離的自動測距方法
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
US10075692B2 (en) * 2015-01-28 2018-09-11 Hfi Innovation Inc. Method of simple intra mode for video coding
US10638140B2 (en) 2015-05-29 2020-04-28 Qualcomm Incorporated Slice level intra block copy and other video coding improvements
US10003813B2 (en) * 2015-06-25 2018-06-19 Samsung Electronics Co., Ltd. Method and system for decoding by enabling optimal picture buffer management
CN106358042B (zh) 2015-07-17 2020-10-09 恩智浦美国有限公司 使用视频图像的帧间预测的并行解码器
US11051026B2 (en) * 2015-08-31 2021-06-29 Intel Corporation Method and system of frame re-ordering for video coding
US10962780B2 (en) * 2015-10-26 2021-03-30 Microsoft Technology Licensing, Llc Remote rendering for virtual images
TWI632814B (zh) 2016-11-11 2018-08-11 財團法人工業技術研究院 視訊畫幀產生方法及其系統
FR3058858A1 (fr) * 2016-11-15 2018-05-18 Orange Procede et dispositif de codage et de decodage d'une sequence multi-vues
KR102342051B1 (ko) 2017-08-08 2021-12-22 삼성전자주식회사 영상 처리 장치, 영상 처리 방법 및 영상 디스플레이 시스템
US10412383B2 (en) 2017-08-15 2019-09-10 Google Llc Compressing groups of video frames using reversed ordering
US10748844B2 (en) * 2017-12-30 2020-08-18 Intel Corporation Stress isolation for silicon photonic applications
CN108833932B (zh) * 2018-07-19 2021-01-05 湖南君瀚信息技术有限公司 一种实现高清视频超低延迟编解码及传输的方法及系统
FI3797518T3 (fi) * 2018-08-21 2025-01-23 Adeia Guides Inc Järjestelmiä ja menetelmiä koodiltaan muunnetun median reaaliaikaiseen mukautuvaan bittinopeuden koodinmuuntoon ja lähetykseen
US12238353B2 (en) * 2018-10-03 2025-02-25 Qualcomm Incorporated Service description for streaming media data
CN113016187B (zh) * 2018-11-07 2023-06-06 寰发股份有限公司 利用当前画面参照编码方式的视频区块编码或解码方法和装置
US10911791B2 (en) 2019-01-09 2021-02-02 Netflix, Inc. Optimizing encoding operations when generating a buffer-constrained version of a media title
WO2020156549A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Buffer access methods for intra block copy in video coding
SG11202107959WA (en) 2019-02-02 2021-08-30 Beijing Bytedance Network Technology Co Ltd Buffer management for intra block copy in video coding
US10992960B2 (en) 2019-02-06 2021-04-27 Jared Michael Cohn Accelerated video exportation to multiple destinations
EP3915265A4 (en) * 2019-03-01 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. DIRECTION-BASED PREDICTION FOR INTRA BLOCK COPY IN VIDEO CODING
CN113545068B (zh) 2019-03-01 2023-09-15 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于顺序的更新
KR20240132530A (ko) 2019-03-04 2024-09-03 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사의 구현 형태
EP3709272A1 (en) * 2019-03-15 2020-09-16 InterDigital VC Holdings, Inc. Processing a point cloud
CN117294841A (zh) 2019-07-06 2023-12-26 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的虚拟预测缓冲
KR102635519B1 (ko) 2019-07-10 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 샘플 식별
KR102695788B1 (ko) 2019-07-11 2024-08-14 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 비트스트림 적합 제약
WO2021052491A1 (en) 2019-09-19 2021-03-25 Beijing Bytedance Network Technology Co., Ltd. Deriving reference sample positions in video coding
WO2021052490A1 (en) * 2019-09-19 2021-03-25 Beijing Bytedance Network Technology Co., Ltd. Scaling window in video coding
JP7384269B2 (ja) * 2019-10-09 2023-11-21 ソニーグループ株式会社 点群再構成前の復号フレーム同期
CN114556918B (zh) 2019-10-12 2025-08-12 北京字节跳动网络技术有限公司 细化视频编解码工具的使用和信令
JP7414980B2 (ja) 2019-10-13 2024-01-16 北京字節跳動網絡技術有限公司 参照ピクチャリサンプリングと映像コーディングツールとの間の相互作用
US11064194B2 (en) 2019-10-31 2021-07-13 Western Digital Technologies, Inc. Encoding digital videos using controllers of data storage devices
CN113497932B (zh) * 2020-04-07 2022-10-18 上海交通大学 测量视频传输时延的方法、系统及介质
WO2021243044A1 (en) * 2020-05-27 2021-12-02 Let's Jam, Llc Methods and systems for synchronizing multimedia
KR20230021736A (ko) * 2020-06-09 2023-02-14 엘지전자 주식회사 Dpb 동작 기반 영상 또는 비디오 코딩
CN112351285B (zh) * 2020-11-04 2024-04-05 北京金山云网络技术有限公司 视频编码、解码方法和装置、电子设备和存储介质
CN112468875B (zh) * 2020-11-30 2022-03-29 展讯通信(天津)有限公司 视频解码帧的显示输出控制方法及装置、存储介质、终端
US11620725B2 (en) * 2021-02-18 2023-04-04 Qualcomm Incorporated Low latency frame delivery
KR102897441B1 (ko) 2021-04-19 2025-12-09 삼성전자주식회사 서버 및 그 제어 방법
US12581134B2 (en) 2021-11-01 2026-03-17 Lg Electronics Inc. Feature encoding/decoding method and device, and recording medium storing bitstream
US11425423B1 (en) 2022-03-10 2022-08-23 Yendo Hu Memory storage for motion estimation and visual artifact redcution
EP4254900B1 (en) * 2022-03-28 2024-07-24 Deutsche Telekom AG Multipath receiver and processing of 3gpp atsss on a multipath receiver
US20240127484A1 (en) * 2022-10-14 2024-04-18 Rovi Guides, Inc. Optimized light field representation for compression
CN119653151B (zh) * 2024-11-25 2026-03-24 中国电子科技集团公司第五十二研究所 一种多路音视频数据的同步采集存储方法及装置

Family Cites Families (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4309754A (en) 1979-07-30 1982-01-05 International Business Machines Corp. Data interface mechanism for interfacing bit-parallel data buses of different bit width
US4642756A (en) 1985-03-15 1987-02-10 S & H Computer Systems, Inc. Method and apparatus for scheduling the execution of multiple processing tasks in a computer system
EP0537721B1 (en) 1991-10-15 1998-11-25 Hewlett-Packard Company Hardware-configured operating system kernel for a multitasking processor
US6002801A (en) 1995-04-18 1999-12-14 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics
DE19530483A1 (de) 1995-08-18 1997-02-20 Siemens Ag Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
US5861920A (en) * 1996-11-08 1999-01-19 Hughes Electronics Corporation Hierarchical low latency video compression
JPH10229420A (ja) 1997-02-17 1998-08-25 Matsushita Electric Ind Co Ltd 通信システム
US5909559A (en) 1997-04-04 1999-06-01 Texas Instruments Incorporated Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width
US6006303A (en) 1997-08-28 1999-12-21 Oki Electric Industry Co., Inc. Priority encoding and decoding for memory architecture
EP0909094A1 (en) 1997-10-07 1999-04-14 CANAL+ Société Anonyme Multithread data processor
CN1199471C (zh) 1997-11-28 2005-04-27 松下电器产业株式会社 提高了处理效率的图象声音处理装置
JP3935252B2 (ja) 1997-12-26 2007-06-20 キヤノン株式会社 画像形成装置及びジョブ処理方法
US6823016B1 (en) 1998-02-20 2004-11-23 Intel Corporation Method and system for data management in a video decoder
JPH11252552A (ja) 1998-03-05 1999-09-17 Sony Corp ビデオ信号の圧縮符号化方法及び圧縮符号化装置、並びに、圧縮符号化データの多重化方法及び多重化装置
US6298166B1 (en) 1998-03-30 2001-10-02 Seiko Epson Corporation Image transformations in the compressed domain
US6859496B1 (en) 1998-05-29 2005-02-22 International Business Machines Corporation Adaptively encoding multiple streams of video data in parallel for multiplexing onto a constant bit rate channel
JP4146950B2 (ja) 1998-11-04 2008-09-10 キヤノン株式会社 画像形成装置、画像形成装置における表示制御方法及び記憶媒体
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US6637031B1 (en) 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6249288B1 (en) 1998-12-14 2001-06-19 Ati International Srl Multi thread display controller
US7370325B1 (en) 1999-02-19 2008-05-06 Lucent Technologies Inc. Eager evaluation of tasks in a workflow system
US6771824B1 (en) 1999-12-28 2004-08-03 Lucent Technologies Inc. Adaptive variable length decoding method
US6574279B1 (en) 2000-02-02 2003-06-03 Mitsubishi Electric Research Laboratories, Inc. Video transcoding using syntactic and semantic clues
JP2002010216A (ja) 2000-04-20 2002-01-11 Canon Inc 復号化装置及びその制御方法並びに記憶媒体
US7206016B2 (en) 2000-05-01 2007-04-17 Polycom, Inc. Filtering artifacts from multi-threaded video
EP1156674A1 (en) 2000-05-19 2001-11-21 THOMSON multimedia Method and device for decoding a video data stream in special reproduction modes
US6963347B1 (en) 2000-08-04 2005-11-08 Ati International, Srl Vertex data processing with multiple threads of execution
GB2366464A (en) 2000-08-14 2002-03-06 Nokia Mobile Phones Ltd Video coding using intra and inter coding on the same data
US20040117427A1 (en) 2001-03-16 2004-06-17 Anystream, Inc. System and method for distributing streaming media
US7366236B1 (en) 2001-06-04 2008-04-29 Cisco Sytems Canada Co. Source adaptive system and method for 2D iDCT
AU2002367381A1 (en) * 2001-12-31 2003-07-24 Bae Systems Information And Electronic Systems Integration Inc. System for peak detection among multiple signals
US7920624B2 (en) 2002-04-01 2011-04-05 Broadcom Corporation Inverse quantizer supporting multiple decoding processes
US6963613B2 (en) 2002-04-01 2005-11-08 Broadcom Corporation Method of communicating between modules in a decoding system
US7034897B2 (en) 2002-04-01 2006-04-25 Broadcom Corporation Method of operating a video decoding system
CN1976454B (zh) 2002-04-19 2011-05-11 松下电器产业株式会社 运动矢量的确定方法
JP2004088736A (ja) * 2002-06-28 2004-03-18 Matsushita Electric Ind Co Ltd 動画像の符号化方法、復号化方法、データストリーム、データ記録媒体およびプログラム
US7787539B2 (en) * 2002-07-17 2010-08-31 Broadcom Corporation Decoding and presentation time stamps for MPEG-4 advanced video coding
JP3534742B1 (ja) * 2002-10-03 2004-06-07 株式会社エヌ・ティ・ティ・ドコモ 動画像復号方法、動画像復号装置、及び動画像復号プログラム
TWI249356B (en) 2002-11-06 2006-02-11 Nokia Corp Picture buffering for prediction references and display
US8798167B2 (en) 2002-11-29 2014-08-05 Sony Corporation Encoder and its method
US7099389B1 (en) 2002-12-10 2006-08-29 Tut Systems, Inc. Rate control with picture-based lookahead window
MXPA05008404A (es) 2003-02-18 2005-10-05 Nokia Corp Metodo de codificacion de imagen.
JP4750350B2 (ja) 2003-03-13 2011-08-17 パナソニック株式会社 タスク切換装置、方法及びプログラム
US7646817B2 (en) 2003-03-28 2010-01-12 Microsoft Corporation Accelerating video decoding using a graphics processing unit
US7627039B2 (en) 2003-09-05 2009-12-01 Realnetworks, Inc. Parallel video decoding
US7869503B2 (en) 2004-02-06 2011-01-11 Apple Inc. Rate and quality controller for H.264/AVC video coder and scene analyzer therefor
JP4095559B2 (ja) 2004-02-13 2008-06-04 株式会社東芝 H.264コーデックic、dvd再生装置、h.264コーデック方法
JP2007526687A (ja) 2004-02-19 2007-09-13 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 可変ブロック長信号の復号化スキーム
KR100997270B1 (ko) 2004-04-28 2010-11-29 파나소닉 주식회사 스트림 생성 장치, 스트림 생성 방법, 및 기록 매체
US20060002479A1 (en) 2004-06-22 2006-01-05 Fernandes Felix C A Decoder for H.264/AVC video
US20050289505A1 (en) 2004-06-25 2005-12-29 Williams Stanley N Method and system for improving performance and scalability of applications that utilize a flow-based-programming methodology
US8291448B2 (en) 2004-09-15 2012-10-16 Nokia Corporation Providing zapping streams to broadcast receivers
JP4867235B2 (ja) 2004-10-26 2012-02-01 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP4375305B2 (ja) 2004-10-26 2009-12-02 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
US20060114995A1 (en) 2004-12-01 2006-06-01 Joshua Robey Method and system for high speed video encoding using parallel encoders
US7430238B2 (en) 2004-12-10 2008-09-30 Micronas Usa, Inc. Shared pipeline architecture for motion vector prediction and residual decoding
US20060126744A1 (en) 2004-12-10 2006-06-15 Liang Peng Two pass architecture for H.264 CABAC decoding process
US20060126726A1 (en) 2004-12-10 2006-06-15 Lin Teng C Digital signal processing structure for decoding multiple video standards
US7817723B2 (en) 2004-12-14 2010-10-19 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E. V. Apparatus and method of optimizing motion estimation parameters for encoding a video signal
EP1675402A1 (en) 2004-12-22 2006-06-28 Thomson Licensing Optimisation of a quantisation matrix for image and video coding
CN101107863B (zh) 2005-01-19 2013-01-02 汤姆森特许公司 用于实时并行编码的方法和装置
US7565021B2 (en) 2005-03-01 2009-07-21 Microsoft Corporation Efficient implementation of block-based transform on graphics processing unit
WO2006096612A2 (en) 2005-03-04 2006-09-14 The Trustees Of Columbia University In The City Of New York System and method for motion estimation and mode decision for low-complexity h.264 decoder
US20060215754A1 (en) 2005-03-24 2006-09-28 Intel Corporation Method and apparatus for performing video decoding in a multi-thread environment
JP4261508B2 (ja) 2005-04-11 2009-04-30 株式会社東芝 動画像復号装置
JP4374548B2 (ja) 2005-04-15 2009-12-02 ソニー株式会社 復号装置および方法、記録媒体、並びに、プログラム
US7920633B2 (en) 2005-04-22 2011-04-05 Broadcom Corporation Method and system for parallel processing video data
US8902989B2 (en) 2005-04-27 2014-12-02 Broadcom Corporation Decoder system for decoding multi-standard encoded video
EP1773063A1 (en) 2005-06-14 2007-04-11 Thomson Licensing Method and apparatus for encoding video data, and method and apparatus for decoding video data
US7119723B1 (en) 2005-07-28 2006-10-10 Texas Instruments Incorporated Decoding variable length codes while using optimal resources
KR100770704B1 (ko) 2005-08-04 2007-10-29 삼성전자주식회사 픽쳐 스킵 방법 및 장치
US8306112B2 (en) 2005-09-20 2012-11-06 Mitsubishi Electric Corporation Image encoding method and image decoding method, image encoder and image decoder, and image encoded bit stream and recording medium
EP1932361A1 (en) 2005-10-03 2008-06-18 Nokia Corporation Adaptive variable length codes for independent variables
BRPI0616407B1 (pt) 2005-10-12 2020-08-11 Interdigital Vc Holdings, Inc Codificação/decodificação de vídeo escalonável h.264 com região de interesse
US8200164B2 (en) * 2005-12-01 2012-06-12 Intel Corporation Wireless communication system, associated methods and data structures
US8767836B2 (en) 2006-03-27 2014-07-01 Nokia Corporation Picture delimiter in scalable video coding
EP1841072B1 (de) 2006-03-30 2016-06-01 Unify GmbH & Co. KG Verfahren und Einrichtung zum Dekodieren von schichtkodierten Daten
US7694102B2 (en) 2006-03-30 2010-04-06 International Business Machines Corporation Systems and methods for self-tuning memory
US7626518B2 (en) 2006-06-08 2009-12-01 Via Technologies, Inc. Decoding systems and methods in computational core of programmable graphics processing unit
US8369419B2 (en) 2006-06-16 2013-02-05 Via Technologies, Inc. Systems and methods of video compression deblocking
US8699583B2 (en) 2006-07-11 2014-04-15 Nokia Corporation Scalable video coding and decoding
US7586425B2 (en) 2006-07-11 2009-09-08 Nokia Corporation Scalable video coding and decoding
CN1960472A (zh) 2006-08-14 2007-05-09 中兴通讯股份有限公司 一种多媒体移动终端及其接收多媒体数据的处理方法
US8218640B2 (en) 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture decoding using same-picture reference for pixel reconstruction
US8121196B2 (en) 2006-11-02 2012-02-21 Corel Corporation Method and apparatus for multi-threaded video decoding
US7573407B2 (en) 2006-11-14 2009-08-11 Qualcomm Incorporated Memory efficient adaptive block coding
JP5036826B2 (ja) 2006-12-14 2012-09-26 トムソン ライセンシング ビット深度スケーラビリティのためのエンハンスメントレイヤの残差予測を使用したビデオデータを符号化及び/又は復号化する方法及び装置
JP2010515336A (ja) 2006-12-27 2010-05-06 インテル コーポレイション ビデオ情報をデコード及びエンコードする方法及び装置
BRPI0720702A2 (pt) * 2007-01-05 2014-02-18 Thomson Licensing Decodificador hipotético de referência para codificação de vídeo escalável
WO2008085935A1 (en) * 2007-01-08 2008-07-17 Thomson Licensing Methods and apparatus for video stream splicing
US8411734B2 (en) 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
WO2008125900A1 (en) 2007-04-13 2008-10-23 Nokia Corporation A video coder
US8260068B2 (en) 2007-05-17 2012-09-04 Sony Corporation Encoding and decoding device and associated methodology for obtaining a decoded image with low delay
US8396082B2 (en) 2007-06-05 2013-03-12 Core Wireless Licensing S.A.R.L. Time-interleaved simulcast for tune-in reduction
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US8265144B2 (en) 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
JP5411417B2 (ja) * 2007-09-11 2014-02-12 古野電気株式会社 パルス信号の送受信装置および送受信方法
US8295363B2 (en) * 2007-09-14 2012-10-23 Yahoo! Inc. Restoring program information for clips of broadcast programs shared online
WO2009048502A2 (en) * 2007-10-05 2009-04-16 Thomson Licensing Methods and apparatus for incorporating video usability information (vui) within a multi-view video (mvc) coding system
US20090109988A1 (en) 2007-10-26 2009-04-30 Chowdhary Musunuri Video Decoder with an Adjustable Video Clock
US8121187B2 (en) 2007-12-05 2012-02-21 Alcatel Lucent Method and apparatus for performing multiple bit rate video encoding and video stream switching
US20100128779A1 (en) * 2008-11-14 2010-05-27 Chanchal Chatterjee Method and apparatus for splicing in a compressed video bitstream
CN102342127A (zh) 2009-01-28 2012-02-01 诺基亚公司 用于视频编码和解码的方法和装置
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
US20110002376A1 (en) * 2009-07-01 2011-01-06 Wham! Inc. Latency Minimization Via Pipelining of Processing Blocks
JP5604825B2 (ja) * 2009-08-19 2014-10-15 ソニー株式会社 画像処理装置および方法
US9237387B2 (en) * 2009-10-06 2016-01-12 Microsoft Technology Licensing, Llc Low latency cacheable media streaming
US8268904B2 (en) 2009-10-06 2012-09-18 Dow Global Technologies Llc Extruded polystyrene foam with broad comonomer content distribution
US8487791B2 (en) 2010-02-18 2013-07-16 Research In Motion Limited Parallel entropy coding and decoding methods and devices
US8918533B2 (en) * 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
CN101938341B (zh) * 2010-09-17 2012-12-05 东华大学 一种跨节点控制的在线视频流选择性重传方法
US8885729B2 (en) 2010-12-13 2014-11-11 Microsoft Corporation Low-latency video decoding
US8797842B2 (en) * 2011-03-10 2014-08-05 The Boeing Company Aircraft communication bus fault isolator apparatus and method
RU2587467C2 (ru) 2011-06-30 2016-06-20 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Сокращение задержки при кодировании и декодировании видео
KR20130058584A (ko) * 2011-11-25 2013-06-04 삼성전자주식회사 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치

Also Published As

Publication number Publication date
US11871040B2 (en) 2024-01-09
US10924766B2 (en) 2021-02-16
US20260082081A1 (en) 2026-03-19
TW201301899A (zh) 2013-01-01
CL2013003736A1 (es) 2014-08-01
RU2013158832A (ru) 2015-07-10
EP3691268B1 (en) 2023-08-30
EP2727341A1 (en) 2014-05-07
US20240364935A1 (en) 2024-10-31
US12513340B2 (en) 2025-12-30
CN105721880B (zh) 2019-04-05
LT3691268T (lt) 2023-10-10
US20230010753A1 (en) 2023-01-12
US9729898B2 (en) 2017-08-08
US20220394307A1 (en) 2022-12-08
PH12013502659A1 (en) 2014-02-10
US11451830B2 (en) 2022-09-20
HK1195430A1 (zh) 2014-11-07
EP4246967A3 (en) 2023-12-20
IL230189A (en) 2016-09-29
US9743114B2 (en) 2017-08-22
EP2727341B1 (en) 2020-04-08
MY205545A (en) 2024-10-25
DK3691268T3 (da) 2023-10-02
US20230015752A1 (en) 2023-01-19
KR20140043767A (ko) 2014-04-10
KR101944565B1 (ko) 2019-01-31
AU2011371809B2 (en) 2016-07-14
TWI533677B (zh) 2016-05-11
US11601682B2 (en) 2023-03-07
US20230008752A1 (en) 2023-01-12
US9426495B2 (en) 2016-08-23
US12513339B2 (en) 2025-12-30
US12439091B2 (en) 2025-10-07
RU2587467C2 (ru) 2016-06-20
BR112013033552B1 (pt) 2022-02-22
TWI606722B (zh) 2017-11-21
US10805640B2 (en) 2020-10-13
ZA201308553B (en) 2015-02-25
EP4246967A2 (en) 2023-09-20
NZ619406A (en) 2016-01-29
US11601684B1 (en) 2023-03-07
SG10201408609SA (en) 2015-02-27
US20210127138A1 (en) 2021-04-29
TWI587693B (zh) 2017-06-11
ES2958967T3 (es) 2024-02-16
US11641486B2 (en) 2023-05-02
TW201728180A (zh) 2017-08-01
US12075097B2 (en) 2024-08-27
US20130003864A1 (en) 2013-01-03
US10003824B2 (en) 2018-06-19
CN103621085A (zh) 2014-03-05
PT3691268T (pt) 2023-09-20
CN105721880A (zh) 2016-06-29
US11601681B2 (en) 2023-03-07
IL247175A (en) 2017-11-30
US11641485B2 (en) 2023-05-02
US8837600B2 (en) 2014-09-16
JP6059219B2 (ja) 2017-01-11
US20200404337A1 (en) 2020-12-24
US20230014518A1 (en) 2023-01-19
US20240080485A1 (en) 2024-03-07
US20180249184A1 (en) 2018-08-30
TW201625008A (zh) 2016-07-01
MY189650A (en) 2022-02-23
CO6862115A2 (es) 2014-02-10
JP2014523693A (ja) 2014-09-11
HRP20231180T1 (hr) 2024-01-05
HUE063498T2 (hu) 2024-01-28
CA2840427A1 (en) 2013-01-03
EP2727341A4 (en) 2015-03-11
CN103621085B (zh) 2016-03-16
US20160316228A1 (en) 2016-10-27
US20230017770A1 (en) 2023-01-19
EP4246968A3 (en) 2023-12-06
US20170094316A1 (en) 2017-03-30
US20230020316A1 (en) 2023-01-19
US20240364934A1 (en) 2024-10-31
US20170311000A1 (en) 2017-10-26
WO2013002818A1 (en) 2013-01-03
EP3691268A1 (en) 2020-08-05
MX2013015154A (es) 2014-03-27
US20240373067A1 (en) 2024-11-07
BR112013033552A2 (pt) 2017-02-07
EP4246968A2 (en) 2023-09-20
PL3691268T3 (pl) 2024-02-19
CA2840427C (en) 2018-03-06
US11641487B2 (en) 2023-05-02
US20230239509A1 (en) 2023-07-27
US20140348249A1 (en) 2014-11-27
HK1226567A1 (zh) 2017-09-29
US11601683B2 (en) 2023-03-07

Similar Documents

Publication Publication Date Title
US12513339B2 (en) Reducing latency in video encoding and decoding
HK40101355A (en) Reducing latency in video encoding and decoding
HK40100960A (en) Reducing latency in video encoding and decoding
HK1195430B (en) Method for reducing latency in video decoding and computing system