CN1547857A - 图像解码设备和图像解码方法 - Google Patents

图像解码设备和图像解码方法 Download PDF

Info

Publication number
CN1547857A
CN1547857A CNA038009293A CN03800929A CN1547857A CN 1547857 A CN1547857 A CN 1547857A CN A038009293 A CNA038009293 A CN A038009293A CN 03800929 A CN03800929 A CN 03800929A CN 1547857 A CN1547857 A CN 1547857A
Authority
CN
China
Prior art keywords
frame
decoding
pixel
macro block
object block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA038009293A
Other languages
English (en)
Inventor
С����֮
小仓誉之
高嵨昌利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN1547857A publication Critical patent/CN1547857A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种解码已经压缩/编码的图像数据流的MPEG解码设备(10),包括运动补偿电路(15)和保存进行运动补偿时要引用的解码帧的错误映像表的错误映像表保存电路(19)。运动补偿电路(15)引用错误映像表。如果在包括在参考区中的块中包括错误块,或者,如果用于要解码的块的运动图像编码数据已经破坏,就在输出像素前通过利用解码帧的像素内插要解码的块中的像素,进行错误隐蔽处理。运动补偿电路(15)生成和存储其中把已经进行错误隐蔽处理的块定义成错误块的错误映像表。这个MPEG解码设备(10)抑制了伴随错误隐蔽处理的错误的传播并且减少了质量劣化。

Description

