1,618 хониш
1,618 хониш

Мубодилаи экрани WebRTC то чӣ андоза хуб аст, воқеан? Ман 4 кодекро ба озмоиш гузоштам

аз ҷониби Vadim Beskrovnov20m2025/03/25
Read on Terminal Reader

Хеле дароз; Хондан

Ман мубодилаи экрани WebRTC-ро дар чаҳор кодекҳои асосӣ - VP8, VP9, H.264 ва AV1 - бо истифода аз мундариҷаи воқеии ҷаҳон, ба монанди паймоиши матн ва видеои баландҳаракат дар шароити гуногуни шабака муқоиса кардам. Натиҷаҳо? AV1 беҳтарин сифатро пешкаш мекунад, махсусан барои мундариҷаи динамикӣ, аммо он CPU пуршиддат аст. H.264 самараноктарин ҳамаҷониба бо дастгирии сахтафзор боқӣ мемонад. Ин ғаввоси амиқ суръати чаҳорчӯба, қарор, PSNR, QP, истифодаи CPU ва ғайраро дар бар мегирад - бо фаҳмиши амалӣ барои таҳиягарон, муҳаққиқон ва ҳар касе, ки видеоро дар вақти воқеӣ оптимизатсия мекунад.
featured image - Мубодилаи экрани WebRTC то чӣ андоза хуб аст, воқеан? Ман 4 кодекро ба озмоиш гузоштам
Vadim Beskrovnov HackerNoon profile picture
0-item

Ман ҳамеша дар бораи он, ки дар бораи мубодилаи экран тавассути WebRTC чӣ гуна кодекҳои гуногун ҷамъ мешаванд, кунҷкоб будам. Ҳамин тавр, ман қарор додам, ки тавассути санҷиши чор маъмултарин: VP8, VP9, H.264 ва AV1.


Барои боварӣ ҳосил кардани натиҷаҳо, ман дар намудҳои гуногуни мундариҷа ва шароити шабака санҷишҳо гузаронидам. Ман на танҳо ба таассуроти визуалӣ такя накардам - ман муқоисаҳои чаҳорчӯба ба чаҳорчӯбро истифода бурдам, таносуби қуллаи сигнал ба садо (PSNR) -ро ҳисоб кардам ва омори муфассали WebRTC-ро гирифтам, то манзараи равшан ва ба маълумот асосёфтаро ба даст орем.


Барои як қадами дигар рафтан, ман ҳатто як плагини фармоишии Chrome сохтам, ки истифодаи CPU-ро ҳангоми рамзгузорӣ ва рамзкушоӣ пайгирӣ мекунад. Ин ба ман нигоҳи хуб дод, ки чӣ гуна ҳар як кодек ба кори система таъсир мерасонад - зеро сифат олӣ аст, аммо на агар компютери шумо дар оташ даргирад, то онро нигоҳ дорад.


Ман ба ченакҳои калидӣ ба монанди суръати бит, суръати чаҳорчӯба, ҳалли, квантизатсия (QP), PSNR ва сарбории CPU назар кардам. Дар асоси ин ҳама, ман якчанд тавсияҳои амалӣ пешниҳод кардам, то ба ҳар касе, ки кӯшиш мекунад мубодилаи экрани WebRTC-ро барои ҳолатҳои истифодаи худ оптимизатсия кунад, кӯмак кунад.

Дар бораи тачриба

Чаро мубодилаи экран он қадар содда нест, ки ба назар мерасад

Агар шумо боре дар вақти занги видеоӣ экрани худро мубодила карда бошед ва мушоҳида карда бошед, ки сифат паст мешавад - ё ин ки видео вайрон мешавад - шумо танҳо нестед. Тоза ва ҳамвор нигоҳ доштани мубодилаи экран воқеан назар ба он ки ба назар мерасад, душвортар аст.


Масъала? Ин ҳама дар бораи гуногунрангӣ аст. Баъзе мундариҷа мисли саҳни слайд ё ҳуҷҷат боқӣ мемонад. Дигар вақтҳо, шумо видеои баландҳаҷмро мубодила мекунед. Ин намудҳои гуногуни мундариҷа аз кодек чизҳои хеле гуногунро талаб мекунанд. Масалан, видеои зудҳаракат як тонна фарохмаҷро мехӯрад, дар ҳоле ки тасвирҳои статикӣ ба артефактҳои фишурда ҳассостаранд, ки метавонанд онҳоро норавшан ё блокнок кунанд.


Мушкилоти воқеии интернетро ба мисли талафи бастаҳо ё коҳиши фарохмаҷро партоед ва корҳо боз ҳам печидатар мешаванд. Аз ин рӯ, интихоби дурусти кодек ва танзими дурусти он, ки чӣ тавр кор мекунад, барои мубодилаи экран ҳам босифат ва ҳам ҷавобгӯ хеле муҳим аст.


Дар он ҷо аллакай таҳқиқоти зиёде мавҷуданд, ки чӣ гуна кодекҳои видео дар сенарияҳои ҷараёнҳои умумӣ иҷро мекунанд. Аммо мубодилаи экран хусусиятҳои худро дорад. Ин танҳо дар бораи тамошои видео нест - он дар бораи муошират дар вақти воқеӣ аст ва намудҳои мундариҷа дар ҳама ҷо ҳастанд. Ин маънои онро дорад, ки тадқиқоти муқаррарӣ на ҳамеша татбиқ мешавад.

Он чизе ки ман ба кор гузоштам

Ман мехостам, ки дар ин ҳолати мушаххаси истифода амиқтар кобед. Ҳадафи ман дидани он буд, ки чӣ гуна кодекҳои гуногун ҳангоми мубодилаи экран кор мекунанд, алахусус дар шароити маҳдудиятҳои ҷаҳонии воқеӣ ба монанди намудҳои гуногуни мундариҷа ва шароити пешгӯинашавандаи шабака.


Барои ин, ман як усули баҳодиҳии сифати мубодилаи экранро то ҳадди имкон дақиқ тарҳрезӣ кардам - на танҳо аз рӯи намуди зоҳирии он, балки бо ченакҳо ва маълумоти устувор дастгирӣ карда мешавад. Дар ин роҳ, ман бисёр чизҳоро омӯхтам, ки кадом кодекҳо беҳтар нигоҳ дошта мешаванд ва чӣ гуна чизҳоро барои иҷрои беҳтар дар замимаҳои вақти воқеӣ танзим кардан лозим аст.


