误差补偿方法及视频处理装置 【技术领域】
本发明有关于视频译码,更特别地,有关于误差补偿方法及视频处理装置。
背景技术
随着电子装置(例如电视和计算机)的发展,静态和/或移动影像可由显示装置显示。通常,所述多个影像是可被储存、复制、传送、操纵、处理、压缩和/或删除的电子视频数据。因此,影像数据若丢失或损坏,将导致在显示帧(frame)上出现误差(例如误差数据段)。对于观测者来说,影像误差是可被观测到的突兀现象(distraction),将使影像尺寸和形状上发生变化。此外,对于参考此影像误差的移动影像的帧而言,误差的累积作用将被加乘。特别是对于观测者来说,所述误差是一个特别容易被观测到的突兀现象。
【发明内容】
为解决视频数据中的误差影响显示效果的技术问题,本发明目的之一在于提供一种误差补偿方法及视频处理装置。
本发明提供一种误差补偿方法,用以对比特流进行误差补偿,其中所述方法包括:检测比特流的当前帧的误差;以及当检测到误差时,从位于第二宏模块之前的第一宏模块开始对当前帧执行误差补偿处理,其中第二宏模块与已检测的误差关联。
本发明再提供一种视频处理装置,其中所述装置包括:帧缓冲器;视频译码器,用以接收和译码比特流,以产生已译码的数据,并用以检测已译码的数据的当前帧的误差;模式决定单元,用以接收来自视频译码器的已检测的误差的信息,并用以根据已接收的信息,决定误差补偿处理的模式;以及误差补偿单元,用以接收已译码的数据,并用以根据已决定的模式,对已译码的数据执行误差补偿处理,从而产生并转送已消除误差的视频数据至帧缓冲器。
本发明另提供一种误差补偿方法,用以对比特流进行误差补偿,其中所述方法包括:检测比特流的当前帧的误差;检测与已检测的误差关联的宏模块的地址;检测位于已检测的误差之后的第一正常宏模块的地址;根据宏模块的已检测的地址及以第一正常宏模块的已检测的地址,决定当前帧的多个宏模块的起始地址和终止地址,用以执行误差补偿处理;以及根据已决定的起始地址和终止地址,对当前帧执行误差补偿处理。
利用本发明所提供的误差补偿方法及视频处理装置,能对视频数据中的误差进行补偿,从而消除误差对显示效果的影响。
【附图说明】
图1为根据本发明一实施例的具有误差补偿单元的视频处理装置的方块示意图;
图2为显示当前帧的误差示意图;
图3为根据本发明又一实施例的具有误差补偿单元的视频处理装置的方块示意图;
图4为根据本发明另一实施例的具有误差补偿单元的视频处理装置的方块示意图;
图5为根据本发明一实施例的误差补偿方法流程图;
图6为根据本发明另一实施例的误差补偿方法流程图;
图7a和图7b为当产生移动向量误差时误差补偿处理的示意图。
【具体实施方式】
图1为根据本发明一实施例的具有误差补偿单元的视频处理装置的方块示意图。解析(parsing)单元11接收并解析比特流,用以产生已解析的数据。解析单元11进一步检测比特流,并决定所述比特流的数据中是否有误差产生。当检测到误差时,解析单元11将已检测的误差的信息和已解析的视频数据传送至误差补偿单元13。误差补偿单元13可丢弃(discard)检测到误差的当前帧,并基于来自帧缓冲器14的至少一个参考帧而产生一个新帧。在一实施例中,误差补偿单元13用一先前帧代替当前帧。
如果解析单元11没有检测到误差,则传送已解析地数据至译码器12。当译码器12对来自解析单元11的视频数据正常译码时,已译码的视频数据被传送并储存在帧缓冲器14。同样地,译码器12可检测视频数据的当前帧是否包含误差。如果包含误差,视频数据以及已检测的误差的信息被传送至误差补偿单元13。如果解析单元11或译码器12检测到误差,误差补偿单元13对已损坏的视频数据(包含误差的视频数据)提供误差补偿处理,用以产生新视频数据,然后传送所述新视频数据至帧缓冲器14。
通常,只对宏模块(macroblock,MB)A或者只对MB A之后的多个MB执行误差补偿处理,其中,MB A与已检测的误差关联,例如第一次检测到误差。即,习知的误差补偿处理只对从检测到误差的第一MB(例如MB A)开始或位于第一MB之后的多个MB进行执行。然而,本实施例对位于与已检测的误差关联的MB A之前的MB B执行误差补偿处理。在另一实施例中,MB B可位于MB A之后,或在MB B和MB A之间存在多个MB。
图2为显示当前帧的误差示意图。数字21代表帧的一基本单元MB。数字22代表包含多个MB的MB列,其中所述MB列所包含的MB的数量由视频标准或视频传输标准而决定。数字23代表包含多个MB的片段,其中一个片段的大小由视频标准或视频传输标准而决定。数字24代表能检测到误差的第一MB,数字25代表误差的末端,数字27代表位于误差后的第一正常MB。在图2中,用阴影格表示的缺陷MB(即存在误差的MB)位于片段23内。通常,对缺陷MB进行误差补偿处理,误差补偿处理将当前帧中的缺陷MB替换为第一帧(例如先前帧或参考帧)中相应地址的正常MB。如图2所示,在MB 24中检测到误差,然而,位于MB 24之前的视频数据可能不符合观测者的预想。因此,在本发明一实施例中,将误差补偿处理应用于位于MB 24之前的多个MB中。更特别地是,将误差补偿处理应用于位于MB 24之前的单个MB中,例如MB 26,并且,位于MB 26和MB 25之间的包括MB 24的多个MB通常由其它的视频数据替换,例如由先前帧或参考帧的相应的多个MB替换。在一实施例中,也可根据已检测的误差的类型,对MB、MB列或片段基底执行误差补偿处理。
例如,如果已检测的误差是通常发生在靠近MB 24的MB中的离散余弦转换(Discrete Cosine Transform,DCT)系数误差,则对MB基底执行误差补偿处理,即执行于单个MB中。更特别地是,对位于MB 24之前的一个预先决定的MB和MB 27之间的多个MB执行误差补偿处理,其中预先决定的MB可为靠近MB 24的MB(例如MB 26),或为位于MB 24之前的多个MB中的一个。在另一实施例中,从位于MB 24之前的一个预先决定的MB开始、或从所述预先决定的MB之后开始,对所有MB执行误差补偿处理。如果误差是移动向量误差,则对MB列基底执行误差补偿处理,即将与预先决定的MB关联的MB列(包含预先决定的MB的MB列)替换为第一帧中相应的MB列。作为选择,可将与预先决定的MB、MB 24以及MB 25关联的MB列替换为第一帧的相应的MB列。请参考图7a和图7b,图7a和图7b为当产生移动向量误差时,误差补偿处理的示意图。在图7a中,误差73出现在当前帧71的MB列72a、72b和72c中,其中MB 701是位于误差73的第一MB之前的预先决定的MB。误差补偿处理在先前帧72中选择与预先决定的MB 701关联的MB列,即MB列74a(MB列74a位于先前帧72的地址相应于MB列72a位于当前帧71的地址),并将有缺陷的MB列72a替换为MB列74a。作为选择,误差补偿处理在先前帧72中选择关联的MB列,即MB列74a、74b和74c,并将有缺陷的MB列72a、72b和72c分别替换为MB列74a、74b和74c。需注意的是,误差补偿处理根据先前帧进行替换只是一种实施例,本发明并不仅限于此。
此外,如果已检测的误差是参考前文的适应性二进制算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC)误差,则对片段基底执行误差补偿处理,即,与预先决定的MB关联的片段(包含预先决定的MB的片段)可由第一帧相应的片段替换。作为选择,与预先决定的MB关联的片段,即如图2所示的MB 24和MB 25可由第一帧相应的片段替换。如图2所示,片段23由第一帧相应的片段替换。
图3为根据本发明又一实施例的具有误差补偿单元的视频处理装置的方块示意图。视频译码器31接收并译码比特流,用以产生已译码的数据。视频译码器31进一步检测已译码的数据的当前帧中是否有误差产生。当检测到误差时,视频译码器31将已译码的数据的当前帧和已检测的误差的信息(例如误差类型)分别传送至误差补偿单元35和模式决定单元33。如果没有检测到误差,则直接传送已译码的数据的当前帧至帧缓冲器34。当模式决定单元33接收到已检测的误差的信息时,模式决定单元33根据已检测的误差的信息决定误差补偿处理的模式。在本发明一实施例中,已检测的误差的信息包括已检测的误差的类型。在此情况下,模式决定单元33根据已检测的误差的类型决定误差补偿处理的模式。已检测的误差的类型可为DCT系数误差、CABAC误差、移动向量误差或类似的误差。误差补偿处理的模式包括MB、MB列和片段模式。当决定了模式以后,模式决定单元33将决定的结果传送至误差补偿单元35,用以对已译码的数据执行相应的误差补偿处理。误差补偿单元35相应地产生并转送已消除误差的视频数据至帧缓冲器34。误差补偿处理的操作与图1的描述相似。更特别地,误差补偿单元35对当前帧执行误差补偿处理,从位于第二MB之前的第一MB开始执行,其中第二MB与已检测的误差关联。在本发明的另一实施例中,误差补偿单元35从第一MB开始,将当前帧的多个MB替换为第一帧的相应的多个MB,其中第一帧是当前帧的先前帧或当前帧的参考帧。当模式决定单元33决定误差补偿处理的模式为MB模式时,误差补偿单元35对MB基底执行误差补偿处理。当模式决定单元33决定误差补偿处理的模式为MB列模式时,误差补偿单元35将与第一MB和第二MB关联的MB列替换为第一帧的相应的MB列。相似地,当模式决定单元33决定误差补偿处理的模式为片段模式时,误差补偿单元35将与第一MB和第二MB关联的片段替换为第一帧的相应的片段。
图4为根据本发明另一实施例的具有误差补偿单元的视频处理装置的方块示意图。视频译码器41包括霍夫曼(Huffman)译码器42、反相转换单元43和移动补偿单元44。霍夫曼译码器42、反相转换单元43和移动补偿单元44连续地传送和处理比特流。在图4中,需注意的是,来自霍夫曼译码器42的数据可直接传送至移动补偿单元44。移动补偿单元44从帧缓冲器46中检索一参考帧,用以处理已接收到的影像数据。一旦霍夫曼译码器42、反相转换单元43或移动补偿单元44检测到误差,就将数据传送至误差补偿单元45,用以消除误差。误差补偿单元45接收来自帧缓冲器46的第一帧,例如相应的参考帧或先前帧,并根据第一帧消除误差。然后误差补偿单元45相应地传送已消除误差的数据至帧缓冲器46。此外,在另一实施例中,误差补偿单元45可基于误差类型执行不同的误差补偿处理。如果霍夫曼译码器42、反相转换单元43和移动补偿单元44没有检测到误差,就将数据传送至帧缓冲器46。
图5为根据本发明一实施例的误差补偿方法流程图。在步骤S51中,视频译码器接收并译码比特流。然后进入步骤S52,在步骤S52中,决定在比特流中是否检测到误差。当在步骤S52中检测到比特流的当前帧存在误差时,则进入步骤S54。在步骤S54中,对当前帧执行误差补偿处理。如果在步骤S52中没有检测到比特流的当前帧存在误差,则进入步骤S53。在步骤S53中,传送已译码的帧至帧缓冲器。如前所述,当在步骤S54中执行误差补偿处理时,从位于第二MB之前的第一MB开始,对当前帧的多个MB执行误差补偿处理,其中第二MB与已检测的误差关联,例如第一次检测到误差的MB。在另一实施例中,第一MB可为靠近第二MB的MB,或在第一MB和第二MB之间存在多个MB。步骤S55紧跟步骤S54,在步骤S55中,传送已处理的当前帧至帧缓冲器。
另外,根据已检测的误差的类型,步骤S54中的误差补偿处理可在MB,MB列或片段基底上执行。例如,当误差是DCT系数误差时,可对位于第二MB之前的第一MB执行误差补偿处理,其中第二MB与MB基底的已检测的误差关联,例如第一次检测到误差。如果误差是移动向量误差,可将与第一MB和第二MB关联的MB列替换为第一帧的MB列,其中用以替换的第一MB列位于与当前帧的被替换的MB列相应的地址。第一帧可为当前帧的先前帧或当前帧的参考帧。此外,如果误差是CABAC误差,将与第一MB和第二MB关联的片段替换为第一帧的相应的片段,其中用以替换的第一帧的片段位于与当前帧的被替换的片段相应的地址。相似地,第一帧可为当前帧的先前帧或当前帧的参考帧。
图6为根据本发明另一实施例的误差补偿方法流程图。在步骤S61中,决定单元决定在比特流的当前帧中是否存在误差,并检测与当前帧的误差关联的MB的地址。在误差检测完成后,决定单元检测跟随与误差关联的MB的第一正常MB的地址。在步骤S62中,影像处理单元决定当前帧的多个MB的起始地址和终止地址,用以根据与误差和第一正常MB关联的MB的已检测的地址执行误差补偿处理。在步骤S63中,将当前帧的多个MB从起始地址到终止地址替换为第一帧相应的多个MB,其中第一帧是当前帧的先前帧或当前帧的参考帧。
上述的实施例仅用来例举本发明的实施样态,以及阐释本发明的技术特征,并非用来限制本发明的范畴。任何所属领域的技术人员可依据本发明的精神轻易完成的改变或均等性的安排均属于本发明所主张的范围,本发明的权利范围应以权利要求为准。