CZ288596A3 - Method of encoding color values in a picture and apparatus for making the same - Google Patents
Method of encoding color values in a picture and apparatus for making the same Download PDFInfo
- Publication number
- CZ288596A3 CZ288596A3 CZ962885A CZ288596A CZ288596A3 CZ 288596 A3 CZ288596 A3 CZ 288596A3 CZ 962885 A CZ962885 A CZ 962885A CZ 288596 A CZ288596 A CZ 288596A CZ 288596 A3 CZ288596 A3 CZ 288596A3
- Authority
- CZ
- Czechia
- Prior art keywords
- color
- predominant
- code
- run
- pixels
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N11/00—Colour television systems
- H04N11/04—Colour television systems using pulse code modulation
- H04N11/042—Codec means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/64—Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
- H04N1/644—Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor using a reduced set of representative colours, e.g. each representing a particular range in a colour space
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Color Television Systems (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Processing Of Color Television Signals (AREA)
Description
Oblast Techniky
Tento vynález se týká kódování a dekódování rámců digitálních obrázků a zvláště kódování hodnot barev v pixelech. (pixel = trojice barevných elementů červené, zelené a modré barvy. pozn. překl.)
Dosavadní stav techniky
Kódování délky běhu je známou metodou, používanou např. jako jeden z kódových módů ve standardu Compact Disc Interactive (CD-i). Umožňuje kompaktněji kódovat množiny sousedních hodnot pixelů pomocí jedné specifikace barvy a stanovení počtu identických pixelů (η), místo n násobného opakování barevného kódu. Další informace o kódování délky běhu může být nalezena např. v lit. Newman, V.M. , Sproul, R.F.: Principles of Interactive Computer Graphics,
International Student Edition, 1979, pp 287-289, McGraw-Hill, ISBN 0-07-066455-2 a krátké shrnutí příslušných bodů bude uvedeno dále, s odkazy na doprovodné obr. 1 až 3.
Podstata wnálezu
Zatímco kódování délky běhu je velmi výkonné pro kompresi dat dlouhých běhů, je jeho efektivnost menší pro kratší běhy, a kódování rámců s velkým počtem krátkých běhů může být náročné na výpočet. Proto je cílem tohoto vynálezu popsat kódové schéma, které dosahuje alespoň uspokojivého stupně komprese bez přílišného zvýšení složitosti.
Tento vynález popisuje metodu kódování hodnot barev pixelů v rámcích digitálního obrázku, kde je každé barvě v obrázku přiřazena hodnota barvy, kde je v obrazovém rámci určena převládající barva a alespoň dva následné pixely jsou zakódovány do prvního kódového slova, které určuje běh, a druhého kódového slova, které určuje délku běhu, a kde pixely s barvami odlišnými od převládající barvy jsou kódovány pomocí kódů obsahujících alespoň příslušné hodnoty barev.
V tomto vynálezu je též popsáno zařízení na kódování obrázku uspořádané pro kódování hodnot barev pixelů v rámci digitálního obrázku pomocí přiřazení příslušné hodnoty barvy každé barvě v obrázku poté, co je určena převládající barva v rámci obrázku, toto zařízení je schopné identifikovat běhy alespoň dvou sousedních pixelů se stejnou převládající barvou a zakódovat každý takový běh do prvního kódového slova, které určuje běh, a do druhého kódového slova, které určuje délku běhu, a prostředky schopné určit pixely s barvami odlišnými od převládaj ící barvy a tyto zakódovat pomocí kódu obsahujícího alespoň příslušné hodnoty barev.
Mimoto je v tomto vynálezu popsán obrazový signál, který obsahuje zakódované rámce hodnot barev pixelů, ve kterém jsou dva či více následných pixelů s předem stanovenou převládající barvou v rámci kódovány ve formě prvního kódového slova, které určuje běh, a druhého kódového slova, které určuje délku běhu, a pixely s barvami odlišnými od převládající barvy jsou zakódovány ve formě kódu obsahujícího alespoň příslušné hodnoty barev. Je také popsáno záznamové médium (jako např. kompaktní disk nebo floppy disk), na němž je zaznamenán takový obrazový signál, spolu s inicializačními daty obsahujícími specifikaci zmíněné předem stanovené převládající barvy.
Vynález navíc popisuje zobrazovací zařízení uspořádané pro příjem a dekódování signálů typu popsaného výše, toto zařízení obsahuje alespoň jednu vyhledávací tabulku barev pixelů, včetně převládající barvy, pro rámce digitálního obrázku adresovaných zakódovanými hodnotami barev pixelů, a prostředky schopné při zobrazování generovat běhy alespoň dvou následných pixelů s převládající barvou, stejně jako jednotlivé pixely s barvou odlišnou od převládající barvy.
Příkladv provedení vynálezu
V prvním provedení vynálezu je kódována délkou běhu pouze převládající barva rámce. Proto není pro převládající barvu nutné specifikovat kód barvy pokaždé, kdy se určuje běh. Výkonnost je vyšší v případě, když je pravděpodobnost běhů převládající barvy nejvyšší. Obvyklou situací je ta, kdy je mnoho běhů krátké až střední délky s převládající barvou a s menším počtem takových běhů s jinými barvami. V této situaci mohou být všechny běhy, např. dva či více pixelů stejné barvy, pro dosažení vyšší účinnosti kódovány délkou běhu pro dosažení vyšší datové komprese, ale stále bez požadavku, aby alespoň krátké až střední délky běhu v dalším kódu. označován jako (t.j. 3 až 9 pixelů) obsahovaly barevný kód, kde má běh převládající barvu.
První kód může obsahovat subkód, který určuje jeden z možných rozsahů délky běhu, a druhé kódové slovo, které určuje délku běhu ze zmíněného rozsahu. Tímto způsobem může být délka druhého slova kratší, než by byla v případě, kdy by bylo zapotřebí specifikovat absolutní délku.
Aby se ošetřily situace, kdy se převládající barva mění během rámce (např. rozpůlená obrazovka s odlišnou barvou v každé části), může být použit další kód, který obsahuje specifikaci hodnoty barvy, kde po začlenění dalšího kódu do toku kódů barev pixelů je převládající barva specifikována pro zakódované běhy změněnou na barvu specifikovanou Tento další kód bude v dalším popisu kód změny pozadí a může obsahovat první kódové slovo indikující běh a subkód indikující změnu převládající barvy a druhé kódové slovo obsahující hodnotu nové převládající barvy. Přítomností stejného kódového slova v prvním kódovém slovu na indikaci jak běhu, tak změny převládající barvy, kdy je změna indikovaná specifickým subkódem prvního kódového slova, je počet řídících kódů držen na minimu a tím je umožněn větší počet volných kódů, kterým jsou přiřazeny barvy.
Abychom se vyhnuli neefektivnosti kódování krátkých běhů, mohou být jeden či dva pixely převládající barvy příslušně kódovány jako jedna či dvě následné iterace hodnoty převládající barvy, nebo jim mohou být přiřazeny příslušné jednotlivé krátké kódy.
Abychom ošetřili situaci, kde se převládající barva mění mezi následnými rámci, může kódová sekvence pro rámec začínat dalším kódem specifikujícím počáteční převládající barvu, což znamená určení změny na stanovenou převládající barvu, která má být použita ve všech následných bězích i v případě, kdy zůstává stejná, jako v předchozím rámci.
Pokud se převládající barva může měnit během rámce několikrát, může být příkaz změny neefektivní. Proto v dalším provedení tohoto vynálezu může být v obrázku identifikována podmnožina barev jako převládající barva, s barvami (jinými než převládajícími), kterým jsou přiřazeny příslušné kódy barev první délky, převládajícím barvám jsou přiřazeny příslušné barevné kódy druhé délky, která je kratší než první a běhy jedné z převládajících barev jsou zakódovány jako první kódové slovo indikující běh převládající barvy a druhé kódové slovo indikující v oddělených subkódech délku běhu, resp. (kratší) kód barvy.
Přehled obrázků na výkresech
Vhodná provedení tohoto vynálezu budou dále popsána pomocí příkladů s odkazy na doprovodné obrázky, ve kterých: obr. 1 ukazuje známý kód barvy pro jeden pixel, obr. 2 ukazuje známý kód barvy pro běh pixelů o délce L, obr. 3 ukazuje sekvenci hodnot barev pixelů přeměněných na barevné kódy dle obr. 1 a 2, obr. 4 je tabulka hodnot kódu podle prvního provedení vynálezu, obr. 5 je alternativní verze tabulky z obr. 4, reprezentující první možné provedení tohoto vynálezu, obr. 6 a 7 jsou tabulky hodnot kódu pro pixely barvy pozadí, resp. pixely barvy odlišné od barvy pozadí, ukazující další možné provedení vynálezu, obr. 8 je blokové schéma detektoru kódu pixelu jako část dekódovacího zařízení a obr. 9 až 13 jsou vývojové diagramy ilustrující činnost řadiče z obr. 8.
Na začátku bude vhodné uvažovat běžné schéma pro kódování hodnot barev pixelů s odkazem na obr. 1 až 3. V případě, kdy každá hodnota barvy pixelu má sedm bitů (obr. 1), jako při kódování běhu použitém v CD-i, specifikace běhu (obr. 2) má dva bity. Jeden bit obsahuje hodnotu barvy C v sedmi bitech a další obsahuje hodnotu délky L. Pro běh s délkou větší než dva pixely bude kódování délky běhu kompaktnější než oddělené kódování každého pixelu v běhu.
Avšak v tomto případě by kódování jednoho pixelu jako běhu o délce 1 bylo neefektivní, protože by vyžadovalo dva byty, zatímco jeden barevný pixel by zabíral pouze jeden byte. Schéma kódování délky běhu používané pro CD-i tudíž umožňuje definovat dva sousední pixely jak opakování jednobytového kódu, tak dvoubytovou sekvencí kódu délky běhu. Nadbytečný bit v bytu barvy (nejvýznamnější bit) je použit na indikaci nejvýznamnější bit tohoto rozdílu. Pokud má byte barvy pak je to hodnota zatímco když je tak je tento byte nastaven na nulu, jednoho pixelu, jak ukazuje obr. 1 nejvýznamnější bit nastaven na jedničku počátkem specifikace běhu a bude následován délkovým bytem, jak ukazuje obr. 2. Tyto jedno- a dvoubytové kódy jsou kombinovány dle potřeby na vytvoření kódové sekvence, jejíž část je ukázána na obr. 3.
První provedení tohoto vynálezu zajišťuje kódování pro zvláštní případ, kdy se obrázek sestává v podstatě z jedné barvy pozadí s málo případy znatelných běhů jakékoliv jiné barvy. Za této okolnosti je vhodnější kódovat pixely délkou běhu barvy pozadí, ale pixely jiných barev kódovat jednotlivě. To eliminuje potřebu indikovat v toku datových kódů, která hodnota barvy v kódovém toku reprezentuje kód délky běhu, a která nikoliv; tímto způsobem není potřeba nastavení úvodních bitů na 1 či 0 (jako na obr. 2 a 3) . Tato metoda také umožní, že data kódovaná délkou běhu mohou obsahovat pouze hodnotu délky běhu, protože jedna barva je již specifikovaná jako barva pozadí, a proto není potřeba specifikovat hodnotu barvy v běhu.
Jak bude vysvětleno dále, metoda používá kód s proměnnou délkou, který může obsahovat kódová slova s proměnnou délkou pro další optimalizaci činnosti.
V příslušné implementaci, která bude popsána, všechny kódy s proměnnou délkou jsou celá čísla dlouhá čtyři bity (půlbyte).
Každá hodnota barvy pixelu je definovaná ve čtyřech bitech. To by umožnilo specifikaci 16 možných barev při použití vyhledávací tabulky barev, ačkoliv v tomto provedení omezen na patnáct z důvodů se zlepšila činnost kódového je počet různých barev vysvětlených výše, aby schématu.
Kódy barev 1 až 15 (vyjádřené binárními hodnotami 0001 až 1111) nejsou komprimovány, ale jednoduše přidány do toku kódovaných dat bez další komprese. Kódování použité na indikaci délky běhu barvy pozadí je naznačeno v tabulce na obr. 4; názvy různých kódů (SHORT, MEDIUM, atd.) jsou pouze ilustrační a nemají vliv na samotný kód. Přínos kódování délky běhu je zřejmý z nej delšího kódového slova na obr. 4, kdy pro běh 303 pixelů základní barvy které vyžadují místo barevný kód půlbyte pro každý pixel pouze 4 půlbyty na definování běhu.
Pro běhy barvy pozadí dlouhé tři či více pixelů je začleněn do toku kódu barevný kód 0 (binárně 0000) na indikaci začátku sekvence kódované délkou běhu barvy 0, která se považuje za barvu pozadí. Pokud je následující čtyřbitový kód v rozsahu 0011 až 1111, pak běh (SHORT) má délku mezi 3 a 15 pixely, s binárním kódem počtu druhého půlbyte přímo reprezentujícího délku běhu. Kde je druhý půlbyte také kód 0 (0000), je délka běhu (MEDIUM) mezi 17 až 31 pixely, kde třetí půlbyte specifikuje hodnoty od 1 až 15 (binárně 0001 až 1111), který má být přidán k 16 pro udání délky běhu.
Na druhé straně, pokud druhý půlbyte v sekvenci je 0001, pak třetí půlbyte v datovém toku má hodnotu mezi 0000 a 1111 reprezentující délku běhu (LONG) mezi 32 a 47 pixely.
Poslední případ (LONGER) nastává, pokud druhý půlbyte má hodnotu 0010 a dva následující půlbyty jsou spojeny jako osmibitová hodnota reprezentující délku běhu mezi 48 a 303.
Aby bylo možno reprezentovat jeden pixel barvy pozadí pomocí jednoho půlbytu, aniž by následující kód byl chybně pochopen jako délka běhu, je kód barvy 0001 také určen na reprezentaci barvy pozadí; toto je důvod, proč může být reprezentováno pouze 15 barev v tomto schématu. Navíc, pokud přímo nenásleduje kód barvy 0000 (jako v kódech pro délky běhu pixelů 17, 32 či 49), kód 0001 reprezentuje jeden pixel základní barvy. Jak bude poznamenáno u obr. 4, nikdy nebude v sekvenci více než dva barevné kódy 0 kódy (0000) : to umožní splnit tomuto schématu požadavek MPEG, kde série takových kódů je použita na indikaci synchronizace.
Protože úprava kódování popsaná výše umožní pouze běhy základní barvy o délce tři a více pixelů, je béh základní barvy o délce 2 (SINGLE+) reprezentován dvěma následnýma hodnotama barev 0001. Také běhy základní barvy o délce 16 (SHORT+) jsou ošetřeny jako kódované běhy o délce 15 následované jedním pixelem kódovaným 0001. Použitím tohoto druhého barevného kódu pro převládaj ící barvu či barvu pozadí zabráníme, aby kód zabral mnoho místa, což znamená, že obrazovka s N pixely bude kódována maximálně N kódy a obecně mnohem méně kódy.
V prostředí, kde není požadavek, aby délka kódu byla násobkem čtyř bitů, může Huffmanův kód (přiřazující nejkratší kódy nejběžněji specifikovaným délkám běhů) zabezpečit ješté efektivnější kompresi. Kódy s osmi či více bity mohou být použity tam, kde je potřeba mít větší rozsah možných barev, a dvoubitové kódy mohou být použity v případě, kdy je potřeba velmi málo barev.
V alternativním provedení může být výše popsaná metoda pozměněna tak, jak je popsáno dále s odkazem na tabulku na obr. 5, aby se mohla barva pozadí reprezentovaná barevným kódem 0000 měnit dynamicky. Toto by bylo vhodné tam, kde se základní barva mění v obrázku vertikálně či tam, kde je velká oblast nějaké jiné barvy, kdy by výhoda kódování délky běhu převážila výhodu změny barvy kódované během.
Porovnání obrázků 4 a 5 naznačuje, že obě schémata jsou v podstatě identická kromě toho, že kódy pro běhy 4 a více pixelů v původním provedení, nyní příslušně reprezentují délky o jeden pixel kratší. V původním provedení je kód pro běh o délce tři (0000 0011) nyní použit jako kód změny pozadí, který indikuje fakt, že binární hodnota (cccc) od 1 do 15 následujícího půlbytu (0 je rezervována na obecné označení pozadí) je kód barvy pro novou barvu pozadí. Nové pozadí bude používáno až do kódu 0000 0011 0001 (změna kódu + původní kód barvy pozadí) je přijat nebo je specifikována změna na třetí barvu pozadí. Poznamenejme, že při změněné barvě pozadí bude kód běhu dlouhého 15 pixelů muset mít takový barevný kód, ve kterém je nové pozadí na pozici třetího půlbytu.
Alternativní uspořádání umožňuje, aby byla změna v obecné barvě pozadí obrázku specifikována za cenu 12 bitových dat. Dočasná změna umožní, aby dlouhé běhy barvy odlišné od barvy pozadí byly kódovány za cenu 24 bitů (12 na změnu barvy odlišné od barvy pozadí a 12 na zpětné přepnutí na barvu pozadí), což je úsporné pro běhy 9 a více pixelů.
V dalším alternativním uspořádání mohou být všechny běhy hodnot barev (převládající/barvy pozadí či jiné) kódovány délkou běhu, i když se používá určení převládající barvy, což umožňuje úspory pro relativně krátké běhy pixelů barvy pozadí, které se vyskytují nej častěji. Kódová schémata pro běhy pozadí a ostatní běhy jsou na obr. 6, resp. 7. V tomto schématu jsou k dispozici barevné kódy 0 až 15 (na obr. 7 označené jako čtyřbitový kód cccc), a pouze kód 0 je rezervován pro převládající barvu. Protože kód 0 je použit také na indikaci začátku běhu (jakékoliv barvy), je kód pro jediný pixel pozadí (0000 1111) nadbytečný, ale je ho zapotřebí, aby se předešlo anomáliím. Pokud by byl barvě pozadí přiřazen druhý barevný kód (např. 1), mohl by samostatný pixel pozadí být jako ve schématech na obr. celkového počtu barevných kódován jedním půlbytem, stejně 4 a 5, ačkoli za cenu redukce kódů. Jak je patrno z obr. 6, úspora tohoto schématu se projeví při délce běhů pozadí od tří do devíti pixelů, kdy každý z nich je zakódován jako kód se dvěma půlbyty. Pro běhy pozadí s deseti a více pixely je použito stejné schéma kódování délky běhu jako v případě ostatních barev (obr. 7), které obsahuje kód běhu (kód 0), kód rozsahu (1100 nebo 1101 pro běhy MEDIUM, resp. LONG), délku běhu (4 bity pro střední a 8 bitů pro dlouhé) a kód barvy.
Jak je patrno z obr. 7, běhy 1 až 3 pixelů barev odlišných od barvy pozadí jsou jednoduše kódovány jako jednotlivé barevné kódy. Běhy od 4 do 7 pixelů jsou kódovány jako kód běhu (kód 0), kód délky běhu (4 až 7 indikovaných binárními hodnotami 1000 až 1011) a barevný kód (cccc). Podobným způsobem jako kódy SHORT+ z obr. 4 a 5, běh osmi barev odlišných od pozadí jsou kódovány jako běhy sedmi pixelů následovaných opakováním barevného kódu (např. kód pro jeden pixel).
Protože kódované hodnoty pixelů budou obecně vyslány či uloženy jako bloky hodnot, je použit další kód (0000 0000) konce bloku. Určení na systémové úrovni, následných půlbytů 0000 po kódu začátku (jako v kódu pro běh 25 pixelů pozadí) nebude chápán jako indikátor konce bloku.
V dalším alternativním provedení mohou být výhody vyplývající z výběru převládající barvy či barvy pozadí dále rozšířeny pro umožněni specifikace podmnožiny převládajících začátku kódu takže výskyt bude dvou na indikaci zabezpečeno barev: tímto způsobem se může předejít opakovanému použití kódu změny pozadí ze schématu 5. Specifikace podmnožiny je zvláště výhodná při použití delších kódů, např. 8-bitové schéma, kde je k dispozici 256 barevných kódů. V takovém schématu je 16 nej užívanějších barev kódováno jako 4 bitové (spíše než 8 bitové) hodnoty. Tímto způsobem běhy mezi 3 a 9 pixely mohou být kódovány dvěma 8-bitovými slovy jako
0000 0000 OLLL cccc kde první slovo indikuje běh jedné z převládajících barev, první polovina druhého slova specifikuje délku běhu (0001 až 01110 a druhá polovina druhého slova obsahuje 4-bitový kód barvy. Poznamenejme, že první bit z druhého slova je 0 v předcházejícím uspořádání, což umožňuje další možnosti kódování, včetně plného rozsahu barev (indikovaným použitím 1 na začátku slova).
Jak bude oceněno dále, výhody jsou větší pro schémata s větším počtem bitů, předcházející metody podmnožin mohly být použity na 4-bitové schéma, ačkoliv rozsah použitelných délek běhů či barevných kódů by byl značně omezen.
Nyní se zaměříme na přístroj, kde jsou použita výše popsaná schémata. Kódování bude obecně prováděno vhodně naprogramovaným mikroprocesorem, který identifikuje převládající barvu, určuje pixelům barevné kódy a detekuje ojedinělé případy a běhy převládající barvy. Speciální hardware může mikroprocesor nahradit, nicméně dává se přednost flexibilitě programovatelného systému.
V detailní implementaci schématu na obr. 4 může být detektor, použitý v dekódovacím zařízení, vhodně vytvořen hardwarem uspořádáním z obr. 8, kde řadič 20 řídí hodnotu výstupního půlbytu (kód barvy pro každý zvláštní pixel), stejně jako výstupní hodinový signál, který taktuje tyto hodnoty půlbytů. Řadič vyžaduje vstup půlbytu na spoji 22 posláním spouštěcího signálu na vodič 24. Tento vstupní půlbyte je veden na první vstup multiplexoru 26 a na všechny stupně komparátoru 28, 30 a 32, jejichž výstupy jsou vedeny na řadič 20. Tři komparátory 28, 30 a 32 respektivně porovnávají vstupní půlbyte s kódy 0000, 0001 a 0010: pokud výstup z komparátoru 28 je kladný, což znamená, že vstupní půlbyte je kód 0000, pak je indikován začátek běhu, ve kterém řadič posílá signál na výběrový vodič 34 multiplexoru 26, který vybere místo vstupní hodnoty půlbytu kód barvy pro převládající barvu (barvu pozadí) uloženou v registru 36.
Po zjištění, že běh začíná, bude volán následující půlbyte (přes vodič 24) a pokud výstupy z kteréhokoliv komparátoru 28, 30 či 32 jsou kladné, bude to znamenat, že běh je v rozsahu identifikovaném jako MEDIUM, LONG nebo LONGER podle obr. 4. Pokud výstup z žádného komparátoru není kladný, pak běh je v rozsahu SHORT, to znamená mezi třemi a patnácti pixely a hodnota výstupního půlbytu je vlastně Tato hodnota půlbytu je taktována do 8-bitového jako nejméně významný půlbyte pod řízením hodinového signálu na vodiči 40 z řadiče 20. Když čítač 38 odpočítává hodnotu reprezentovanou tímto půlbytem, výstupní hodinový signál na vodiči 32 taktuje hodnotu základní barvy z registru 36 na výstupu vodiče 44 do toho okamžiku, kdy hodnota půlbytu je odpočítána, když signál detekující nulu je přiveden z čítače na řadič vodičem 46.
V případě, kdy byl detekován běh a druhý půlbyte dává kladný výstup na jednom z komparátorů 28, 30 nebo 32, bude taktován následující půlbyte (po jeho zavolání) do čítače délka běhu čítače 38
38, když nejméně významný půlbyte (v případě kladného výstupu z komparátorů 28 nebo 30) a následujících dvou půlbytů budou načteny do čítače jako nejvíce, resp. nejméně významný půlbyte v případě kladného výstupu z komparátorů 32. Když jsou dva půlbyty nataktovány do 8-bitového čítače 38, tzn. v případě běhu LONGER, nejvýznamější půlbyte je nataktován do čítače při řízení další hodinového vodiče 48 z řadiče.
Činnost řadiče 20 z obr. 8, který určuje, zda vstupní kód popisuje běh a pokud ano, jak je dlouhý, bude nyní popsána v odkazu na vývojový diagram z obrázků 9 až 13.
Z počátečního bodu A (obr. 9) je spuštěn nový vstupní půlbyte v kroku 71, následkem čeho se testují v kroku 72 výstupy komparátorů, zda je půlbyte kódem 0000. Pokud tomu tak není, reprezentuje kód barvy (barvy odlišné od základní) pixelu a, v kroku 73, multiplexor 26 (obr. 8) je nastaven na výstup hodnoty půlbytu. V kroku 74 je jeden hodinový signál pro tuto hodnotu bytu též výstupem, a poté se procedura vrací na začátek v bodu A pro následující vstupní půlbyte.
Pokud je hodnota půlbytu v kroku 72 rovna 0000, je indikován běh, který je obecně zpracován, jak ukazuje obr.
10. Zpracování běhu začíná v kroku 81 spuštěním dalšího vstupního půlbytu a, v kroku 82, nastavením multiplexoru 26 (obr. 8) na výstup kódu barvy 0000 z registru 36. Poté je testován nový vstupní půlbyte v krocích 83, 84 a 84, zda odpovídá jednomu z půlbytů kódu 2 z obr. 4 reprezentující běh MEDIUM, LONG či LONGER, jak je zřejmé z obrázku. Pokud je odpověď ne ve všech těchto testech, pak je běh v rozsahu tří až patnácti pixelů a hodnota půlbytu, přivedená do 8-bitového čítače, nastavuje hodnotu na taktování. Opakovaný výstup hodinového signálu pro barevný kód 0000 je zpracováván v krocích smyčky 87, 88 a 89, které opakovaně dekrementují hodnotu hodin a testují je na nulu, při které se proces vrací na začátek A (obr. 9) pro následující vstupní hodnotu půlbytu.
Když je v kterémkoliv z kroků 83, 84 nebo 85 na obr. 10 odpověď ano, je určen rozsah 17 až 303 pixelů. Pokud je to na výstupu kroku 83, který je ano (hodnota druhého půlbytu je 0000), má běh délku mezi 17 a 31 pixely, a je zpracováván podle obr. 11. Dále, v kroku 91, hodnota 0000 z registru 36 je odpočítávána 16 krát, a poté je spuštěn nový vstupní půlbyte v kroku 92, který je zaveden do 8-bitového čítače v kroku 93. Tato hodnota nejméně významného půlbytu je pak v čítači 38 odpočítávána pomocí dekrementační smyčky odečtení/test na nulu (kroky 94, 95 a 96), dokud čítač nedosáhne nuly, kdy se proces vrací na začátek A (obr. 9) pro další hodnotu půlbytu.
Když je v kroku 84 na obr. 10 hodnota půlbytu 2 detekovaná jako 0001, má běh délku mezi 32 a 47 pixely, což je zpracováváno dle obr. 12. Zpracování běhu LONG na obr. 12 je v zásadě stejné jako pro běh MEDIUM na obr. 11, pouze kód barvy 0000 je odpočítáván 32 krát na stupni 101 před spuštěním a do čítače je zapsána následující hodnota půlbytu v krocích 102 a 103. Dekrementační smyčka kroků 104, 105 a 106 dává výstup pro opakování hodin většího než 32 při formování celkové délky běhu.
Když je výstup kroku 85 na obr. 10 kladný, tzn. , že běh je délky LONGER, mezi 48 a 303 pixely, je běh zpracováván dle obr. 13. V tomto případě proces začíná odečítáním hodnoty 0000 0000 48 krát v kroku 111, a poté je následující půlbyte spuštěn v kroku 112. Protože pro běhy LONCER je délka běhu větší než 48 pixelů specifikována jako 8-bitový kód, půlbyte spuštěný v kroku 112 reprezentuje nejvýznamější polovinu 8-bitového kódu a je načten do 8-bitového čítače jako takový za řízení signálem z řadiče na vodiči 48 (obr. 8). Poté je v kroku 114 spuštěn následující půlbyte, který obsahuje nejméně významný půlbyte 8-bitového kódu, a který je načten jako nejméně významný půlbyte do čítače 38. Nakonec dekrementační smyčka kroků 116, 117 a 118 odpočítává 8-bitovou hodnotu reprezentovanou v čítači až do nuly, kdy se proces vrací na začátek A obr. 9.
I když to není na obr. 8 ukázáno, je zřejmé, že pokud je změna pozadí povolena (jako v tabulce na obr. 5), může být obsah registru 36 změněn za řízení řadiče 20 na obsah nově vybrané hodnoty barvy pozadí, odlišné od 0000. Navíc, počet opakování těchto hodnot na běh, v krocích 91, 101 a 111 z obr. 1.1, 12, resp. 13, bude 15, 31 a 47, na rozdíl od 16, 32 a 48, jak bylo popsáno výše.
Z implementace kódového schématu z obr. 6 a 7 budou znalému čtenáři zřejmé modifikace zařízení z obr. 8 a nebudou detailně popisovány. Je zřejmé, že porovnávací stupně 28, 30 a 32 budou muset být přeměněny na test použitého kódového slova a že registr 37 bude mít za úkol přijímat, ukládat a vést na výstup (při řízení řadičem 26) hodnoty barev odlišných od barvy pozadí během běhů barev odlišných od barvy pozadí. Podobné poznámky jsou platné i pro provedení, které používá podmnožiny převládajících barev.
Ze čtení tohoto vynálezu budou odborníkovi znalému v problematice zřejmé i další modifikace. Tyto modifikace mohou obsahovat další vlastnosti, již známé v oboru kódování video signálů a zařízení a jejich části, které mohou být použity místo či navíc k vlastnostem zde popsaným. Ačkoliv v této patentové přihlášce byly formulovány patentové nároky na určité kombinace vlastností, mělo by být zřejmé, že rozsah tohoto vynálezu zahrnuje též vlastnost či novou kombinaci vlastnosti explicitně či implicitně či jakýmkoliv jejich zobecněním, ať se to již vztahuje či nevztahuje ke stejnému vynálezu, který je nyní nárokován v jakémkoliv nároku, a zda řeší či nikoliv jakýkoliv či všechny stejné technické probLémy, jako tento vynález. Žadatelé tímto oznamují, že jakékoliv patentové zformulovány k vlastností během tohoto vynálezu či jiných patentových přihlášek z něho odvozených.
jakoukoliv novou zde popsaných buď nároky mohou být a/nebo kombinacím takovýmto vlastnostem procesu přihlašování dvou následných zakódovány jako tím, že každý pixel barvy je kódován
JUDr. Ivan KOPEČEK
Aclvnu.lí Π- , :j; : : . i;,,...; 'ř
160 CH,· !, ,···>:.. ..... ý... j
P.O. BOX 275. I4 i jj
Česká republika
Claims (6)
- Patentové nároky1. Metoda: kódování hodnot barev pixelů v rámcích digitálního obrázku vyznačující se tím, že každé barvě v obrázku je přiřazena hodnota barvy, kde je v rámci obrázku zjištěna převládající barva a sekvence alespoň pixelů s převládající barvou jsou první slovo, které určuje sekvenci, a druhé slovo, které určuje délku sekvence, a kde pixely s barvou odlišnou od převládající barvy jsou kódovány pomocí kódu obsahujícího alespoň příslušnou hodnotu
- 2. fyetoda· podle -bodu 1 vyznačující se s barvou odlišnou od převládající odděleně pouze jako příslušná barva.
- 3. Me Luďa podle bodu 1 vyznačující se tím, že sekvence dvou či více následných pixelů barvy odlišné od barvy převládající jsou kódovány společně jako první kódové slovo, které určuje sekvenci, a druhé kódové slovo, které určuje délku sekvence, a třetí kódové slovo, které určuje hodnotu,barvy.
- 4. Metoda podle bodu 1 vyznačující se tím, že první kódové slovo obsahuje subkód, který určuje jeden z několika rozsahů délky sekvence, a druhé kódové slovo, které ur.čuj e délku sekvence z indikovaného rozsahu.
- 5. Metoda podle kteréhokoliv z bodů- 1-4 se zavedením dalšího kódu, který obsahuje specifikaci hodnoty barvy, kdy po začlenění dalšího kódu do toku kódů barev pixelů je převládající barva, určená pro zakódované běhy,
- 6.9.změněna na barvu určenou v dalším kódu.Metoda podle Uodti 5 vyznačující se tím, že další kód obsahuje první kódové slovo, které určuje sekvenci, a subkód, který určuje změnu převládající barvy, a druhé kódové slovo, které obsahuje hodnotu nové převládající baryy. ia jednoho nebo podle -bod-ti 1 vyznačující se tím, dvou pixelů převládající že sekvence barvy j sou kódovány jako jedna, resp. dvě následné iterace hodnoty převládající barvy.Metoda podle .bodu 5 sekvence pro obrázek vyznačující se tím, že kódové začínají dalším kódem určujícím počáteční převládající barvu.S* I Otz 'rr £Meí-oda podle bodá 1 vyznačující se tím, že podmnožiny barev v obrázku jsou identifikovány jako převládající barvy, barvám odlišným od převládající barvy jsou přiřazeny příslušné barvy z prvního rozsahu kódů hodnot barev první délky, převládajícím barvám jsou přiřazeny příslušné barvy z druhého rozsahu hodnot barev druhé délky, která je kratší než první délka, a běh alespoň dvou pixelů jedné převládající barvy je zakódován jako první kódové slovo, které určuje běh převládající barvy, a druhé kódové slovo, které určuje v samostatných subkódech délku běhu resp. kód hodnoty barvy.Metoda podle >bodtř 1 vyznačující se tím, že druhé kódové slovo předchází prvnímu kódovému slovu v kódu běhu. Zařízení na kódování video obrázků uspořádané na kódovaní hodnot barev pixelů v rámcích digitálního obrázku přiřazením každé odlišné barvě v obrázku příslušnou hodnotu barvy vyznačující se tím, že v obrázku je určena převládající barva, zařízení obsahuje prostředky schopné určit běhy alespoň dvou následných pixelů s převládající barvou a zakódovat každý takový běh jako první kódové slovo, určující běh, a druhé kódové slovo, určující délku běhu, a prostředky schopné určit pixely, které mají barvy odlišné od převládající, a zakódovat je kódem obsahujícím alespoň příslušnou hodnotu barvy.12. Obrazový signál obsahující zakódované rámce hodnot barev pixelů vyznačující se tím, že sekvence dvou či více následných pixelů s předem stanovenou převládající barvou v rámci jsou zakódovány ve formě prvního kódového slova, které určuje běh, a druhého kódového slova, které určuje délku běhu, a pixely s barvami odlišnými od předem určené barvy jsou zakódovány ve formě kódu obsahujícího alespoň příslušnou hodnotu barvy.13. Záznamové médium nesoucí obrazový signál podle bodu 12 spolu s inicializačními daty obsahujícími specifikaci zmíněné předem určené převládající barvy.14. Zařízení na zobrazování uspořádané pro příjem a dekódovaní signálu podle bj»4u 12, toto zařízení obsahuje alespoň jednu vyhledávací tabulku barev pixelů, včetně převládající barvy, pro rámce digitálních obrázků adresovaných zakódovanými hodnotami barev pixelů a prostředky schopné generovat pro zobrazení sekvence alespoň dvou následných pixelů převládající barvy, stejně jako generovat jednotlivé pixely s barvami odlišnými od převládající barvy.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB9502172.1A GB9502172D0 (en) | 1995-02-03 | 1995-02-03 | Video image encoding |
GBGB9503063.1A GB9503063D0 (en) | 1995-02-03 | 1995-02-16 | Video image colour encoding |
Publications (2)
Publication Number | Publication Date |
---|---|
CZ288596A3 true CZ288596A3 (en) | 1997-03-12 |
CZ289508B6 CZ289508B6 (cs) | 2002-02-13 |
Family
ID=26306435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CZ19962885A CZ289508B6 (cs) | 1995-02-03 | 1996-01-26 | Způsob a zařízení pro vytváření kódovaného obrazového signálu a zařízení pro zobrazování obrazového signálu |
Country Status (23)
Country | Link |
---|---|
US (1) | US6301389B1 (cs) |
EP (1) | EP0754393B1 (cs) |
JP (1) | JP3688297B2 (cs) |
CN (1) | CN1181694C (cs) |
AR (1) | AR001077A1 (cs) |
AT (1) | ATE191600T1 (cs) |
AU (1) | AU695626B2 (cs) |
BR (1) | BR9605110A (cs) |
CA (1) | CA2187018C (cs) |
CZ (1) | CZ289508B6 (cs) |
DE (1) | DE69607529T2 (cs) |
EA (1) | EA000082B1 (cs) |
ES (1) | ES2145991T3 (cs) |
GR (1) | GR3033579T3 (cs) |
HK (1) | HK1013385A1 (cs) |
HU (1) | HU228534B1 (cs) |
IL (1) | IL117028A (cs) |
IN (1) | IN187262B (cs) |
MY (1) | MY115792A (cs) |
PL (1) | PL186340B1 (cs) |
PT (1) | PT754393E (cs) |
TR (1) | TR199600787T1 (cs) |
WO (1) | WO1996025010A2 (cs) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9806767D0 (en) | 1998-03-31 | 1998-05-27 | Philips Electronics Nv | Pixel colour valve encoding and decoding |
FR2806227B1 (fr) * | 2000-03-09 | 2003-09-05 | Auteuil Participation Et Conse | Procede pour le codage d'images |
US20030086605A1 (en) * | 2001-11-08 | 2003-05-08 | Doner John R. | Compression method for aviation weather products |
EP1494456A1 (en) * | 2003-07-01 | 2005-01-05 | Deutsche Thomson-Brandt GmbH | Method for run-length encoding of a bitmap data stream |
US7010033B2 (en) * | 2004-02-02 | 2006-03-07 | Adams Platform Pty Ltd. | System and method for compressing and encoding video |
KR100595663B1 (ko) * | 2004-04-13 | 2006-07-03 | 엘지전자 주식회사 | 휴대폰의 이미지 파일 압축/신장 방법 |
EP3023940B1 (en) | 2005-05-27 | 2019-02-27 | Telefonaktiebolaget LM Ericsson (publ) | Weight based image processing |
EP1988703A1 (en) * | 2007-05-02 | 2008-11-05 | TTPCOM Limited | Image transformation |
WO2010018494A1 (en) * | 2008-08-11 | 2010-02-18 | Nxp B.V. | Image compression |
US8582902B2 (en) * | 2008-09-23 | 2013-11-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Pixel block processing |
US20120082395A1 (en) * | 2010-09-30 | 2012-04-05 | Microsoft Corporation | Entropy Coder for Image Compression |
CN103186544B (zh) * | 2011-12-28 | 2017-11-14 | 广东新岸线计算机***芯片有限公司 | 一种色位深度存取方法和*** |
US9772850B2 (en) * | 2014-11-14 | 2017-09-26 | Intel Corporation | Morton coordinate adjustment processors, methods, systems, and instructions |
US9772849B2 (en) | 2014-11-14 | 2017-09-26 | Intel Corporation | Four-dimensional morton coordinate conversion processors, methods, systems, and instructions |
US9772848B2 (en) | 2014-11-14 | 2017-09-26 | Intel Corporation | Three-dimensional morton coordinate conversion processors, methods, systems, and instructions |
US20160373735A1 (en) * | 2015-06-18 | 2016-12-22 | Telekom Malaysia Berhad | Method For Encoding Four Bits Color Construct Code |
JP6855722B2 (ja) * | 2016-09-21 | 2021-04-07 | 富士ゼロックス株式会社 | 画像処理装置およびプログラム |
US10341689B1 (en) * | 2017-05-23 | 2019-07-02 | Moddable Tech, Inc. | Weighted runlength encoding |
CN116453455B (zh) * | 2023-06-14 | 2023-11-14 | 长春希达电子技术有限公司 | 像素复用方法、数据传输***以及显示屏控制***和方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4229768A (en) * | 1978-03-30 | 1980-10-21 | Canon Kabushiki Kaisha | Information processing apparatus |
US4301469A (en) * | 1980-04-30 | 1981-11-17 | United Technologies Corporation | Run length encoder for color raster scanner |
US4610027A (en) * | 1983-12-30 | 1986-09-02 | International Business Machines Corporation | Method for converting a bit map of an image to a run length or run end representation |
US4646356A (en) * | 1984-06-29 | 1987-02-24 | International Business Machines Corporation | Method for converting a bit map of an image to a run length or run end representation |
US4673977A (en) * | 1985-06-20 | 1987-06-16 | International Business Machines Corporation | Method of spatially thresholding a discrete color image |
US4760459A (en) * | 1986-07-30 | 1988-07-26 | Kabushiki Kaisha Toshiba | Binary data compression and expansion processing apparatus |
US4847677A (en) * | 1988-04-27 | 1989-07-11 | Universal Video Communications Corp. | Video telecommunication system and method for compressing and decompressing digital color video data |
US4843466A (en) * | 1988-04-27 | 1989-06-27 | Universal Video Communications Corp. | Method and system for decompressing color video slope encoded data |
JPH02179071A (ja) * | 1988-12-28 | 1990-07-12 | Fuji Photo Film Co Ltd | 画像圧縮装置 |
US5353132A (en) * | 1989-02-06 | 1994-10-04 | Canon Kabushiki Kaisha | Image processing device |
JP2766302B2 (ja) * | 1989-04-06 | 1998-06-18 | 株式会社東芝 | 可変長符号並列解読方法および装置 |
US5172237A (en) * | 1989-05-17 | 1992-12-15 | Ricoh Corporation | High quality color image compression system |
JP2511158B2 (ja) * | 1989-12-19 | 1996-06-26 | シャープ株式会社 | 画像圧縮装置 |
US5046119A (en) * | 1990-03-16 | 1991-09-03 | Apple Computer, Inc. | Method and apparatus for compressing and decompressing color video data with an anti-aliasing mode |
US5198898A (en) * | 1990-10-10 | 1993-03-30 | Fuji Xerox Co., Ltd. | Data compressing system for compressing serial image data with color information |
JP3095810B2 (ja) * | 1991-05-31 | 2000-10-10 | 株式会社リコー | 画像データ符号化装置 |
JPH05130434A (ja) * | 1991-10-31 | 1993-05-25 | Canon Inc | 画像圧縮装置 |
US5339164A (en) * | 1991-12-24 | 1994-08-16 | Massachusetts Institute Of Technology | Method and apparatus for encoding of data using both vector quantization and runlength encoding and using adaptive runlength encoding |
US5552832A (en) * | 1994-10-26 | 1996-09-03 | Intel Corporation | Run-length encoding sequence for video signals |
-
1996
- 1996-01-26 WO PCT/IB1996/000062 patent/WO1996025010A2/en active IP Right Grant
- 1996-01-26 PL PL96316679A patent/PL186340B1/pl unknown
- 1996-01-26 JP JP52410396A patent/JP3688297B2/ja not_active Expired - Lifetime
- 1996-01-26 CN CNB961902248A patent/CN1181694C/zh not_active Expired - Lifetime
- 1996-01-26 CA CA002187018A patent/CA2187018C/en not_active Expired - Lifetime
- 1996-01-26 PT PT96900402T patent/PT754393E/pt unknown
- 1996-01-26 AT AT96900402T patent/ATE191600T1/de active
- 1996-01-26 CZ CZ19962885A patent/CZ289508B6/cs not_active IP Right Cessation
- 1996-01-26 HU HU9602710A patent/HU228534B1/hu unknown
- 1996-01-26 BR BR9605110A patent/BR9605110A/pt not_active IP Right Cessation
- 1996-01-26 EP EP96900402A patent/EP0754393B1/en not_active Expired - Lifetime
- 1996-01-26 TR TR96/00787T patent/TR199600787T1/xx unknown
- 1996-01-26 AU AU43985/96A patent/AU695626B2/en not_active Expired
- 1996-01-26 ES ES96900402T patent/ES2145991T3/es not_active Expired - Lifetime
- 1996-01-26 DE DE69607529T patent/DE69607529T2/de not_active Expired - Lifetime
- 1996-01-30 US US08/593,963 patent/US6301389B1/en not_active Expired - Lifetime
- 1996-01-31 IN IN159CA1996 patent/IN187262B/en unknown
- 1996-02-02 AR AR33528696A patent/AR001077A1/es unknown
- 1996-02-02 MY MYPI96000392A patent/MY115792A/en unknown
- 1996-02-04 IL IL11702896A patent/IL117028A/xx not_active IP Right Cessation
-
1997
- 1997-01-26 EA EA199700011A patent/EA000082B1/ru not_active IP Right Cessation
-
1998
- 1998-12-22 HK HK98114635A patent/HK1013385A1/xx not_active IP Right Cessation
-
2000
- 2000-05-31 GR GR20000401274T patent/GR3033579T3/el unknown
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CZ288596A3 (en) | Method of encoding color values in a picture and apparatus for making the same | |
US5675382A (en) | Spatial compression and decompression for video | |
US6219457B1 (en) | Method and system for decoding data encoded in a variable length code word | |
JP4023548B2 (ja) | 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法 | |
JP2870515B2 (ja) | 可変長符号化装置 | |
EP0766223B1 (en) | Color image display apparatus and method therefor | |
EP1285399B1 (en) | Enhanced compression of gray-level images | |
JP3171776B2 (ja) | 圧縮方法及びコンテキスト・モデラー | |
US5640158A (en) | Reversible method of encoding data | |
JP2002026854A (ja) | データストリーム生成装置とその方法、可変長符号化データストリーム生成装置とその方法、カメラシステム | |
US5606421A (en) | Method of and apparatus for encoding and decoding digital video signals by representing orthogonal transform coefficients with respective group values | |
US6370193B1 (en) | MPEG data compression and decompression using adjacent data value differencing | |
US5654806A (en) | Code manipulation for a high speed JPEG decoder | |
JP3021329B2 (ja) | 可変長復号化方法及びその装置 | |
US20070154102A1 (en) | Image decompression system, method and program | |
JP4466382B2 (ja) | 符号語抽出装置とその方法、復号化装置、ならびに画像再生装置 | |
JP4408933B2 (ja) | デジタルイメージ又はビデオファイルのサイズ縮小方法 | |
KR100404526B1 (ko) | 비디오이미지컬러엔코딩방법및장치 | |
KR0165438B1 (ko) | Rgb 디지탈 이미지 런렝스 압축방법 | |
KR0178744B1 (ko) | 가변장 복호기 제어회로 | |
JPH11242738A (ja) | 画像圧縮伸張方法、画像圧縮伸張装置、画像伸張方法、画像伸張装置及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PD00 | Pending as of 2000-06-30 in czech republic | ||
MK4A | Patent expired |
Effective date: 20160126 |