Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Sehemu ya kwanza: Misingi ya kufanya kazi na video na picha

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Nini? Kodeki ya video ni kipande cha programu/vifaa vinavyobana na/au kufinya video dijitali.

Kwa ajili ya nini? Licha ya mapungufu fulani katika suala la bandwidth na
na kwa upande wa nafasi ya kuhifadhi data, soko linadai video za ubora wa juu zaidi. Je, unakumbuka jinsi katika chapisho la mwisho tulihesabu kiwango cha chini kinachohitajika kwa fremu 30 kwa sekunde, biti 24 kwa pikseli, na azimio la 480x240? Tulipokea 82,944 Mbit/s bila mgandamizo. Kwa sasa mbano ndiyo njia pekee ya kusambaza HD/FullHD/4K kwa skrini za televisheni na Mtandao. Je, hili linafikiwaje? Sasa hebu tuangalie kwa ufupi njia kuu.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Tafsiri ilifanywa kwa usaidizi wa Programu ya EDISON.

Tumechumbiwa ujumuishaji wa mifumo ya ufuatiliaji wa videoNa tunatengeneza microtomograph.

Kodeki dhidi ya Kontena

Makosa ya kawaida wanaofanya wapya ni kuchanganya kodeki ya dijiti ya video na kontena ya video dijitali. Chombo ni muundo fulani. Karatasi iliyo na metadata ya video (na ikiwezekana sauti). Video iliyobanwa inaweza kuzingatiwa kama mzigo wa chombo.

Kwa kawaida, ugani wa faili ya video unaonyesha aina yake ya chombo. Kwa mfano, faili video.mp4 pengine ni chombo Sehemu ya MPEG-4 14, na faili inayoitwa video.mkv ina uwezekano mkubwa matryoshka. Ili kuwa na uhakika kabisa wa muundo wa codec na chombo, unaweza kutumia FFmpeg au MediaInfo.

kidogo ya historia

Kabla hatujafika Jinsi gani?, hebu tuzame historia kidogo ili kuelewa kodeki za zamani vizuri zaidi.

Kodeki ya video H.261 ilionekana mwaka wa 1990 (kitaalam - mwaka wa 1988) na iliundwa kufanya kazi kwa kiwango cha uhamisho wa data wa 64 Kbps. Tayari ilitumia mawazo kama vile sampuli ndogo za rangi, vizuizi vikubwa, n.k. Kiwango cha kodeki ya video kilichapishwa mnamo 1995 H.263, ambayo iliendelea hadi 2001.

Toleo la kwanza lilikamilishwa mnamo 2003 H.264 / AVC. Mwaka huo huo, TrueMotion ilitoa kodeki yake ya bure ya video iliyopotea iitwayo VP3. Google ilinunua kampuni mnamo 2008, ikitoa VP8 mwaka huo huo. Mnamo Desemba 2012, Google ilitoa VP9, na inatumika katika takriban ΒΎ ya soko la kivinjari (pamoja na vifaa vya rununu).

AV1 ni kodeki mpya ya video isiyolipishwa na huria iliyotengenezwa na Alliance for Open Media (AOMedia), ambayo ni pamoja na makampuni maarufu zaidi, kama vile: Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel na Cisco. Toleo la kwanza la codec, 0.1.0, lilichapishwa Aprili 7, 2016.

Kuzaliwa kwa AV1

Mapema 2015, Google ilikuwa ikifanya kazi VP10Xiph (ambayo inamilikiwa na Mozilla) ilikuwa ikifanya kazi Daala, na Cisco ikatengeneza kodeki yake ya bure ya video inayoitwa Thor.

Kisha MPEG LA kwanza alitangaza mipaka ya mwaka kwa HEVC (H.265) na ada ya juu mara 8 kuliko H.264, lakini hivi karibuni walibadilisha sheria tena:

hakuna kikomo cha mwaka,
ada ya maudhui (0,5% ya mapato) na
ada ya kitengo ni takriban mara 10 zaidi ya H.264.

