用于视频图像的误差消除方法和装置的制作方法

文档序号:7580062阅读:238来源:国知局
专利名称:用于视频图像的误差消除方法和装置的制作方法
技术领域
本发明背景1.本发明的领域本发明涉及视频编码和解码,尤其涉及用于在进行视频编码和解码中用于消除误差的方法和装置。
2.相关技术的描述音频与视频压缩和解压缩技术的进步以及超大规模集成技术一起已经创建了新能力和新市场。这些新能力和新市场包括在计算机中和在小光盘上的数字声频和视频的存储,以及从直播卫星上对数字音频和视频信号的发送。
这种进步的实现在某种程度上是借助于在压缩和解压缩的不同方案之间提供兼容性的国际标准。这种标准之一是称之为″JPEG″(联合摄影专家组)的标准。以后开发的标准称之为″MPEG1″。这是由运动图象专家组同意的第一组标准。还有另一个标准是″ITU-TH.261″,是特别用于视频电讯会议的一个视频压缩标准。虽然每一标准都是针对一种具体的应用设计的,但是所有的这些标准有许多共同之处。
MPEG1是针对储存和分配音频和动态视频设计的,强调的是图象质量。其特征包括随机存取,快进和反向重放。MPEG1用作视频激光唱片和许多视频游戏的基础。用于MPEG1的原始频道带宽和图像清晰度是基于随即可得到的记录介质确定的。MPEG1的目标是使用12厘米直径的光盘以1.416Mbps的比特速率重放所记录的数字声频和视频,其中1.15Mbps被分配给视频。
在MPEG1标准之下产生的压缩比特数据流隐含着去定义用于这种比特数据流的解压缩算法。但是,该压缩算法能够在MPEG1标准的规程内改变,从而使得可能实现与压缩比特数据流的产生有关的特有优点。
以后开发的MPEG2标准把MPEG1的基本概念扩展到覆盖一个更宽的应用范围。虽然MPEG2标准的主要应用是以4Mbps到9Mbps的比特率的广播质量视频的所有数字传输,但是似乎该MPEG2标准对于其它应用也可以是有用的,例如在数字视盘(DVD)上全长度动画的存储,具有的清晰度至少几乎是和由目前12英寸直径激光唱片提供的清晰度一样好。
MPEG2标准取决于三种类型的编码图象。I(″帧内″)图象是作为一个独立的静止图象场或帧编码。这种I图象允许在一个视频信息流中有随机存取点。如此,I图象将每秒大约出现两次。I图象还被使用在场景切割(例如在动画面的电影中)出现的场合。
P(“预测”)图象是关于最近的在前I或P图象的场或帧编码,导致正向预测处理。通过使用运动补偿,P图象允许比I图象更大的压缩,并且还用作对于B图象和未来的P图象的一个基准。
B(“双向”)图象是使用最靠近(相对于显示次序)的过去和未来的I或P图象作为基准的场或帧产生双向预测。通过对两个图象进行平均,使B图象提供最大的压缩并且增加信号噪声比。这种I、P和B图象在转让给Sony公司的美国专利5,386,234和5,481,553中被更彻底地描述,并且所说的这两个美国专利在此被引作参考。
一组图象(″GOP″)是一个或多个编码的图象系列,协助随机存取和编辑。GOP值是在编码过程中构成。因为I图象是更靠近在一起,所以该I图象的GOP值较小,对于运动的响应更好。但是压缩级别却较低。
在一个编码的比特数据流中,GOP必须以一个I图象开始并且可以按照任何顺序跟随随意数目的I、P或B图象。在显示次序中,GOP必须以I或B图象开始而以I或P图象结束。因此,最小的GOP尺寸是单一I图象,而最大的尺寸是不受限制的。
以更详细方式,