图像解码设备和图像解码方法
技术领域
本发明涉及对利用按块进行的运动预测而编码的动态图像信号进行解码的图像解码设备和图像解码方法,每个块具有预定数量的像素。
本申请要求2002年5月27日提出的日本专利申请第2002-152717号的优先权,特此引用,以供参考。
背景技术
作为动态图像信号的压缩编码系统,MPEG-2(运动图像专家组-2)(ISO/IEC(国际标准化组织/国际电工委员会)13818-2)和MPEG-4(ISO/IEC14496-2)等是众所周知的。在MPEG-2和MPEG-4中,动态图像信号利用运动预测通过编码系统压缩。在MPEG-2和MPEG-4中,帧之间的运动预测按块来进行,每个块包括例如16×16或16×8个像素。在MPEG-2和MPEG-4中,预测运动量通过矢量(称为运动矢量)来表达,并且包括在编码数据中。在MPEG-2和MPEG-4中,在编码的时候,利用运动矢量,从前一个编码帧中生成预测帧。然后,计算编码目标帧和预测帧之间的差值,并且通过例如DCT(离散余弦变换)只编码那个差值。在MPEG-2和MPEG-4中,在解码的时候,相对于前一个解码参考帧,利用运动矢量生成预测帧,并且,相加预测帧和解码帧,以恢复原始帧。
在诸如MPEG-2和MPEG-4之类利用运动预测的编码系统中,由于只编码运动矢量和差图像就足够了,因此动态图像数据得到有效压缩。
接着,描述对通过MPEG-2系统或MPEG-4系统压缩编码的动态图像数据流(基本流)进行解码的传统MPEG解码设备。
图1显示了传统MPEG解码设备的方块结构图。
如图1所示,传统MPEG解码设备100含有语法分析电路111、可变长度代码(VLC)表112、逆量化(IQ)电路113、离散余弦逆变换(IDCT)电路114、运动补偿电路115、帧存储器116和彩色格式转换电路117。在运动补偿电路115的内部,配备了选择器121、MC控制器122和加法器123。
把基本流输入语法分析电路111中。语法分析电路111从输入的基本流中检测固定长度代码,分析可变长度代码的代码长度和计算可变长度代码表的地址。语法分析电路111从参照VLC表112的计算地址中检测可变长度编码之前的代码。语法分析电路111检测这些固定长度代码和可变长度代码,从而为逆量化和运动补偿而解码DCT系数数据、运动矢量和各控制数据。按照预定扫描次序重新排列DCT系数数据,然后将其供应给逆量化电路113。把用于运动补偿的运动矢量和控制数据供应给运动补偿电路115的MC控制器122。
当把没有存在于VLC表112之中的代码输入输入的基本流中时,或者,当在要输出的DCT系数中存在错误时,例如当在一个DCT块中DCT系数的数量超过64时,语法分析电路111输出错误标志。错误标志是按宏块生成的。把错误标志供应给运动补偿电路115中的MC控制器122。
逆量化电路113利用用在编码中的量化参数,进行DCT系数数据的逆量化。把逆量化DCT系数数据供应给离散余弦逆变换电路114。
离散余弦逆变换电路114对DCT系数数据的、包括8×8个DCT系数的每个DCT块进行二维离散余弦逆变换运算,并且对空间域的图像数据进行解码。把通过离散余弦逆变换变换的图像数据供应给运动补偿电路115。
运动补偿电路115对已经通过离散余弦逆变换变换的空间域的图像数据进行运动补偿处理。
运动补偿电路115中的MC控制器122根据语法分析电路111供应的用于运动补偿的运动矢量和控制数据,相对存储在帧存储器116中的参考帧,按宏块进行运动预测,从而生成预测帧。运动补偿电路115中的加法器123按宏块把从参考帧中生成的预测帧加入离散余弦逆变换电路114供应的差帧中,因而生成原始帧。把加法器123输出的帧存储在帧存储器116中,作为解码帧。
在进行错误隐蔽(conceal)处理的时候,运动补偿电路115中的选择器121进行按宏块终止从离散余弦逆变换电路114输出差帧的处理。
错误隐蔽处理是例如如果在传输的时候,在编码数据中出现错误,并且存在与周边正常图像极为不同的宏块,就减少错误部分中的视觉缺陷的处理。
MC控制器122对其上错误标志被语法分析电路111唤起的宏块进行错误隐蔽处理。当其上错误标志被语法分析电路111唤起的宏块,即,其中已经出现了错误和其图像已经遭受破坏的宏块是运动补偿的目标宏块时,MC控制器122不进行普通运动补偿,而是进行内插处理,即利用与那个宏块处在相同位置的参考帧的像素内插宏块中存在错误的像素,从而进行错误隐蔽处理。具体说,MC控制器122把引用I-画面或P-画面的模式用作作为用于指定那个宏块的参考帧的模式的MB模式,并且把运动矢量值设置成指示从参考帧没有运动的0。然后,MC控制器122把作为解码目标的宏块的值设置成0。也就是说,通过切换选择器121,把0设置成从离散余弦逆变换电路114到运动补偿电路115的输入数据,MC控制器122进行错误隐蔽处理。
彩色格式转换电路117进行存储在帧存储器116中的解码图像数据的视频格式转换处理。例如,彩色格式转换电路117进行到ITU(国际电信联盟)-R601规定的4:2:2格式或4:2:0格式的格式转换。
如上所述,在传统MPEG解码设备100中,可以解码利用运动预测的编码数据。在传统MPEG解码设备100中,即使在传输的时候遭受破坏的图像块在帧中存在,也可以进行错误隐蔽处理,利用没有遭受破坏的另一个帧的图像块内插图像块。因此,可以减少由于存在因错误而与周边正常图像极为不同的块造成的视觉缺陷。
同时,在进行运动补偿的情况,如果错误隐蔽帧变成参考帧并且引用错误隐蔽宏块中的像素用于运动补偿,运动补偿就是根据错误的参考值进行的。如果根据这样的错误参考值进行运动补偿,那个宏块内的图像就作为画面而遭受破坏(broken)。在对下一个帧进行运动补偿的情况,可能进一步引用作为画面遭受破坏的宏块内的像素。也就是说,如果进行错误隐蔽处理,错误可能在时间和空间方面传播。
现在参照图2、3和4描述错误隐蔽宏块在时间和空间方面传播的影响。
首先,如图2所示,假设在某个I-画面(I1)中传输错误存在于两个宏块(MB3,MB4)中。在这种情况下,当进行错误隐蔽处理时,例如利用正好在I1之前的P-画面(P0)中处在相同位置的宏块(MB3,MB4)内插这些宏块(MB3,MB4)。因此,解码I1的宏块(MB3,MB4)的图像不同于原始画面,但是作为画面没有遭受破坏。
下一个P-画面(P2)把I1用作运动补偿的参考帧。由于在这个P2中不存在传输错误,进行错误隐蔽处理。但是例如如图3所示,在用于运动补偿的参考区中,P2中的三个宏块(MB1,MB3,MB4)包含了参考帧中的错误隐蔽宏块的像素。因此,解码宏块(MB1,MB3,MB4)的图像不同于原始画面,并且其画面遭受破坏。
随后,如图4所示,下一个P-画面(P3)把P2用作运动补偿的参考帧。在这个P3的某个宏块(MB4)中存在传输错误。在这种情况下,在进行错误隐蔽处理时,例如利用正好在P3之前的P-画面(P2)中处在相同位置的宏块(MB4)内插宏块(MB4)。但是,由于作为内插源的前一个宏块(MB4)存在其已经遭受破坏的画面,要内插的宏块(MB4)的图像不同于原始画面,并且其画面遭受破坏。
此外,例如在用于某些宏块(MB1,MB2,MB3)的运动补偿的参考区中,P-画面(P3)包括参考帧中的错误隐蔽宏块的像素。因此,解码宏块(MB1,MB2,MB3)的图像不同于原始画面,并且其画面遭受破坏。
如上所述,在进行错误隐蔽处理的情况下,错误是会传播到下一个I-画面(I4)解码为止,并且,错误通过运动补偿沿着平面方向扩散。错误的这种扩大严重地劣化了图像。
发明内容
本发明的一个目的是提供一种能解决传统图像解码设备和图像解码方法存在的问题的新图像解码设备和图像解码方法。
本发明的另一个目的是提供一种即使在正在解码的图像块在运动补偿中已经引用了包含错误的帧的情况下,也能限制错误的传播和减少图像质量的劣化的动态图像解码设备和方法。
基于本发明的图像解码设备是一种解码通过编码系统编码的动态图像编码数据的图像解码设备,该编码系统用于将一个帧划分成数个块和进行每个块的运动补偿编码,该设备包括:运动补偿装置,用于当运动预测编码块是解码目标块时,利用包括在图像编码数据中的运动预测信息指定解码帧中的参考区,和利用指定参考区的信息进行解码目标块的运动补偿;和错误映像表保存装置,用于保存进行运动补偿时要引用的与解码帧有关的错误映像表;其中,在错误映像表中显示存在于解码帧中的错误块,和当引用错误映像表和发现在包括在参考区中的块中包括错误块时,或者,当解码目标块的动态图像编码数据遭受破坏时,运动补偿装置进行错误隐蔽处理,以利用解码帧的像素内插解码目标块中的像素和输出所得数据,然后,生成把错误隐蔽块显示成错误块的错误映像表,并且把错误映像表存储在错误映像表保存装置中。
基于本发明的图像解码方法是一种解码通过编码系统编码的动态图像编码数据的图像解码方法,该编码系统用于将一个帧划分成数个块和进行每个块的运动补偿编码,该方法包括:利用包括在图像编码数据中的运动预测信息指定解码帧中的参考区,然后,利用指定参考区的信息进行解码目标块的运动补偿,从而解码动态图像编码数据;其中,在进行运动补偿中,当引用显示存在于解码块之中的错误块的错误映像表和发现在包括在参考区中的块中包括错误块时,或者,当解码目标块的动态图像编码数据遭受破坏时,进行错误隐蔽处理以利用解码帧的像素内插解码目标块中的像素和输出所得数据,和生成把错误隐蔽块显示成错误块的错误映像表。
本发明的其它目的和本发明提供的具体优点将通过如下参照附图描述的实施例的描述得到进一步澄清。
附图说明
图1是显示传统MPEG解码设备的方块图。
图2是说明错误隐蔽宏块的影响的时间和空间传播的图。
图3是显示接在图2之后的状态的图。
图4是显示接在图3之后的状态的图。
图5是应用本发明的MPEG解码设备的方块图。
图6是显示错误映像表的图。
图7是显示错误映像表的另一种形式的图。
图8是显示MC控制器对包括I-画面和P-画面的流进行的处理的流程图。
图9A和9B是显示帧中的宏块和错误映像表的结构的图。
图10是说明参考区的图。
图11是说明包括I-画面和P-画面的流的错误隐蔽处理的具体内容的图。
图12是显示接在图11之后的状态的图。
图13是显示接在图12之后的状态的图。
图14是显示MC控制器对包括I-画面、P-画面和B-画面的流进行的处理的流程图。
图15是显示接在图14之后的流程图。
图16是说明包括I-画面、P-画面和B-画面的流的错误隐蔽处理的具体内容的图。
图17是显示接在图16之后的状态的图。
图18是显示接在图17之后的状态的图。
具体实施方式
下文说明把本发明应用于MPEG解码设备的例子。
应用本发明的MPEG解码设备是用于解码通过MPEG-2系统(ISO/IEC13818-2)或MPEG-4系统(ISO/IEC 14496-2)压缩编码的图像数据流(基本流)的设备。在MPEG-2和MPEG-4中,按预定像素块进行帧之间的运动预测,从而进行压缩编码。下文把进行运动补偿的最小像素块称为宏块。
如图5所示,应用本发明的MPEG解码设备10含有语法分析电路11、可变长度代码(VLC)表12、逆量化(IQ)电路13、离散余弦逆变换(IDCT)电路14、运动补偿电路15、帧存储器16、彩色格式转换电路17、错误控制器18和两个错误映像表存储单元19a和19b。在运动补偿电路15的内部,配备了选择器21、MC控制器22和加法器23。
把基本流输入语法分析电路11中。语法分析电路11从输入的基本流中检测固定长度代码,分析可变长度代码的代码长度和计算可变长度代码表的地址。语法分析电路11从参考VLC表12的计算地址中检测可变长度编码之前的代码。语法分析电路11检测这些固定长度代码和可变长度代码,从而为逆量化和运动补偿等解码DCT系数数据、运动矢量和各种控制数据。按照预定扫描次序重新排列DCT系数数据,然后将其供应给逆量化电路13。把用于运动补偿的运动矢量和控制数据供应给运动补偿电路15的MC控制器22。
当把没有存在于VLC表12之中的代码输入输入的基本流中时,或者,当在要输出的DCT系数中存在错误时,例如当在一个DCT块中DCT系数的数量超过64时,语法分析电路11输出错误标志。错误标志是按宏块生成的。把错误标志供应给运动补偿电路15中的MC控制器22。
逆量化电路13利用用在编码中的量化参数,进行DCT系数数据的逆量化。把逆量化的DCT系数数据供应给离散余弦逆变换电路14。
离散余弦逆变换电路14对DCT系数数据的、包括例如8×8个DCT系数的每个DCT块进行二维离散余弦逆变换运算,并且解码空间域的图像数据。把通过离散余弦逆变换变换的图像数据供应给运动补偿电路15。
运动补偿电路15对已经通过离散余弦逆变换变换的空间域的图像数据进行运动补偿处理。只运动补偿P-画面和B-画面之间的中间宏块。当输入内部宏块时,不进行运动补偿处理。运动补偿电路15进行满足预定条件的宏块的错误隐蔽处理。进行错误隐蔽处理与输入内部宏块还是输入中间宏块无关。运动补偿电路15对要错误隐蔽的宏块不进行普通运动补偿处理。后面将详细描述用在本设备中的错误隐蔽处理。
当输入宏块是中间宏块时,运动补偿电路15中的MC控制器22根据语法分析电路11供应的用于运动补偿的运动矢量和控制数据,对存储在帧存储器16中的参考帧,按宏块进行运动预测,因而生成预测帧。运动补偿电路15中的加法器23按宏块把从参考帧中生成的预测帧加入离散余弦逆变换电路14供应的差帧中,因而生成原始帧。当输入宏块是内部宏块时,MC控制器22不生成预测帧。在这种情况下,运动补偿电路15中的加法器23不把数据加入离散余弦逆变换电路14输出的内部宏块中,按原样输出宏块。把加法器23输出的还原帧存储在帧存储器116中。
在进行普通运动补偿的情况下,运动补偿电路15中的选择器(SEL)21按原样把来自离散余弦逆变换电路14的差帧输出供应给加法器23。另一方面,在错误隐蔽处理中,选择器21进行按宏块终止从离散余弦逆变换电路14中输出差帧的处理。选择器21受MC控制器22控制。
彩色格式转换电路17进行存储在帧存储器16中的解码图像数据的视频格式转换处理。例如,彩色格式转换电路17进行到ITU-R601规定的4:2:2格式或4:2:0格式的格式转换。
错误控制器18进行存储在第一错误映像表存储单元19a和第二错误映像表存储单元19b中的错误映像表的写和读的更新控制。错误控制器18根据从MC控制器22输出的错误隐蔽信息,进行错误映像表的更新控制。
现在描述错误映像表。
错误映像表是指定错误隐蔽宏块的位置的信息。错误映像表是按帧生成的。如果一个帧是由X个水平宏块×Y个垂直宏块形成的,那么例如如图6所示,错误映像表是Y个字的信息,每个字由X个位构成。也就是说,错误映像表是指示每个位的内容是否被错误隐蔽的信息,每个位的地址位置对应于宏块在帧中的位置。错误映像表的结构不限于图6的结构,例如如图7所示,也可以使用每个字由一个位构成的X×Y个字的信息。
在对任意宏块进行错误隐蔽处理的情况下,错误控制器18访问与正在解码的帧相对应的错误映像表,使与那个宏块相对应的地址的位值有效(1)。在不对任意宏块进行错误隐蔽处理的情况下,错误控制器18访问与正在解码的帧相对应的错误映像表,使与那个宏块相对应的地址的位值无效(0)。
在错误映像表存储单元19a和19b中,存储与正好在当前解码帧之前或之后显示的和可以是参考帧的帧相对应的错误映像表。具体地说,如果当前解码帧是P-画面,把与正好在P-画面之前的I-画面或P-画面(在时间上与P-画面最接近的过去画面)相对应的错误映像表存储在错误映像表存储单元19a和19b中。如果当前解码帧是B-画面,把与正好在B-画面之前的I-画面或P-画面(在时间上与B-画面最接近的过去画面)和正好在B-画面之后的I-画面或P-画面(在时间上与B-画面最接近的将来画面)相对应的错误映像表存储在错误映像表存储单元19a和19b中。如果当前解码帧是I-画面,把与正好在I-画面之前的I-画面或P-画面(在时间上与I-画面最接近的过去画面)相对应的错误映像表存储在错误映像表存储单元19a和19b中。也就是说,如果正在解码I-画面或P-画面,把与正好在当前解码的I-画面或P-画面之前的I-画面或P-画面相对应的一个错误映像表存储在错误映像表存储单元19a和19b之一中。如果正在解码B-画面,把与两个帧——即正好在当前解码的B-画面之前的I-画面或P-画面和正好在当前解码的B-画面之后的I-画面或P-画面——相对应的错误映像表存储在错误映像表存储单元19a和19b中。
如果当前解码帧可以是参考帧,那么,生成新的错误映像表。也就是说,如果当前解码帧是I-画面或P-画面,那么,生成新的错误映像表。如果当前解码帧是I-画面或P-画面,那么,每次处理一个宏块时,MC控制器22就向错误控制器18发送指示是否对那个帧中的宏块进行了错误隐蔽处理的信息(错误隐蔽信息)。根据错误隐蔽信息,错误控制器18更新错误映像表存储单元19a和19b中错误映像表的内容。
当正在解码I-画面或P-画面时,把与参考帧相对应的错误映像表存储在错误映像表存储单元19a和19b之一中。也就是说,因为对于I-画面或P-画面只存在一个参考帧,所以只存储一个错误映像表。因此,错误控制器18更新其中没有存储与参考帧相对应的错误映像表的其它存储单元中的错误映像表。结果,随着解码不断进行下去,交替选择两个错误映像表存储单元19a和19b,并且更新错误映像表的内容。
B-画面不能是参考帧。因此,当正在解码B-画面时,不更新与当前解码帧相对应的错误映像表。但是,在对B-画面进行运动补偿的情况下,由于过去和将来都存在两个参考帧,把有效的错误映像表存储在错误映像表存储单元19a和19b两者之中。
现在描述错误隐蔽处理。
错误隐蔽处理是利用参考帧中与作为运动补偿的处理目标的宏块处在相同位置的宏块的像素,内插那个宏块中的所有像素的处理。在像素内插处理中,可以对作为运动补偿的处理目标的宏块中的像素取代参考帧的像素值,或者,可以以某种方式处理参考帧的像素值,然后,将其用作作为运动补偿的处理目标的宏块的像素。
错误隐蔽处理由MC控制器22来执行。以宏块为单位进行错误隐蔽处理。错误隐蔽处理可以这样来进行,把引用I-画面或P-画面的模式设置成那个宏块的MB模式,即指定参考帧的模式,然后,把运动矢量的值设置成0,即假设从参考帧没有运动,并且,把作为解码目标的宏块的值设置成0,即,关闭(switch off)选择器21,把0设置成从离散余弦逆变换电路14到运动补偿电路15的输入数据。
接着,描述在当前MPEG解码设备10中进行错误隐蔽处理的条件。
MC控制器22引用当前解码帧的画面类型、参考帧的错误映像表的内容、来自语法分析电路11的与当前解码宏块有关的错误标志和当前解码宏块的MB模式,并且当如下条件1到3之一得到满足时,进行当前解码宏块的错误隐蔽处理。
条件1
如果MC控制器22接收到来自语法分析电路11的错误标志,MC控制器22对为其生成错误标志的宏块进行错误隐蔽处理。也就是说,如果输入没有存在于VLC表12中的代码,或者,如果在DCT系数中存在错误,例如如果一个DCT块中DCT系数的数量超过64,那么,MC控制器22进行错误隐蔽处理。这个处理条件与传统错误隐蔽处理的处理条件相似。
条件2
如果当前解码宏块是属于P-画面或B-画面的宏块并且在运动补偿中要引用的参考帧内的参考区已经经过错误隐蔽,那么,MC控制器22进行当前解码宏块的错误隐蔽处理。参考区是进行运动补偿时要引用的参考帧内的任意区域。这个参考区具有与宏块相同的大小,并且它的位置通过相对于正在解码的宏块的运动矢量来指定。运动矢量以半个像素为单位来表达。因此,参考区被设置在最多跨过四个宏块的位置上。在这个条件2下,如果包括在参考区中的宏块的至少一个已经经过错误隐蔽,那么,还要进行当前解码宏块的错误隐蔽处理。通过首先从运动矢量中计算出包括在参考区中的宏块(最多四个宏块),然后从错误映像表中读出与指定宏块相对应的位值,可以判断包括在参考区中的宏块是否已经经过错误隐蔽处理。MC控制器22为参考帧读出错误映像表,并且,当判断指示包括在参考帧中的宏块的位值有效时,MC控制器22进行当前解码宏块的错误隐蔽处理。
条件3
如果当前解码宏块是属于B-画面的宏块和在那个B-画面的将来参考帧中与当前解码宏块处在相同位置的宏块已经经过错误隐蔽处理,那么,MC控制器22进行当前解码宏块的错误隐蔽处理。例如,假设以I1、B2和P3的显示次序排列帧和通过用I1的图像内插P3的任意宏块已经进行了错误隐蔽处理。在这种情况下,如果没有进行B2的错误隐蔽处理,那么,解码之后的显示次序将是I1、B2和I1,并且,不能实现显示的时间匹配。因此,根据这个条件3进行B-画面的错误隐蔽处理。
下文描述MC控制器22对包括I-画面和P-画面的流进行的处理的例子。
图8显示了MC控制器22中对包括I-画面和P-画面的流的处理流程。
对于输入到运动补偿电路15的每个宏块,MC控制器22重复如下步骤S11到S24的处理。
首先,在步骤S11,MC控制器22根据语法分析电路11提供的信息,判断作为解码目标的宏块的宏块类型。如果宏块类型是内部宏块,处理转到步骤S12。如果宏块类型是中间宏块,处理转到步骤S18。
如果宏块类型是内部宏块,MC控制器22在步骤S12中判断对于解码目标的宏块,是否从语法分析电路11提供了错误标志。也就是说,MC控制器22判断在解码目标的宏块中是否存在错误。如果不存在错误,处理转到步骤S13。如果已经出现错误,处理转到步骤S15。
在步骤S13中,MC控制器22使错误映像表中与解码目标的宏块相对应的位值无效。具体地说,MC控制器22更新错误映像表,以便指示没有进行那个宏块的错误隐蔽处理。接着,在步骤S14中,MC控制器22利用语法分析电路11提供的运动矢量和宏块模式,进行普通运动补偿,然后,结束这个流程的处理。
在步骤S15中,MC控制器22把运动矢量的值设置成x=0和y=0,并且还把前向预测模式设置成宏块模式。也就是说,设置运动矢量和宏块模式,以便引用过去参考帧中与作为解码目标的宏块处在相同位置的宏块。接着,在步骤S16中,MC控制器22使错误映像表中与作为解码目标的宏块相对应的位值有效。也就是说,MC控制器22更新错误映像表,以便指示宏块已经经过错误隐蔽。接着,在步骤S17中,MC控制器22利用在步骤S15中设置的运动矢量和宏块模式,进行运动补偿处理。在这个处理中,切换选择器21,将0设置为从离散余弦变换电路14供应的宏块的图像数据的输入。这个步骤S17的处理是在上述条件1下的错误隐蔽处理。当步骤S17的处理完成时,MC控制器22结束这个流程的处理。
另一方面,如果宏块类型是中间宏块,那么,MC控制器22在步骤S18中判断语法分析电路11是否对作为解码目标的宏块提供了错误标志。也就是说,MC控制器22判断在作为解码目标的宏块中是否存在错误。如果不存在错误,处理转到步骤S19。如果存在错误,处理转到步骤S22。
在步骤S19中,MC控制器22判断包括在参考区中的宏块是否已经经过错误隐蔽。
步骤S19中的这个判断可以通过例如执行如下程序做出。
  10:Vector_xr=Vector_x>>4

  20:Vector_yr=Vector_y>>4

  30:If(Vector_x%16!=0)

      If(Vector_x<0)x_flag=-1 else x_flag=1

      else x_flag=0

  40:If(Vector_y%16!=0)

      If(Vector_y<0)y_flag=-1 else y_flag=1

      else y_flag=0

  50:MB_flag={Error_Map[mb_adr_x+Vector_xr][mb_adr_y+Vector_yr]

  or
Error_Map[mb_adr_x+Vector_xr+x_flag][mb_adr_y+Vector_yr]or
				
				<dp n="d11"/>
Error_Map[mb_adr_x+Vector_xr][mb_adr_y+Vector_yr+y_flag]or
Error_Map[mb_adr_x+Vector_xr+x_flag][mb_adr_y+Vector_yr+y_flag]}

  60:if(MB_flag=1)Search_MB_error=Yes

  70:if(MB_flag=0)Search_MB_error=No