Як чиз зуд равшан шуд: иҷрои мубодилаи экран воқеан аз он чизе, ки шумо мубодила мекунед, вобаста аст. Видеои босуръат аз ҳуҷҷати статикӣ ё ҳаракати суст дар саҳифаи интернетӣ хеле фарқ мекунад.


Барои одилона ва пайдарпай нигоҳ доштани чизҳо, ман боварӣ ҳосил кардам, ки ҳар як санҷиш бо ҳамон шароит - ҳамон қарор, ҳамон нуқтаи ибтидоӣ ва ҳамон давомнок мегузарад. Ҳамин тавр, ман метавонам итминон дошта бошам, ки натиҷаҳо ҳама дар бораи иҷрои кодек буданд, на баъзе тағирёбандаҳои тасодуфӣ.


Ман ду ҳолати санҷишии гуногунро барои тақлид кардани ҳолатҳои мубодилаи экран дар ҳаёти воқеӣ сохтам:

  • Видеои баландҳаҷм - Ин як клипи воқеии мотосиклсаворон буд, ки бо суръат дар ҷангал мегузаранд. Бисёр ҳаракати босуръат, манзараҳои муфассал ва муҳити визуалии доимо тағйирёбанда - барои пешбурди ҳудуди фишурда комил аст.

Видеои баланд ҳаракат

  • Матни худкор ҳаракаткунанда - Ман як саҳифаи оддии HTML-ро бо матн ва тасвирҳо сохтам ва сипас JavaScript-ро истифода бурда, онро бо суръати устувор ҳаракат мекардам. Он як ҳолати маъмулии истифодаро тақлид мекунад, ба монанди мубодилаи ҳуҷҷат ё хондан аз вебсайт.

Ҳаракати автоматии матн

Ин ду намуди мундариҷа ба ман омезиши хуб доданд, то бисанҷем, ки чӣ гуна ҳар як кодек мушкилоти гуногунро ҳал мекунад - аз нигоҳ доштани ҳаракат то нигоҳ доштани возеҳият дар саҳнаҳои статикӣ.

Чӣ тавр ман ҳама чизро танзим мекунам

Барои дуруст санҷидани кодекҳо, ба ман як насби сахт лозим буд, ки метавонад ҳама чизро сабт кунад - ҳам он чизе, ки фиристода мешуд ва чӣ қабул шудааст. Ман бо абзоре бо номи webrtc-sandbox оғоз кардам (Дар омади гап, шумо метавонед дар бораи ин асбоб ва бисёр чизҳои дигар дар мақолаи дигари ман маълумот гиред: " Омӯзиши WebRTC дар амал: Воситаҳои беҳтарин ва намоишҳо "), ки барои бесарусомонӣ дар дохили WebRTC хеле хуб аст. Ман онро каме тағир додам, то мубодилаи экранро беҳтар идора кунам ва боварӣ ҳосил кунам, ки ман ҳам ҷараёнҳои видеоии содиротӣ ва воридотро сабт карда метавонам. Ҳар як озмоиши санҷишӣ ба ман ду файли видеоӣ дод - яке барои он чизе, ки фиристода шуд ва дигаре барои он чизе, ки гирифта шудааст, ки ман баъдтар барои таҳлили паҳлӯ ба паҳлӯ истифода кардам.

webrtc-санг қуттии

Аммо ман дар видео таваққуф накардам. Ман ҳам мехостам пайгирӣ кунам, ки дар зери кулоҳ чӣ рӯй дода истодааст. Барои ин, ман бевосита аз браузери Chrome омори муфассали WebRTC гирифтам. Ин омор ба ман равзана дод, ки чӣ гуна ҳар як кодек иҷро мекунад ва шабакаи симулятсияшуда ҳангоми ҳар як санҷиш чӣ гуна рафтор мекунад.


Як пораи бузурги муаммо истифодаи CPU буд - ва ин каме душвор буд. Варианти муқаррарии Chrome имкон намедиҳад, ки плагинҳо сарбории CPU-ро барои ҷадвалҳои инфиродӣ назорат кунанд, аз ин рӯ ман сохти таҳияи браузерро истифода бурдам ва плагини шахсии худро навиштам, то ки онро бартараф созам.


Ман махсусан ба чен кардани истифодаи CPU аз ҷадвале, ки ҳиссаи экранро мефиристад ё қабул мекард, тамаркуз кардам. Ҳамин тавр, ман аз қисмҳои дигари браузер вазифаҳои ба ҳам алоқамандро истисно кардам. Азбаски ҳам фиристодан ва ҳам қабул дар як ҷадвал сурат мегирифтанд, рақамҳои гирифтаи ман намуди якҷоя буданд - аммо ба ҳар ҳол ба он чизе, ки шумо дар сурати истифодаи воқеии ҷаҳон мебинед, хеле наздиканд. (Спойлер: рамзгузорӣ одатан ба CPU назар ба рамзкушоӣ сахттар зарба мезанад.)

Ҷамъоварии маълумот: 157 Санҷиш баъдтар...

Пас аз он ки насб омода шуд, вақти гузаронидани таҷрибаҳои воқеӣ фаро расид - ва ман бисёре аз онҳоро иҷро кардам. Ман озмоишҳоро дар як мошин такрор ба такрор бо истифода аз шароити гуногуни шабака ва танзимоти кодек такрор кардам, то бубинам, ки корҳо чӣ гуна нигоҳ дошта мешаванд. Дар маҷмӯъ, ман 157 нуқтаи маълумот ҷамъ овардам ва боварӣ ҳосил кардам, ки ҳар як комбинатсияи шароити санҷиш хуб муаррифӣ шудааст.