图1示出一个MPEG2编码器100的简化方框图。在离散余弦变换器102和运动矢量发生器104上提供了包括宏数据块信息和运动补偿信息的视频信息流。每个8×8数据块(象素或误差项)被离散余弦变换器102处理,以便产生水平和垂直扫描频率系数的一个8×8数据块。量化器106量化该频域误差系数的8×8数据块,从而限制允许值的数目。
利用人的量化误差的知觉,较高的频率通常被量化得比越低的频率要粗糙。这导致许多频域误差系数是零,尤其在较高的频率。
量化器106的输出由一个锯齿波扫描器108处理,以直流成分开始,依照频率增加的次序产生一个量化频率系数的线性数据流。这就产生连续的零系数的长段(long runs),并被送到可变长度编码器110。
该量化频域误差系数的线性数据流首先由该可变长度编码器110作行程编码。在该行程编码过程中,该量化频域误差系数的线性数据流被转换成一系列行程幅度(即行程量级)对。每个行程幅度对指示零系数的数目以及结束该行程的非零系数的幅度。
例如,假定一个误差系数的字符串如下(1)原始误差系数000060000038因此,当该误差系数的字符串被可变长度编码时,根据上面描述的编码规则,获得下列编码行程量级对(2)编码的行程量级对(4,6)(5,3)(0,8)当然,随着零系数的数目增加,该误差系数数据将由该可变长度编码更有效地压缩。
在可变长度编码器110编码该行程量级对之后,其随即对与该行程量级对作Huffman编码。在该Huffman编码中,根据该行程量级对是否包括在通常出现的行程量级对的一个列表中而不同地编码该行程量级对。如果该正在被Huffman编码的行程量级对是在通常出现对的列表中,则随后它将被编码成对应于该行程量级对的一个预定的可变长度码字。另一方面,如果该行程量级对不是在该列表中,则该行程量级对被编码为一个预定的符号(例如一个逸出符号)跟随着一个固定长度码,以便避免长码字并且降低实现它的费用。
可变长度编码器110的行程编码和Huffman编码的输出提供一个编码的视频比特数据流。图象类型确定电路112确定该编码的帧是否是一个P图象、I图象或B图象。在P或I图象的情况下,图象类型确定电路110使得运动矢量发生器104产生一个适当的运动矢量,随即提供到可变长度编码器110。这种运动矢量被随即编码并且与可变长度编码器110的输出结合。
参考图2和3,解释运动补偿的概念。运动补偿通过除去在图象之间的时间冗余度而改进P和B图象的压缩。对于MPEG 2,其操作在宏数据块等级。例如,在其它宏数据块之中一个在前的帧200包括一个宏数据块202,由16行的16个象素(称之为″象素″)组成。运动补偿依靠这种事实,即除场景切割外,大多数的图像从一帧到另外一帧保持在相同的位置,而其它图像仅移动一个短距离。因此,这种运动能够被描述为一个二维运动矢量,该运动矢量指定从一个先前的解码帧的何处检取一个宏数据块以便由此预测一个当前宏数据块的象素值。所以,一个当前帧302的宏数据块300能够由一个二维运动矢量304所修改的宏数据块202(图2)表示。可以理解,这种宏数据块300可以是在可以不在先前帧200中的环绕宏数据块202的相同的边界之内。
在使用运动补偿压缩一个宏数据块之后,其既包括预测(通常称之为″运动矢量″)量,又包括在基准宏数据块和正在编码的宏数据块之间的暂态差(通常称之为″误差项″)。
返回到图1,当从可变长度编码器110输出的这种编码的视频比特数据流被记录在例如光盘的一个记录介质上、并且如此的记录信息被重放用于本地使用时,虽然不是完全无错误,但是该解码的(编码的)视频比特数据流通常是错误充分地少,使得不要求附加技术来补偿在该解码视频比特数据流中的误差。这样一个编码的视频比特数据流通常被称之为一个″节目数据流″。当从可变长度编码器110输出的编码视频比特数据流由例如卫星或电缆传输系统传输时,或者直接地来自可变长度编码器110或者来自在其上已经记录了编码的视频比特数据流的记录介质,都将增加在该解码的视频比特数据流中的误差的可能性。这样的一个编码的比特数据流通常被称之为″传输数据流″。
因为当解码该编码的视频比特数据流信号时,传统的错误检测和校正系统,例如隔行系统,要求一个有效的额外开销量以及数据处理量,所以当前视频解码系统依靠误差消除作为相对的纠错。与尝试重建损失的或恶化的数据的纠错相比,误差消除的目标是产生能够替代该损失或者恶化数据的数据,其中在由该产生的数据建立的图像中的任何偏差(通常在宏数据块级别)都不大可能由一个观看依靠这样的误差消除产生的视频图像的观众所察觉。
因此,希望提供一种方法和装置用于把视觉效果的误差消除到观众察觉上可以忽略的程度,并且这种方法和装置适应不同类型的可用信息以及可以用于提供这种误差消除。
本发明概述本发明的一个目的是提供一种方法和装置用于在压缩的视频信号解码期间进行误差消除。
本发明的进一步的目的是提供一种方法和装置,用于检测出不产生非法句法的错误。
本发明的一个特征是使用运动矢量的暂态预测,以便产生一个宏数据块,其将有效地消除在一个数据流中的误差。
本发明的一个特征是把一个当前宏数据块的DC系数与一个预测系数进行比较,以便确定已经出现的一个不产生非法句法的误差。
本发明的优点是改进对于在一个数据流中的误差进行误差消除的质量。
本发明的进一步的优点是改进对于在一个数据流中的误差进行检测的质量。
根据本发明的一个方面,用于消除误差的一个装置包括一个检测器,用于检测在表示当前宏数据块的数据中出现的误差;一个系统,用于根据在当前宏数据块的正向基准帧和用于该当前宏数据块的正向基准帧的一个解码的运动矢量之间的差值而估计至少一个运动矢量;以及一个系统,用于根据该估算的至少一个运动矢量而估计该当前宏数据块。根据本发明的另外一个方面,一种用于消除误差的方法包括步骤检测在表示当前宏数据块的数据中出现的误差;根据在当前宏数据块的正向基准帧和用于该当前宏数据块的正向基准帧的一个解码的运动矢量之间的差值而估计至少一个运动矢量;以及根据该估算的至少一个运动矢量而估计该当前宏数据块。
当参照下列附图以及描述时,本发明的这些以及其它目的、特征以及优点将变得显见。
附图的简要描述图1是MPEG 2视频编码器的一个简化方框图。
图2是在一个先前帧之内的宏数据块的实例。
图3是在一个当前帧之内的宏数据块的实例。
图4是本发明MPEG 2视频解码器的简化方框图。
图5是本发明运动补偿系统的一个框图。
图6是一个状态图,示出地址生成的参考组块的取得控制以及图5的控制单元。
图7是流程图,表示用于根据本发明的估计宏数据块的方法。
图8是流程图,表示用于根据本发明的估计在暂态域中的运动矢量的方法。
图9是流程图,表示用于根据本发明的估计在空间域中的运动矢量的方法。
图10是流程图,表示使用估算的运动矢量估计宏数据块的方法。
图11是流程图,表示不使用估算的运动矢量估计宏数据块的方法。
优选实施例的详细描述参考图4,示出MPEG 2解码器400的一个框图。解码器400使用两个内部总线,GBUS 402和RBUS 404。在本发明的该优选实施例中,GBUS402是一个64位总线,被用于在DRAM 406和在下面描述的解码器400的特定数据块之间的数据传送。在本发明的该优选实施例中,DRAM406是一个静态DRAM,尽管可以使用其它类型的存储器。RBUS 404是一个8比特总线,主要是用于通过简化的指令系统计算(″RISC″)CPU408控制特定的数据块。如在下面更具体地描述的那样,RISC CPU 408被耦合到GBUS 402和RBUS 404,其操作控制特定的数据块的功能,而且执行视频比特数据流解码的一部分。
解码器400包括一个耦合到GBUS 402和RBUS 404的多路信号分解器410。类似地,视频解码器412、音频解码器414、主机接口416、信箱单元418和辅助图象/垂直消隐期解码器420的每一个都被耦合到GBUS 402和RBUS 404。RBUS控制器422、NTSC/PAL编码器424、视频后置滤波器/屏幕显示系统426和音频时钟产生器428都被耦合到RBUS404。音频时钟产生器428输出端一个时钟信号ACLK。存储控制器430被耦合到GBUS 402。
提供时钟信号SCLK的时钟产生器432耦合到主机接口416。信箱单元418的输出被提供到屏幕显示系统426的视频后置滤波器。辅助图象/垂直消隐期解码器420被耦合到屏幕显示系统426的视频后置滤波器,其系统输出到NTSC/PAL编码器424。辅助图象/垂直消隐期解码器420被耦合到屏幕显示系统426的视频后置滤波器。主机处理器434与主机接口416连接。
在本发明的优选实施例中,当被用于DVD中时,辅助图象/垂直消隐期解码器420和信箱单元418是硬布线单元。信箱单元418执行对通过GBUS 402提供的一个视频比特数据流的一个4抽头垂直滤波和二次取样,并且操作控制该视频后置滤波器/屏幕显示系统426。辅助图象/垂直消隐期解码器420将该辅助图象(″SP″)和在该视频比特数据流中的垂直消隐期(″VBI″)信息解码。通常,辅助图象比特数据流包括字幕或菜单项。例如包括karaoke和菜单亮光区。因为VBI比特数据流和SP比特数据流在句法和功能上非常相似(在MPEG 2规范之下),所以用于解码比特数据流的两个类型的功能被结合到单一辅助图象/垂直消隐期解码器420中。所以在本发明的优选实施例中,VBI比特数据流的解码出现在垂直消隐过程中,而SP比特数据流解码出现在动态显示期间。
在本发明的优选实施例中,在非DVD操作中,该辅助图象/垂直消隐期解码器420解码该比特数据流并且显示在屏幕上(″OSD″)。但是在DVD操作中,OSD比特数据流不由屏幕显示系统426的视频后置滤波器解码。
RISC CPU 408将该视频比特数据流解析,以便控制解码器400。RISC CPU 408还部分地将该视频比特数据流(例如解码比如标题的高层数据)解码并且通过RBUS 404控制在解码器400中的各种其它单元。解析的一部分也由辅助图象/视频消隐期解码器420执行。更详细地,RISC CPU 408能够被用于通过RBUS 404改变一个SP窗口的位置。所以,用户能够通过一个到CPU 404的命令,以y坐标作为一参数而上下移动SP窗口。
信箱单元418实质上是一个具有可下载系数的垂直抽样滤波器。信箱单元418抽取具有4∶3比例的一个帧的有效画面。因此对于PAL序列来说,信箱单元418把一个720×576帧转换成一个720×432帧。对于NTSC序列来说,信箱单元418把一个720×480帧转换成一个720×360帧。但是,在两者情况中的有效的图象面积都是相对于一个显示区集中的。
主机处理器434和RISC CPU 408使用DRAM 406以便交换信息、命令和状态信息。在本发明的优选实施例中,处理器434和CPU 408具有彼此中断的能力。操作中,CPU 408提供一个主机命令分析程序执行来自主机处理器434的命令。在一个命令的执行期间由主机处理器434执行的典型顺序是1.主机处理器434把一个命令写到DRAM 406并且中断CPU 408。
2.CPU 408来自DRAM 406读出命令和参数。
3.CPU 408通过把一个状态变量写入到DRAM 406承认该命令。
4.CPU 408的命令分析程序解析该命令并且执行该命令。
5.一旦结束该命令,CPU 408中断主机处理器434以便报告状态。另外,CPU 408针对每个场同步轮询一个DRAM命令缓存器(没示出)。该缓存器是一个环形缓存器,其中写指针由主机处理器434保持而读指针由CPU 408保持。
视频解码器412包括一个反余弦离散的变换器、可变长度解码器436、运动补偿单元438和离散余弦反变换器440。视频解码器412解码通过GBUS 402接收的一个编码的视频数据流,并且通过RBUS 404提供一个解码的数据流到NTSC/PAL编码器424。NTSC/PAL编码器把解码的数据流转换成一个模拟信号,适合于在具有NTSC和/或PAL信号输入端的电视监视器上显示。
多路信号分解器410在数据输入解码器400上工作。特别地,这种数据是处于数据包的形式,并且包括音频、视频并且多路转换包的其它数据流。多路信号分解器410选择期望的音频数据包、视频数据包和其它期望的信息包,但是抑制在该视频比特数据流中的其它数据包。例如,表示几种语言的音频数据包可以存在于该视频比特数据流中。基于来自主机处理器434的命令,多路信号分解器410只选择那些对应于被选定用于表现相应视频数据包的音频数据包。
主机接口416提供用于主机处理器434的无隙的接口。RBUS控制器422在RBUS 404上发送信息并且作为一个用于RBUS 404的裁决器。时钟产生器432提供一个时钟信号SCLK到在解码器400中的各种单元,而音频时钟产生器428提供一个时钟信号ACLK到一个数字-模拟转换器(没示出),该数字-模拟转换器通过GBUS 402接收来自音频解码器414的数字声频信号。这些数字声频信号被转换成其能够被人感觉的模拟信号。
现参考图5解释图4的视频解码器412的运动补偿系统。运动补偿单元500包括一个地址产生和控制单元502。该地址产生和控制单元502对应于图4的存储控制器430。地址产生和控制单元502接受来自可变长度解码器436的运动矢量并且计算参考宏数据块的一个初始地址。基于这种计算,地址产生并且控制单元502发出一个数据传送请求到存储控制器单元430。在本发明的优选实施例中,数据传送在对准在8字节边界的64比特(8字节)分段出现。当数据从DRAM 406返回时,该数据被锁存在该运动补偿单元500中。这些锁存数据的每一8比特单元被随即运行通过水平并且垂直半象素滤波器504,并且该产生的数据被存储在预测RAM(随机存取存储器)506中。
由于基准数据块的初始地址可能不是对准在该8字节定位地址,所以在预测RAM 506的输入端需要进行多路复用。对于I图象来说不需要预测,因此该运动补偿单元就处在空闲状态。但是对于P和B图象来说,是需要预测数据以便由解码该重建单元508重建解码的图象数据。在B图象的情况下,该预测数据是通过对于两个这种预测进行平均而获得的,就是说在此时的半象素滤波器的输出和来自预测RAM 506的在一个正向预测之后存储值进行平均而获得的。重建单元508支持该半象素滤波器504进行的平均。
一个估计RAM 510保存在该离散余弦反变换器440中变换的系数数据。此时的运动补偿单元500发出一个数据传送请求并且开始重建。该重建主要地包括把来自存储在估计RAM 510中的离散余弦反变换的输出的符号数目添加到用于非帧内数据块的半象素滤波器504的输出(存储在预测RAM 506中)。但是对于帧内数据块来说,不需要该添加。在这种情况下,当出现图象的重建时,在其被锁存在该重建单元508的输出端以前,该加法器输出被削波。
现参考图6的状态图,解释一个状态机600,其表示该地址产生和控制单元502的关于从DRAM406传送基准图像数据的功能以及一个宏数据块的结构。从一个起始状态602开始,状态机600前进到一个获取地址状态604。如果没有运动补偿被用于构成该宏数据块,则状态机600进入一个y0等待状态606。如果只有反向运动补偿被使用,则状态机600进入状态608以便获取或取得一个先前的宏数据块b,其将用作一个基准宏数据块。但是如果正向运动补偿被使用,则随即状态机600进入状态610以便获取或取得一个正向宏数据块f,其将用作一个基准宏数据块。状态机600随即进入y0等待状态606。如果基于正向宏数据块f以及先前的宏数据块b两者而构成该宏数据块,则状态机600随即从状态610进入到状态608,以便也获取或取得一个先前的宏数据块。在这样一个实例中,正向以及先前的宏数据块都将用作基准宏数据块。
在状态606,状态机600等待关于一个基准宏数据块或几个宏数据块的将要被接收的亮度数据。在状态612,重建将要被构成的宏数据块的亮度部分。在状态614,状态机600等待关于一个基准宏数据块或几个宏数据块的将要被接收的色度数据。在状态618,出现将要被构成的宏数据块的色度部分的重建。一旦色度数据重建结束,状态机600进入到状态620,等候一个指令以便构成一个新宏数据块。
类似于先前构成宏数据块的情况,状态机600随后获取地址1状态622。如果没有运动补偿被用于构成该宏数据块,则状态机600进入一个y1等待状态624。如果只有反向运动补偿被使用,则状态机600进入状态626以便获取或取得一个先前的宏数据块b1,其将用作一个基准宏数据块。但是如果正向运动补偿被使用,则随即状态机600进入状态628以便获取或取得一个正向宏数据块f1,其将用作一个基准宏数据块。状态机600随即进入y1等待状态624。如果基于正向宏数据块f1以及先前的宏数据块b1两者而构成该新宏数据块,则状态机600随即从状态628进入到状态626,以便也获取或取得一个先前的宏数据块b1。在这样一个实例中,正向宏数据块f1以及先前的宏数据块b1都将用作基准宏数据块。
在状态624,状态机600等待关于一个基准宏数据块或几个宏数据块的将要被接收的亮度数据。在状态630,重建将要被构成的宏数据块的亮度部分。在状态632,状态机600等待关于一个基准宏数据块或几个宏数据块的将要被接收的色度数据。在状态634,出现将要被构成的宏数据块的色度部分的重建。一旦色度数据重建结束,状态机600则回到起始状态602。
随着图6描述的状态转移,一旦如在状态604或622中获得一个地址,就进行取样以便确定是否需要对于一个宏数据块作运动补偿。对于需要运动补偿基准计算的编码的图象来说,状态机600将等待,直到可变长度解码器436的运动矢量FIFO存储器不被空的为止。地址产生和控制单元502随后产生一个对于运动矢量的请求。一个用于X(水平)而一个用于Y(垂直)的运动矢量成分的两个连续请求被作出。一旦该地址产生和控制单元502获得两个运动矢量的成分,则计算出该基准数据块的地址。地址产生和控制单元502随后发送一个对于数据传送的请求到存储控制器单元。
如上所述,当运动矢量指向一个子象素位置而不是一个准确的象素位置时,为了更精确地表示一个P或B图象,需要产生半象素数据。
在本发明的优选实施例中,误差消除的最小单元是一个数据片一个数据片包括一系列连续的宏数据块。为了消除这种误差,使用暂态预测或空间预测估算运动矢量。在空间预测的情况下,来自成功解码宏数据块的象素被复制以便使用在对于具有一个数据误差的宏数据块的解码中。在暂态预测的情况下,来自成功解码宏数据块的运动矢量被用于预测一个新运动矢量场,以便将该具有一个数据误差的宏数据块解码。
更详细地说,如果在对于一个编码的视频比特数据流进行解码的过程中,一个帧K丢失一个宏数据块或一个宏数据块的一部分(如由于一个数据误差),则该基本概念是如果如果存在一个来自帧K-2的一个目标的运动(即在帧K前两帧),则能够假定该运动将很可能从帧K-2继续直到帧K。因此,假定该运动将基本上是线性的。基于这种假定,本发明估算象素和运动矢量,这种估计方法取决于对于这种估计来说可用的数据。
在使用这种估算象素和/或运动矢量中,实际的误差消除被推迟到以后的一个数据片出现为止。当测到一个误差时,这种误差连同其位置一起被记录。特别地,关于这种误差和其位置的数据被写入到一个寄存器,并且在随后的第二或第三数据片之后,发出一个中断指令,以便实现使用估算的象素和/或运动矢量的该宏数据块的处理。在本发明的优选实施例中,当被应用到隔行视频图象时,尽管每宏数据块的四个运动矢量可供使用,但是只有两个运动矢量被利用,详细描述如下。
现在参考图7,更详细地解释本发明的误差消除。一旦已经检测到一个误差并且已经发出一个中断指令,则误差消除算法起始于步骤700。该运动补偿单元438首先在步骤702在时域试图估算运动矢量。图8示出这种一种方法。该算法起始于步骤800。在步骤802,运动补偿单元438确定是否可以得到一个解码的运动矢量用于由矢量p定位的宏数据块的正向基准帧。该运动矢量被指定为MV(k-m,
),其中k是当前帧,而m是在当前帧和正向基准帧之间的索引差值。如果否,则不执行在该时域中的运动矢量估计并且该算法到步骤804,指示出是一个失败的尝试。如果可得到一个解码运动矢量用于在由该矢量p定位的宏数据块的一个正向基准帧,则算法进到步骤806,确定是否可得到用于在下列二者之间的差值的一个解码运动矢量,这二者是(1)在由该矢量p定位的宏数据块的正向基准帧;以及(2)在由该矢量p定位的宏数据块的一个正向基准帧的一个解码运动矢量;其中这种解码的运动矢量是由MV(k-m,
)表示的。如果否,该算法进入步骤804以便指示出是一个失败的尝试。如果可得到,则算法进入步骤808,在该步骤确定一个用于在由矢量p定位的宏数据块之处的当前帧、第k个帧的估算运动矢量。如此估算的运动矢量取值相等于在下列二者之间的差值(1)在由该矢量p定位的宏数据块的正向基准帧;以及(2)在由该矢量p定位的宏数据块的一个正向基准帧的一个解码运动矢量。该算法随后进入步骤810,指示在该时域中的一个成功的运动矢量估计。
返回图7,在步骤704确定在时域中的运动矢量估计是否成功。如果是,则算法进入步骤706,其中基于该估算的运动矢量把用于对主题宏数据块进行估计的运动矢量更新。如果在时域中的运动矢量估计是不成功的,则算法进入步骤708,在空间域执行运动矢量估计。用于如此估计的算法在图9中示出。该算法起始于图9的步骤900并且进入步骤902,其中确定是否可得到用于定位在该正在估计的宏数据块之上的宏数据块的一个解码的运动矢量。这种运动矢量是由MV(k,
(1,0))表示的。如果否,则在步骤904指示出是一个失败。如果可得到用于定位在该正在估计的宏数据块之上的宏数据块的一个解码的运动矢量,则用于当前帧、由矢量p-MV(k,
)定位的宏数据块之处的第k帧的运动矢量在步骤906被估算为等于该解码的运动矢量,定位在紧邻该正在估计的宏数据块之上的宏数据块运动矢量MV(k,
(1,0)),其中(1,0)是指示一个行索引为1而列索引为0的矢量。该算法随后进入步骤908,指示在该空间域中的一个连续的运动矢量估计。
再一次返回图7,在步骤710,作出是否已经成功地在空间域实现一个运动矢量估计的确定。如果已经作出这样的一个确定(步骤908),则随后在步骤706更新用于该当前宏数据块的运动矢量。随后在步骤712仅使用估算的运动矢量估算该当前宏数据块,不论该运动矢量是在步骤702在时域估算的或是在步骤708在空间域估算的。
如在图10中示出,在步骤1000开始利用该估算的运动矢量估计宏数据块。在步骤1002,用于当前帧的估算的宏数据块、由估算的运动矢量p-MB(k,
)定位的宏数据块之处的第k帧被估算为等于下面两者的差值的解码的宏数据块(1)由矢量P定位在该宏数据块的正向基准帧;(2)用于当前帧、由矢量p定位在该宏数据块之处的第k帧的估算运动矢量。解码的宏数据块被指定为MB(k-m,
-MV(k,
)),其中m是在当前帧和一个正向基准帧之间的帧索引差值。一旦在步骤712完成该当前宏数据块的估计,该算法在步骤714结束。
返回到图7的步骤710,如果在空间域中的运动矢量估计不成功,则在步骤716在不使用一个估算的运动矢量的条件下估算当前宏数据块。步骤716在图11中详述。在图11中,不使用一个估算的运动矢量的宏数据块估计起始于步骤1100。在步骤1102,确定是否可得到用于由矢量p,MB(k-1,
)定位的当前帧(第k帧是该当前帧)前面的帧的宏数据块。如果可得到这样的宏数据块,则在步骤1104把由矢量p定位的该当前宏数据块估算为相等于用于在由该矢量p定位的当前帧前面的帧的宏数据块。随后算法在步骤714结束。
如果得不到用于由矢量p定位的当前帧(第k帧是该当前帧)前面的帧的宏数据块,则在步骤1106确定是否可得到用于由矢量p定位但是由在同一个列中-1行索引、MB(k,
-(1,0))是P的当前帧的宏数据块,其中(1,0)是把一个行指数指示为1和列指数指示为0的一个矢量。如果可得到这样的一个宏数据块,则在步骤1108把当前宏数据块(用于当前帧、由矢量p定位的第k帧)估算为相等于用于由该矢量p定位的当前帧的宏数据块,但是由负1行和同一个列、MP(k,
-(1,0))索引。随后算法在步骤714结束。
如果确定得不到用于由矢量p定位但是由在同一个列中-1行索引的当前帧的宏数据块,则在步骤1110确定是否可得到用于紧邻在将被估算得宏数据块之上定位的宏数据块的解码的宏数据块MB(k,p+(1,0)),其中(1,0)是把一个行指数指示为1和列指数指示为0的一个矢量。如果可得到用于紧邻在将被估算得宏数据块之上定位的宏数据块的解码的宏数据块,则在步骤1112把由矢量p定位的宏数据块之处的用于该当前帧、第k帧的估算的宏数据块估算为相等于用于紧邻将要估算的宏数据块之上定位的宏数据块的解码的宏数据块,MB(k,
+(1,0))。该算法随后在步骤714结束。在得不到用于紧邻在将被估算得宏数据块之上定位的宏数据块的解码的宏数据块的情况下,则没有估算运动矢量的宏数据块估计失败,如步骤1114表明。在这种情况下,该宏数据块可被保持为空白。
应该理解,尽管本发明已经针对编码的视频比特数据流的解码作出了描述,但是本发明也适用于一个视频比特数据流的编码,其中在编码期间或在之后作误差检测,并且该误差在记录或传输之前被消除。
尽管只是详细描写了特定的实施例,但是本专业的普通的技术人员将无疑理解许多不背离于此指教的改进。但是所有的这种改进都包含在所附的权利要求中。
权利要求
1.一种在对编码的视频比特数据流解码的同时消除误差的方法,其中的当前宏数据块由基准帧的数据和至少一个运动矢量表示,该方法包括步骤检测(700)在表示该当前宏数据块的数据中的一个误差的出现;根据在当前宏数据块之处的一个正向基准帧和在当前宏数据块(702)之处用于该正向基准帧的一个解码的运动矢量之间的差,估计至少一个运动矢量;和根据估算的至少一个运动矢量(712)估计该当前宏数据块。
2.权利要求1的方法,其中该被估算的至少一个运动矢量等于在当前宏数据块之处的正向基准帧和用于在当前宏数据块(808)之处的一个解码的运动矢量之间的差。
3.权利要求1的方法,其中根据该估算的至少一个运动矢量而估计该当前宏数据块的步骤包括估算在等于一个差值的解码的宏数据块的估算的运动矢量定位的一个宏数据块之处的当前宏数据块,该差值是在由该矢量定位的宏数据块之处的正向基准帧和用于由该矢量定位的宏数据块之处的当前帧的估算的运动矢量之间的差值(1002)。
4.一种对编码的视频比特数据流解码的同时消除误差的方法,其中的当前宏数据块由基准帧的数据和至少一个运动矢量表示,该方法包括步骤检测在表示该当前宏数据块的数据中的一个误差的出现(700);根据用于紧邻当前宏数据块之上定位的一个宏数据块的一个解码运动矢量,估计至少一个运动矢量(708);和根据估算的至少一个运动矢量(712)估计该当前宏数据块。
5.权利要求4的方法,其中该估算的至少一个运动矢量相等于用于紧邻当前宏数据块之上定位的一个宏数据块的一个解码运动矢量(906)。
6.权利要求4的方法,其中根据该估算的至少一个运动矢量而估计该当前宏数据块的步骤包括估算在等于一个差值的解码的宏数据块的估算的运动矢量定位的一个宏数据块之处的当前宏数据块,该差值是在由该矢量定位的宏数据块之处的正向基准帧和用于由该矢量定位的宏数据块之处的当前帧的估算的运动矢量之间的差值(1002)。
7.一种对编码的视频比特数据流解码的同时消除误差的方法,其中的当前宏数据块由基准帧的数据和至少一个运动矢量表示,该方法包括步骤检测在表示该当前宏数据块的数据中的一个误差的出现(1100);和如果可得到用于由一个矢量定位的当前帧前面的一个帧的宏数据块(1002),则估算相等于用于由该矢量定位的当前帧前面的帧的宏数据块(1004)的矢量定位的当前宏数据块;否则(1002)如果可得到用于由一个矢量p定位但是由在同一个列中的减1行索引的当前帧的宏数据块(1106),则估算相等于由该矢量p定位但是由在同一个列中的减1行索引的当前帧的宏数据块(1108)的当前宏数据块;否则(1106),如果可得到用于紧邻当前宏数据块之上定位的宏数据块的一个解码的宏数据块(1110),则估算用于相等于用于将要被估算的该宏数据块之上紧邻定位的宏数据块的解码的宏数据块的该当前帧的当前宏数据块(1112)。
8.一种对编码的视频比特数据流解码的同时消除误差的方法,其中的当前宏数据块由基准帧的数据和至少一个运动矢量表示,该方法包括步骤检测在表示该当前宏数据块的数据中的一个误差的出现(700);如果可得到在当前宏数据块之处的一个正向基准帧和用于在该当前宏数据块之处的该正向基准帧的一个解码的运动矢量之间的差值(806),则估算相等于在当前宏数据块之处的一个正向基准帧和用于在该当前宏数据块之处的该正向基准帧的一个解码的运动矢量之间的差值(808)的至少一个运动矢量;并且,如果不是(806),则如果可得到用于定位在紧邻当前宏数据块之上的一个解码的运动矢量(902),则估算相等于该用于定位在紧邻当前宏数据块之上的一个解码的运动矢量的至少一个运动矢量(906);估算相等于由该矢量定位的宏数据块之处的正向基准帧与用于由该矢量定位的宏数据块之处的当前帧的该估算的运动矢量的差值(1002)的运动矢量定位的一个宏数据块之处的当前宏数据块;并且如果不能得到用于在该当前宏数据块之上紧邻定位的一个宏数据块的一个解码的运动矢量(710),则如果可得到用于由一个矢量定位的一个当前帧前面的一帧的一个宏数据块(1102),则估算相等于用于由该矢量定位的该当前帧前面的该帧的宏数据块(1104)的矢量定位的该当前宏数据块(1104);并且如果不是(1102),则如果可得到用于由一个矢量p定位但是由在同一个列中的减1行索引的当前帧的宏数据块(1106),则估算相等于由该矢量p定位但是由在同一个列中的减1行索引的当前帧的宏数据块的当前宏数据块(1108);并且,如果不是(1106),则如果可得到用于紧邻当前宏数据块之上定位的宏数据块的一个解码的宏数据块(1110),则估算相等于用于将要被估算的该宏数据块之上紧邻定位的宏数据块的解码的宏数据块的当前帧的当前宏数据块(1112)。
9.一种对编码的视频比特数据流解码的同时消除误差的设备,其中的当前宏数据块由基准帧的数据和至少一个运动矢量表示,该设备包括一个检测器(700),检测在表示该当前宏数据块的数据中的一个误差的出现;装置(702),根据在当前宏数据块之处的一个正向基准帧和在当前宏数据块之处用于该正向基准帧的一个解码的运动矢量之间的差,估计至少一个运动矢量;和装置(712),根据估算的至少一个运动矢量估计该当前宏数据块。
10.权利要求9的设备,其中该被估算的至少一个运动矢量等于在当前宏数据块之处的正向基准帧和用于在当前宏数据块之处的一个解码的运动矢量之间的差(808)。
11.权利要求9的设备,其中根据该估算的至少一个运动矢量而估计该当前宏数据块的装置包括装置(1002),估算等于一个差值的解码的宏数据块的估算的运动矢量定位的一个宏数据块之处的当前宏数据块,该差值是在由该矢量定位的宏数据块之处的正向基准帧和用于由该矢量定位的宏数据块之处的当前帧的估算的运动矢量之间的差值。
12.一种对编码的视频比特数据流解码的同时消除误差的设备,其中的当前宏数据块由基准帧的数据和至少一个运动矢量表示,该设备包括一个检测器(700),检测在表示该当前宏数据块的数据中的一个误差的出现;装置(708),根据用于紧邻当前宏数据块之上定位的一个宏数据块的一个解码运动矢量,估计至少一个运动矢量;和装置(712),根据估算的至少一个运动矢量估计该当前宏数据块。
13.权利要求12的设备,其中估算的至少一个运动矢量相等于用于紧邻当前宏数据块之上定位的一个宏数据块的一个解码运动矢量(906)。
14.权利要求12的设备,其中根据该估算的至少一个运动矢量而估计该当前宏数据块的装置包括装置(1002),估算等于一个差值的解码的宏数据块的估算的运动矢量定位的一个宏数据块之处的当前宏数据块,该差值是在由该矢量定位的宏数据块之处的正向基准帧和用于由该矢量定位的宏数据块之处的当前帧的估算的运动矢量之间的差值。
15.一种对编码的视频比特数据流解码的同时消除误差的设备,其中的当前宏数据块由基准帧的数据和至少一个运动矢量表示,该设备包括一个检测器(1100),检测在表示该当前宏数据块的数据中的一个误差的出现;和装置(1102),用于确定是否可得到用于由一个矢量定位的当前帧前面的一个帧的宏数据块,如果此装置(1102)可得到,则估算相等于用于由该矢量定位的当前帧前面的该帧的宏数据块的矢量定位的该当前宏数据块(1104);否则(1102),如果可得到用于由一个矢量p定位但是由在同一个列中的减1行索引的当前帧的宏数据块(1106),则估算相等于由该矢量p定位但是由在同一个列中的减1行索引的当前帧的宏数据块的该当前宏数据块(1108);否则(1106),如果可得到用于紧邻当前宏数据块之上定位的宏数据块的一个解码的宏数据块(1110),则估算相等于用于将要被估算的该宏数据块之上紧邻定位的宏数据块的解码的宏数据块的当前帧的当前宏数据块(1112)。
16.一种对编码的视频比特数据流解码的同时消除误差的设备,其中的当前宏数据块由基准帧的数据和至少一个运动矢量表示,该设备包括一个检测器(700),检测在表示该当前宏数据块的数据中的一个误差的出现;装置(806),用于确定是否可得到在当前宏数据块之处的一个正向基准帧和用于在该当前宏数据块之处的该正向基准帧的一个解码的运动矢量之间的差值,如果可得到该装置(806),则估算相等于在当前宏数据块之处的一个正向基准帧和用于在该当前宏数据块之处的该正向基准帧的一个解码的运动矢量之间的差值的至少一个运动矢量(808);如果,得不到(806),则如果可得到用于定位在紧邻当前宏数据块之上的一个解码的运动矢量(902),则估算相等于该用于定位在紧邻当前宏数据块之上的一个解码的运动矢量的至少一个运动矢量(906);和装置(1002),用于估算相等于由该矢量定位的宏数据块之处的正向基准帧与用于由该矢量定位的宏数据块之处的当前帧的该估算的运动矢量的差值的该估算的运动矢量定位的一个宏数据块之处的当前宏数据块;并且如果不能得到用于在该当前宏数据块之上紧邻定位的一个宏数据块的一个解码的运动矢量(710),则如果可得到用于由一个矢量定位的一个当前帧前面的一帧的一个宏数据块(1102),则估算相等于用于由该矢量定位的该当前帧前面的该帧的宏数据块的矢量定位的当前宏数据块(1104);并且如果得不到(1102),则如果可得到用于由一个矢量p定位但是由在同一个列中的减1行索引的当前帧的宏数据块(1106),则估算相等于由该矢量p定位但是由在同一个列中的减1行索引的当前帧的宏数据块的当前宏数据块(1108);并且,如果得不到(1106),则如果可得到用于紧邻当前宏数据块之上定位的宏数据块的一个解码的宏数据块(1110),则估算相等于用于将要被估算的该宏数据块之上紧邻定位的宏数据块的解码的宏数据块的用于该当前帧的当前宏数据块(1112)。
全文摘要
一种用于消除在视频比特数据流解码期间的误差的方法和装置。利用估算、如有可能利用在时域中的一个运动矢量进行误差消除。假设该运动基本稳定地保持在两个随后帧之间,丢失的数据块的暂态估计则使用来自一个随后帧中的数据块中的一个估算的运动矢量。如果在该时域中估计是不可能的,则在空间域估算运动矢量(708)。根据估算的运动矢量(712),估算一个宏数据块。如果在该时域估计不可能,则不使用估算的运动矢量估计宏数据块(716)。
文档编号H04N5/21GK1256048SQ98805118
公开日2000年6月7日 申请日期1998年3月6日 优先权日1997年3月13日
发明者T·奥兹塞利克, 游耿三, S·C·加德雷 申请人:索尼电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1