Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Thawj ntu: Lub hauv paus ntawm kev ua haujlwm nrog video thiab duab

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Dab tsi? Lub codec video yog ib qho ntawm software / hardware uas compresses thiab / los yog decompresses digital video.

Rau dab tsi? Txawm hais tias qee qhov kev txwv ob qho tib si ntawm kev siv bandwidth thiab
thiab hais txog qhov chaw khaws ntaub ntawv, kev ua lag luam xav tau cov yees duab zoo dua. Koj puas nco qab li cas hauv tsab ntawv kawg peb suav qhov tsawg kawg nkaus rau 30 thav duab ib ob, 24 khoom ib pixel, nrog rau kev daws teeb meem ntawm 480x240? Peb tau txais 82,944 Mbit / s yam tsis muaj compression. Compression yog tam sim no tib txoj kev uas feem ntau xa HD / FullHD / 4K mus rau cov ntxaij vab tshaus TV thiab Internet. Qhov no ua tiav li cas? Tam sim no cia saib luv luv ntawm cov txheej txheem tseem ceeb.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Kev txhais lus tau ua nrog kev txhawb nqa ntawm EDISON Software.

Peb koom nrog kev koom ua ke ntawm kev soj ntsuam videoThiab Peb tab tom tsim microtomograph.

Codec vs Thawv

Ib qho yuam kev uas newbies ua yog tsis meej pem digital video codec thiab digital video thawv. Lub thawv yog ib hom ntawv. Ib lub wrapper uas muaj video (thiab tejzaum nws yog suab) metadata. Cov video compressed tuaj yeem xav tias yog lub thawv ntim khoom.

Feem ntau, qhov txuas ntxiv ntawm cov ntaub ntawv video qhia nws hom ntim. Piv txwv li, cov ntaub ntawv video.mp4 yog tej zaum ib lub thawv MPEG-4 Part 14, thiab ib cov ntaub ntawv npe video.mkv feem ntau yuav matryoshka. Txhawm rau kom paub tseeb ntawm cov codec thiab lub thawv hom, koj tuaj yeem siv FFmpeg los yog MediaInfo.

Ib me ntsis keeb kwm

Ua ntej peb mus Ua li cas?, cia peb dhia dej me ntsis rau hauv keeb kwm kom nkag siab qee cov codecs laus dua me ntsis.

Video codec H.261 tau tshwm sim nyob rau hauv 1990 (txheej txheem - nyob rau hauv 1988) thiab tau tsim los ua hauj lwm ntawm ib tug hloov ntaub ntawv tus nqi ntawm 64 Kbps. Nws twb siv cov tswv yim xws li xim subsampling, macroblocks, thiab lwm yam. Tus txheej txheem video codec tau luam tawm xyoo 1995 H.263, uas tau tsim los txog rau xyoo 2001.

Thawj version tau ua tiav hauv 2003 H. 264 / AVC. Tib lub xyoo ntawd, TrueMotion tau tso tawm nws cov dawb lossy video codec hu ua VP3. Google yuav lub tuam txhab hauv xyoo 2008, tso tawm VP8 nyob rau hauv tib lub xyoo. Thaum Lub Kaum Ob Hlis 2012, Google tso tawm VP9, thiab nws tau txais kev txhawb nqa txog li ΒΎ ntawm lub lag luam browser (suav nrog cov khoom siv txawb).

AV1 yog tus tshiab dawb thiab qhib qhov video codec tsim los ntawm Alliance rau Qhib Media (AOMedia), uas suav nrog cov tuam txhab nto moo tshaj plaws, xws li: Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel thiab Cisco. Thawj version ntawm codec, 0.1.0, tau luam tawm rau lub Plaub Hlis 7, 2016.

Birth AV 1

Thaum ntxov 2015, Google tau ua haujlwm rau VP10Xiph (uas yog tus tswv los ntawm Mozilla) tau ua haujlwm rau Daala, thiab Cisco ua nws tus kheej dawb video codec hu ua Thor.