Ин ба ман як маҷмӯаи маълумоте дод, ки бо он кор кунам ва барои таҳлили амиқ дар бораи чӣ гуна рафтори мубодилаи экран дар WebRTC дар сенарияҳои гуногун имкон дод. Ин аст он чизе ки ман махсусан санҷида будам:


  • Навъи видео :
    Ман ду намуди мундариҷаи мубодилаи экранро барои инъикоси ҳолатҳои истифодаи умумӣ истифода кардам:
    • Видеои баландҳаракат - Наворҳои воқеии ҷаҳон бо тоннаҳо пиксел ҳар чаҳорчӯбаро тағир медиҳанд.
    • Матни худкор ҳаракаткунанда - Асосан визуалӣ статикӣ, вале бо тағирёбии мавқеи пиксел ҳангоми ҳаракати матн.
  • Codec :
    Ман чор кодекҳои маъмултарини мубодилаи экранро санҷидам:
    • AV1
    • H.264
    • VP8
    • VP9
  • Маҷрои шабака :
    Азбаски фарохмаҷро дар сифати видео нақши бузург мебозад (махсусан дар зангҳои видеоӣ), ман шароитҳои гуногуни шабакаро тақлид кардам, то бубинам, ки ҳар як кодек то чӣ андоза маҷрои танг ё тағйирёбандаро идора мекунад.


Бо омехта ва мувофиқ кардани ин тағирёбандаҳо ба таври сохторӣ, ман тавонистам сенарияҳои мубодилаи экрани воқеиро тақлид кунам - он гунае, ки шумо ҳангоми занги видеоӣ, ҳангоми намоиши мустақим ё сеанси дурдасти муштарак дучор мешудед.

Ислоҳи хатогиҳо: Чӣ гуна ман санҷишҳоро боэътимодтар кардам

Мисли аксари таҷрибаҳо, чанд дави аввал он тавре ки ман интизор будам, осон набуд. Ду мушкилоти асосӣ фавран ба миён омаданд:

  1. Оғози дастӣ = Вақти бесарусомон. Дар аввал, ман мубодилаи экранро дастӣ оғоз мекардам - аслан пахш кардани тугма барои оғоз кардани кор. Масъала? Ҳамоҳангсозии оғози сабт бо оғози мундариҷаи видео қариб ғайриимкон буд. Ин маънои онро дошт, ки ҳар як санҷиш вақти каме фарқ дорад, ки муқоисаҳоро қатъ кард.
  2. Фиристодашуда ва қабулшуда = Аз ҳамоҳангӣ. Ҳатто вақте ки вақт дуруст буд, видеои вақти воқеӣ хусусиятҳои худро дорад. Ба шарофати рамзгузорӣ, рамзкушоӣ ва таъхирҳои шабака, ҷараёнҳои фиристодашуда ва қабулшуда ҳеҷ гоҳ ба таври комил саф оростаанд. Ин муқоисаи сифатро ба чаҳорчӯба қариб ғайриимкон сохт.


Барои ҳалли ин масъалаҳо, ман якчанд такмилдиҳии асосиро кардам:

  • Синхронизатсияи барномавӣ : Ба ҷои он ки ҳама чизро дастӣ оғоз кунам, ман як код навиштам, то оғози видео ё паймоиши матнро бо раванди сабт ҳамоҳанг созам. Ҳамин тавр, ҳар як озмоиши озмоишӣ дар як лаҳза аз ҳарду ҷониб оғоз ёфт - мушкилот ҳал карда шуд.
  • Мутобиқсозии чаҳорчӯбаи коди QR : Барои мушкилоти ҳамоҳангсозӣ, ман ба видеои муштарак як қабати хурди рамзи QR илова кардам. Ин маркери хурд ҳамчун тамғаи вақт амал мекард - он ба ман имкон дод, ки чаҳорчӯба байни ҷараёнҳои фиристодашуда ва қабулшударо бо дақиқ мувофиқ созам. Ногаҳон, таҳлили чаҳорчӯба ба чаҳорчӯба қобили иҷро шуд (ва дурусттар).

Боз як чизи дигаре буд, ки ман бояд ҳисоб кунам: суръати мутобиқшавии WebRTC . Яке аз хусусиятҳои ҷолиби WebRTC дар он аст, ки он ба таври худкор сифати видеоро дар асоси фарохмаҷрои дастрас танзим мекунад. Аммо ин танзим фавран ба амал намеояд - барои мӯътадил шудан чанд сония лозим аст. Ҳамин тавр, ман пеш аз оғози сабти воқеӣ як таъхири кӯтоҳ илова кардам. Ин ба система вақт дод, то бо суръати ҳадаф қарор гирад, то натиҷаҳо сифати воқеиро инъикос кунанд, ки шумо баъд аз ҳама чиз ба даст меоред.


Ин тағиротҳо таҷрибаро хеле боэътимодтар карданд ва ба ман итминон доданд, ки маълумоте, ки ман ҷамъ мекардам, воқеан рафтори мубодилаи экранро дар ҷаҳони воқеӣ инъикос мекунад.

Он чизе ки ман чен кардам (ва чаро ин муҳим аст)

Дар давоми ин санҷишҳо ман маълумоти зиёде ҷамъ кардам, аммо барои нигоҳ доштани чизҳои оддӣ ва осон барои муқоиса, ман ба чанд ченакҳои асосӣ тамаркуз кардам, ки воқеан ҳикояи иҷрои ҳар як кодекро дар сенарияи мубодилаи экран нақл мекунанд.


Ин аст он чизе ки ман ба он нигоҳ кардам:

  • Меъёри кадр
    Ин ба ман мегӯяд, ки чанд чаҳорчӯба дар як сония воқеан рамзгузорӣ, ирсол ва қабул шудааст. Ин нишондиҳандаи хуби ҳисси ҳамвор будани ҷараёни видео аст - суръати баландтари чаҳорчӯба одатан таҷрибаи моеътарро дорад.
  • Резолюция
    Қарор он аст, ки чӣ қадар ҷузъиёти визуалӣ нигоҳ дошта мешавад. Ман шумораи пикселҳоро дар як чаҳорчӯба дар ҳар марҳила (фиристода ва қабул) пайгирӣ кардам, то бубинам, ки оё кодекҳо сифати тасвирро нигоҳ медоранд ё онро барои сарфаи фарохмаҷро партофтаанд.
  • Сифати видео
    Ман дар ин ҷо якчанд нишондиҳандаҳои асосиро истифода кардам:
    • Параметри квантизатсия (QP) - QP пасттар одатан маънои беҳтар кардани сифатро дорад.
    • Таносуби қуллаи сигнал ба садо (PSNR) - Ин ҳисси ададӣ медиҳад, ки видеои гирифташуда аз асл то чӣ андоза фарқ мекунад. Баландтар = беҳтар.
  • Истифодаи CPU
    Иҷрои Codec на танҳо дар бораи он чизе, ки шумо мебинед, балки он аст, ки мошини шумо дар паси парда чӣ кор мекунад. Ман чен кардам, ки дар давоми ҳар як санҷиш барои рамзгузорӣ ва рамзкушоӣ чӣ қадар қувваи CPU истифода шудааст ва бо мурури замон ба эътидол оварда шудааст, то бубинам, ки кадом кодекҳо сабук ва кадомашон хукҳои захиравӣ мебошанд.