Alliance for Open Media iliundwa na makampuni kutoka nyanja tofauti: wazalishaji wa vifaa (Intel, AMD, ARM, Nvidia, Cisco), watoa maudhui (Google, Netflix, Amazon), waundaji wa kivinjari (Google, Mozilla) na wengine.

Makampuni yalikuwa na lengo la kawaida - codec ya video isiyo na mrahaba. Kisha inaonekana AV1 na leseni rahisi zaidi ya hataza. Timothy B. Terryberry alitoa wasilisho la kushangaza ambalo lilikuja kuwa chimbuko la dhana ya sasa ya AV1 na muundo wake wa utoaji leseni.

Utashangaa kujua kuwa unaweza kuchambua kodeki ya AV1 kupitia kivinjari (wale wanaovutiwa wanaweza kwenda kwa aomanalyzer.org).

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Kodeki ya jumla

Wacha tuangalie njia kuu za kodeki ya video ya ulimwengu wote. Nyingi za dhana hizi ni muhimu na hutumiwa katika kodeki za kisasa kama vile VP9, AV1 ΠΈ HEVC. Ninakuonya kwamba mambo mengi yaliyoelezwa yamerahisishwa. Wakati mwingine mifano ya ulimwengu halisi (kama ilivyo kwa H.264) itatumika kuonyesha teknolojia.

Hatua ya 1 - kugawanya picha

Hatua ya kwanza ni kugawanya sura katika sehemu kadhaa, vifungu na zaidi.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Kwa ajili ya nini? Kuna sababu nyingi. Tunapogawanya picha, tunaweza kutabiri kwa usahihi zaidi vekta ya mwendo kwa kutumia sehemu ndogo kwa sehemu ndogo zinazosonga. Wakati kwa mandharinyuma tuli unaweza kujizuia kwa sehemu kubwa zaidi.

Kodeki kwa kawaida hupanga sehemu hizi katika sehemu (au vijisehemu), vizuizi vikubwa (au vitalu vya kusimba vya miti), na vijisehemu vingi. Ukubwa wa juu zaidi wa sehemu hizi hutofautiana, HEVC huiweka kuwa 64x64 huku AVC inatumia 16x16, na sehemu ndogo zinaweza kugawanywa hadi saizi 4x4.

Je, unakumbuka aina za muafaka kutoka kwa makala ya mwisho?! Vile vile vinaweza kutumika kwa vitalu, ili tuweze kuwa na kipande cha I, B-block, P-macroblock, nk.

Kwa wale ambao wanataka kufanya mazoezi, angalia jinsi picha imegawanywa katika sehemu na vifungu. Ili kufanya hivyo, unaweza kutumia ile iliyotajwa tayari katika makala iliyotangulia. Intel Video Pro Analyzer (ile inayolipwa, lakini yenye toleo la majaribio lisilolipishwa ambalo ni mdogo kwa fremu 10 za kwanza). Sehemu zilizochambuliwa hapa VP9:

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Hatua ya 2 - utabiri

Mara tu tukiwa na sehemu, tunaweza kufanya utabiri wa unajimu kwa ajili yao. Kwa INTER utabiri lazima kuhamishwa vekta za mwendo na salio, na kwa utabiri wa INTRA hupitishwa mwelekeo wa utabiri na iliyobaki.

Hatua ya 3 - mabadiliko

Mara tu tunapokuwa na kizuizi cha mabaki (sehemu iliyotabiriwa β†’ sehemu halisi), inawezekana kuibadilisha kwa njia ambayo tunajua ni pikseli gani zinaweza kutupwa wakati wa kudumisha ubora wa jumla. Kuna mabadiliko kadhaa ambayo hutoa tabia halisi.

Ingawa kuna njia zingine, wacha tuziangalie kwa undani zaidi. badiliko la cosine (DCT - kutoka badiliko la cosine) Kazi kuu za DCT:

  • Hubadilisha vizuizi vya pikseli kuwa vizuizi vya ukubwa sawa vya mgawo wa masafa.
  • Hupunguza nguvu ili kusaidia kuondoa upungufu wa anga.
  • Hutoa urejeshaji.