下面详细描述上述程序。
在行10,进行对通过二进制数表达的原始运动矢量沿着X方向的值(Vector_x)的4位右移操作,并且把所得的值代入变量Vector_xr中。由于一个宏块包括16×16个像素,当运动矢量沿着X方向的值除以16时,对每个像素表达的运动矢量的值可以被转换成对每个宏块表达的运动矢量。也就是说,在这个行10,计算按宏块转换的沿着X方向的运动矢量(Vector_xr)。
在行20,进行对通过二进制数表达的原始运动矢量沿着Y方向的值(Vector_y)的4位右移操作,并且把所得的值代入变量Vector_yr中。也就是说,在这个行20,计算按宏块转换的沿着Y方向的运动矢量(Vector_yr)。
在行30,如果原始运动矢量沿着X方向的值(Vector_x)可以被16整除,将0代入变量x_flag中。如果Vector_x不能被16整除,并且是负的,将-1代入变量x_flag中。如果Vector_x不能被16整除,并且不是负的,将1代入变量x_flag中。也就是说,如果参考区沿着X方向的位置完全与宏块的边界位置吻合,将0代入变量x_flag中。否则,把1或-1代入变量x_flag中。如果位置不吻合,参考区沿着X方向跨过两个宏块。
在行40,如果原始运动矢量沿着Y方向的值(Vector_y)可以被16整除,将0代入变量y_flag中。如果Vector_y不能被16整除,并且是负的,将-1代入变量y_flag中。如果Vector_y不能被16整除,并且不是负的,将1代入变量x_flag中。也就是说,如果参考区沿着Y方向的位置完全与宏块的边界位置吻合,将0代入变量y_flag中。否则,把1或-1代入变量y_flag中。如果位置不吻合,参考区沿着Y方向跨过两个宏块。
在行50,引用错误映像表并且找出错误映像表中与包括在参考区中的所有宏块(最多四个宏块)相对应的位值。计算这些值的逻辑和,并且将其代入变量MB_flag中。操作表达式Error_Map[X][Y]读出错误映像表中地址X和Y的位置上的位。mb_adr_x指示当前解码宏块沿着X方向的地址,和mb_adr_y指示当前解码宏块沿着Y方向的地址。
在行60和70,如果变量MB_flag是1,也就是说,如果MB_flag有效,那么,判断Search_MB_error=Yes(与参考帧有关的错误映像表中与参考宏块相对应的位的值有效)。如果变量MB_flag是0,也就是说,如果MB_flag无效,那么,判断Search_MB_error=No(与参考帧有关的错误映像表中与参考宏块相对应的位的值有效)。
通过执行上述行10到70的处理程序,MC控制器22可以判断参考区是否已经经过错误隐蔽。如果MC控制器22判断参考区还没有经过错误隐蔽,处理转到步骤S20。如果MC控制器22判断参考区已经经过错误隐蔽,处理转到步骤S22。
在步骤S20中,MC控制器22使错误映像表中与作为解码目标的宏块相对应的位值对那个宏块无效。也就是说,MC控制器22更新错误映像表,以便指示那个宏块的错误隐蔽处理没有执行。接着,在步骤S21中,MC控制器22利用语法分析电路11提供的运动矢量和宏块模式,进行普通运动补偿,然后,结束这个流程的处理。
在步骤S22中,MC控制器22把运动矢量的值设置成x=0和y=0,并且把前向预测模式设置成宏块模式。也就是说,MC控制器22设置运动矢量和宏块模式,以便引用过去参考帧中与作为解码目标的宏块处在相同位置的宏块。接着,在步骤S23中,MC控制器22使错误映像表中与作为解码目标的宏块相对应的位值对那个宏块有效。也就是说,MC控制器22更新错误映像表,以便指示该宏块已经经过错误隐蔽。接着,在步骤S24中,MC控制器22利用在步骤S22中设置的运动矢量和宏块模式,进行运动补偿处理。在这个处理中,MC控制器22切换选择器21和将0设置为从离散余弦逆变换电路14供应的那个宏块的图像数据的输入。这个步骤S24中的处理是在上述条件2下的错误隐蔽处理。当步骤S24的处理完成时,MC控制器22结束这个流程的处理。
上述处理是MC控制器22对包括I-画面和P-画面的流的处理。
现在,参照附图描述包括I-画面和P-画面的流的错误隐蔽处理的具体内容。
在错误隐蔽处理的具体例子的如下描述中,假设一个帧包括4个水平宏块×3个垂直宏块,也就是说,总共12个宏块。将帧中的宏块编号,以便可以像图9A所示那样,指定它们各自的位置。例如,上面最左边的宏块被表达成M1。上面从左算起第2个的宏块被表达成M2。最左边从上算起第2个宏块被表达成M3。从左算起第2个和从上算起第2个宏块被表达成M4
如图9B所示,错误映像表中的位值用O的形式表达。有效位值通过把O涂黑来表达,和无效位值通过使O保持空白来表达。在O中描述的数字是相应宏块的号码。
如图10所示,为进行任意宏块的运动补偿而要引用的参考区用带有附在其一侧的箭头的直线和虚线的长方形框来表达。直线的起点(没有箭头的一端)指示当前解码宏块的中心位置,和箭头的终端指示当前解码宏块的参考区。在图10中,P-画面(P1)的宏块(M1)引用I-画面(I0)内的区域。如图10所示的宏块中用“I”表示的部分代表内部宏块。如图10所示的宏块中用“P”表示的部分代表中间宏块。
在本例中,将描述对由按P0、I1、P2、P3和I4的解码次序和显示次序排列的I-画面和P-画面组成的基本流的示范性处理。
首先,如图11所示,解码I-画面(I1)。假设I1包括存在传输错误的宏块(M3,M4)。在这种情况下,进行I1的宏块(M3,M4)的错误隐蔽处理。具体地说,利用P-画面(P0)——即可以是过去参考帧的帧——的宏块(M3,M4)内插I1的宏块(M3,M4)。在I1的错误映像表中,使宏块(M3,M4)的位有效。
接着,如图12所示,解码P-画面(P2)。假设P2包括宏块(M1,M3,M4)的参考区中I1的错误隐蔽宏块(M3,M4)。在这种情况下,进行P2的宏块(M1,M3,M4)的错误隐蔽处理。具体地说,利用作为P2的参考帧的I1的宏块M1、M3、M4内插P2的宏块(M1,M3,M4)。在P2的错误映像表中,使宏块(M1,M3,M4)的位有效。
接着,如图13所示,解码P-画面(P3)。假设P2的错误隐蔽宏块(M1,M3,M4)包括在P3的宏块(M1,M2,M3)的参考区中。在这种情况下,进行P3的宏块(M1,M2,M3)的错误隐蔽处理。假设P3的宏块(M4)存在传输错误。在这种情况下,进行P3的宏块(M4)的错误隐蔽处理。具体地说,利用作为P3的参考帧的P2的宏块(M1,M2,M3,M4)内插P3的宏块(M1,M2,M3,M4)。在P3的错误映像表中,使宏块(M1,M2,M3,M4)的位有效。
下文描述MC控制器22对包括I-画面、P-画面和B-画面的流进行的处理的例子。
图14和15显示了MC控制器22中对包括I-画面、P-画面和B-画面的流的处理流程。
对于输入到运动补偿电路15的每个宏块,MC控制器22重复如下步骤S10到S43的处理。
首先,在步骤S10中,MC控制器22根据语法分析电路11提供的信息,判断作为解码目标的宏块是属于I-画面的宏块、属于P-画面的宏块、还是属于B-画面的宏块。如果是属于I-画面或P-画面的宏块,处理转到步骤S11。如果是属于B-画面的宏块,处理转到步骤S31。
在I-画面或P-画面的情况下,MC控制器22进行与如图8所示的步骤S11到S23的处理相同的处理。
在B-画面的情况下,MC控制器22在步骤S31中,根据语法分析电路11提供的信息,判断作为解码目标的宏块的宏块类型。如果宏块类型是内部宏块,处理转到步骤D32。如果宏块类型是中间宏块,处理转到步骤S36。
如果宏块类型是内部宏块,MC控制器22在步骤S32中判断对于作为解码目标的宏块语法分析电路11是否提供了错误标志。也就是说,MC控制器22判断在作为解码目标的宏块中是否存在错误。如果不存在错误,处理转到步骤S33。如果存在错误,处理转到步骤S37。
在步骤S33中,MC控制器22引用与将来参考帧有关的错误映像表,并且判断与当前解码宏块处在相同位置上的宏块是否已经经过错误隐蔽。如果该宏块还没有经过错误隐蔽,处理转到步骤S34。如果该宏块已经经过错误隐蔽,处理转到步骤S35。
在步骤S34中,MC控制器22利用语法分析电路11提供的运动矢量和宏块模式,进行普通运动补偿,然后,结束这个流程的处理。
在步骤S35中,MC控制器22把运动矢量的值设置成x=0和y=0,并且还把后向预测模式设置成宏块模式。也就是说,设置运动矢量和宏块模式,以便引用将来参考帧中与作为解码目标的宏块处在相同位置的宏块。接着,在步骤S36中,MC控制器22利用在步骤S35中设置的运动矢量和宏块模式,进行运动补偿处理。在这个处理中,切换选择器21,将0设置为从离散余弦变换电路14供应的宏块的图像数据的输入。这个步骤S36的处理是在上述条件3下的错误隐蔽处理。当步骤S36的处理完成时,MC控制器22结束这个流程的处理。
在步骤S37中,MC控制器22把运动矢量的值设置成x=0和y=0,并且还把前向预测模式设置成宏块模式。也就是说,设置运动矢量和宏块模式,以便引用过去参考帧中与作为解码目标的宏块处在相同位置的宏块。接着,在步骤S38中,MC控制器22利用在步骤S37中设置的运动矢量和宏块模式,进行运动补偿处理。在这个处理中,切换选择器21,将0设置为从离散余弦变换电路14供应的宏块的图像数据的输入。这个步骤S38的处理是在上述条件1下的错误隐蔽处理。当步骤S38的处理完成时,MC控制器22结束这个流程的处理。
另一方面,如果宏块类型是中间宏块,那么,MC控制器22在步骤S39中判断对于作为解码目标的宏块,语法分析电路11是否提供了错误标志。也就是说,MC控制器22判断在作为解码目标的宏块中是否存在错误。如果不存在错误,处理转到步骤S40。如果存在错误,处理转到步骤S42。
在步骤S40中,MC控制器22判断包括在参考区中的宏块是否已经经过错误隐蔽,或者,与当前解码宏块处在相同位置的宏块是否已经经过错误隐蔽。
步骤S40中的这个判断可以通过例如执行如下程序做出。
   10:f_Vector_xr=f_Vector_x>>4

   20:f_Vector_yr=f_Vector_y>>4

   30:If(f_Vector_x%16!=0)

       If(f_Vector_x<0)f_x_flag=-1 else f_x_flag=1

       else f_x_flag=0

   40:If(f_Vector_y%16!=0)

       If(f_Vector_y<0)f_y_flag=-1 else f_y_flag=1

       else f_y_flag=0

   50:b_Vector_xr=b_Vector_x>>4

   60:b_Vector_yr=b_Vector_y>>4

   70:If(b_Vector_x%16!=0)

      If(b_Vector_x<0)b_x_flag=-1 else b_x_flag=1

      else b_x_flag=0

  80:If(b_Vector_y%16!=0)

      If(b_Vector_y<0)b_y_flag=-1 else b_y_flag=1
				
				<dp n="d16"/>
    else b_y_flag=0

  90:f_MB_flag={f_Error_Map[mb_adr_x+f_Vector_xr][mb_adr_y+f_
Vector_yr]or
f_Error_Map[mb_adr_x+f_Vector_xr+f_x_flag][mb_adr_y+f_Vector_yr]or
f_Error_Map[mb_adr_x+f_Vector_xr][mb_adr_y+f_Vector_yr+f_y_flag]or
f_Error_Map[mb_adr_x+f_Vector_xr+f_x_flag][mb_adr_y+f_Vector_yr+
f_y_flag]}

  100:b_MB_flag={b_Error_Map[mb_adr_x+b_Vector_xr][mb_adr_y+b_
Vector_yr]or
b_Error_Map[mb_adr_x+b_Vector_xr+b_x_flag][mb_adr_y+b_Vector_yr]or
b_Error_Map[mb_adr_x+b_Vector_xr][mb_adr_y+b_Vector_yr+b_y_flag]or
b_Error_Map[mb_adr_x+b_Vector_xr+b_x_flag][mb_adr_y+b_Vector_yr+
b_y_flag]}

  110:c_MB_flag=b_Error_Map[mb_adr_x][mb_adr_y]

  120:MB_flag=f_MB_flag or b_MB_flag or c_MB_flag

  130:if(MB_flag=1)Search_or_Future_MB_error=Yes

  140:if(MB_flag=0)Search_or_Future_MB_error=No
