视频编码技术杂谈

人类获取的信息中70%来自于视觉,视频信息在多媒体信息中占有重要地位;同时视频数据冗余度最大,经压缩处理后的视频质量高低是决定多媒体服务质量的关键因素。因此数字视频技术是多媒体应用的核心技术,对视频编码的研究已成为信息技术领域的热门话题。

传统压缩编码建立在仙农信息论基础之上的,以经典集合论为工具,用概率统计模型来描述信源,其压缩思想基于数据统计,因此只能去除数据冗余,属于低层压缩编码的范畴。

伴随着视频编码相关学科及新兴学科的迅速发展,新一代数据压缩技术不断诞生并日益成熟,其编码思想由像素块或基于内容 content-based)。它突破了仙农信息论框架的束缚,充分考虑了人眼视觉特性及信源特性,通过去除内容冗余来实现数据压缩。下面主要讲与之相关的四种编码体系:块编码(H.261Mpeg2H.263H.264AVSVC1等)、对象编码(Mpeg4)、小波编码、分布式编码。

块编码体系

视频序列按时间先后分为一系列帧,每一帧图像又分成(宏)块以进行运动估计和运动补偿,得到运动矢量和残差。对运动矢量进行差分编码,对残差进行变换、量化、zigzag扫描、熵编码,从而得到最终的压缩码流。

去除冗余主要在如下几个模块:RGBYCbCr减少视觉冗余、帧内预测减少空域冗余、运动补偿减少时域冗余、熵编码减少码间冗余、变换量化则保证了在有限的码流下包含最大的信息量。

该编码体系规则简单、高效,便于软硬件实现。发展迅速,也最为成熟,被大多数视频编码标准所采纳。

基于块的操作一个主要缺陷是:将图像固定地分成相同大小的块,在高压缩比的情况下会出现严重的块效应,即马赛克效应。以前的学术论文中,出现了很多去块效应算法。最新的压缩标准H.264中,规定了具体的环状滤波算法,该算法综合使用了运动矢量、残差、量化系数、预测模式等信息确定滤波强度,效果俱佳。一下子学术论文中探讨滤波的少多了,^_^,提出一个更好的算法实在太难。

基于块的操作另一个主要缺陷是:交互性差 ^_^ 这就引出了mpeg4的对象编码。

对象编码体系

MPEG4标准是对运动图像中的内容进行编码,其具体的编码对象就是图像中的音频和视频,称为AV对象。AV对象可以组成AV场景。因此,MPEG4标准就是围绕着AV对象的编码、存储、传输和组合而制定的,高效率地编码、组织、存储、传输AV对象是MPEG4标准的基本内容。

MPEG-4的特点是其更适于交互AV服务以及远程监控。这是一个有交互性的动态图像标准。主要用于三个领域:数字电视、交互式的图形应用(包括内容上的合成技术)、交互式多媒体领域等。MPEG-4提供了标准的技术使其能被整合到产品、分类、内容访问等过程中去,为解决日渐庞大的图像、声音信息的管理和迅速搜索提供了可行性,这是基于块的编码体系所远远不能比拟的。

然而,视频对象分割本身就是一个多义、病态的问题,涉及对视频内容的分析和理解,计算机还不具有观察、识别、理解图像的能力;同时关于计算机视觉的研究也表明要实现正确的图像分割需要在更高层次上对视频内容进行理解。视频压缩中,当然可以运动帧间冗余信息加速对象分割,但对于复杂的运动物体还是困难重重。比如,行进的人,手、腿、身体运动趋势各不相同,甚至还可能伴随面部表情,如何有效的提取一个人体对象出来?如果不考虑整体,只根据运动信息获取局部的甚至没有实际意义的对象,这样的分割对于交互、对于图像检索又有什么意义?如果要在编解码段建立对象模型,这样的模型又怎能保证适合千差万别的实际序列?

因此,尽管MPEG-4 框架已经制定,但至今仍没有通用的有效方法根本解决视频对象分割问题,视频对象分割被认为是一个具有挑战性的难题,基于语义的分割则更加困难。

另:(以下纯属个人理解)

1、  mpeg4引入了对象,就增加了形状编码,也即对象的实现是牺牲码流为代价的。

2、  mpeg4中的运动补偿、变换、量化、熵编码,还是以块为单元,也就是mpeg4还不是完全意义上的对象编码。

3、  目前对象编码只适用于特定的有先验知识的场合,比如交通管理、安防系统、视频会议等。

小波编码体系

见我另一篇文章《小波在图像视频压缩领域中的应用分析》