Бо шикастани чизҳо бо ин ченакҳо, ман тавонистам кодекҳоро на танҳо аз рӯи сифат, балки аз рӯи ҳамворӣ, самаранокӣ ва то чӣ андоза серталаб будани онҳо муқоиса кунам. Ин кӯмак кард, ки ҳар як кодек дар куҷо дурахшид ва дар куҷо мубориза мебарад - дар шароити мубодилаи экран дар ҷаҳон.

Ниҳоят ба натиҷаҳо мерасад

Навъи мундариҷа чӣ қадар муҳим аст? Хеле бештар аз он ки шумо фикр мекунед

Яке аз таассуроти аҷибтарин аз таҷрибаҳои ман ин буд, ки то чӣ андоза намуди мундариҷае, ки шумо мубодила мекунед, ба иҷрои мубодилаи экран таъсир мерасонад - ҳам аз ҷиҳати сифати видео ва ҳам истифодаи захираҳо. Ва ин барои ҳар як кодеки озмоишкардаам дуруст буд.


Идеяи паси он хеле содда аст: вақте ки пикселҳои бештар аз чаҳорчӯба ба чаҳорчӯба иваз мешаванд (ба монанди видеои зудҳаракат), система бояд сахттар кор кунад. Ин маънои онро дорад, ки маҷрои бештар лозим аст ва CPU-и шумо барои нигоҳ доштани он бояд бештар шитоб кунад.


Масалан, AV1 -ро гиред. Вақте ки ман онро барои мубодилаи экрани 1,5-мегапикселӣ истифода кардам, фарохмаҷрои лозима вобаста ба он чизе, ки мубодила мешавад, хеле фарқ мекард. Дар як ҳолат, ки мундариҷа динамиктар буд, AV1 маҷбур буд, ки маълумоти бештарро тела диҳад, то ҷараёнро ҳамвор нигоҳ дорад. Ман инро дар графики зерин сабт кардам, ки он нишон медиҳад, ки чӣ гуна мураккабии мундариҷа ба истифодаи фарохмаҷро таъсир мерасонад.


Битрат нисбат ба истифодаи CPU барои як намуди мундариҷа барои кодек AV1


Аммо ин на танҳо фарохмаҷрои - сахтафзори шумо низ онро ҳис мекунад.


Графикаи навбатӣ нишон медиҳад, ки чӣ гуна истифодаи CPU вобаста ба мундариҷаи мубодила тағир меёбад. Боз ҳам, бо истифода аз AV1 ҳамчун мисол, шумо ба таври возеҳ мебинед, ки визуалҳои мураккабтар қувваи бештари CPU-ро талаб мекунанд, то корҳоро бо суръати якхела ва ҳалли ҳамон кор нигоҳ доранд.

Миёнаи FPS нисбат ба истифодаи CPU барои як намуди мундариҷа барои кодек AV1

Ин ҳам танҳо як чизи AV1 нест. Ҳама кодекҳо ба ҳамон принсипҳои асосии рамзгузорӣ ва рамзкушоии видео такя мекунанд, бинобар ин шумо интизоред, ки онҳо рафтори шабеҳро нишон медиҳанд - аммо маълумот ҳикояи дигарро нақл мекунад. Сарбории CPU на танҳо бо мундариҷа тағир намеёбад, он инчунин вобаста ба кадом кодеки шумо истифодашаванда тағир меёбад.


Барои осонтар кардани ин муқоиса, ман ҷадвали зеринро ҷамъ овардам, ки нишон медиҳад, ки ҳар як кодек ҳангоми ҷараён додани видеои 1,5 мегапикселӣ дар тақрибан 24 кадр дар як сония чӣ қадар CPU-ро истифода мебарад - як насби маъмулӣ барои мубодилаи ҳамвор экран. Натиҷаҳо баъзе фарқиятҳои асосиро дар мавриди самаранок будани ҳар як кодек ҳангоми истифодаи сахтафзори шумо таъкид мекунанд.

Codec/CPU

AV1

H264

VP8

VP9

Ҳаракат

287%

213%

270%

364%

Матн

175%

130%

179%

198%

Ҳамин тавр, агар шумо чизеро созед ё оптимизатсия кунед, ки ба мубодилаи экрани WebRTC такя мекунад, натиҷа равшан аст: ҳам мундариҷаи шумо ва ҳам интихоби кодек муҳим аст. Бисёр.

Showdown Codec: Меъёрҳои чаҳорчӯба, сарбории CPU ва хароҷоти воқеии сифат

Вақте ки сухан дар бораи мубодилаи экран меравад, яке аз аввалин чизҳое, ки шумо мебинед, он аст, ки видео чӣ гуна ҳамвор аст (ё не). Маҳз дар ҳамин ҷо суръати чаҳорчӯба ба кор меояд. Агар шумо мундариҷаи баландҳаракатро мубодила кунед, ба монанди бозикунии видео ё аниматсияҳо, суръати баландтари кадрҳо барои пешгирӣ кардани ҷараёнҳои печида ва тамошои душвор муҳим аст.


Барои ин қисми таҷриба, ман ба иҷрои суръати чаҳорчӯба дар кодекҳои гуногун тамаркуз кардам ва ҳама чизи дигарро доимӣ нигоҳ доштам: як қарор (тақрибан 1,5 мегапиксел) ва мундариҷаи якхела барои ҳар як санҷиш. Ман танзимоти contentHint WebRTC-ро истифода бурдам, то боварӣ ҳосил кунам, ки қарор дар тамоми тахта баста боқӣ мемонад.


Дар тасвири зерин шумо метавонед бинед, ки чӣ гуна кодекҳои гуногун мундариҷаи баланд ҳаракатро идора мекунанд, зеро фарохмаҷрои он афзоиш меёбад. Дар меҳвари x: суръати бит дар Мбит/с. Дар меҳвари Y: суръати чаҳорчӯба дар чаҳорчӯба дар як сония (fps).