下面详细描述上述程序。
在行10,进行对通过二进制数表达的原始前向运动矢量沿着X方向的值(f_Vector_x)的4位右移操作,把所得的值代入变量f_Vector_xr中。由于一个宏块包括16×16个像素,当运动矢量沿着X方向的值除以16时,对每个像素表达的运动矢量的值可以被转换成对每个宏块表达的运动矢量。也就是说,在这个行10,计算按宏块转换的沿着X方向的前向运动矢量(f_Vector_xr)。前向运动矢量是引用过去参考帧的运动矢量。
在行20,进行对通过二进制数表达的原始前向运动矢量沿着Y方向的值(f_Vector_y)的4位右移操作,并且把所得的值代入变量f_Vector_yr中。也就是说,在这个行20,计算按宏块转换的沿着Y方向的前向运动矢量(f_Vector_yr)。
在行30,如果原始前向运动矢量沿着X方向的值(f_Vector_x)可以被16整除,将0代入变量f_x_flag中。如果f_Vector_x的值不能被16整除,并且是负的,将-1代入变量f_x_flag中。如果f_Vector_x的值不能被16整除,并且不是负的,将1代入变量f_x_flag中。也就是说,如果与过去参考帧有关的参考区沿着X方向的位置完全与宏块的边界位置吻合,将0代入f_x_flag中。否则,把1或-1代入f_x_flag中。如果位置不吻合,与过去参考帧有关的参考区沿着X方向位于两个宏块上。
在行40,如果原始前向运动矢量沿着Y方向的值(f_Vector_y)可以被16整除,将0代入变量f_y_flag中。如果f_Vector_y不能被16整除,并且是负的,将-1代入变量f_y_flag中。如果f_Vector_y不能被16整除,并且不是负的,将1代入变量f_y_flag中。也就是说,如果与过去参考帧有关的参考区沿着Y方向的位置完全与宏块的边界位置吻合,将0代入f_y_flag中。否则,把1或-1代入f_y_flag中。如果位置不吻合,与过去参考帧有关的参考区沿着Y方向位于两个宏块上。
在行50,进行对通过二进制数表达的原始后向运动矢量沿着X方向的值(b_Vector_x)的4位右移操作,把所得的值代入变量b_Vector_xr中。由于一个宏块包括16×16个像素,当运动矢量沿着X方向的值除以16时,对每个像素表达的运动矢量的值可以被转换成对每个宏块表达的运动矢量。也就是说,在这个行50,计算按宏块转换的沿着X方向的后向运动矢量(b_Vector_xr)。后向运动矢量是引用将来参考帧的运动矢量。
在行60,进行对通过二进制数表达的原始后向运动矢量沿着Y方向的值(b_Vector_y)的4位右移操作,把所得的值代入变量b_Vector_yr中。也就是说,在这个行60,计算按宏块转换的沿着Y方向的后向运动矢量(b_Vector_yr)。
在行70,如果原始后向运动矢量沿着X方向的值(b_Vector_x)可以被16整除,将0代入变量b_x_flag中。如果b_Vector_x的值不能被16整除,并且是负的,将-1代入变量b_x_flag中。如果b_Vector_x的值不能被16整除,并且不是负的,将1代入变量b_x_flag中。也就是说,如果与过去参考帧有关的参考区沿着X方向的位置完全与宏块的边界位置吻合,将0代入b_x_flag中。否则,把1或-1代入b_x_flag中。如果位置不吻合,与过去参考帧有关的参考区沿着X方向位于两个宏块上。
在行80,如果原始前向运动矢量沿着Y方向的值(b_Vector_y)可以被16整除,将0代入变量b_y_flag中。如果b_Vector_y不能被16整除,并且是负的,将-1代入变量b_y_flag中。如果b_Vector_y不能被16整除,并且不是负的,将1代入变量b_y_flag中。也就是说,如果与过去参考帧有关的参考区沿着Y方向的位置完全与宏块的边界位置吻合,将0代入b_y_flag中。否则,把1或-1代入b_y_flag中。如果位置不吻合,与过去参考帧有关的参考区沿着Y方向位于两个宏块上。
在行90,引用过去参考帧的错误映像表和找出错误映像表中与包括在参考区中的所有宏块(最多四个宏块)相对应的位值。计算这些值的逻辑和,并且将其代入变量f_MB_flag中。操作表达式f_Error_Map[X][Y]读出过去参考帧的错误映像表中地址X和Y的位置上的位。mb_adr_x指示当前解码宏块沿着X方向的地址,和mb_adr_y指示当前解码宏块沿着Y方向的地址。
在行100,引用将来参考帧的错误映像表和找出错误映像表中与包括在参考区中的所有宏块(最多四个宏块)相对应的位值。计算这些值的逻辑和,并且将其代入变量b_MB_flag中。操作表达式b_Error_Map[X][Y]读出将来参考帧的错误映像表中地址X和Y的位置上的位。
在行110,参考将来参考帧的错误映像表,找出错误映像表中对应与当前解码宏块处在相同位置上的宏块的位值,将其代入变量c_MB_flag中。
在行120,计算变量f_MB_flag、b_MB_flag和c_MB_flag的逻辑和,将其代入MB_flag中。
在行130和140,如果变量MB_flag是1,也就是说,如果MB_flag有效,那么,判断Search_or_Future_MB_error=Yes(与参考帧有关的错误映像表中与参考宏块相对应的位的值有效,或者与当前解码宏块处在相同位置上的宏块已经经过错误隐蔽)。如果变量MB_flag是0,也就是说,如果MB_flag无效,那么,判断Search_or_Future_MB_error=No(与参考帧有关的错误映像表中与参考宏块相对应的位的值无效,和与当前解码宏块处在相同位置上的宏块还没有经过错误隐蔽)。
通过执行上述行10到140的处理程序,MC控制器22可以判断参考区是否已经经过错误隐蔽,或者与当前解码宏块处在相同位置上的宏块是否已经经过错误隐蔽。如果MC控制器22判断参考区还没有经过错误隐蔽,处理转到步骤S41。如果MC控制器22判断参考区已经经过错误隐蔽,处理转到步骤S42。
在步骤S41中,MC控制器22利用语法分析电路11提供的运动矢量和宏块模式,进行普通运动补偿,然后,结束这个流程的处理。
在步骤S42中,MC控制器22把运动矢量的值设置成x=0和y=0,并且把后向预测模式设置成宏块模式。也就是说,MC控制器22设置运动矢量和宏块模式,以便引用将来参考帧中与作为解码目标的宏块处在相同位置的宏块。接着,在步骤S43中,MC控制器22利用在步骤S42中设置的运动矢量和宏块模式,进行运动补偿处理。在这个处理中,MC控制器22切换选择器21和将0设置为从离散余弦逆变换电路14供应的那个宏块的图像数据的输入。这个步骤S43中的处理是在上述条件2或3下的错误隐蔽处理。当步骤S43的处理完成时,MC控制器22结束这个流程的处理。
上述处理是MC控制器22对包括I-画面、P-画面和B-画面的流的处理。
现在,参照附图描述对包括I-画面、P-画面和B-画面的流的错误隐蔽处理的具体内容。
附图中的描述是与上述用于包括I-画面和P-画面的流的说明性条件相同的条件。在本例中,将描述具有P10、B9、I2、B1和P3的解码次序和B9、P10、B1、I2和P3的显示次序的基本流的处理。
首先,如图16所示,解码I-画面(I2)。假设I2包括存在传输错误的宏块(M3,M4)。在这种情况下,进行I2的宏块(M3,M4)的错误隐蔽处理。具体地说,利用P-画面(P10),即可以是I2的过去参考帧的帧的宏块(M3,M4)内插I2的宏块(M3,M4)。在I2的错误映像表(第二错误映像表)中,使宏块(M3,M4)的位有效。
接着,如图17所示,解码B-画面(B1)。
B1的宏块(M1)的参考区包括过去参考帧P10的宏块(M1-M4)和将来参考帧I2的宏块(M1,M2)。在这种情况下,由于过去参考帧P10的宏块M4已经经过了错误隐蔽处理,因此,进行B1的宏块(M1)的错误隐蔽处理。
由于B1的宏块(M2)是内部宏块,并且不存在错误,因此,不进行这个宏块的错误隐蔽处理。
B1的宏块(M3)的参考区包括过去参考帧P10的宏块(M3-M6)和将来参考帧I2的宏块(M3,M5)。在这种情况下,由于过去参考帧P10的宏块M4和将来参考帧I2的宏块M3已经经过了错误隐蔽处理,因此,进行B1的宏块M3的错误隐蔽处理。
B1的宏块(M4)的参考区不包括过去或将来参考帧的错误隐蔽宏块。但是,与B1的这个宏块M4处在相同位置上的将来参考帧I2的宏块M4已经经过了错误隐蔽处理。因此,还要进行B1的这个宏块M4的错误隐蔽处理。
接着,如图18所示,解码P-画面(P3)。
对于这个P-画面(P3),更新其中事先存储P-画面(P10)的错误隐蔽信息的第一错误映像表中的位。
如上所述,在基于本发明的MPEG解码设备10中,可以解码利用运动预测的编码数据。在这种MPEG解码设备10中,即使在帧中存在在传输等的时候遭受破坏的图像块,也可以进行错误隐蔽处理,以利用没有遭受破坏的另一个帧的图像块内插该图像块。因此,可以减少由于存在因错误而与周边正常图像极为不同的块所造成的视觉缺陷。
此外,在基于本发明的MPEG解码设备10中,即使正在解码的图像块在运动补偿中引用了包含错误的帧,也可以限制由于错误隐蔽处理引起的错误的传播和可以减少图像质量的劣化。
虽然根据在附图中所示的和在上面的说明中详细描述的本发明的某些优选实施例,已经对本发明进行了描述,但本领域的普通技术人员应该明白,本发明不局限于这些实施例,而可以在不偏离如所附权利要求所陈述和限定的本发明的精神和范围的情况下,实现各种各样的修改、可替代构造或等效物。
工业可应用性
在基于发明的图像解码设备和图像解码方法中,当引用错误映像表和发现错误块包括在包括在参考区中的块中时,或者,当解码目标块的动态图像编码数据遭受破坏时,对利用解码帧的像素内插解码目标块中的像素和输出所得块进行错误隐蔽处理,并且生成把错误隐蔽块视为错误块的错误映像表。因此,可以对利用运动补偿的错误隐蔽编码数据进行解码。在本发明中,即使在帧中存在在传输等的时候遭受破坏的图像块,也可以进行错误隐蔽处理,以利用没有遭受破坏的另一个帧的图像块内插该图像块。因此,可以减少由于存在因错误而与周边正常图像极为不同的块所造成的视觉缺陷。
此外,在基于本发明的图像解码设备中,即使正在解码的图像块在运动补偿中引用了包含错误的帧,也可以限制由于错误隐蔽处理引起的错误的传播和可以减少图像质量的劣化。

