NMM视频技术(旧)

 找回密码
 成为会员
搜索
查看: 3836|回复: 2

请教几个关于视频编码原理的问题

[复制链接]
发表于 2010-5-28 00:10 | 显示全部楼层 |阅读模式
h264什么的视频编码原理本质上都没有什么变化,看了基本h264avc的书,倒是有点糊涂了,请高手指点下:

什么是“帧内预测编码”*(可否理解为类似于jpeg那样对单帧进行压缩的编码)
什么是“熵编码”(根据x264某个成员的博客文章,我理解其为通过快速傅立叶换边的无损压缩编码,类似于7z的compress和decompress)
什么是“次像素精度”(1/8,1/4之类的,把每个像素分割为不同的参数进行运动矢量合成?即渐变等场景使用?)
运动矢量是否只能通过切割宏块方式进行?最终通过环路滤波,去方块滤波还原图像?


感谢您的解答!
发表于 2010-5-28 12:33 | 显示全部楼层
帧内预测是264首次提出的并有专利保护的技术,它和JPEG是不一样的,另外JPEG是静态图像coding标准,不要和video的标准混淆。帧内预测的方法就是在不同空域而不是时域找匹配帧,形成残差块,与空域也就是帧间预测的不同之处此处没有运动矢量,而是预设的几种模式去竞争最优解。帧内预测的好处在于帧内预测形成的是IDR帧,对于error propagation和seeking很有好处。

熵编码是无损的,但不是说通过FFT去实现的。FFT是变换域编码的一部分和熵编码无关。熵编码的并非视频独有,它是属于数据压缩和信息论领域的东西,最简单的熵编码就是Huffman Code,在264中常用的CABAC属于算术编码,类似于根据source的概率分布形成编码表。实际中由于source的概率分布其实是未知的,所以需要一定得先验统计条件和语境(context) 去生产概率表再用于生成codeword也就是编码后的结果。传统的文件压缩比如zip/7zip,rar都属于熵编码的范畴。

次像素精度指的是帧间预测时将源图像upsample到更大的一个分辨率进行预测的算法。由此不难知道这样upsample生产的图像的某些像素对应于原图是小数位置,根据upsample的factor不同就有1/2精度,1/4精度之说了。实际算法中,如果得到小数精度的MV,预测块的形成是用小数精度周围的整数像素interpolate得到,不同的标准有规定不同的interpolation filter。

MV切割宏块方式是什么意思?现代视频编解码标准大体上都基于Macroblock,那么MV也就是以MB为整体的,每个MB都有一个MV,这个MB中的所有像素都遵循这个MV来做偏移。
编码器的预测环路里有重建环路,重建环路完全模拟解码器的方式(除了没有熵解码器),重建的过程大体上是拿经过变换和量化的残差块做反量化+反变换,得到重建的残差块,然后拿该残差块加上根据MV和ref帧index得到的预测块,这个块经过in-loop filter后就是重建块了。之后的预测编码使用的重建块做参考块,而不是输入的源文件,因为在解码端并没有源文件存在,如果使用源文件做预测会造成编解码器的mismatch。

多说两句,你说自己看H264视频编解码原理本质都没什么变化,但我从你的提问中可以看出你根本对视频编解码这个领域没有最基本的认识,如果真想学这方面知识的话,我希望你还是好好回归书本,先入了门再说。
 楼主| 发表于 2010-5-28 15:37 | 显示全部楼层
本帖最后由 delectate 于 2010-5-28 15:39 编辑

感谢ls的解答。
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

小黑屋|手机版|NMM视频技术

GMT+8, 2025-5-5 23:30 , Processed in 0.071642 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表