H.266/VVC沿用了H.265/HEVC中的混合视频编码框架,即同时采用了多种编码方法进行编码。接下来附VVC视频编码框架图并简单介绍一下流程:
可以大致把VVC视频编码流程划分为几个模块,分别是划分模块,预测模块,变换量化模块,环路滤波模块以及熵编码模块。
首先输入原始视频信号,先将每一帧图像划分为不同大小的编码单元,然后对每个编码单元进行帧内预测或帧间预测,再将预测得到的信息与原始视频信息相减得到残差信息,再将残差进行变换、量化得到量化后的变换系数,量化后的变换系数需要进行熵编码传到比特流中,同时因为预测模块需要用到先前的视频信息,而解码端是不知道原始的视频信息的,为保证编解码一致,编码端同样需要对量化后的变换系数进行反量化、反变换的操作,再将反变换得到的残差与预测模块的输出相加,得到相当于解码端输出的视频信息,将该信息输入到帧内预测模块,同时帧间预测也需要用到之前已编码帧的信息,再对刚刚得到的相当于解码端输出的视频信息进行环路滤波,提高重建帧质量,将滤波后得到的重建帧缓存信息输入到帧间预测模块,此处编码端也会输出重建视频信号,并且应该与解码端解码得到的视频信号一致。图中输入到熵编码模块的信息并没有画全,除残差信息外,划分模式,预测模式,变换模式等都需要进行熵编码。
本人也是视频编码小白,有哪里理解的不对或者有需要补充的地方,欢迎大家在评论区留言讨论,后续打算根据流程图继续深入学习各个模块的原理及代码。
转载请注明出处