Claims (16)

1.一种解码通过编码系统编码的动态图像编码数据的图像解码设备,该编码系统用于将一个帧划分成数个块和进行每个块的运动补偿编码,该设备包括:
运动补偿装置,用于当运动预测编码块是解码目标块时,利用包括在图像编码数据中的运动预测信息指定解码帧中的参考区,和利用指定参考区的信息进行解码目标块的运动补偿;和
错误映像表保存装置,用于保存进行运动补偿时要引用的与解码帧有关的错误映像表;
其中,在错误映像表中显示存在于解码帧中的错误块,和
当引用错误映像表和发现在包括在参考区中的块中包括错误块时,或者,当解码目标块的动态图像编码数据遭受破坏时,运动补偿装置进行错误隐蔽处理,以利用解码帧的像素内插解码目标块中的像素和输出所得数据,然后,生成把错误隐蔽块显示成错误块的错误映像表,并且把错误映像表存储在错误映像表保存装置中。
2.根据权利要求1所述的图像解码设备,其中,当进行错误隐蔽处理时,运动补偿装置利用与解码目标块处在相同位置上的解码帧的像素内插解码目标块中的像素。
3.根据权利要求1所述的图像解码设备,其中,当对只包括没有引用另一个帧而编码的块的帧内预测帧进行错误隐蔽处理时,或者对包括没有引用另一个帧而编码的块和参考过去帧进行运动预测的块的前向预测帧进行错误隐蔽处理时,运动补偿装置利用包括解码目标块的帧之前的过去帧中的像素,内插解码目标块中的像素。
4.根据权利要求3所述的图像解码设备,其中,当对帧内预测帧进行错误隐蔽处理时,运动补偿装置利用正好在帧内预测帧之前的前向预测帧的像素内插解码目标块中的像素。
5.根据权利要求3所述的图像解码设备,其中,当对前向预测帧进行错误隐蔽处理时,运动补偿装置利用前向预测帧的参考帧的像素内插解码目标块中的像素。
6.根据权利要求1所述的图像解码设备,当对能参考过去和/或将来帧进行运动预测的双向预测帧进行错误隐蔽处理时,运动补偿装置利用包括解码目标块的帧之后的将来参考帧的像素内插解码目标块中的像素。
7.根据权利要求6所述的图像解码设备,其中,当对双向预测帧进行错误隐蔽处理时,运动补偿装置利用双向预测帧的将来参考帧的像素内插解码目标块中的像素。
8.根据权利要求1所述的图像解码设备,其中,当对能参考过去和/或将来帧进行运动预测的双向预测帧进行运动补偿时,如果双向预测帧的将来参考帧的那些块中,与解码目标块处在相同位置上的块已经经过错误隐蔽,运动补偿装置利用将来参考帧的像素内插解码目标块中的像素。
9.一种解码通过编码系统编码的动态图像编码数据的图像解码方法,该编码系统用于将一个帧划分成数个块和进行每个块的运动补偿编码,该方法包括:
利用包括在图像编码数据中的运动预测信息指定解码帧中的参考区,然后,利用指定参考区的信息进行解码目标块的运动补偿,从而解码动态图像编码数据;
其中,在进行运动补偿中,
当引用显示存在于解码块之中的错误块的错误映像表和发现在包括在参考区中的块中包括错误块时,或者,当解码目标块的动态图像编码数据遭受破坏时,进行错误隐蔽处理以利用解码帧的像素内插解码目标块中的像素和输出所得数据,和
生成把错误隐蔽块显示成错误块的错误映像表。
10.根据权利要求9所述的图像解码方法,其中,当进行错误隐蔽处理时,利用与解码目标块处在相同位置上的解码帧的像素内插解码目标块中的像素。
11.根据权利要求9所述的图像解码方法,其中,当对只包括没有引用另一个帧而编码的块的帧内预测帧进行错误隐蔽处理时,或者对包括没有引用另一个帧而编码的块和参考过去帧进行运动预测的块的前向预测帧进行错误隐蔽处理时,利用包括解码目标块的帧之前的过去帧中的像素内插解码目标块中的像素。
12.根据权利要求11所述的图像解码方法,其中,当对帧内预测帧进行错误隐蔽处理时,利用正好在帧内预测帧之前的前向预测帧的像素内插解码目标块中的像素。
13.根据权利要求11所述的图像解码方法,其中,当对前向预测帧进行错误隐蔽处理时,利用前向预测帧的参考帧的像素内插解码目标块中的像素。
14.根据权利要求9所述的图像解码方法,当对能参考过去和/或将来帧进行运动预测的双向预测帧进行错误隐蔽处理时,利用包括解码目标块的帧之后的将来参考帧的像素内插解码目标块中的像素。
15.根据权利要求14所述的图像解码方法,其中,当对双向预测帧进行错误隐蔽处理时,利用双向预测帧的将来参考帧的像素内插解码目标块中的像素。
16.根据权利要求9所述的图像解码方法,其中,当对能参考过去和/或将来帧进行运动预测的双向预测帧进行运动补偿时,如果双向预测帧的将来参考帧的块中与解码目标块处在相同位置上的块已经经过错误隐蔽,利用将来参考帧的像素内插解码目标块中的像素。
CNA038009293A 2002-05-27 2003-05-27 图像解码设备和图像解码方法 Pending CN1547857A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002152717A JP2003348594A (ja) 2002-05-27 2002-05-27 画像復号装置及び方法
JP152717/2002 2002-05-27