ces MPEG LA UA thawj zaug tshaj tawm txhua xyoo txwv rau HEVC (H.265) thiab tus nqi 8 npaug siab dua rau H.264, tab sis tsis ntev lawv hloov cov cai dua:

tsis muaj kev txwv txhua xyoo,
cov ntsiab lus nqi (0,5% ntawm cov nyiaj tau los) thiab
tus nqi tsev yog li 10 npaug siab dua H.264.

Alliance rau Qhib Media tau tsim los ntawm cov tuam txhab los ntawm ntau qhov chaw: cov cuab yeej tsim khoom (Intel, AMD, ARM, Nvidia, Cisco), cov chaw muab cov ntsiab lus (Google, Netflix, Amazon), browser tsim (Google, Mozilla) thiab lwm yam.

Cov tuam txhab muaj lub hom phiaj sib xws - tsis muaj nuj nqis video codec. Ces tshwm AV1 nrog daim ntawv tso cai patent yooj yim dua. Timothy B. Terryberry muab qhov kev nthuav qhia zoo kawg nkaus uas tau los ua lub hauv paus ntawm AV1 lub tswv yim tam sim no thiab nws cov qauv ntawv tso cai.

Koj yuav xav tsis thoob thaum paub tias koj tuaj yeem txheeb xyuas AV1 codec los ntawm qhov browser (cov neeg nyiam tuaj yeem mus rau aomanalyzer.org).

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Universal codec

Cia peb saib lub ntsiab mechanisms hauv qab lub universal video codec. Feem ntau ntawm cov ntsiab lus no muaj txiaj ntsig thiab siv rau hauv cov codecs niaj hnub xws li VP9, AV1 ΠΈ HEVC. Kuv ceeb toom rau koj tias ntau yam piav qhia yuav yooj yim dua. Qee zaum cov qauv hauv ntiaj teb tiag tiag (raws li nrog H.264) yuav raug siv los ua kom pom cov thev naus laus zis.

Kauj ruam 1 - splitting daim duab

Thawj kauj ruam yog faib cov thav duab rau hauv ob peb ntu, ntu ntu thiab dhau mus.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Rau dab tsi? Muaj ntau yam laj thawj. Thaum peb faib ib daim duab, peb tuaj yeem kwv yees qhov ntsuas vector kom raug los ntawm kev siv cov ntu me me rau qhov txav me me. Thaum rau keeb kwm yav dhau zoo li qub koj tuaj yeem txwv koj tus kheej mus rau ntu loj dua.

Codecs feem ntau teeb tsa cov ntu no rau hauv ntu (lossis chunks), macroblocks (lossis coding ntoo thaiv), thiab ntau ntu. Qhov loj tshaj plaws ntawm cov partitions no txawv, HEVC teem rau 64x64 thaum AVC siv 16x16, thiab subpartitions yuav muab faib mus rau 4x4 qhov ntau thiab tsawg.

Koj puas nco qab hom thav ntawv los ntawm kab lus kawg?! Tib yam tuaj yeem siv rau cov blocks, yog li peb tuaj yeem muaj I-fragment, B-block, P-macroblock, thiab lwm yam.

Rau cov uas xav xyaum, saib yuav ua li cas daim duab muab faib ua ntu thiab ntu ntu. Txhawm rau ua qhov no, koj tuaj yeem siv qhov uas twb tau hais hauv tsab xov xwm dhau los. Intel Video Pro Analyzer (tus uas tau them, tab sis nrog kev sim dawb version uas txwv rau thawj 10 ntas). Cov ntu tau txheeb xyuas ntawm no VP9:

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Kauj ruam 2 - forecasting