Februari 2, 2017 Sintra R.J. (Cintra, RJ) na Bayer F.M. (Bayer FM) ilichapisha makala kuhusu mabadiliko yanayofanana na DCT kwa ukandamizaji wa picha ambayo yanahitaji nyongeza 14 pekee.

Usijali ikiwa huelewi manufaa ya kila bidhaa. Sasa hebu tutumie mifano maalum ili kuona thamani yao halisi.

Wacha tuchukue kizuizi hiki cha 8x8 cha saizi:

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Kizuizi hiki kimetolewa katika picha ifuatayo ya pikseli 8 kwa 8:

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Tumia DCT kwenye kizuizi hiki cha saizi na upate kizuizi cha 8x8 cha coefficients:

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Na ikiwa tutatoa kizuizi hiki cha coefficients, tutapata picha ifuatayo:

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Kama unavyoona, haionekani kama picha ya asili. Unaweza kuona kwamba mgawo wa kwanza ni tofauti sana na wengine wote. Mgawo huu wa kwanza unajulikana kama mgawo wa DC, ambao unawakilisha sampuli zote katika safu ya ingizo, kitu kama wastani.

Uzuiaji huu wa coefficients una mali ya kuvutia: hutenganisha vipengele vya juu-frequency kutoka kwa chini-frequency.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Katika picha, nishati nyingi hujilimbikizia katika masafa ya chini, kwa hivyo ukibadilisha picha kuwa vijenzi vyake vya marudio na kutupa vigawo vya juu vya masafa, unaweza kupunguza kiwango cha data kinachohitajika kuelezea picha bila kuacha ubora mwingi wa picha.

Frequency inarejelea jinsi ishara inavyobadilika haraka.

Hebu jaribu kutumia ujuzi uliopatikana katika kesi ya mtihani kwa kubadilisha picha ya awali kwa mzunguko wake (block of coefficients) kwa kutumia DCT na kisha kutupa sehemu ya coefficients muhimu zaidi.

Kwanza tunaibadilisha kuwa kikoa cha mzunguko.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Ifuatayo, tunatupa sehemu (67%) ya coefficients, hasa sehemu ya chini ya kulia.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Hatimaye, tunaunda upya picha kutoka kwa kizuizi hiki cha coefficients kilichotupwa (kumbuka, ni lazima ibadilike) na kuilinganisha na asili.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Tunaona kwamba inafanana na picha ya awali, lakini kuna tofauti nyingi kutoka kwa asili. Tulitupa 67,1875% na bado tukapata kitu kinachofanana na asili. Iliwezekana kutupa kwa uangalifu zaidi vigawo ili kupata picha ya ubora bora zaidi, lakini hiyo ni mada inayofuata.

Kila mgawo huzalishwa kwa kutumia pikseli zote

Muhimu: kila mgawo haujapangwa moja kwa moja kwa pikseli moja, lakini ni jumla ya uzani wa pikseli zote. Grafu hii ya ajabu inaonyesha jinsi coefficients ya kwanza na ya pili huhesabiwa kwa kutumia uzani wa kipekee kwa kila faharasa.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Unaweza pia kujaribu kuibua DCT kwa kuangalia uundaji wa picha rahisi kulingana nayo. Kwa mfano, hapa kuna ishara A inayotokana na kila uzani wa mgawo:

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Hatua ya 4 - quantization

Baada ya kutupa coefficients katika hatua ya awali, katika hatua ya mwisho (mabadiliko) tunafanya aina maalum ya quantization. Katika hatua hii inakubalika kupoteza habari. Au, kwa urahisi zaidi, tutahesabu coefficients kufikia compression.