Битрат нисбат ба суръати чаҳорчӯба барои як кодек барои видеои баландҳаракат бо қарори доимӣ


Ин аст он чизе ки барҷаста буд:

  • H.264 ва AV1 пас аз расидани фарохмаҷрои 2 Мбит ё бештар аз он пеш рафтанд, ки ҳарду 20+ кадр/сонияро таъмин мекунанд - таҷрибаи ҳамвор, ки ҳатто дар пайвасти муносиби 3G имконпазир аст.
  • VP8 ва VP9 низ идома наёфтанд. Онҳо дар як шароит тақрибан дар нисфи суръати чаҳорчӯба ҳаракат мекарданд ва воқеан ба 4 Мбит / сония ё бештар аз он ниёз доштанд, то худро қобили истифода ҳис кунанд - ин на ҳамеша дар шабакаҳои сатҳи поёнӣ воқеӣ аст.


Пас аз он ман ба мундариҷаи камҳаракат гузаштам - саҳифаи матнии оҳиста-оҳиста ҳаракаткунанда - то бубинам, ки кодекҳо ҳангоми тағир наёфтани байни чаҳорчӯба чӣ гуна кор мекунанд.


Тааҷҷубовар нест, ки ҳам H.264 ва ҳам AV1 дар ин сенария боз ҳам беҳтар кор карданд ва AV1 дар боло баромад . Ин ба шарофати як хусусият бо номи Intra Block Copy аст, ки ба AV1 имкон медиҳад, ки қисмҳои рамзгузории дубораи экранро, ки тағир наёфтаанд, гузаред. Он барои мубодилаи экрани статикӣ ё нимстатикӣ бениҳоят самаранок аст.


Дар графики навбатӣ , шумо метавонед бубинед, ки AV1 то чӣ андоза самаранок ин ҳолатҳои камҳаракатро идора мекунад ва истифодаи фарохмаҷро ба таври назаррас паст нигоҳ дошта, сифати баланди визуалӣ нигоҳ медорад.

Битрат нисбат ба суръати чаҳорчӯба барои як кодек барои паймоиши матн бо ҳалли доимӣ


Аммо... як муомила вуҷуд дорад.


AV1 метавонад ба шумо визуалӣ ва фишурдани беҳтар диҳад, аммо он инчунин CPU бештар истеъмол мекунад . Тасвири навбатӣ инро ба таври равшан нишон медиҳад: Истифодаи CPU дар AV1 бо афзоиши суръати бит мунтазам боло меравад ва аз H.264 бо зарбаи тӯлонӣ пештар аст. H.264 дар ин ҷо ба шарофати суръатбахшии сахтафзор бартарии калон дорад, ки сарбории CPU-ро паст ва устувор нигоҳ медорад.

Битрат нисбат ба истифодаи CPU барои як кодек барои видеои баландҳаракат бо қарори доимӣ


VP9 , ҷолиб он аст, ки нисбат ба AV1 ҳатто бештар CPU-ро истифода мебарад - пас аз тамоюли шабеҳ, аммо бо қуллаҳои баландтар. Ҳарду VP9 ва AV1 барои расонидани сифати хуб ба алгоритмҳои мураккаб такя мекунанд, аммо ин арзиш дорад: онҳо дар протсессори шумо зарбаҳои вазнин доранд.


Вақте ки ман мундариҷаи камҳаракатро аз нав дида баромадам, як печидагӣ ба амал омад. Ин дафъа, VP8 ва VP9 воқеан хеле самаранок ба назар мерасиданд - бо истифода аз CPU камтар аз AV1, тавре ки дар диаграммаи навбатӣ нишон дода шудааст.

Битрат нисбат ба истифодаи CPU барои як кодек барои ҳаракати матн бо ҳалли доимӣ


AV1, сарфи назар аз он ки бо дарназардошти мубодилаи экран тарҳрезӣ шудааст, ҳанӯз ҳам CPU-и бештарро истифода мебарад. Чаро? Ҳамаи он оптимизатсияҳо, ки ба фишурдани видеои баландҳаракат кӯмак мекунанд, инчунин хароҷоти изофӣ илова мекунанд - ҳатто вақте ки дар экран чизи зиёде рух намедиҳад.


Сабаби калон барои ин? AV1 то ҳол дастгирии васеъи рамзгузории сахтафзор надорад . Дар ҳоле ки рамзкушоӣ нисбатан сабук аст, рамзгузорӣ ҳоло ҳам асосан дар нармафзор анҷом дода мешавад - ва ин як кори пуршиддати CPU аст, махсусан дар сенарияҳои вақти воқеӣ, ба монанди мубодилаи экран, ки дар он ҳам рамзгузорӣ ва ҳам рамзкушоӣ пайваста сурат мегирад.


Дар ин ҷо корҳо барои дастгоҳҳои сайёр ба монанди ноутбукҳо ва планшетҳо душвор мешаванд. Бе суръатбахшии сахтафзор, кодекҳо ба монанди AV1 метавонанд захираҳои қувва ва хукро зуд холӣ кунанд - вақте ки шумо дар роҳ ҳастед, беҳтарин нест. То он даме, ки дастгирии сахтафзор бештар маъмул гардад, хусусиятҳои пешрафтаи AV1 бо арзиши назарраси иҷроиш меоянд.

Codecs ва ҳалли: Вақте ки шумо суръати чаҳорчӯбаро бартарият медиҳед, чӣ мешавад?

То ба ҳол, натиҷаҳое, ки ман мубодила кардам, аз санҷишҳое буданд, ки ҳалли худро доимӣ нигоҳ медоштанд. Вақте ки маҷрои фарохмаҷро танг мешавад, система бо коҳиш додани суръати чаҳорчӯба посух медиҳад - ин барои чизҳое ба монанди мундариҷаи статикӣ ё матн маъно дорад. Аммо чӣ мешавад, агар ҳадаф нигоҳ доштани ҳамвор ба корҳо бошад, ҳатто агар ин қурбонии ҳалли худро дошта бошад?


Барои омӯхтани ин, ман як маҷмӯи нави таҷрибаҳоро иҷро кардам, ки дар он WebRTC барои афзалият додани суръати чаҳорчӯба танзим карда шуда буд. Ин бо истифода аз танзимоти contentHint дар WebRTC анҷом дода шуд, ки ба шумо имкон медиҳад, ки ба браузер бигӯед, ки чӣ муҳимтар аст - ҳалли баланд ё ҳаракати ҳамвор.


