当前位置: 首页 > 专利查询>微软公司专利>正文

隔行扫描视频的编码与解码制造技术

技术编号:3927784 阅读:122 留言:0更新日期:2012-04-11 18:40
描述了编码和解码隔行扫描视频的各种技术和工具,包括(1)隔行扫描前向预测半帧的混合运动矢量预测,(2)使用运动矢量块模式,(3)在运动矢量预测值的主和非主极性之间选择,(4)参考半帧选择信息和差分运动矢量信息的联合编码和解码,(5)隔行扫描前向预测半帧的宏块的联合编码/解码,(6)使用可用于隔行扫描前向预测半帧的参考半帧数量的信号,以及(7)导出隔行扫描前向预测半帧的宏块的色度运动矢量。各种技术与工具可以组合或者独立地使用。

【技术实现步骤摘要】

描述了隔行扫描视频编码与解码的技术和工具。
技术介绍
数字视频消耗大量存储和传输能力。典型的原始数字视频序列每秒钟包括15或 30帧。每帧可以包括成千上万个象素(也称为pel),其中每个象素代表图像的一个微小元 素。在原始格式中,计算机通常将一个象素表示为一组三个样本,总共24个比特。例如,一 个象素可包括八位亮度样本(也称为luma样本,因为术语“ luminance (亮度)”和“ luma”在 这里可交换使用),它定义了象素的灰度级分量,并包括两个八位色度样本(也称为chroma 样本,因为术语“chrominance (色度)”和“chroma”在这里可交换使用),它们定义了象素 的色彩分量。因而,典型的原始数字视频序列每秒钟的比特数,即比特率可以是每秒5百万 个比特或更多。许多计算机和计算机网络缺乏处理原始数字视频的资源。因此,工程师使用压缩 (也称为编码或译码)来降低数字视频的比特率。压缩通过将视频转换成较低比特率形式 来降低存储和传输视频的成本。解压(也称为解码)从压缩格式重构原始视频的版本。“编 解码器”是编码器/解码器系统。压缩可以是无损的,其中视频质量不受损害,但在比特率 方面的降低受到视频数据的可变性的固有量(有时称为熵)限制。或者,压缩可以是有损 的,其中视频质量受到损害,但在比特率方面可达到的降低是相当显著的。有损压缩经常结 合无损压缩使用_有损压缩建立信息的近似值,而应用无损压缩来表示该近似值。通常,视频压缩技术包括“图像内”压缩和“图像间”压缩,其中图像是例如逐行扫 描的视频帧、隔行扫描视频帧(具有视频半帧的交替行)或隔行扫描视频半帧。对于逐行 扫描帧,图像内压缩技术压缩独立的帧(一般称为I帧或关键帧),而图像间压缩技术参考 前导和/或后续帧(一般称为参考或锚帧)或多个前导和/或后续帧(用于B帧)来压缩 帧(一般称为预测帧,P帧,或B帧)。图像间压缩技术经常使用运动估计和运动补偿。对于运动估计,例如,编码器将当 前的预测帧划分成8x8或16x16个象素单元。对于当前帧的一个单元,找出参考帧中的相 似单元用作预测值。运动矢量指示该预测值在参考帧中的位置。换言之,当前帧的一个单 元的运动矢量指示在当前帧中该单元的空间位置与在参考帧中预测值的空间位置之间的 位移。编码器计算当前单元与预测值之间的逐样本差,以确定残差(也称为误差信号)。如果当前单元大小是16x16,则将残差分成四个8x8块。对于每个8x8的残差,编码器应用一 个可逆的频率变换运算,它产生一组频域(即频谱)系数。离散余弦变换是一 种类型的频率变换。对所得到的频谱系数块进行量化并且熵编码。如果将预测帧用作后续 运动补偿的参考,则编码器重构预测帧。当重构残差时,编码器重构量化过的变换系数(例 如,DCT系数),并且执行反频率变换,如反DCT。编码器执行运动补偿以计算预 测值,并且将这些预测值与残差组合起来。在解码时,解码器一般对信息进行熵编码并且执 行模拟运算来重构残差,执行运动补偿,并且将预测值与残差组合起来。I.在Windows Media Video版本8和9中的帧间压缩微软公司的Windows Media Video (Windows媒体视频)版本8 包括视 频编码器和视频解码器。WMV8编码器使用帧内和帧间压缩,而WMV8解码器使用帧内和帧间 解压。Windows Media Video版本9对许多操作使用类似的体系结构。WMV8编码器中的帧间压缩使用基于块的经运动补偿的预测编码,之后是残留误差 的变换编码。图1和2示出了用于WMV8编码器中的预测帧的基于块的帧间压缩。具体地, 图1示出了用于预测帧(110)的运动估计,图2示出了用于预测帧的经运动补偿的块的预 测残差的压缩。例如,在图1中,WMV8编码器为预测帧(110)中的宏块(115)计算运动矢量。为计 算运动矢量,编码器在参考帧(130)的搜索区域(135)中进行搜索。在搜索区域(135)中, 编码器将来自预测帧(110)的宏块(115)与各种候选宏块进行比较,以找出作为良好匹配 的候选宏块。编码器输出指定匹配宏块的运动矢量(熵编码的)的信息。由于运动矢量值经常与空间围绕的运动矢量的值相关,因此用于发送运动矢量信 息的数据的压缩可以通过从相邻宏块中确定或选择一个运动矢量预测值并且使用该运动 矢量预测值预测当前宏块的运动矢量来完成。编码器可以编码运动矢量与运动矢量预测值 之间的差分。例如,编码器计算运动矢量的水平分量与运动矢量预测值的水平分量之间的 差,计算运动矢量的垂直分量与运动矢量预测值的垂直分量之间的差,以及编码这些差。在通过将差分加到预测值重构运动矢量之后,解码器使用运动矢量,利用来自参 考帧(130)的信息来为宏块(115)计算预测宏块,参考帧(130)是在编码器和解码器处可 用的先前重构的帧。预测很少是完美的,因此编码器通常对预测宏块和宏块(115)本身之 间的像素差块(也称为误差或残差块)进行编码。图2示出了 WMV8编码器中的误差块(235)的计算和编码的示例。误差块(235) 是预测的块(215)和原始的当前块(225)之差。编码器向误差块(235)应用离散余弦变换 (240),得到8X8的系数块(245)。编码器然后量化(250)该DCT系数,得到8X8 的经量化的DCT系数块(255)。编码器将8X8的块255扫描(260)成一维数组(265),使 得系数一般从最低频率到最高频率排序。编码器使用行程长度编码(270)的变更对扫描的 系数进行熵编码。编码器从一个或多个“行程/等级/最后”表(275)中选择熵码,并输出 该熵码。图3示出了用于帧间编码块的对应解码过程(300)的示例。在图3的概述中,解 码器使用可变长度解码(310),利用一个或多个“行程/级别/最后”表315和行程长度解 码(320),对表示预测残差的熵编码的信息进行解码(310、320)。解码器将储存熵编码的信 息的一维数组325反扫描(330)成二维块(335)。解码器对该数据进行反量化和离散反余弦变换(共同在340处),得到重构的误差块(345)。在独立的运动补偿路径中,解码器对 从参考帧的偏移使用运动矢量信息(355)计算预测块(365)。解码器将预测块(365)与重 构的误差块(345)组合(370),以形成重构块(375)。II.隔行扫描视频和逐行扫描视频视频帧包含视频信号的空间信息的行。对于逐行扫描视频,这些行包含从一个时 刻开始继续以光栅扫描的方式通过连续的行直到帧底部的样值。逐行扫描的I帧是帧内编 码的逐行扫描视频帧。逐行扫描的P帧是使用前向预测编码的逐行扫描视频帧,而逐行扫 描的B帧是使用双向预测编码的逐行扫描视频帧。隔行扫描视频的主要方面是整个视频帧的光栅扫描是通过两遍完成的,其中每遍 扫描交替的行。例如,第一扫描是由帧的偶数行构成,而第二扫描是由扫描的奇数行构成。 这导致每个帧包含两个半帧,它们表示两个不同的时间点。图4示出包括上半帧(410)和 下半帧(420)的隔行扫描的视频帧(400)。在帧(400)中,偶数号的行(上半帧)是从一个 时刻(例如,时刻t)开始扫描的,而奇数号的行(下半帧)是从一个不同(通常稍晚)的 时本文档来自技高网...

【技术保护点】
一种方法,包括:对于具有一个或多个亮度运动矢量的宏块,至少部分地基于所述一个或多个亮度运动矢量的极性估计,导出色度运动矢量;以及执行运动补偿。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:TW赫尔科比
申请(专利权)人:微软公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1