lzw编码过程详解_编码拓展——封装、编码、码率
有小伙伴想要更多知道編碼封裝這一塊
那就繼續(xù)寫寫吧
- 什么是封裝?什么是編碼
不知道大家有沒有試過 “明明都是 mp4,為什么這個(gè)能夠?qū)爰糨嬡浖?#xff0c;那個(gè)則不能?”的情況。
ok,下面我們來講講為什么會(huì)出現(xiàn)這種情況
封裝格式(Format)
是媒體文件的容器,即媒體文件的后綴。
常見封裝有 mp4 mov mkv 等等~
這些封裝格式可以裝入各種各樣編碼的 視頻文件 和 音頻文件 。
比如同樣是 mov 的封裝 既可以裝入 H.264 編碼的視頻 也可以裝入 ProRes 編碼的視頻。
而出現(xiàn)
“明明都是 mp4,為什么這個(gè)能夠?qū)爰糨嬡浖?#xff0c;那個(gè)則不能?”
這種情況的話,很有可能就是無法導(dǎo)入的 mp4 媒體文件內(nèi)的編碼不被剪輯軟件支持。
在后期制作中 常用的封裝格式有 mov mp4 xmf
編碼
在上次我們已經(jīng)講過在后期制作流程中常用的用的各種編碼(詳情請(qǐng)戳下方鏈接)
半緣修道:剪輯流程——編碼?zhuanlan.zhihu.com常見編碼有 H.264 MPEG ProRes
編碼又分為 幀內(nèi)壓縮 和 幀間壓縮
這個(gè)在上面的鏈接里粗略解釋過,現(xiàn)在再稍微詳解一下
幀間壓縮
就以 H.264 舉例 ,H.264 代表了目前人類最高科技成果之一
(小老弟 H.265 都開始推廣普及了
還好意思說自己是最高科技成果之一,表臉~(///▽///))
H.264 編碼主要由三種幀構(gòu)成 I B P
下圖為 I B P 排列模式
I 幀
只進(jìn)行自我壓縮
計(jì)算過程中不涉及其他幀。
B 幀
雙向預(yù)測(cè)幀
記錄自身與前后兩幀的差別。
P 幀
單向預(yù)測(cè)幀
記錄自身與前一幀的差別
需要注意的是
在壓縮后的編碼中
B 幀與 P 幀 記錄的都是 差別 ,而不是畫面
只有 I 幀 才是畫面
通過 I 幀 的畫面 以及這些 差別 一同計(jì)算
才能得到 B P 幀 的畫面。
其中,B 幀對(duì)壓縮貢獻(xiàn)最大,P 幀其次,I 幀最小。
雖然 B P 幀 的壓縮比較大,可以極大的減小文件體積
但是頻繁使用預(yù)測(cè)幀會(huì)導(dǎo)致畫面質(zhì)量降低 甚至是出錯(cuò)。
比如
有一種 IPPPPPP 的排列模式 如下圖
這種排列模式的解碼過程大概如下所述:
第一幀:--------------------
I 幀 ,幀內(nèi)壓縮,直接解壓就可以得到 第一幀的畫面。
第二幀:--------------------
P 幀,因?yàn)?P 幀 是一個(gè)預(yù)測(cè)幀
需要通過
前一幀(即 I 幀)的畫面
以及
記錄的自身與前一幀的差別
計(jì)算出 自身的畫面
至此,畫質(zhì)損失一點(diǎn)
第三幀:--------------------
P 幀,也是通過
前一幀 (P幀)的畫面
以及
記錄的自身與前一幀的差別
計(jì)算出第三幀的畫面。
至此,基于前面畫質(zhì)損失的基礎(chǔ)上,畫質(zhì)再損失一點(diǎn)。
咱們不可能一直讓他像滾雪球一樣,不停的使用預(yù)測(cè)幀,不停的損失畫質(zhì)
所以要每隔幾個(gè)預(yù)測(cè)幀,就加入一個(gè) I 幀 來提供完整的畫面
把損失畫質(zhì)的迭代打斷。
幀內(nèi)壓縮
而幀內(nèi)壓縮編碼 則 全是 I 幀
計(jì)算速度快 畫質(zhì)高。
但是也因此體積大。
我們使用的編輯編碼都是幀內(nèi)壓縮。
- 封裝格式與編碼的作用
編碼的作用
在一個(gè)媒體文件中編碼負(fù)責(zé)壓縮音視頻。
解碼后是一組圖片序列。
封裝格式的作用
就是負(fù)責(zé)告訴播放器
這個(gè)媒體文件的幀速率是多少
以及負(fù)責(zé)音視頻同步等任務(wù)。
- 碼率 也叫 比特率(Bitrate)
即每秒傳輸?shù)谋忍財(cái)?shù),就是平均每一秒中,這個(gè)視頻的大小
在講這個(gè)之前,首先要搞清楚一個(gè)概念
1 byte(字節(jié),縮寫為 B)
等于
8 bit (比特,縮寫為 b)
而我們平時(shí)說的 “這個(gè)文件 XXX MB”
就是 mega byte ,是指 字節(jié)。
而在 Premiere 中,渲染導(dǎo)出的時(shí)候 調(diào)節(jié)比特率的單位是
Mbps = Million bit per second (兆比特每秒,Mbps 中,b 是 小寫,是 bit)
而 1 byte = 8 bit ,我們來算一下看看是不是這么回事哦~
如下圖,這個(gè)片子有 15秒,比特率是 10 Mbps ,預(yù)計(jì)輸出大小是 19M
15(秒)* 10 Mbps = 150 Mb
150 Mb / 8 = 18.75 MB ≈ 19MB
對(duì)吧?
H.264 有三種編碼模式 CBR VBR VCBR
CBR(Constant bit rate)
固定比特率的算法
圖像靜止的時(shí)候 質(zhì)量好
圖像運(yùn)動(dòng)強(qiáng)的時(shí)候 很容易出現(xiàn)比特率跟不上圖像變化的情況,導(dǎo)致圖像質(zhì)量差
VBR(Variable bit rate)
動(dòng)態(tài)比特率的算法
圖像簡(jiǎn)單時(shí),比特率降低
圖像復(fù)雜時(shí),比特率升高
如此一來,既節(jié)省空間,又保證質(zhì)量
VCBR(Constrained variable bit rate)
集前兩者的優(yōu)點(diǎn)
在圖像靜止的時(shí)候可以低、且固定的碼率
圖像復(fù)雜時(shí)候,比特率升高
相比 VBR,同樣的質(zhì)量更加節(jié)省空間,又或者同樣的大小更加高質(zhì)量
需要注意的是
在渲染 H.264 的時(shí)候 軟件只認(rèn)比特率 不認(rèn)分辨率
也就說
軟件不會(huì)因?yàn)槟惴直媛实奶岣?#xff0c;而自動(dòng)給你提高比特率
需要你自己根據(jù) 分辨率 以及 畫質(zhì)需求 來提高 比特率
4K 的畫面如果比特率過低的話 畫質(zhì)會(huì)反而不如 720p 高碼率的畫面
4K 低碼率720p 高碼率在 Premiere 里 渲染的時(shí)候 一般都使用 VBR 的編碼模式
不過設(shè)備允許的話,我們可以進(jìn)行二次編碼
它有點(diǎn)像 VCBR 的編碼模式
它的比特率設(shè)置中有個(gè) Maximum Bitrate(最大比特率) 的控制項(xiàng) 如下圖
渲染的時(shí)候,軟件會(huì)把碼率控制在 Target Bitrate(目標(biāo)比特率) 上
當(dāng)畫面復(fù)雜度增加,軟件會(huì)提高碼率,但又不超過 Maximum Bitrate(最大比特率) 如下圖
這樣的編碼模式是十分理想的,既控制了畫質(zhì),又控制了文件體積。
色度采樣什么的下次再寫吧。。。
2019-03-09
總結(jié)
以上是生活随笔為你收集整理的lzw编码过程详解_编码拓展——封装、编码、码率的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中东战争发生的国家有哪些
- 下一篇: 添加softmax层_PyTorch入门