Thaum peb muaj cov ntu, peb tuaj yeem ua qhov kev kwv yees astrological rau lawv. Rau INTER kev kwv yees yuav tsum pauv mus kev txav vectors thiab cov seem, thiab rau INTRA forecasting nws yog kis kwv yees kev taw qhia thiab qhov seem.

Kauj ruam 3 - transformation

Thaum peb muaj qhov seem seem (saib kwv yees β†’ seem tiag), nws muaj peev xwm hloov tau nws txoj hauv kev uas peb paub tias pixels twg tuaj yeem muab pov tseg thaum tswj hwm tag nrho. Muaj qee qhov kev hloov pauv uas muab tus cwj pwm tseeb.

Txawm hais tias muaj lwm txoj hauv kev, cia peb saib lawv hauv kev nthuav dav ntxiv. discrete cosine hloov (DCT - los ntawm discrete cosine hloov). Lub luag haujlwm tseem ceeb ntawm DCT:

  • Hloov cov blocks ntawm pixels rau hauv vaj huam sib luag blocks ntawm zaus coefficients.
  • Condenses lub zog los pab tshem tawm spatial redundancy.
  • Muab reversibility.

Lub ob hlis ntuj 2, 2017 Sintra R.J. (Cintra, RJ) thiab Bayer F.M. (Bayer FM) tau tshaj tawm ib tsab xov xwm hais txog DCT-zoo li kev hloov pauv rau cov duab compression uas tsuas yog 14 ntxiv.

Tsis txhob txhawj yog tias koj tsis nkag siab txog cov txiaj ntsig ntawm txhua lub ntsiab lus. Tam sim no cia peb siv cov piv txwv tshwj xeeb kom pom lawv tus nqi tiag tiag.

Cia peb coj qhov no 8x8 block ntawm pixels:

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Qhov thaiv no tau muab tso rau hauv cov duab hauv qab no 8 los ntawm 8 pixel:

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Siv DCT rau qhov block ntawm pixels no thiab tau txais 8x8 block ntawm coefficients:

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Thiab yog tias peb ua qhov block ntawm coefficients, peb yuav tau txais cov duab hauv qab no:

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Raws li koj tau pom, nws tsis zoo li daim duab qub. Koj tuaj yeem pom tias thawj coefficient txawv heev ntawm lwm tus. Qhov thawj coefficient no yog hu ua DC coefficient, uas sawv cev rau tag nrho cov qauv hauv cov tswv yim array, ib yam li qhov nruab nrab.

Qhov thaiv ntawm cov coefficients no muaj cov cuab yeej nthuav dav: nws cais cov khoom siv ntau zaus los ntawm cov zaus tsawg.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Nyob rau hauv ib daim duab, feem ntau ntawm lub hwj chim yog concentrated nyob rau hauv qis zaus, yog li yog tias koj hloov cov duab mus rau hauv nws cov zaus Cheebtsam thiab muab pov tseg cov zaus coefficients ntau dua, koj tuaj yeem txo cov ntaub ntawv xav tau los piav qhia cov duab yam tsis muaj kev txi ntau ntawm cov duab zoo.

Zaus yog hais txog qhov hloov pauv sai npaum li cas.

Cia peb sim siv cov kev paub uas tau txais hauv cov ntaub ntawv xeem los ntawm kev hloov cov duab qub rau nws qhov zaus (block of coefficients) siv DCT thiab muab pov tseg ib feem ntawm qhov tseem ceeb tshaj coefficients.

Ua ntej peb hloov nws mus rau qhov chaw zaus.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Tom ntej no, peb muab pov tseg ib feem (67%) ntawm cov coefficients, feem ntau yog sab xis.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Thaum kawg, peb rov tsim kho cov duab los ntawm qhov muab pov tseg ntawm cov coefficients (nco ntsoov, nws yuav tsum yog invertible) thiab muab piv nrog cov thawj.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Peb pom tias nws zoo li cov duab qub, tab sis muaj ntau qhov sib txawv ntawm qhov qub. Peb pov tawm 67,1875% thiab tseem tau txais qee yam zoo li tus thawj. Nws yog qhov ua tau kom xav ntau dua pov tseg cov coefficients kom tau txais cov duab ntawm qhov zoo dua, tab sis qhov ntawd yog lub ntsiab lus tom ntej.