Publications (1)

Publication Number Publication Date
CN1547857A true CN1547857A (zh) 2004-11-17

Family

ID=29561282

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA038009293A Pending CN1547857A (zh) 2002-05-27 2003-05-27 图像解码设备和图像解码方法

Country Status (5)

Country Link
US (1) US7248633B2 (zh)
JP (1) JP2003348594A (zh)
KR (1) KR20050012706A (zh)
CN (1) CN1547857A (zh)
WO (1) WO2003101118A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102006467A (zh) * 2009-09-01 2011-04-06 索尼公司 视频发送装置、视频接收装置、视频发送方法及视频接收方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070086152A (ko) * 2004-11-16 2007-08-27 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 인코딩된 데이터 프레임의 시퀀스의 오염 표시를 결정하는방법 및 장치와, 모바일 장치 및 컴퓨터 프로그램 제품
JP2006345445A (ja) * 2005-06-10 2006-12-21 Sony Corp 動画像変換装置、および動画像変換方法、並びにコンピュータ・プログラム
KR101493407B1 (ko) * 2005-12-07 2015-02-16 톰슨 라이센싱 기준 프레임 선택 규칙을 사용하는 비디오 에러 은폐를 위한 방법 및 장치
JP4518111B2 (ja) * 2007-07-13 2010-08-04 ソニー株式会社 映像処理装置、映像処理方法、及びプログラム
FR2920632A1 (fr) * 2007-08-31 2009-03-06 Canon Kk Procede et dispositif de decodage de sequences video avec masquage d'erreurs
ES2681526T3 (es) * 2010-01-11 2018-09-13 Telefonaktiebolaget Lm Ericsson (Publ) Técnica para estimación de calidad del vídeo
GB2480224B (en) * 2010-01-29 2014-08-20 Canon Kk Decoding a sequence of digital images with error concealment
US9973748B1 (en) * 2013-04-26 2018-05-15 Mediatek Inc. Multi-core video decoder system for decoding multiple coding rows by using multiple video decoder cores and related multi-core video decoding method
US20140376611A1 (en) * 2013-06-21 2014-12-25 Qualcomm Incorporated Adaptive color transforms for video coding
CN114915842A (zh) * 2021-02-08 2022-08-16 晶晨半导体(上海)股份有限公司 视频数据处理方法、模块、芯片及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247363A (en) * 1992-03-02 1993-09-21 Rca Thomson Licensing Corporation Error concealment apparatus for hdtv receivers
JP3297293B2 (ja) 1996-03-07 2002-07-02 三菱電機株式会社 動画像復号方法および動画像復号装置
JP3604290B2 (ja) * 1998-09-25 2004-12-22 沖電気工業株式会社 動画像復号方法及び装置
AU2002245609A1 (en) * 2001-03-05 2002-09-19 Intervideo, Inc. Systems and methods of error resilience in a video decoder

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102006467A (zh) * 2009-09-01 2011-04-06 索尼公司 视频发送装置、视频接收装置、视频发送方法及视频接收方法
CN102006467B (zh) * 2009-09-01 2013-07-17 索尼公司 视频发送装置、视频接收装置、视频发送方法及视频接收方法

