-
Download the H265 Video Encoder RTL IP Core V2.0
-
解压后得到四个文件夹, 其中“
sw
”是产生测试向量,“sim
”是仿真文件,“rtl
”是IP Core
的所有代码,“lib
”是memory行为级模型
-
进入“sw”文件夹中,修改“
f265_encode.cfg
”中的参数配置
InputFile
:输入待编码的YUV文件
WidthVideo
:视频宽
HeightVideo
:视频高
GOPLength
: GOP 长度
EncodeFrames
:编码帧数
EncodeQP
:QP
-
执行“
.\f265.exe -c .\f265_encode.cfg
”,Linux下用“f265
”
运行完成以及导出文件如下图所示
其中,
“I_SLICE
”表示帧内预测编码结果;“P_SLICE
”表示P帧编码结果
“bs.hevc
”是编码完成的码流文件;“fp_psnr.csv
”输出编码结果PSNR,bitrate
等
“rec.yuv
”重建完成的YUV文件;”s_bit_stream
”是CABAC输出的熵编码完成的文件,用于硬件测试。 -
将软件导出的文件放到 “
/sim/top_testbench/tv
”中,并将原始YUV也放入tv
文件夹中,如下图所示,”ime_cfg.dat
”是配置IME参数,不用更改 -
修改“tb_enc_top.v”中的参数,确认与软件导出数据时所用参数相同
'define TEST_I 1 // 测试I帧
'define TEST_P 0 // 测试P帧
'define FRAME_WIDTH 416
'define FRAME_HEIGHT 240
'define INITIAL_QP 20
'define GOP_LENGTH 50
'define FRAME_TOTAL 2
'define FILE_CUR_YUV "./tv/BlowingBubbles.yuv" // 指定原始YUV文件路径
-
利用Makefile运行仿真,“
make vcs
” or “make ncsim
” or “make vsim
”,可能由于软件版本不同,会出现仿真错误,建议更换仿真软件或者使用新版本的仿真软件
仿真正确完成结果如图所示
-
下面两图是软件和硬件设置的QP不同输出的错误结果,错误后会停止编码,供参考
T
Save
Saving
tang
@tang
-1
Reputation
11
Posts
8411
Profile views
0
Followers
0
Following
Posts made by tang
-
H265 ENCODER RTL V2.0仿真教程