[go: up one dir, main page]

HU228954B1 - Method for interpolation of video coding, video coder, kodek, further terminal equipment and telecommunication system for realizing that method - Google Patents

Method for interpolation of video coding, video coder, kodek, further terminal equipment and telecommunication system for realizing that method Download PDF

Info

Publication number
HU228954B1
HU228954B1 HU0400295A HUP0400295A HU228954B1 HU 228954 B1 HU228954 B1 HU 228954B1 HU 0400295 A HU0400295 A HU 0400295A HU P0400295 A HUP0400295 A HU P0400295A HU 228954 B1 HU228954 B1 HU 228954B1
Authority
HU
Hungary
Prior art keywords
unit
pixel
horizontal
sub
pixels
Prior art date
Application number
HU0400295A
Other languages
English (en)
Inventor
Marta Karczewicz
Antti Hallapuro
Original Assignee
Nokia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25495681&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=HU228954(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Nokia Corp filed Critical Nokia Corp
Publication of HUP0400295A2 publication Critical patent/HUP0400295A2/hu
Publication of HU228954B1 publication Critical patent/HU228954B1/hu

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Television Systems (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

(57) Kivonat
A találmány tárgya interpolációs eljárás videokódoláshoz, valamint videokódoló, kodek, kommunikációs végberendezés és távközlési rendszer az eljárás végrehajtására.
A találmány szerinti interpolációs eljárás során egy sorokba és oszlopokba rendezett, a sorokban egységnyi horizontális helyeken és az oszlopokban egységnyi vertikális helyeken lévő, előre meghatározott dinamikus értéktartományba eső értékkel rendelkező pixelekből álló képet úgy interpolálunk, hogy tört értékű vízszintes és függőleges helyeken lévő szubpixelek számára értékeket határozunk meg. A tört értékű vízszintes és függőleges helyeket 1/2X pixel felbontással adjuk meg, ahol x olyan pozitív egész szám, amelynek maximális N értéke van.
A találmány tárgyát képezi továbbá olyan videokódoló, kodek, kommunikációs végberendezés és távközlési rendszer, amely találmány szerinti eljárás végrehajtására alkalmasan van kiképezve.
17. ábra (b)
17. ábra {a}
-0........,0, ; I
e ·;?-· * ·© · -ö- ..0.. -η.-— .....- a- •♦••.-ö- -
0 0 <? Ö 0 Ü $ G ö 4 ö φ ö © 0 ©
O ··»· -c>- -©· « •-0- « 1 1 L... -4- - „ ,4.
'4 Ű ¢. 0 ö Φ G 1 ό í φ 0 & C G G £ O ©
-ír -0 » -0- ·>' ”©·· ·»·' O ·*-- 1 1 .....ί J—- ..-,.,.4..-.(3 - 4-' Φ '· 4
0 ö 0 Vj 0 0 :Í: Ö <5 1 3. ©. © © ψ O <? 3 |i ü |
-•4·'· •0· ··♦· •ΛΖΓ· » -0- « 4- j
.9 J 9 Q G: G f 9 © Í3 :.lj) :Ö. 4' :O 6 G © ,Ö ©
* -0· 4- * -Ö- L..
! · egész pixelek
I s ’b' féipixeiek
-ο—·1 q ’d íélpixeték
,—,. --~τ>
Interpolációs eljárás vídeöí&öööláshöz, valamint weö/kgdqlö, KODEK, KÖNifWUNiKÁCfÓS VÉGBERENDEZÉS ÉS TÁVKÖZLÉSI RENDSZER AZ ELJÁRÁS VÉGREHAJTÁSÁRA
A találmány tárgya Interpolációs eljárás videó kódoláshoz, valamint videó kódoló, ködeik, kommunikációs végberendezés és távközlési rendszer az eljárás végrehajtására. A találmány szerinti eljárás szubpixel értékek kódolásakor és dekódolásakor végrehajtandó interpolációjával kapcsolatos. A találmány elsősorban, de nem kizárólag digitális videó adatok kódolására és dekódolására szolgái.
A digitális videó képsorozatok, például a íilmszalagon rögzített szokásos mozgóképeket állóképek sorozata alkotja, ahol a mozgás látványát az idézi elő, hogy az állóképek egymás után viszonylag nagy keretsebességgel, tipikusan 15-30 kereí/másodperc sebességgel jelennek meg. A viszonylag nagy keretsebesség miatt az egymást kővető keretekben lévő képek egyre Inkább hasonlítanak egymáshoz és ily módon jelentős mennyiségű redundáns információt tartalmaznak. Egy tipikus jelenet például tartalmazhat álló elemeket, például háttérdiszletet, továbbá bizonyos mozgó területeket, amelyek számos különböző formában jelenhetnek meg. Ilyen mozgó terület például egy bemondó arca, mozgó jármüvek képe, stb. Lehetséges az Is, hogy maga a jelenetet rögzítő kamera is mozog, amikor is a kép összes eleme azonos módon mozog. Sok esetben ez azt jelenti, hogy egy adott videó keret és az azt. követő keret tartalma közötti eltérés viszonylag kicsi. Ez persze függ a mozgás jellegétől Is. Minél gyorsabb például a mozgás, annál nagyobb a változás a szomszédos keretek között. Hasonló a helyzet, ha a jelenet számos mozgó elemet tartalmaz, ilyenkor ugyanis a szomszédos keretek közötti változás valószínűleg nagyobb, mint egy olyan jelenetben, ahol például csak egyetlen elem mozog.
Nyilvánvaló, hogy egy feldolgozatlan, vagyis tömörítetlen digitális videó képsor minden· egyes kerete rendkívül nagy mennyiségű képi információt tartalmaz. A tömörítetlen digitális videó képsor mindegyik kerete képpontok rendezett halmazából ált Egy széles körben elterjedt dighális videó formátum esetén, melyet Quarter Common
SS705-12140A/HÖ/GL
Irherchange Formát (QCIF)- formátumként ismernek, egy keret 176x144 pixelből (képpontból) áll, vagyis minden keret 25344 pixelt tartalmaz. Minden egyes pixelt bizonyos számú bit reprezentál, amely bitek a kép adott pixelnek megfelelő részének fényerejére és/vagy színtartalmára vonatkozó Információt hordoznak. Általánosan elterjedt az ún. YUV színmódéit, melyet a képek fényerejének és színtartalmának reprezentáíására használnak. A fényerő vagy Y komponens reprezenfálja a kép intenzitását (fényességét), mig a kép szlntartalmát két színkomponens, az U és V komponens reprezentálja.
A képek luminancia/krominancia reprezentációján alapuló szinmodellek bizonyos előnyökkel járnak az olyan szlnmodelfékkel szemben, amelyek az elsődleges színeket, vagyis a piros, zöld és kék .(RGB) színeket magába foglaló reprezentáción alapulnak. Az. emberi látás sokkal érzékenyebb az intenzitás változásaira, mint a színváltozásokra, ezért az YUV szinmodellek úgy használják ki ezt az emberi tulajdonságot, hegy kisebb térbeli felbontást használnak a színkomponensekhez (U. V), mint a fényerő komponenshez (Y). Ily módon egy képben lévő szinínformációk kódolásához szükséges Információ mennyisége a képminőség elfogadható gyengülésével egyidejűleg jelentősen csökkenthető.
A krominancia komponensek kisebb térbeli felbontását általában aiulrnlntavételezéssei érik el. Egy 18x16 képpontból álló blokkot tipikusan egy 16x18 pixeles, luminancia információt tartalmazó blokkal reprezentálnak, míg a megfelelő krominancia komponenseket egy olyan 3x8 pixeles biokkal reprezentálják, amely a lu.minanoía komponensekből álló 16x16 pixeles blokknak megfelelő képterütetre vonatkozik. A krominancia komponenseket az x és az y irányok mentén egy kettes faktorral aiuimintavéteiezik. Az így kapott 16x18 pixeles luminancia blokkot és a két 8x8 pixeles krominancia blokkot együttesen YUV makroblokknak vagy röviden makrobtekknak nevezik.
Egy QCIF kép 11x9 makroblokkot tartalmaz. Ha a luminancia blokkokat és a krominanda blokkokat egyaránt 8 bites felbontással reprezentáljuk, vagyis azok értéke 0 és 256 közé esik, az 1 makroblokkhoz szükséges összes bitszám •<'16x16x8)+2x{8x8x8) ~ 3072 bit. Egy QCIF formátumú vídeokeret reprezentátásához szükséges bitek száma ezért 99x3072 - 304128 bit. Ez azt jelenti, hogy egy QCIF formátumú, YUV színmódéi! felhasználásával reprezentált videó képsor továbbításé<**4 hoz, rögzítéséhez, megjelenítéséhez szükséges adatmennyiség· 30 keret/másodperc sebesség mellett több, mint 9 Mbif/s. Ez rendkívül nagy adatsebesség, emiatt gyakorlatilag alkalmatlan videó adatrögzítési, adattovábbítási és képmegjelenítésí alkalmazásokban a rendkívül nagy tárolókapacitás, nagy átviteli csatornakapacitás és nagy hardver teljesítmény szükségessége miatt.
Ha videó adatokat kell továbbítani valós időben egy vezetékes hálózatban, példáéi egy ISDN vagy egy hagyományos PSTN (Public Service Telephoné Network) hálózatban, akkor a rendelkezésre álló adatátviteli .sávszélesség tipikusan 64 kblt/s nagyságrendjébe esik. A mobil videotelefonoknál, ahol az adatátvitel rádiófrekvenciás kommunikációs összeköttetésen történik, a rendelkezésre álló sávszélesség akár 20 kblt/s is lehet. Ez azt jelenti, hogy a videó adatok reprezenfalásához használt információ mennyiségének jelentős csökkenését kell elérni annak érdekében, hogy lehetővé tegyük a digitális videó képsorok továbbítását kis sávszélességű kommunikációs hálózatokban is. Ennek érdekében olyan videó tömörítési eljárásokat fejlesztettek ki, amelyek lecsökkenek a továbbított információ mennyiségét miközben elfőgadható képminőséget tartanak fenn.
A videó tömörítési eljárások a videó képsorok redundáns és érzékelés szempontjából irreleváns részek redukálásán alapulnak. A videó képsorok redundanciája térbeli, időbeli és spektrális redundanciába sorolható. Térbeli redundancia az egy kereten belüli szomszédos pixelek közötti korreláció leírására szolgál. Az Időbeli redundancia azt fejezi ki, hegy egy képsor egyik keretében megjelenő objektumok valószínűleg megjelennek a következő keretekben is. A spektrális redundancia ugyanannak a képnek a különböző .színkomponensei közötti korrelációt jelenti.
Elegendően hatékony tömörítés nem érhető eí általában a különböző jellegű redundanciák egyszerű redukálásával egy adott képsor esetén. Így a legtöbb jelenlegi videó kódoló lecsökkenti a minőségét a videó képsor azon részeinek, amelyek a téma szempontjából kevésbé fontosak. Ezenkívül a tömörített videó bitsorozat redundanciáját ís tovább redukálják hatékony, veszteségmentes tömörítéssel. Ezt tipikusan a változó hosszúságú kódolással (variable lengih coding, VLC) érik el,
A modern videó tömörítési szabványok., például az ITU-T ajánlásaiban szereplő K.261, H-233(-r)(^+), H.26L és a Motion Életűre Experts Group MPEG-4 ajánlása mozgás-kompenzáft időbeli predíkciőn alapuló tömörítést végez. Ez az időbeli redun.u.
-4~ dancia csökkentésének egyik olyan formája. amelynél egy képsorban lévő néhány (gyakran sok) keret tartalmát a képsorban lévő más keretek alapján megjósolják oly módon, hogy megfigyelik egy kép objektumainak vagy terű teteinek a különböző keretekben megvalósuló mozgását.
Az olyan tömörített képeket amelyek nem használják ki az időbeli redundancia csökkentést; általában INTRA-kódolású vagy í~kerefeknek nevezik, míg az Időbeli predikoióval előállított képeket INTER-kódoiású vagy P-keretéknek nevezik. Az INTER keretek esetén a megjósolt (rnozgás-kompenzált) kép ritkán rendelkezik kellő pontossággal ahhoz, hogy a kép tartalmát elegendőén jó minőségben jelenítse meg,, ezért minden INTEK kerethez egy térben tömörített preöikciős hiba (PE) keretet társítanak. Számos videó tömörítési eljárás két .irányban jósolt kereteket használ fel, melyeket B-képeknek vagy B-kereteknek neveznek, A B-képeket referencia vagy ón. „referencia (anchor) képpárok (I vagy P keretek) közé helyezik el, és a B-képeket az Ilyen referencia képek közül az egyikből vagy mindkettőből történő jóslással állítják elő. A B-képeket önmagukban nem használják referencia képként, vagyis azokból más kereteket nem jósolnak, Igy azok elhagyhatók a videó képsorból anélkül, hogy az a későbbi képek minőségét lerontaná..
Egy tipikus tömörített videó képsorban előforduló különböző kerettípusokat a
3. ábra szemlélteti. Amint a 3. ábrán látható, a képsor egy 3(5 I- (vagy INTRA-) kerettel kezdődik. Az ábrán 33 nyíl jelzi az előre irányuló jóslás! folyamatot, amelynél 34 P kereteket állítunk elő. A kétirányú jóslást folyamatot, amelynél 33 Bakereteket. állítanak eiö, 31a és 31b nyilakkal jelöltük.
Az 1, és 2. ábrán rnozgás-kompenzált predikciöí alkalmazó videó kódoló rendszer blokkvázlata látható. Az 1. ábrán egy mozgás-kompenzációt alkalmazó 10 kódoló látható, míg a 2. ábrán egy annak megfelelő 20 dekódoló látható. Az 1, ábrán látható 10 kódoló 1Imozgásmezö-becslő egységet, 12 mozgásmező-ködoló egységet, 13 mozgás-kompenzációs predlkciós egységet, 14 predlkciós hibakódoló egységet, 15 predlkciós hibadekődoló egységet, 18 mulkpiexeíö egységet, 1? keretmemóriát és 19 összeadöt tartalmaz. A 20 dekódoló 21 mozgás-kompenzációs predlkciós egységet, 22 predlkciós hibadekődoló· egységet, 23 demuitipíexeló egységet és 24 keretmemörlát tartalmaz.
* *** * * ♦ < » * **♦ *φ
A mozgás-kompenzációt alkalmazó videó kódolók működési elve az, hogy minimalizálják egy En(x,yj predikciós hibakeretben lévő információ mennyiségét, ahol az E4x,y> predikciós hibakeret az éppen kódolás alatt áiiő; aktuális l.n(x,y:) keret és a Pff{x,y> predikciós keret közötti eltérést reprezentálja. A predikciós hibakeret definíciója tehát a kővetkező;
< (a v)::: A lm r) - A Cm y) (1)
A Pft(x,y) predto'ős keret egy RB(x,y) referenciakeret· pixelé békéinek felhasználásával van előállítva, amely RAxy) referenciateret általában egyike a korábban kódolt és továbbított kereteknek, .például az aktuális keretét közvetlenül megelőző keret. Az fAlXy) referenciakeret a lő kódoló 17 keretmemónájáfean van eltárolva. A P.dXy) predikciós keretet úgy állítják elő, hogy az Rn(x,y) referenciakeretben olyan ón. predikciós képpontokat keresnek, amelyek nagyjából megfelelnek az aktuális keret képpontjainak. Ezt követően az aktuális keret képpontjai és a referenciakeret megfelelő predikciós képpontjai közötti Összefüggést (például relatív hely, elfordulás, méretarány, stb.) leíró mozgásínformációt meghatározzák és a predikciós keretet a predikciós képpontoknak a mozgáslnformáclö alapján történő mozgatásával állítják elő. Ily módon a predikciós keret az aktuális keret egy közelítő reprezentációja., amely a referenciakeretben lévő pixelértékeken alapul. A fent említett predikciós hibakeret tehát az aktuális keretnek a predikciós keret által megadott közelítő reprezentációja és az aktuális keret közötti különbséget Írja le.. A mozgás-kompenzációs predikción alapuló videó kódolók egyik alapvető előnye az, hogy az aktuális keretet viszonylag tömören Írják le azáltal, hogy az aktuális keretet a predikdőjához szükséges mozgásinformáció és a predikciós hibakeretben lévő, ahhoz tartozó predikciós hibainformáció együttesével igák le,
A keretben lévő rendkívül nagy számú képpont miatt azonban általában nem elegendő az egyes képpontokhoz tartozó külön mozgás információk továbbítása a dekódolönak. Ehelyett a legtöbb vídeokódolásí eljárásnál a pillanatnyi keretet nagyobb Sk képszegmensekre. osztják fel, és az S* képszegmensekhez tartozó mozöásinformáclót továbbítják a dekódolönak. Tipikusan egy keret minden egyes makrobbkkjéhoz hozzárendelnek mozgásínformációt és ugyanezt a mozgásinformációf használják: a matobbkkon belüli összes képponthoz. Néhány videó kódolási “ δ ™ szabványnál, így például a H.26L szabványban egy makroblokk felosztható kisebb blokkokra, ahol mindegyik kisebb blokk saját mozgásinformáciöval van ellátva.
A mozgás információt általában [Ax(x,y)1Ay(x,y)j mozgásvektorok formájában adják meg. A Ax(x,:y) és a Ay(.x,y) számpárok az b(x,y) aktuális keretben lévő (x,y) helyen lévő pixel vízszintes és függőleges irányú eltolásait adják meg az R;-(x,y) referenciakeretben lévő megfelelő pixelhez képest A {Ax(x,yXÁy(x,y)j mozgásvektorokat all mozgásmező becslő egység számítja ki és az aktuális keret mozgásvektorainak halmazát [.óx(->,Ay(·)]: mozgásvektor-mezönek nevezik.
Az aktuális videó keretben tévő makroblokk helyét általában a keret bal felső sarkának x,y koordinátáival adják meg.. így egy olyan videó kódolási eljárásnál, amelyben egy keret minden egyes makrobíokkjához tartozik mozgáslnfonnáciő, az egyes mozgásvektorok az aktuális tff(x,y> keretben lévő makroblokk bal felső sarkát reprezentáló pixel vízszintes és függőleges irányú Ax{xty) és Ay(x,y) elmozdulásait Igák le az Rn(x,y) referenciakeretben lévő, predikclős képpontokból álló, lényegében azonos blokk bal felső sarkában lévő pixelhez képest, ahogy ez a 4b ábrán látható.
A mozgás becslése számítástechnikai szempontból rendkívül komoly feladat. Egy Rft(x5y) referenciakeretet és például egy, a 4 a ábrán látható aktuális keretben lévő, NxtM pixelt tartalmazó, négyzet alakú makroblokkot véve a mozgásbecslés oéljaz egy olyan NxN képpontból álló blokk megkeresése a referenciakeretben, amely bizonyos fettételek alapján Illeszkedik az aktuális keretben lévő makroblokk tulajdonságaihoz. Ez a feltétel lehet például az aktuális keretben lévő makroblokk képpontjai és az azzal összehasonlítás alatt álló referencíakeretben lévő képpontokból álló blokk közötti abszolút eltérések összege (sum of absolute dífferenoes, SAD), Ezt az eljárást általában biokkíliesztésnek nevezik. Szükségesnek tartjuk megjegyezni, hogy az Illesztendő blokk geometriája és a referenciákéról geometriája nem szükségszerűen azonos, lévén, hogy a valós világ objektumai méretbeli változásokon eshetnek át, elfordulhatnak vagy torzulhatnak. A jelenlegi nemzetközi videó kódolási szabványokban azonban csak eltolási mozgási modell használható (Ismertetését lásd később), és ily módon a rögzített derékszögű geometria alkalmazása elegendő.
ideális esetben az illeszkedő blokk megtalálására akkor a legnagyobb az esély, ha a referendakeret egészét átvizsgálják. Ez azonban gyakorlatilag nem megvalósítható, mivel ez. túl nagy számítási igényt követei meg a videó kódolótól. Ebe* «Φ» Λ * * « * * ***' lyett a keresési teröíefet egy, a 4c ábrán látható módon, az aktuális keretben lévő makrobiokk eredeti helye körüli j-p,pj területre korlátozzák.
Annak érdekében, hogy a 10 ködofóbóf a 20 deködolóba továbbítandó mozgásinformácíő mennyiségét lecsökkentsék, a 10 kódoló 12 mozgásmezó-kódoló egységében a mozgásvektor-mezőf ögy kódolják, hogy azt egy mozgásmodeffef reprezentálják. Ennél a módszernél a képszegmensek mozgásvektoraft újból kifejezik bizonyos előre meghatározott függvények felhasználásával, vagyis a mozoásvektormezőt egy alkalmas modellel reprezentálják. Szinte az összes, jelenleg hasznait, mozgásvektor-mezön alapuló modell ün. additív mozgásmodefl, amely az alábbi általános képlettel írható le;
Ax<X>}~ Xfe/iX.y) (2)
Ϊ «0
ΛΛ-Ϊ
Ak(-X'> >’) ~ X- Áh, (Λ v) (3) ·;·»$.
ahol az a, és bf együtthatók az ón. mozgás-együtthatók. A mozgás-együtthatókat a 20 dekódolónak továbbítjuk, ahogy ezt az 1. és 2. ábrán látható 2 információfolyam szemlélteti. Az £ és g, függvények ón, mozgásmező-bázisfüggvények és ezek ismertek mind a 1Ö kódoló, mind pedig a 20 dekódoló számára. A mozgás együtthatók és a bázisfüggvények felhasználásával egy közelítő (fe(x,y},Áv{z,y)} mozgásvektormező állítható elő. Mivel a bázisfüggvények ismertek mind a 10 kódoló, mind a 20 dekódoló számára, mivel azokban vannak eltárolva, csak a mozgás-együtthatókat kell továbbítani a 10 dekódolőnak, igy lecsökken annak az információnak a mennyisége, amely a keret mozgásinformációjának reprezentálásához szükséges.
A legegyszerűbb mozgásmodell az eltolási mozgásmodell, amelynél csak két együtthatóra, van szükség az egyes szegmensek mozgásvektorainak leírásához. A mozgásvektorok értékelt az alábbi kifejezések adják meg:
Δν(χ,χ) me (41
Δν{χ,>Ήδ
Ezt a modellt széles körben használják különböző nemzetközi szabványokban (ISO MFEG-1, MPEG-2, MPEG-4, ITU-T H.261 és Μ.263) 16x16 és 8x8 pixeles blokkok mozgásának leírására. Az eltolási mozgásmodellf használó rendszerek a mozgásbecslést tipikusan egész pixel felbontás mellett vagy annak egész számú törtrésze mellett, például fái vagy negyed pixel felbontással végzik.
A Pn<x,y) produkciós keretet a lö kódolóban lévő 13 mozgás-kompenzációs predikciós egység állítja eio az alábbi képlet alapján:
A<x,y) ~ [x + Áxís, _y), y ·+· A/(x, y)j (5)
A 14 predikdós híbakódoló egységben az En(k>y) predikciós bibakeretet tipikusan úgy tömörítik össze, hogy azt néhány kétdimenziós függvény véges soraként (transzformációjaként) lehessen előállítani. Erre a célra felhasználható például a kétdimenziós diszkrét oosínus-transzformáció (DCT). A transzformáció együtthatóit kvantálják, majd enfrópia-kódoíással, például Huffman-kódotással tömörítik, mielőtt az 1. és 2. ábrán látható 1 információfolyamban a 10 dekódolónak továbbítanák. A kvantáláskor keletkező hiba miatt ez a művelet általában bizonyos minőségromlást, információvesztést eredményez az Ef!(x,y) predikdós hibakeretben. Ennek a minőségromlásnak a kompenzálása érdekében tartalmazza a 10 kódoló a 15 predikciós hibadekódoló egységet is, amely a transzformáció együtthatóinak felhasználásával egy AXav) dekódolt predikciós bibakeretet állít elő. A 19 összeadó ezt a lokálisan dekódolt predikdós hibakeretet hozzáadja a Pr,(x,y) predikdós kerethez és az aktuális ke retb ől íg y ka pott, dekód olt f„(x,y) keretet egy következő Rr,+-:(x , y ) referencia ke retként további felhasználás céljából eltárolják a 17 keretmemóríában.
A mozgásvektorokra vonatkozó Információt szállító 2 információfolyamot és a predikciós hibára vonatkozó Információt egyesítik a 18 multiplexerben, és az így kapott, legalább két, fent említett típusú információt tartalmazó 3 információfolyamot a 20 dekódoíöhoz továbbítják,
A továbbiakban a 20 videó dekódoló működését ismertetjük. A 20 dekódoló 24 keretmemőnájában egy előzőleg rekonstruált R„(x,y) referenciakeret van eltárolva. A P«(x,.y) predikdós keretet az (5) egyenlet alapján a 20 dekódoló mozgáskompenzációs predikciós 21 egységével állítjuk elő, felhasználva a mozgásegyütthatókra vonatkozó információt és az előzőleg rekonstruált R«(x,y} referenciákérét pixelédókéit Az &4x,y) predikdós hibakeret továbbított transzformádós együtthatóinak felhasználásával a 22 predikciós hibadekódoló egységben előállítjuk a dekódolt A/my) predikdós bibakeretet. A dekódolt ζίχ, ν) aktuális keret képpontjait ezután úgy állítjuk elő, hogy a P„(x,y) predikciós keretet hozzáadjuk a dekódolt £j>,>) predikciós hibakerethez:
/„ (x, >·} Λ (x,>'} ·» A,,(x, v)E... jx 4- Áy(x, >’K v + Ay(x, y) j+ £K (x,y> (6)
Az így kapott, dekódolt aktuális keret Rn*r(K-y) következő referenciakeretként kerül eltárolásra a 24 kerefmemőrishan.
A digitális videó mozgás-kompenzációs kódolásának és dekódolásának fent bemutatott leírásánál az aktuális keretben lévő makroblokk mozgását az Rri(x,y) referencíakerefhez viszonyítva leíró px(x,y},Ay(x,y)j mozgásvektor a réferencíakeret bármely pixelére rámutathat. Ez azt jelenti, hogy a digitális videó képsor keretei közötti mozgást csak olyan felbontással lehet reprezentálni, amelyet a keretben lévő képpontok határoznak meg. Ez az űn. egész pixeles felbontás. A valódi mozgásnak azonban tetszőleges pontossága lehet, és így a fent Ismertetett rendszer egy digitális videó képsor egymást követő keretei közötti mozgásnak csak közelítő modelljét biztosíthatja. A vídeokereíek közötti mozgás modellezése egész pixel értékű felbontás esetén tipikusan nem elegendően pontos ahhoz, hogy lehetővé tegye az egyes makroblokkokhoz, illetve keretekhez tartozó predikciós hiba (PE) információ hatékony minimalizálását Ezért a valódi mozgás még pontosabb modellezésének elérése és a kódolóból a dekódolóba továbbítandó PE információ mennyiségének csökkentése érdekében számos videó kódolási szabvány, például a H.263(-5-)(r) és a
H.26L szabvány lehetővé feszi, hogy a mozgásvektorok képpontok közé mutassanak. Magyarán, a mozgásvektoroknak lehet szubpíxei felbontása is. Azáltal, hogy lehetővé tesszük a mozgásvekforok. számára a szuhpixei felbontást, megnő a végrehajtandó kódolási és dekódolás* műveletek komplexitása, ezért továbbra is előnyös a mozgásvektor térbeli felbontásának mértékének korlátozása. így a videó kódolási szabványok, például a fent említett szabványok tipikusan csak azt teszik lehetővé, hogy a mozgásvektorok egész, fél- vagy negyed-pixel felbontással rendelkezzenek.
A szubpixel felbontású mozgásbecslésf általában két lépésben végzik egy olyan videó kódoló eljárásban, amely lehetővé teszi, hogy a mozgásvektorok egész vagy fél-pixel felbontással rendelkezzenek. Ilyen eljárás látható az. 5. ábrán látható. Az első lépésben egy egész pixel felbontású mozgásvektort határoznak meg egy alkalmas mozgásbecslő eljárással, például a korábban említed bíokkíllesztési eljáχ « ·*'«♦ « * * Φ « X Φ
4*
.... to _ rással. Az így kapott mozgásvektor, amely egész pixel felbontású, az 5. ábrán látható.
A második lépés során az első lépésben meghatározott mozgásvektort tovább finomítók., és meghatározzák annak fél-pixel felbontású változatát. Az 5, ábrán látható példában ezt úgy végzik, hogy nyolc új 18x18 pixeles keresöblokkot hoznak létre és mindegyik keresőblokk bal felső sarkát az 5. ábrán látható módon egy X jellel jelölik meg.. Ezek a helyek a (Ax*m/2,óy+rV2j kifejezéssel írhatók le, ahol m és π értéke 1, 8 és +1 lehet, de egyidejűleg nem lehet 0 mindkét érték. Mivel csak az eredeti képpontok pixelértékel ismertek, a fél-pixel felbontású helyeken lévő szubpixelek. értékelt (például lum'inancia és/vagy krominancia értékeit) mind a nyolc keresóbbkkra meg kell becsülni valamilyen interpolációs módszer alkalmazásával.
A szubpixelek értékeinek fél-pixel felbontással történő interpolálását követően mind a nyolc keresöblokkot összehasonlítják azzal a makroblokkal, amelynek mozgásvektorát keresik. Akárcsak a biokkilleszíési folyamatban, amelynek célja a mozgásvektor egész pixel felbontással történő meghatározása, a makrobiokkot ez esetben is összehasonlítják mind a nyolc keresőblokkal valamilyen kritérium alapján, például egy .SAD érték alapján. Az összehasonlítások eredményeként általában egy minimum SAD érték adódik. A videó képsorban lévő mozgás jellegétől függően ez a minimális érték megfelelhet az eredeti mozgásvektor, vagyis az egész pixel felbontással rendelkező mozgásvektor által meghatározott helynek, de megfelelhet egy félpixel felbontású helynek Is, Ily módon lehetővé válik annak, meghatározása, hogy a mozgásvekfornak egész pixel vagy szubplxel helyre keibe mutatnia, továbbá az, bogy amennyiben a szubpixel felbontás megfelelő, akkor mi a helyes szubpixel felbontású mozgásvektor. Nyilvánvaló, hogy az imént bemutatott eljárás teljesen analóg módon kiterjeszthető különböző mértékű szubpíxel felbontásokra, például egynegyed-pixel felbontásra is.
A gyakorlatban a referencíakeretben lévő szubpíxel érték becslését úgy végzik, hogy a szubpixel értékét a környező píxelértékekböl interpolálják. Egy nem egész pixel helyen (x,y ~ (n+Áx, m+áy) lévő F(x,y) szubpixel értékének interpolációja általában elvégezhető két dimenzióban, amit matematikailag az alábbi módon lehet leimi:
A(x,y)“ e£)/;'(« -r kp/r-rZ)
i.. ··>:·;.·.· (7) ahol az 7(/ςί) szüröegyötthatokat jeleni, az r? és az m pedig az x„ illetve y értékből csonkolással előállított egész számokat jelölnek. A sző röegyütf hatók általában függenek az x és y értékektől, és az Interpolációs szűrök rendszerint ún. „szeparálható szűrök”, amelyeknél az F(x,y) szubpixel érték az alábbi módon számítható;
A··· X-j
7'(x> y) ~ V f(y a- y} V/(Z + * Ám + /) (8) . ' /«-A
A mozgásvekiorökat a kódolóban számítják ki. Miután a megfelelő mozgásegyütthatókat továbbították a deködoíófea, a kódolóban használt eljárással azonos Interpolációs eljárás felhasználásával a szükséges szübpíxefeket előre csatok módon, interpolálják. Ily módon a 24 keretmemóríában lévő referencia keretet követő keret rekonstruálható a refemnciakerei és a mozgásvekforok alapján.
Λ szubpixel értékek videó kódolóban történő interpolálásának legegyszerűbb módja az, hogy a szubpixel értékeket mindig akkor interpolálják, amikor az szükségessé válik. Ez azonban nem hatékony megoldás egy videó kódolóban, mivel valószínűleg ugyanaz a szubpixel érték többször is szükségessé válik és emiatt ugyanannak a szubpixel értéknek az interpolációs számításait f^bször kell végrehajtani. Ez szükségtelenül megnöveli a kódoló számítási komplexitását és terhelését.
Egy másik lehetséges megközelítés, amely a kódoló részéröl kisebb komplexust igényel, az, hogy előre kiszámítják és a kódolóhoz tartozó memóriában eltárolják az összes szubpixel értéket. Ezt a megoldást a jelen; leírásban ún. előkészített (előkészített) interpolációnak nevezik. Bár kevésbe bonyolult, az előkészített Interpoláció hátránya az, hogy jelentősen megnöveli a memória felhasználást. Ha például a mozgásvektor pontossága egynegyed-pixel értékű mind a vízszintes, minő a függőleges irányban, egy teljes kép előre kiszámítod szubpixel értékelnek eltárolása 16szor nagyobb memóriát igényel, mint az eredeti, nem interpolált képé. Ezenkívül olyan szubpíxelek kiszámítását is magában foglalja, amelyekre ténylegesen nem tesz szükség a mozgásvektoroknak a kódolóban történő kiszámításakor. Az előkészített interpoláció különösen alacsony hatékonyságú a videó dekődolőban, mivel az előre leszámított szubpixel értékek nagy részére soha nem lesz szükség a dekődolőban. Ily módon előnyös, ha nem használnak előzetes számítást a dekődolőban.
A kódoló memóriaigényeinek csökkentésére használható az ún. igényléses (on-demand) interpoláció. Ha például a kívánt felbontás egynegyed-pixel mértékű, akkor csak a fél egységnyi felbontású szubpixeíeket interpolálják előre a felles keret számára és csak ezeket a szubplxeteket tárolják el a memóriában. Az egynegyedpixel felbontásé szubpixelek értékelt csak a mozgásbecslés/kompenzálás során számítják kt amennyiben azokra szükség van. Ebben az esetben a memóhafelhasznáiás csak négyszerese annak, ami az eredeti, nem-interpolált kép éltá roló sá hez szü kséges.
Szükségesnek tartjuk megjegyezni, hogy amikor előkészített interpolációt használnak, az interpolációs eljárás a kódoló teljes számítási komplexitásának, illetve terhelésének csak egy kis töredékét jelenti, mivel mindegyik pixel csak egyszer van interpolálva. Ezért a kódolóban az Interpolálás komplexitása önmagában nem túlságosan kritikus, amikor a szubplxel értékeket előkészített interpolációval határozzák meg. Az igényléses Interpoláció ugyanakkor sokkal nagyobb számítási terhet jelent a kódoló számára, mivel bizonyos szuhplxeleket esetleg többször is interpolálni kell. Ily módon az interpolálás komplexitása, ami alatt a szubpixel értékek interpolálásához végrehajtandó számítási műveletek számát vagy műveleti ciklusok számát értjük, rendkívül fontos szempont.
A dekódolőban ugyanazokat a szubpixel értékeket legfeljebb csak néhányszor használják és bizonyos szubplxel értékekre pedig egyáltalán nincs szükség. A dekódolöban ezért előnyös előkészített interpolációt nélkülözni, vagyis nem célszerű a szubplxel értékek előzetes kiszámítása.
Az ITU-Telekommunlkáciös Szabványosítási Szekció, 16. Tanuimánycsoport, Videokódolásl Szakértői Csoport (VC.EG) a 6. és 15. témakörben két interpolációs eljárást dolgozott ki . Ezeket a megközelítéseket javasolják beágyazni az ITU-T ajánlások közé tartozó H.2SL szabványba, és ennek megfelelően az értékelés céljából és a további fejlesztések céljából tesztmodeltekbe (TML) implementálták. Az 5. témakörnek megfelelő teszfmodell az 5.. íeszfrnodeli .(TML5), míg a 6. témakör eredményeként adódó fesztmodelí a 6. teszlmodell (TML6). A továbbiakban a TML5 és TML8 modellekben javasolt Interpolációs eljárásokat ismertetjük.
A leírás további részeiben a szubplxel értékek TML5 fesztmodellben hasznait interpolációs eljárásának leírását a 12a ábra segítségével ismertetjük, amely a TMLS modellre jellemző pixel és szubplxel helyek leírásához szemlélteti a jelöléseket. A szubplxel értékek TMto fesztmodellben használt Interpolációs eljárásának ismertetéséhez egy másik jelölésrendszert, a 13a ábrán bemutatott jelöléseket használjuk. A
- 13~
14a ábrán további jelölések láthatók, melyeket a leírásban később a találmány szerinti szubpíxel interpolációs eljárás kapcsán használunk. Szükségesnek tartjuk megjegyezni, hogy a szövegben használt három különböző jelölésrendszerrel célunk az egyes interpolációs eljárások megértésének és az azok közötti eltérések megismerésének elősegítése. Azonban mindhárom előbb említett ábrán az A betűt az eredeti képpontok, (vagyis a egész pixel felbontású képpontok) jelölésére használjuk. Pontosabban szólva, az A betű egy videó képsor egy adott keretét reprezentáló képi adatokban lévő pixelhelyeket jelöli, ahol az A pixelek pixelértékeit vagy egy videó forrás biztosítja az aktuáls l3{xty) keret formájában, vagy helyreállítással kerülnek meghatározásra, majd azokat egy Rf;(x,y} reíereneíakereiként a 10 kódoló vagy 20 dekódoló 17, illetve 24 keretmemóriájában tárolják el. Az összes többi betű különböző szubpixelek helyeit jelöli, ahol a szubpíxel helyeken található szubpíxel értékek interpolációval határozhatók meg
A leírás további részében konzisztens módon további bizonyos kifejezéseket ís használunk a konkrét pixel és szubpíxel helyek azonosítására. Ezek a kifejezések az alábbiak:
Az „egységnyi horizontális hely alatt olyan szubpíxel helyét értjük, amely az eredeti képi adat: valamelyik oszlopában helyezkedik el, A 12a és 13a ábrán látható c és e szubpixelek, valamint a 14a ábrán látható b és e szubpixelek egységnyi horizontális helyeken találhatók.
Az „egységnyi vertikális hely” alatt olyan szubpíxel helyét, értjük, amely az eredeti képi adat valamelyik sorában helyezkedik el. A 12a és 13a ábrán látható b és d szubpixelek, valamint a 14 a ábrán látható b és d szubpixelek egységnyi vertikális helyeken találhatók.
Definíció szerint az A pixelek egységnyi horizontális és egységnyi vertikális hellyel rendelkeznek.
A „fél egységnyi horizontális hely” alatt egy adott oszlopban, a fél pixel felbontású helyeken található szubpixelek helyét értjük. A 12a és 13a ábrán látható b, c és e szubpixelek, valamint a 14a ábrán látható b, c és f szubpixelek ebbe a kategóriába tartoznak. Hasonló módon a dél egységnyi vertikális hely alatt egy adott sorban, a fél pixel felbontású helyeken található szubpixelek helyét értjük, igy például a 12a és
13.8 ábrán látható c és d szubpixel. valamint a 14a ábrán látható b, c és g szubpixetek esnek ebbe a kategóriába.
Az «egynegyed egységnyi horizontális hely” alatt egy adott oszlopban, az egynegyed pixel felbontású helyeken található szubpixelek helyét értjük, Ebbe a kategóriába tartozik például a 12a ábrán látható d és e szubpíxei. a 13a ábrán látható d és g szubpixel, valamint a 14a ábrán látható d, g és h szuhpixei. Analóg módon az „egynegyed egységnyi vertikális hely” alatt egy adott sorban, az egynegyed pixel felbontású helyeken található szufepíxeíek helyét értjük. Ebbe a kategóriába esnek például a 12a ábrán az e és f szubpixet a 13a ábrán az e, i és g szubpixel, míg a 14a ábrán ae, í és h szub pixelek,
A fent említett kifejezések definícióját a megfelelő ábrákon berajzolt „borítékok” tartalmazzák.
Szükségesnek tartjuk továbbá megjegyezni, hogy egy adott pixel jelölésére gyakran célszerű kétdimenziós hivatkozást alkalmazni. Ebben az esetben a megfelelő kétdimenziós hivatkozás meghatározható a 12a, 13a és 14a ábrákon található borítékok metszetének vizsgálatával. Ezt az elvet alkalmazva például a 12a ábrán látható d pixelnek fel egységnyi horizontális és fél egységnyi vertikális helye van, az e szubplxeínek egységnyi horizontális és egynegyed egységnyi vertikális helye van. Ezenkívül a hivatkozások egyszerűsége érdekében a fél egységnyi horizontális és egységnyi vertikális helyeken, az egységnyi horizontális és fél egységnyi vertikális helyeken, valamint a fél egységnyi horizontális és fél egységnyi vertikális helyeken elhelyezkedő szubpixeleket '14 felbontású szuhplxeleknek nevezzük. Az egynegyed egységnyi horizontális és/vagy egynegyed egységnyi vertikális helyen lévő szubpixeleket pedig % felbontású szubpixeíeknek nevezzük.
Szükségesnek tartjuk megjegyezni, hogy a két tesztmodell leírása során, valamint magának a találmánynak a részletes Ismertetése során azt feltételezzük, hogy a pixelek minimális értéke Ö, maximális értéke pedig 2f;-1, ahol n egy plxelérték által felhasznált bitek száma, ami tipikusan 3. Egy szubpixel interpolálását követően, amennyiben az interpolált szubpixel értéke meghaladja a 2fi-1 értéket, annak értékét a |’O, 2f;~1] értéktartományra korlátozzuk, vagyis a megengedett minimális értéknél kisebb értékekből a minimális érték, azaz 0 tesz, míg a megengedett maximális ér* léknél nagyobb értékekből a maximális érték, azaz 2M lesz. Ezt a műveletet levágásnak (oflppíng) nevezzük.
A továbbiakban a 12a-12c ábrák segítségével a TML5 tesztmodefínek megfelelő interpolációs eljárást ismertetjük részletesen..
1. A fél egységnyi horizontális és egységnyi vertikális helyen lévő szübpixel értékét, vagyis a 12a ábrán látható % felbontású b szübpixel értékét egy hatíokozatü szűrő segítségévei számítják ki. A szóró a >á felbontású b szobpixelhez az ugyanabban a sorban a b szubpixelre szimmetrikusan elhelyezkedő, egységnyi horizontális helyeken és egységnyi vertikális helyeken lévő 6 pixel <ArAs) értékei alapján interpolál egy értéket, ahogy ez a 12b ábrán látható. Az interpolációhoz az alábbi képletet használják: b ~ (A? - SA? * 2ÖA3 + 2ÖA4 - ŐA5 + 4-16) / 32. A / operátor csonkolással végzett osztást jelöl. Az így kapott eredményt a levágás! művelettel a [0,2^-1] tartományra korlátozzák.
2. A lő -felbontású c szübpíxelek értékelt az 1. lépésben használt hatfokozató szűrő segítségéve! számítják ki, és ehhez a függőleges irányban legközelebb elhelyezkedő hat pixel vagy szübpixel (A vagy b) értékét használják fel. A 12c ábrának megfelelően a szűrő az egységnyi horizontális és fél egységnyi vertikális helyen elhelyezkedő, lő felbontású c szübpixel értékét az ugyanabban az oszlopban a c szubpixelre szimmetrikusan elhelyezkedő, egységnyi horizontális helyeken és egységnyi vertikális helyeken lévő 6 pixel (ArAs) értékei alapján Interpolálja. Az interpolációhoz az alábbi képletet használják: c ~ (A·. - 5A2 + 2ÖA3 + 2OA4 - 5AS -* As + 16) Z 32. A fél egységnyi horizontális és fel egységnyi vertikális helyen lévő, % felbontású c szübpixel értékét hasonló módon számítják ki: c ~ (b< ·· Sb2 + 2Öbs * 2OP4 - Sb5 * bg. + 16) / 32. A ” / ” operátor ez esetben is a csonkolással végzett osztást jelenti. A c szübpixel kiszámított értékét ismét a jO, 2M'J tartományra korlátozzák levágással.
Az interpolációs eljárásnak ezen a pontján kiszámítják az összes >ő. felbontású szübpixel értékét és az eljárás a % felbontású szebpixetek értékeinek kiszámításával folytatódik.
3. Az lő felbontású d szubpixelek értékeit lineáris interpolációval és vízszintes Irányban a legközelebbi pixelek és/vagy a y2 felbontású szuöpixelek értékeinek felhasználásával számítják ki. Pontosabban szólva, az egynegyed egységnyi horizontális és egységnyi vertikális helyeken lévő % felbontású d szohpixelek értékelt ügy * *
- 16 · ·*' számítják ki, hogy az egységnyi horizontális és egységnyi vertikális helyen lévő, közvetlenül szomszédos pixel (A pixel) és a tél egységnyi horizontális és egységnyi vertikális helyen lévő, közvetlenül szomszéd X. felbontású sznbpixel (b szobpíxei) átlagát veszik, vagyis a d szubpixei értéke: d =? (A + b) / 2. Az egynegyed egységnyi horizontális és fel egységnyi vertikális helyeken levő X felbontású d szobplxelek értékeit úgy számítják ki, hogy az átlagát képezik azoknak a közvetlenül szomszédos X felbontású c szohpixsleknek, amelyek egységnyi horizontális és fél egységnyi vertikális helyeken, valamint fél egységnyi horizontális és fél egységnyi vertikális helyeken vannak, vagyis a d szobplxelek értékét ad = (m -r c2) /2 képlettel számítják ki. A ’*/” operátor ez esetben Is csonkolással végzett: osztást jelenti.
4. Az X felbontásé e szobplxelek értékeit lineáris interpolációval és a függőleges Irányban legközelebbi pixelek és/vagy X felbontású szobplxelek értékeinek felhasználásával számítják ki. Az egységnyi horizontális és egynegyed egységnyi vertikális helyeken lévő, X felbontású e szobplxelek értékét úgy számítják ki, hogy átlagát képezik az egységnyi horizontális és egységnyi vertikális helyen lévő, közvetlenül szomszédos pixelnek (A pixel), valamint az egységnyi horizontális és fél egységnyi vertikális helyen lévő közvetlenül szomszédos szühplxelnek fc szubpixel), vagyis e = (A + c) / 2. A fél egységnyi horizontális és egynegyed egységnyi vertikális helyen lévő, X felbontású e3 szobplxelek értékeit ügy számítják ki, hogy átlagát képezik a fél egységnyi horizontális és egységnyi vertikális helyen lévő, közvetlenül szomszédos sznbpíxelnek (b szühpixeb, valamint a lei egységnyi horizontális és fél egységnyi vertikális helyen lévő, közvetlenül szomszédos szobpíxelnek (c szobpíxei), vagyis e ~ (b + c) / 2. Az egynegyed egységnyi horizontális és egynegyed egységnyi vertikális helyeken lévő X felbontású szobplxelek értékelt úgy számítják ki, hogy átlagát képezik az egynegyed egységnyi horizontális és egységnyi vertikális helyen lévő, közvetlenül szomszédos szobpíxelnek, valamint a megfelelő, egynegyed egységnyi horizontális és fél egységnyi vertikális helyen lévő szubplxeleknek id szobplxelek), vagyis e ~ {di e d2) / 2. A operátor ez esetben ís csonkolással végzett osztást jelent.
5. Az X felbontású f szuhpíxei értékét úgy interpolálják, hogy az egységnyi horizontális és egységnyi vertikális helyeken lévő négy legközelebbi pixel értekét átlagolják, vagyis f - (A-; + A2 + A3 + A? * 2) / 4, ahol az A?, A2, A3 és A4 pixel az eredeti: kép négy legközelebbi pixele.
♦ *»
A TML5 testmodell' hátránya az, hogy a dekódoló bonyolult számításokat végez. Ez abból adódik., hogy a TMLS tesztmodell olyan megközelítést alkalmaz, amelyben az te. felbontású szubplxel értékek interpolációja az te felbontású szubpixel értékek interpolációjától függ. Ez azt jelenti, hogy az te felbontású szobpi.xetek értékeinek Interpolálásához először azoknak az te felbontású szubpíxeléknek az értékeit keli kiszámítani, amelyekből azok meghatározásra kerülnek. Ezenkívül, mivel az tefelbontású szubpixelek egy részének az értéke függ más te felbontású szubpixeíék interpolátálással meghatározott értékeitől, az te felbontású szubplxel értékek csonkolása hátrányosan befolyásolja más te felbontású szubpixel értékek egy részének pontosságát, nevezetesen arról van sző, hogy az te felbontású szubplxel értékek kisebb pontosságnak annál, mintha azokból az értékekből lennének kiszámítva, amelyek nincsenek csonkolva és levágva. A TML5 tesztmodell egy további hátránya az, hogy az te felbontású szubplxel értékek interpolálásához el kell tárolni az te felbontású. szubpixelek értékeit is. Emiatt többlefmemóna szükséges egy olyan eredmény eltárolására,: amelyre végső soron nincs szükség.
A továbbiakban a TML6 tesztmodellben alkalmazott interpolációs eljárást ismertetjük,. melyet közvetlen interpolációnak, nevezünk. A kódolóban a TML6-nak megfelelő interpolációs eljárás hasonlóan működik, mint a korábban bemutatót TML5 tesztmodellben alkalmazott interpolációs eljárás, azzal az eltéréssel, hogy az eljárás során végig megtartják a maximális pontosságot Ezt úgy érik el, hogy olyan közbülső értékeket használnak, amelyek sem kerekítve, sem levágva nincsenek. A TML6 tesztmodellnek megfelelő, a kódolóban alkalmazott interpolációs eljárás lépéseit a 13a-13c ábrák segítségévei ismertetjük.
1. .A fél egységnyi horizontális és egységnyi vertikális helyen lévő szubpixel, vagyis a 13a ábrán látható te felbontású b szubpixel értékét úgy határozzák meg, hogy először is egy hatfokozatú szűrő felhasználásával kiszámítanak egy közbülső b értéket. A szűrő a ö értéket a 13b ábrán látható módon az ugyanabban a sorban a b pixelre szimmetrikusan elhelyezkedő, egységnyi horizontális helyeken és egységnyi vertikális helyeken lévő hat pixel (ArAs) értékel alapján számítja ki az alábbi képiét alapján· ó ~ (Aí - 5A2 + 20As + 2OA4 - 5AS + As). A b pixel végső értékét ezután a h~(0+16)/32: képletből számítják ki és az így kapott értéket úgy módosítják, hogy az a * 9 Φ « » χ» φ* [0., 2η-1 ] tartományba essen. Akárcsak korábban, a ” Z ” operátor ez esetben Is csonkolással végzett osztást jelenti.
2. Az K felbontású c szuhpixeíek értékeit égy határozzák meg, hogy először kiszámítanak egy közbülső c értékeket. Amint a 13c ábrán látható, az egységnyi horizontális és fél egységnyi vertikális helyen elhelyezkedő, % felbontású c szubpixeí'hez tartozó közbülső c értéket az ugyanabban az oszlopban lévő, a c szubpixelre szimmetrikusan elhelyezkedő, egységnyi horizontális helyeken és egységnyi vertikális helyeken lévő 6 pixel (ArAs) értékei alapján számítják ki az alábbi képlet segítségévek c = (A, - 5A2 * 2ÖA3, + 20Α< ~ 5AS + A#?). Az egységnyi horizontális és fél egységnyi vertikális helyen lévő, % felbontásé c szehpixel végső értékét ezután a c~{c+16)/32 képlettel számítják ki. Az előzőekhez hasonlóan a fél egységnyi horizontális és fel egységnyi vertikális helyen lévő, tó felbontású c szubpixelhez tartozó közbülső c értékét az alábbi képlet alapján számítják ki; c ~ (bi - 5b2 φ 20bs + 2ÖŐ4 - 5b$ + be). Az 14 felbontású szubpixel végső értékét ezután a c=(o-r512)/1024 képlettel számítják ki. A '* / operator ez esetben is csonkolással végzett osztást jelent, és az H felbontású c szubpixelhez kiszámított értéket úgy keli módosítani, hogy az a fö, 2M] tartományba essen.
3. Az % felbontású rt szubpixelek értékelt az alábbi módon számítják ki. Áz egynegyed egységnyi horizontális és egységnyi vertikális helyeken lévő, % felbontású d szubpixelek értékelt az egységnyi horizontális és egységnyi vertikális helyen lévő, közvetlenül szomszédságú pixel (A pixel), valamint a fél egységnyi horizontális és egységnyi vertikális helyen lévő, tó felbontású, közvetlenül szomszédos b szubpixelhez az 1. lépésben kiszámított közbülső b érték alapján számítják ki az alábbi képlettel: d ~ (32A * ó + 32) /64. Az egynegyed egységnyi horizontális és fél egységnyi vertikális helyeken lévő, % felbontású d szubpixelek értékeit azoknak az % felbontású, közvetlenül szomszédos c szubplxefekhez kiszámított közbülső o értékek felhasználásával interpolálják, amelyek egységnyi horizontális és fél egységnyi vertikális helyeken, valamint lel egységnyi horizontális és fél egységnyi vertikális helyeken találhatók. A d szubpixelek kiszámítása az alábbi képlet alapján történik: d ~ <32ci + c2 + 1024) / 2048. A ,! / “ operátor ismét a csonkolással végzett osztást jelöli, és az % felbontású d szubpixelek végső értékét szükség esetén levágják úgy, hogy az a [0. 2”~1 ] tartományba essen.
** * > X « * » « «
4.. Az % felbontású e szubpíxelek értékeit az alábbi módon számítják ki. Az egységnyi hortzontálís és egynegyed egységnyi vertikális helyeken lévő, fe felbontása e szubpíxetek értékeit az egységnyi horizontális és egységnyi vertikális helyen lévő, közvetlenül szomszédos pixel (A pixel) értékéből, valamint az egységnyi .horizontális és tél egységnyi vertikális helyen lévő, közvetlenül szomszédos fe felbontású o szobpixei 2. lépésben kiszámított közbülső c értéke alapján számítják ki az alábbi képlettel; a - (32A + c + 32} Z 64. A fél egységnyi horizontális és egynegyed egységnyi vertikális helyeken lévő, fe felbontású e szubpíxelek értékeit a fél egységnyi horizontális és egységnyi vertikális helyen lévő, közvetlenül szomszédos fe felbontású b szübpíxelhez az 1. lépésben kiszámított közbülső ö érték, valamint a fél egységnyi horizontális és fél egységnyi vertikális helyen lévő, fe felbontású, közvetlenül szomszédos c szuhpixeihez a 2. lépésben kiszámított közbülső c érték alapján számítják ki az alábbi képlettel; e - (32b + c + 1024) / 2048, A Z “ operátor ez esetben ís csonkolással végzett osztást jelenti, és az fe felbontású e szubpíxelek értékeit úgy korlátozzák, hogy azok a. (0, 2M) tartományba essenek.
5, Az fe felbontású g szubpíxelek értékelt az eredeti képben szereplő, legközelebbi A pixel értéke és a három legközelebbi szomszédos fe felbontású szubpixel közbülső értékei alapján számítják ki az alábbi képlettel: g ~ (1024A + 32 b * 32c·, + c2 + 2048)· Z 40.96. Akárcsak korábban, a ” Z ” operátor ez esetben is csonkolással végzett osztást jelent, és az fe felbontású g szubpíxelek végső értékét úgy határozzák meg, hogy azok a [Ö, 2M] tartományba essenek.
6. Az fe felbontású f szubpixei értékét interpolációval határozzák meg úgy, hogy az egységnyi horizontális és egységnyi vertikális helyeken lévő négy legközelebbi pixel értékének átlagát képezik az alábbi képlet alapján; f ~ (A; + Á2 * A3 ·+· A.? + 2) Z 4, ahol az A-s, Αχ, A3 és A4 az eredeti képben szereplő négy legközelebbi pixel.
A dekódöiőhan a szubpíxelek értékei vízszintes és függőleges irányokban közvetlenül meghatározhatok hatfokozatú szőrök alkalmazásával Az fe felbontású szubpíxelek esetén a 13a ábrán látható módon az egységnyi vertikális helyen lévő pixelekhez, illetve szubplxelekhez tartozó szőröegyútthatók az alábbiak; [0, 0, 64, 0, Ö, 0] hat A pixelre vonatkozóan; [1, -5, 52, 20, -5, Ij hat d szubpixeire vonatkozóan; |2; -10, 40, 40, -10, 2} hat fe szubpixeire vonatkozóan; és (1, -5, 20, 52, -5, 1} hat d szübpixeke vonatkozóan. Ezeket a szürőegyütthatökal az azonos sorban lévő pixe« «
~ 20 fék, ílfétve szubpixelek megfelelő csoportjaira alkalmazzuk, mivel a szubpíxel értékek Interpolálva vannak.
A szűrőknek a vízszintes és függőleges irányokban történő alkalmazását követően az interpolált o értéket normafeáijuk a c ~ te -s- 2048} / 4896 képlet felhasználásával és az eredményt égy módosítjuk, hogy az a [0, 2^-1) tartományba essen. Amikor egy mozgásvektor egy egész pixel felbontású helyre mutat akár vízszintes, akár függőleges irány mentén, sok a zérus együttható. A TMLS testmodell gyakorlati Implementálásakor a szoftverben különböző elágazásokat alkalmaznak, amelyek a különböző típusú szubpíxeíekre vannak optimalizálva ügy, hogy fölöslegesen ne történjék zérus együtthatóval történő szorzás.
Szükségesnek tartjuk megjegyezni, hogy a TML6 tesztmodeílben az % felbontású szubpíxel értékeket közvetlenül a fent említett közbülső értékek felhasználásával állítják elő, és nem pedig az fe felbontású szubpixelekhez tartozó kerekített és levágott értékekből származtatják. így az fe felbontású szubpíxel értékek meghatározásakor nem szükséges kiszámítani az fe felbontású szuhpíxetek végső értékelt. Magyarán, nem szükséges elvégezni az fe felbontású szühplxelek végső értékeinek kiszámításakor végrehajtott csonkolást és levágást. Nincs szükség az fe felbontású szühplxelek eltárolt végső értékeire sem az fe felbontású szubpíxel értékek kiszámításához. Ily módon a TML6 tesztmodelí számítási szempontból kevésbé bonyolult, mint a TM.L5 tesztmodelí, lévén, hogy kevesebb csonkolási és levágást műveletre van szükség. A TML6 tesztmodelí hátránya azonban az, hogy nagy pontosságú aritmetika szükséges mind a kódolóban, mind a dekődolóhan. A nagy pontosságú interpoláció nagyobb területű integrált áramkör létrehozását teszi szükségessé az ASIC áramkörökben és több számítást Igényel bizonyos CFU-kban. Ezenkívül a TML6 tesztmodellben specifikált közvetlen interpoláció igénylése» alapon történő implementálása nagy memóriaigénnyel jár. Ez fontos tényező, különösére a beágyazott eszközök esetén.
Az előzőekben elmondottak alapján nyilvánvaló, hogy a szubpíxel interpoláció szempontjából a videó kódolóval és dekódolóval szemben támasztott különböző elvárások következtében komoly problémát jelent olyan, szubpixel értékek interpolációját végző eljárás kidolgozása, amely kielégítő teljesítménnyel rendelkezik mind a kódolóban, mind a dekódoiőban. Ezenkívül a bemutatott, jelenleg alkalmazott tesztmodeliek (TML5, TMLS) egyike sem nyújt olyan megoldást, amely optimális működést valósítana meg mind a kódolóban, mind pedig a dekődoióban.
A kitűzött célokat egyrészt olyan, videó kódolásnál alkalmazható Interpolációs eljárással érjük ei, amely során egy sorokba és oszlopokba rendezett, a sorokban egységnyi horizontális helyeken és az oszlopokban egységnyi vertikális helyeken lévő, előre meghatározott dinamikus értéktartományba eső értékkel rendelkező pixelekből álló képet úgy interpolálunk, hogy tört értékű vízszintes és függőleges helyeken lévő szubplxelek számára értékeket határozunk meg, A tört értékű vízszintes és függőleges helyeket 1/2* pixel felbontással adjuk meg, ahol x olyan pozitív egész szám, amelynek maximális N értéke van. Az eljárás az alábbi lépésekből áll:
a) ha az egységnyi horizontális és egységnyi vertikális helyeken lévő, valamint az egységnyi horizontális és egységnyi vertikális helyeken lévő szubplxelek értékeire van szükség, ezeket az értékeket az egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek közvetlen felhasználásává I interpoláljuk;
bj ha az egységnyi horizontális és egységnyi vertikális helyeken lévő szubplxelek értékeire van szükség, akkor ezeket az értékeket az egységnyi horizontális és egységnyi vertikális helyeken lévő szubplxelek értékeinek első súlyozott összege vagy az egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixeíek értékeinek második súlyozod összege közöl az egyik közvetlen felhasználásával interpoláljuk, ahol az első és a második súlyozott őszszeget az aj lépés szerint számítjuk ki; és
c) ha az egységnyi horizontális és egységnyi vertikális helyen lévő szubpíxelek értékeire van szükség, akkor ezeket az értékeket egy egységnyi horizontális és >2Nn egységnyi vertikális helyen lévő első szubpíxeí vagy pixel értékéből, valamint egy egységnyi horizontális és egységnyi vertikális helyen lévő második szubpixei vagy pixel értékéből képezett súlyozott átlag alapján Interpoláljuk, ahol az m, η, ρ és g változók olyan egész számok, melyek az (1...Nj értéktartományba esnek, továbbá az első és a második pixel vagy szubpixei az egységnyi horizontális és vertikális helyen lévő szubpixeíbez viszonyítva átlós Irány mentén helyezkedik el.
- 2;
A fenti eljárás c) lépésében alkalmazott súlyozott átlagban célszerűen olyan első és második súlyt használunk, amelyek nagysága fordítottan arányos az első és a második szubpixeínek vagy pixelnek az egységnyi horizontális és Í4N egységnyi vertikális helyen lévő szubpixeltöl egyenes vonal mentén, átlós irányban méri távoiságvai.
Amennyiben az. első és a második szübp'íxei vagy pixel azonos távolságra, szimmetrikusan helyezkedik el az: egységnyi horizontális és egységnyi vertikális helyen lévő szubpixelhez. képest, akkor az első és a második súlyok értékét azonosnak vesszük.
Az egységnyi horizontális és íőN egységnyi vertikális helyen lévő szubplxel értékének meghatározáséhoz célszerűen az ' egységnyi horizontális és egységnyi vertikális helyen lévő szubpixelek értékelnek a b) lépésben meghatározott első súlyozott összegét használjuk.
Egy egységnyi horizontális és feA'' egységnyi vertikális helyen lévő szubpsxel: meghatározásához célszerűen az egységnyi horizontális és ' egységnyi vertikális helyen lévő szubpixelek ériékelnek a b) lépésben előállított második súlyozott összegét használjuk fel.
Amennyiben az egységnyi horizontális és egységnyi vertikális helyeken, valamint az egységnyi horizontális és í2'1 egységnyi vertikális helyeken lévő szubpixelek értékeire van szükség, akkor ezeket az értékeket egy egységnyi horizontális helyen és a kiszámítandó szubplxelnek megfelelő vertikális helyen lévő első pixel vagy szuhpixei értékéből valamint egy egységnyi horizontális helyen és a kiszámítandó szubpixeínek megfelelő vertikális helyen lévő második pixel vagy szuhpixei értékéből képezett átlag alapján interpoláljuk.
Amennyiben egységnyi horizontális és egységnyi vertikális helyeken, valamint foA1 egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek értékeire van szükség, akkor ezeket az értékeket egy egységnyi vertikális helyen és a kiszámítandó szubpixeínek megfelelő horizontális helyen lévő első pixel vagy szubplxel értékéből, valamint egy egységnyi vertikális helyen és a kiszámítandó szubpixeínek megfelelő' horizontális helyen lévő második pixel vagy szuhpixei értékéből képezett átlag alapján interpoláljuk.
** * 9 •‘ί
Az egységnyi horizontális és I4N egységnyi vertikális helyeken lévő szubpixelek értékeit célszerűen úgy interpoláljuk, hogy egy egységnyi horizontális és egységnyi vertikális helyen lévő pixel értékét, valamint egy 1 egységnyi horizontális és egységnyi vertikális helyen lévő -szubpixel értékét átlagoljuk.
Az egységnyi horizontális és egységnyi vertikális helyeken levő szubpixelek értékeit célszerűen úgy Interpoláljuk, hogy egy >2N'1 egységnyi horizontális és egységnyi vertikális helyen lévő szubpixel értékét, valamint egy egységnyi horizontális és egységnyi vertikális helyen lévő szubpixel értékét átlagoljuk.
Az egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek egyik felének értékét célszerűen úgy interpoláljuk, hogy egy egységnyi horizontális és egységnyi vertikális helyen lévő szubpixel értékéből, valamint egy egységnyi horizontális és ’ egységnyi vertikális helyen lévő szubpixel értékéből álló első értékpár átlagát képezzük, míg az egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek másik felének értékét úgy interpoláljuk, hogy egy egységnyi horizontális és egységnyi vertikális helyen lévő pixel értékéből, valamint egy egységnyi horizontális és ’/2N 1 helyen lévő szubpixel értékéből állő második értékpár átlagát képezzük.
rí vertikális
Az egységnyi horizontális és vertikális helyeken levő szubpixelek értékeit célszerűen váltakozva interpoláljuk úgy, hogy az egyik szubpixel értéke egy egységnyi horizontális és egységnyi vertikális helyen lévő szubpixel értékéből, valamint égy egységnyi horizontális és >2*'' egységnyi vertikális helyen lévő szubpixel értékéből álló első értékpár átlaga, a következő szubpixel értéke pedig egy egységnyi horizontális és egységnyi vertikális helyen lévő pixel, valamint egy >2*' egységnyi horizontális és 34K'‘ egységnyi vertikális helyen lévő szubpixel értékéből álló második értékpár átlaga.
Az 14* egységnyi horizontális és %.N egységnyi vertikális helyeken lévő szubplxelek értékeit előnyösen vízszintes irányban interpoláljuk.
Amennyiben egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek értékeire van szükség, akkor ezeket az értékeket célszerűen úgy interpoláljuk, hogy a legközelebbi szomszédos pixelek értékeinek átlagát képezzük.
♦* ·*» *M*0 φ * * φ φ £
Λ Φ ΦΦ* »
X $ * * Φ Φ *SX $ φ «ΦΦ* φφ ή» φ· * ?4
A fenti eljárás a) és b) lépése közül legalább az egyikben a szubpíxel értékeknek közvetlenül a súlyozott összegek felhasználásával történő interpolálása során a szubplxei értékekhez célszerűen olyan közbülső értéket számítunk ki, amelynek dinamikus értéktartománya nagyobb, mint a pixelek dinamikus értéktartománya.
Az >2N’ felbontású szubpíxel közbülső értékét később felhasználhatjuk egy felbontású szubpíxel értékének kiszámításához.
A kitűzött célokat továbbá olyan, videó kódolásnál alkalmazható interpolációs eljárással épük el, amely során egy sorokba és oszlopokba rendezett, a sorokban egységnyi horizontális helyeken és az oszlopokban egységnyi vertikális helyeken lévő, előre meghatározott dinamikus értéktartományba eső értékkel rendelkező pixelekből álló képet úgy Interpolálunk, hogy tőrt értékű vízszintes és függőleges helyeken lévő szubpixelek számára értékeket határozunk meg. Az eljárás az alábbi lépésekből áll:
a) amennyiben fél egységnyi horlzontáks és egységnyi vertikális helyeken, valamint egységnyi horizontális és fél egységnyi vertikális helyeken lévő szubpixelek értékeire van szükség, akkor ezeket az értékeket úgy interpoláljuk, hogy közvetlenül az egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeit használjuk;
b) amennyiben fél egységnyi horizontális és fél egységnyi vertikális helyeken lévő szubpixelek értékeire van szükség, akkor ezeket az értékeket úgy interpoláljuk, hogy közvetlenül a fél egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek értékeinek az a) lépésben kiszámított súlyozóit összegét használjuk fel; és
e) amennyiben egynegyed egységnyi horizontális és egynegyed egységnyi vertikális helyeken lévő szubpixelek értékeire van szükség, akkor ezeket az értékeket úgy Interpoláljuk, hogy egy fél egységnyi horizontális és egységnyi vertikális helyen lévő szubpíxel értékéből, valamint egv egységnyi horizontális és fél egységnyi vertikális helyen lévő szubpíxel értékéből álló első értékpárt, továbbá egy egységnyi horizontális és egységnyi vertikális helyen lévő pixel értékéből valamint egy fél egységnyi horizontális és fél egységnyi vertikális helyen lévő szubpíxel értékéből álló második értékpár közül legalább az egyik átlagát képezzük.
» » * ·* *»* * « * *«·*« «'««* «ο» rt
A kitűzött célokat továbbá olyan, videó kódolásnál alkalmazható interpolációs eljárással érjük el, .amely- során egy sorokba és oszlopokba rendezett, a sorokban egységnyi horizontális helyeken és az oszlopokban egységnyi vertikális helyeken lévő, előre meghatározott dinamikus értéktartományba eső értékkel rendelkező pixelekből álló képet úgy Interpolálunk, hogy fórt értékű vízszintes és függőleges helyeken lévő sz-ubpixeiek számára értékeket határozunk meg. A tört értékű vízszintes és függőleges helyeket 1/2* pixel felbontással adjuk meg, ahol x olyan pozitív egész szám, amelynek maximális N értéke van. Az eljárás az alábbi lépésekből ált:
a) ha az %N !' egységnyi horizontális és egységnyi vertikális helyeken levő, valamint az egységnyi horizontális és az egységnyi vertikális helyeken lévő szubpixeíek értékeire van szükség, ezeket az értékeket az egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek közvetlen felhasználásé va I lnterpolá|u k;
b) amennyiben egy szuhpíxeí felbontású horizontális és szubpixel felbontású vertikális helyen lévő szobplxei értékére van szükség, ezt az értéket úgy interpoláljuk, hogy közvetlenül felhasználjuk a kiszámítandó szubpixelnek megfelelő vertikális helyeken lévő szubpixeíek értékeiből képezett első súlyozott összeg és a kiszámítandó szubpixelnek megfelelő horizontális helyeken lévő szubpixeíek értékeiből képezett második súlyozott összeg közül az egyiket.
Az első súlyozott összegben célszerűen az kW egységnyi horizontális és egységnyi vertikális helyen lévő szubpixeleket vesszük figyelembe, és az első súlyozott összeget egy >W egységnyi horizontális és egységnyi vertikális helyenlévő szubpixel értékének interpolálására használjuk.
A második súlyozott összegben -célszerűen az egységnyi horizontális és egységnyi vertikális helyeken levő szubpixeleket vesszük figyelembe, és a második súlyozott összeget egy W egységnyi horizontális és egységnyi vertikális helyen lévő szobplxei értékének interpolálására használjuk.
Amennyiben az W egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixeíek értékeire van szükség, akkor ezeket az értékeket célszerűen úgy interpoláljuk, hogy egy %N'? egységnyi horizontális és egységnyi vertikális helyen lévő szubpixel értékéből, valamint egy egységnyi horizontális és egy*4 < * «
ségnyi vertikális helyen lévő szuhpixel értékéből képezett első értékpár, továbbáegy egységnyi horizontális- és egységnyi vertikális helyen lévő pixel értékéből, valamint egy egységnyi horizontális és egységnyi vertikális helyen lévő szubpixel értékéből képezett második értékpár közül legalább az egyiknek az átlagát képezzük.
A fenti eljárás során alkalmazott H egész szám értékét a [2,3,4] értékkészletből választjuk.
Az egynegyed egységnyi horizontális helyen lévő szubpixel alatt olyan szubpixelt értünk, amelynek baloldali szomszédja egy egységnyi horizontális helyen lévő pixel, míg jobboldali szomszédja egy fél egységnyi horizontális helyen lévő szubprxe-l, Illetve amelynek a baloldali szomszédja egy fél egységnyi horizontális helyen lévő szubpixel, jobboldali szomszédja pedig egy egységnyi horizontális helyen lévő pixel. Hasonló módon, az egynegyed egységnyi vertikális helyen lévő szubpixel alatt olyan szubpixelt értünk, amelynek felső szomszédja egy egységnyi vertikális helyen lévő pixel, alsó szomszédja pedig egy fél egységnyi vertikális helyen lévő szubpixel, illetve amelynek felső szomszédja egy fél egységnyi vertikális helyen lévő szubpixel, alsó szomszédja pedig egy egységnyi vertikális helyen lévő pixel.
Dinamikus tartomány alatt azoknak az értékeknek a halmazát értjük, amiket a szubpixetek, valamint a súlyozott összegek felvehetnek.
A dinamikus tartomány megváltoztatásán - függetlenül attól, hogy annak növeléséről vagy csökkentéséről van-e szó - azon bitek számának megváltoztatását értjük, melyeket a dinamikus tartomány reprezentálására használunk.
A találmány szerinti eljárás egyik lehetséges alkalmazása során az eljárást olyan képre alkalmazzuk, amelyet több képblokkra osztottunk fel, Az egyes képblokkoknak célszerűen négy sarka van, melyek mindegyikét olyan pixel határozza meg, amely egységnyi horizontális és egységnyi vertikális helyen van. Az eljárást célszerűen minden egyes képblokkra alkalmazzuk, amint a képblőkk alkalmassá válik a szubpixel interpolációra. Lehetőség van azonban arra Is, hogy a találmány szerinti szubpixel interpolációs eljárást egy lépésben hajtsuk végre, amikor egy kép összes képbiokkja rendelkezésre áll a szubpixel interpolációra.
A találmány szerinti eljárást célszerűen videó kódoláshoz használjuk. A találmány szerinti eljárás előnyösen alkalmazható videó dekódolásnál is.
·*»
V * ·> » Ί * * ** * « * $ « «Φ φ «β»
Abban az esetben, ha a találmány szerinti eljárást kódoláshoz használjuk, akkor a találmány szerinti eljárást előkészített interpolációként használjuk, amikor is az. összes fél egységnyi helyen lévő és egynegyed egységnyi helyen lévő szubpixel értékét kiszámítjuk és eltároljuk, majd azokat később, a mozgás-predíkciés kódolás során egy predíkcíós keret meghatározására használjuk fel. A találmány szerinti eljárás egy másik tehetséges alkalmazásánál az eljárást az előkészített és az igényléses interpoláció kombinációjaként alkalmazzuk. Ebben az esetben a predlkciós keret meghatározása előtt a szubpixel értékeknek csak egy részét vagy egy bizonyos típusát számítjuk és tároljuk el, míg a többi szubpixel értéket csak szükség esetén számítjuk ki a mozgás-pmdikoíós kódolás során.
Ha a találmány szerinti eljárást dekódoláshoz használjuk, akkor a szubpixeleket csak abban az esetben interpoláljuk, ha azokra a mozgásvektor által jelzett esetben szükség van.
A kitűzött célokat továbbá olyan videó kódoló megvalósításával érjük el, amely sorokba és oszlopokba rendezett, a sorokban egységnyi horizontális helyeken és az oszlopokban egységnyi vertikális helyeken lévő, előre meghatározott dinamikus értéktartományba eső értékkel rendelkező pixelekből álló kép kódolására alkalmas, A videó kódoló tört részű horizontális és vertikális helyeken lévő szubpixelek értékeinek előállítására alkalmas inlerpolátort tartalmaz. A tört részű horizontális és vertikális .helyek az 1/2X felbontással rendelkeznek, ahol x olyan pozitív egész szám, melynek N maximális értéke van. Az Interpolátor:
a) az 1 egységnyi horizontális és egységnyi vertikális helyeken lévő, valamint az egységnyi horizontális és 14^’ egységnyi vertikális helyeken lévő szubpixelek értékelt az egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek közvetlen felhasználásával interpolálja;
b) az egységnyi horizontális és %N' ’ egységnyi vertikális helyeken lévő szubpixelek értékelt az .½^5 egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek értékelnek első súlyozott összege vagy az egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek értékeinek második súlyozott összege közül az egyik közvetlen felhasználásával interpolálja, ahol az első és a második súlyozott összeget az a) lépés szerint számítja ki; és
*.<:· * *
-i ί
«ί*.
c> az teN egységnyi horizontális és egységnyi vertikális helyen lévő szubpixelek értékeit egy te^ egységnyi horizontális és egységnyi vertikális helyen lévő első szubpixel vagy pixel értékéből, valamint egy %N'P egységnyi horizontális és te*^ egységnyi vertikális helyen lévő második szubpixel vagy pixel értékéből képezett súlyozott átlag alapján Interpolálja, ahol az m, n, p és q változók olyan egész számok, melyek az Γ1...Ν] értéktartományba esnek, továbbá az első és a második pixel vagy szubpixel az teN egységnyi horizontális és teN vertikális helyen lévő szubpixelhez viszonyítva átlós irány mentén helyezkedik el.
A videó kódoló tartalmazhat egy videó kódoló egységet.
A videó kódoló szintén tartalmaz egy videó dekódoló egységet. A videó kódoló egység és a videó dekódoló egység egyesíthető egy kodekban.
A kitűzött célokat továbbá olyan kommunikációs végberendezés megvalósításával érjük el, amely kép kódolására alkalmas videó kódolót tartalmaz, ahol a kép sorokba és oszlopokba rendezett, a sorokban egységnyi horizontális helyeken és az oszlopokban egységnyi vertikális helyeken lévő, előre meghatározott dinamikus értéktartományba eső értékkel rendelkező pixelekből áll. A videó kódoló tört részű horizontáhs és vertikális helyeken lévő szubpixelek értékelnek előállítására alkalmas interpolálod: tartalmaz. A tört részű horizontális és vertikális helyek az 1/2X felbontással rendelkeznek, ahol x olyan pozitív egész szám, melynek IM maximális értéke van. Az interpoíátor:
a) az te^'' egységnyi horizontális és egységnyi vertikális helyeken lévő, valamint az: egységnyi horizontális és ter^ egységnyi vertikális helyeken lévő szubpixelek értékeit az egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek közvetlen felhasználásával interpolálja;
b) az. 34w' ‘ egységnyi horizontális és te'1 egységnyi vertikális helyeken lévő szubpixelek értékelt az teN~! egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek értékeinek első súlyozott összege vagy az egységnyi horizontális és teN l egységnyi vertikális helyeken lévő szubpixelek értékeinek második súlyozott összege közül az egyik közvetlen felhasználásával interpolálja, ahol az első és a második súlyozott Összeget, az a) lépés szerint számítja ki; és
c) az egységnyi horizontális és te^ egységnyi vertikális helyen lévő szubpixelek értékelt egy %Nxfn egységnyi horizontális és te^ egységnyi vertikális >ί·* *
.... go helyen lévő első szubpixel vagy pixel értékéből, valamint egy %N'P egységnyi horizontális és egységnyi vertikális helyen lévő második szubplxel vagy pixel értékéből képezett súlyozott átlag alapján interpolálja, ahol az m, η, p és q változók olyan egész számok, melyek az [1...N1 értéktartományba esnek, továbbá az első és a második pixel vagy szubpixel az egységnyi horizontális és vertikális helyen lévő .szubpixelhez viszonyítva átlós Irány mentén helyezkedik el.
A kommunikációs végberendezés tartalmazhat videó kódoló egységet. A kommunikációs végberendezés szintén tartalmaz videó dekódoló egységet. A kommunikációs végberendezés azonban célszerűen olyan kodekot tartalmaz, amely videó kódoló egységből és videó dekódoló egységből áll
A kommunikációs végberendezés célszerűen tartalmaz felhasználói interfészt, processzort, továbbá egy adóegység és egy vevőegység közűi legalább az egyiket. A kommunikációs végberendezés előnyösen tartalmaz egy találmány szerinti videó kódolót is. A processzor feladata az adóegység és/vagy vevőegység, valamint a videó kódoló vezérlése.
A kitűzött célokat továbbá plyan távközlési rendszer megvalósításával érjük el, amely kommunikációs végberendezést és távközlési hálózatot tartalmaz. A távközlési hálózat és kommunikációs végberendezés olyan kommunikációs öszszeköttetésen keresztül kapcsolódik egymáshoz, amelyen kódolt videó információ továbbítható. A kommunikációs végberendezés kép kódolására szolgáló videó kódolót tartalmaz, ahol a kép sorokba és oszlopokba rendezett, a sorokban egységnyi horizontális helyeken és az oszlopokban egységnyi vertikális helyeken lévő, előre meghatározott dinamikus értéktartományba eső értékkel rendelkező pixelekből áll. A videó kódoló tört részű horizontális és vertikális helyeken lévő szubpixelek értékeinek előállítására alkalmas interpoiátort tartalmaz. A tört részű horizontális és vertikális helyek az 1/2S felbontással rendelkeznek, ahol x olyan pozitiv egész szám, melynek H maximális értéke van. Az interpolátor
a) az Ιό*'* egységnyi horizontális és egységnyi vertikális helyeken lévő, valamint az egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek értékelt az egységnyi hcdzontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek közvet len felhasználásával interpolálja;
·> *Xk φ « A v » $ s *|fe.
b) az ;4N'' egységnyi horizontális és X^' egységnyi vertikális helyeken lévő szubpixelek értékeit az egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek értékelnek első súlyozott összege vagy az egységnyi horizontális és XN'' egységnyi vertikális helyeken lévő szubpixelek értékeinek második súlyozott összege közül az egyik közvetlen felhasználásával interpolálja, ahol az első és a második súlyozóit összeget az a) lépés szerint számítja ki; és ej az XN egységnyi horizontális és egységnyi vertikális helyen lévő szubpixelek értékelt egy Xh'm egységnyi horizontális és XN'R egységnyi vertikális helyen lévő első szuhpixei vagy pixel értékéből, valamint egy XN*P egységnyi horizontális és Xw~q egységnyi vertikális helyen lévő második szuhpixei vagy pixel értékéből képezett súlyozott átlag alapján interpolálja, ahol az m, π, p és g változók olyan egész számok, melyek az (1...Nj értéktartományba esnek, továbbá az első és a második pixel vagy szuhpixei az XN egységnyi horizontális és vertikális helyen lévő szubpíxelhaz viszonyítva átlós irány mentén helyezkedik el.
A távközlési rendszer célszerűen olyan mobil távközlési rendszerként van megvalósítva, amely mobil kommunikációs végberendezést és vezeték nélküli hálózatot tartalmaz. A távközlési rendszerben a mobil kommunikációs végberendezés és a vezeték nélküli hálózat között előnyösen rádióhullámú összeköttetés van.
A hálózat a kommunikációs végberendezés és a hálózathoz szintén kommunikációs összeköttetésekkel kapcsolódó, más kommunikációs végberendezések közötti kommunikációt lehetővé tevő módon van kialakítva.
A kitűzött célokat továbbá olyan távközlési rendszer megvalósításával érjük el, amely kommunikációs végberendezést és távközlési hálózatot tartalmaz, ahol a távközlési hálózat és a kommunikációs végberendezés olyan kommunikációs őszszekötfetésen keresztül kapcsolódik egymáshoz, amelyen kódolt videó információ továbbítható. A távközlési hálózat kép kódolására szolgáló videó kódolót tartalmaz, ahol a kép sorokba és oszlopokba rendezett, a sorokban egységnyi horizontális helyeken és az oszlopokban egységnyi vertikális helyeken lévő, előre meghatározott dinamikus értéktartományba eső értékkel rendelkező pixelekből áll. A videó kódoló tört részű horizontális és vertikális helyeken lévő szubpixelek értékelnek előállítására alkalmas ínterpolátort tartalmaz. A tört részű horizontális és ver» 31 tikális helyek az 1/2'x felbontással rendelkeznek, ahol x olyan pozitív egész szám, melynek N maximális értéke van. Az interpolátor:
a) az %N'’ egységnyi horizontális és egységnyi vertikális helyeken lévő, valamint az egységnyi horizontális és ' egységnyi vertikális helyeken lévő szubpíxelek értékeit az egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek közvetlen felhasználásával interpolálja.;
b) az %N 1 egységnyi -horizontális és egységnyi vertikális helyeken lévő szubpíxelek értékeit az. %.N~; egységnyi horizontális és egységnyi vertikális helyeken lévő szubpíxelek értékeinek első súlyozott összege vagy az egységnyi horizontális és •egységnyi vertikális helyeken lévő szubpixelek értékeinek második súlyozott összege közöl az egyik közvetlen felhasználásával interpolálja, ahol az első és a második súlyozott összeget az a) lépés szerint számítja ki; és
c) az MA egységnyi horizontális és egységnyi vertikális helyen lévő szubpixelek értékeit egy egységnyi horizontális és egységnyi vertikális helyen lévő első szubpixel vagy pixel értékéből, valamint egy teN'p egységnyi horizontális és egységnyi vertikális helyen lévő második szubpixel vagy pixel értékéből képezett súlyozott átlag alapján interpolálja, ahol az m, η, p és g változók olyan egész számok, melyek az (1...N1 értéktartományba esnek, továbbá az első és a második pixel vagy szubpixel az %N egységnyi horizontális és vertikális helyen lévő szubpixelhez viszonyítva átlós irány mentén helyezkedik el
A kitűzött célokat tovább olyan videó kódoló megvalósításával érjük el, amely sorokba és oszlopokba rendezett, a sorokban egységnyi horizontális helyeken és az oszlopokban egységnyi vertikális helyeken lévő, előre meghatározott dinamikus értéktartományba eső értékkel rendelkező pixelekből álló kép kódolására alkalmas. A videó kódoló tört részű horizontális és vertikális helyeken lévő szubpíxelek értékeinek előállítására alkalmas interpolálod tartalmaz. A szubpíxelek felbontását egy N pozitív egész szám határozza meg. Az interpolátor:
a) az egységnyi horizontális és egységnyi vertikális helyeken lévő, valamint az egységnyi horizontális és az egységnyi vertikális helyeken lévő szubpixelek értékeit az egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek közvetlen felhasználásával interpolálja;
b) a szubpixel felbontású horizontális és szubpixel felbontású vertikális helyeken lévő szubpixeiek értékeit úgy interpolálja, hogy közvetlenül felhasználja a kiszámítandó szobpixelnek megfelelő vertikális helyeken lévő szubpixeiek értékeiből képezett első súlyozott összeg és a kiszámítandó szubpixeteek megfelelő horizontális helyeken lévő szubpixeiek értékeiből képezett második súlyozott összeg közül az egyiket.
A videó kódolóban lévő ínterpolátor az első súlyozott összegben célszerűen az γΑ1 egységnyi horizontális ás egységnyi vertikális helyen lévő szubplxeleket veszi figyelembe, és az első súlyozott összeget egy tőA' egységnyi horizontális és 14n egységnyi, vertikális helyen lévő szubpixel értékének interpolálására használja fel.
A videó kódolóban lévő interpolátor a második súlyozott összegben célszerűen az egységnyi horizontális és %N'! egységnyi vertikális helyeken lévő szebpixeleket veszi figyelembe, és a második súlyozott összeget egy zíA egységnyi horizontális és egységnyi vertikális helyen lévő szubpixel értékének Interpolálására használja.
A videó kódolóban lévő Interpolátor az kA egységnyi horizontális és klA egységnyi vertikális helyeken lévő szubpixeiek értékeit célszerűen úgy interpolálja, hogy egy ' egységnyi horizontális és egységnyi vertikális helyen lévő szuopixei értékéből, valamint egy egységnyi horizontális és kA' egységnyi vertikális helyen lévő szubpixel értékéből képezett első értékpár, továbbá egy egységnyi horizontális és egységnyi vertikális helyen lévő pixel értékéből, valamint egy jőN1 egységnyi horizontális- és egységnyi vertikális helyen lévő szubpixel értékéből képezett második értékpár közöl legalább az egyiknek az átlagát képezi.
A videó kódoló célszerűen tartalmaz egy videó kódoló egységet,
A videó kódoló célszerűen tartalmaz egy videó dekódoló egységet ss.
A kitűzött célokat továbbá olyan kodek megvalósításával épük el, amely sorokba és oszlopokba rendezett, a sorokban egységnyi horizontális helyeken és az oszlopokban egységnyi vertikális helyeken lévő, előre meghatározott dinamikus értéktartományba eső értékkei rendelkező pixelekből átlő kép kódolására alkalmas. A kodek olyan videó kódoló egységet és videó dekódoló egységet tartalmaz, amelyek tört részű horizontális és vertikális helyeken lévő szubpixeiek értékelnek rt előállítására alkalmas interpolátort tartalmaznak. A szübpíxelek felbontását egy H pozitív egész szám határozza meg. A videó kódoló egység és a videó dekódoló egység interpolátora:
a) az /ő:h ! egységnyi horizontális és egységnyi vertikális helyeken lévő, valamint az -egységnyi horizontális és az HN 1 egységnyi vertikális helyeken lévő szubpixelek értékeit az egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek közvetlen felhasználásával Interpolálja;
b) a szübpixel felbontású horizontális és szübpixel felbontású vertikális helyeken lévő szubpixelek értékelt úgy interpoiáila, hogy közvetlenül felhasználja a kiszámítandó szubpixeinek megfelelő vertikális helyeken lévő szübpíxelek értékeiből képezett első súlyozott összeg és a kiszámítandó szubplxelnek megfelelő horizontális helyeken lévő szubpixelek értékeiből képezett második súlyozott összeg közöl az egyiket.
A kitűzött célokat továbbá olyan kommunikációs végberendezés megvalósításával égők el, amely kép kódolására szolgáló videó kódolót tartalmaz. A videó kódoló sorokba és oszlopokba rendezett, a sorokban egységnyi horizontális helyeken és az oszlopokban egységnyi vertikális helyeken lévő, előre meghatározott dinamikus értéktartományba eső értékkel rendelkező pixelekből álló kép kódolására szolgál. A videó kódoló tört részű horizontális és vertikális helyeken lévő szubpixelek értékelnek eíöáilitására alkalmas inierpoiátort tartalmaz. A szobpixelek felbontását egy N pozitív egész szám határozza meg. Az interpolátor;
a) az egységnyi horizontális és egységnyi vertikális helyeken lévő, valamint az egységnyi horizontális és az egységnyi vertikális helyeken lévő szubplxalek értékeit az egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek közvetlen felhasználásával interpolálja;
b) a szübpixel felbontású horizontális és szübpixel felbontású vertikális helyeken lévő szubpixelek értékelt úgy interpolálja, hogy közvetlenül felhasználja a kiszámítandó szubplxelnek megfelelő vertikális helyeken lévő szubpixelek értékeiből képezett első súlyozott összeg és a kiszámítandó szubplxelnek megfelelő horizontális helyeken lévő szubpixelek értékeiből képezed második súlyozott összeg közül az egyiket.
<54
A kommunikációs végberendezés célszerűen tartalmaz egy videó kódoló egységet.
A kommunikációs végberendezés célszerűen tartalmaz egy videó dekódoló egységet Is.
A kitűzött célokat továbbá olyan távközlési rendszer megvalósításával érjük el, amely kommunikációs végberendezést és távközlési hálózatot tartalmaz. A távközlési hálózat és a kommunikációs végberendezés olyan kommunikációs öszszeköttetésen keresztül kapcsolódik egymáshoz, amelyen kódolt videó információ továbbítható. A kommunikációs végberendezés kép kódolására szolgáló videó kódolót tartalmaz, ahol a kép sorokba és osdopokba rendezett, a sorokban egységnyi horizontális helyeken és az oszlopokban egységnyi vertikális helyeken lévő, előre meghatározott dinamikus értéktartományba eső értékkel rendelkező pixelekből áll. A videó kódoló tört részű horizontális és vertikális helyeken lévő szubpixelek értékeinek előállítására alkalmas ínterpöláiort tartalmaz. A szubpixelek felbontását egy N pozitív egész szám határozza meg. Az ínterpoíátor:
a) az teN'! egységnyi horizontális és egységnyi vertikális helyeken lévő, valamint az egységnyi horizontális és az egységnyi vertikális helyeken lévő szubpixelek értékeit az egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek közvetlen felhasználásával Interpolálja;
fe) a szubpixel felbontású horizontális és szubpixel felbontású vertikális helyeken lévő szubpixelek értékeit ágy interpolálja, hogy közvetlenül felhasználja a kiszámítandó szubpixelnek megfelelő vertikális helyeken lévő szubpixelek értékeiből képezett első súlyozott összeg és a kiszámítandó szubpixeínek megfelelő horizontális helyeken lévő szubpixelek értékeiből képezett második súlyozott összeg közül az egyiket.
Az imént bemutatott távközlési rendszer célszerűen olyan mobil távközlési rendszerként van megvalósítva,, amely mobil kommunikációs végberendezést, és vezeték nélküli .hálózatot tartalmaz. A mobil távközlési rendszerben a mobil kommunikációs végberendezés és a vezeték nélküli hálózat között előnyösen rádióhullámé összeköttetés van.
A távközlési rendszer részét képező hálózat a kommunikációs végberendezés és a hálózathoz szintén kommunikációs összeköttetésekkel kapcsolódó, más ···· 35 kommunikációs végberendezések közötti kommunikációt lehetővé tevő módon van kialakítva.
A kitűzött: célokat végül olyan távközlési rendszer megvalósításával érjük el, amely kommunikációs végberendezést és távközlési hálózatot tartalmaz, ahol a távközlési hálózat és a kommunikációs végberendezés olyan kommunikációs- öszszekőttefésen keresztül kapcsolódik egymáshoz, amelyen kódolt videó információ továbbítható. A távközlési hálózat kép kódolására szolgáló videó kódolót tartalmaz, ahol a kép sorokba és oszlopokba rendezett, a sorokban egységnyi horizontális helyeken és az oszlopokban egységnyi vertikális helyeken lévő, előre meghatározott dinamikus értéktartományba eső értékkel rendelkező pixelekből áll. A videó kódoló tőrt részű horizontális és vertikális helyeken lévő szubpixelek értékelnek előállítására alkalmas Interpolálod tartalmaz. A szubpixelek felbontását egy N pozitív egész szám határozza meg. Az interpolátor.
a ) az egységnyi horizontális és egységnyi vertikális helyeken lévő, valamint az egységnyi horizontális és az egységnyi vertikális helyeken lévő szubpixelek értékelt az egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek közvetlen felhasználásával Interpolálja;
:h) a szubplxel felbontású horizontális és szubplxel felbontású vertikális helyeken lévő szubpixelek értékeit úgy Interpolálja, hogy közvetlenül felhasználja a kiszámítandó szubpixeínek megfelelő vertikális helyeken lévő szubpixelek értékeiből képezett első súlyozott összeg és a kiszámítandó szubpixeínek megfelelő horizontális helyeken lévő szubpixelek értékeiből képezett második súlyozott összeg közül az egyiket.
A találmányt a továbbiakban a rajz alapján Ismertetjük részletesen A rajzon;
- az 1. ábra egy ismert videó kódoló felépítését szemlélteti:
- a 2. ábra egy ismert videó dekódoló felépítését szemlélteti;
- a 3. ábra a videó kódolás során használt kerettípusokat szemlélteti;
... a 4a-4c ábrák a blokklliesztés lépéseit szemléltetik;
- az 5. ábra a mozgásheeslés szuhpixei felbontásúra történő átalakítását szemlélteti;
- a 6. ábra a találmány szerinti eljárás implementálására alkalmas, kódolót és dekődolőt tartalmazó végberendezés blokkvázlata;
— 36 - a 7. ábra a találmány szerinti videó kódoló egyik tehetséges kiviteli alakjának blokkvázlata;
- a 8. ábra a találmány szerinti videó dekódoló egyik lehetséges kiviteli alakjának .blokkvázlata;
- a 9. és 10. ábra nem része a leírásnak és ezért figyelmen kívül hagyandó;.
- a 11. ábra a találmány szerinti mobil távközlési hálózat egyik lehetséges változatának. blokkvázlata;
- a 12a ábra a pixelek és szubpixelek helyeinek jelölését szemlélteti a TML5 tesztmodelire vonatkozóan;
- a 12b ábra tó felbontású szubpixelek interpolációját szemlélteti a TML5 tesztmodellnél;
- a 12c ábra tó felbontású szubpixelek interpolációját szemlélteti a TML5 tesztmodellnél;
- a 13a ábra a pixelek és szubpixelek helyeinek jelölését szemlélteti a TML8 tesztmodelire vonatkozóan;
- a 13b ábra tó felbontású szubpixelek interpolációját szemlélteti a TML6 tesztmodellnél;
~ a 13c ábra tó felbontású szubpixelek interpolációját szemlélteti a TML6 tesztmodellnél;
- a 14a ábra a pixelek és szubpixelek helyeinek jelölését szemlélteti a találmány szerinti Interpolációs eljárásnál;
- a 14b ábra tó felbontású szubpíxetek interpolációját szemlélteti a találmány szerinti interpolációs eljárásnál;
- a 14c ábra tó felbontású szubpixelek interpolációját szemlélteti találmány szerinti interpolációs eljárásnál;
- a 15. ábra szubpixelek diagonális Interpolációjának egy tehetséges módját szemlélteti;
- a 16. ábra olyan tó felbontású szubpíxel értékeket szemléltet, melyek más tó felbontású szubpíxel értékek kiszámításához szükségesek;
~ a 17a ábra olyan tó felbontású szubpíxel értékeket mutat, melyeket a TML5 tesztmodoll Interpolációs eljárás során a képblokkban lévő tó felbontású szubpixelek értékelnek interpolálásához kell kiszámítani;
*4 44 »*** * * 4 ♦ 4 * « „ ί » *4 # * Χ 4 44 φ»
- a 17b ábra olyan X felbontású szubpixel értékeket szemléltet, melyeket a találmány szerinti interpolációs eljárás során a képblokkban lévő X felbontású szubpixelek értékeinek interpolálásához kell kiszámítani;
a 18a ábra azoknak a % felbontású szubpixeleknek a számát szemlélteti, melyeket a TML5 tesztrnodeil szerinti, szubpixel értékek meghatározására, szolgáló interpolációs eljárás során a képblokkon belüli X felbontású szobplxelek értékeinek meghatározásához kelt kiszámítani;
- a 18b ábra azoknak a X felbontású szubpixeleknek a számát szemlélteti, melyeket a találmány szerinti, szubpixel értékeket meghatározó interpolációs eljárás során a képblokkban lévő X felbontású szubpixelek értékeinek meghatározásához kell kiszámítani;
- a 19. ábra a 1S szubpixel helyének számozását, szemlélteti;
- a 20. ábra a pixelek, X felbontású szubpixelek, X felbontású szobplxelek és 178 felbontású szubpixelek leírására használt jelölésrendszer;
- a 21a ábra a találmány szerinti eljárásnál az egyes 1/8 felbontású szubpixelek interpolálásakor alkalmazható diagonális irányt szemlélteti;
- a. 21 b ábra a találmány szerinti eljárás egy másik lehetséges változatánál az egyes 1/8 felbontású szubpixelek interpolálásakor alkalmazható diagonális irányt szemlélteti; és
- a 22. ábra az egy képen belüli 1/8 felbontású szubpixelek leírásához használt jelölésrendszert szemlélteti.
Az 1.-5. ábrákat, valamint a 12a-12c és a 13a-13c ábrákat a technika állásának bemutatásakor ismertettük.
A 6. ábrán a találmány szerintii videó kódolót és videó deködolót tartalmazóvégberendezés blokkvázlata látható, amely alkalmas a találmány szerinti eljárás végrehajtására. A 6. ábrán látható végberendezés olyan 80 multimédia végberendezés, amely az ITÜ-T H.324 ajánlásai alapján van implementálva. A 80 multimédia végberendezés multimédiás adóvevő eszköznek tekinthető. Olyan eszközöket tartalmaz, amelyek begyűjtik, kódolják és multiplexeik a kommunikációs hálózaton továbbítandó multimédia adatfolyamokat, továbbá olyan elemeket tartalmaz, amelyek fogadják, demulflplexeilk, dekódolják és megjelenítik a beérkező multimédia tartalmat. Az ITUT H.324 ajánlás definiálja a végberendezés összes műveletét és olyan más ajániá-- 33sokra hivatkozik, amelyek annak különböző részegységeinek működését irányítják. Az ilyen multimédia végberendezés felhasználható valós idejű alkalmazásokban, például videó telefonban, továbbá nem valós idejű alkalmazásokban, például videó klipeknek egy, az interneten keresztül elérhető multimédiás tartalomszolgáltatótól történő lekérdezéséhez vagy folyamatos letöltéséhez.
A találmány természetéből nyilvánvalóan következik, hogy a 6. ábrán látható H 324 végberendezés csak egyike a multimédia végberendezés számos lehetséges implementációjának, melyek alkalmasak a találmány szerinti eljárás végrehajtására. Szükségesnek tartjuk megjegyezni, hogy a végberendezés helyére és implementációjára vonatkozóan számos más megoldás is létezik, Amint a 6. ábrán látható, a 60 multimédia végberendezés elhelyezhető egy kommunikációs berendezésben, amely vezetékes telefonhálózathoz, például az analóg PSTN hálózathoz csatlakozik, Ebben az esetben a 60 multimédia végberendezés olyan 71 modemmel van ellátva, amely eleget tesz az ITÜ-T V.3, V.34 és esetleg a V.Sbís ajánlásoknak. A 60 multimédia végberendezés csatlakoztatható külső modemhez is. A modem lehetővé teszi a multiplexeit digitális adatok és a multimédia végberendezés által előállított vezérlőjelek olyan analóg formátumra történő átalakítását, amely alkalmas a PSTN hálózaton keresztül történő továbbításra. Lehetővé teszi továbbá a 60 multimédia végberendezés -számára, hogy a PSTN hálózaton keresztül analóg formában adatokat és vezérlőjeleket fogadjon és azokat olyan digitális adatfolyammá alakítsa át, amelyet a 80 multimédia végberendezés megfelelő módon képes demultlplexelnl és feldolgozni.
Egy H.324 szabvány szerinti multimédia végberendezés implementálható oly módon is, hogy közvetlenül egy digitális, vezetékes hálózathoz, például egy ISDN hálózathoz csatlakozzon. Ebben az esetben a 71 modemet egy ISDN felhasználóhálózat Interfész helyettesíti. A 6. ábrán az ilyen ISDN felhasználó-hálózat interfészt a 72 blokk jelöli.
A H.324 szabvány szerinti multimédia végberendezések alkalmassá tehetők mobil kommunikációs alkalmazásokban történő felhasználásra Is. Amennyiben vezeték nélküli kommunikációs összeköttetéssel használjuk a multimédia végberendezést, a 71 modem bármilyen alkalmas, vezeték nélküli íntedésszel helyettesíthető, ahogy ezt a 6. ábrán látható 73 blokk szemlélteti. Egy H.324/M szabvány szerinti multimédia végberendezés tartalmazhat olyan rádió adóvevőt, amely lehetővé teszi a * * * ·Α *
Jf ··> .-χ Ο\>
multimédia végberendezésnek a jelenleg! 2. generációs GSM mobil telefonhálózathoz vagy a javasolt 3. generációs UMTS (Universal Mobile Telephoné System) hálózathoz történő csatlakoztatást.
Szükségesnek tartjuk megjegyezni, hogy a kétirányú kommunikációra, alkalmasan kialakított multimédia végberendezések, vagyis a videó adatok elküldésére és vételére egyaránt alkalmas végberendezések előnyösen tartalmaznak mind videó kódolói, mind pedig videó dekódoló!, melyek a találmány alapján vannak megvalósítva. Az Ilyen kódolót és dekódoló! gyakran egyetlen kombinált funkcionális egységként, egy ón. kodek formájában valósítják meg.
Mivel a találmány szerinti videó kódoló a szubpíxeles felbontás eléréséhez alkalmazott mozgás-kompenzációs videó kódolás során speciális interpolációs módszert használ, vagyis az előkészített interpoláció és az igényléses interpoláció egy speciális kombinációját alkalmazza, általában szükségessé válik a fogadó végberendezés videó dekódcíójának oly módon történő Implementálása, hogy kompatibilis legyen a tömörített videó adatfolyamot előállító adó végberendezés kódolójával Az ilyen kompatibilitás hiánya hátrányosan befolyásolhatja a mozgás-kompenzáció minőségét és a rekonstruált videó keretek pontosságát.
A továbbiakban egy tipikus H.324 szabvány szerinti multimédia végberendezést ismertetünk részletesen a 6. ábra segítségével.
A 60 multimédia végberendezés számos részegységet tartalmaz. Ilyen részegység például a 61 videó eszköz, a 62 audio eszköz és a 63 telematikai eszköz, A 61 videó eszköz lehet például videokamera, amely videoképeket készít, monitor, amely a beérkező videó tartalmat megjeleníti vagy adott esetben egy videó feldolgozóegység. A 62 audio eszköz tipikusan mikrofon, például beszéd-alapú üzenetet rögzítő mikrofon, vagy hangszóró, amely a beérkező audio tartalmat reprodukálja. A 62 audio eszköz lehet audio feldoigozóegység is. A 63 telematikai eszköz lehet adatterminál, billentyűzet, elektronikus hirdetőtábla vagy áilóképí adóvevő egység, például fax készülék.
A 61 videó eszköz egy 65 videó kodekhez csatlakozik. A 65 videó kodek a találmány alapján implementált videó kódolót és annak megfelelő videó deködolöt tartalmaz. Ilyen kódoló és dekódoló működését Ismertetjük a továbbiakban A 65 videó kodek feladata az összegyűjtött videó adatok megfelelő formátumra történő kódolása egy kommunikációs összeköttetésen történő későbbi továbbítás céljából, valamint a kommunikációs hálózaton keresztül érkező, tömörített videó tartalom dekódolása. A 8. ábrán látható példában a 65 videó kodek az ITU-T H.263 ajánlás szerint van implementálva és megfelelő módosításokat tartalmaz a 85 videó kodek kódolójában és dekódolójában a találmány szerinti szubpixel interpoláció implementálása céljából.
Az előzőekhez hasonlóan a végberendezés 62 audio eszköze egy 66 audio körtekhez kapcsolódik. Akárcsak a 85 videó körtek, a 68 audio körtek Is tartalmaz egy kórtOló/rtekőrtoló párt. A 66 audio körtek a végberendezés 62 audio eszköze által összegyűjtött audio adatokat a kommunikációs összeköttetésen történő továbbításra alkalmas formátumra alakítja át, illetve a hálózaton keresztül érkező, kódolt audio adatokat visszaalakítja olyan formátumra, amely alkalmas a reprodukálásra, például a végberendezés hangszóróján történő megszólaltatásra. A 66 audio kodek kimeneté egy 6? késleltető egységhez továbbítódik. A 67 késleltető egység kompenzálja a videó kódolási folyamat során keletkező késleltetéseket és ily módon biztosítja az audio és a videó tartalom szinkronizáítságát.
A 60 multimédia terminál 64 rendszervezérlő egysége a végberendezés és a hálózat közötti jelzést vezérli megtelelö vezérlő protokoll segítségével, ezáltal közős üzemmódot valósít meg az adöoldali és a vevőoldali terminál között. A vezérlő protokollt 66 jelzési egység felügyeli. A 68 jelzési egység az adóoldal! és a vevőoldali terminál kódolási és dekődoiásl tulajdonságaira vonatkozó információkat közvetít és felhasználható arra, hogy a videó kódoló számára különböző kódolási módokat engedélyezzen. A 64 rendszervezérlő egység az adattitkositást is vezérli. Az adatátvitel során alkalmazott titkosítás módjára· vonatkozó információt egy 69 titkosító egységből a 70 multiplexerZdemuitiplexer számára továbbítjuk.
A multimédia végberendezésből történő adatküldés során a 70 muítipfexer/'demuitlplexer a kódolt és szinkronizált videó és audio adatfolyamokat egyesit! a 63 telematikai eszköztől érkező adatokkal és esetleg más vezérlő adatokkal, és azokból egyetlen bitfolyamot állít elő. A bitfolyamra alkalmazott adattitkosítás típusára vonatkozó információt (amennyiben az adatok titkosítva vannak), melyet.a 89 titkosító egység szolgáltat, a visszafejtési eljárás kiválasztására használjuk fel. Ennek megfelelően, amikor egy multiplexeit és adott esetben titkosított multimédia bitfolyam érkezik a végberendezésbe, a 70 multlplexertdemultipíexer felel a bitfolyam visszafejA.
léséért, annak multimédia komponensekre történő szétválasztásáért· és ezeknek a komponenseknek a megfelelő kodekekhez és/vagy eszközökhöz dekódolás és reprodukálás céljából történő továbbításáért.
Szükségesnek tartjuk megjegyezni, hogy a multimédia végberendezés találmány szerinti funkcionális elemei, továbbá a találmány szerinti videó kódoló, videó dekódoló és videó kodek megvalósítható szoftverként, dedikált hardverként vagy a kettő kombinációjaként. A találmány szerinti videó kódolási és dekődolási eljárások különösen alkalmasak olyan számítógépi program formájában történő implementálásra, amely számítógépi program a találmány szerinti funkcionális lépések végrehajtására vonatkozó, számítógép által olvasható utasításokat tartalmaz. Mint ilyen, a találmány szerinti kódoló és dekódoló implementálható olyan számítógépi programkódként, amely egy adattároló közegen van eltárolva és amely számítógéppel, például személyi számítógéppel hajtható végre, ezáltal az említett számítógép képes a videó adatok kódolására és/vagy dekódolására.
Ha a 60 multimédia végberendezés egy mobil terminál, vagyis ha a 60 multimédia végberendezés 73 rádió-adóvevővel van ellátva, nyilvánvaló a szakmában jártas szakemberek számára, hogy további részegységeket is tartalmazhat. Az egyik tehetséges kiviteli alak érteimében a 60 multimédia vég-berendezés kijelzővel és billentyűzettel ellátott felhasználói interfészt tartalmaz, ami tehetővé teszi a 60 multimédia végberendezés felhasználó által történő működtetését. A 60 multimédia végberendezés további szükséges funkcionális részegységeket Is tartalmaz, ilyen funkcionális részegység például a 60 multimédia végberendezés különböző funkciójú részegységeit vezérlő központi vezérlőegység, például mikroprocesszor, egy véletlen hozzáférésű memória (RAM), egy csak olvasható memória (ROM) vagy egy digitális kamera. A mikroprocesszor műveleti utasításait, vagyis a Sö multimédia végberendezés alapfeladatainak megfelelő programkód a csak olvasható memóriában- van eltárolva és szükség esetén végrehajtható a mikroprocesszorral, például a felhasználó irányításával. A programkóddal összhangban a mikroprocesszor a 73 rádlő-adövevöt használja fel arra, hogy összeköttetést létesítsen egy mobil kommunikációs hálózattal, ezáltal lehetővé teszi, hogy a 60 multimédia végberendezés fádiőbuiíároű összeköttetésen keresztül továbbítson információt a mobil kommunikációs hálózatnak, illetve fogadjon információt a mobil kommunikációs hálőzatböi.
*♦*«
A mikroprocesszor figyeli a felhasználói interfész állapotát és vozerh a digitális kamerát. Egy felhasználói utasítás hatására a mikroprocesszor arra utasíthatja a kamerát, hogy digitális képeket rögzítsen a RAM memóriában. A kép rögzítését követően vagy adott esetben annak rögzítése közben a mikroprocesszor a képet képszegmensekre, például makroblokkokra darabolja fel és a kódolót használja fei a képszegmensek mozgás-kompenzációs kódolására, ily módon a korábban ismertetett tömörített képsorozatot állítja elő. A felhasználó arra Is utasíthatja a 60 multimédia végberendezést, hogy jelenítse meg: a kijelzőjén a korábban rögzített képeket, vagy a tömörített képsort a 73 rádió-adóvevő segítségével továbbítsa egy másik multimédia végberendezésnek, egy vezetékes hálózathoz (például a PSTN hálózathoz) csatlakozó videotelefonnak vagy valamilyen más telekommunikációs eszköznek. A találmány egyik célszerű változatánál a képi adatok továbbítása azonnal megkezdődik, amint az első szegmens kódolva lett, igy a vevő oldal minimális késleltetéssel indíthat el egy megfelelő dekódoló folyamatot.
A 11. ábrán a találmány egyik lehetséges kiviteli alakjának megfelelő mobil távközlési hálózat blokkvázlata látható. Az MS multimédia terminálok rádióhullámú összeköttetésen keresztül állnak kapcsolatban 8TS bázisállomásokkal. A BTS bázisállomások un. Abis interfészen keresztül csatlakoznak egv BSC bázísállomásvezériőhöz, amely a STB bázisállomásokat vezérli és felügyeli
A számos BTS bázisállomás — tipikusan néhányszor tíz bázisállomás - és a bázisállomásokat vezérlő egyetlen BSC bázisállomás-vezérlő által alkotott entitást BSS bázisállomás-alrendszernek nevezzük. A BSC bázísállomás-vezériö a rádióhullámú kommunikációs csatornákat és hívásátadásokat felügyeli. A BSC házisáiíomásvezérlő egy ún. A-interfészen keresztül egy mobil szolgáltatásokat kapcsoló MSC központtal is összeköttetésben áll, amely a mobil állomásokkal létesítendő kapcsolatok létrehozását koordinálja. A BSC bázlsáilomás-vezédö egy mobil szolgáltatást kapcsoló MSC központon keresztül a mobil kommunikációs hálózaton kívüli világgal Is kapcsolatban áll. A mobil kommunikációs hálózaton kívül lehetnek más hálózatok is, melyek a mobil kommunikációs hálózathoz GTW átjáróval csatlakoznak, ilyen kommunikációs hálózat például az Internet vagy egy nyilvános kapcsolt telefonhálózat (PSTN). Egy ilyen külső hálózatban vagy a telekommunikációs hálózaton beiül elhelyezkedhetnek videó dekódoló vagy kódoló állomások, például személyi számitógépek. A találmány egyik lehetséges kiviteli alakjánál a mobil távközlési hálózat VSRVR videó szervert tartalmaz, ami az ilyen szolgáltatásra előfizető MS mobilállomás számára videó adatokat szolgáltat A videó adatok a korábban említett mozgáskompenzációs videó tömörítési eljárással vannak tömörítve. A videó szerver átjáróként (gateway) szolgálhat egy online videó adatforráshoz, vagy tartalmazhat korábban rögzített videó anyagokat Egy tipikus videotelefon alkalmazás tartalmazhat például két mobilállomást vagy egy MS mobilállomást és egy, a PSTN hálózathoz csatlakozó videotelefont, egy az Internethez csatlakozó személyi számítógépet vagy egy, az Internethez vagy a PSTM hálózathoz csatlakozó, H.281 kompatibilis terminált.
A 7. ábra a találmány szerinti 700 videó kódoló egyik lehetséges kivitek alakját, mig a 8. ábra a találmány szerinti 800 videó dekódoló egyik lehetséges kiviteli alakját szemlélteti.
A 700 videó kódolónak egy kamerától vagy más, az ábrán nem látható videó adatforrástól videojelet fogadó 701 bemenete van. A 700 videó kódoló tartalmaz továbbá 705 DCT átalakítót, 708 kvantálót, 709 inverz kvantálót, 710 inverz DCT átalakítót, 712 és 718 összeadót. előkészített szubpixel interpolációs 730 egységet, 740 kerettárolót és egy igényléses szubpixel interpolációs 750 egységet, amely kombinálva van egy mozgásbecslo 760 egységgel. A 700 videó kódoló tartalmaz továbbá mozgásmező-ködoló 770 egységet és egy mozgás-kompenzációs predlkciós 780 egységet. A 700 videó kódolónak az INTRA üzemmód és INTER -üzemmód közötti átkapcsolását 720 vezédéskezelő éttel egyszerre működtetett 702 és 714 kapcsolok végzik. A 700 videó kódoló tartalmaz még 790 multiplexer egységet is a 700 videó kódoló által előállított különböző típusú információkból egyetlen bitfolyam előállítására és a bitfolyam egy távoli terminálhoz történő továbbítására vagy tömegtároló közegen, például egy, a rajzon nem látható számítógépi merevlemezen történő eltárolására.
Szükségesnek tartjuk megjegyezni, hogy az előkészített szubpixel interpolációs 730 egységnek és az igényléses szubpixel interpolációs 750 egységnek a kódoló architektúrájában való jelenléte és implementálási módja attól függ, hogy a találmány szerinti szubpixel interpolációs eljárások közöl melyiket alkalmazzuk. A .találmány azon kiviteli alakjainál, ahol nem végzünk előkészített szubpixel interpolációt, a 700 videó kódoló értelemszerűen, nem tartalmaz ilyen interpoláció 730 egységet. A talál44 rnány más kiviteli alakjainál esek előkészíteti szubpixel interpolációt hajtunk végre, így a kódoló nem tartalmaz igénylése® szubpixel interpolációs 750 egységet. Azoknál a kiviteli alakoknál, ahol egyaránt végzünk előkészített és igényléséé szubpixel interpolációt, mind a 730, mind a 750 egység jelen van a 700 videó kódolóban.
A továbbiakban a találmány szerinti 7ÖÖ videó kódoló működését ismertetjük részletesen. A továbbiakban feltételezzük,, hogy a videó adatforrástól a 701 bemenetén érkező minden egyes tömörítetlen videó keretet makroblokkonkénti alapon fogadjuk és dolgozzuk fel, célszerűen a raszteres letapogatás sorrendjében. Feltételezzük továbbá, hogy amikor egy új videó képsor kódolása megkezdődik, a képsor első keretét INTRA-keretként kódoljuk. A 700 videó kódoló ügy van programozva, hogy ezt követően minden egyes további keretet INTER·keretként kódoljon, hacsak nem teljesül az alábbi feltételek közül az egyik: 1) ügy Ítéljük meg, hogy az aktuális, éppen kódolás alatt álló keret annyira eltér a predikcíójához használt referenciakerettől,, hogy túl nagy méretű predikclós bibainförmáció keletkezik; 2} az INTRA-keretek egy előre meghatározott ismétlődési időköze letelt; vagy 3) visszajelzés érkezik egy vevőoldali végberendezéstől, ami olyan kérést tartalmaz, hogy egy adott keret INTRA formátumban legyen kódolva.
Az 1) feltétel teljesülését a 716 összeadó kimenetének figyelésével észleljük. A 716 összeadó az éppen kódolás alatt álló keret pillanatnyi makroblokkja és a mozgás-kompenzációs predlkciós 780 egységben előállított becslések közötti különbséget képezi. Ha az eltérés mértéke, például a plxeiértékek abszolút eltéréseinek őszszege meghalad egy előre meghatározott küszöbértéket, a 716 összeadó 717 vezérfővonalon keresztül tájékoztatja a 720 vezérléskezelőt, és a 720 vezérléskezelő· úgy működteti a 702 és 714 kapcsolókat, hogy azok a 70ö videó kódolót 1NTRA kódolási üzemmódba kapcsolják át. A 2) teltétel teljesülését egy, a 720 vezérléskezelőben implementált időzítő vagy keretszámláié segítségével figyeljük oly módon, hogy ha az időzítés lejárt vagy ha a keretszámláló elért egy előre meghatározott keretszámot, a 720 vezérléskezelő úgy működteti a 702 és 714 kapcsolókat, hogy azok a 70Ö videó kódolót INTRA kódolási üzemmódba kapcsolják át. A 3) féltételt akkor észleljük, ha a 720 vezértéskezelő egy 716 vezérlővonalon keresztül olyan visszacsatolt jelet kap például egy vevőoldali végberendezéstől, hogy a vevőoldali végberendezés számára egy INTRA keretet frissíteni kell. Ez a feltétel akkor teljesülhet, ha például * ψ egy előzőleg, továbbított .keret a továbbítása során megsérül és helyreállítása lehetetlenné válik a vevőoldalon történő dekódolás .céljából. Ilyen esetben a vevőoldali végberendezés elküld bet egy olyan kérést hogy a következő keret ÍNTRA formátumban legyen kódolva, ezáltal újraindítja a kódolási szekvenciát
A továbbiakban feltételezzük, hogy a kódoló és a dekódoló úgy van implementálva, hogy lehetővé teszik a mozgásvektorok meghatározását akár X pixel mértékű térbeli felbontással is. Amint a későbbiekben látni fogjak, ennél nagyobb felbontásra is van lehetőség.
A továbbiakban az INTRA kódolási üzemmódban működő 700 videó kódoló működését Ismertetjük. Az INTRA üzemmódban a 720 vezédéskezeiő úgy működteti a 702 kapcsolót, hogy 719 bemeneti vonalon keresztül videó bemenetel fogadjon. A videó bemenetel makrobiokkról makrobíokkra fogadjuk a 719 bemeneti vezetéken keresztül a 701 bemeneten, ás az eredeti képpontokból álló minden egyes makrobíokkot DCT együtthatókká transzformálunk a 705 DCT átalakító segítségével. A DCT együtthatókat ezután a 706 kvantáfóhoz továbbítjuk, ahol egy QP kvantálási paraméter felhasználásával kvantáljuk azokat A QP kvantálási paraméter értékét a
72.2 vezérlési vonalon keresztül a 720 vezérléskezelöhöl küldjük el. A keret INTRA kódolású 723 képi információját alkotó DCT transzformált és kvantáít makroblókkokat a 706 kvanfálóból a 790 multtpiexertdemulüplexer egységhez továbbítjuk. A 790 múltlplexertdemulflplexer egység egyesíti az INTRA kódolású képi információt az esetleges vezérlő információval, például fejrész adatokkal, kvantálási paraméter ínformádóval, hibajavító adatokkal, stb., és azokból egyetlen bitfolyamot állít elő. A tömörített videó bitfolyam redundanciájának csökkentésére a szakmában jártas szakemberek számára jól ismert, változó hosszúságú kódolást (VtC) használjuk.
A 700 videó kódolóban lokálisan dekódolt képet állítunk elő úgy, hogy az atiatkimenetet a 706 kvantálóböl a 709 inverz kvantálón keresztül továbbítjuk és az Inverz kvantálása adatokon 7íö inverz DCT transzformációt hajtunk végre. Az így kapott adatokat ezután a 712 összeadóba vezetjük. INTRA üzemmódban a 714 kapcsoló úgy van beállítva, hogy a 714 kapcsolón keresztül a 712 összeadóba jutó bemenet nullára legyen állítva, ily módon a 712 összeadó által v^rehajtoft művelet eredménye az, hogy a 709 inverz kvantálő és a 7T0 inverz DCT transzformáció álfai előállított, dekódolt képi adatokat változatlan módon továbbítjuk.
- 46 A találmány egyik lehetséges kiviteli alakjánál, ahol előkészített szubpixei interpolációt végzünk, a 712 összeadó kimenetét az előkészített szubpixei interpolációi végző 730 egységhez továbbítjuk. Az előkészített szubpixei Interpolációs 730 blokk dekódolt képi blokkokat fogad. Az előkészíteti szubpixei interpolációs 730 egységben minden egyes dekódolt makroblokkra szubpíxeies Interpolációt alkalmazunk oly módon, hogy a szubpixei értékek egy előre meghatározott részhalmazát kiszámítjuk a találmány szerinti Interpolációs eljárással és azokat a dekódolt pixelértékekkel együtt eltároljuk a 740 kereftárolóban.
Azoknál a kiviteli alakoknál ahol nem végzünk előkészített szubpixei Interpolációt, az előkészített szubpixei interpolációs 730 egységet nem tartalmazza a kódoló architektúrája és a 712 összeadó dekódolt képi blokkokat tartalmazó kimenetét közvetlenül a 740 kerettárolóba továbbítjuk.
Ahogy az aktuális keret egymást követő makróbiokkjaít fogadjuk és azokon végrehajtjuk a 705, 706, 709, 710 és 712 egységekben végzett kódolást és dekódolást, az INTRA. keret egy dekódolt változatát állítjuk elő a 740 kerettárolóban.. Amikor az aktuális keret utolsó makroblokkját is kódoltuk INTRA. formátumban, majd azt követően dekódoltuk, a 740 kerettárotö egy teljesen dekódolt keretet tartalmaz, amely alkalmas predikciós referencia-keretként történő felhasználásra egy később beérkező, 1NTER formátumú videó keret kódolásakor. A találmánynak azon kiviteli alakjainál, ahol előkészített szubpixei interpolációt -végzünk, a 740 kerettárolóban tárolt referencíakeretet legalább részben szubpixei felbontásúra interpoláljuk,
A továbbiakban az 1NTER kódolási üzemmódban működő 700 videó kódoló működését ismertetjük. Az 1NTER kódolási üzemmódban a 720 vezérléskezelő úgy működteti a 702 kapcsolót, hogy az. a bemenetét a 721 vezetéken fogadja, amelyen a 716 összeadó kímeneie továbbítódik. A. 716 összeadó olyan predikciós híbainformádót képez, amely az éppen kódolás alatt álló keret pillanatnyi makrobíokkja és annak a mozgás-kompenzációs predikciós 780 egységben előállított becslése közötti különbséget reprezentálja. A predikciós hihaínformádőt a 705 egységben DCT transzformáljuk és a 706 egységben kvantáljuk, igy a DCT transzformált és kvanták predikciós híbainíormációbóí egy makrohiokkot állítunk elő. A DCT transzformált és kvanfáit predikciós hibainformáció makroblokkjaif a 706 kvantálöbói a 790 multípiexer/demulilplexer egységbe továbbítjuk.. A 790 mulfiplexer/demulfiplexer egység
Α'Φ Χχ ΧΑ φ * « ? ΐ Φ * *·* φ X > Φ Φ »* Φ egyesíti a később bemutatásra kerülő 724 mozgás-együtthatókkal ellátott 723 predikclós hihainformáelőt és a vezérlési információt például fejrész adatokat kvantálási paraméter információt, hibajavító adatokat, stb.. és a kódolt képi információból egyetlen 725 bitfolyaméi állít elő.
Ezt követően a 700 videó kódolóban az INTER kódolású keret egyes makroblokkjaihoz tartozó, lokálisan dekódolt predikcíős hibaínformációt úgy állítjuk elő, hogy a 706 kvantáió által kibocsátott, kódolt 723 predikclós hibaínformációt a 709 inverz kvantálón keresztül a 710 egységnek továbbítjuk, amelyben inverz DCT transzformációt végzünk azon. A predikclós hibainformáció igy kapott, lokálisan dekódolt makroblokkját továbbítjuk a 712 ősszeadönak Is. INTEK üzemmódban a 714 kapcsolót ógy állítjuk be, hogy a 712 összeadó az aktuális INTER keretnek a mozgás-kompenzációs predikclós 730 egységben előállított mozgáspreáikcíós makroblokkjait is fogadja. A 712 összeadó kombinálja e két információt és az aktuális INTER keret számára rekonstruált képbiokkokat állít elő.
Amint korábban az INTRA kódolású keretek kapcsán Ismertettük, a találmány azon kiviteli alakjainál, ahol előkészített szubplxel interpolációt hajtunk végre, a 712 összeadó kimenetét az előkészített szuhpsxel interpolációs 730 egységhez továbbítjuk. így az INTER kódolási üzemmódban az előkészített szubplxel interpolációs 730 egység bemenetét szintén dekódolt képblokkok alkotják. Az előkészített szubpixel interpolációs 730 egységben minden egyes dekódolt makroblokkon szubplxel Interpolációt hajtunk végre oly módon, hogy a szubpixel értékek egy előre meghatározott részhalmazát kiszámítjuk a találmány szerinti interpolációs eljárással és azokat a dekódolt pixelértékekkel együtt eltároljuk a '740 kerettárolőban. Az olyan kiviteli alakoknál, ahol nem végzünk előkészített szubpixel interpolációt, a kódoló nem tartalmaz előkészített szubpixel interpolációs 730 egységet és a 712 összeadó klmenete, amely dekódolt képblokkokat tartalmaz, közvetlenül a 740 kereftárolőba kerül.
Ahogy a videojel soron kővetkező makrohlokkjai a videó adatforrástól megérkeznek és azokon a 705, 706, 709, 710 és 712 egységek segítségével végrehajtjuk a korábban említett kódolási és dekódolás! lépéseket, a 740 kerettárolóban az INTER kódolású keret dekódolt változata jön létre. Amikor a keret utolsó makrohtokkja is. kódolva lett INTER formátumra, majd azt követően dekódolva lett, a 740 kerettaroló egy teljesen dekódolt keretet tartalmaz, amely alkalmas predikcíős referenciakeret48 **»♦ «-* ként történő felhasználásra egy később beérkező·, INTEK formátumú vldeckeret kódolásakor.. Azoknál a kiviteli alakoknál, ahol előkészített szubpixel Interpolációt végzünk, a 740 kerettárolóban eltárolt referendakeret legalább részben szubpixel felbontásúra van interpolálva.
A továbbiakban egy, az aktuális keret részét képező makrobiokk predíkeiós változatának előállítását ismertetők..
Minden. INTEK formátumban kódolt kerethez szükség van egy referenciákéretre a. mozgás-kompenzációs predlkcíóhoz. Ez többek között azt jelenti, bogy egy videó képsor kódolásakor az első kódolandó keretet - függetlenül attól, hogy az a képsor első kerete-e vagy valamilyen más keret - INTRA formátumban kell kódolni. Ez viszont azt jelenti, hogy amikor a 7ÖŐ videó kódolót a 720 vezérléskezelő INTEK kódolású üzemmódba kapcsolja át, egy korábban kódolt keret lokális dekódolásával előállított teljes referenciakeret már rendelkezésre áll a kódoló 740 kerettárolójában. A refereneíakeretet általában egy INTRA kódolású keret vagy egy INTEK kódolású keret lokális dekódolásával állítjuk elő.
Az aktuális keret egv makroblokkja predlkcíós változatának előállításakor az első lépést a mezgásbecslő 760 egység hajtja végre. A mozgásbecslő 780 egység 727 vezetéken fogadja az éppen kódolás alatt álló keret aktuális makroblokkjáí és blokkillesztési műveletet hajt végre annak érdekében, hogy azonosítsa a referenciakeretnek azt a területét, amely lényegében megfelel az aktuális makrobíokknak. A találmány érteimében a blokkilesztésl folyamatot szubpixel felbontással végezzük úgy, hogy az a 700 videó kódoló implementációjától és az előkészített szubpixel interpoláció végrehajtásának eddigi mértékétől függ. A blokkiliesztési eljárás mögött húzódó alapelv azonban hasonló az összes korábbi esetben alkalmazott elvhez. Ez azt jelenti, hogy a mozgáshecsíö 760 egység különbségértékek, például abszolút különbségek összegének kiszámításával végzi a blokkillesztést, ahol a különbségi értekek a vizsgálat alatt álló aktuális keret makroblokkja és a referencíakeretben lévő píxetek/szubpixelek várhatóan legjobban Illeszkedő területei közötti píxeleltérések különbségét reprezentálják. Az aktuális keret makroblokkja és a referenciakeret egy előre meghatározott keresési területén belüli keresett tesztterüiet közötti összes lehetséges eltoláshoz, például % vagy 1/8 szuhplxeles felbontású (x, y) eltolásokhoz meghatározunk egy különbségi értéket és a mozgásbecsiö 780 egységgel
... 4<
ressök a kiszámított különbségi értékek közöl a legkisebbet. Az aktuális keretben lévő makroblokk és a referenciakeretben lévő pixelekből, illetve szubplxelekbői álló tesztterület közötti, legkisebb különbségi értéket eredményező eltolás határozza meg a kérdéses makroblokkhoz tartozó mozgásvektort. Egyes kiviteli alakoknál először egy egész pixel felbontással rendelkező mozgásvektorhoz meghatározunk egy kezdeti becslést és ezután a korábban ismertetett módon finomítjuk azt szubpixel felbontású szintekre.
A kódolónak azon kiviteli alakjainál, ahol nem végzünk előkészített szubpixel Interpolációt, a hlokkiíiesztési eljárás során szükséges összes szubpixel értéket az igényléses szubpixel interpolációs 750 egység segítségévei számítjuk ki A mozgásbecsiő 760 egység arra utasítja az igényléses szubpixel interpolációs 75Ö egységet, hogy Igény szerinti alapon számítsa ki a bíokkitlesztési eljárás során szükségessé váló szubpixel értékeket. Ebben az esetben a mozgásbeoslő 760 egység úgy implementálható, hogy a blokkillesztést egy lépésben hajtsa végre, amikor is a kívánt mértékű szubpixel felbontással rendelkező mozgásvektort közvetlenül keressük. A mozgásbecslő 760 egység azonban Implementálható úgy is, hogy a blokkiiíeszíést két lépésben hajtsa végre. A kétlépéses eljárás alkalmazásakor az első lépés lehet egy keresés, például egy egész vagy fél-pixel felbontású mozgásvektor keresése, míg a második lépésben a mozgásvektort a kívánt mértékű szubpixel felbontásra finomítjuk. Mivel a blokkillesztés egy minden lehetőséget kimerítő folyamat amikor is az aktuális keretben lévő nxm pixeles blokkot egyenként összehasonlítjuk az interpolált referenciakeretben lévő összes nxm pixeles vagy szubpixeles biokkal, nyilvánvaló, hogy az Igényléses interpoláció esetén az igényléses szubpixel interpolációs 750 htokkal a pixel, illetve szubplxel értékeket többször ki kell számítani az egymást kővető különbségi értékek meghatározásához. Egy videó kódolóban ez a megközelítés nem a leghatékonyabb megoldás a számítási komplexitás/terhelés szempontjából.
A kódolónak azon kiviteli alakjainál, amelyek csak előkészített szubplxel Interpolációt használunk, a blokkillesztés végrehajtható egyetlen lépésben, mivel a kívánt szubpixel felbontással rendelkező mozgásvektor meghatározásához szükséges referenciakeret összes szubplxel értékét előkészített interpolációval a 730 egységben számítjuk ki és a 740 kerettárolóban tároljuk el. Így azok közvetlenül rendelkezésre állnak a blbkkiílesztési folyamatban történő felhasználáskor és szükség esetén a φ* »«♦», « κ· Λ ·» ♦ * « X * *♦ « « * * * » *
4τ«-φ X' Χ &φφ χΦ mozgásbecslő 760 egység révén kiolvashatok a 740 kerettárolóból. Amennyiben az •összes szübpixel érték rendelkezésre all a 740 keretlároléhan, számítási szempontból még akkor is sokka! hatékonyabb a blokkiftesztési folyamatot kétlépéses folyamatként végrehajtani, mivel kevesebb különbségszámlfást igényei. Nyilvánvaló, hogy bár a teljes, előkészített szübpixel interpoláció lecsökkenti a számítási komplexitást a kódolóban, mégsem a leghatékonyabb megoldás a roemónafelhasznáíás szempontjából.
A kódolónak azon kiviteli alakjainál, ahol egyaránt alkalmazunk előkészített és igényléséé szübpixel interpolációt, a mozgásbecslő 760 egység úgy van implementálva, hogy le tudja hívni az előkészített szübpixel interpolációs 730 egységben korábban kiszámított és a 740 kerettárolóban eltárolt szübpixel értékeket, és úgy tudja vezérelni az igényléses szübpixel interpolációs 750 egységet, hogy az bármilyen további, esetleg szükségessé váló szübpixel értéket kiszámítson. A blokklllesztési folyamat megvalósítható egylépéses vagy kétlépéses folyamatként. Ha a kétlépéses folyamatként valósítjuk meg, akkor a 740 keretté rolóból lehívott, előkészített módon kiszámított szübpixel értékek használhatók a folyamat első lépésében, míg a második lépés implementálható úgy, hogy az igényléses szübpixel interpolációs 75Ö egység által kiszámított szübpixel értékeket használjuk fel. Ebben az esetben a hlokkiíleszlési folyamat második lépésében felhasznált bizonyos szübpixel értékeket esetleg többször Is ki kell számítani ahhoz, hogy az összehasonlítások megfelelő eredményt adjanak, azonban az ilyen kétszeres számítások száma lényegesen kisebb, mint ha az előkészített szübpixel számítást nem végeznénk el, Ezenkívül a meménafelhasznáiás is kisebb azoknál a kiviteli alakoknál, ahol csak előkészített szübpixel interpolációt használunk.
Miután a mozgásbecslő 760 egység előállított egy mozgásvektorf a vizsgált aktuális keret makrobíokkjához, a mozgásmező-kődoló 770 egységnek továbbítja a mozgásvektort Ezt követően a mozgásmezö-kódoló 770 egység egy mozgásmodell felhasználásával becslést ad a mozgásbecslő 780 egységtől érkező mozgásvektorra. A mozgásmodell általában bázisfüggvények halmazából áll. A mozgásmező-kódolő 770 egység a mozgásvektort együttható értékek (un. mozgás-együtthatók) halmazával reprezentálja, melyek a bázisfüggvényekkel történő összeszorzáskor a mozgásvektor egyfajta becslését eredményezik. A 724 mozgás-együtthatókat a mozgásmező-kódölö /70 egységből a mozgás-kompenzációs rclós 780 egységnek továbbítjuk. A mozgás-kompenzációs predikciós 780 egység a mozgásbecslő 760 egység által azonosított referenciakeret teszfterületei közül a legjobban Illeszkedő terület pixel/szubpixel értékeit is fogadja. Amint a 7. ábrán látható, ezeket az értékeket 729 vezetéken keresztül továbbítjuk az igényléses szubplxel interpolációs 750 egységből, A találmány egyes kiviteli alakjainál· a kérdéses pixel értékeket maga a mozgásbecslö 760 egység szolgáltatja.
A mozgásvektornak a mozgásmező-kódoló 770 egység által előállított közelítő reprezentációjának, valamint a legjobban illeszkedő tesztterüiet pixei/szubpixei értékeiből a mozgás-kompenzációs predikciós 780 egység előállít egy becsült pixel értékekből álló makroblokkot. A becsült pixel értékekből álló makroblokk az interpolált referenciakeret által előáliitott aktuális makroblokk pixelértékeinek egy becslését reprezentálja. A becsült pixel értékekből álló makroblokkot ezután a 716 összeadőhoz továbbítjuk, ahol kivonjuk azt az áj aktuális .keretből és ezáltal a makróblokkhoz a korábban Ismertetett módon 723 predikciós hibainformációt állítunk elő.
A mozgásmező-kódoló 770 egység által előállított 724 mozgás-együtthatókat a 790 multiplexer/deniuitiplexer egységnek is továbbítjuk, amely a 724 mozgásegyütthatókat egyesíti a szóban forgó makrobiokfchoz tartozó 723 predikciós hibáinformáciőval és a 720 vezérléskezelőtöl származó esetleges vezérlési információval, és kódolt 726 videó adatfolyamot állít elő egy vevő oldali végberendezéshez történő továbbítás céljából.
A továbbiakban a találmány szerinti 800 videó dekódoló működését ismertetjük. Amint a 8. ábrán látható, a 800 dekódoló 810 demultlplexelő egységet tartalmaz, amely a 700 videó kódolótól érkező, kódolt 725 videó adatfolyamot fogadja és demultlpiexeli, továbbá 820 inverz kvanfálót, 830 inverz DCT átalakítót, mozgáskompenzációs predikciós 840 egységet, 850 kerettároiőt, 860 összeadót, 870 vezérléskezelöt, 880 kimenetét, előkészített szubplxel interpolációs 845 egységet és igényléses szubplxel interpolációs 890 egységet tartalmaz, ahol a 890 egység a mozgás-kompenzációs predikciós 840 egységhez tartozik. A gyakorlatban a 800 dekódoló 870 vezértéskezelője és a 700 videó kódoló 7.20 vezértéskezelője lehet ugyanaz a processzor is, mint például abban az esetben, amikor a 700 videó kódoló és a 800 dekódoló ugyanannak a videó körteknek a részét képezi.
φ< »««(<
Α 8. ábrán olyan kiviteli alak látható , amelynél az előkészített és az Igényíéses szuhpixei interpoláció kombinációját használjuk a dekődolóban. Más kiviteli alakoknál csak előkészített szuhpixei. interpolációt használunk, amikor ís a 800' dekódolóban nincs igényíéses szuhpixei interpolációs 390 egység. A találmány egyik célszerű kiviteli alakjánál nem használunk a dekódolóhan előkészített szubpixe! Interpolációt és ezért az előkészített szuhpixei interpolációs 845 egységet elhagyjuk a dekódoló architektúrájából. Ha előkészített és igényíéses szuhpixei interpolációt egyaránt végzünk, akkor a dekódoló tartalmazza mind a 845, mind a 890 egységet
A 870 vezédéskezeiö a 800 dekódoló működését az alapján vezérli, hogy INTRA vagy 1NTER keret dekódolása zajlik-e. A dekódoló különböző dekódolási Üzemmódjai közötti átkapcsolására olyan INTRAZINTER thgger jel szolgál, amelyet például a kódolóból érkeze, minden egyes tömörített videó keret fejrészében elhelyezkedő képtípas-intormációböi nyerünk ki. Az INTRA/INTER trlgger lelet 815 vezérlő vonalon keresztül a 870 vezérléskezeiöböz továbbítjuk más olyan videó kodek vezérlőjelekkel együtt, melyeket a 8íö muítípíexertdemuítlplexer egység a kódolt 725 videó adatfolyamból demuítípiexeléssel állított elő.
Egy INTRA-keret dekódolásakor a kódolt 725 videó adatfolyamot INTRA kódolású makrobfokkokra és vezérlési információra választjuk szét. A kódolt 725 videó adatfolyam az INTRA kódolású keret számára nem tartalmaz mozgásvektorokat. A dekódolás* folyamatot makrofeíokkról makroblokkra hajtjuk végre. Amikor egy adott makroblokkboz tartozó kódolt 723 információt kinyerünk a 81 ö maitiplexeböemuitipíexer egység segítségével a 725 videó adatfolyamból, az említett 723 információt a 820 inverz kvantálóhoz továbbítjuk, A vezérléskezelő úgy vezérli a 820 inverz kvanláiót hogy a kódolt Információból álló makrohlokkon megfelelő szintű inverz kvantálást hajtson végre a 725 videó adatfolyamban lévő vezérlési Információnak megfelelően. Az inverz módon kvantált makrohlokkon ezután a 830 inverz DCT átalakítóban inverz transzformációt hajtunk végre és képi információt tartalmazó dekódolt blokkot állítunk elő. A 870 vezérléskezelő úgy vezérli a 860 összeadőf, hogy megőrizzen minden olyan referencia Információi, melyet az INTRA kódolású makroblokk dekódolásakor használtunk. A képi Információt tartalmazó dekódolt blokkot a dekódoló 880 videó kimenetére továbbítjuk, »> * ** ¢ 4 ♦:»?*# « « 4t « « ¢, Α > « ♦ * ► χ 9 ♦ «*** »♦♦·♦ 44 Λ#*
A dekódolónak azon kiviteli alakjainál. ahol előkészített szubpixel interpolációt alkalmazunk, a képinformáción a 828 egységben és a 830 egységben végrehajtott inverz kvantálás, illetve inverz transzformáció eredményeként kapott dekódolt blokkot, vagyis píxeíértékeket az előkészített szubpixel interpolációs 845 egységnek továbbítjuk. A 845 egységben a találmány szerinti eljárásnak megfelelő szubpixel interpolációt végzünk, ahol az alkalmazott előkészített szubpixel interpoláció fókát a dekódoló implementálásának részletei határozzák meg. A találmánynak azon kiviteli alakjainál, ahol nem végzünk igényléses szubpixel interpolációt, az előkészített szubpixel interpolációs 845 egység Interpolálja az összes szubpixel értéket. Azoknál a kiviteli alakoknál, amelyek előkészített és igényléses szubpixel interpolációt is alkalmaznak, az előkészített szubpixel Interpolációs 845 egység a szubpixel értékek egy bizonyos részhalmazát interpolálja. Ez a részhalmaz tartalmazhatja például az összes fél-pixel felbontású helyen lévő szubplxeit vagy a fél-pixel és egynegyed-pixel felbontású helyeken lévő szubpixelek. kombinációját. Az előkészített szubpixel interpolációt követően mindkét előbbi esetben az Interpolált szubpixel értékeket eltároljuk a 850- kerettárolóban az eredeti dekódolt pixelértékekkel együtt. Ahogy a makfobtokkökat. sorban egymás után dekódoljuk, előkészített módon interpoláljuk és eltároljuk, a 850 kereitárolőban progresszív módon képződik egy dekódolt keret, amely legalább részben szubpixel felbontásúra van Interpolálva. Ez a keret a mezpás-kompenzációs predlkcíóhoz referenciakeretként áll rendelkezésre.
A dekódolónak azon kiviteli alakjainál, amelyeknél nem alkalmazunk előkészített szubpixel interpolációt, a 820 és 838 egységekben a makroblókkon végrehajtott Inverz kvantálás, illetve inverz transzformáció eredményeként előállított, képi információt tartalmazó dekódolt blokkot., vagyis pixel értékeket közvetlenöl a 850 kerettérolóba továbbítjuk. Ahogy a makroblökkokat egymás után dekódoljuk és eltároljuk, a 850 kerettárolófoan egy egész pixel felbontású, dekódolt keretet képződik progresszív módon, és ezt a keretet a mozgás-kompenzációs predlkcíóhoz referenciakeretként bocsátjuk rendelkezésre.
Amikor egy INTER-kereíet dekódolunk, a kódolt 725 videó adatfolyamot a keret egyes makrobiokklaíhoz tartozó, kódolt 723 predikcíós hibainformációra, ahhoz tartozó 724 mozgás-együtthatókra és vezérlési információra választjuk szét. A dekódolást ez esetben is makroblokkonként végezzük. Amikor a 810 mulíiplevS »» ΦΦ ΦΦ-*»
Φ * 4 φ χ » » φ φ»φ φ ♦ { * * Φ- * ί>*ίΦ Φ*φ* φςν 40C54 ·~ xer/dernuifiplexer egység segítségével a 725 videó adatfolyamból kinyerjük egy makroblokkhoz tartozó kódolt 723 predlkciós hibainformációt azt a 820 inverz kvantáloha továbbítjuk. A 870 vezérléskezelő úgy vezérli a 820 inverz kvantálót hogy a kódolt 723 predlkciós hibainformáció makroblokkíán a 725 videó adatfolyamban fogadott vezérlési információnak megfeleld szintű Inverz kvantálást hajtson végre. A 723 predlkciós hibainformáciő inverz kvantált makroblbkkján ezután a 830 Inverz DCT átalakítóban inverz transzformációt hajtunk végre, ami a makrobiokk dekódolt predlkciós hibaínfo-rmácíóját eredményezi.
A kérdéses makroblokkhoz tartozó 724 mozgás-együtthatókat a 810 multipíexer/demulliplexer egység segítségével vonjuk ki a 725 videó adatfolyamból, és azt a mozgás-kompenzációs predikciós 340 egységnek továbbítjuk, amely az INTEK kódolású makrobiokk 700 videó kódolóban történő kódolásához használt mozgásmodell felhasználásával egy mozgásvektort rekonstruál a makroblokkhoz. A rekonstruált mozgásvektor a kódoló 760 mozgásbecslő egysége által eredetileg meghatározott mozgásvektor egy közelítését adja. A dekódoló mozgás-kompenzációs predlkciós 80 egysége a rekonstruált mozgásvekiort arra használja fel, hogy meghatározza a pixelZszubpixel értékekből álló blokk helyét egy, a 850 kerettárolőban eltárolt predikciós refefeácíákeretben. A referenciakeret lehet például egy előzőleg dekódolt INTR.Akeret vagy egy előzőleg dekódolt INTEK-keret. A rekonstruált mozgásvektor által kijelölt pixelZszubpixel értékekből álló blokk mindkét esetben a vizsgált makrobiokk becslését reprezentálja.
A rekonstruált mozgásvektor bármelyik pixelre vagy szobpixelre rámutathat. Ha a mozgásvektor azt jelzi, hogy az aktuális makroblokkhoz tartozó becslést pixel értékek, vagyis egész pixel felbontású helyeken lévő pixelek értékei alkotják, akkor ezek a pixel értékek egyszerűen kiolvashatók a 850 kereliárolóböi, mivel a kérdéses értékeket az egyes keretek dekódolása során közvetlenül meghatároztuk. Ha a mozgásvektor azt jelzi, hogy a vizsgált makrobiokk becslése szubplxei értékekből áll, akkor ezeket az értékeket vagy kiolvassuk a 886 kerettárolóból, vagy kiszámítjuk azokat az igényléses szubplxei interpolációs 890 egységgel. Az, hogy a szubplxei értékeket ki kell-e számolni vagy egyszerűen kiolvashatók a 850 kerettárolőból, a dekodolóban végrehajtott előkészített szubpíxel interpoláció feldolgozottsági fokától függ.
« Φ 9« **** * * » * * » 4 9η ♦ * 4 ♦ * $· « »*$♦ φ*Φ« 4^ >*
A dekődolőnak azon kiviteli alakjainál, ahol nem alkalmazunk előkészített szubpixel Interpolációi, a szükséges szubpixel értékeket mind az igényiéses szubpixel interpolációs 890 egységben számítjuk ki, Másfelől, azoknál a kiviteli alakoknál, amelyeknél az összes szubpixel értéket előkészített módon interpoláltuk, a mozgás-kompenzációs predikciós 840 egységgel közvetlenül a 850 kereftárolöból olvashatjuk ki a szükséges szubpixel értékeket. Azoknál a kiviteli alakoknál, amelyek az előkészített és az igényiéses szubpixel interpoláció kombinációját alkalmazzák, a szükséges szubpixel értékek előteremtéséhez szükséges művelet, attól függ, hogy mely szubpixel értékek vannak előkészített módon interpolálva. Például annál a kiviteli alaknál, ahol a fél-pixel felbontású helyeken lévő összes szubpixel érték előkészített módon van kiszámítva, nyilvánvaló, hogy amennyiben egy makroblokkhoz tartozó rekonstruált mozgásvektor egységnyi helyen lévő pixelre vagy fél-pixel felbontású helyen lévő szubpixelre mutat, akkor a makroblokk becslésének előállításához szükséges összes- pixel érték vagy szubpixel érték megtalálható a 850 kerettárolőban és azok kiolvashatok onnan a mozgás-kompenzációs predikciós 840 blokk segítségével.. Ha viszont a mozgásvektor egynegyed-pixel felbontású helyen lévő szubpixelre mutat, akkor a makroblokkhoz tartozó becslés előállításához szükséges szubpixeiek nem állnak rendelkezésre a 850 kerettároíőban, és ezért azokat az igényiéses szubpixel interpolációs 890 egységben ki kell számítani. Ebben az esetben az igényléséé szubpixel interpolációs 890 egység a 850 kereftárolöból. kiolvas minden olyan pixelt és szubpixett, amely az interpoláció végrehajtásához szükséges és végrehajtja az alább bemutatásra kerülő interpolációs eljárást. Az igényléséé szubpixel Interpolációs 890 egységben kiszámított szubpixel értékeket a mozgás-kompenzációs predikciós 840 egységnek továbbítjuk.
Miután egy makroblokkhoz előállítottuk annak becslését, a becslést, vagyis a becsült pixel értékekből álló makroblokkof a mozgás-kompenzációs predikciós 840 egységből a 860 ősszeadóba továbbítjuk, amely egyesíti azt a makroblokkhoz tartozó dekódolt predikciós hibainformáclőval, és egy rekonstruált képblokkot állít elő, amit azután a dekódoló 880 videó kimenetére továbbit .
Nyilvánvaló, hogy a 700 videó kódoló és a 800 videó dekódoló gyakorlati megvalósításaiban a keretek előkészített szubpixel interpolációjának mértéke és ezáltal a végrehajtott igényiéses szubpixel interpolálás mértéke a 700 videó kódoló * * * V φ Ν <
* * * »· * Λ **'· * *·<♦*· \ ν ·
hardver-lmplemenfáclőjátöl vagy a felhasználni kívánt környezettől függően választható meg, illetve azok határozzák meg. Ha például a videó kódoló számára rendelkezésre álló memória korlátozott kapacitású vagy memóriát kell lefoglalni más funkciók száméra, célszerű korlátozni a végrehajtandó előkészített szubpixel interpoláció mértékét Magyarán, ahol a videó kódolást végző mikroprocesszor korlátozott feldolgozási kapacitással rendelkezik, például a másodpercenként végrehajtható műveletek száma viszonylag kicsi, sokkal célszerűbb korlátozni a végrehajtandó ígényléses szubpíxel interpolálás mértékét. Például egy mobil kommunikációs környezetben, ahol a videó kódolási és a videó dekódolást funkció egy mobiltelefonban vagy egy mobiltelefon-hálózattal kommunikáló, hasonló, vezeték nélküli terminálban van megvalósítva, mind a memériafelhasználás, mind pedig a feldolgozási teljesítmény korlátozható. Ebben az esetben a videó kódoló hatékony implementálásának eléréséhez a legjobb választásnak az előkészített és az Ígényléses szubpixel interpoláció együttes alkalmazása tűnik. A 800 videó deködoióban általában nem célszerű előkészített szubpixel értéket használni, mivel az tipikusan számos olyan szubpixel érték kiszámítását eredményezi, melyeket valójában nem használunk a dekódolás során. Nyilvánvaló azonban, hogy bár az előkészített és az ígényléses interpoláció különböző mértékben végezhető el a kódolóban, valamint a dekódoiőban azok működésének optimalizálása céljából, mind a kódoló, mind pedig a dekódoló implementálható úgy, hogy az előkészített és az Ígényléses szubpixel interpolációt azonos mértékben alkalmazzák.
Bár a leírásban eddig nem tettünk említést a két Irányban jósolt kereteknek (B-keretek) a 700 videó kódolóban történő és a 800 dekódoiőban történő elöállításáröl, azonban nyilvánvaló, hogy a találmánynak egyes kiviteli alakjai rendelkeznek ezzel a lehetőséggel Ennek a lehetőségnek a megvalósítására vélhetően képes a szakmában jártas szakember.
A találmány szerinti 700 videó kódoló vagy 800 dekódoló megvalósítható hardver vagy szoftver felhasználásával, vagy a kettő megfelelő kombinációjával Egy szoftveres ütőn implementált kódoló vagy dekódoló lehet például egy külön program vagy egy olyan program modul, amelyet különböző programok közösen használhatnak. A jelen leírásban és a rajzon a funkcionális egységeket külön egységekként áb* rázoítuk, azonban ezeknek az egységeknek a funkciói Implementálhatok például egyetlen számítógépéé program formájában is.
A 700 videó kódoló és a 800 videó dekódoló kombinálható is olyan videó kodek kialakítása céljából, amely kódolási és dekődolási funkcióval egyaránt rendelkezik. A multimédia végberendezésben történő implementáláson kívül az ilyen kodek implementálható hálózatban Is. A találmány szerinti kodek lehet számítógépi program vagy számítógépi programelem, illetve megvalósítható legalább részben hardver fetnasznarasaval.
A továbbiakban a 700- videó kódolóban és a 800 videó dekódoioban használt, találmány szerinti szubpixei interpolációs eljárást ismertetjük részletesen. Az eljárást először általános elvi szinten mutatjuk be, majd az eljárásnak két célszerű változatát ismertetjük. Az első célszerű változatnál a szubpixei interpolációt % pixel felbontás mellett végezzük, míg a második változatnál az eljárást kiterjesztjük 1/8 pixel felbontásra.
jegyezni, hogy az interpolációnak azonos értékeket kell eredményeznie a kódolóban és a dekótíoióhan, ugyanakkor az implementációnak külön-küiön is optimálisnak kell lennie a két entitás esetében. A találmány szerinti kódoló első kiviteli alakjánál, amelyben K pixel felbontású szubpixei interpolációt végzünk, a leghatékonyabb eljárás az., hogy % pixel felbontású pixel értékeket számolunk ki előkészített interpolációval, majd % pixel felbontású szubpixei értékeket számítunk ki igényléses interpolációval, de csak akkor, ha azokra szükség van a mozgásbecsléshez. Ez a memőriafeihasználás csökkenését eredményezi, miközben a számítási komplexitás, illetve a terhelés elfogadható szinten marad. A dekódolóban ugyanakkor előnyős nem előre kiszámítani a szubpixelek értékeit. Emiatt nyilvánvaló, hogy a dekódoló célszerű változata nem tartalmaz előkészített szubpixei interpolációs 845 egységet és az összes szubpixei interpolációt az Igényléses szubpixei interpolációs 890 egységben hajtjuk végre.
Az interpolációs eljárás most következő leírásában a pixelek helyeinek jelölését a 14a ábra szemlélteti. Ezen az ábrán az A jelű pixelek reprezentálják az eredeti pixeleket, vagyis az egységnyi horizontális és egységnyi vertikális helyeken lévő pixeleket. A más betűkkel jelölt helyek az interpolálandó szubpixelek helyeit jelölik. A * * X 4 4 # * 4 4 4
4*4 «*4 4 »> 4Χ
.... 58 uras további részében a pixelek és a szubpixelek helyeinek leírásához a .korábban evezetett fogalmakat használjuk.
A továbbiakban a. szubpixel helyek interpolálásához szükséges lépéseket ismertetjük.. Az X pixel felbontású b szubpixelek értékelt úgy számítjuk ki, hogy először egy K-ad fokú szűrő segítségével kiszámítunk egy b közbülső értéket az alábbi képlet alapján:
. Y·—',
S \ χ. A. Ζ·,*!*1!
(91 ahol xf a szűrőegyütthafókhol álló vektor, A az eredeti A pixel értékekből álló vektor, amely A pixelek egységnyi horizontális és egységnyi vertikális helyeken helyezkednek el, továbbá K olyan egész szám., amely a szűrő fokszámát adja meg. így a (9) egyenlet az alábbi módon fejhető ki:
á-x.Aj rV ,A. 4-x-A., ·;·.... +sr!Aw ·;· Χκ Ακ (10)
Az Xj szörőegyüííhatók: értékei és a K fokszám a kiviteti alaktól függően változó lehet. A különböző szubpixelek kiszámításához különböző együttható-értékek használhatók egy adott kiviteli alak esetén. Más kiviteli alakoknál az x; szüröegyütthatók értékei és a szűrő K tokszáma attól függhet, hogy az % pixel felbontású b szubpixelek közül melyek vannak interpolálva. Az A pixelek az interpolálás alatt álló % pixel felbontású b szub pixelhez képest szimmetrikusan vannak eltolva és így a legközelebbi szomszédjai az említett szobpíxelnek. A fél egységnyi horizontális és egységnyi vertikális helyen elhelyezkedő % pixel felbontású b szubpixei esetén az As pixelek vízszintes Irányban el vannak tolva a b szuhpíxelhez képest, ahogy ez a 14b ábrán látható. Ha egy egységnyi horizontális és fél egységnyi vertikális helyen lévő. ?A. pixel felbontású b szobpixelf interpolálunk, akkor az A, pixeleket a b szubpixelbez képest függőleges irányban toljuk el, ahogy ez a 14c ábrán látható.
Az % pixel felbontású b szubpixel végső értékét ügy számítjuk ki, hogy a ő közbülső értéket elosztjuk egy konstanssal, majd a hányadost ügy csonkoljuk, hogy egész számot kapjunk, végül az eredményt úgy vágjuk, begy az a 10, 2n-1'j tartományba essen. A találmány egyik lehetséges változatánál a csonkolás helyeit kerekítést végzünk. A konstanst célszerűen úgy választjuk meg, hogy egyenlő legyen az xf szüröegyütthatók összegével.
Az fe pixel felbontású c szubpixel értékét szintén ügy határozzuk meg, egy M-ed fokú szűrő segítségével kiszámítunk egy c közbülső értéket az alábbi képlet alapján:
ni) /«{ ahol y a szűrő együtthatókból álló vektor, h/ pedig a b,< közbülső értékekből álló vektor a vízszintes és a függőleges irányban, vagyis;
<'- y s ű, +· y, á, + y5 á, e.... -r y,,·fo,+ y(12)
Az y'; szüröegyütthatók értékei és a szűrő M fokszáma· kiviteli alakonként változó lehet. Ugyanazon kiviteli alak esetén a különböző szubplxelek kiszámításakor különböző együttható-értékek használhatok. A b értékek célszerűen azoknak az % pixel felbontású b szubpixeleknek a közbülső értékel, amelyek szimmetrikusan helyezkednek el az pixel felbontású c szobplxelekhez képest és a c szubpixel legközelebbi szomszédjai. A találmány egyik lehetséges változatánál az H felbontású b szufopixelek vízszintes irányban vannak eltolva a c szubpixelhez képest, míg egy másik lehetséges változatnál függőleges irányban vannak eltolva a c szubpixelhez
Az % felbontású c szubpixel végső értékét úgy számítjuk ki, hogy a c közbülső értéket elosztjuk egy scafe2 konstanssal, majd az eredményt úgy csonkoljuk, hogy egész számot kapjunk. Az igy kapott egész számot úgy vágjuk, hogy az a [0, 2!'~ii tartományba essen. A találmány egyik lehetséges változatánál a csonkolás helyett kerekítést végzünk. A sca;e2 konstans célszerűen egyenlő a sca/er*sca/e< szorzattal.
Szükségesnek tartjuk megjegyezni, hogy a b közbülső értékek vízszintes irányú felhasználása ugyanarra az eredményre vezet, mint azok függőleges irányú felhasználása,
Az % pixel felbontású h szubplxelek értékeinek interpolálására két lehetséges út van. Mindkét interpolációs eljárás lineáris interpolációt jelent egy olyan dlagonális Irány mentén, amely az % pixel felbontású h szuöpixellei szomszédos >> pixel felbontású szuhpixeieket köti össze. Az eljárás egyik lehetséges változatnál a h szubpixel értékét úgy számítjuk ki, hogy a h szubpixelhez legközelebbi két Ά felbontású fe szubplxei értékét átlagoljuk. Egy másik lehetséges változatnál a h szubpixel értékét úgy határozzuk meg, hogy a legközelebbi A pixel értékét és a legközelebbi % pixel felbontású c szubpixei értékét átlagoljuk. Nyilvánvaló, hogy ez tehetővé feszi a diegonálís interpolációk különböző kombinálását a négy A pixelt tartalmazó, különböző csoportokon belüli h szubplxelek értékelnek meghatározásához. Azt is fel kell azonban ismernünk, hogy ugyanazt a kombinációt kell használni mind a kódolóban,, mind a dekődoióban annak érdekében, hogy azonos interpolációs eredményeket kapjunk. A 15. ábra egy adott kép 4 pixelből álló, szomszédos pixelcsoportjaihoz tartozó h szubpíxelek diagonáíis interpolációjának 4 különböző módját szemlélteti. ATML környezetben végzett szimulációk igazolták, hogy a dlagonális interpoláció mindkét fent említett változata hasonló tömörítési hatékonyságot eredményez. A második változat nagyobb komplexitású, mivel a c szubpixei kiszámítása számos közbülső érték kiszámítását teszi szükségessé. így az első kivitelt alak tűnik célszerűnek.
Az 14 pixel felbontású d és g szubpíxelek értékeit a vízszintes irányban legközelebbi szomszédok értékeiből számítjuk ki lineáris Interpolációval. Magyarán, az % pixel felbontású d szubpixei értékét úgy határozzuk meg, hogy annak legközelebbi vízszintes szomszédjainak, vagyis az eredeti kép A pixelének és az 14 pixel felbontású b szu bpixei nek az értékét átlagoljuk. Hason ló módon az % pixel felbontású g szubpixei értékét úgy határozzuk meg, hogy a két legközelebbi vízszintes szomszéd, vagyis az 14 pixel felbontású b és c szubpixei értékének átlagát képezzük.
Az % pixel felbontású e, f és í szubplxelek értékelt szintén lineáris interpolációval, de a függőleges irányban legközelebbi szomszédaik értékeiből számítjuk ki. Ez azt jelenti, hogy az % pixel felbontású e szubpixei értékét úgy számítjuk ki, hogy a két legközelebbi függőleges irányú szomszédjának, vagyis az eredeti kép A pixelének és az 14 pixel felbontású b szubpixei értékének az átlagát képezzük. Hasonló módon az % pixel felbontású f szubpixei értékét úgy határozzuk meg, hogy a két legközelebbi függőleges Irányú szomszédjának, vagyis az 14 pixel felbontású b és c szubplxelek értékeinek átlagát képezzük. A találmány egyik lehetséges változatánál az >4 pixel felbontású í szubpixei értékét ugyanúgy határozzuk meg, ahogy azt az 14 pixel felbontású f szubpixei kapcsán ismertettük, A találmány egyik lehetséges változatánál azonban - akárcsak a korábban említett H.26 szabvány szerinti TML5 és TML6 tesztmodellek esetén - az % pixel felbontású i szubpixei értékét a négy legközelebbi eredeti képpont értékének felhasználásával határozzuk meg az alábbi módon: 1 ~ (A-i+As'^As^Aá'rtSj / 4.
«ΦΦΧ Φ*Χ
Szükségesnek tartjuk megjegyezni, hogy az összes olyan esetben, ahol pixe; és/vagy szubpixel értékek felhasználásával átlagot határozunk meg, az átlag tetszőleges, alkalmas módon képezhető, igy például az % pixel- felbontású d szubpixel érteke az alábbi két módon definiálható:
d ~ (A ·*· b) / 2 vagy d ~ (A + b + 1) / 2.
Az 1 értéknek az A pixel és az 14 pixel felbontású b szubpixel értékének őszszegéhez történő hozzáadása azt eredményezi, hogy a később alkalmazott kerekítés vagy -csonkolás esetén a d szubpixel értékét a legközelebbi legnagyobb-egész- számra kerekítjük, illetve csonkoljuk. Ez az egész -számok bármilyen összegére fennáll és a találmány szerinti eljárás alapján, végrehajtott bármilyen átlagolás! műveletre alkalmazható a kerekítési vagy csonkolási hatások szabályozására.
Szükségesnek tartjuk magjegyezni, hogy a találmány szerinti szubpixel interpolációs eljárás több előnnyel is jár a TMLS és a TML6 tesztmodeliekhez képest
A TML5 teszlmodeílel ellentétben, amelynél egyes %. pixel felbontású szubpíxei értékek más % pixel felbontású szubpixelek előzőleg interpolált értékeitől függnek, a találmány szerinti eljárásnál az összes % pixel felbontású szubpíxeít. az eredeti képpontokból vagy Y? pixel felbontású szubpixelekből számítjuk ki lineáris interpolációval. így a találmány szerinti eljárásnál nem csökken le azoknak az % pixel felbontású szubpixel értékeknek a pontossága, amelyeket a TML5 modellben olyan
1/ /4 pixel felbontású szubpixelekből számítanak ki. melyeket csonkolnak és amelyek értékét szükség esetén levágják. Ahogy a 14a ábrán iáiható, a-z % pixel felbontású h szubpixelek, valamint a találmány egyes kiviteli alakjainál az i szubpixel dlagonális irányban van interpolálva annak érdekében, hogy lecsökkentsék a más % pixel felbontású pixelektől való függőségét. Ezenkívül a találmány szerinti eljárásnál az % pixel felbontású szubpixelek értékeinek a dekődo-lőban történő meghatározásához szükséges számítások száma, és ezáltal a processzor műveleti ciklusainak száma szintén kisebb, mint a ΊΓΜ1.5 modellben. Ezenkívül bármely % pixel felbontású szubpixel érték kiszámítása ugyanannyi számítást igényel, amennyi nagyjából bármely más % pixel felbontású szubpixel érték meghatározásához szükséges. Ez azt jelenti, hogy abban az esetben, ha a szükséges 14 pixel felbontású szubpixel értékek már rendelkezésre állnak (mert például azokat már előkészített interpolációval ki* φ φ φ számítottuk), az lő pixel felbontású szubpixel értékeknek az előzőleg kiszámított :4 pixel felbontású szubpixel értékekből történő Interpolációjához szükséges számítások száma azonos azzal a számmai, amely bármely más % pixel felbontású szubpixel értéknek a rendelkezésre álló % pixel felbontású szubpixel értékekből történő kiszámításához szükséges.
A TML6 modellel ellentétben a találmány szerinti eljárás nem igényel nagy pontosságú aritmetikát az összes szubpixel kiszámításához. Mivel az összes % pixel felbontású szubpixel értékét az eredeti képpontokból vagy % pixel felbontású szubpixel értékekből számítjuk ki lineáris interpolációval, az interpoláció során kisebb pontosságú aritmetika használható. Következésképpen a találmány szerinti eljárás hardveres implementációiban például egy ASIC (Application Spécibe Integrated Circuit) áramkörben a kisebb pontosságú aritmetika alkalmazása lecsökkenti azon komponensek, például logikai kapuk számát, amelyeket az D pixel felbontású szubpixetek kiszámításához kell felhasználni. Ez viszont lecsökkenti azt a félvezető területet,, amit az interpoláció elvégzéséhez kell igénybe venni. Mivel a szubpixelek nagy része valójában % pixel felbontású szubpixel, a találmány ebből a szempontból rendkívül előnyös. Amint ugyanis a 14a ábrán látható, a 15 szubpixelböl 12 szubpíxel % pixel felbontású. Szoftveres implementálás esetén, amikor is a szubpixel Interpolációt egy általános célú CPU vagy egy DSP (Digital Signal Processor) standard utasításkésziefének felhasználásával hajtjuk végre, a szükséges aritmetikai műveletek pontosságának csökkentése általában megnöveli azt a sebességet, amellyel a számítások elvégezhetők. Ez különösen előnyös az alacsony költségű implementációknál, amelyeknél az ASIC áramkörök helyett inkább az általános célú CPU alkalmazása kívánatos..
A találmány szerinti eljárásnak további előnyei is vannak a TML.5 modellhez képest. Mint korábban említettük, a dekődoióban a 15 szubpixel pozíció közül egy adott időpontban- csak egyre van szükség, nevezetesen arra, amelyiket a beérkező mozgásvektor-információ kijelöli. Ezért előnyös, ha valamely szubpixel helyen lévő szubpixel érték minimális számú lépéssel kiszámítható úgy, hogy helyes interpolált értéket kapjunk. A találmány szerinti eljárás alkalmas erre a célra. Mint korábban részletesen kifejtettük, az % pixel felbontású o szubpixel úgy interpolálható, hogy szűrést végzünk függőleges vagy vízszintes irányban, és ugyanazt az értéket kapjuk a c szubpíxelre akár vízszintes, akár függőleges irányú szűrést hajtunk végre. A dekódoló úgy tudja kihasználni ennek a tulajdonságnak az előnyét az % pixel felbontású f és g szubpixeíek értékének kiszámításakor, hogy minimalizálja a kívánt értékek meghatározásához szükséges műveletek számát. Ha például a dekódolónak az X pixel felbontású f szubpixel értékére van szüksége, akkor az X pixel felbontású e szubpixel értékét függőleges Irányban Interpolálja. Ha viszont az X pixel felbontású g szubpixel értékére van szüksége, előnyös, ha a c szubpixel értékét vízszintes irányban interpolálja. így általánosságban elmondható, hogy a találmány szerinti eljárás rendkívül rugalmas abból a szempontból, hogy bizonyos X pixel felbontású szubpixeleket milyen értékekből származtatunk. A TMLS modell nem rendelkezik ilyen rugalmassággal.
A továbbiakban a találmány szerinti eljárás két konkrét változatát ismertetjük. Az első változat legfeljebb % pixel felbontású szübpíxeiek értékének kiszámításakor előnyös, míg a második változat a legfeljebb 1/8 pixel felbontású szubpixeíek értékének kiszámítására van kiterjesztve. Mindkét szóban forgó eljárás esetén összehasonlítjuk a találmány szerinti eljárás és hasonló körülmények között a TMLS és TML6 modellekben alkalmazott interpolációs eljárások eredményeként adódó számítási komplexitást és terhelést.
Az alábbiakban a 14a, 14b és 14c ábrák segítségévei az % pixel felbontású szubpixeíek interpolációját ismertetjük. A továbbiakban azt feltételezzük, hogy az összes képpont és a szubpixeíek végső Interpolált értékei 8 biten vannak ábrázolva.
A fél egységnyi horizontális és egységnyi vertikális helyeken lévő, Vá pixel felbontású szubpixeíek, valamint az egységnyi horizontális és fél egységnyi vertikális helyeken lévő, fe pixel felbontású szubpixeíek kiszámítása az alábbi szabályok szerint történik.
1. A fél egységnyi horizontális és egységnyi vertikális helyen lévő szubpixel, vagyis a 14a ábrán látható 14 pixel felbontású b szubpixel értékét úgy határozzuk meg, hogy először a b szubplxelt tartalmazó oszlopban vagy sorban a b szubpíxefre szimmetrikusan elhelyezkedő, egységnyi horizontális és egységnyi vertikális helyeken lévő hat pixel (Ai-As) értékének felhasználásával kiszámítunk egy ő közbülső értéket az alábbi módon: b ~ (Ai - δΑ2 * 2ÖA3 * 20A,i - 5Ag: + Ag). Az % pixel felbontású b szubpixel végső értékét: a h ~ (b + 16) / 32 képlettel számoljuk kí, ahol a * / *** operátor csonkolással végzett osztást jelent. Az eredményt ögy vágjuk, hogy az a [0, 255] tartományba essen.
A fél egységnyi horizontális és fél egységnyi vertikális helyen lévő, te felbontású szubplxelek kiszámítása az alábbi módon történik.
2. A fél egységnyi horizontális és fél egységnyi vertikális helyen lévő szubpixel, vagyis a 14a ábrán látható te pixel felbontású c szubpixel értékét a c szubpixeit tartalmazó oszlopban vagy sorban a c szuppixelre szimmetrikusan elhelyezkedő hat legközelebbi te pixel felbontású szubpixelhez tartozó ő közbülső értékek felhasználásával számítjuk ki az alábbi képlet alapján: o = (P ? - 5ce + 20b3 + 20ó4 - bős + ós ·+· 512). A / ” operátor ez esetben is csonkolással végzett osztást jelöl, és az eredményt' ügy vágjuk, hogy az a [Ő, 255] tartományba essen. Mint korábban kifejtettük, az te pixel felbontású b szubpixelhez vízszintes irányban tartozó ő közbülső értékek alkalmazása ugyanarra az eredményre vezet, mint az te. pixel felbontású b szubpixeleknek a függőleges irányú ő közbülső értékelnek felhasználása, így a találmány szerinti kódolóban az te pixel felbontású b szubpixelek interpolálásának iránya az .implementálás célszerű módétól függően választható meg, A találmány szerinti dekódolőban a b szubpixelek interpolálásának irányát az határozza meg, hogy amennyiben vannak te pixel felbontású szubpixelek, akkor mely te pixel felbontású szubpixelek lesznek Interpolálva az te pixel felbontású o szubpixelhez meghatározott ered meny felhasználásával.
Az alábbiakban az egynegyed egységnyi horizontális és egységnyi vertikális helyeken lévő, az egynegyed egységnyi horizontális és fél egységnyi vertikális helyeken lévő, az egységnyi horizontális és egynegyed egységnyi vertikális helyeken lévő, valamint a fel egységnyi horizontális és egynegyed egységnyi vertikális helyeken lévő, te pixel felbontású szubpixelek értékének kiszámítási módját ismertetjük.
3. Az egynegyed egységnyi horizontális és egységnyi vertikális helyeken lévő te pixel felbontású d szubpixelek értékeit az eredeti kép legközelebbi A pixelének és a vízszintes irányban legközelebbi te pixel felbontású b szubpixel értékének felhasználásával számítjuk ki az alábbi képlettel: d = (A ·*· b) / 2. Az egységnyi horizontális és fél egységnyi vertikális helyeken lévő te pixel felbontású g szubplxelek értékeit a vízszintes irányban két legközelebbi te pixel felbontású szubpixel felhasználásával számítjuk Rí: g ~ (b * c) / 2. Az egységnyi horizontális és egynegyed egy• φ* ♦ * * Φ * i i * Φ** Μ » Φ φ * Φ ♦ >»Χ·ί Φ* JS?
ségnyi vertikális helyeken lévő % pixel felbontású e szubpíxelek értékeit az eredeti kép legközelebbi A pixelének értéke és a függőleges irányban legközelebbi fe pixel felbontású b szubpixei értéke alapján számítjuk ki: e=(A b) / 2. A fel egységnyi horizontális és egynegyed egységnyi vertikális helyeken lévő fe pixel felbontású f szubpíxelek értékelt a függőleges irány mentén két legközelebbi fe pixel felbontású szubpixei felhasználásával számítjuk ki: f - (b ·* c) / 2. Az összes fent említett esetben a ” / ” operátor csonkolással végzett osztást jelent
Az egynegyed egységnyi horizontális és egynegyed egységnyi vertikális helyeken lévő 'fe pixel felbontású szubpixefek értékeinek kiszámítása a kővetkező szabály szerint történik.
4, Az egynegyed egységnyi horizontális és egynegyed egységnyi vertikális helyeken lévő, fe pixel felbontású h szuhpixelek értékeit az átlós irányban vert két legközelebbi fe pixel felbontású b szubpixei értékének felhasználásával számítjuk ki az alábbi képlet segítségével·, h = (tn + b2) Z 2. A / ” operátor ez esetben is csonkolással végzett osztást jelöl.
5. Az fe felbontású I szubpixei értékét az eredeti kép négy legközelebbi A pixeléből -számítjuk ki: i - (Ai + Az + A3 φ + 2) Z 4, A / ” operátor ez esetben is csonkolással végzett osztást jelent.
Az alábbiakban a találmány szerinti eljárás első változatának számítási komplexitását elemezzük.
A .dekódolóban bizonyos szubpixei értékeket valószínűleg többször is kiszámítunk. Emiatt és a korábban említett okok miatt a kódoló komplexitása lecsökkenthető oly módon, hogy az összes szubpixei értéket előzőleg kiszámítjuk és azokat eltároljuk a memóriában. Ez a megoldás azonban nagymértékben megnöveli a memőriafeihasznáfást. A találmány célszerű változatánál· ahol is a mozgásvektor fe pixel felbontású mind vízszintes, mind pedig függőleges irányban, a teljes kép előre kiszámított szubpixei értékeinek eltárolása 16-szor akkora memóriát igényei, mint az eredeti, nem-interpolált kép eltárolása. A memőnafelhasználás csökkentése céljából az összes fe pixel felbontású szubpixei értékelt az előkészített Interpolációs eljárással, mig az fe pixel felbontású szübpixelek értékelt az Ígényléses interpolációval számítjuk ki, vagyis csak azok kerülnek meghatározassra, amelyekre valóban szükség van. A találmány szerinti eljárásnál az fe pixel felbontású szübpixelek értékeinek *Φ
Φ * > φ * Α * Φ φ ·» Μ 9
Φ ? β » Φ *
Φτ»φ* »**# Φ* 4*
.... 6-S.
Igényléses interpolációja esetén csak lineáris Interpolációt kell végezni az te pixel felbontású szuhpixeíekre. Az előre kiszámított, te pixel felbontású szubpixelek eltárolásához az eredeti kép eltárolásához szükséges memóriának csak a négyszeresére van szükség, mivel azok ábrázolása csak 8 biten történik.
Amennyiben az összes te pixel felbontású szabpixel értékének előzetes kiszámítására ugyanezt a stratégiát, vagyis az előkészített interpolációt használnánk a WL8 modell közvetlen interpolációs eljárásában, a memóriaigény az eredeti neminterpolált kép eltárolásához szükséges memória δ-szeresére nőne. Ez abból adódik, hogy a TML6 modellben az egyes te pixel felbontású szubpixeíekhez tartozó, nagypontosságú közbülső értékek nagyobb bitszámon ábrázolva kerülnek eltárolásra. Ezenkívül a mozgásbecslés során végzett szubplxel interpoláció komplexitása is nagyobb a TML8 modellben, mivel minden egyes te és te pixel felbontású hely esetén skálázást és levágást keli végrehajtani.
A továbbiakban egy videó dekődolőban alkalmazott, találmány szerinti szubpixel interpoládős eljárás komplexitását hasonlítjuk össze a TML5 és TML6 modellekben használt interpolációs eljárásokéval. Az elemzés során azt feltételezzük, t mindegyik eljárásban bármely szubpixel érték Interpolációját a helyes interpolált érték meghatározásához szükséges minimális számú lépés alkalmazásával hajtjuk végre. Feltételezzük továbbá, hogy mindegyik eljárást blokkos alapon implementáljuk, vagyis egy konkrét η x m-es blokkban interpolálandó összes szubplxel számára közős közbülső értékeket csak egyszer számítjuk ki Jö példa erre a 16. ábrán látható pixeleirendezés, amiből kitűnik, hogy az te pixel felbontású c szuhpixelekbői átló 4 x 4-es blokk kiszámításához először egy te pixel felbontású h szuhpixelekbői átlő 9 x 4-es blokkot kell kiszámítani.
A TMLS modellben használt szubpixel Interpolációs eljárással összehasonlítva a találmány szerinti eljárás kisebb számítási komplexitással rendelkezik az alábbi okok miatt:
1, Ellentétben a TML5 modellnél alkalmazott szubpixel interpolációs eljárással, a találmány szerinti eljárásnál az te pixel felbontású c szubpixel értéke kiszámítható a függőleges vagy vízszintes Irányban végzett szűréssel. így a műveletek számának csökkentése érdekében az te pixel felbontású c szubpixel értékét akkor interpoláljuk a függőleges irányban, ha az te pixel felbontású f szubpixel értékére van
Φ 4 φ Φ » φ *' * « Φ
4Κ «Φ $
* ** β
Φ χ * φ φ* φ#· szükség, illetve akkor interpoláljuk -vízszintes irányban, ha az % pixel felbontású g szyhpixel értékére van szükség. A 17. ábra az összes olyan 74 pixel felbontású szubpixel értéket szemlélteti, amelyet ki kell számítani egy 4 x 4-es eredeti képpontból álló képfeiokkban lévő, % pixel felbontású g szubpixelek értékeinek interpolálásához a T-ML5 modell interpolációs eljárásának felhasználásával (17a ábra), illetve a találmány szerinti eljárás felhasználásával (17 b ábra). Ennél a példánál a TML5 modell- szerinti szubpixel interpolációs eljárás 88 14 pixel felbontású szubpixel interpolációját teszi szükségessé, míg a találmány szerinti eljárás csak 72 % pixel felbontású -szubpixel kiszámítását igényli. Amint a 17b ábrából kitűnik, a találmány szerinti eljárásnál az 74 pixel felbontású c szubplxeteket a vízszintes irányban interpoláljuk annak érdekében, hogy lecsökkentsük a szükséges számítások mennyiségét.
2. A találmány szerinti eljárásnál az % pixel felbontású h szubplxelt lineáris interpolációval számoljuk ki az átlós irány mentén vett két legközelebbi szomszédos % pixel felbontású szubpíxetbői. Az eredeti képpontokból álló 4 x 4-es blokkban lévő % pixel felbontású h szubpixelek értékeinek meghatározásához kiszámítandó 14 pixel felbontású szubpixelek számát a TML5- modellben alkalmazott szubplxel interpolációs eljárás alkalmazása: esetén a 18a ábra, illetve a találmány szerinti eljárás alkalmazása esetén a 18b ábra szemlélteti. A TML5 modell eljárásának alkalmazásával összesen 58 14 pixel felbontású szubplxelt kell interpolálni, míg a találmány szerinti eljárás alkalmazásakor csak 40 % pixel felbontású szubplxel interpolációja szükséges.
Az 1, táblázatban a fent említett három szubpixel interpolációs eljárás, vagyis a TML5 modellben alkalmazott eljárás, a TML-δ modellben használt közvetlen interpolációs eljárás, valamint a találmány szerinti eljárás esetén a dekódoló bonyolultságát hasonlítottuk össze. A végrehajtott 8-fokozatú szűrések és a lineáris interpolációs műveletek számával jellemeztük. Feltételeztük, hogy az X pixel felbontású í szubpixel értékét az í ~ (Ai + A2 + Α» * A4 * 2) / 4 képlet felhasználásával interpoláljuk, ami kétirányú interpolációs és valójában két lineáris interpolációs lépésből áll. Az 1. táblázat az eredeti képpontokból álló 4 x 4-es blokkhoz tartozó szubpixelek értékeinek interpolációjához szükséges műveletek számát adja meg a 15 szubpixel pozíció mindegyikére. A szubpixelek pozícióst a könnyebb megértés érdekében a 19. ábrán látható módon számoztuk. Amint a 19. ábrán látható, az 1. hely az eredeti A képpont.
X j*
Λ * ♦·<
«* A, helye, míg a 2-18. helyek az egyes szubpixelek helyei. A 16. hely például az te pixel felbontású 1 szubpixel helye. A műveletek átlagos számának kiszámításakor azt feltételezzük, hogy az egyes szubpixel pozíciókra mutató mozgásvektorok valószínűsége azonos. Az átlagos komplexitás Ily módon a szuhpixelekre vonatkozó 15 összeg és az egyetlen egész pixel értékének átlaga.
1. Táblázat;
te PIXEL FELBONTÁSÚ SZUBPIXEL INTERPOLÁCIÓ' KOMPLEXITÁSA A TML.5 ÉS TMLÖ MODELLBEN ALKALMAZOTT ELJÁRÁS, VALAMINT A TALÁLMÁNY SZERINTI ELJÁRÁS ESETÉN
TML5 TML6 találmány szerinti eljárás
Pozíció lineáris interpoláció 8-fokozatú szúrás lineáris interpoláció 6-?oteatú szűrés lineáris interpoláció S-íoXozafű szűrés
1 0 0 ö 0 0 0
3,9 0 16 0 18 G 18
2,4,5,13 16 16 0 15 18 18
11 0 52 0 52 0 52
7,15 16 52 0 52 16 52
10,12 16 68 ö 52 16 52
8,8.14 48 68 0 52 16 32
18 32 0 32 0 32 0
Átlag 19 37 2 32 13 28,25
Az 1. táblázatból kitűnik, hogy a találmány szerinti' eljárás kevesebb 8fokozatú szűrési műveletet igényei, mint a TML8 'modellben alkalmazott szubpixel interpoláció, és csak valamivel több lineáris interpolációs műveletet igényel a TML6 modell eljárásánál. Mivel a 8-fokozatú szűrési műveletek sokkal bonyolultabbak a lineáris interpolációs műveleteknél, a két eljárás bonyolultsága azonos. A TML5 modell szerinti szubpixel Interpoláolós eljárás ugyanakkor lényegesen bonyolultabb az előbbi kettőnél.
A továbbiakban az 1/8 pixel felbontású szubpixelek Interpolációját ismertetjük a 28,, 21. és 22. ábrák segítségével.
A 20. ábra a pixelek, az te pixel felbontású szubpixelek, az te pixel felbontású szubpixelek és az 178 pixel felbontású szubpixelek jelölésrendszerét szemlélteti a találmány szerinti eljárásnak az alábbiakban bemutatásra kerülő kiterjesztett változa•X
-69«φ
1. Α 20. ábrán látható b\ ife és b3 jelű fe pixel felbontású és fe pixel felbontású szübpixelek értékeit az fe pixel felbontású b2 szubpíxelre szimmetrikusan elhelyezkedő, a b\ b“ és b's szubpixelekeí'tartalmazó sorban vagy oszlopban lévő, egységnyi horizontális és egységnyi vertikális helyen elhelyezkedő nyolc legközelebbi képpont (Ai-Aa) értékének felhasználásával először kiszámítjuk a b\ b2 és b3 közbülső értékeket az alábbi képietek alapján: b? ~ (-3A·? + 12AS - 37A3 + 229A4 + ?1AS - 21Ag + 8A- - Ag); b2 ~ <~3Ai + 12A2 ·· 39AS + 1ő8A4 + 158AS - 39Ag * 12A? - 3A8); és b3 (-Aj e 6A2 - 2IA3 + 71A,< * 229Ag. - 37Ag + 13A? - 3Ag). A ó? és b0 közbülső értékek kiszámításához használt szűrőegyüfthatőkban jelentkező aszimmetriák oka az. hogy az Αί-A.» pixelek nem szimmetrikusan helyezkednek el az fe pixel felbontású bJ és b3 szubpixelekhez képest A b! fi ~ 1 2, 3) .szubpíxelek végső értékeit a b! = {&' -r 128} / 256 képlet alapján számítjuk ki, ahol a f” operátor csonkolással végzett osztást jelöl. Az eredményt ügy vágjuk, hogy az a [0>: 255] tartományba essen.
2. Az fe pixel felbontású és fe pixel felbontású c‘j szubpíxelek (I, j - 1, 2, 3} értékeit az alábbi képletek alapján számítjuk ki: cb = (~3ö/ * I2ő/ - 37b/ * 2.29b/ * 71b/- 21b/ + 60/ ~ b/ * 32768} / 85536, c2* ~ (-3 b/ - 12b/ - 39b/ * 158b/ * 158b/ 39b/ + 1:2.b/ - 3bg' + 32768} Z 85536 és c3* « (-b/ ·+· 6b/ - 21b/ + 71b/ * 2290/ - 37b/ * 13b/ - 3b/ + 32768) / 65538, ahol a bf, bz és b3 olyan közbülső értékek, amelyek függőleges irányban a nyolc legközelebbi szubpíxelre (b/-b/) vannak kiszámítva. A b* szubpíxelek az fe pixel felbontású és fe pixel felbontású, interpolálandó d szobpixeieket tartalmazó oszlopban az fe pixel felbontású szubpíxelre szimmetrikusan elhelyezkedő szubpíxelek. A c'} és c3J szubpíxelek értékelnek meghatározására használt szürőegyútfhat:őkfean mutatkozó aszimmetria oka az, hogy a b/-b/ szubpíxelek nem szimmetrikusan helyezkednek el az fe pixel felbontású c1,! és cS| szubpixelekre. A fenti képletekben a/K operátor ezúttal Is csonkolással végzett osztást jelent. Mielőtt a c- szubpíxelek interpolált értékeit a keretmemóriában eltárolnánk, az említett értékeket ügy vágjuk, hogy azok a [0, 255] tartományba essenek. A találmány szerinti eljárás egy másik lehetséges változatánál az fe felbontású és fe felbontású C' szubpixelekeí a vízszintes irányban analóg módon, b\ b* és b3 közbülső értékek felhasználásával számítjuk ki.
3. Az 1/8 pixel felbontású d szubpíxelek értékelt a vízszintes vagy függőleges irányban az azokhoz legközelebbi szomszédos képpontból, fe pixel felbontású vagy
70φ χ * β > ' ’ « ♦ « φ φ * Φ χ χ,
Φ 4 Φ φ Φ > φ Φ ΦΦ % pixel felbontású szubpixelek értékeiből lineáris interpolációval számítjuk ki. A bei felső sarokban lévő, 1/8 pixel felbontású d szubpixelt például a d - (A * b1 * 1) / 2 képlettel határozzuk meg. Akárcsak korábban, a ” /operátor most Is csonkolással véozett osztást lelök
4. Az 1/8 pixel felbontású e és f szubpixelek értékeit az átlós irányban elhelyezkedő képpontok, 14 pixel felbontású vagy % pixel felbontású szubpixelek értékeiből lineáris Interpoláció alkalmazásával számítjuk ki. A 20. ábrán a bal felső sarokban látható 1/8 pixel felbontású e szubplxel értékét például az e ~ (b1 + b’ * 1) / 2 képlettel számítjuk ki. A találmány szerinti eljárás egyik célszerű változatánál (1. eljárás) az egyes 1/8 pixel felbontású szubpixelek Interpolációjánál alkalmazandó diagonális irányt a 21a ábra szemlélteti. Az 1/8 pixel felbontású g szubplxeleket a g - (A + 3c?2 + 3) / 4 képlet alapján számítjuk ki. A ” /operátor ez esetben is csonkolással végzett osztást jelent. A találmány szerinti eljárás egy másik lehetséges változaténál (2. eljárás) a számítási komplexitást tovább csökkentjük azáltal, hogy az 1/8 pixel felbontású f szubpixelek értékeit az % pixel felbontású b^ szubpixelekből lineáris interpolá*} csóva! határozzuk meg, vagyis f - (3b + bz + 2) / 4. Az f szubpixelhez. közelebb eső b2 szubplxel értékét szorozzuk 3~mal. A találmány szerinti eljárásnak, ennél a változatánál alkalmazott diagonális interpolációs eljárás jelöléseit a 21b ábra szemlélteti. A találmány szerinti eljárás további lehetséges változatainál különböző diagonális interpolációs eljárások valósíthatók meg.
Szükségesnek tartjuk megjegyezni, hogy az összes olyan esetben, ahol képpont és/vagy szubplxel értékekből képezett átlagot használunk az 1/8 pixel felbontású szubpixelek értékelnek meghatározásához, az átlag bármilyen megfelelő módon képezhető. Az ilyen átlag kiszámításánál az összeg 1-gyei történő megnövelésének az a hatása, hogy a később végrehajtandó kerekítési vagy csonkolási műveletnél a szóban forgó átlagérték a felülről szomszédos egész számra lesz kerekítve vagy csonkolva. A találmány szerinti eljárás egyes változatainál az összeg 1-gyel történő megnövelését nem használjuk.
Akárcsak a korábban Ismertetett % pixel felbontású szubpixelek értékeinek interpolálásakor, a kódoló memóriaigényei csökkenthetők az Interpolálandó szubpixel értékek legalább egy részének előzetes kiszámításával. Az 1/8 pixel felbontású szubpixel értékek interpolálásakor előnyös az. összes 14 pixel felbontású és % pixel
4 * jC 4> * χχ felbontású szubpixeit előre kiszámítani,, majd az 1/8 pixel felbontású szübpixel értékeit igény szerint kiszámítani, vagyis csak akkor, amennyiben azokra szükség van. Ennél a megközelítésnél mind a TML5 modellben alkalmazott interpolációs eljárás, mind pedig a találmány szerinti eljárás az eredeti képhez képest 16-szor nagyobb memóriát igényel az % pixel felbontású és % pixel felbontású szübpixel értékek eltárolása miatt. Ha viszont a TMLŐ modell szerinti direkt interpolációs eljárást azonos módon alkalmazzuk, akkor az % pixel felbontású és az % pixel felbontású szubpixelek közbülső értékeit is el kell tárolni. Ezek a közbülső értékek 32 biten vannak ábrázolva, ily módon a memóriaigény 84-szer akkora, mint az eredeti interpolálattan képé.
A továbbiakban a találmány szerinti szübpixel interpolációs eljárás komplexitását és a TML5, valamint TML8 modellben alkalmazott Interpolációs eljárások komplexitását hasonlítjuk össze abban az esetben, amikor azt egy videó dekódoiohan alkalmazzuk legfeljebb 1/8 pixel felbontású szübpixel értékek kiszámítására. Akárcsak a korábban Ismertetett, % pixel felbontású szubpixelek értékeinek Interpolációjához tartozó elemzésben, most is azt feltételezzük, hogy az egyes eljárásokban bármely szübpixel érték interpolációját úgy végezzük, hogy a helyes interpolált érték meghatározásához a lehető legkisebb számú szükséges lépést hajtjuk csak végre. Feltételezzük továbbá azt, hogy az egyes eljárásokat blokkos alapon Implementáljuk, vagyis egy adott N χ M blokkban lévő összes interpolálandó szübpixel közős közbülső értékeit csak egyszer számítjuk ki.
A 2. táblázatban a három interpolációs eljárás komplexitását hasonlítjuk őszsze. A komplexitást az egyes eljárásokban végrehajtott 8-fekozatú szűrések és lineáris Interpolációs lépések számával jellemezzük, A 2. táblázat az eredeti képpontokból álló 4 x 4-es blokkhoz tartozó 83 1/8 pixel felbontású szübpixel interpolációjához szükséges műveletek számát adja meg, ahol az egyes szubpixelek helyeit a 22. ábrán látható számok jelölik, igy például a 22, ábrán az 1. hely az eredeti képpont helye. mig a 2-64. helyek az egyes szubpixelek helyei. A műveletek átlagos számának kiszámításakor azt feltételezzük, hogy az egyes szübpixel pozíciókra mutató mozgásvektorok valószínűsége azonos. Az átlagos komplexitás így az egyes szübpixel helyekre vonatkozó 63 összeg és az egyetlen egész pixel értékének átlaga.
»**<
2. Táblázat:
1/8 PIXEL FELSONTÁS'Ö SZUBPiXEL INTERPOLÁCIÓ KOMPLEXITÁSA A TMUS ÉS TMt.6 MODELLBEN ALKALMAZOTT ELJÁRÁS, VALAMINT A TALÁLMÁNY SZERINTI ELJÁRÁS ESETÉN (A TALÁLMÁNY'SZERINTI ELJÁRÁS 1. ÉS 2. VÁLTOZATA KÜLÖN OSZLOPBAN SZEREPEL}
TML5 TML.S találmány szerinti 1, eljárás találmány szerinti 2. eljárás
Pozíció lineáris iníerp. 8fokozatú szűrés iineásis irsísrp. sfokozató szűrés fotesp. 8íokczstú szűrés Ifoeárts interp. S-fokezató szűrés
1 0 0 8 0 0 0 0 0
3,57,17,33,49 0 16 0 18 0 16 0 16
19,21.23.35.37.38, 51,53,55 0 60 0 60 0 80 0 60
2,8,9,57 18 18 0 16 16 16 16 18
4,6,25,41 16 32 0 16 18 32 16 32
10,16,53,84 32 75 0 80 13 32 16 32
11,13,15,59,61,63 16 60 0 80 18 60 18 80
18,24,34,40,50,58 16 78 0 60 16 80 18 60
12,14,80,62 32 12Ö 0 60 18 32 16 32
26,32,42,48 32 108 6 : 80 16 32 18 : 32
20,22,36,38,52,54 18 120 0 60 16 76 16 76
27,29,31,43,45,47 16 78 0 60 18 76 16 76 :
28,30,44,48 32 152 0 80 16 60 18 80
Átlag 64 290,25 0 197,75 48 21475 48 19275
Amint a 2. táblázatból kitűnik, a találmány szerinti eljárás 1 és 2. változatánál végrehajtott S-fokezatú szűrési műveletek száma rendre 28%~kal. illetve 34%-kat kisebb, mint. a TML5 modellben végrehajtott szubpixel interpoláció során szükséges 8fokozatú szűrési műveletek száma. A lineáris műveletek száma 25%-kal kisebb a találmány szerinti eljárás 1, és 2:. változatánál a TML5· modell eljárásához viszonyítva, de ez a javulás kisebb jelentőségű a 8-fokozatü szűrési műveletek számának csökkenéséhez képest. Megállapítható továbbá a 2. táblázatból, hogy a TML8 modellben használt közvetlen Interpolációs eljárás komplexitása összehasonlítható a találmány szerinti eljárás 1. és 2. célszerű változatának komplexitásával, amennyiben azokat 1/8 pixel felbontású szubpíxelek értékének Interpolálására használjuk,
A találmány leírásának ismeretében a szakmában jártas szakemberek számára nyilvánvaló, hogy a találmány tetszőlegesen módosítható az igényelt oltalmi körön “ϊ belül. Bár a találmány számos célszerű változatát részletesen ismertettük a bán, nyilvánvaló, hogy azok különböző módon módosíthatók, és az összes ilyen vái tozat a találmány oltalmi körébe esik.
1, Eljárás kép interpolálására, amely kép sorokba és oszlopokba rendezett, előre meghatározott dinamikus tartományba eső értékekkel rendelkező pixeleket tartalmaz» ahol a sorokban lévé pixelek egységnyi horizontális helyeken vannak, míg az oszlopokban lévő pixelek egységnyi vertikális helyeken vannak; ahol az fetetpoláeiö során töri értékű horizontális helyen és/vagy tört értékű vertikális helyen lévő szubpixelek számára értékeket álhtnnk elő» ahol a tört értékű horizontális ás vertikális helyek H* matematikai jelöléssel repwzeotáh haiők, ahol x egy 1 és N közötti pozitív egész szám, 14* a szobplxeMutepoIádó egy adott szintjét mprezentálja és N a sznhplxel-infetpoláeié maximális szintjét ^prezentálja, amely eljárás az alábbi lépéseket tratahnazzat
a) az klN'! egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek számára, valamint az egységnyi horizontális ás egységnyi vertikális helyeken lévő szubpixelek számára értékeket hherpolálunk a megfelelő egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek felhasználásával;
b) egy ve '' egységnyi horizontális és egységnyi vertikális helyen lévő szubpixei számára egy ériéket mterpnlálnnk vagy az egységnyi horizontális és egységnyi vertikális helyeken lévő szuhpixelekhez az a) lépésben interpolált értékek egy első súlyozott összegének, vagy az egységnyi horizontális és 14^ egységnyi vertikális helyeken lévő sxohpíxelek számára az a) lépésben interpolált értékek egy második súlyozott összegei felhasználásával;
e) az egységnyi horizontális és egységnyi vertikális helyen lévő sznhpixei szúrnám egy értéket Interpolálunk az alábbi két lépés vdamelyikével:
- egy riv® egységnyi horizontális és egységnyi vertikális helyen lévő első szubpixei vagy pixel értékének és egy egységnyi hmizontális és egységnyi vertikális helyen lévő második sznhpixei-ériékének súlyozott átlaga, vagy ~ sgy egységnyi horizontális és egységnyi vertikális helyen lévő pixel értékének és egy egységnyi horizontális és egységnyi vertikális helyen lévő sznhpixei értékének súlyozott átlaga.