Unawezaje kuhesabu kizuizi cha coefficients? Mojawapo ya njia rahisi ni quantization sare, tunapochukua kizuizi, tugawanye kwa thamani moja (kwa 10) na kuzunguka matokeo.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Je, tunaweza kubadilisha kizuizi hiki cha mgawo? Ndiyo, tunaweza, kuzidisha kwa thamani sawa ambayo sisi kugawanywa.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Njia hii sio bora zaidi kwa sababu haizingatii umuhimu wa kila mgawo. Mtu anaweza kutumia matrix ya vipima vipimo badala ya thamani moja, na matrix hii inaweza kutumia mali ya DCT kwa kuhesabu idadi kubwa ya sehemu ya chini ya kulia na ya wachache ya juu kushoto.

Hatua ya 5 - entropy coding

Mara tu tunapokadiria data (vizuizi vya picha, vipande, fremu), bado tunaweza kuibana bila hasara. Kuna njia nyingi za algorithmic za kubana data. Tutaangalia kwa haraka baadhi yao, kwa uelewa wa kina unaweza kusoma kitabu Kuelewa Mfinyazo: Ukandamizaji wa Data kwa Wasanidi wa Kisasa ("Kuelewa Mfinyazo: Mfinyazo wa Data kwa Wasanidi wa Kisasa").

Usimbaji wa video kwa kutumia VLC

Wacha tuseme tuna safu ya wahusika: a, e, r ΠΈ t. Uwezekano (kuanzia 0 hadi 1) wa mara ngapi kila herufi inaonekana kwenye mtiririko umewasilishwa katika jedwali hili.

a e r t
Uwezekano 0,3 0,3 0,2 0,2

Tunaweza kupeana misimbo ya kipekee ya binary (ikiwezekana ndogo) kwa zile zinazowezekana zaidi, na misimbo mikubwa kwa zile ambazo zina uwezekano mdogo.

a e r t
Uwezekano 0,3 0,3 0,2 0,2
Msimbo wa binary 0 10 110 1110

Tunakandamiza mtiririko, kwa kudhani kwamba tutaishia kutumia bits 8 kwa kila herufi. Bila mbano, biti 24 zingehitajika kwa kila herufi. Ukibadilisha kila herufi na msimbo wake, utapata akiba!

Hatua ya kwanza ni kusimba mhusika e, ambayo ni sawa na 10, na tabia ya pili ni a, ambayo imeongezwa (sio kwa njia ya hisabati): [10][0], na hatimaye herufi ya tatu t, ambayo hufanya mkondo wetu wa mwisho uliobanwa kuwa sawa na [10][0][1110] au 1001110, ambayo inahitaji bits 7 tu (nafasi chini ya mara 3,4 kuliko ya awali).

Tafadhali kumbuka kuwa kila msimbo lazima uwe msimbo wa kipekee na kiambishi awali. Algorithm ya Huffman itakusaidia kupata nambari hizi. Ingawa njia hii haina dosari zake, kuna kodeki za video ambazo bado zinatoa njia hii ya algorithmic kwa ukandamizaji.

Kisimbaji na avkodare lazima zifikie jedwali la alama na misimbo yao ya jozi. Kwa hiyo, ni muhimu pia kutuma meza kama pembejeo.

Uwekaji msimbo wa hesabu

Wacha tuseme tuna safu ya wahusika: a, e, r, s ΠΈ t, na uwezekano wao umewasilishwa katika jedwali hili.

a e r s t
Uwezekano 0,3 0,3 0,15 0,05 0,2

Kwa kutumia jedwali hili, tutaunda safu zenye vibambo vyote vinavyowezekana, vilivyopangwa kwa nambari kubwa zaidi.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Sasa hebu tusimbe mtiririko wa herufi tatu: kula.