Txhua tus coefficient yog tsim los ntawm tag nrho cov pixels

Ib qho tseem ceeb: txhua tus coefficient tsis ncaj qha mus rau ib pixel, tab sis yog qhov hnyav ntawm tag nrho cov pixels. Daim duab zoo kawg no qhia tau hais tias thawj thiab thib ob coefficients suav nrog qhov hnyav li cas rau txhua qhov ntsuas.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Koj tuaj yeem sim pom DCT los ntawm kev saib cov duab yooj yim tsim raws li nws. Piv txwv li, ntawm no yog lub cim A generated siv txhua qhov hnyav coefficient:

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Kauj ruam 4 - quantization

Tom qab peb muab pov tseg ib co coefficients ntawm cov kauj ruam dhau los, nyob rau hauv lub xeem kauj ruam (transformation) peb ua ib tug tshwj xeeb daim ntawv ntawm quantization. Nyob rau theem no nws tau txais kev poob ntaub ntawv. Los yog, yooj yim dua, peb yuav suav cov coefficients kom ua tiav compression.

Yuav ua li cas quantize ib block ntawm coefficients? Ib txoj hauv kev yooj yim tshaj plaws yog qhov sib npaug ntawm qhov sib npaug, thaum peb muab ib qho thaiv, faib nws los ntawm ib qho nqi (los ntawm 10) thiab muab qhov tshwm sim.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Peb puas tuaj yeem thim qhov block ntawm cov coefficients? Yog lawm, peb tuaj yeem muab faib los ntawm tib tus nqi uas peb faib.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Txoj hauv kev no tsis yog qhov zoo tshaj plaws vim nws tsis xav txog qhov tseem ceeb ntawm txhua tus coefficient. Ib tus tuaj yeem siv cov matrix ntawm quantizers es tsis txhob ntawm ib tus nqi, thiab cov matrix no tuaj yeem siv cov cuab yeej DCT los ntawm kev suav feem ntau ntawm sab xis thiab cov tsawg ntawm sab laug.

Kauj ruam 5 - entropy coding

Thaum peb tau quantized cov ntaub ntawv (duab blocks, fragments, thav ntawv), peb tseem yuav compress nws losslessly. Muaj ntau txoj hauv kev algorithmic los nthuav cov ntaub ntawv. Peb tab tom yuav saib sai sai ntawm qee qhov ntawm lawv, kom nkag siab tob dua koj tuaj yeem nyeem phau ntawv Nkag siab Compression: Cov ntaub ntawv Compression rau Cov Neeg Tsim Kho Niaj Hnub No ("Nkag siab Compression: Cov ntaub ntawv Compression rau cov neeg tsim khoom niaj hnub").

Video encoding siv VLC

Cia peb hais tias peb muaj kwj ntawm cov cim: a, e, r ΠΈ t. Qhov tshwm sim (xws li ntawm 0 mus rau 1) ntawm ntau npaum li cas txhua tus cim tshwm hauv cov kwj deg tau nthuav tawm hauv cov lus no.

a e r t
Qhov yuav tshwm sim 0,3 0,3 0,2 0,2

Peb tuaj yeem muab cov cim binary tshwj xeeb (xws li cov me me) rau cov uas yuav muaj feem ntau, thiab cov lej loj dua rau cov uas tsis tshua muaj.

a e r t
Qhov yuav tshwm sim 0,3 0,3 0,2 0,2
Binary code 0 10 110 1110

Peb compress cov kwj deg, piv txwv tias peb yuav xaus siv 8 khoom rau txhua tus cim. Yog tsis muaj compression, 24 khoom yuav xav tau ib tus cwj pwm. Yog tias koj hloov txhua tus cim nrog nws cov lej, koj tau txais kev txuag!

