学习视频编码与AV1实战
文章平均质量分 88
本书以AV1视频标准为主要对象,力图向读者全面地展示视频编码中的主要算法原理、发展过程、实现方法和工程优化点。
LearningKai
这个作者很懒,什么都没留下…
展开
-
1.4.3 AV1中的量化
如果用65536直接除量化步长,把结果保存下来用在量化过程,那就等于对不同的量化步长,保存了不同的精度。为了避免这种情况发生,AV1中根据量化步长的值的范围,在用65536除量化步长之前,先把65536根据量化步长的范围放大一定的倍数,这样就保持了较高的精度。AV1为了保持更高的量化精度,做了精心的设计,包括:量化步长倒数需要保存的精度、右移的位数、量化中需要完成前面DCT遗留的移位运算。这里面的log_scale,是跟变换块大小相关的,小于32×32的为0,32×32的为1,大于32×32的为2。原创 2023-11-17 11:38:33 · 350 阅读 · 0 评论 -
学习视频编码与AV1实战
使用更多的空间,换取更少的时间。AV1编码中的其他编码工具。AV1编码流程:实时编码。减少分支,不要打断指令流水。编码流程,数据结构与参数。对块中像素的索引进行编码。程序结构和数据结构的优化。减少没有必要的计算或操作。视频内容无关的工具集简化。视频内容相关的工具集简化。量化中的dropout。样点自适应补偿后处理。基于深度网络的后处理。准备候选运动矢量队列。更加多样的块划分模式。其他加速块划分的方法。原创 2023-11-16 15:55:13 · 240 阅读 · 1 评论 -
1.1.1 变换的运算过程
H264的4×4DCT变换矩阵把一部分运算与后续的量化操作合并计算。这样带来的好处是:DCT运算非常简单,连整数的乘法都不需要,只需要移位和加减运算。虽然上述代码中还是有重复的计算,但是不必担心,因为这只是一个算法解释,不是最终的优化代码。该矩阵是把4×4的DCT原始矩阵放大128倍后,为保证正交性而做了微调得到的。DCT和DST变换矩阵系数虽然都是浮点数,但是在实际的编解码过程中,计算过程都会被改成整数运算,并且使用蝶形快速算法。假设对一个4×1的向量做DCT,每个频率上的点都需要4次乘法和3次加法。原创 2023-11-15 15:54:32 · 228 阅读 · 1 评论 -
1.1 变换编码
的小块,一般是8×8的小块,对每个小块做离散余弦变换(Discrete Cosine Transform,简称DCT),然后对DCT后的值做量化,最后编码这些量化后的值。所有的8×8的小块的左上角都是最白的,在大部分块中,白色区域在第一行,第一列或左上角。SIMD)的加持,蝶形分解的快速运算的优势没有那么明显,但是对8×8或16×16甚至更大的块,直接运算的劣势就非常明显了。如果把坐标轴旋转90度变成(1,1)和(-1,1)方向,那么这两个向量的值就变成了(1,0)和(0,1),如图15所示。原创 2023-11-15 15:34:36 · 383 阅读 · 0 评论 -
谈谈视频编码
随着视频采集技术的提高,现在已经看不到场采集的视频源了,在新的视频标准里面,已经没有针对场视频源的特殊操作了。事实上,时代在发展,互联网上视频内容的占比越来越大,每天都产生大量的视频,对视频编码的需求也在不断扩展。运动矢量也不是直接编码,而是要在周围的块里面,找到和当前块的MV最相似的MV,编码这两个MV的差值。视频编码的需求不断增加,对视频编码的能力提出了更高的要求,带宽和运算能力的提高,也为视频编码算法带来更多的发展空间。视频编码是针对视频内容的压缩,而zip是非特定内容的,属于通用数据的压缩算法。原创 2023-11-15 13:31:44 · 84 阅读 · 1 评论