Kwanza chagua mhusika wa kwanza e, ambayo iko katika safu ndogo kutoka 0,3 hadi 0,6 (bila kujumuisha). Tunachukua safu hii ndogo na kuigawanya tena kwa idadi sawa na hapo awali, lakini kwa safu hii mpya.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Hebu tuendelee kusimba mkondo wetu kula. Sasa chukua mhusika wa pili a, ambayo iko katika safu mpya kutoka 0,3 hadi 0,39, na kisha kuchukua tabia yetu ya mwisho t na kurudia mchakato huo tena, tunapata safu ndogo ya mwisho kutoka 0,354 hadi 0,372.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Tunahitaji tu kuchagua nambari katika safu ndogo ya mwisho kutoka 0,354 hadi 0,372. Wacha tuchague 0,36 (lakini unaweza kuchagua nambari nyingine yoyote katika safu ndogo hii). Kwa nambari hii pekee ndipo tutaweza kurejesha mtiririko wetu wa asili. Ni kana kwamba tunachora mstari ndani ya safu ili kusimba mkondo wetu.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Operesheni ya nyuma (yaani, kusimbua) ni rahisi tu: kwa nambari yetu 0,36 na safu yetu ya awali, tunaweza kuendesha mchakato sawa. Lakini sasa, kwa kutumia nambari hii, tunatambua mtiririko uliosimbwa kwa kutumia nambari hii.

Na safu ya kwanza, tunagundua kuwa nambari yetu inalingana na kipande, kwa hivyo hii ni tabia yetu ya kwanza. Sasa tunagawanya safu ndogo hii tena kwa kufuata mchakato sawa na hapo awali. Hapa unaweza kuona kwamba 0,36 inalingana na ishara a, na baada ya kurudia mchakato tulifika kwenye mhusika wa mwisho t (kuunda mkondo wetu wa asili uliosimbwa kula).

Kisimbaji na avkodare lazima ziwe na jedwali la uwezekano wa ishara, kwa hivyo ni muhimu kuituma katika data ya ingizo pia.

Kifahari kabisa, sivyo? Yeyote aliyekuja na suluhisho hili alikuwa na akili sana. Baadhi ya kodeki za video hutumia mbinu hii (au angalau itoe kama chaguo).

Wazo ni kukandamiza bila hasara mtiririko wa biti uliokadiriwa. Hakika nakala hii inakosa tani nyingi za maelezo, sababu, biashara, n.k. Lakini ikiwa wewe ni msanidi programu, unapaswa kujua zaidi. Kodeki mpya hujaribu kutumia algoriti tofauti za usimbaji entropy kama vile ANS.

Hatua ya 6 - muundo wa bitstream

Baada ya kufanya haya yote, kinachobakia ni kufungua viunzi vilivyoshinikizwa katika muktadha wa hatua zilizofanywa. Kisimbuaji lazima kielezwe kwa uwazi kuhusu maamuzi yaliyofanywa na programu ya kusimba. Dekoda lazima itolewe na habari zote muhimu: kina kidogo, nafasi ya rangi, azimio, habari ya utabiri (vekta za mwendo, utabiri wa INTER wa mwelekeo), wasifu, kiwango, kasi ya fremu, aina ya fremu, nambari ya fremu na mengi zaidi.

Tutaangalia kwa haraka mkondo mdogo H.264. Hatua yetu ya kwanza ni kuunda mtiririko mdogo wa H.264 (FFmpeg kwa chaguomsingi huongeza chaguzi zote za usimbaji kama vile SEI NAL - tutajua ni nini mbele kidogo). Tunaweza kufanya hivi kwa kutumia hazina yetu wenyewe na FFmpeg.

./s/ffmpeg -i /files/i/minimal.png -pix_fmt yuv420p /files/v/minimal_yuv420.h264

Amri hii itatoa mkondo mbichi H.264 na fremu moja, azimio la 64Γ—64, na nafasi ya rangi YUV420. Katika kesi hii, picha ifuatayo inatumika kama sura.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

H.264 bitstream

Standard AVC (H.264) huamua kwamba habari itatumwa kwa macroframes (kwa maana ya mtandao), inayoitwa nal (hiki ni kiwango cha uondoaji wa mtandao). Lengo kuu la NAL ni kutoa wasilisho la video "linalofaa kwa wavuti". Kiwango hiki kinapaswa kufanya kazi kwenye TV (msingi), Mtandao (msingi wa pakiti).

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Kuna alama ya ulandanishi ili kufafanua mipaka ya vipengele vya NAL. Kila tokeni ya kusawazisha ina thamani 0x00 0x00 0x01, isipokuwa ile ya kwanza kabisa, ambayo ni sawa na 0x00 0x00 0x00 0x01. Ikiwa tutazindua hexdump kwa mkondo mdogo wa H.264 unaozalishwa, tunatambua angalau ruwaza tatu za NAL mwanzoni mwa faili.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Kama ilivyoelezwa, avkodare lazima kujua si tu data ya picha, lakini pia maelezo ya video, fremu, rangi, vigezo kutumika na mengi zaidi. Baiti ya kwanza ya kila NAL inafafanua aina na aina yake.

