AVS3帧内预测

帧内预测是去除空域冗余的重要工具,AVS3的帧内预测是在AVS1和AVS2的基础上逐步演化来的,包括DC、plane、bi-linear、角度模式等。

图1 AVS帧内预测模式

AVS1支持8种角度模式,如图1(a),对于不同尺寸块使用的角度模式不同,对于4x4的intra块支持所有角度模式,对于8x8的块只能使用水平、垂直和对角线模式,对于8x8的intra块的亮度和色度分量还分别额外支持DC模式和plane模式。对于帧内模式的编码,AVS1采用MPM,MPM内有2个候选项,来自上方和左侧相邻块。

AVS2支持33种帧内预测模式,包括30种角度模式和DC、Plane、bi-linear模式,如图1(b)。30种角度模式的分布范围为[-157.5°,60°],模式3到11仅使用上方参考像素,模式25到32仅使用左侧参考像素,模式13到23同时使用上方和左侧参考像素。AVS2首次引入了bi-linear模式,如图2,对于PU右下角的像素C,其预测值为A和B的加权(权重由A和B分别到C的距离决定)。对于PU最右侧一列或最下边一行像素,其预测值为A或B和C的预测值的加权。PU中剩余像素的预测值由其上方参考像素、左侧参考像素、下边界像素、右边界像素通过双线性加权得到。

图2 bi-linear模式

由于AVS2引入了bi-linear模式,其MPM构造方式发生了变化,若两个相邻块都是DC模式则将DC和bi-linear模式加入MPM,否则将DC模式和最近相邻块模式加入MPM。AVS2的色度分量还有DM模式,若使用DM模式则表示色度复用亮度的模式。表1是AVS2的帧内预测模式的索引。

表1 AVS2的帧内预测模式

AVS3帧内预测


AVS3继承了AVS2的DC、Plane、bi-linear模式并扩展了角度模式。角度模式的范围还是[-157.5°,60°]但是数量增加到63个,如图1(c)。AVS3的MPM生成方式和AVS2类似。AVS3的帧内预测还支持SAWP(Spatial Angular Weighted Prediction),类似于VVC里的几何划分,它可以使用2个角度模式分别生成2个预测块,然后将2个预测块加权得到最终的预测块。当使用SWAP时,使用的两个角度模式都需要在码流中传输,为了降低传输负担对SAWP仅允许使用模式3到32。

在AVS1中参考像素都在整像素位置,而在AVS2中若参考像素位置不在整像素位置则使用一个4抽头插值滤波器进行1/32像素精度的插值。AVS3为了进一步提高分像素位置的预测精度,使用MIPF(Multiple Intra Prediction Filter)技术,它包含四类4抽头滤波器,由平滑滤波器和插值滤波器组成。

在AVS3中由参考像素加权得到的预测值还可以进一步通过IPF(Intra Prediction Filter)处理以提高预测精度,IPF使用相邻参考像素来调整当前预测值。

为了去除不同颜色分量间的冗余,AVS3提出TSCPM(Two Step Cross-component Prediction Mode)。TSCPM和VVC中的CCLM类似,C'=α * L + β,其中L是亮度像素的重建值,C'是中间结果,然后再使用6抽头滤波器获得最终色度预测值。TSCPM和CCLM的区别是,对于420格式CCLM先对亮度重建块下采样然后按照线性映射得到色度预测值,而TSCPM是直接在原始尺寸上对亮度块进行线性映射得到中间值,然后对中间值进行下采样。

AVS3还提出了PMC(Prediction from Multiple Cross-component)来进一步去除不同颜色分量间的冗余,PMC可以使用Y和Cb的重建值来预测Cr。
 

参考


J. Li et al., "Sub-Sampled Cross-Component Prediction for Chroma Component Coding," 2020 Data Compression Conference (DCC), 2020, pp. 203-212, doi: 10.1109/DCC47342.2020.00028.

J. Li et al., "Prediction with Multi-Cross Component," 2020 IEEE International Conference on Multimedia & Expo Workshops (ICMEW), 2020, pp. 1-6, doi: 10.1109/ICMEW46912.2020.9105965.

Ma, S., Zhang, L., Wang, S. et al. Evolution of AVS video coding standards: twenty years of innovation and development. Sci. China Inf. Sci. 65, 192101 (2022).

Y. Piao, J. Chen, S. Lee and I. -K. Kim, "Intra coding of AVS2 Video Coding Standard," 2014 IEEE International Conference on Multimedia and Expo Workshops (ICMEW), 2014, pp. 1-5, doi: 10.1109/ICMEW.2014.6890695.

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 FFmpeg 进行 AVS3 编码,需要先编译 FFmpeg 并启用 AVS3 的支持。下面是一个简单的编译和配置过程: 1. 下载 FFmpeg 源代码 首先,你需要从 FFmpeg 官网下载最新的源代码。 2. 安装 AVS3 相关依赖 FFmpeg 需要依赖以下软件包来支持 AVS3 编码: - AVS3-P2 reference software - xavs3 库 你可以从 AVS3 官方网站上下载这些软件包,并按照它们的指导进行安装。 3. 配置 FFmpeg 在配置 FFmpeg 时,你需要启用 AVS3 的支持。你可以使用以下命令进行配置: ``` ./configure --enable-libxavs3 --enable-version3 --enable-shared --enable-hardcoded-tables --enable-gpl --enable-nonfree ``` 其中,`--enable-libxavs3` 表示启用 xavs3 库的支持,`--enable-version3` 表示使用最新的库版本,`--enable-shared` 表示编译动态链接库,`--enable-hardcoded-tables` 表示启用硬编码的表格,`--enable-gpl` 表示启用 GPL 许可证,`--enable-nonfree` 表示启用非自由许可证。 4. 编译 FFmpeg 在配置完成后,你可以使用以下命令编译 FFmpeg: ``` make ``` 5. 安装 FFmpeg 编译完成后,你可以使用以下命令将 FFmpeg 安装到系统中: ``` make install ``` 6. 使用 FFmpeg 进行 AVS3 编码 现在,你可以使用 FFmpeg 进行 AVS3 编码了。例如,如果你要将一个视频文件编码为 AVS3 格式,你可以使用以下命令: ``` ffmpeg -i input.mp4 -c:v libxavs3 output.avs ``` 其中,`-i` 表示输入文件,`-c:v libxavs3` 表示使用 libxavs3 库进行视频编码,`output.avs` 表示输出文件的名称。 注意:AVS3 是中国提出的一种新型视频编码标准,目前尚未得到广泛的应用和支持。因此,在使用 FFmpeg 进行 AVS3 编码时,你需要先确认你的播放器或设备是否支持 AVS3 格式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值