Also Published As

Publication number Publication date
KR20050012706A (ko) 2005-02-02
US20040240547A1 (en) 2004-12-02
WO2003101118A1 (en) 2003-12-04
US7248633B2 (en) 2007-07-24
JP2003348594A (ja) 2003-12-05

Similar Documents

Publication Publication Date Title
CN1305311C (zh) 图像编码装置、图像解码装置、图像编码方法、及图像解码方法
CN1214647C (zh) 图像编码方法和图像编码器
CN1220391C (zh) 图像编码装置、图像译码装置、图像编码方法和图像译码方法
CN1134992C (zh) 图像预测解码方法
CN1208971C (zh) 运动图像的预测编码方法和译码方法
CN1225126C (zh) 用于视频编码的新型空间预测方法及其装置
CN1264333C (zh) 视频编码方法及设备、视频译码方法及设备
CN1910933A (zh) 图像信息编码装置和图像信息编码方法
CN1469632A (zh) 视频编码/解码方法和设备
CN1692653A (zh) 活动图像编码/解码方法和设备
CN1910931A (zh) 视频编码方法及装置、视频解码方法及装置、其程序及记录该程序的记录介质
CN1605213A (zh) 跳过宏块编码
CN1742488A (zh) 用于编码和解码立体视频的方法和装置
CN1835595A (zh) 图像编码/解码方法及其装置
CN101044763A (zh) 编码器辅助式自适应视频帧内插
CN1620821A (zh) 图像信息编码装置和图像信息编码方法、图像信息解码装置和图像信息解码方法
CN1926875A (zh) 运动补偿方法
CN1230081A (zh) 提高了处理效率的图象声音处理装置
CN1518835A (zh) 动态图像编码方法及动态图像解码方法
CN1270541C (zh) 编码设备和方法
CN101032173A (zh) 编码装置、编码方法、编码方法的程序及其记录介质
CN1652608A (zh) 数据处理装置及其方法以及编码装置和解码装置
CN1225919C (zh) 编码图像信息的方法和设备及解码图像信息的方法和设备
CN1547857A (zh) 图像解码设备和图像解码方法
CN1240225C (zh) 图像编码装置以及图像编码方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication