Hlavní navigace

Twibright Hyperluma - lepší kódování videa

Karel Kulhavý

Twibright Labs vyvinuly algoritmus jménem Hyperluma, umožňující při kódování videa dosáhnout lepšího detailu barevného obrazu, než bylo doposud možné. Na parametrech samotného videa přitom není třeba měnit vůbec nic.

Algoritmus odstraňuje problém jménem chroma bleeding. Při chroma subsamplingu, který se při kódování videa běžně dělá, vznikají tmavé čáry na přechodech výrazných barev. Méně výrazné poškození obrazu ale vzniká i na jemnějších barevných přechodech. Tento problém je důsledkem chybného návrhu přenosového řetězce – návrhář jakoby využil neplatný matematický vztah a^n+b^=(a+b)^n. Toto poškození je pěkně vidět na příkladu monoskopu jako výrazná černá čára mezi zelenou a fialovou, a mezi červenou a modrou. Podobnému poškození se nevyhnuli ani Simpsonovi a Futurama.

R'G'B' signál (hodnoty světelného toku ze senzorů, na něž byla uplatněna gamma funkce) se při běžném kódování převede na Y'CbCr (luma-chroma-chroma) a pak se Cb,Cr složkám sníží rozlišení na polovinu. Původní idea při návrhu tohoto postupu byla, že luma ponese jen jasovou informaci a chroma jen barevnou – a na barevnou je lidské oko málo citlivé a tak je v pořádku, když se rozmaže.

Ale díky chybné matematické úvaze při návrhu část jasové informace prosakuje i do chroma složek. Když se chroma složkám sníží rozlišení, jasová informace se poškodí. A vzhledem k tomu že luma a chroma jsou nelineární vzhledem k množství světla, toto poškození není jen jednoduché rozmazání, ale je nelineární a dokonce mění celkové množství světla ve scéně – vznikají zmíněné černé pruhy.

Hyperluma provádí tento krok o něco složitěji. R'G'B' se nejdříve převede na YCbCr, kde Y je luminance (na rozdíl od Y' – luma), a pak se Cb a Cr sníží rozlišení a dointerpolují se tak, jak by to provedl televizor (přehrávač videa). Nakonec se udělá klíčový krok – trojici Y Cb Cr se přiřadí Y' takové, že dané Y' Cb Cr produkuje dohromady žádané Y. Protože Y reprodukuje jasovou informaci věrně, k žádnému zkreslení jasových detailů při přehrání videa nedojde.

Řešení této matematické rovnice je obtížné – proto se používá předpočítaná tabulka, která se vypočte inverzí známé funkce pomocí půlení intervalu – inverze tak trvá 8 krát déle než dopředný výpočet.

Hyperluma se dá aplikovat na analogové a digtitální televizní vysílání, kódování videa do MPEG, DV, Theora, a na všechny ostatní formáty, které používají podvzorkování chromy – je jich většina. Kódování prakticky nezpomaluje – je to v zásadě jen jedno sáhnutí do tabulky navíc.

Více informací o Twibright Hyperluma, včetně ukázek a literatury, je k dispozici na domácí stránce algoritmu.

Našli jste v článku chybu?