Claims (1)

  1. -75ahol m,m p és q az (1 - > tartományba eső egész számok, ahol az összetartozó eísö és második sxubpixek vagy az összetartozó pixel és szubpíxeí az interpolálás alatt álló 14H egységnyi horizontális és 14N vertikális helyen lévé sznbplxelhez képest átlósan helyezkedik et
    2, Az 1. Igénypont szerinti. eljárás, azzal jellemezve, hogy a e) lépésben alkalmazott súlyozott átlagban egy ebé és egy .második súlyt használunk, amely súlyok relatív nagysága arányos az riN egységnyi horizontális és vertikális helyen léve szebpixeinek a e) lépésben alkalmazott, összetartozó első és .második szuhpíxelhez vagy összetartozó pixelhez és szubpixeíbez való, egyenes vonalú átló mentén veit közelségével,
    3, A 2. igénypont szerinti eljárás, azzal jellemezve, hogy amennyiben a o) lépésben használt, összetartozó első és második szubpixei vagy összetartozó pixel és szubpixei az interpolálás alatt álló 14^ egységnyi horizontális ás *4K egységnyi vertikális helyen lévő szobplxelhex képest szimmetrikusan helyezkednék el, akkor az· első és második súlyok értéke egyenlő,
    4, Az h Igénypont szerinti eljárás, azzal jellemezve, hogy a h) lépésben az 14Ν* egységnyi horizontális és egységnyi vertikális helyeken lévő sznbpixelekhez az értékek első súlyozott összegét .akkor használjuk, amikor egy 14^'' egységnyi horizontális és egységnyi vertikális helyen lévé szubpíxeí számáré ialerpol álunk értéket
    5, Az 1, igénypont szerinti eljárás, azzal jeltemezve, hogy ab) lépésben az egységnyi horizontális és egységnyi vertikális helyeken léve sznbpixelekhez az értékek második, súlyozott összegét ekkor használjuk, amikor egy ki^ egységnyi horizontális és egységnyi vertikális helyen lévő szubpixei számára interpahilnnk értékek
    6, Az I. igénypont szerinti eljárás, azzal jellemezve, hogy az egységnyi horizontális és egységnyi vertikális helyeken léve sznfeplxelek számára oly módon interpolálunk értékekei, hogy egy egységnyi horizontális és egységnyi vertikális helyen lévő pixel értékét és egy egységnyi horizontális és egységnyi vertikális helyen lévő szubpixei értékéi átlagoljuk, ?, Az 1. Igénypont szerinti eljárás, azzal jellemezve, hogy az léN egységnyi horizontális és lúN egységnyi vertikális helyeken lévő sznbpixelek. számára oly módon Interpolálunk értékeket, hogy egy Í4M4 egységnyi horizontális és egységnyi vertikális helyen lévő szubpixei és egy egységnyi horizontális és *4Na egységnyi vertikális helyen lévő szubpixei értékét állagóljuk.
    d, Az 1. igénypont szerinti eljárás, azzal jellemezve, hogy az 14^ egységnyi horizontális és I4N egységnyi vertikális helyen lévő egy vagy több elére meghatározott szubpixel számára oly módos interpolálunk értéket, hogy az 1, igénypont c) lépésétől eltérően az Interpolált sznhpíxel legközelebbi szomszédos pixeleinek értékeit átlagoljuk,
    9. Az L Igénypont szerinti eljárás, azzal jellemezve, hogy N a [2, 3,4] értékkészlet hol váltóőrt egész szám .
    KI, Az L igénypont szerinti eljárás, ózni jeileasexve, hogy az a) lépés és a b) lépés közül legalább az egyikben egy szubpixel értéknek egy sfeyozott összeg felhasználásával történő interpolálása .során kiszámítunk egy közbülső értéket, a szubpixel értékéhez, amely közbülső érték dinamikus tartománya nagyobb, mint az előre meghatározott dinamikus tartomány.
    11, A 10. igénypont amiatt eljárás, azzal jellemezve, hogy egy Í4h'! szühpíxeles felbontással rendelkező sxohplxalhez tartozó közbülső értéket használjuk fel egy szubpixeles felbontással rendelkező szuöpixelhez tartozó szuhpixehérték intetpoláláséboz.
    12. Az 1. Igénypont szerinti eljárás, azzal jellemezve, hogy az elém meghatározott dinamikus tartomány megfelel azon értékek tartományának, amelyeket, a pixelek felvehetnek,
    13, A 12, igénypont szerinti eljárás, azzal jefenezve, hogy az a) lépésben interpolált valamely szubpixel értéket egy első közbülső érték felhasználásával ^prezentálunk, amely első közbülső érték dlsanúkns tartománya azonos az a) lépésben alkalmazott súlyozott Őszszegben használt megfelelő pixelértékek dinamikus tartományának és az a) lépésben szereplő súlyozott összegben használt megfelelő súlyok összegével egyenlő érték szorzatával,
    14, A 13, igénypont szerinti eljárás, azzal jellemezve, hogy az első közbülső érték dinamikus tartománya az a) lépesben szereplő súlyozod összegben használt megfelelő pixelértékeket repmzentálö hitek számának, valamint ez a) lépésben szereplő súlyozott összegben használt megfelelő súlyok összegét mptozentálö hitek számának az összege.
    15. A 13. igénypont szertnli eljárás, azzal jeOetmwe, hogy az első közbülső értéket oly rnötloo csonkoljuk, hegy az első közbülső értéket matematikailag elosztjuk egy első lép tékiényszevel, amely első légtékíényszö értéke azonos az a) lépésben szereplő súlyozott összegben használt megfelelő súlyok összegével, ezáltal olyan szttöplxebértékot áihluok ele, amelynek dmamikus tartománya megegyezik az említett pixelértékék előre meghafetozoh
    - ?? dinamikus tartományával.
    lő, Á 13, igénypont szerinti eljárás, azzal jellemezve, hogy az a) lépésben kiszámított első közbülső szubpixel-értékekei .interpolált értékekként használjuk a b) lépésben szereplő megfelelő súlyozott összegekben, és a b) lépésben inteipolált szubpixel-értéket egy második közbülső érték felhasználásával reprezentáljuk, ahol a második közbülső érték dinamikus tartománya megegyezik a b) lépésben szereplő súlyozott összegben használt megfelelő szubpixel-értékek dinamikus tartományának, valamint a b) lépésben szereplő súlyozott összegben használt megfelelő súlyok összegével egyenlő értéknek a szorzatával.
    17. A 16, igénypont szerinti eljárás, azzal jellemezve, hogy a második közbülső értéket oly módon csonkoljuk, hogy a második közbülső értéket matematikailag elosztjuk egy második léptéktényezővel, amely második léptéktényező értéke megegyezik az· a) lépésben szereplő súlyozott összegben használt megfelelő súlyok összegével egyenlő értéknek, valamint a b) lépésben szereplő súlyozott összegben használt megfelelő súlyok összegének a szorzatával, ezáltal. olyan szubpixel-értéket állítunk elő, amelynek dinamikus tartománya megegyezik az említett pixelértékek előre meghatározott dinamikus tartományával.
    18. A 15, igénypont szerion eljárás, azzal jellemezve, hogy a csonkolt első közbülső szubpixel-értékeket akkor használjuk fel, amikor a c) lépésben egy szubpixeles felbontással rendelkező szubplxelhez interpolálunk értéket.
    19. A 17. igénypont szerinti eljárás, azzal jellemezve, hogy a csonkolt második közbülső szubpixel-értékeket akkor használjak fel, amikor a c) lépésben egy szubpixeles felbontású szubpixelhez interpolálunk értéket.
    20. Eljárás kép interpolálására, amely kép sorokba és oszlopokba rendezett, előre meghatározott dinamikus tartományba eső értékekkel rendelkező pixeleket tartalmaz, ahol a sorokban lévő pixelek egységnyi horizontális helyeken vannak, míg az oszlopokban lévő pixelek egységnyi vertikális helyeken vannak, ahol az interpoláció során tört értékű horizontális helyen és/vagy tőrt értékű vertikális helyen lévő szubpixelek számára értékeket állítunk elő, amely eljárás az alábbi lépéseket tartalmazza;
    a) a fél egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek számára, valamint az egységnyi horizontális és fél egységnyi vertikális helyeken lévő szubpixelek számára értékeket inteipolálunk a megfelelő egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek felhasználásával;
    -78 b) egy fél egységnyi horizontális & féí egységnyi vertikális helyes lévé szubpixel számára egy értéket iniegxháhmk vagy a tel egységnyi horizontális és egységnyi vertikális helyeken lévő szuhpixelekbez az a) lépesben interpolált értékek egy első súlyozott összegé oek, vagy az egységnyi horizontális és tél egységnyi vertikális helyeken lévő mtfepixeiekhee az a) lépésben interpolált értékek egy második súlyozott összegének féSmznállsával; és
    e) egy negyed egységnyi horizontális és negyed egységnyi vertikális helyen lévé szubpixel számára egy értéket Interpoláhnrk legalább egy értékpár súlyozott átlagának félhasználásával* ahol egy első értékpár egy fél egységnyi horizontális és egységnyi vertikális helyen lévő sxobpixel értőkét és egy egységnyi horizontális és fél egységnyi vertikális helyen lévő, átlósan szemközti szehpixei értékét tartalmazza* míg egy második értékpár egy egységnyi horizontális és egységnyi vertikális helyen levő pixel értékét és egy tel egységnyi horizontális és fél egységnyi vertikális helyen lévő* átlósén szemközti szubpixel értőkét, tar» taimazza, ahol az első és második értékpár az interpolálás alatt álló szubpixelhex viszonyítva alternatív átlókat alkotnak.
    21, Eljárás kép mtetpoi^féám, amely kép sorokba és oszlopokba rendezett, előre meghatározott dinamikus tartományba eső értékekkel mndeikezö pixeleket tartalmas, ahol a sorokban lévő pixelek egységnyi horizontális helyeken vannak, míg az. oszlopokban lévő pixelek egységnyi vertikális helyeken vannak, ahol az mterpoláeiő során tőrt értékű horizontális helyen és/vagy tőrt értékű vertikális helyen lévő szobplxelek szántára, értékeket állítunk elő, ahol a töri értékű. horizontális és vertikális helyek E* matematikai jelöléssel reprezentálhatok, ahol x. egy 1 és N közötti, pozitív egész szám, Es a szubpixel-intetpohíeió egy adott, szintjét reprezentálja és N a sznbpixelrtnterpoláeiő maximális szintjét, reprezentálja, amely eljárás az alábbi lépéseket tartalmazza.;
    a) az egységnyi, horizontális és egységnyi vertikális helyeken lévő szobplxelek szántára, valamint az egységnyi horizontális és egységnyi vertikális helyeken lévő szobplxelek szabnám értékeket Interpolálunk a megfelelő egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek felhasználásával;
    b) egy szehgixeles horizontális és szubpixefes vertikális helyen lévő szuhpíxei számára egy értékei htttaytoláitmk vagy az interpolálás alatt állá szuhpixelnek megfelelő vertikális helyes lévő szubpixelek interpolált értékei egy első súlyozott összegének, feúhusználásávsk vagy az interpolálás alatt álló szubplxeteek megfelelő borizoutálfe helyes lévő szuhpixélekhez tartozó interpolált értékek egy második súlyozott összegének. félhasználásával.
    22, A 21, igénypont szerinti eljárás, azzal jellmexve, hogy a h) lépésben szereplő első súlyozott összegbe» használt szobplxeiek az egységnyi horizontális & egységnyi vertikális helyeken levő szubpixelek, továbbá az első súlyozott összegei egy egységnyi horizontális és egységnyi vertikális helyen levő szuhpixei értékének interpoiálásám használjuk.
    23, A 21, igénypont szerinti eljárás, azzal jelbmezs-e, hogy a b) lépésben szereplő második súlyozott összegben használt szubpixelek az egységnyi horizontális és egységnyi vertikális helyen lévő szobpixelek, továbbá a második súlyozott összeget, egy 1AN egységnyi horizontális és egységnyi vertikális helyen lévő sztfepixelhez tartózó érték inhalálására háláljuk..
    24. A 21, igénypont szerinti eljárás, azzal jellemezve, hogy az egységnyi horizontális JAX egységnyi vertikális helyeken lévő sznbplxelekhez legalább egy értékpár átlagolásával interpolálunk értékeket ahol az első értékgár egy feN J egységnyi horizontális és egységnyi vertikális helyen lévő szubpixel értékéi és egy egységnyi horizontális és egységnyi vertikális helyen lévé sxobpixei értékét tartahnázza, mig egy második értékgár egyegységnyi horizontális és egységnyi vertikális helyen lévé pixel és egy egységnyi horizontális és egységnyi vertikális helyen lévő szubpixel értékét tartalmazza.
    25, Inlerjtolátor kép interpolálására, amely kép sorokba és oazlopokha rendezett, előre meghatározott dinamikus tartományba eső értékekkel rendelkező pixeleket tnrtalnw, ahol a sorokban lévő pixelek egységnyi horizontális helyeken vaunak, mig est oszlopokban lévő pixelek egységnyi vertikális helyeken vannak, ahol az inferpoláeió során tőrt értékű horizontális helyen és/vagy tőrt értékű vertikális helyen lévő sznbplxelek számára értékeket állítunk elő, ahol a tőrt értékű horizontális és vertikális helyek ri* matematikai jelöléssel reprezentálhatők, ahol x egy I és N közötti pozitív egész szám, HŐ a szobplxel-interpoláció egy adott szintjét reprezentálja és N a ssmbpizel-imerpoiánié maximális szintjét reprezentálja, amely interprsiátor az alábbi lépések végrehajtására alkalmasan w kiképezve;
    a) értékek Interpolálása az egységnyi horizontális és egységnyi vertikális helyeken lévő szohpixelek számára, valanúnt az egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek számára a megfelelő egységnyi horizontális és egységnyi vertikális χ 80b) érték mte.rpolálásn egy egységnyi horizontális és egységnyi vertikális helyen, léve szohplxel oteára vagy az ri^'s egységnyi, horizontális és egységnyi vertikális helyeken lévé szobplxelekhez az a) lépésben interpolált értékek egy első súlyozott összegének* vagy o Aöyeégnyi horizontális és 5 egységnyi vertikális helyeken lévé sznbprielek számáré az a) lépésben interpolált értékek egy második súlyozott összege felhasználásával;
    c) érték interpolálása az egységnyi horizontális és HN egységnyi vertikális helyen lévő sznhpixel számára egy az alábbi két érték valamelyikének léihssznáhriávak
    - egy egységnyi horizontális és riN's egységnyi vertikális helyen lévő első sznbplxel vagy pixel értékének és egy Vyri egységnyi horizontális es egységnyi vertikális helyen lévé második szohpixekértékének súlyozott átlaga* vagy
    - egy egységnyi horizontális és egységnyi vertikális helyen lévő pixel értékének és egy I6N'!S egységnyi horizontális és AN'S egységnyi vertikális helyen lévé sznbpixel értékének súlyozott átlaga* ahol nr* n* p és q az (I << nőj tartományba eső egész számok* ahol. az összetartozó első és második sznbprxei, vagy az összetartozó pixel és szuhpixel az interpolálás alatt álié I4N egységnyi horizontális és A5* vertikális helyen lévé sznhpixelhez képest átlósan helyezkedik el,
    2$. Á 25, igénypont szerinti intcxpolátory azzal jeOenmzve, hogy az mtetpoiátor úgy van kiképezve, hogy a c) lépésben dkaLntazoh súlyozott átlagban egy első és egy második súlyt használ. amely súlyok relatív nagysága arányos az egységnyi horizontális és vertikális helyen lévő sznhpixelnek a o) lépesben alkalmazott* összstartozú első és .második szúbpixelhez vagy összetartozó pixelhez és szubpixelhez való, egyenes vonalú átlő mentén vett közelségével,
    27, A 2ú, igénypont szerinti intepolátop azzal jellemezve* hogy az mtetpolátor úgy van kiképezve, hogy azonos értékű első és második súlyt használ, amennyiben a e) lépésben használt* összetartozó első és második sztthplxel vagy összetartozó pixel és aznhpixol az hn terpoláiás alatt állő egységnyi horizontális és egységnyi vertikális helyen lévő szubplxeihéz képest sarinmetriknsan helyezkednek el.
    2S. A 25. igénypont szerinti mtetpolálor, azzal jellemezve* hogy az húetpolátot' úgy van kiképezve, hogy a b) lépésben az yA-t egységnyi horizontális és egységnyi vertikális helyeken levő szubplxelek értekeinek első súlyozott összegét használja* amikor egy ~8t egységnyi horizontális és egységnyi vertikális helyen leve szubpíxel számára interpolál értéket,
    29. A 25. igénypont, szerinti interpolálom azzal jellemezve, hogy az interpolátor úgy van kiképezve, hogy a b) lépésben az egységnyi horizontális és HN* egységnyi vertikális helyeken lévő szubpixelek értékeinek második súlyozott összegét, használja, amikor egy tóN egységnyi horizontális és tóN'! egységnyi vertikális helyen lévő szubpíxel számára interpolál értéket.
    30. A 25. igénypont szerinti mterpolátor, azzal jellemezve, hogy az interpolátor úgy van kiképezve, hogy az egységnyi horizontális és tóN egységnyi vertikális helyeken lévő szubpixelek számára oly módon interpolál értékeket, hogy egy egységnyi horizontális és egységnyi vertikális helyen lévő pixel értékét és egy egységnyi horizontális és egységnyi vertikális helyen lévő szubpíxel értékét átlagolja,
    31. A 25, igénypont szerinti interpolátor, azzal jellemezve, hogy az interpolátor úgy van kiképezve, hogy az egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek számára oly módon interpolál értékeket, hogy egy egységnyi horizontális és egységnyi vertikális helyen lévő szubpíxel és egy egységnyi horizontális és tóN4 egységnyi vertikális helyen lévő szubplxei értékét átlagolja.
    32. A 25, igénypont szerinti interpolátor, azzal jellemezve, hogy az interpolátor úgy van kiképezve, hogy az egységnyi horizontális és MR egységnyi vertikális helyen lévő egy vagy több előre meghatározott szubpíxel számára oly módon interpolál értéket, hogy a 25, igénypont e) lépésétől eltérően az interpolált sznbpixel legközelebbi szomszédos pixeleinek értékei 1 átlagolj a.
    33. A 25. igénypont szerinti interpolátor, azzal jellemezve, hogy N a [2, 3, 4] értékkészletből választott egész szám,
    34. A 25, igénypont szerinti interpolátor, azzal jellemezve, hogy az interpolátor úgy van kiképezve, hogy az a), lépés és a b) lépés közül legalább az egyikben egy szubplxei értéknek egy súlyozott összeg felhasználóival történő interpolálása során kiszámít egy közbülső értéket, a szubpíxel értékéhez, amely közbülső érték dinamikus tartománya nagyobb, mint az előre meghatározott dinamikus tartomány,
    35. A 34, igénypont szerinti interpolátor, azzal jellemezve, hogy az interpolátor úgy van kiképezve, hogy egy szubpsxeles felbontással rendelkező szubpixeihez tartozó köz-82 bülső értéket használja fel egy W szuhpixeles felbontással rendelkező szubpixelhez tartozó szubpixet-érték intetpolálásához.
    3ö. A 25. igénypont szerinti. intetpoláfor, azzal jellemezve, hogy az előre meghatározott dinamikus tartomány megfelel azon értékek tartományának, amelyeket, a pixelek felvehetnek.
    37. A 36. igénypont szerinti interpolátor, azzal Jellemezve, hogy az interpolátor úgy van kiképezve, hogy az a) tépésben interpolált valamely szubpixel értékét egy első közbülső érték felhasználásával reprezentálja, amely első közbülső érték dinamikus tartománya azonos az a) lépésben alkalmazott súlyozott összegben használt megfelelő pixelértékek dinamikus tartományának és az a) lépésben szereplő súlyozott összegben használt megfelelő súlyok Őszszegével, egyenlő értéknek a szorzatával.
    38. A 37, igénypont szerinti interpolátor, azzal jellemezve, hogy az első közbülső érték dinamikus tartománya az a) lépésben szereplő súlyozott összegben használt megfelelő pixelértékeket reprezentáló bitek, számának, valamint az a) lépésben szereplő súlyozott őszszegben használt megfelelő súlyok összegét reprezentáló bitek számának az összege.
    39. A 37. igénypont szennti interpolátor, azzal jellemezve, hogy az interpolátor úgy van kiképezve, hogy az első közbülső értéket oly módon csonkolja, hogy az első közbülső értéket matematikailag elosztja egy első léptékíényezővel, amely első léptéktényező értéke azonos az a) lépésben szereplő súlyozott összegben használt megfelelő súlyok összegével, ezáltal olyan szuhplxel-értéket állít elő, amelynek dinamikus tartománya megegyezik az említett pixelértékek előre meghatározott dinamikus tartományával.
    40. A 37 . igénypont szerinti interpolátor, azzal jellemezve, hogy az interpolátor úgy van kiképezve, hogy az a) lépésben kiszámított első közbülső sxnbphxel-értékekei interpolált értékekként használja a b) lépésben szereplő megfelelő súlyozott összegekben, és a b) lépésben interpolált szubpixel-ériéket egy második közbülső érték felhasználásával reprezentálja, ahol a második közbülső érték dinamikus tartománya megegyezik a b) lépésben szereplő súlyozott összegben használt megfelelő szubpíxel-értékek dinamikus tartományának, valamint a b) lépésben szereplő súlyozott összegben használt megfelelő súlyok összegével egyenlő értéknek a szorzatával.
    41.. A 40. igénypont szerinti interpolátor, azzal jellemezve, hogy az ínfetpolátor úgy van kiképezve, hogy a második közbülső értéket oly módon csonkolja, hogy a második köz-S3höisö értéket matematikailag etartja agy második léptéírtényezővek amely második lépíúktényező értéke megegyezik ax a) lépésben szereplő súlyozott összegben tatait megfelelő súlyok összegével egyenlő értéknek.. valamint a b) lépésben szereplő súlyozott összegben tatait megfelelő súlyok összegének a szorzatával, ezáltal olyan szohpixehértéket állít elő, amelynek dtamlkm tartományé megegyezik az említett pixelértékek előre meghatúrozob dinamikus tartományával
    42. A 39. igénypont szerinti itóetpolátor, azzal jellemezve, hogy ez rnferpokátor úgy van kiképezve, hogy a csonkolt első közbülső sznőpizel-ertékekat akkor használja fel, amikor a c) lépésben egy szebpixeles felbontással rendelkező szebpixeihez interpolál értékei.
    43. A 41. igénypont. szerinti tmerpoláíor, azzal jellemezve, hogy az interpoláló? úgy van kiképezve, hogy a csonkolt második közbülső szehpbehértékeket akkor használja tel, amikor a e) lépésben egy H** szubpixeies felbontású szubpixelhez interpolál értéket,
    44. Számítógéppel olvasható adathordozó, amely kép interpolálását végző számítógépi programot hordoz, amely kép sorokba és oszlopokba rendezett, előre meghatározott dinamikus tartományba eső értékekkel .rendelkező pixeleket tartalmaz, ahol a sorokban lévő pixelek egységnyi horizontális helyeken vannak, míg az oszlopokban lévő pixelek egységnyi vertikális helyeken vannak, ahol az interpoláció során tőrt értékű horizontális helyen és/vagy tort értékű vertikális helyen lévő sznbplxefek szántára értékeket álltak elő, ahol a tőrt értékű horizontális és vertikális helyek fe* matematikai jelöléssel repmzentáihatök, ahol x egy 1 és N közötti pozitív egész szám, H* a szohptxehinterpeűáeiö egy adott szintjét reprezentálja és N a sztfeptKol-ónterpoláoiő maximálta szintjét repmzemálja, azzal jellemezve, hogy a számkégépi program tartalmaz;
    a) számítógépi prognunkődot. értékek iaterpolálássra az egységnyi horizontális és egységnyi vertikális helyeken lévő szobplxeleh számára, valamint az egységnyi horizontális és H*'1 egységnyi vertikális helyeken lévő szabplxelek számára a megfelelő egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott Összegeinek, felhasználásával;
    h) szfeoilégégi programkódot érték rnterpolálásárs egy H**'5 egységnyi horizontális és egységnyi vertikális helyen lévő sztthpixel szántára vagy az H*4 egységnyi honzomáhs és egységnyi vertikális helyeken lévő szubphmlekhez sz a) lépésben interpolált értékek egy első súlyozott Összegének, vegy az egységnyi hoozontálfe és egységnyi vertikális helyeken lévő sxubgbceiek. számára az a) lépéshes mtarpoláli értékek egy második súlyozott összege felhasználásával;
    -84o) számttégépi pnegramkődot érték interpolálására ax te* egységnyi horizoméha ós te* egységttyl vertikális helye» lévő szabpixel számáta egy sz alábbi két érték valsmtíyikáiek felhasználásával;
    - egy te*'® egységnyi borixontálís és te*® egységnyi vertikális helyen lévő első sxubpíxel vagy pixel értékének, és egy te**5 egységnyi horizontális és te*'* egységnyi vertikális helyen lévő második sznbplxel-értékének súlyozott átlaga, vagy * W egységnyi horizontális és egységnyi vertikális helyen lévő pixel értékének és egy te*'® egységnyi horizontális és te*® egységnyi vertikális helyen lévé sxubpixel értékének súlyozott átlaga, ahol m, n, p és q sz [1...N] tartományba eső egész számok, ahol az összetartozó első és má» sértik sxubpíxel, vagy az összetartozó pixel és szubpixel az Interpolálás alatt állá te* egységnyi horizontális és te* vertikális helyen lévé szubpixelhez képest értésen helyezkedik el.
    45. Videó kódoló, azzal jellemezve, hogy a 25-43, igénypontok hánnelyike szerinti intetpolátort tartalmazza.
    4$. Videó dekódoló, azzal jefcmezw, hogy a 25-43, igénypontok bánnelyiko szerinti intetpolátort tartalmazza,
    4?, Odolő-dekődolé egység, azzal jellemezve, hogy a 25-43, igénypontok bármelyike szerinti interpoláiort tartalmazza.
    48, Kommunikációs véghorondezés, azzal jellemezve, hogy a 45, igénypont szerinti videó kódolót tartalmazza,
    49, Konttnnthkáoiős végberendezés, azzal jellemezve, hogy a 4Ő, igénypont szerinti videó dekődolőt tartalmazza,
    50, Távközlési rendszer, azzal jeSemeave, hogy a 48. vagy 49. Igritypont szerinti kommanikáeiés véghezondeaéat, vakonúri egy távközlő hálózatot. íariaknaz, ahol a távközlő hálózat és a kommnnikéeios végőetenáezés égy ven kialakítva, hogy őaszekagesolhatők egy olyan kommoníkáeiés öaazeköttetéam kezesztói, amelyen kódolt videó adótok, fosnlbbhbatök.
    51, Intetpolátor kép interpolálására. amely kép «okba és oszlopokba teoáezeth előre meghatározott dinamikus tartományba eső értékekkel rendelkező pixeleket iartahmtz, ahol a sótokban lévő pixelek egységnyi horlzonfálb helyeken vannak, míg az oszlopokban lévő ·· SS pixelek egységnyi vertikális helyeken vannak, ahol az interpoláció során tört értékű horizontális hdven és/vagy tört értékű vertikális helyen lévő szubpixelek számára értékeket állítunk elő, ahol a tört értékű horizontális és vertikális helyek te* matematikai jelöléssel reprezentálhatók, ahol x egy 1 és N közötti pozitív egész szám, te* a szubpixeí-intetpoláció egy adott szintjét reprezentálja és N a szubpixel-ísterpoláeió maximális szintjét reprezentálja, amely ínterpoíátor az alábbi lépések végrehajtására alkalmasan van kiképezve:
    a) értékek interpolálása az teN': egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek számára, valamint az. egységnyi horizontális és te*4 egységnyi vertikális helyeken lévő szubpixelek számára a megfelelő egységnyi horizontális és egységnyi vertikális helyeken lévő pixelek súlyozott összegeinek felhasználásával; és
    b) érték interpolálása egy szubpixeles horizontális és szubpixeles vertikális helyen lévő szubpixel számára vagy az interpolálás alatt, állé szubpixelnek megfelelő vertikális helyen lévő szubpixeíekhez tartozó interpolált értékek egy első súlyozott összegének felhasználásával, vagy az interpolálás alatt álló szubpixelnek megfelelő horizontális helyen lévő szubpixeíekhez tartozó interpolált értékek egy második súlyozott összegének felhasználásával
    52. Az 51. igénypont szerinti ínterpoíátor, azzal jellemezve, hogy az ínterpoíátor ágy vart kiképezve, hogy a h) lépésben szereplő első súlyozott összegben használt szubpixelek az te*4 egységnyi horizontális és egységnyi vertikális helyeken lévő szubpixelek, továbbá az első súlyozott ősszeget egy te*4 egységnyi horizontális és te* egységnyi vertikális helyen lévő szubpixel értékének interpolálására használja.
    53. Az 51. igénypont szerinti ínterpoíátor, azzal jellemezve, hogy az mterpoláfor úgy van kiképezve, hogy a. h) lépésben szereplő második súlyozott összegben használt szubpixelek az egységnyi horizontális és te*4 egységnyi vertikális helyen· lévő szubpixelek, továbbá a második súlyozott összeget egy te* egységnyi horizontális és te*4 egységnyi vertikális helyen lévő sznhpixelhez tartozó érték interpolálására használja.
    54. Az 51, igénypont szerinti ínterpoíátor, azzal jellemezve, hogy az intespolátor úgy van kiképezve, hogy az te* egységnyi horizontális te* egységnyi vertikális helyeken lévő szubpixeíekhez legalább egy értékpár átlagolásával interpolál értékeket, ahol az első értékpár egy te*'* egységnyi horizontális és egységnyi vertikális helyen lévő szubpixel értékét és egy egységnyi horizontális és te**1 egységnyi vertikális helyen lévő szubplxel értékét tartalmazza, míg egy második értékpár egy egységnyi horizontális és egységnyi vertikális helyen lévő ·· SS · pixel és egy egységnyi horizontális és H*5’* egységnyi vertikális helyen lévő szubpixei értékéi tartalmazza.
    55. Videó kódoló, azzal jel&mezve, hogy ez 51-54. igénypontok bármelyike szerinti intetpolátort tartalmam.
    SÓ. Videó dekódoló, azzal jellemeeve, hogy az 51-54. igénypontok bármelyike sze« rinii interpotslori tetsímazza,
    57, Kódolő-dekódelő egység, azzal jellemezve, hogy az 51-54. igénypontok bármelyike szerinti Interpolálod tartalmazza.
    58, Komnmnlkációs végberendezés, azzal jellemezve, hogy az 55, igénypont szerinti videó kódolót tartalmazza.
    59. Kommunikációs végberendezés, azzal jellemezve, hogy az 56, igénypont szerinti videó dekódoló! tartalmazza.
    ól), Távközlési rendszer, azzal jellemezve, hogy az 58. vagy 59. igénypont szerinti kommnmkáeiös végberendezést, valamint egy távközlő hálózatot tartalmaz, ahol a távközlő hálózat és a kommdnikáeiös végberendezés úgy van kialekiivs, hogy összekepesolbetók egy olyan konnntnrikáeiós összeköttetésen kenesztnl, amelyen kódolt videó adatok továbhitbetők.
    / * *
    4# »4
    bU ;γοζλί í U *4 U
    4.·.
    CO x
    w sw's
    V \w'
    G wí
    N íw# \
    S k 't ww M * w‘ a
    X > X« » » V $ 4 4 » 4 «X 4 » » » :♦ .<
    »»<
    ♦ » 4 < X 4 x ♦ » 4 X 4
    M
    Λ*
    Ρ (X,
    Ν makro blokk
    a)
    -.....(Δχ,Δχ)
    -ΡΤ (Χ,νΐ ί\\ \ \\ Γ\\\ \ \ \
    -ρ «
    Φ
    ΦΦΦ Φ
    X X ΦΦ * Φ *Φφ #« μ mozgásvektor
    5\Ζ /
    4
    444« 4*«*
    .. ·.»·* Φ*. ' η Π Π Η : 4 3 η η u ϊ·3· ό &, νί· ι<5· s. í í/L·
    6. ábra
    V φ* θ Θ θ β c d c d e e e f »♦» « » ί « X » ,♦
    X » « » « » »
    X «« e e θ θ θ ♦ # φ ♦ φφ >··\ \*·Ά ‘ SS s ο u ο ís / 0 η
    A d b d A e g e g c d c d ege f w*V'V
    Η » ί * ί * * > 4 »« ί » χ » ί ♦ χο « ϊ X ί » * ί
    X ' > XX
    ic.·
    Μ e
    g e t e
    < < * » * · Α * 0 « φ * •νί
    Λ d b d A e h f h b g c g e n f í <.w>\ φ φφ φ
    * * <φ*
    -5.4-.
    A x-5
    K·.1,
    Szabadalmi leírás másolata
    21/26
    Ο'-η -'Ο— ~-—~z 0----;-O — | ; Γ J
    ? ,43,....4- -CJ -G- 4 «-ΐl •-Θ--0- -e- * © 4 o 4 O 4 ö 4 o © 4- i ·© -♦ o i 4 ο Φ o 4 o o 0 4 4- ©-·· 4 -0--4- -©- -i- 4 4 ο Φ o 4 o 4 o 4 4- -e>-·.<&· -©· ~4—ö~ * 4 O Q> o ó © o o 4 4- -©--SÍ- -0-4- ,0. ,-0-—- φ i < _ -O— j- I -o --Φ- -©- ] 4T i -o J. -©— 1 Φ 4Z íí> Φ 0) X © Φ o. X X N Q- Q. tfl νφ © -Ö- VÚ) <4^. J '( i Jt O) Φ P o í -©-.....I— ~<3~—j— '-H 0 0 r—-- T ©-·· · O--0· -L©., 4- © 0 4 Ο Φ o b 0 P o Φ Φ Q -4 -©--4 ~Ö--4 -o -4- o - 4- < © P 4 o © o b o P o ώ Φ ó -0--4- -o-4~ -©· -XJ- ··>· Φ Φ Φ © φ Q P 0 p 0 Φ p ö o » -0-4- -ö·· » » ,,ί ö Φ o 4 o b o b q Φ 4 b L,.... a © ® o -» --©- « ,-0,, 4 -
    17. ábra
    f......©- .....-G·- t......O...... ·Ο--
    ♦ « ;ü· ‘sá '3 «Ϊ ' X ΚΦ<
    ♦.....0......>.....0- ··«.....€ t......φ-·- φ φ φ Φ φ φ.....0—φ......G- ---φ-< >.......φ- -ο ·φ φ φ Φ φ Φ -φ......C }.......φ- -0......φ Φ Φ Φ ό ©
    <h <h © é φ
    4·>—«·«-<·?*;---0 -:.......-0-.....··;·.......G -·····.- 0......;
    -0.......-4.......Q.......
    ©.......f......G~....0...,.0...<„4.....O~
    Φ Φ 4 Φ ©„„,..φ_.0...„φ......&......φ.....©,„.„φ
    Φ φ φ é φ φ--0 ---φ......€Π'φ··θ......#---0-<φ φ φ φ φ φ ,χ φ
    „X
    δ.
    •φ ~Ω w
    S»<á ·€χ· ·<:>· >......G......>.....0......é.....0......#......0......ί ··©·
    Ο.......
    ........©· α>
    φ χ
    'ο,
    Ν ‘Φ
    C&
    Ο........Í--.....ο
    ο.........I........ό-
    1 5 2 6 Ο ο 7 4 8 9 10 11 12 13 14 15 18
    * v ♦ ♦ ♦ ♦
    «‘♦Φ’*
    Ka ♦
    X * *'· *
    Φ» **
    11 12 13 *
    47 48
