天天看点

H264编码一些名词概念和疑问

一 帧内预测、帧间预测

帧内预测:

亮度:16x16块有4种预测模式:垂直、水平、直流分量DC、平面。4*4块有9种预测模式:直流分量DC、垂直、水平等。

色度:8x8块,4种。

亮度和色度存储在不同位置?

色度只帧内预测有?

帧间预测:利用先前编码帧的重建图像作为参考,对当前图像进行预测编码。

运动矢量分亮度和色度的。

在H.264中,亮度分量的MV最高可达1/4像素精度,色度分量的MV最高可达1/8像素精度。

在H.264编码和解码的过程中,需要将画面中的像素进行插值——简单地说就是把原先的1个像素点拓展成4x4一共16个点。

二 专有名词

帧内宏块intra、帧间宏块inter、熵编码entropy encoding、

亮度luma、色度chroma、残差residual、

RBSP(raw byte sequence payload)原始字节序列载荷、

SEI补充增强信息–作用挺多了,很多类型,比如视频的横屏竖屏。

FMO(flexible macroblock ordering)宏块排列模式、

MVD运动矢量残差+MVP预测运动矢量=MV预测矢量。

MVD从码流中相应的语法元素解析得到,MVP由相邻像素块的信息计算得到。

Hadamard变换,产生比特数。

DCT变换+量化+Hadamard变换。

三 重要概念

对残差做DCT变换。

量化是视频编码失真的根本原因。

帧分组算法:在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内,我们认为这样的图可以分到一组。

(没找到出处–书的)

宏块编码:按照编码框架中规定的DCT变化、zigzag扫描、熵编码进行。

先亮度编码、再色度编码。

运动估计:不同算法的搜索,计算宏块不同类型的值,选最优值。----自己理解的。

P帧,一般是绝大部分的Inter块、少量的Intra块。P帧也有Intra块。

块效应 blocking artifact:随着码率的降低,量化变得粗糙,块的边界出现不连续,形成重建图像。MPEG-4、H.264采用环内滤波去除块效应。

产生块效应的原因:1 DCT变换后的量化造成误差。2 运动补偿。

四 视频质量

PSNR(peak signal to noise ratio) 峰值信噪比,值越大表示越接近原图片。

SSIM(structural similarity)结构相似度,较好的反映人眼主观质量。

x264源码有相关计算。

VMAF:ffmpeg里的VMAF要两个视频比较。不能不同分辨率。

基于机器学习的模型设计的,依靠多种指标,比如:1 视觉信息保真度,2细节丢失指标,3运动量等。

像素比较(失真测度 ):

SAD(sum of absolute difference):差值,绝对值,累加。时域。影响PSNR值,不能有效反映码流的大小。

SATD(sum of absolute transformed difference):hadamard变换后再绝对值,累加。频域。

SSD(sum of squared difference):差值的平方和。

继续阅读