Thawj kauj ruam yog encode tus cwj pwm e, uas yog sib npaug rau 10, thiab tus cim thib ob yog a, uas yog ntxiv (tsis yog hauv kev ua lej): [10][0], thiab thaum kawg tus cim thib peb t, uas ua rau peb qhov kawg compressed bitstream sib npaug rau [10][0][1110] los yog 1001110, uas yuav tsum tau tsuas yog 7 khoom (3,4 npaug tsawg qhov chaw tshaj qhov qub).

Thov nco ntsoov tias txhua tus lej yuav tsum yog ib tus lej tshwj xeeb nrog lub npe ua ntej. Huffman algorithm yuav pab koj nrhiav tau cov lej no. Txawm hais tias txoj kev no tsis yog yam tsis muaj qhov tsis zoo, muaj cov codecs video uas tseem muab cov txheej txheem algorithmic rau compression.

Ob tus encoder thiab tus decoder yuav tsum muaj kev nkag mus rau lub cim lub rooj nrog lawv cov lej binary. Yog li ntawd, nws tseem yuav tsum tau xa ib lub rooj raws li cov tswv yim.

Arithmetic coding

Cia peb hais tias peb muaj kwj ntawm cov cim: a, e, r, s ΠΈ t, thiab lawv qhov tshwm sim tau nthuav tawm hauv cov lus no.

a e r s t
Qhov yuav tshwm sim 0,3 0,3 0,15 0,05 0,2

Siv cov lus no, peb yuav tsim ntau yam uas muaj tag nrho cov cim ua tau, txheeb los ntawm tus lej loj tshaj plaws.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Tam sim no cia peb encode ib kwj ntawm peb lub cim: noj.

Ua ntej xaiv thawj tus cim e, uas yog nyob rau hauv lub subrange ntawm 0,3 mus rau 0,6 (tsis suav nrog). Peb muab cov subrange no thiab faib nws dua nyob rau hauv tib proportions raws li ua ntej, tab sis rau qhov tshiab ntau yam.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Wb txuas ntxiv coding peb kwj noj. Tam sim no coj tus cwj pwm thib ob a, uas yog nyob rau hauv tus tshiab subrange ntawm 0,3 mus rau 0,39, thiab ces coj peb lub xeem cim t thiab rov ua cov txheej txheem qub dua, peb tau txais qhov kawg sub-nruab nrab ntawm 0,354 txog 0,372.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Peb tsuas yog yuav tsum xaiv tus lej hauv qhov kawg subrange ntawm 0,354 txog 0,372. Cia peb xaiv 0,36 (tab sis koj tuaj yeem xaiv lwm tus lej hauv qhov subrange no). Tsuas yog nrog tus lej no peb tuaj yeem rov kho peb cov kwj qub qub. Nws zoo li peb tab tom kos ib kab nyob rau hauv qhov ntau los encode peb kwj.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Kev ua haujlwm rov qab (uas yog, kev txiav txim siab) tsuas yog yooj yim: nrog peb tus lej 0,36 thiab peb qhov pib, peb tuaj yeem khiav tib txoj kev. Tab sis tam sim no, siv tus lej no, peb txheeb xyuas cov kwj deg uas siv tus lej no.

Nrog thawj qhov ntau, peb pom tias peb tus lej sib raug rau daim ntawv hlais, yog li qhov no yog peb thawj tus cim. Tam sim no peb faib qhov sub-nruab nrab dua los ntawm kev ua raws li cov txheej txheem ua ntej. Ntawm no koj tuaj yeem pom tias 0,36 sib haum rau lub cim a, thiab tom qab rov ua cov txheej txheem peb tuaj txog ntawm tus cim kawg t (ua peb tus thawj encoded kwj noj).

