RS64742B1 - Smanjenje kašnjenja kod video kodiranja i dekodiranja - Google Patents
Smanjenje kašnjenja kod video kodiranja i dekodiranjaInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/88—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being 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)
- 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 zahtevi1. 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; iizlaz (740) rekonstruisanog okvira.
- 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; ikorišć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. 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. 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. 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. 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. 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. 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. 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; iizlaz (740) rekonstruisanog okvira, pri čemu se ograničenje koristi za određivanje kada je rekonstruisani okvir spreman za izlaz.
- 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. 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. 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. 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. 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. 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.
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)
| 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)
| 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 | 삼성전자주식회사 | 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치 |
-
2011
- 2011-10-11 RU RU2013158832/07A patent/RU2587467C2/ru active
- 2011-10-11 WO PCT/US2011/055835 patent/WO2013002818A1/en not_active Ceased
- 2011-10-11 TW TW105103519A patent/TWI587693B/zh not_active IP Right Cessation
- 2011-10-11 EP EP20162441.8A patent/EP3691268B1/en active Active
- 2011-10-11 US US13/270,969 patent/US8837600B2/en active Active
- 2011-10-11 CN CN201180071993.6A patent/CN103621085B/zh active Active
- 2011-10-11 TW TW106113582A patent/TWI606722B/zh not_active IP Right Cessation
- 2011-10-11 PH PH1/2013/502659A patent/PH12013502659A1/en unknown
- 2011-10-11 MX MX2013015154A patent/MX2013015154A/es active IP Right Grant
- 2011-10-11 ES ES20162441T patent/ES2958967T3/es active Active
- 2011-10-11 JP JP2014518537A patent/JP6059219B2/ja active Active
- 2011-10-11 MY MYPI2013702507A patent/MY189650A/en unknown
- 2011-10-11 AU AU2011371809A patent/AU2011371809B2/en active Active
- 2011-10-11 RS RS20230857A patent/RS64742B1/sr unknown
- 2011-10-11 EP EP23190874.0A patent/EP4246967A3/en active Pending
- 2011-10-11 CA CA2840427A patent/CA2840427C/en active Active
- 2011-10-11 EP EP11868856.3A patent/EP2727341B1/en active Active
- 2011-10-11 PT PT201624418T patent/PT3691268T/pt unknown
- 2011-10-11 LT LTEP20162441.8T patent/LT3691268T/lt unknown
- 2011-10-11 IL IL230189A patent/IL230189A/en active IP Right Grant
- 2011-10-11 MY MYPI2021007810A patent/MY205545A/en unknown
- 2011-10-11 EP EP23190880.7A patent/EP4246968A3/en active Pending
- 2011-10-11 HR HRP20231180TT patent/HRP20231180T1/hr unknown
- 2011-10-11 KR KR1020137034813A patent/KR101944565B1/ko active Active
- 2011-10-11 CN CN201610092615.0A patent/CN105721880B/zh active Active
- 2011-10-11 PL PL20162441.8T patent/PL3691268T3/pl unknown
- 2011-10-11 BR BR112013033552-1A patent/BR112013033552B1/pt active IP Right Grant
- 2011-10-11 NZ NZ619406A patent/NZ619406A/en unknown
- 2011-10-11 HU HUE20162441A patent/HUE063498T2/hu unknown
- 2011-10-11 DK DK20162441.8T patent/DK3691268T3/da active
- 2011-10-11 TW TW100136771A patent/TWI533677B/zh not_active IP Right Cessation
- 2011-10-11 SG SG10201408609SA patent/SG10201408609SA/en unknown
-
2013
- 2013-11-13 ZA ZA2013/08553A patent/ZA201308553B/en unknown
- 2013-12-27 CL CL2013003736A patent/CL2013003736A1/es unknown
-
2014
- 2014-01-30 CO CO14019170A patent/CO6862115A2/es unknown
- 2014-08-13 US US14/458,997 patent/US9426495B2/en active Active
-
2016
- 2016-07-01 US US15/201,160 patent/US9729898B2/en active Active
- 2016-08-08 IL IL247175A patent/IL247175A/en active IP Right Grant
- 2016-12-13 US US15/377,831 patent/US9743114B2/en active Active
-
2017
- 2017-07-12 US US15/647,962 patent/US10003824B2/en active Active
-
2018
- 2018-04-26 US US15/963,899 patent/US10805640B2/en active Active
-
2020
- 2020-09-02 US US17/009,918 patent/US10924766B2/en active Active
-
2021
- 2021-01-07 US US17/143,782 patent/US11451830B2/en active Active
-
2022
- 2022-08-18 US US17/890,398 patent/US11601681B2/en active Active
- 2022-09-20 US US17/949,025 patent/US11641487B2/en active Active
- 2022-09-20 US US17/948,903 patent/US11601683B2/en active Active
- 2022-09-20 US US17/948,982 patent/US11641486B2/en active Active
- 2022-09-20 US US17/948,949 patent/US11641485B2/en active Active
- 2022-09-20 US US17/949,049 patent/US11601684B1/en active Active
- 2022-09-20 US US17/948,849 patent/US11601682B2/en active Active
-
2023
- 2023-03-21 US US18/124,517 patent/US11871040B2/en active Active
- 2023-11-02 US US18/386,524 patent/US12075097B2/en active Active
-
2024
- 2024-07-10 US US18/768,380 patent/US12439091B2/en active Active
- 2024-07-10 US US18/768,492 patent/US12513340B2/en active Active
- 2024-07-10 US US18/768,430 patent/US12513339B2/en active Active
-
2025
- 2025-11-24 US US19/398,612 patent/US20260082081A1/en active Pending
Also Published As
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 |