mpp icon indicating copy to clipboard operation
mpp copied to clipboard

transform8x8 模式如何生效

Open imxys opened this issue 3 years ago • 7 comments

Platform: RK3399

我使用同一个yuv文件做编码测试。

  1. 当我使用ffmpeg命令将文件编码为High Profile的文件的时候,通过Vega H264 Analyzer 软件看到文件内PPS有transform_8x8_mode_flag=true,画面I帧的宏块往往分割成8x8宏块,偶尔也看到分割成16个4x4宏块。类似下图

图片

  1. 当我使用ffmpeg命令将文件编码为High Profile的文件,但是使用-8x8dct 0关闭transform_8x8的时候,通过Vega H264 Analyzer 软件看到文件内PPS没有transform_8x8_mode_flag,画面I帧的宏块只会分割成16个4x4宏块。此外,即使我有指定Profile为HP,ffmpeg也编码成Main Profile的文件。类似下图:

图片

根据1和2两点我认为RK的编码配置h264:trans8x8应该在宏块分割上有同样的效果。但是根据demo编码视频的分析,不管我有没有使能这个配置(设置1或0),好像所有帧内刷新类型的宏块都是被分割成4x4的。类似下图:

图片

请问我理解错了吗?(尝试用英文提问感觉太复杂于是用了中文)

imxys avatar May 18 '21 13:05 imxys

8x8 模式需要配置了 high profile 才生效,默认是 baseline,看下编译出来的码流是不是 high profile 的

HermanChen avatar May 19 '21 08:05 HermanChen

8x8 模式需要配置了 high profile 才生效,默认是 baseline,看下编译出来的码流是不是 high profile 的

截图里有信息,确实是high profile的

imxys avatar May 20 '21 11:05 imxys

另外我好像设置h264:dblk_disable没有其作用;不知道有没有设置到寄存器?我想确认一下去块滤波的效果,但是修改这个配置项,看RK3399的寄存器 0xff6500ec 在编码运行时候的值没有变化; 看生成h264文件的slice里 disable_deblocking_filter_idc 也没变化,一直是0

imxys avatar May 20 '21 13:05 imxys

配置了 8x8 变换,并不是说所有块都使用 8x8 变换,这个是编码器内核根据不同模式的代价,针对不同内容块判决出不同最优的情况,开了 8x8,应该是会看有 16x16,8x8,4x4 都会存在的情况

HermanChen avatar May 21 '21 02:05 HermanChen

配置了 8x8 变换,并不是说所有块都使用 8x8 变换,这个是编码器内核根据不同模式的代价,针对不同内容块判决出不同最优的情况,开了 8x8,应该是会看有 16x16,8x8,4x4 都会存在的情况

按道理来讲是的,我通过电脑上ffmpeg编译验证也是这个现象(见前两张截图);但不知为何我RK3399这边都没有见到过8x8的

imxys avatar May 21 '21 02:05 imxys

Do you have a download link for Vega H264 Analyzer software ?

Consti10 avatar Sep 03 '21 16:09 Consti10

Do you have a download link for Vega H264 Analyzer software ?

Oh, sorry to say I don't know where to download it either... Maybe you can try the trail version at it's official site, or try opensource alternatives: latelee/H264BSAnalyzer, leixiaohua1020/VideoEye and leixiaohua1020/h264_analysis

imxys avatar Sep 03 '21 17:09 imxys