AVS3中的intra string copy(ISC)

AVS3是AVS系列的最新标准,其中新增了一些SCC工具,intra string copy(ISC)就是其中之一。下图1是AVS3的编码框架,其中橙色部分是ISC,可见ISC分为两个子模式FPSP和EUSP。

图1 AVS3编码框架

ISP是AVS3中新增的技术,它作用于420格式。ISC是CU级工具用于宽和高小于等于32的CU,它有两种子模式:FPSP、EUSP。每个模式计算过程都包括两步:字符串搜索和字符串参数编码。

FPSP模式


FPSP模式中的字符串有两类:全匹配字符串(Fms)和部分匹配字符串(Pms)。Fms中每个字符都是匹配的,而Pms至少有一个字符不匹配通过pixel_match_type标志每个字符是否匹配。Fms和Pms都需要一个SV(string vector)来表示参考串的位置。Pms串的长度都是4,Fms的长度都是4的倍数。对于Pms中的不匹配像素直接编码其像素值。

图2左侧图像是FPSP是一个示例,8x8CU被分成两个字符串,数字1红色边框的属于字符串1,字符串1长度为60,SV为(-11,-1)。字符串1是Fms,解码端根据SV和长度到对应位置取60个字符即可重建字符串1。数字2绿色边框属于字符串2,字符串2是Pms,SV为(-2,1),pixel_match_type是(1,0,1,1),1表示和参考像素匹配0表示不匹配,对于不匹配的像素直接编码其像素值。

图2 ISC实例

EUSP模式


FPSP模式中的字符串有三类:Evs、Ubvs、Ups。Evs字符串中的所有字符都相同。Ubvs是匹配串,SV为(0,-1),且参考像素在当前CU内。Ups是不匹配串,直接编码像素值。Evs中所有像素都相同,像素值通过索引PV(Point Vector)从PvInfoList中获取,类似于HEVC palette中的palette table。

图2右侧部分是EUSP的示例,数字1蓝色边框的是字符串1,字符串1是Evs,它包含12个像素,每个像素都相同,像素值为PvInfoList中的第0个值。数字2黄色边框的是字符串2,它也是Evs,有11个像素,因为它的像素在PvInfoList中不存在,所以加入PvInfoList中。数字3橙色边框是字符串3,它是Ups,直接编码像素值。数字4紫色边框是字符串4,它是Ubvs包括40个像素,SV固定为(0,-1)。

实验结果


使用AVS3 CTC的12条420序列作为测试集,进行6组编码:

  1. HPM-SCCOff:HPM关闭SCC

  2. HPM-SCCOff+ISCOn:HPM SCC仅开ISC

  3. HPM-SCCOff+IBCOn:HPM SCC仅开IBC

  4. HPM-SCCOff+ISCOn+IBCOn:HPM SCC仅开ISC和IBC

  5. VTM-SCCOff:VTM关闭SCC

  6. VTM-SCCOff+IBCOn+PLTOn:VTM关闭SCC仅开IBC和PLT

实验配置为AI和LDB,HPM中QP={27,32,38,45},VTM中QP={22,27,32,37}。结果如下表,

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值