Ман мақсад доштам, ки суръати чаҳорчӯбаро дар 30 кадри сония устувор нигоҳ дорам, ки он ҳамчун нуқтаи ширин барои тамошои ҳамвор ва бароҳат эътироф шудааст. Гирифтани ин пайваста душвор буд - ҷараёни мутобиқшавӣ маънои онро дорад, ки ҳамеша каме тағирот вуҷуд дорад - аммо натиҷаҳо фаҳмиши пурарзишеро дар бораи он ки ҳар як кодек ин тиҷоратро чӣ гуна ҳал мекунад, пешниҳод карданд.


Барои кӯмак ба таҳлили ин рафтор, ман як метрикаи навро ҷорӣ кардам:

Пикселҳои фиристодашуда дар як сония = Меъёри чаҳорчӯба × Ҳалли


Ин на танҳо ба FPS ё ҳалли танҳо нигоҳ кардан тасвири пурратар медиҳад. Он нишон медиҳад, ки кодек дар як сония дар шароити гуногун чӣ қадар маълумоти визуалӣ медиҳад.


Барои видеои баланд ҳаракат, AV1 бори дигар дар боло баромад - ва бо маржаи назаррас. Ҳатто дар суръати пасттар, он тавонист дар як сония назар ба ҳама кодекҳои дигар ба таври назаррас бештар пиксел интиқол диҳад. Ин ба таври возеҳ нишон медиҳад, ки AV1 мундариҷаи динамикиро то чӣ андоза хуб идора мекунад, вақте ки система барои нигоҳ доштани суръати баланди кадрҳо фишор меорад. Лутфан ба диаграммаи зерин нигаред:


Битрат нисбат ба миёнаи умумии пикселҳо дар як сония дар як кодек барои видеои баландҳаракат бо FPS доимӣ


Вақте ки ман ба мундариҷаи камҳаракат гузаштам - ба монанди саҳифаи веб бо матни ҳаракаткунанда - майдони бозӣ каме баландтар шуд. Иҷрои ҳамаи кодекҳо яксонтар шуд, зеро шумо метавонед дар тасвири оянда пайдо кунед. Бо вуҷуди ин, AV1 ҳанӯз ҳам пешсафро нигоҳ дошт , махсусан дар суръати баландтар. Оптимизатсияи фишурдасозии он ба он кӯмак кард, ки қобилияти пурқувватро бидуни афзоиши назарраси истифодаи захираҳо нигоҳ дорад.


Битрат нисбат ба миёнаи умумии пикселҳо дар як сония дар як кодек барои паймоиши матн бо FPS доимӣ


Хамаи ин дар амал чй маъно дорад?


Хуб, агар парвандаи истифодаи шумо визуалии динамикӣ ва баланд ҳаракатро дар бар гирад - ба монанди сайёҳони видео, аниматсияҳои зинда ё ҷараёнҳои бозӣ - афзалият додани суръати чаҳорчӯба метавонад фарқияти калон эҷод кунад ва AV1 махсусан дар он муҳит қобилият дорад.


Ҳатто барои мундариҷаи сусттар ҳаракаткунанда, AV1 қувваташро нишон медиҳад. Гарчанде ки фарқият метавонад хурдтар бошад, он пайваста идора мекунад, ки маълумоти бештари визуалӣ фиристад - маънои сифати беҳтарро дар як маҷрои якхела ё пасттар - ба шарофати стратегияҳои пешрафтаи фишурдасозии он.


Дар ҳарду ҳолат, метрикаи "пикселҳои фиристодашуда дар як сония" барои фаҳмидани он ки чӣ гуна кодекҳо ҳалли мувозинат ва суръати чаҳорчӯба ҳангоми маҳдуд будани фарохмаҷро муфид буданд. Ва иҷрои AV1 дар ин шароит онро ҳамчун варианти қобилиятнок бештар тақвият медиҳад - ба шарте ки системаи шумо метавонад талаботи иловагии CPU-ро иҷро кунад.

Тасвир то чӣ андоза тоза аст? Биёед PSNR сӯҳбат кунем

Ғайр аз суръати чаҳорчӯба, қарор ва истифодаи CPU, боз як ҷузъи муҳими муаммои мубодилаи экран вуҷуд дорад: тасвири гирифташуда ба асл то чӣ андоза наздик аст? Дар он ҷо таносуби қуллаи сигнал ба садо (PSNR) ворид мешавад.


PSNR як метрикаи васеъ истифодашаванда барои чен кардани сифати видеои фишурда мебошад. Он ба шумо мегӯяд, ки ҳангоми рамзгузорӣ чӣ қадар таҳриф ё "садо" ҷорӣ шудааст. Он бо децибелҳо (дБ) чен карда мешавад ва қоидаи асосӣ оддӣ аст: ҳар қадар баландтар бошад, ҳамон қадар беҳтар аст . PSNR-и баланд маънои онро дорад, ки тасвир тақрибан ба аслӣ монанд аст; холҳои пасттар маънои онро дорад, ки таназзули бештар намоён аст.


Барои ба контекст даровардани ин, ман арзишҳои PSNR-ро дар кодекҳо дар ду сенарияи гуногун санҷидам: яке дар он ҷо ҳалли афзалият афзалият аст ва дигаре, ки суръати чаҳорчӯба пешсаф аст. Ҳарду озмоишҳо як мундариҷаи видеоии баланд ҳаракатро истифода бурданд, то чизҳоро мувофиқ нигоҳ доранд.


Битрат нисбат ба PSNR барои як кодек бо ишораи ҳаракат барои видеои баланд ҳаракат

Дар ин танзимот, ки дар он возеҳӣ дар маркази таваҷҷӯҳ аст (ҳатто агар видео каме печида бошад), H.264 махсусан хуб иҷро карда , визуалии тезро бо таҳрифи ҳадди ақал пешкаш мекунад. Ин интихоби қавӣ аст, вақте ки ҳамворӣ он қадар муҳим нест.


Битрат нисбат ба PSNR барои як кодек бо ишораи матнӣ барои видеои баландҳаракат

Вақте ки ҳадаф ба нигоҳ доштани ҳаракати моеъ мегузарад, AV1 пеш меояд , махсусан дар суръати баландтар. Он ҳатто ҳангоми фишурдани хашмгин барои расидан ба ҳадафҳои суръати чаҳорчӯба сифати тасвирро нигоҳ медорад.


