Правёўшы дзясяткі бяссонных начэй, працуючы з фарматамі каляровага кадавання YUV , я зразумеў, наколькі мала даступна інфармацыі аб гэтым выдатным фармаце. Тым не менш, гэта можа быць неверагодна карысным для тых, хто ўдзельнічае ў струменевай перадачы відэа P2P або апрацоўцы відэапатокаў з дапамогай штучнага інтэлекту.
На першы погляд RGB і YUV могуць здацца проста рознымі спосабамі прадстаўлення колеру. Але за гэтым адрозьненьнем ляжыць няспынная бітва: зручнасьць супраць эфэктыўнасьці, дакладнасць супраць прадукцыйнасьці, ідэальнае ўспрыманьне супраць сьціску без бачных страт. Можна выказаць здагадку, што RGB з'яўляецца бясспрэчным каралём каляровых прастораў - у рэшце рэшт, камеры, экраны і большасць нейронавых сетак працуюць у ім. Аднак у свеце струменевага відэа і кадавання YUV бярэ на сябе лідэрства, хаваючы пад капотам шэраг складаных кампрамісаў, якія дазваляюць нам глядзець відэа без затрымкі, эканоміць гігабайты даных і паскараць апрацоўку ў рэальным часе.
Але што, калі вы хочаце пераадолець гэтыя два светы? Як мадэлі AI, навучаныя RGB, апрацоўваюць відэапатокі ў YUV? Чаму кодэкі так неахвотна працуюць з RGB? І ці можна дасягнуць ідэальнага балансу паміж гэтымі фарматамі? Тут я дапамагу вам паглыбіцца ў тое, чаму RGB і YUV падобныя на двух баксёраў з розных вагавых катэгорый, вымушаных сустрэцца на адным рынгу струменевага відэа і тэхналогіі штучнага інтэлекту.
Фарматы RGB і RGBA даволі простыя і шырока выкарыстоўваюцца ў кампутарнай графіцы, таму мы не будзем паглыбляцца ў асновы. Карацей кажучы, калі ваш камп'ютар адлюстроўвае малюнак, ён працуе з трыма каналамі - чырвоным (R) , зялёным (G) і сінім (B) . Так працуе большасць экранаў.
RGBA дадае дадатковы канал — Альфа (A) — які кантралюе празрыстасць, што робіць яго асабліва карысным для вэб-графікі і лічбавага дызайну. RGB дакладна адлюстроўвае колеры без скажэнняў, але мае важны недахоп — ён займае занадта шмат месца. Напрыклад, выява з раздзяленнем 1920 × 1080
у фармаце RGBA (з выкарыстаннем 1 байта на канал) займае: 1920×1080×4 = 8294400 bytes ≈ 8.2 MB
Сціснутыя фарматы, такія як JPEG, памяншаюць памер файла, але ў свеце P2P струменевага відэа і апрацоўкі штучным інтэлектам у рэжыме рэальнага часу на кліенцкіх машынах — такіх як распазнаванне аб’ектаў, выяўленне ключавых кропак і сегментацыя — гэта непрыдатны варыянт. Нам трэба перадаваць і аналізаваць кожны кадр у рэжыме рэальнага часу, не ўводзячы артэфактаў сціску і не губляючы важных дэталяў. Тут у гульню ўваходзіць YUV , прапаноўваючы больш разумны падыход да балансу якасці, эфектыўнасці і прадукцыйнасці.
У адрозненне ад RGB, які захоўвае інфармацыю аб колеры непасрэдна, YUV падзяляе выяву на кампаненты яркасці (Y) і каляровасці (U і V) . Такі падыход дазваляе эфектыўна сціскаць даныя без значнай страты якасці.
Y (Яркасць, яркасць) – паказвае яркасць пікселя, вызначаючы, наколькі светлым ці цёмным ён выглядае. Па сутнасці, гэта шэра-белая (чорна-белая) версія выявы з захаваннем усіх форм і дэталяў.
U і V (насычанасць, колер) – захоўваюць інфармацыю аб колеры, але з меншай дакладнасцю, паколькі чалавечае вока ўспрымае яркасць больш выразна, чым дакладнасць колеру. Прасцей кажучы, гэтыя каналы дзейнічаюць як двухмерны «зрух» яркасці ў бок розных каляровых адценняў.
Гэты падзел з'яўляецца ключом да таго, чаму YUV настолькі эфектыўны для сціску відэа, струменевай перадачы і апрацоўкі відэа на аснове штучнага інтэлекту.
Адной з менш відавочных, але вельмі эфектыўных пераваг YUV з'яўляецца тое, што адзін з яе каналаў (Y) зусім не прызначаны для захоўвання колеру. Замест гэтага ён дакладна апісвае
Чалавечае вока ўспрымае выявы з дапамогай двух тыпаў фотарэцэптараў у сятчатцы:
Стрыжневыя клеткі (~120 мільёнаў) – адчувальныя да яркасці і кантраснасці, але не здольныя вызначаць колер. Яны дазваляюць бачыць формы і дэталі нават пры слабым асвятленні.
Колбачкі (~6 мільёнаў) - адказваюць за ўспрыманне колеру, але іх колькасць у 20 разоў менш. Яны функцыянуюць толькі пры добрым асвятленні і бываюць трох тыпаў: чырвоныя, зялёныя і сінія (нядзіўна, што RGB ).
З-за гэтага дысбалансу рэцэптараў наш мозг аддае перавагу форме, а не колеру. Калі яркасць або кантраснасць скажаюцца, мы заўважаем гэта адразу. Аднак нязначныя змены колеру часта застаюцца незаўважанымі.
Гэта асноўны прынцып YUV
Гэта азначае, што ў адрозненне ад RGB , дзе ўсе тры каналы аднолькава важныя, YUV трактуе свае каналы па-рознаму ў залежнасці ад чалавечага ўспрымання. Паколькі каляровыя даныя (U і V) менш крытычныя, мы можам паменшыць колькасць перадаемых даных без страты прыкметнай якасці.
Менавіта так працуе механізм Chroma Subsampling — аптымізацыя кадавання відэа шляхам выбарачнага сціску інфармацыі аб колеры, захоўваючы пры гэтым яркасць.
Каляровая падвыбарка - гэта метад памяншэння колькасці каляровых даных у выяве. Замест таго, каб захоўваць колер для кожнага пікселя (як у RGB ), YUV зніжае разрознасць каляровых каналаў, захоўваючы яркасць (форму) некранутай.
Існуе некалькі галіновых стандартаў субвыбаркі каляровасці:
Субвыбарка 4:2:2 – кожная пара пікселяў абменьваецца інфармацыяй аб колеры. Вока амаль не заўважае розніцы, але памер файла памяншаецца на 33%. Гэты метад выкарыстоўваецца рэдка.
Субвыбарка 4:2:0 – колер захоўваецца толькі для аднаго пікселя з чатырох, дасягаючы максімальнага сціску.
Чаму 4:2:0 з'яўляецца асноўным стандартам?
Гэты фармат скарачае памер даных удвая без прыкметнага пагаршэння якасці выявы. Вось чаму гэта стандарт практычна для ўсіх струменевых сэрвісаў і відэаплатформаў. Напрыклад, Microsoft Teams перадае відэа ў фармаце 4:2:0, таму што забяспечвае найлепшы баланс паміж якасцю і эфектыўнасцю прапускной здольнасці.
У гэтай наладзе адно значэнне колеру ўяўляе сабой чатыры пікселі, і чалавечае вока не выяўляе розніцы, нават пры павелічэнні, паколькі яркасць (Y) застаецца нязменнай.
1920×1080×1.5 = 3110400 bytes ≈ 3.1 MB
на адзін кадр, гэта прыводзіць да больш чым двухразовага памяншэння памеру даных у параўнанні з RGBA — без бачнай страты якасці!
На малюнку ніжэй паказана, як выглядае канчатковы кадр/відарыс з падвыбаркай каляровасці 4:2:0 . Звярніце ўвагу, як адно U апісвае чатыры Y , гэта ў 4 разы больш памяці!
У сучасным свеце прыкладанні штучнага інтэлекту для апрацоўкі відэа ў рэжыме рэальнага часу імкліва пашыраюцца. Нейронавыя сеткі выкарыстоўваюцца не толькі для аналізу камер назірання і паляпшэння якасці патоку, але і для больш складаных задач, такіх як генератыўныя эфекты, змяненне знешняга выгляду ў рэальным часе, распазнаванне аб'ектаў і адсочванне руху.
Напрыклад, мы распрацавалі сістэму віртуальнага макіяжу, якая наносіць памаду і цені на твар чалавека ў відэачаце, робячы гэта максімальна рэалістычна. У такіх задачах дакладнасць формы і руху вельмі важная, а інфармацыя аб колеры - другасная. Вы таксама можаце навучыць сваю мадэль разумець малюнкі ў адценнях шэрага, каб павысіць яе прадукцыйнасць. У той жа час атрыманне відарысаў у адценнях шэрага на графічным працэсары будзе нашмат больш эфектыўным, калі ў якасці ўваходных дадзеных вы возьмеце YUV 4:2:0 , бо вам трэба выразаць толькі першую частку выявы, каб атрымаць выніковы канал адценняў шэрага.
Форма мае большае значэнне, чым колер
Мадэлі штучнага інтэлекту, як і многія іншыя сістэмы камп'ютэрнага зроку, сканцэнтраваны ў асноўным на структуры аб'екта, форме і краях, а не на дакладным прайграванні колеру. Гэта дакладна для распазнання твараў, адсочвання поз, выяўлення анамалій і эфектаў AR. Напрыклад, у сістэме распазнавання руху піксельныя абрысы цела значна важней, чым тон скуры.
Прадукцыйнасць мае вырашальнае значэнне
Для штучнага інтэлекту ў рэжыме рэальнага часу кожны кадр павінен апрацоўвацца менш чым за 20 ms
, каб падтрымліваць плыўную частату кадраў ( 50–60 FPS
). Чым хутчэй нейронавая сетка атрымлівае і апрацоўвае кадры, тым больш натуральна і цякуча працуе праграма.
1920×1080
важыць 8.2 MB
, ствараючы велізарную нагрузку на памяць і магутнасць апрацоўкі.O(1)
, перадаючы колер з больш нізкім раздзяленнем, эканомячы вылічальныя рэсурсы без бачнай страты якасці.
Аптымізаваная апрацоўка GPU
Сучасныя графічныя працэсары вельмі аптымізаваныя для апрацоўкі YUV, гэта значыць, што мы можам працаваць з выявамі без пераўтварэння іх у RGB. Гэта ліквідуе непатрэбныя вылічэнні і павялічвае хуткасць апрацоўкі.
Эканомія прапускной здольнасці і памяці
Памяншэнне памеру даных вельмі важна для перадачы і апрацоўкі відэа ў рэальным часе:
Давайце будзем шчырымі — RGB здаецца відавочным выбарам. Гэта стандарт у камерах, экранах і камп'ютэрнай графіцы. Але калі справа даходзіць да струменевага відэа ў рэальным свеце і інтэграцыі штучнага інтэлекту, RGB ператвараецца ў млявага дыназаўра . Тады YUV выходзіць на рынг, прапаноўваючы ідэальны баланс якасці, хуткасці і эфектыўнасці перадачы дадзеных. Яго разумная сістэма захоўвання (аддзяленне яркасці ад сціснутага колеру) дазваляе рабіць рэчы, якія былі б вылічальным кашмарам у RGB .
RGB - гэта выдатна, але не там, дзе задзейнічаны прадукцыйнасць у рэальным часе і штучны інтэлект. YUV з'яўляецца сапраўднай рабочай конькай у струменевай перадачы відэа і на працягу многіх гадоў забяспечвае асноўныя рашэнні.
Такім чынам, калі вы ўсё яшчэ лічыце, што RGB - гэта кароль, прыйшоў час пераасэнсаваць. Відэафарматы даўно гуляюць па сваіх правілах.