資料壓縮 | H.264編解碼實驗
-
- 一、H.264編碼器輸入參數檔案說明
- 二、H.264解碼器輸入參數說明
- 三、H.264編碼實驗要求
- 四、實驗過程
-
- 1.将.264檔案解碼得到.yuv檔案
- 2. 固定碼率,以不同的GOP長度及形狀編碼
- 3. 相同的GOP長度及形狀,不同的碼率
- 五、結果分析
-
- 1. 用碼流分析軟體檢查所生成的碼流中各種編碼模式和運動矢量等資訊
- 2.用播放器觀看所生成碼流的主觀品質
- 3.生成率失真曲線
- 五、實驗結論
一、H.264編碼器輸入參數檔案說明
- encoder.cfg
- 請參考JM Reference Software Manual (JVT-AE010)
- 學習如何自主分析和設定編解碼器參數
二、H.264解碼器輸入參數說明
- 将自行選擇或老師給的兩個264檔案進行解碼,得到相應的YUV檔案
-
将上述兩個視訊序列編碼為.264檔案
固定碼率,以不同的GOP長度及形狀編碼
GOP=15,2B幀;GOP=12,2B幀,GOP=9,2B幀
GOP=4,1B幀;GOP=12,無B幀;GOP=1,全I幀
相同的GOP長度及形狀,不同的碼率
例:1000kb/s, 800kb/s,400kb/s,…
三、H.264編碼實驗要求
-
用碼流分析軟體檢查所生成的碼流中各種編碼模式和運動矢量等資訊
分析不同統計特性的視訊圖像對應的編碼模式和運動矢量的特點
- 用播放器觀看所生成碼流的主觀品質
- 生成率失真曲線
四、實驗過程
1.将.264檔案解碼得到.yuv檔案
1.1 将兩個.mp4檔案轉換為.264檔案,并将兩個.264檔案放在bin檔案夾下
1.2 修改decoder.cfg檔案,修改内容如下
InputFile = "00.264" # H.264/AVC coded bitstream
OutputFile = "00.yuv" # Output file, YUV/RGB
1.3 指令行中指令 如下圖所示,并運作
- 運作結果如下:
- 生成的.yuv檔案
2. 固定碼率,以不同的GOP長度及形狀編碼
2.1 以GOP=15,2B幀為例;
- 修改encoder.cfg檔案,修改内容如下:
# Files
InputFile = "00.yuv"
FramesToBeEncoded = 30
SourceWidth = 960
SourceHeight = 544
OutputWidth = 960
OutputHeight = 544
ReconFile = "00_rec.yuv"
OutputFile = "00_1.264"
# Encoder Control
IntraPeriod = 15
# B Slices
NumberBFrames = 2
HierarchicalCoding = 0
#Rate control
RateControlEnable = 0
Bitrate = 45020
RCUpdateMode = 2
- 運作結果 2.2 繼續編碼生成符合以下格式的.264檔案,方法同2.1所示:
- GOP=12,2B幀
- GOP=9,2B幀
- GOP=4,1B幀
- GOP=12,無B幀
- GOP=1,全I幀
3. 相同的GOP長度及形狀,不同的碼率
3.1 在2.1的基礎上修改encoder.cfg,改變碼率,修改部分如下:
OutputFile = "1000kbps.264" # Bitstream
RateControlEnable = 1 # 0 Disable, 1 Enable
Bitrate = 1000000 # Bitrate(bps)
運作結果如下:
3.2 分别以碼率800kb/s,600kb/s,400kb/s,200kb/s,100kb/s編碼,方法同3.1所述。運作結果如下圖所示:
- 800kb/s
- 600kb/s
- 400kb/s
- 200kb/s
- 100kb/s
五、結果分析
1. 用碼流分析軟體檢查所生成的碼流中各種編碼模式和運動矢量等資訊
- 以GOP = 15 ,2B幀為例
運動矢量資訊如下圖所示:
- I幀
- P幀
- B幀
- B幀
2.用播放器觀看所生成碼流的主觀品質
碼率 kb/s | 圖檔 |
---|---|
1000 | |
800 | |
600 | |
400 | |
200 | |
100 | |
3.生成率失真曲線
- GOP=15,2B幀的率失真曲線
五、實驗結論
視訊編碼需要考慮從人眼主觀感受。