HU0400295A 2001-09-17 2002-09-11 Method for interpolation of video coding, video coder, kodek, further terminal equipment and telecommunication system for realizing that method HU228954B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/954,608 US6950469B2 (en) 2001-09-17 2001-09-17 Method for sub-pixel value interpolation
PCT/FI2002/000729 WO2003026296A1 (en) 2001-09-17 2002-09-11 Method for sub-pixel value interpolation

Publications (2)

Publication Number Publication Date
HUP0400295A2 HUP0400295A2 (en) 2004-08-30
HU228954B1 true HU228954B1 (en) 2013-07-29

Family

ID=25495681

Family Applications (1)

Application Number Title Priority Date Filing Date
HU0400295A HU228954B1 (en) 2001-09-17 2002-09-11 Method for interpolation of video coding, video coder, kodek, further terminal equipment and telecommunication system for realizing that method

Country Status (17)

Country Link
US (3) US6950469B2 (hu)
EP (1) EP1433316B9 (hu)
JP (3) JP4698947B2 (hu)
KR (3) KR20080007276A (hu)
CN (2) CN1331353C (hu)
AU (1) AU2002324085C1 (hu)
BR (1) BR0211263A (hu)
CA (1) CA2452632C (hu)
EE (1) EE05594B1 (hu)
ES (1) ES2540583T7 (hu)
HU (1) HU228954B1 (hu)
MX (1) MXPA04000203A (hu)
PT (1) PT1433316E (hu)
RU (2) RU2317654C2 (hu)
SG (1) SG167662A1 (hu)
WO (1) WO2003026296A1 (hu)
ZA (1) ZA200308785B (hu)

Families Citing this family (238)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6983018B1 (en) 1998-11-30 2006-01-03 Microsoft Corporation Efficient motion vector coding for video compression
KR100311482B1 (ko) 1999-10-21 2001-10-18 구자홍 보간 영상의 화질 개선을 위한 필터링 제어방법
US7266150B2 (en) 2001-07-11 2007-09-04 Dolby Laboratories, Inc. Interpolation of video compression frames
US7082450B2 (en) 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
CN1298171C (zh) * 2001-09-18 2007-01-31 松下电器产业株式会社 图像的编码方法和图像的译码方法
US20030059089A1 (en) * 2001-09-25 2003-03-27 Quinlan James E. Block matching at the fractional pixel level for motion estimation
US7630566B2 (en) * 2001-09-25 2009-12-08 Broadcom Corporation Method and apparatus for improved estimation and compensation in digital video compression and decompression
US7181070B2 (en) * 2001-10-30 2007-02-20 Altera Corporation Methods and apparatus for multiple stage video decoding
US20030099403A1 (en) * 2001-11-13 2003-05-29 Trusight Ltd. Image compression with dynamic programming
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US8175159B2 (en) * 2002-01-24 2012-05-08 Hitachi, Ltd. Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus
EP1469682A4 (en) * 2002-01-24 2010-01-27 Hitachi Ltd SIGNAL CODING METHOD FOR MOVABLE IMAGES, DECODING METHOD, CODING DEVICE AND DECODING DEVICE
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
US8284844B2 (en) 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
US7110459B2 (en) 2002-04-10 2006-09-19 Microsoft Corporation Approximate bicubic filter
US7116831B2 (en) 2002-04-10 2006-10-03 Microsoft Corporation Chrominance motion vector rounding
US7305034B2 (en) * 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US7280700B2 (en) 2002-07-05 2007-10-09 Microsoft Corporation Optimization techniques for data compression
US7154952B2 (en) * 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
KR100472476B1 (ko) * 2002-08-31 2005-03-10 삼성전자주식회사 움직임 보상을 위한 보간 방법 및 그 장치
US7400774B2 (en) * 2002-09-06 2008-07-15 The Regents Of The University Of California Encoding and decoding of digital data using cues derivable at a decoder
US7231090B2 (en) * 2002-10-29 2007-06-12 Winbond Electronics Corp. Method for performing motion estimation with Walsh-Hadamard transform (WHT)
US7408988B2 (en) * 2002-12-20 2008-08-05 Lsi Corporation Motion estimation engine with parallel interpolation and search hardware
US7212676B2 (en) * 2002-12-30 2007-05-01 Intel Corporation Match MSB digital image compression
JP3997171B2 (ja) * 2003-03-27 2007-10-24 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法、及び動画像復号プログラム
US9330060B1 (en) 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US8660182B2 (en) * 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US7499495B2 (en) 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US7426308B2 (en) * 2003-07-18 2008-09-16 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US7609763B2 (en) 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7317839B2 (en) * 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7620106B2 (en) 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US7616692B2 (en) 2003-09-07 2009-11-10 Microsoft Corporation Hybrid motion vector prediction for interlaced forward-predicted fields
US7623574B2 (en) 2003-09-07 2009-11-24 Microsoft Corporation Selecting between dominant and non-dominant motion vector predictor polarities
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7599438B2 (en) 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US7577200B2 (en) 2003-09-07 2009-08-18 Microsoft Corporation Extended range variable length coding/decoding of differential motion vector information
US7253374B2 (en) * 2003-09-15 2007-08-07 General Motors Corporation Sheet-to-tube welded structure and method
JP4206886B2 (ja) * 2003-09-29 2009-01-14 ソニー株式会社 Itrデータ再生装置、記録再生システムおよび補間フィルタ
NO319629B1 (no) * 2003-11-28 2005-09-05 Tandberg Telecom As Fremgangsmate for korrigering av interpolerte pikselverdier
NO320114B1 (no) * 2003-12-05 2005-10-24 Tandberg Telecom As Forbedret utregning av interpolerte pixelverdier
EP1578137A2 (en) * 2004-03-17 2005-09-21 Matsushita Electric Industrial Co., Ltd. Moving picture coding apparatus with multistep interpolation process
JP4419062B2 (ja) * 2004-03-29 2010-02-24 ソニー株式会社 画像処理装置および方法、記録媒体、並びにプログラム
EP1733562A1 (en) * 2004-03-31 2006-12-20 Koninklijke Philips Electronics N.V. Motion estimation and segmentation for video data
CN1926882B (zh) * 2004-04-21 2010-10-06 松下电器产业株式会社 运动补偿装置
KR100605105B1 (ko) * 2004-05-28 2006-07-26 삼성전자주식회사 영상 보간 장치
US7565020B2 (en) * 2004-07-03 2009-07-21 Microsoft Corp. System and method for image coding employing a hybrid directional prediction and wavelet lifting
CN100377599C (zh) * 2004-09-03 2008-03-26 北京航空航天大学 一种快速亚像素运动估计方法
US20060088104A1 (en) * 2004-10-27 2006-04-27 Stephen Molloy Non-integer pixel sharing for video encoding
US7792192B2 (en) * 2004-11-19 2010-09-07 Analog Devices, Inc. System and method for sub-pixel interpolation in motion vector estimation
JP4277793B2 (ja) * 2004-12-17 2009-06-10 ソニー株式会社 画像処理装置、符号化装置およびそれらの方法
US7668455B2 (en) * 2004-12-20 2010-02-23 Fujifilm Corporation Image capturing apparatus, image capturing method, reproducing apparatus, reproducing method and program
US7653132B2 (en) * 2004-12-21 2010-01-26 Stmicroelectronics, Inc. Method and system for fast implementation of subpixel interpolation
US20060165162A1 (en) * 2005-01-24 2006-07-27 Ren-Wei Chiang Method and system for reducing the bandwidth access in video encoding
JP4736456B2 (ja) * 2005-02-15 2011-07-27 株式会社日立製作所 走査線補間装置、映像表示装置、映像信号処理装置
US8175168B2 (en) * 2005-03-18 2012-05-08 Sharp Laboratories Of America, Inc. Methods and systems for picture up-sampling
WO2006106039A1 (en) * 2005-04-06 2006-10-12 Thomson Licensing Method and apparatus for encoding enhancement layer video data
JP4081103B2 (ja) * 2005-05-11 2008-04-23 株式会社東芝 動画像符号化装置
US7526419B2 (en) * 2005-05-24 2009-04-28 International Business Machines Corporation Methods for reconstructing data from simulation models
BRPI0614662A2 (pt) * 2005-07-28 2011-04-12 Thomson Licensing compensação e estimativa de movimento usando um cache hierárquico
US20070040837A1 (en) * 2005-08-19 2007-02-22 Seok Jin W Motion vector estimation method and continuous picture generation method based on convexity property of sub pixel
KR100623036B1 (ko) * 2005-09-22 2006-09-13 삼익전자공업 주식회사 다이나믹 보간 주사에 의해 해상도를 향상시킨 전광판시스템
CN1859576A (zh) * 2005-10-11 2006-11-08 华为技术有限公司 对空间分层编码视频图象的上采样方法及其系统
US8265151B1 (en) * 2005-12-14 2012-09-11 Ambarella Taiwan Ltd. Mode decision using approximate 1/2 pel interpolation
US8731071B1 (en) 2005-12-15 2014-05-20 Nvidia Corporation System for performing finite input response (FIR) filtering in motion estimation
US20070146242A1 (en) * 2005-12-22 2007-06-28 Eastman Kodak Company High resolution display for monochrome images with color highlighting
CN1794821A (zh) * 2006-01-11 2006-06-28 浙江大学 可分级视频压缩中插值的方法与装置
JP4677351B2 (ja) * 2006-02-17 2011-04-27 キヤノン株式会社 動き補償器、動き補償処理方法、コンピュータプログラム及び記憶媒体
US8724702B1 (en) * 2006-03-29 2014-05-13 Nvidia Corporation Methods and systems for motion estimation used in video coding
WO2007114368A1 (ja) * 2006-03-30 2007-10-11 Kabushiki Kaisha Toshiba 画像符号化装置及び方法並びに画像復号化装置及び方法
WO2007116551A1 (ja) * 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
US8208553B2 (en) * 2006-05-04 2012-06-26 Altera Corporation Methods and apparatus for quarter-pel refinement in a SIMD array processor
JP4682384B2 (ja) * 2006-07-11 2011-05-11 株式会社メガチップス 1/4画素輝度用動き予測機構、組合せ輝度用動き予測機構、及び組合せ輝度・色差用動き予測機構
US8155454B2 (en) * 2006-07-20 2012-04-10 Qualcomm Incorporated Method and apparatus for encoder assisted post-processing
US8253752B2 (en) * 2006-07-20 2012-08-28 Qualcomm Incorporated Method and apparatus for encoder assisted pre-processing
US8660380B2 (en) 2006-08-25 2014-02-25 Nvidia Corporation Method and system for performing two-dimensional transform on data value array with reduced power consumption
KR100804451B1 (ko) * 2006-09-25 2008-02-20 광운대학교 산학협력단 영상처리의 1/4 픽셀 보간 방법 및 그의 프로세서
US9307122B2 (en) * 2006-09-27 2016-04-05 Core Wireless Licensing S.A.R.L. Method, apparatus, and computer program product for providing motion estimation for video encoding
KR100827093B1 (ko) * 2006-10-13 2008-05-02 삼성전자주식회사 영상 부호화 방법 및 장치
KR100800761B1 (ko) * 2006-10-19 2008-02-01 삼성전자주식회사 계산량을 최소화하는 색차 신호의 보간 방법 및 장치
KR101354659B1 (ko) * 2006-11-08 2014-01-28 삼성전자주식회사 멀티 코덱을 지원하는 움직임 보상 방법 및 장치
KR100874949B1 (ko) 2006-11-15 2008-12-19 삼성전자주식회사 단일 명령 다중 자료 프로세서 및 그것을 위한 메모리어레이 구조
JP4753204B2 (ja) * 2006-11-17 2011-08-24 株式会社ソニー・コンピュータエンタテインメント 符号化処理装置および符号化処理方法
US8411709B1 (en) 2006-11-27 2013-04-02 Marvell International Ltd. Use of previously buffered state information to decode in an hybrid automatic repeat request (H-ARQ) transmission mode
JP2008165381A (ja) * 2006-12-27 2008-07-17 Ricoh Co Ltd 画像処理装置及び画像処理方法
KR101411315B1 (ko) * 2007-01-22 2014-06-26 삼성전자주식회사 인트라/인터 예측 방법 및 장치
US8296662B2 (en) * 2007-02-05 2012-10-23 Brother Kogyo Kabushiki Kaisha Image display device
CN101658044B (zh) 2007-04-09 2012-11-14 诺基亚公司 以低编码器和解码器复杂度进行视频编码的高精度运动矢量
US8756482B2 (en) 2007-05-25 2014-06-17 Nvidia Corporation Efficient encoding/decoding of a sequence of data frames
US9118927B2 (en) 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
KR101380615B1 (ko) * 2007-06-28 2014-04-14 삼성전자주식회사 영상 동적 범위 향상 방법 및 장치
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US8509567B2 (en) 2007-07-09 2013-08-13 Analog Devices, Inc. Half pixel interpolator for video motion estimation accelerator
US8873625B2 (en) 2007-07-18 2014-10-28 Nvidia Corporation Enhanced compression in representing non-frame-edge blocks of image frames
KR101396365B1 (ko) * 2007-08-28 2014-05-30 삼성전자주식회사 영상의 시공간적 움직임 추정/보상 방법 및 장치
KR100909390B1 (ko) * 2007-09-18 2009-07-24 한국과학기술원 고속 움직임 보상 장치 및 방법
JP4461165B2 (ja) * 2007-09-26 2010-05-12 株式会社東芝 画像処理装置、方法およびプログラム
JP4900175B2 (ja) * 2007-10-04 2012-03-21 セイコーエプソン株式会社 画像処理装置及び方法並びにプログラム
WO2009044356A2 (en) * 2007-10-05 2009-04-09 Nokia Corporation Video coding with pixel-aligned directional adaptive interpolation filters
US8416861B2 (en) 2007-10-14 2013-04-09 Nokia Corporation Fixed-point implementation of an adaptive image filter with high coding efficiency
US8897393B1 (en) 2007-10-16 2014-11-25 Marvell International Ltd. Protected codebook selection at receiver for transmit beamforming
US8542725B1 (en) 2007-11-14 2013-09-24 Marvell International Ltd. Decision feedback equalization for signals having unequally distributed patterns
TWI389573B (zh) * 2007-12-06 2013-03-11 Mstar Semiconductor Inc 僅依據水平方向之影像區塊執行影像處理運作的影像處理方法及其相關裝置
KR101456487B1 (ko) * 2008-03-04 2014-10-31 삼성전자주식회사 부화소 단위의 움직임 예측을 이용한 영상 부호화, 복호화방법 및 그 장치
US8565325B1 (en) 2008-03-18 2013-10-22 Marvell International Ltd. Wireless device communication in the 60GHz band
US8971412B2 (en) * 2008-04-10 2015-03-03 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
US8804831B2 (en) 2008-04-10 2014-08-12 Qualcomm Incorporated Offsets at sub-pixel resolution
RU2479941C2 (ru) * 2008-04-10 2013-04-20 Квэлкомм Инкорпорейтед Технологии прогнозирования для интерполяции при кодировании видео
US8705622B2 (en) 2008-04-10 2014-04-22 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding
US20090257499A1 (en) * 2008-04-10 2009-10-15 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
US8462842B2 (en) 2008-04-10 2013-06-11 Qualcomm, Incorporated Symmetry for interpolation filtering of sub-pixel positions in video coding
US8831086B2 (en) * 2008-04-10 2014-09-09 Qualcomm Incorporated Prediction techniques for interpolation in video coding
US9967590B2 (en) 2008-04-10 2018-05-08 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter
US9077971B2 (en) 2008-04-10 2015-07-07 Qualcomm Incorporated Interpolation-like filtering of integer-pixel positions in video coding
EP2304963B1 (fr) * 2008-07-01 2015-11-11 Orange Procede et dispositif de codage d'images mettant en oeuvre une prediction amelioree, procede et dispositif de decodage, signal et programmes d'ordinateur correspondants
US8811484B2 (en) * 2008-07-07 2014-08-19 Qualcomm Incorporated Video encoding by filter selection
RU2509355C2 (ru) * 2008-07-08 2014-03-10 Нортек Интернэшнл (Пти) Лимитед Устройство и способ классификации движения объектов в зоне отслеживания
JP2010028220A (ja) * 2008-07-15 2010-02-04 Sony Corp 動きベクトル検出装置、動きベクトル検出方法、画像符号化装置及びプログラム
US8498342B1 (en) 2008-07-29 2013-07-30 Marvell International Ltd. Deblocking filtering
US8761261B1 (en) * 2008-07-29 2014-06-24 Marvell International Ltd. Encoding using motion vectors
EP2319039B1 (fr) * 2008-07-29 2017-11-29 Orange Procede de mise a jour d'un codeur par interpolation de filtre
CN102113326A (zh) 2008-08-04 2011-06-29 杜比实验室特许公司 重叠块差异估计和补偿体系结构
US8345533B1 (en) 2008-08-18 2013-01-01 Marvell International Ltd. Frame synchronization techniques
US8750378B2 (en) * 2008-09-23 2014-06-10 Qualcomm Incorporated Offset calculation in switched interpolation filters
US8131056B2 (en) * 2008-09-30 2012-03-06 International Business Machines Corporation Constructing variability maps by correlating off-state leakage emission images to layout information
US8681893B1 (en) 2008-10-08 2014-03-25 Marvell International Ltd. Generating pulses using a look-up table
JP4404943B1 (ja) * 2008-11-27 2010-01-27 コデン株式会社 無人ボート自動観測システムおよび無人ボート自動観測方法
US8666181B2 (en) 2008-12-10 2014-03-04 Nvidia Corporation Adaptive multiple engine image motion detection system and method
US20100165078A1 (en) * 2008-12-30 2010-07-01 Sensio Technologies Inc. Image compression using checkerboard mosaic for luminance and chrominance color space images
US20100166076A1 (en) * 2008-12-30 2010-07-01 Tandberg Telecom As Method, apparatus, and computer readable medium for calculating run and level representations of quantized transform coefficients representing pixel values included in a block of a video picture
JP2010161747A (ja) * 2009-01-09 2010-07-22 Toshiba Corp サブピクセル生成装置及び方法並びに動き補償装置
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
JP5580541B2 (ja) * 2009-03-06 2014-08-27 パナソニック株式会社 画像復号化装置および画像復号化方法
US8520771B1 (en) 2009-04-29 2013-08-27 Marvell International Ltd. WCDMA modulation
US7991245B2 (en) * 2009-05-29 2011-08-02 Putman Matthew C Increasing image resolution method employing known background and specimen
RU2405127C1 (ru) * 2009-06-08 2010-11-27 Михаил Валерьевич Соловьёв Способ регистрации пакетов навигационных данных, передаваемых глобальной системой навигации и характеризующих местоположение движущегося объекта
JP2011030184A (ja) * 2009-07-01 2011-02-10 Sony Corp 画像処理装置、及び、画像処理方法
JP5325745B2 (ja) * 2009-11-02 2013-10-23 株式会社ソニー・コンピュータエンタテインメント 動画像処理プログラム、装置および方法、動画像処理装置を搭載した撮像装置
KR101601848B1 (ko) * 2009-12-01 2016-03-10 에스케이 텔레콤주식회사 인터 예측 프레임 생성장치 및 그 생성방법, 및 거기에 이용되는 참조 프레임 보간장치 및 그 방법
WO2011075071A1 (en) 2009-12-17 2011-06-23 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for video coding
US8406537B2 (en) * 2009-12-17 2013-03-26 General Electric Company Computed tomography system with data compression and transfer
US20110200108A1 (en) * 2010-02-18 2011-08-18 Qualcomm Incorporated Chrominance high precision motion filtering for motion interpolation
JP2011199396A (ja) * 2010-03-17 2011-10-06 Ntt Docomo Inc 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法、及び動画像予測復号プログラム
KR101847072B1 (ko) * 2010-04-05 2018-04-09 삼성전자주식회사 영상 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
KR101682147B1 (ko) 2010-04-05 2016-12-05 삼성전자주식회사 변환 및 역변환에 기초한 보간 방법 및 장치
US9219921B2 (en) 2010-04-12 2015-12-22 Qualcomm Incorporated Mixed tap filters
TWI864983B (zh) 2010-04-13 2024-12-01 美商Ge影像壓縮有限公司 樣本區域合併技術
EP3958573B1 (en) 2010-04-13 2023-06-07 GE Video Compression, LLC Video coding using multi-tree sub-divisions of images
CN106067985B (zh) 2010-04-13 2019-06-28 Ge视频压缩有限责任公司 跨平面预测
BR122020008249B1 (pt) * 2010-04-13 2021-02-17 Ge Video Compression, Llc herança em amostra de arranjo em subdivisão multitree
US8963996B2 (en) * 2010-05-05 2015-02-24 Samsung Electronics Co., Ltd. Communication of stereoscopic three-dimensional (3D) video information including an uncompressed eye view video frames
CN102986212B (zh) 2010-05-07 2015-11-25 日本电信电话株式会社 活动图像编码控制方法、活动图像编码装置
TWI423164B (zh) * 2010-05-07 2014-01-11 Silicon Motion Inc 用來產生一高品質放大影像之方法及相關裝置
RU2527740C2 (ru) * 2010-05-12 2014-09-10 Ниппон Телеграф Энд Телефон Корпорейшн Способ управления кодированием видео, устройство кодирования видео и программа кодирования видео
US8447105B2 (en) * 2010-06-07 2013-05-21 Microsoft Corporation Data driven interpolation using geodesic affinity
RU2436043C1 (ru) * 2010-07-08 2011-12-10 Открытое акционерное общество "Завод им. В.А. Дегтярева" Способ согласования осей инерциальной навигационной системы с осью наземного транспортного средства и измерительный комплекс для его осуществления
MY182191A (en) * 2010-07-09 2021-01-18 Samsung Electronics Co Ltd Image interpolation method and apparatus
US8817771B1 (en) 2010-07-16 2014-08-26 Marvell International Ltd. Method and apparatus for detecting a boundary of a data frame in a communication network
US20120027081A1 (en) * 2010-07-30 2012-02-02 Cisco Technology Inc. Method, system, and computer readable medium for implementing run-level coding
RU2436044C1 (ru) * 2010-08-16 2011-12-10 Открытое акционерное общество "Завод им. В.А. Дегтярева" Способ контроля работоспособности и точностных характеристик навигационной аппаратуры топопривязчика и комплект средств для его реализации
US20120063515A1 (en) * 2010-09-09 2012-03-15 Qualcomm Incorporated Efficient Coding of Video Parameters for Weighted Motion Compensated Prediction in Video Coding
CN102402781B (zh) * 2010-09-13 2014-05-14 慧荣科技股份有限公司 用来产生一高品质放大图像的方法
RU2440558C1 (ru) * 2010-10-11 2012-01-20 Открытое акционерное общество "Завод им. В.А. Дегтярева" Способ автоматизированного определения геодезических данных с помощью универсального топопривязчика (утп)
US10045046B2 (en) * 2010-12-10 2018-08-07 Qualcomm Incorporated Adaptive support for interpolating values of sub-pixels for video coding
CN104796716B (zh) * 2010-12-21 2017-12-29 株式会社Ntt都科摩 使用平面表达的增强帧内预测编码
US9445126B2 (en) * 2011-01-05 2016-09-13 Qualcomm Incorporated Video filtering using a combination of one-dimensional switched filter and one-dimensional adaptive filter
WO2012093377A1 (en) 2011-01-07 2012-07-12 Nokia Corporation Motion prediction in video coding
CN102595118B (zh) * 2011-01-14 2015-04-08 华为技术有限公司 一种编解码中的预测方法和预测器
US8797391B2 (en) * 2011-01-14 2014-08-05 Himax Media Solutions, Inc. Stereo image displaying method
US9049454B2 (en) 2011-01-19 2015-06-02 Google Technology Holdings Llc. High efficiency low complexity interpolation filters
US20120224639A1 (en) * 2011-03-03 2012-09-06 General Instrument Corporation Method for interpolating half pixels and quarter pixels
US20120230407A1 (en) 2011-03-11 2012-09-13 General Instrument Corporation Interpolation Filter Selection Using Prediction Index
JP5768491B2 (ja) * 2011-05-17 2015-08-26 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
PL2916549T3 (pl) * 2011-06-24 2018-10-31 Ntt Docomo, Inc. Sposób i urządzenie do kompensacji ruchu
EP2724534A2 (en) * 2011-06-24 2014-04-30 Motorola Mobility LLC Selection of phase offsets for interpolation filters for motion compensation
TWI554088B (zh) * 2011-06-28 2016-10-11 三星電子股份有限公司 使用非對稱內插濾波器的內插影像用的方法與裝置
BR112013033743A2 (pt) 2011-07-01 2019-09-24 Motorola Mobility Inc filtro de interpolação de subpixel conjunto para predição temporal
CN102857752B (zh) * 2011-07-01 2016-03-30 华为技术有限公司 一种像素预测方法和装置
US9129411B2 (en) * 2011-07-21 2015-09-08 Luca Rossato Upsampling in a tiered signal quality hierarchy
CN107968945B (zh) * 2011-09-14 2021-09-14 三星电子株式会社 对视频进行解码的方法和对视频进行编码的方法
US20130070091A1 (en) * 2011-09-19 2013-03-21 Michael Mojaver Super resolution imaging and tracking system
US10924668B2 (en) 2011-09-19 2021-02-16 Epilog Imaging Systems Method and apparatus for obtaining enhanced resolution images
US9137433B2 (en) 2011-09-19 2015-09-15 Michael Mojaver Super resolution binary imaging and tracking system
RU2473124C1 (ru) * 2011-09-23 2013-01-20 Общество С Ограниченной Ответственностью "Виси Рус" Способ обнаружения порнографии на цифровых изображениях (варианты)
US20130083845A1 (en) 2011-09-30 2013-04-04 Research In Motion Limited Methods and devices for data compression using a non-uniform reconstruction space
HUE056377T2 (hu) * 2011-10-24 2022-02-28 Innotive Ltd Eljárás és készülék intra predikciósmód dekódolására
EP2595382B1 (en) 2011-11-21 2019-01-09 BlackBerry Limited Methods and devices for encoding and decoding transform domain filters
JP5911166B2 (ja) * 2012-01-10 2016-04-27 シャープ株式会社 画像処理装置、画像処理方法、画像処理プログラム、撮像装置、及び画像表示装置
US9325991B2 (en) 2012-04-11 2016-04-26 Qualcomm Incorporated Motion vector rounding
US8819525B1 (en) 2012-06-14 2014-08-26 Google Inc. Error concealment guided robustness
US9041834B2 (en) 2012-09-19 2015-05-26 Ziilabs Inc., Ltd. Systems and methods for reducing noise in video streams
JP5697649B2 (ja) * 2012-11-27 2015-04-08 京セラドキュメントソリューションズ株式会社 画像処理装置
JP5730274B2 (ja) * 2012-11-27 2015-06-03 京セラドキュメントソリューションズ株式会社 画像処理装置
US9432690B2 (en) * 2013-01-30 2016-08-30 Ati Technologies Ulc Apparatus and method for video processing
US9225979B1 (en) * 2013-01-30 2015-12-29 Google Inc. Remote access encoding
US20140267916A1 (en) * 2013-03-12 2014-09-18 Tandent Vision Science, Inc. Selective perceptual masking via scale separation in the spatial and temporal domains using intrinsic images for use in data compression
US20140269943A1 (en) * 2013-03-12 2014-09-18 Tandent Vision Science, Inc. Selective perceptual masking via downsampling in the spatial and temporal domains using intrinsic images for use in data compression
KR20160002679A (ko) * 2013-05-01 2016-01-08 엘지전자 주식회사 신호 송수신 장치 및 신호 송수신 방법
AU2013213660A1 (en) * 2013-08-06 2015-02-26 Canon Kabushiki Kaisha Method for printing an upscaled image
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
CN103793917B (zh) * 2014-02-24 2017-02-01 哈尔滨工程大学 一种结合两种插值算法的遥感图像亚像元定位方法
US10462480B2 (en) * 2014-12-31 2019-10-29 Microsoft Technology Licensing, Llc Computationally efficient motion estimation
US10291932B2 (en) * 2015-03-06 2019-05-14 Qualcomm Incorporated Method and apparatus for low complexity quarter pel generation in motion search
US10283031B2 (en) * 2015-04-02 2019-05-07 Apple Inc. Electronic device with image processor to reduce color motion blur
US9542732B2 (en) * 2015-04-03 2017-01-10 Cognex Corporation Efficient image transformation
US10275863B2 (en) 2015-04-03 2019-04-30 Cognex Corporation Homography rectification
US10009622B1 (en) 2015-12-15 2018-06-26 Google Llc Video coding with degradation of residuals
US10116957B2 (en) 2016-09-15 2018-10-30 Google Inc. Dual filter type for motion compensated prediction in video coding
CN106658024B (zh) * 2016-10-20 2019-07-16 杭州当虹科技股份有限公司 一种快速的视频编码方法
DE102016225140B3 (de) * 2016-12-15 2017-12-07 Audi Ag Verfahren zum Bestimmen einer relativen Position eines Kraftfahrzeugs, Positionsbestimmungssystem für ein Kraftfahrzeug und Kraftfahrzeug
RU2753643C2 (ru) * 2017-01-31 2021-08-18 Шарп Кабусики Кайся Системы и способы для выполнения планарного кодирования видеосигналов с внутренним прогнозированием
US10499078B1 (en) 2017-02-07 2019-12-03 Google Llc Implicit motion compensation filter selection
CN106998437B (zh) * 2017-03-31 2020-07-31 武汉斗鱼网络科技有限公司 一种重建视频图像的方法及装置
US20200014945A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application acceleration
US11252464B2 (en) 2017-06-14 2022-02-15 Mellanox Technologies, Ltd. Regrouping of video data in host memory
US12058309B2 (en) * 2018-07-08 2024-08-06 Mellanox Technologies, Ltd. Application accelerator
CN109922329B (zh) * 2017-12-13 2021-02-26 北京传送科技有限公司 虚拟现实影像数据的压缩方法、解压缩方法及装置
US11044518B2 (en) * 2018-03-20 2021-06-22 At&T Mobility Ii Llc Video access master platform
US11051058B2 (en) * 2018-09-24 2021-06-29 Hewlett Packard Enterprise Development Lp Real-time wireless video delivery system using a multi-channel communications link
CN109348234B (zh) * 2018-11-12 2021-11-19 北京佳讯飞鸿电气股份有限公司 一种高效亚像素运动估计方法及系统
JP7190661B2 (ja) * 2019-02-06 2022-12-16 パナソニックIpマネジメント株式会社 画像処理装置、画像処理方法および画像処理システム
JP7627692B2 (ja) 2019-11-08 2025-02-06 オーピー ソリューションズ, エルエルシー 適応クロッピングのための方法及びシステム
US12238273B2 (en) 2019-12-03 2025-02-25 Mellanox Technologies, Ltd Video coding system
KR102702094B1 (ko) 2019-12-17 2024-09-04 삼성전자주식회사 다이나믹 비전 센서 시스템
TWI790600B (zh) * 2021-04-21 2023-01-21 宏芯科技股份有限公司 區域式視訊影像插補裝置及其方法
US12339902B2 (en) 2021-10-05 2025-06-24 Mellanox Technologies, Ltd Hardware accelerated video encoding
CN121399916A (zh) * 2023-06-29 2026-01-23 三星电子株式会社 用于校正由柱面透镜引起的失真的方法和显示设备
US20250260831A1 (en) * 2024-02-14 2025-08-14 Tencent America LLC Implicit sub-pel position derivation for template matching-based intra prediction

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3854337T2 (de) * 1987-06-09 1996-02-01 Sony Corp Bewegungskompensierte Interpolation von digitalen Fernsehbildern.
GB8713454D0 (en) 1987-06-09 1987-07-15 Sony Corp Television standards converters
US4816913A (en) * 1987-11-16 1989-03-28 Technology, Inc., 64 Pixel interpolation circuitry as for a video signal processor
US4937666A (en) * 1989-12-04 1990-06-26 Bell Communications Research, Inc. Circuit implementation of block matching algorithm with fractional precision
GB2249906B (en) * 1990-11-15 1994-04-27 Sony Broadcast & Communication Motion compensated interpolation of images
JP2861462B2 (ja) * 1991-04-12 1999-02-24 ソニー株式会社 動きベクトル検出装置
US5337088A (en) * 1991-04-18 1994-08-09 Matsushita Electric Industrial Co. Ltd. Method of correcting an image signal decoded in block units
US5430811A (en) * 1991-12-25 1995-07-04 Matsushita Electric Industrial Co., Ltd. Method for interpolating missing pixels and an apparatus employing the method
US5594813A (en) * 1992-02-19 1997-01-14 Integrated Information Technology, Inc. Programmable architecture and methods for motion estimation
JP2636622B2 (ja) * 1992-03-13 1997-07-30 松下電器産業株式会社 ビデオ信号の符号化方法及び復号化方法ならびにビデオ信号の符号化装置及び復号化装置
US5461423A (en) * 1992-05-29 1995-10-24 Sony Corporation Apparatus for generating a motion vector with half-pixel precision for use in compressing a digital motion picture signal
JP2723199B2 (ja) 1992-06-03 1998-03-09 シャープ株式会社 光ディスクプレーヤのトラッキングサーボ引き込み回路装置
KR100283343B1 (ko) * 1992-06-25 2001-03-02 이데이 노부유끼 화상신호 부호화방법 및 복호화방법과 화상신호 부호화장치 및 복호화장치
JPH06197334A (ja) * 1992-07-03 1994-07-15 Sony Corp 画像信号符号化方法、画像信号復号化方法、画像信号符号化装置、画像信号復号化装置及び画像信号記録媒体
KR970000761B1 (ko) * 1992-10-07 1997-01-18 대우전자 주식회사 소형 디지탈 방식 고선명 텔레비젼
DE69430147T2 (de) * 1993-04-09 2002-10-24 Sony Corp., Tokio/Tokyo Bildkodierungsverfahren, und -vorrichtung
JP2967014B2 (ja) * 1993-05-24 1999-10-25 キヤノン株式会社 画像処理装置
JPH08510880A (ja) * 1993-06-01 1996-11-12 トムソン マルチメディア ソシエテ アノニム 動き補償された補間の方法及び装置
US5684538A (en) 1994-08-18 1997-11-04 Hitachi, Ltd. System and method for performing video coding/decoding using motion compensation
JP3392564B2 (ja) * 1995-02-27 2003-03-31 三洋電機株式会社 単板式カラービデオカメラ
JPH09102954A (ja) * 1995-10-04 1997-04-15 Matsushita Electric Ind Co Ltd 1つまたは2つの予測ブロックからブロックの画素値を計算する方法
US5991463A (en) * 1995-11-08 1999-11-23 Genesis Microchip Inc. Source data interpolation method and apparatus
KR100192270B1 (ko) * 1996-02-03 1999-06-15 구자홍 에이치디티브이 비데오 디코더 회로
KR100226684B1 (ko) * 1996-03-22 1999-10-15 전주범 반화소 움직임 추정장치
JP3224514B2 (ja) * 1996-08-21 2001-10-29 シャープ株式会社 動画像符号化装置および動画像復号装置
RU2131172C1 (ru) * 1996-12-10 1999-05-27 Полыковский Андрей Маркович Интерполяционный способ сжатия телевизионного сигнала
DE19730305A1 (de) 1997-07-15 1999-01-21 Bosch Gmbh Robert Verfahren zur Erzeugung eines verbesserten Bildsignals bei der Bewegungsschätzung von Bildsequenzen, insbesondere eines Prädiktionssignals für Bewegtbilder mit bewegungskompensierender Prädiktion
DE19746214A1 (de) * 1997-10-21 1999-04-22 Bosch Gmbh Robert Verfahren zur bewegungskompensierenden Prädiktion von Bewegtbildfolgen
US6122017A (en) * 1998-01-22 2000-09-19 Hewlett-Packard Company Method for providing motion-compensated multi-field enhancement of still images from video
AU3268899A (en) 1998-04-29 1999-11-16 Koninklijke Philips Electronics N.V. Image interpolation
US6252576B1 (en) * 1998-08-06 2001-06-26 In-System Design, Inc. Hardware-efficient system for hybrid-bilinear image scaling
EP1083752A1 (en) * 1999-09-08 2001-03-14 STMicroelectronics S.r.l. Video decoder with reduced memory
JP4599672B2 (ja) 1999-12-21 2010-12-15 株式会社ニコン 補間処理装置および補間処理プログラムを記録した記録媒体
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation

Also Published As

Publication number Publication date
CN1331353C (zh) 2007-08-08
RU2007133925A (ru) 2009-03-20
RU2317654C2 (ru) 2008-02-20
PT1433316E (pt) 2015-07-31
ES2540583T7 (es) 2017-07-10
AU2002324085B2 (en) 2007-09-06
ZA200308785B (en) 2004-09-16
RU2477575C2 (ru) 2013-03-10
CN1537384A (zh) 2004-10-13
US7280599B2 (en) 2007-10-09
KR100972850B1 (ko) 2010-07-28
KR20040036902A (ko) 2004-05-03
ES2540583T9 (es) 2018-02-22
EP1433316B1 (en) 2015-04-29
JP4700704B2 (ja) 2011-06-15
US8036273B2 (en) 2011-10-11
CA2452632C (en) 2013-04-23
WO2003026296A1 (en) 2003-03-27
HK1118411A1 (en) 2009-02-06
EE200400046A (et) 2004-04-15
US6950469B2 (en) 2005-09-27
KR101176903B1 (ko) 2012-08-30
CA2452632A1 (en) 2003-03-27
US20080069203A1 (en) 2008-03-20
US20050220353A1 (en) 2005-10-06
US20030112864A1 (en) 2003-06-19
ES2540583T3 (es) 2015-07-10
AU2002324085C1 (en) 2008-06-05
EP1433316A1 (en) 2004-06-30
RU2004101290A (ru) 2005-06-20
CN101232622B (zh) 2011-04-13
MXPA04000203A (es) 2004-03-18
EP1433316B3 (en) 2017-01-18
JP4698947B2 (ja) 2011-06-08
HUP0400295A2 (en) 2004-08-30
KR20110115181A (ko) 2011-10-20
JP5502765B2 (ja) 2014-05-28
JP2011101411A (ja) 2011-05-19
KR20080007276A (ko) 2008-01-17
EP1433316B9 (en) 2017-04-12
CN101232622A (zh) 2008-07-30
BR0211263A (pt) 2004-07-20
SG167662A1 (en) 2011-01-28
JP2008187727A (ja) 2008-08-14
JP2005503734A (ja) 2005-02-03
EE05594B1 (et) 2012-10-15

Similar Documents

Publication Publication Date Title
HU228954B1 (en) Method for interpolation of video coding, video coder, kodek, further terminal equipment and telecommunication system for realizing that method
JP4369090B2 (ja) ビデオ情報を符号化し復号化する方法、動き補償ビデオ符号器及び対応する復号器
JP4494789B2 (ja) 動的フィルタのコーディング
AU2002324085A1 (en) Method for sub-pixel value interpolation
JP2008178149A (ja) 運動ベクトルフィールドを圧縮するための装置及び方法
WO2008004768A1 (en) Image encoding/decoding method and apparatus
NO338548B1 (no) Fremgangsmåte og anordning for indikering av kvantifiseringsparametre i et videokodingssystem
JP2007515115A (ja) 内挿される画素値の計算方法の改良
GB2379820A (en) Interpolating values for sub-pixels
AU2007237319B2 (en) Method for sub-pixel value interpolation
HK1118411B (en) Method for sub-pixel value interpolation

Legal Events

Date Code Title Description
GB9A Succession in title

Owner name: NOKIA TECHNOLOGIES OY, FI

Free format text: FORMER OWNER(S): NOKIA CORPORATION, FI