Гарчанде ки фарқиятҳо дар PSNR байни кодекҳо на ҳамеша назаррасанд, онҳо мубодилаи афкореро, ки шумо ҳангоми интихоби кодек мекунед, таъкид мекунанд. Баъзеҳо равшаниро авлавият медиҳанд; дигарон ҳадафи ҳаракати ҳамвор мебошанд - ва вобаста ба ҳолати истифодаи шумо, яке аз дигараш беҳтар мувофиқ аст.


Пас аз он ман боз ҳамон озмоишҳоро гузаронидам, ин дафъа бо истифода аз мундариҷаи матни ҳаракаткунанда - чизе, ки воқеан аҳамияти ҳалли ва возеҳиро таъкид мекунад.


Битрат нисбат ба PSNR барои як кодек бо ишораи ҳаракат барои ҳаракати матн

Вақте ки ҳаракат авлавият дода мешавад, арзишҳои PSNR дар тамоми кодекҳо хеле монанд ба назар мерасанд. Мазмуни он чандон тағир намеёбад, аз ин рӯ фарқиятҳо дар стратегияи фишурдашавӣ ба сифати умумии тасвир таъсири зиёд надоранд.


Битрат нисбат ба PSNR барои як кодек бо ишораи матн барои паймоиши матн

Дар ин ҷо чизҳо ҷолиб мешаванд. Бо ҳалли афзалият ҳамчун афзалият, AV1 аз дигар кодекҳо хеле пештар аст - махсусан дар суръати баландтар. Фаъолияти он дар ин ҷо беназир аст.


Чаро? AV1 оптимизатсияҳои мушаххасро барои коркарди мундариҷаи статикӣ ва такроршаванда ба монанди матн дар бар мегирад. Инҳо ба он имкон медиҳанд, ки дақиқии баландтари тасвирро нигоҳ доранд, аз артефактҳо канорагирӣ кунанд ва самараноктар фишурда шаванд. Ин AV1-ро интихоби афсонавӣ барои ҳолатҳои истифода ба монанди мубодилаи ҳуҷҷатҳо ё гузариши кодҳо месозад - дар ҳама ҷое, ки тафсилоти дақиқ ва хондашаванда воқеан муҳим аст .


Хулоса, PSNR кӯмак мекунад, ки як андозагирии нозук, вале муҳими сифати мубодилаи экранро таъкид кунад. Новобаста аз он ки шумо ба ҳаракат ё равшанӣ авлавият медиҳед, фаҳмидани он ки кодекҳо дар зери маҳдудиятҳои гуногун чӣ гуна рафтор мекунанд, ба шумо имкон медиҳад, ки якеро барои кор интихоб кунед.

Муомила бо QP чист? Фаҳмидани фишурдашавӣ ва сифат

Дигар омили муҳими сифати мубодилаи экран чизест, ки Параметри квантизатсия ё QP номида мешавад. Агар шумо ягон бор дар ҳайрат шуда бошед, ки чӣ қадар ҷузъиёт ҳангоми фишурдашавӣ гум мешавад, чӣ назорат мекунад, ин аст.


Бо ибораи оддӣ, QP ба рамзгузор мегӯяд, ки видеоро то чӣ андоза хашмгинона фишурдан лозим аст .

  • QP паст маънои фишурдани камтар ва сифати беҳтари тасвирро дорад.
  • QP-и баланд маънои фишурдани бештарро дорад, ки фарохмаҷро сарфа мекунад, аммо метавонад видеоро бадтар кунад.


Дар ҳоле, ки PSNR ба мо натиҷа медиҳад - чӣ қадар сифати тасвир нигоҳ дошта шудааст - QP ба мо мегӯяд, ки рамзгузор чӣ ҳадаф дорад . Ҳамин тавр, ман ба ҳарду нигоҳ кардам.


Дар ин тадқиқот:

  • Арзишҳои QP аз ченакҳои стандартии WebRTC гирифта шуданд.
  • PSNR пас аз он бо роҳи муқоисаи ҳар як чаҳорчӯбаи аслӣ бо версияи гирифтааш чен карда шуд.

Битрат нисбат ба QP барои як кодек бо ишораи ҳаракат барои видеои баландҳаракат


Дар ин ҷо чизҳо ҷолиб шуданд. AV1 дорои холҳои беҳтарини PSNR буд , яъне он сифати тасвирро беҳтарин нигоҳ дошт - аммо он инчунин арзиши QP-ро аз дигар кодекҳо то чор маротиба баландтар дошт. Ин дар назари аввал мухолиф ба назар мерасад.


Аммо дар ин ҷо ҷолиб аст: ҳар як кодек QP-ро ба таври гуногун муайян ва идора мекунад , аз ин рӯ арзишҳоро мустақиман муқоиса кардан мумкин нест. QP 50 дар як кодек ҳатман маънои ҳамон сатҳи фишурдашавиро бо QP 50 дар дигараш надорад.


Бо вуҷуди ин, тамоюлҳои QP ба мо чизи муфидро мегӯянд. Дар тамоми кодекҳо ман мушоҳида кардам, ки баробари зиёд шудани фарохмаҷрои QP кам мешавад . Ин маъно дорад - бо дастрасии бештари фарохмаҷро, кодекҳо метавонанд фишурдашавиро кам кунанд ва сифати тасвирро беҳтар кунанд.


Ҳамин тавр, гарчанде ки мо рақамҳои QP-ро дар байни кодекҳо паҳлӯ ба паҳлӯ ҷойгир карда наметавонем, онҳо ба ҳар ҳол нишон медиҳанд, ки чӣ гуна ҳар як кодек фишурдаро дар асоси шароити мавҷудаи шабака ба таври динамикӣ танзим мекунад.


Сатри поён: QP нишондиҳандаи сифат нест - ин танзимот аст . Аммо пайгирӣ кардани он, ки чӣ гуна он бо фарохмаҷрои он тағир меёбад, фаҳмиши муфидро дар бораи он, ки рамзгузор дар паси парда чӣ кор мекунад, медиҳад. Ва дар якҷоягӣ бо PSNR, он тасвири пурраи рафтори кодекро медиҳад.

Андешаҳои ниҳоӣ: Ин ҳама барои мубодилаи экрани WebRTC чӣ маъно дорад

