AVS3变换之IST和ISTS

2024-02-05 10:30
文章标签 变换 avs3 ist ists

本文主要是介绍AVS3变换之IST和ISTS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IST(Implicit Selected Transform)是AVS3中新增的针对intra块的变换工具,IST对intra块提供了两种可分离的变换核,编码器根据RDO选择最优的变换核,但是对于选中的变换核不在码流中传输其索引,而是将其索引隐藏在非零变换系数的奇偶性中(Parity of the Number of Non-zero Cofficients,PNNC)。解码端根据PNNC得到对应的变换核。

IST


由于DCT-II对于intra块的变换不是最优的,对于角度预测DCT-II不能很好的完成能量集中。而DST-VII能很好地解决这种情况,因此DST-VII被引入了intra块的变换。

为了节省传输所选变换核索引的比特,使用PNNC来表示变换核。解码端统计非零变换系数数量然后按下表得到对应的变换核,如果是偶数就使用DCT-II,如果是奇数则使用DST-VII。

但是量化后PNCC不总是能和选定的变换核一致,为了解决这个问题需要对量化后非零变换系数数量的奇偶性进行调整,也就是将一个非零系数置零或将0设成一个非零值。选哪个系数来调整奇偶性呢?理论上遍历所有系数的所有可能情况就能得到最优结果,但是复杂度太高,一个简化的方法如下:

  1. 检查PNNC是否和所选变换对应,如果是则结束,否则进入2。

  2. 如果非零系数数量大于1,则将最后一个非零系数置零。

  3. 如果非零系数等于1,则将第一个0系数设为1或-1(由量化前系数的符号决定)。

实验结果


在HPM5.0上测试IST,all-intra和RA配置下分别取得0.64%和0.35%的gain如表4表5,对于纹理和运动丰富的序列(如Tango2,MarketPlace和City序列)gain相等更高。

ISTS


ISTS(Implicted Selected Transform Skip)和ISP类似,也是针对intra块,当开启ISTS时如果CU使用了transform skip模式则不直接传输标志位,而是将其隐含在PNCC中。

当时PNNC奇偶性只有两种情况,无法区分出DST-VII、DCT-II和TS这三种情况,为了解决这个问题在帧级区分DST-VII和TS。具体来说,在预处理时对帧内每个块计算hash值,通过hash值可以判断该帧内容是自然场景还是屏幕内容场景,如果该帧是自然场景则PNNC奇数表示DST-VII,如果是屏幕场景PNNC奇数表示TS。

对于自然场景,变换后系数采用反向zig-zag扫描,这是因为变换后能量主要集中在左上角,这种扫描方式会使非零系数集中。而屏幕内容变换后能量分布有所不同,因此采用风车扫描(Windmill-shaped Reordering,WR)。

WR扫描如上图所示,具体为,

C(x,y)=C'(W-1-x,H-1-y)

其中C'表示扫描前的像素,W和H分别表示块的宽和高。WR扫描中并不是所有像素位置都会改变,例如(W/2-1,H/2)和(W/2,H/2-1)位置处的像素不变。

实验结果

实验平台为HPM8.0,测试序列分为4类,TGM(Test and Graphics with Motion),MC(Mixed Content),G(Gaming content)和CC(Camers Captured),LD和RA配置下结果如下,

这篇关于AVS3变换之IST和ISTS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/680619

相关文章

Verybot之OpenCV应用二:霍夫变换查找圆

其实我是想通过这个程序来测试一下,OpenCV在Verybot上跑得怎么样,霍夫变换的原理就不多说了,下面是程序: #include "cv.h"#include "highgui.h"#include "stdio.h"int main(int argc, char** argv){cvNamedWindow("vedio",0);CvCapture* capture;i

【数字信号处理】一文讲清FFT(快速傅里叶变换)

目录 快速傅里叶变换(Fast Fourier Transform,FFT)FFT的背景快速傅里叶变换(Fast Fourier Transform,FFT)DFT的数学表达实际计算重要性和应用频谱泄露、频谱混叠奈奎斯特采样定理参考链接 快速傅里叶变换(Fast Fourier Transform,FFT) FFT的背景 1、为什么要时域→频域频率?50Hz+频率120Hz

傅里叶变换家族

禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》 禹晶、肖创柏、廖庆敏《数字图像处理》资源二维码

齐次变换矩阵的原理与应用

齐次变换矩阵的原理与应用 通过齐次变换矩阵,可以描述机械臂末端执行器(法兰)在三维空间中的平移和旋转操作。该矩阵结合了旋转和平移信息,用于坐标变换。 1. 齐次变换矩阵的基本形式 一个齐次变换矩阵 T是一个 4x4 矩阵,表示刚体的旋转和平移: T = [ R t 0 1 ] = [ r 11 r 12 r 13 x r 21 r 22 r 23 y r 31 r 32 r 33 z 0

MATLAB分析图像的离散余弦变换(DCT)

1. MATLAB的介绍以及所需函数的说明:  1.1 MATLAB  MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设

PyTorch Demo-4 : 数据变换Transforms

Transforms的函数有很多,每次都是直接copy已有的代码,但是不知道具体是什么样子,在这里记录一下 Transforms常用方法的具体说明参考链接1,链接2,或者官方文档。 原始图像采用图像处理经典的Lena: Python代码 from PIL import Imagefrom torchvision import transforms as tfimport ma

【Get深一度】小波变换通俗解释 -算法与数学之美

链接:http://www.zhihu.com/question/22864189/answer/40772083 文章推荐人:杨晓东 从傅里叶变换到小波变换,并不是一个完全抽象的东西,可以讲得很形象。小波变换有着明确的物理意义,如果我们从它的提出时所面对的问题看起,可以整理出非常清晰的思路。     下面就按照傅里叶-->短时傅里叶变换-->小波变换的顺序,讲一下为什么会出现小波这个东

【Get深一度】信号处理(二)——傅里叶变换与傅里叶级数的区别与联系

1.傅里叶级数和傅里叶变换:  傅里叶级数对周期性现象做数学上的分析 傅里叶变换可以看作傅里叶级数的极限形式,也可以看作是对周期现象进行数学上的分析。 除此之外,傅里叶变换还是处理信号领域的一种很重要的算法。要想理解傅里叶变换算法的内涵,首先要了解傅里叶原理的内涵。 傅里叶原理表明:对于任何连续测量的数字信号,都可以用不同频率的正弦波信号的无限叠加来表示。     傅里叶变

【C】快速傅里叶变换(FFT)讲解及实现

引言基2FFT 1.引言 人类的求知欲是永无止境的,自1965年 T. W. Cooley 和 J. W. Tuky 在《Math. Computation, Vol, 19, 1965》发表了著名的《 An algorithm for the machine calculation of complex Fourier series 》,人们对 有关傅里叶变换的改进和创新就从未止步。1

5.8幂律变换

目录 示例代码1 运行结果1 示例代码2 运行结果2 补充示例原理 示例:使用cv::pow进行图像处理 代码 运行结果 ​编辑 补充 实验代码3 运行结果3​编辑 在OpenCV中,幂律变换(Power Law Transformations)是一种常用的图像增强技术,尤其适用于调整图像的对比度。这种变换通过应用一个幂函数来调整图像的亮度,使得图像的细节更加明显