Ob lub encoder thiab tus decoder yuav tsum muaj ib lub rooj ntawm cov cim tshwm sim, yog li nws yuav tsum tau xa mus rau hauv cov ntaub ntawv nkag thiab.

Heev elegant, tsis yog nws? Leej twg los daws qhov teeb meem no yog damn ntse. Qee tus yees duab codecs siv cov txheej txheem no (lossis tsawg kawg muab nws ua ib qho kev xaiv).

Lub tswv yim yog losslessly compress ib quantized me ntsis kwj. Muaj tseeb tsab xov xwm no ploj lawm tons ntawm cov ntsiab lus, laj thawj, kev lag luam tawm, thiab lwm yam. Tab sis yog tias koj yog tus tsim tawm, koj yuav tsum paub ntau ntxiv. Tshiab codecs sim siv txawv entropy encoding algorithms xws li ANS.

Kauj ruam 6 - bitstream format

Tom qab ua txhua yam no, txhua yam uas tseem tshuav yog txhawm rau tshem tawm cov thav ntawv compressed hauv cov ntsiab lus ntawm cov kauj ruam ua. Tus decoder yuav tsum tau qhia meej meej txog cov kev txiav txim siab los ntawm tus encoder. Lub decoder yuav tsum muab tag nrho cov ntaub ntawv tsim nyog: me ntsis qhov tob, xim qhov chaw, kev daws teeb meem, cov ntaub ntawv kwv yees (cov lus tsa suab, kev taw qhia INTER twv), profile, theem, ncej tus nqi, thav duab hom, ncej naj npawb thiab ntau ntxiv.

Peb mam li saib sai ntawm bitstream H.264. Peb thawj kauj ruam yog los tsim qhov tsawg kawg nkaus H.264 bitstream (FFmpeg los ntawm lub neej ntawd ntxiv tag nrho cov kev xaiv encoding xws li SEI NAL - Peb yuav pom dab tsi nws yog me ntsis ntxiv). Peb tuaj yeem ua qhov no siv peb tus kheej lub chaw cia khoom thiab FFmpeg.

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

Qhov kev hais kom ua no yuav tsim cov bitstream nyoos H.264 nrog ib tug ncej, 64 Γ— 64 daws teeb meem, nrog rau xim qhov chaw YUV 420. Hauv qhov no, cov duab hauv qab no yog siv los ua tus ncej.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

H.264 bitstream

Standard AVC (H.264) txiav txim siab tias cov ntaub ntawv yuav raug xa hauv macroframes (hauv kev nkag siab network), hu ua nal (qhov no yog theem kev paub txog network). Lub hom phiaj tseem ceeb ntawm NAL yog muab "web-friendly" video nthuav qhia. Cov qauv no yuav tsum ua haujlwm ntawm TVs (kwj raws), Is Taws Nem (packet-based).

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Muaj ib qho kev sib koom ua ke los txheeb xyuas cov ciam teb ntawm NAL cov ntsiab lus. Txhua sync token muaj tus nqi 0x00 0x00 0x01, tsuas yog tus thawj heev, uas yog sib npaug 0x00 0x00 0x00 0x01. Yog peb tso tawm hexdump rau qhov generated H.264 bitstream, peb txheeb xyuas yam tsawg kawg peb NAL qauv thaum pib ntawm cov ntaub ntawv.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Raws li tau hais tseg, tus decoder yuav tsum paub tsis yog cov ntaub ntawv duab xwb, tab sis kuj tseem muaj cov ntsiab lus ntawm video, ncej, xim, tsis siv, thiab ntau ntxiv. Thawj byte ntawm txhua NAL txhais nws cov qeb thiab hom.