分布式编码体系

记得原先有网友问过这方面的问题,我居然回答成了分布式视频点播方面的内容,误人子弟,惭愧惭愧。

前述的编码体系,都在编码端充分利用了运动估计和运动补偿技术消除时间冗余,而运动估计模块是非常耗时的,也是编码器实现的瓶颈之一^_^。而分布式编码将运动估计模块从编码器中抹去了,放在了解码端!!!

分布式编码中也有IPB帧,这里只试举IP帧做简单说明。I帧和H.26xMpeg系列的规定没什么区别,都是消除空域冗余。而对于P帧,由于编码端没有运动估计和运动补偿,所以P帧信息也只用到了帧内压缩方式,而且此时只传输了图像的基本轮廓信息(主要是高频和部分低频)。在解码端,参考I帧进行运动估计和运动补偿,结合P帧信息就得到了重构图像。

分布式编码体系的优点:编码器较为简单,为移动视频设备更有效地集成到现有的网络中提供了条件。

缺点也是显而易见的:1、编码端没用到运动补偿,压缩效率远不及传统的编码方式(虽然理论证明可以无限逼近)。2、编码端没有重建路径,错误扩散严重,I帧的间隔必须比较小。

注:

以上只是我个人的理解,可能划分并不确切,或者漏掉了某些编码体系。各编码体系并不是相互独立的。比如小波编码体系可以用到对象的概念,分布式也可以用到小波变换……


到目前为止,小波的最多应用一直是数字图像压缩。它们是新JPEG2000数字图像标准的核心。使用小波变换的优势主要有如下几个方面。

1、基于小波变换的方法能有效地保留原始图像的细节和边缘,重建图像时不会造成“振铃”效应

2、基于小波变换的方法采用多尺度分析,在图像重建时,加入的细节越多,重建的图像也就越清晰,因此在图像分级传输方面有着天然的优势。

3、对于高分辨率或纹理简单的图像,固定的8×8DCT变换不能有效的降低空间冗余性;而采用多尺度小波变换,子带越多,能量就越集中,压缩率越高。

4、某些小波变换(比如5/3滤波器)是正交的,可用于无损压缩。而DCT系数取近似值,变换是有损的,H.2644×48×8整数变换也是如此。

然而,在视频压缩方面,小波的应用却步履艰难。

目前,基于小波变换的视频压缩算法可分为三类:

1)基于空域运动补偿的小波视频压缩(MC-DWT);

2)基于变换域运动补偿的小波视频编码(DWT-MC);

3)含运动补偿的三维小波视频编码(MC-3DWC);

    MC-DWT算法在空间域进行运动估计和运动补偿,对残差图像采用小波变换进行编码。由于运动补偿后的残差图像不同于传统的自然图像,若采用一般图像的小波变换不能显著地提供压缩效率。另一个缺点是预测误差帧中存在明显的块边界。

    DWT-MC算法首先对图像进行小波变换,在变换域中进行帧间运动估计和运动补偿,对残差信号再进行编码。由于小波变换不具有空间不变性,即物体在空间上平移,却在小波域产生了非平移现象,这使得在小波域内无法达到精确地估计而导致大量的补偿误差。

    MC-3DWC它的基本原理是,在数十幅连续画面中进行三维小波计算,获得包括时间信息在内的全局分析结果,然后按照从低频到高频的顺序排列得到的分析结果。这样,一次压缩的结果就可能被用于不同带宽条件的多种传输场合。例如,在带宽较低的场合,只要传输低频分量,就可以获得相当好的画面;如果带宽资源充裕,就可以传输高频分量,获得更多的细节。但该方法难点在于:需要巨大的视频缓存区域、巨大的运算资源

对h.264压缩视频码流中i帧的提取(firstime)

这个问题要说清楚还是有点复杂:首先判断 NALU 类型是否是 5,如果是,那么以后连续出现的 NALU 类型为 5 的 NALU 就属于 IDR 帧(一种特殊的 I 帧);如果 NALU 不是 5,则要进一步判断 slice_type 是否是 7,如果是,那么连续出现的 slice_type = 7 的 slice 就属于 I 帧;如果 slice_type = 2,那么就要判断与当前 slice 同属一帧的 slice 是否都是 I slice,如果都是,那么这些 slice 就属于一个 I 帧。当然这必须是在码流没有错误的情况下才可行。


实际应用中,码流中一般不会出现复杂的情况,所以可以直接判断 slice_type   是否等于 2 或 7 就可以了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coloriy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值