实验报告 VC6.0 平台 H.264 JM8.6 视频读写
一,实验目的
(1)编译 H.264 JM8.6 参考软件。
(2)学会使用 H.264 JM8.6 提供的可执行文件进行简单的视频解压缩。
(3)在 Microsoft Visual C++ 6.0 环境下进行读写视频 YUV 文件实验,了解并熟悉基本的视频 YUV 文件解压缩和压缩处理方式。
二,实验环境
(1)Windows XP OS
(2)H.264 参考软件 JM 8.6
(3)Microsoft Visual C++ 6.0
三,实验代码
InputFile = "foreman_part_qcif.yuv" # Input sequence,YUV 4:2:0
InputHeaderLength = 0 # If the inputfile has a header, state it's length in byte here
StartFrame = 0 # Start frame for encoding. (0-N)
FramesToBeEncoded = 2 # Number of frames to be coded
FrameRate = 30 # Frame Rate per second (1-100)
SourceWidth = 176 # Image width in Pels, must be multiple of 16
SourceHeight = 144 # Image height in Pels, must be multiple of 16
TraceFile = "trace_enc.txt" # 编码细节记录文档
ReconFile = "test_rec.yuv" # 重建的参考帧 YUV 序列
OutputFile = "test.264" # 输出的视频流
ProfileIDC = 66 # Profile IDC (66=baseline, 77=main, 88=extended) LevelIDC = 30 # Level IDC (e.g. 20 = level 2.0)
IntraPeriod = 10 # Period of I-Frames (0=only first)
IDRIntraEnable = 0 # Force IDR Intra (0=disable 1=enable) QPFirstFrame = 28 # Quant. param for first frame (intra) (0-51)
QPRemainingFrame = 28 # Quant. param for remaining frames (0-51)
test.264 ........ H.264 coded bitstream
test_dec.yuv ........ Output file, YUV 4:2:0 format
test_rec.yuv ........ Ref sequence (for SNR) 10 ........ Decoded Picture Buffer size 0 ........ NAL mode (0=Annex B, 1: RTP packets) 0 ........ SNR computation offset 1 ........ Poc Scale (1 or 2) 500000 ........ Rate_Decoder 104000 ........ B_decoder 73000 ........ F_decoder leakybucketparam.cfg ........ LeakyBucket Param
四,实验结果
五,实验总结
通过这次实验,我学会了简单的使用编译 H.264 JM8.6 参考软件,同时也了解到了使用 H.264 JM8.6 提供的可执行文件进行简单的视频解压缩和在 Microsoft Visual C++ 6.0 环境下进行读写视频 YUV 文件实验,了解并熟悉基本的视频 YUV 文件解压缩和压缩处理方式。