NAL hom identifier piav qhia
0 Tsis paub hom
1 Encoded duab fragment yam tsis muaj IDR
2 Coded hlais cov ntaub ntawv seem A
3 Coded hlais cov ntaub ntawv seem B
4 Coded hlais cov ntaub ntawv seem C
5 Encoded IDR fragment ntawm ib daim duab IDR
6 Xav paub ntau ntxiv txog SEI extension
7 SPS Sequence Parameter Set
8 Teeb ntawm PPS duab tsis
9 Access separator
10 Xaus ntawm ib ntus
11 Xaus xov
... ...

Feem ntau thawj NAL ntawm bitstream yog SPS. Hom NAL no yog lub luag haujlwm rau kev qhia txog kev sib txawv encoding xws li profile, qib, kev daws teeb meem, thiab lwm yam.

Yog tias peb hla tus cim cim thawj zaug, peb tuaj yeem txiav txim siab thawj byte kom paub seb hom NAL yog thawj zaug.

Piv txwv li, thawj byte tom qab sync token yog 01100111, qhov twg thawj me ntsis (0) yog nyob rau hauv teb forbidden_zero_bit. Tom ntej no 2 ntsis (11) qhia rau peb paub nal_ref_idc, ib uas qhia seb qhov NAL no yog qhov chaw siv los yog tsis. Thiab qhov seem 5 ntsis (00111) qhia rau peb paub nal_unit_type, Hauv qhov no nws yog SPS thaiv (7) NAL.

Thib ob byte (binary=01100100, xis hex=0x64, Dec=100) hauv SPS NAL yog daim teb profile_idc, uas qhia qhov profile uas tus encoder siv. Nyob rau hauv cov ntaub ntawv no, ib tug txwv high profile tau siv (piv txwv li, ib tug high profile tsis muaj bidirectional B-segment txhawb nqa).

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Yog tias koj saib ntawm bitstream specification H.264 rau SPS NAL, peb yuav pom ntau qhov tseem ceeb rau lub npe parameter, qeb thiab piav qhia. Piv txwv li, cia peb saib cov teb pic_width_in_mbs_muas_1 ΠΈ pic_height_in_map_units_minus_1.

Parameter npe qeb piav qhia
pic_width_in_mbs_muas_1 0 ua(v)
pic_height_in_map_units_minus_1 0 ua(v)

Yog tias peb ua qee qhov kev ua lej nrog cov txiaj ntsig ntawm cov teb no, peb yuav tau txais kev daws teeb meem. Ib tus tuaj yeem sawv cev 1920 x 1080 siv pic_width_in_mbs_muas_1 nrog tus nqi ntawm 119 ((119 + 1) * macroblock_size = 120 * 16 = 1920). Ntxiv dua thiab, kom txuag tau qhov chaw, es tsis txhob encoding 1920, peb tau ua nws nrog 119.

Yog tias peb txuas ntxiv mus xyuas peb cov yeeb yaj kiab tsim hauv binary daim ntawv (piv txwv li: xxd -b -c 11 v/minimal_yuv420.h264), ces koj tuaj yeem mus rau NAL kawg, uas yog tus ncej nws tus kheej.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Ntawm no peb pom nws thawj 6 byte qhov tseem ceeb: 01100101 10001000 10000100 00000000 00100001 11111111. Txij li thawj byte paub los qhia NAL hom, qhov no (00101) yog ib feem ntawm IDR (5), thiab tom qab ntawd koj tuaj yeem tshawb xyuas nws ntxiv:

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Siv cov ntaub ntawv qhia tshwj xeeb, nws yuav muaj peev xwm txiav txim siab hom fragment (daim_type) thiab tus lej (frame_num) ntawm lwm qhov tseem ceeb.

Kom tau txais cov txiaj ntsig ntawm qee qhov chaw (ue(v), me(v), se(v) lossis te(v). exponential Golomb code. Txoj kev no yog qhov ua tau zoo heev rau kev encoding cov nqi sib txawv, tshwj xeeb tshaj yog thaum muaj ntau qhov tseem ceeb.

Muaj nuj nqis daim_type ΠΈ frame_num ntawm no video yog 7 (I-fragment) thiab 0 (thawj ncej).

Ib me ntsis kwj tuaj yeem xav txog raws li kev cai. Yog tias koj xav paub ntau ntxiv txog bitstream, koj yuav tsum xa mus rau qhov tshwj xeeb TSI H.264. Nov yog daim duab macro qhia qhov twg cov ntaub ntawv duab yog (YUV hauv daim ntawv compressed).

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Lwm cov bitstreams tuaj yeem kuaj xyuas, xws li VP9, H.265 (HEVC) lossis txawm tias peb qhov zoo tshaj plaws bitstream tshiab AV1. Puas yog lawv txhua tus zoo sib xws? Tsis yog, tab sis ib zaug koj nkag siab tsawg kawg ib qho, nws yooj yim dua kom nkag siab qhov seem.

Xav xyaum? Tshawb xyuas H.264 bitstream

Koj tuaj yeem tsim ib lub thav duab video thiab siv MediaInfo los tshuaj xyuas cov bitstream H.264. Qhov tseeb, tsis muaj dab tsi tiv thaiv koj los ntawm kev saib ntawm qhov chaws uas txheeb xyuas cov kwj me ntsis H.264 (AVC).

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Rau kev xyaum, koj tuaj yeem siv Intel Video Pro Analyzer (Kuv puas tau hais tias qhov kev pab cuam them nyiaj, tab sis muaj kev sim dawb nrog qhov txwv ntawm 10 ntas?).

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

txheej txheem cej luam

Nco ntsoov tias ntau cov codecs niaj hnub siv tib tus qauv uas peb nyuam qhuav kawm. Ntawm no, cia peb saib ntawm daim duab thaiv ntawm cov codec video Thor. Nws muaj tag nrho cov kauj ruam peb tau dhau los. Tag nrho cov ntsiab lus ntawm cov ncej no yog tsawg kawg yog muab rau koj kom nkag siab zoo dua ntawm kev tsim kho tshiab thiab cov ntaub ntawv hauv cheeb tsam no.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Yav dhau los, nws tau suav tias 139 GB ntawm qhov chaw disk yuav tsum tau khaws cov ntaub ntawv video ntev ib teev ntawm 720p zoo thiab 30 fps. Yog tias koj siv cov kev sib tham hauv tsab xov xwm no (kev sib koom ua ke thiab kev kwv yees sab hauv, kev hloov pauv, quantization, entropy coding, thiab lwm yam), ces koj tuaj yeem ua tiav (raws li qhov tseeb tias peb siv 0,031 khoom ib pixel), video ntawm heev. txaus siab zoo, nyob tsuas yog 367,82 MB, tsis yog 139 GB ntawm lub cim xeeb.

H.265 ua tau zoo compression piv li H.264 li cas?

Tam sim no peb paub ntau ntxiv txog yuav ua li cas codecs ua haujlwm, nws yooj yim dua kom nkag siab tias cov codecs tshiab tuaj yeem xa cov kev daws teeb meem siab dua nrog cov khoom tsawg dua.

Yog peb piv AVC ΠΈ HEVC, nws tsim nyog nco ntsoov tias qhov no yuav luag ib txwm xaiv ntawm ntau dua CPU load thiab compression piv.

HEVC muaj ntau seem (thiab subsection) xaiv dua AVC, ntau cov lus qhia kev kwv yees sab hauv, txhim kho entropy coding, thiab lwm yam. Tag nrho cov kev txhim kho no tau ua tiav H.265 muaj peev xwm compressing 50% ntau tshaj H.264.

Lub video codec ua haujlwm li cas? Ntu 2. Dab tsi, vim li cas, yuav ua li cas

Thawj ntu: Lub hauv paus ntawm kev ua haujlwm nrog video thiab duab

Tau qhov twg los: www.hab.com

Ntxiv ib saib