Kitambulisho cha aina ya NAL Description
0 Aina isiyojulikana
1 Kipande cha picha kilichosimbwa bila IDR
2 Sehemu ya data ya kipande chenye msimbo A
3 Sehemu ya data ya kipande chenye msimbo B
4 Sehemu ya data ya kipande chenye msimbo C
5 Kipande cha IDR kilichosimbwa cha picha ya IDR
6 Maelezo zaidi kuhusu ugani wa SEI
7 Seti ya Parameta ya Mlolongo wa SPS
8 Seti ya vigezo vya picha za PPS
9 Kitenganishi cha ufikiaji
10 Mwisho wa mlolongo
11 Mwisho wa thread
... ...

Kwa kawaida NAL ya kwanza ya mtiririko kidogo ni PLC. Aina hii ya NAL inawajibika kuarifu kuhusu vigeu vya kawaida vya usimbaji kama vile wasifu, kiwango, azimio, n.k.

Tukiruka alama ya kwanza ya kusawazisha, tunaweza kusimbua baiti ya kwanza ili kujua ni aina gani ya NAL ni ya kwanza.

Kwa mfano, baiti ya kwanza baada ya ishara ya kusawazisha ni 01100111, ambapo sehemu ya kwanza (0) yuko shambani forbidden_zero_bit. Biti 2 zinazofuata (11) inatuambia shamba nal_ref_idc, ambayo inaonyesha kama NAL hii ni sehemu ya marejeleo au la. Na bits 5 zilizobaki (00111) inatuambia shamba aina_za_kitengo, katika kesi hii ni kizuizi cha SPS (7) NAL.

Baiti ya pili (binary=01100100, hex=0x64, Desemba=100) katika SPS NAL ndio uwanja profile_idc, ambayo inaonyesha wasifu ambao kisimbaji kilitumia. Katika kesi hii, wasifu mdogo wa juu ulitumiwa (yaani, wasifu wa juu bila msaada wa sehemu ya B ya pande mbili).

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Ukiangalia vipimo vya bitstream H.264 kwa SPS NAL, tutapata maadili mengi kwa jina la parameta, kitengo na maelezo. Kwa mfano, tuangalie mashamba pic_upana_katika_mbs_minus_1 ΠΈ Urefu_wa_picha_katika_vitengo_vya_toa_1.

Jina la parameta Jamii Description
pic_upana_katika_mbs_minus_1 0 ue(v)
Urefu_wa_picha_katika_vitengo_vya_toa_1 0 ue(v)

Ikiwa tutafanya shughuli fulani za kihesabu na maadili ya nyanja hizi, tutapata azimio. Mtu anaweza kuwakilisha 1920 x 1080 kwa kutumia pic_upana_katika_mbs_minus_1 yenye thamani ya 119 ((119 + 1) * macroblock_size = 120 * 16 = 1920). Tena, ili kuokoa nafasi, badala ya kusimba 1920, tulifanya na 119.

Ikiwa tutaendelea kuangalia video yetu iliyoundwa katika mfumo wa binary (kwa mfano: xxd -b -c 11 v/minimal_yuv420.h264), basi unaweza kwenda kwa NAL ya mwisho, ambayo ni sura yenyewe.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Hapa tunaona maadili yake ya kwanza 6: 01100101 10001000 10000100 00000000 00100001 11111111. Kwa kuwa byte ya kwanza inajulikana kuashiria aina ya NAL, katika kesi hii (00101) ni kipande cha IDR (5), na kisha unaweza kuichunguza zaidi:

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Kwa kutumia maelezo ya vipimo, itawezekana kusimbua aina ya kipande (kipande_aina) na nambari ya fremu (nambari_ya_fremu) miongoni mwa nyanja nyingine muhimu.

