type
status
date
slug
summary
tags
category
icon
password
临近期末,很多朋友搞不懂关于视频压缩流程图的阅读,那我就简单出一篇关于视频压缩流程的理解分享,主要是理解流程图的步骤以及过程的前因后果(很表面的分享,深入还需要去了解下相关文献)
📝 视频压缩流程图
上图就是关于视频压缩流程的图,在考试中属于重点,会和量化,运动估计,运动补偿,以及各种编码一起考察,基本上算是多媒体技术入门的重点。
① 在缓存中重构一个经过编解码处理的前一帧的图像,该图像称为运动估计的“参考帧”,编码端和解码端采用同样的参考帧。
可以把这个参考帧理解成视频的关键帧,通俗的讲可以理解成一段电影画面没有大的变化,只有一个人物说话的过程,那么其实这一段视频的时间冗余,可以说只有人的面部变化过程,之后的视频都以这一帧图像作为参考进行,相减的之后的数据量压缩后,就会变得相当微小。
② 计算当前帧中的每一个方块(一般为16*16像素的宏块)和缓存中的参考帧中宏块的最佳匹配块,即进行运动估计计算。用运动矢量表明两个宏块之间的位移。例如,运动矢量=(-4,5),则在当前帧的宏块向左移动4个像素,向下移动5个像素,就可以在参考帧中找到最匹配的宏块。
③ 通过参考帧的最佳匹配块进行运动补偿计算,得到当前帧的最相似图像(运动补偿参考帧)。
④ 然后当前帧和运动补偿参考帧进行差值运算(相对应的像素进行减法运算),得到运动补偿的帧差图像。
这里其实用到了运动估计的知识,这里只做表面理解,深入还需要了解基于块的运动估计,简单说就是一辆车从画面中运动的位移,找到下一张的最佳匹配块(谁跟宏块最像),我们做压缩的时候如果把两张图像序列的车做了对齐再做减法(就是④的过程),那么理想状态下,车不变,我们只需要压缩运动矢量即可,如果不对齐可就麻烦了,数据会暴涨,视频里还有很多很多帧和宏块,数据量就会巨大,压缩也会变的繁琐
⑤ 对帧差图像进行DCT变换和量化。
这里的DCT变换和量化就比较深入了涉及到空间域频率域的内容,感兴趣可以去深入研究,其实简单理解就是变换就是把空间域变到频率域,更容易量化之后才能更容易的对数据进行压缩
⑥ 量化后的系数和运动矢量进行熵编码和传输(这里涉及编码内容);(到这里还没结束)
要注意这里是两部分不要忘了运动矢量,量化后的系数是关于残差图像的,还需要进行宏块的矢量移动才可以还原原来的图像
⑦ 量化后的系数同时被解码,得到的帧差图像和运动补偿参考帧进行加法运算,从而得到一个新的放在缓存中的参考帧。
这里其实是为后续视频下一帧做准备。
一个例子如图(下面用了“之”字型扫描和行程编码)大概还是能看明白的
也可以想一下视频解压缩该如何操作,其实也是一个蛮简单的过程,就是逆过程,图放在这里,可以思考下
- Author:Chailyn
- URL:https://own.chailyncui.blog/article/5679ecc8-e20e-47aa-a545-0fa42651a712
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!