解釋數位影像:格式、編解碼器和容器
不只是縮時,還有粉塵、噪音、位移偵測 |
影像編碼標準
原始影像檔案很大,不適合儲存和傳輸。比如按照最小的 YU(Cb) V(Cr) 4:2:0 格式,標清解析度為 1280*720,幀率為 25fp/s。資料量有多大?
每幀為 1280×720×8×(1+1/4+1/4)/8=1382400Bytes=1350KB,約=1.318359375M,再乘以25幀,每秒原始資料為 1.32M×25= 33M。想想看,這只是一個 100 萬像素和 1s 大小的影像檔案。如果再高清一點,海量的資料對於我們普通的網路頻寬和儲存來說將是一個巨大的負擔。
影像檔案按照一定的方法進行壓縮,也叫編碼,可以大大減小檔案大小,顯然更有利於影像檔案的傳輸、儲存和應用。並且制訂了這個壓縮標準,稱為影像編碼標準,以便為業界和用戶所接受。
關於影像編碼標準,涉及到各種公司、標準化組織和行業協會。目前,制訂影像編碼標準的主要機構主要有這幾家:
- ISO/IEC MPEG。ISO 和 IEC 認可的 MPEG 組織主要制訂 MPEG系列、MPEG-1、MPEG-2、MPEG-3、MPEG-4、MPEG-7 等標準的影像編碼標準。最新的 MPEG-21 正在開發中。
- 國際電聯-T。ITU-T 是國際電信聯盟下屬的電信標準化部門。制訂的影像編碼標準主要有 H.261、H.262、H.263、H.264、H.265、H.266 等。
- 谷歌的影像標準有 VP9、VP10 等。
- 蘋果的 QUICKTime。
- 中國 AVS,AVS2。中國安全監控行業制訂的安控影像監控 SAVC 編碼標準。
- 美國電影協會的 SMPTE。
- 微軟的 WMV。
- 微軟、谷歌、蘋果等公司組成了開放媒體聯盟(alliance for open media),推出了新的影像編碼標準AV1、AV2。
組織 | 編碼標準 |
ISO/IEC MPEG | MPEG-1,MPEG-2,MPEG-4/AVC,MPEG-H Part2/HEVC |
ITU-T | H.261,H.262,H.263,H.264/AVC,H.265/HEVC,H.266/VVC |
SMPTE | VC-1,VC-2,VC-3,VC-5 |
AOM | AV1、AV2 |
谷歌 | VP3,VP6,VP7,VP8,VP9,VP10 |
蘋果 | 快速時間 |
中國標準化協會 | AVS,AVS2,AVS3 |
中國安控行業 | SAVC |
微軟 | WMV |
影像編碼壓縮方式
影像壓縮通常包括編碼和解碼兩個過程。編碼是將原始影像資料,轉換成壓縮格式進行傳輸和儲存。解碼是將壓縮後的影像檔案,轉換回原始影像。
壓縮的關鍵是去除影像檔案中的冗餘資訊。主要的影像編碼壓縮方法包括熵編碼、字典編碼和運動補償。詳細的理論可以在文章末尾的參考資料中找到。
影像編碼格式
為了滿足儲存和播放影像的需要,人為設置不同的影像檔案格式,將視訊和音訊放在一個檔案中。
因此,必須使用匹配的播放器打開和播放不同格式的影像文件。
代碼名稱 | 描述 | 擴展名 |
Flash 影像 | Adobe Flash 開發的一種流行的網路影像打包格式。 | .flv |
AVI | 微軟開發的 Audio Video Interactive,就是將視訊和音訊編碼混合在一起進行儲存。 | .avi |
WMV | 它也是由微軟開發的。 | .wmv/.asf |
MPEG | MPEG 認可的包裝格式,以及簡化的手機版本。 | .dat,.vob,.mpg/.mpeg,.mp4,.3gp |
馬特羅斯卡 | 新的多媒體封裝格式非常具有交互性。 | .mkv |
真實影像 | 它比 H.264 編碼更容易製作。 | .rm/.rmvb |
快速時間 | 由蘋果公司開發,除了視訊和音ㄓㄩㄣ,還可以支持圖片、文字等。 | .mov,.qt |
奧格 | 完全開放的多媒體系統項目。 | .ogg、.ogv、.oga |
解決
標準 | 解決 | 橫縱比 |
QCIF | 176×144 | 1.22:1 |
CIF | 352×288 | 1.22:1 |
4CIF | 704 x 576 | 1.22:1 |
D1 | 720 x 576 | 4:3 |
標清 | 720 x 576 | 4:3 |
高清 | 1280 × 720 | 16:9 |
全高清 | 1920 × 1080 | 16:9 |
3.0MP/QXGA | 2048 × 1536 | 4:3 |
4.0MP/1440P | 2560 × 1440 | 16:9 |
5.0MP | 2592 × 1944 | 4:3 |
超高清 4K | 3840 × 2160 | 16:9 |
DCI 4K | 4096 × 2160 | 大約 17:9 |
超高清 8K | 7680 × 4320 | 16:9 |
幀率/幀/組 (GOP)
幀率
幀速率是用於測量影像顯示的靜止幀數的度量。測量單位是「每秒幀數」(Frame per Second,FPS)或「赫茲」。一般來說,FPS 用來描述影像每秒播放多少幀靜態圖片。
由於人眼特殊的生理結構,如果正在觀看的圖像的幀率,高於每秒10到12幀左右,就會被認為是連貫的。這種現象稱為視覺暫留。這就是為什麼電影膠片是逐幀拍攝的,但是當它快速播放時,我們看到的畫面卻是連續的。
PAL(歐洲、亞洲、澳洲等地電視廣播格式)和SECAM(法國、俄羅斯、部分非洲等地電視廣播格式)規定更新率為 25fps,而 NTSC(美國電視廣播、加拿大、日本等地)格式)規定其更新率為 29.97 fps。早期的電影以稍慢的 24 fps 拍攝。
影像序列中的相鄰圖片通常非常相似,即它們包含很多冗餘。我們可以使用某些方法來消除這種冗餘,並提高壓縮比。
幀/組 (GOP)
圖像幀是分組處理的,這個組就是GOP(Group of Pictures)。每組的第一幀(通常是第一幀)在編碼時不使用運動估計。這樣的幀稱為幀內幀或 I 幀。該組中的其他幀使用 Inter 幀,通常是 P 幀。這種編碼方式通常稱為 IPPPP,即編碼時第一幀為 I 幀,其他幀為 P 幀。
I 幀可用於實現快進、快退或其他隨機訪問功能。當新客戶端開始瀏覽內容流時,編碼器會以固定的時間間隔或根據需要自動插入 I 幀。I 幀的缺點是它消耗更多的位。另一方面,它不會因為丟失數據而產生很多偽影。
P 幀表示預測幀間,使用早期的 I 幀和/或 P 幀作為參考。與 I-frames 相比,P-frames 通常需要較少的比特,但是由於它對早期 P-frames 和/或 I-frames 的高度依賴,它的缺點是對傳輸錯誤很敏感。
在進行預測時,不僅可以從過去幀預測當前幀,還可以使用未來幀來預測當前幀。當然,編碼時,未來幀必須比當前幀更早編碼,即編碼順序和播放順序不同。通常這樣的當前幀,是透過同時使用過去和未來的 I 幀或 P 幀來預測的,稱為雙向預測幀,即 B 幀。這種編碼方法的編碼序列的一個例子是 IBBPBBPBB。
B 幀是雙向預測幀間幀,它使用早期參考幀 I 幀和未來幀 P 幀作為參考。使用 B 幀會增加延遲。
P 幀只能參考之前的 I 幀或 P 幀,而 B 幀可以參考之前或之後的 I 幀或 P 幀。
有些網路影像編碼產品,可以支持用戶自定義 GOP 長度(有些產品稱為 I 幀間隔),這將決定在發送另一個 I 幀之前應該發送多少 P 幀。通過降低 I 幀的頻率(更長的 GOP),你可以降低比特率並減小影像檔案的大小。但是,如果網路出現塞車,可能會因為網路丟包而導致影像品質下降。
一般如果單位為時間,則將 GOP 長度設置為 1s 或 2s,即 30(25)幀中有 1 個 I 幀,60(50)幀中有 1 個 I 幀。如果使用其他單位,則可以將 GOP 或 I 幀間隔設置為 30/25 或 60/50。
編碼級別
在安控影像監控編碼產品中,H.264 編碼支持 3 個編碼級別,從低到高:Baseline、Main 和 High。
Baseline 級別支持 I/P 幀,Main 級別提供 I/P/B 幀,支持非隔行(Progressive)和隔行(Interlaced),High 級別在 Main 基礎上增加 8×8 幀內預測,自定義量化,無損影像編碼及更多 YUV 格式(如 4:4:4)等。
H.264 的編碼級別主要是為了相容,在同一級別的平台上可以應用不同的規範。至於 Baseline@Lx.x、Main@Lx.x、High@Lx.x 格式,流的級別是不同的。值越大,流越大,消耗的資源越多。所以就碼流而言,High@L3.0<High@L4.0<High@L5.1。
H.265 分為兩個編碼級別配置檔案 Main 和 High,並且還定義了不同的 Level 級別和 Tier 級別。
- Profile 指定了碼流中使用了哪些編碼工具和算法。
- Level 指定了給定 Profile 和 Tier 對應的解碼器處理負擔和儲存容量參數,主要包括採樣率、解析度、最大碼率、最小壓縮率和解碼圖像緩衝區(DPB)的容量。)、編碼圖像緩衝區(CPB)的容量等。
- 層指定每個級別的比特率。
比特率和控制方法
影像編碼中的碼流(比特率)控制方式主要分為:VBR(動態比特率)和 CBR(靜態比特率)。比特率的大小決定了影像檔案的大小。我們可以透過碼率來計算影像檔案的大小,見文章-如何計算安全影像的檔案大小。
VBR
Variable Bitrate,即動態比特率。即沒有固定的碼率,壓縮軟體在壓縮時,會根據音視訊資料瞬間決定使用什麼碼率。這是在品質的前提下兼顧檔案大小的一種方式。
VBR 也稱為動態比特率編碼。使用此方法時,你可以選擇從最差的音視訊品質/最大壓縮比到最佳音視訊品質/最低壓縮比的各種過渡階段。在對影像檔案進行編碼時,程序會盡量保持整個選定檔案的品質,並會選擇適合音視訊檔案不同部分的碼率進行編碼。主要優點是音訊和視訊可以大致滿足我們的品質要求,但缺點是編碼時無法準確估計壓縮文件大小。
CBR
常量比特率,或固定比特率,是指靜態(恆定)比特率。CBR 是一種具有固定採樣率的壓縮方法。優點是壓縮速度快,大部分軟體和設備都可以支持。缺點是佔用空間比較大,效果不是很理想。逐漸被 VBR 取代。
其他流控制方法
在 H.265 編碼方面,過去幾乎已不存在檯面上的華為海思,引入了 AVBR 概念,A 先進,相比普通 VBR 方式可以節省 30% 的碼流。
一些廠商結合 VBR 和 CBR 的優點,提出了 CVBR 碼流控制的概念。圖像內容靜止時,節省頻寬,Motion 發生時,利用上一周期節省的頻寬,盡可能提高圖像品質,達到兼顧頻寬和圖像品質的目的. 這種方法通常允許用戶輸入最大碼率和最小碼率。靜止時,碼率穩定在最小碼率。運動時,碼率大於最小碼率,但不超過最大碼率。
指標
影像編碼技術的優劣,可以從計算複雜度和壓縮品質兩個方面來衡量。
就計算複雜度而言,理想編碼器的計算複雜度越低越好。在壓縮品質方面,必須同時考慮壓縮影像的碼率和有損程度。壓縮後的碼率和丟失程度越低越好。兩者之間存在權衡關係。理想的編碼器目的在提供比特率和丟失程度之間的最佳折衷。
一般情況下,編碼器的計算複雜度和壓縮品質之間也存在權衡關係,這取決於應用。例如,當應用是影像資料的儲存時,可以選擇計算複雜度和壓縮品質更高的設計。當應用為視訊會議或手機視訊通話時,受限於即時(即時)通信的要求或有限的計算資源,可以選擇計算複雜度和壓縮品質較低的設計。
由於編碼後影像的品質最終是由人眼來判斷的,所以在衡量損失程度時,應該使用與人類視覺感知一致的影像品質衡量標準。
沒有留言:
張貼留言