Ili kupata maadili ya sehemu fulani (ue(v), me(v), se(v) au te(v)), tunahitaji kusimbua kipande kwa kutumia avkodare maalum kulingana na msimbo wa Golomb wa kielelezo. Njia hii ni nzuri sana kwa kusimba maadili tofauti, haswa wakati kuna maadili mengi ya msingi.

Maadili kipande_aina ΠΈ nambari_ya_fremu ya video hii ni 7 (I-fragment) na 0 (fremu ya kwanza).

Mtiririko mdogo unaweza kuzingatiwa kama itifaki. Ikiwa unataka kujua zaidi kuhusu bitstream, unapaswa kurejelea vipimo ITU H.264. Hapa kuna mchoro mkubwa unaoonyesha data ya picha iko wapi (YUV katika fomu iliyoshinikwa).

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Mito mingine inaweza kuchunguzwa, kama vile VP9, H.265 (HEVC) au hata mkondo wetu mpya bora zaidi AV1. Je, zote zinafanana? Hapana, lakini ukielewa angalau moja, ni rahisi zaidi kuelewa iliyobaki.

Unataka kufanya mazoezi? Gundua mkondo kidogo wa H.264

Unaweza kutoa video ya fremu moja na utumie MediaInfo kuchunguza mkondo kidogo H.264. Kwa kweli, hakuna kinachokuzuia hata kutazama msimbo wa chanzo unaochambua mtiririko kidogo H.264 (AVC).

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Kwa mazoezi, unaweza kutumia Intel Video Pro Analyzer (je, tayari nilisema kwamba programu inalipwa, lakini kuna toleo la majaribio ya bure na kikomo cha muafaka 10?).

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Pitia

Kumbuka kwamba codecs nyingi za kisasa hutumia mfano huo ambao tumesoma hivi punde. Hapa, hebu tuangalie mchoro wa kuzuia wa kodeki ya video Thor. Ina hatua zote ambazo tumepitia. Jambo zima la chapisho hili ni angalau kukupa ufahamu bora wa uvumbuzi na hati katika eneo hili.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Hapo awali, ilihesabiwa kuwa GB 139 ya nafasi ya diski itahitajika kuhifadhi faili ya video ya saa moja kwa ubora wa 720p na 30 ramprogrammen. Ikiwa unatumia mbinu zilizojadiliwa katika makala hii (utabiri wa kati na wa ndani, mabadiliko, quantization, entropy coding, nk), basi unaweza kufikia (kulingana na ukweli kwamba tunatumia bits 0,031 kwa pixel), video ya kabisa. ubora wa kuridhisha, unachukua 367,82 MB tu, sio 139 GB ya kumbukumbu.

H.265 inafikiaje uwiano bora wa mgandamizo kuliko H.264?

Kwa kuwa sasa tunajua zaidi jinsi kodeki zinavyofanya kazi, ni rahisi kuelewa jinsi kodeki mpya zaidi zinaweza kutoa maazimio ya juu kwa biti chache.

Ikiwa tunalinganisha AVC ΠΈ HEVC, inafaa kukumbuka kuwa hii ni karibu kila wakati chaguo kati ya mzigo mkubwa wa CPU na uwiano wa compression.

HEVC ina chaguo zaidi za sehemu (na kifungu kidogo) kuliko AVC, maelekezo zaidi ya utabiri wa ndani, usimbaji ulioboreshwa wa entropy, na zaidi. Maboresho haya yote yamefanywa H.265 uwezo wa kubana 50% zaidi ya H.264.

Je, kodeki ya video hufanya kazi vipi? Sehemu ya 2. Nini, kwa nini, vipi

Sehemu ya kwanza: Misingi ya kufanya kazi na video na picha

Chanzo: mapenzi.com

Kuongeza maoni