Пас аз ғарқ шудан ба он, ки чӣ гуна WebRTC дар зери сарпӯш кор мекунад, як чиз равшан аст: на ҳама кодекҳо баробар офарида шудаанд - ва интихоби беҳтарин воқеан аз афзалиятҳо ва муҳити шумо вобаста аст.


Инҳоянд хулосаҳои асосии таҷрибаҳои ман:

AV1: Сифати беҳтарин, арзиши баландтарин

AV1 пайваста сифати беҳтарини визуалиро таъмин мекард, хоҳ ман видеои зудҳаракатро мубодила мекардам ё матни оҳиста ҳаракат мекардам. Фишурдасозии пешрафта ва оптимизатсияи он онро бениҳоят самаранок мегардонад - аммо ин бо нарх меояд. AV1 ба CPU гурусна аст ва азбаски дастгирии сахтафзор то ҳол ба он расида истодааст, он барои дастгоҳҳои камқувват ё мобилӣ ҳанӯз идеалӣ нест.

H.264: Сахти ҳамаҷониба

Агар шумо дар ҷустуҷӯи тавозуни байни иҷроиш ва самаранокӣ бошед, H.264 ҳанӯз интихоби олӣ аст. Он дар аксари платформаҳо ба таври васеъ дастгирӣ мешавад, сахтафзор суръат мегирад ва тақрибан дар ҳама сенарияҳо кори хуб мекунад - хусусан вақте ки захираҳои система ё мӯҳлати батарея нигаронанд.

Мундариҷа муҳимтар аз он ки шумо фикр мекунед

Навъи мундариҷае, ки шумо мубодила мекунед, ба иҷроиш таъсири калон мерасонад. Видеои баландҳаракат нисбат ба мундариҷаи статикӣ ба монанди ҳуҷҷатҳо ё матн аз CPU ва фарохмаҷрои шумо бештар талаб мекунад. Интихоби дурусти кодек - ва танзимоти дуруст - барои мундариҷаи шумо метавонад дар сифат ва истифодаи захираҳо фарқияти азиме эҷод кунад.

Истифодаи CPU танҳо як эзоҳ нест

Ба шарофати плагини фармоишии Chrome, ки ман сохтаам, ман тавонистам ҳангоми мубодилаи экран истифодаи CPU-ро дақиқ чен кунам. Натиҷаҳо фарқияти калонро дар чӣ гуна серталаб будани ҳар як кодек нишон доданд, ки махсусан дар дастгоҳҳои мобилӣ ё дар муҳити аз энергия ҳассос муҳим мегардад.


Баъд чӣ аст? Ин тадқиқот ба куҷо рафта метавонад

Ин таҷриба дари чанд қадами ояндаи ҷолибро кушод. Ин ҷоест, ки ман фикр мекунам, ки кори оянда метавонад таъсири боз ҳам бузургтар кунад:

Санҷиш дар дастгоҳҳои мобилӣ

То ба ҳол, ҳама санҷишҳо дар мизи корӣ анҷом дода шуданд - аммо мубодилаи экран дар телефонҳо ва планшетҳо ҳамон қадар маъмул аст (агар бештар набошад). Санҷиши он, ки ин кодекҳо дар мобилӣ чӣ гуна кор мекунанд, тасвири пурратаре медиҳад, алахусус аз нуқтаи назари посухдиҳӣ ва истифодаи нерӯ.

Самаранокии энергия

Дар бораи қудрат сухан ронем - кодекҳо на танҳо CPU-ро месузонанд, балки мӯҳлати батареяро низ месузонанд. Тадқиқоти оянда бояд муайян кунад, ки кадом кодекҳо аз ҳама сарфакоронаи энергия мебошанд, махсусан барои сеансҳои мубодилаи экран дар дастгоҳҳои сайёр.

Танзими кодек бо ёрии AI

Тасаввур кунед, ки WebRTC метавонад ба таври худкор танзимоти кодекро дар асоси мундариҷаи ҷории шумо ва суръати шабака танзим кунад. AI метавонад инро имконпазир созад ва ба таври динамикӣ тавозуни комил байни сифат ва иҷроишро дар вақти воқеӣ пайдо кунад.

Пур кардани он

Интихоби кодек на танҳо як қарори техникӣ аст - он бевосита ба сифат, ҳамворӣ ва истифодаи захираҳои таҷрибаи мубодилаи экрани шумо таъсир мерасонад. Новобаста аз он ки шумо як абзори видеоконфронс, платформаи ҳамкорӣ сохта истодаед ё танҳо ҷараёнҳои кории худро оптимизатсия мекунед, фаҳмед, ки ин кодекҳо дар шароити гуногун чӣ гуна рафтор мекунанд, метавонад ба шумо дар қабули қарорҳои оқилона ва муассир кӯмак кунад.


Вақте ки WebRTC таҳаввулро идома медиҳад, асбобҳо ва усулҳои атрофи он низ ҳамин тавр хоҳанд шуд. Умедворам, ки ин ғаввоси амиқ ба дигарон кӯмак мекунад, ки беҳтар дарк кунанд, ки дар паси парда чӣ рӯй дода истодааст ва чӣ гуна аз стеки мубодилаи экрани худ бештар истифода баранд.

Мехоҳед маълумотро худатон омӯзед?

Агар шумо хоҳед, ки амиқтар ба натиҷаҳо кобед ё таҳлили шахсии худро иҷро кунед, ман маҷмӯи пурраи маълумотро аз ин тадқиқот дастрас кардам:


Маҷмӯи маълумотро дар Kaggle зеркашӣ кунед


Он ченакҳои хомро барои суръати чаҳорчӯба, қарор, PSNR, QP, истифодаи CPU ва ғайра дар бар мегирад - ҳама аз рӯи кодек, намуди мундариҷа ва ҳолати фарохмаҷро ташкил карда шудаанд. Озод ҳис кунед, ки онро барои таҷрибаҳои худ, муқоиса ё танҳо омӯхтани тарзи рафтори WebRTC дар сенарияҳои гуногун истифода баред.

L O A D I N G
. . . comments & more!

About Author

Vadim Beskrovnov HackerNoon profile picture
Vadim Beskrovnov@vbeskrovnov
Software Engineer enjoying working with any platform. https://www.linkedin.com/in/beskrovnov/

ТЕГИ овезон кунед

ИН МАКОЛА ДАР...

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks