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.
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 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:
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.
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.
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.
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.
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.
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.
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.
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.
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).
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).
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?).
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.
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.