基于图样信息的自适应滤波的制作方法

文档序号:7978368阅读:116来源:国知局
基于图样信息的自适应滤波的制作方法
【专利摘要】编码包括帧的视频数据包括:从帧的压缩数据生成重构帧;至少部分地基于个体像素的图样信息,将重构帧的至少一些像素划分为多个具有一个或更多个像素的段;针对所述多个段的一个或更多个段中的每个段,生成相应的滤波器信息。生成包括帧的压缩数据和所生成的滤波器信息的编码的视频数据。
【专利说明】基于图样信息的自适应滤波
【技术领域】
[0001]本申请大体涉及编码和解码视频数据,以及具体地涉及基于图样信息进行自适应滤波的技术。
【背景技术】
[0002]编码和解码视频的一些标准(例如,ITU-T H.264 / AVC视频编码标准)使用基于块的编码处理。在这些处理中,为了压缩由若干画面帧组成的视频序列,将帧分为块(例如,4x4、8x8、16xl6、32x32或64x64像素块)。通过这种方式,将编码整个视频序列的任务拆散为编码每个块,其中,按特定的顺序(例如,光栅顺序)编码帧内的块。编码块的处理包括执行变换(例如,离散余弦变换(DCT))。在很多情况下,被变换的数据不是实际的像素数据,而是预测操作之后的残留数据。例如,为了编码具体的像素块(称为“当前块”),基于对之前编码的块的重构来导出相同大小的预测(称为“参考块”)。参考块可以来自不同的帧(称为“帧间预测”)或相同的帧(称为“帧内预测”)。重构涉及解码之前编码的块,然后将其用于预测其他块。在所谓的“编码循环”内,在解码器和编码器处均执行影响预测的解码操作。可以由解码器在编码循环之后可选地执行附加操作,包括所谓的“后滤波”或“环后滤波”。例如,后滤波可以包括应用解块滤波器。解块处理减轻重构视频中由块造成的伪像(例如,靠近块边界),并且可以涉及编码循环内和/或编码循环外的滤波。可以在解块处理之后包括基于帧的自适应后滤波,以进一步通过降低量化噪声来提高重构质量。基于视频数据的特性的滤波被称为“自适应”滤波。
【专利附图】

【附图说明】
[0003]图1是示例通信系统的框图。
[0004]图2A是示例视频编码器的框图。
[0005]图2B是示例视频解码器的框图。
[0006]图3是对基于图样信息确定段和滤波器的示例过程进行说明的示意图。
[0007]图4A-4D是不例图样/[目息的不意图。
[0008]图5A-5C是与对应标签相关联的示例图样的示意图。
[0009]图6A是来自测试视频序列的重构帧的示例图像。
[0010]图6B-6D是滤波器生成结果的图。
[0011]图7A是不例编码过程的流程图。
[0012]图7B是不例解码过程的流程图。
[0013]图8A是示例编码器装置的框图。
[0014]图8B是示例解码器装置的框图。
【具体实施方式】
[0015]本文中描述的滤波技术可应用于视频数据,包括被压缩以用于通信或存储并由任何的各种设备解压缩的数据。图1示出了用于在通过网络104连接的一个或更多个节点101、102a-102e之间传送数据(包括视频或其他媒体数据)的示例系统100。在本示例中,节点101从一个或更多个源(未示出)接收帧106的序列,源例如是视频相机或存储器介质中存储的视频,或者是可以检测、导出、捕捉、存储或记录视觉信息(例如视频或图像)的任何其他源。在一些实现中,源可以与节点101通信,或者可以是节点101的一部分。节点101包括编码帧106以生成编码的视频数据的流或文件的编码器模块108。节点101可被配置为使用本文中描述的技术来生成滤波器,以在对编码的视频数据解码时使用,该滤波器可由流或文件中包括的滤波器信息来指定。在本示例中,向耦合到网络104的节点102a提供编码的视频数据。备选地,节点101可自身耦合到网络104,或者编码的视频数据也可或备选地本地存储,以用于稍后传输或输出,例如存储在非易失性存储器或其他存储介质中。
[0016]节点102a向耦合到网络104的任何各种其他节点102b_102e (例如,移动设备、电视、计算机等)发送编码的视频数据(例如,作为流或文件)。节点102a可以包括发射机,发射机被配置为可选地执行附加编码(例如,信道编码,如前向纠错编码)并将数据调制到要通过网络104发送的信号上。节点102b从网络104接收并解调信号,以恢复编码的视频数据。节点102b包括对编码的视频数据解码并生成重构帧112的序列的解码器模块110。重构处理可以包括自适应滤波,通过应用由与编码的视频数据一起发送的滤波器信息指定的滤波器来执行自适应编码。在一些实现中,节点102b可以包括用于呈现重构帧112的显示器。节点102b可以包括用于存储编码的视频数据用于稍后解码的存储介质,包括在节点102b没有耦合到网络104时。
[0017]网络104可以包括任何数目的彼此互连的网络。网络104可以包括任何类型和/或形式的网络,包括以下网络中的任何网络:广域网(例如,因特网)、局域网、电信网络、数据通信网络、计算机网络、无线网络、有线网络、点对点网络和广播网络。网络可以包括任何数目的转发器、装置、设备、服务器、存储介质和队列。
[0018]在下面的描述中参考二维视频编码/解码来描述滤波技术的示例实施例,然而,滤波技术也可应用于包括附加视图或维度的视频编码/解码,包括多视图视频编码(MVC)和三维(3D)视频,或者视频编码/解码方案的扩展,如可伸缩视频编码(SVC)。
[0019]在下面的描述中,在一定程度上互换使用术语画面、帧和片。例如,在H.264标准的情况下,帧可以包含一个或更多个片。还将意识到,取决于可应用的视频编码标准的具体要求,特定的编码/解码操作逐帧执行,而一些编码/解码操作逐片执行。在任何具体的实施例中,视情况而定,可应用的视频编码标准可以确定是否结合帧和/或片来执行下面描述的操作。
[0020]现在参考图2A,图2A示出了用于编码视频的编码器200的框图。还参考图2B,图2B示出了用于解码视频的解码器250的框图。将意识到,可以将在此描述的编码器200和解码器250各自在专用计算设备或者通用计算设备上实现,该专用计算设备或者通用计算设备包含一个或更多个处理单元和存储器。视情况而定,可以例如通过专用集成电路的方式来实现编码器200或解码器250执行的操作(例如,使用各种“处理器”模块),或者通过通用处理器可执行的已存储程序指令的方式来实现。设备可以包括附加软件,例如包括用于控制基本设备功能的操作系统。
[0021]编码器200从源(例如,视频源)接收数据212,并产生编码的视频数据214和滤波器信息242,可将其在单个比特流中一起提供。解码器250接收包含编码的视频数据214和滤波器信息242的比特流(作为解码器250的输入数据),并输出解码的视频帧216。可以将编码器200和解码器250配置为依照多种视频压缩标准进行操作。例如,编码器200和解码器250可以遵循H.264 / AVC0在其他实施例中,编码器200和解码器250可以符合其他视频压缩标准,包括H.264 / AVC标准的演进,例如高效视频编码(HEVC)标准。
[0022]编码器200包括变换处理器222、量化器224和熵编码器226。输入数据212例如包括组织各个帧处的空间域数据的帧作为像素数据块,可将其进一步组织为由多个像素块构成的“宏块”或“编码单元”。像素数据块各自包括像素数据的二维阵列,其中,每个像素表示至少一个值(例如,表示整体强度的亮度值,或包括色彩信息的色度值)。变换处理器222执行对空间域数据的变换。具体地,变换处理器222应用基于块的变换,以将空间域数据(在空间域中具有维度X和y)转换为变换域(具有表示空间频率的维度fx和fy)中的频谱分量。例如,在很多实施例中,使用离散余弦变换(DCT)。在一些实例中可以使用其他变换,例如离散正弦变换或者其他变换。取决于宏块的大小,基于宏块或子块来执行基于块的变换。在H.264标准中,例如,典型的16x16宏块包含16个4x4变换块,以及基于4x4的块执行DCT处理。在一些情况下,变换块可以是8x8的,意味着每个宏块有4个变换块。在有一些情况下,变换块可以具有其他大小(例如,16xl6、32x32或64x64,或者在空间域中在X和I维度上具有不同数目的像素,并在变换域中在fx和fy维度上具有不同数目的系数的矩形块)。量化器224对变换域系数的块进行量化。然而,由熵编码器226对已量化的系数和相关息进行编码。
[0023]预测器236提供参考块,以通过从正被编码的输入数据212的当前块减去参考块来执行预测。预测器236包括用于确定适当编码模式的模块,例如,正在编码的帧/片是I类型、P类型还是B类型。在不参考其他帧/片的情况下对帧内编码帧/片(即,类型I)进行编码。换言之,其不使用时间预测。然而,帧内编码帧确实依赖于帧/片内的空间预测。亦即,当对具体的块编码时,可将块中的数据与在已经针对该帧/片编码的块内附近的像素的数据进行比较,以找到类似的参考块。使用不同的处理器238(例如,减去对应的像素值),将参考块的像素数据从当前块的像素数据中减去,以生成残留数据的块。变换处理器222然后将残留数据转换为变换域中的系数。例如,H.264针对4x4变换块规定的9种空间预测模式,以及HEVC规定了附加的空间预测模式。在一些实施例中,可以使用多种模式来独立地处理块,并在然后使用速率失真优化来选择最佳模式。
[0024]运动预测/补偿使得编码器200可以利用时间预测。相应地,编码器200具有反馈环路,反馈环路包括解量化器228、逆变换处理器230和环内处理器232。这些单元对由解码器250执行的解码处理的环内部分进行镜像,以在应用任何环后处理之前再现帧/片。使用帧存储器234来存储再现帧。通过这种方式,运动预测基于解码器250处的重构帧将是什么,而不基于原始的帧,由于编码/解码中所涉及的有损压缩,原始帧与重构帧可能不同。在执行运动预测/补偿时,运动预测器236使用存储在帧存储器234中的帧/片作为源帧/片,以用于为了识别类似的块而与当前帧进行的比较。相应地,对于应用了运动预测的块,变换处理器222所编码的“源数据”是从运动预测过程产生的残留数据。例如,其可以包括与参考帧、空间位移或者“运动矢量”、以及对参考块与当前块之间的差(如果有)进行表示的残留像素数据有关的信息。变换处理器222和/或量化器224不是必须对与参考帧和/或运动矢量有关的信息进行处理,而是可以将其提供给熵编码器226,以作为比特流的一部分与量化系数一起编码。
[0025]编码器200还包括滤波器处理器240。滤波器处理器240处理编码器200正在编码的视频数据,以确定要由解码器250应用于重构视频数据的滤波器的参数。滤波器处理器240生成滤波器信息242,可以从滤波器信息242提取滤波器的参数(例如,Wiener滤波器的系数)。如下面参考图3和图4A-4D更详细地描述的,滤波器处理器240被配置为分析对要被滤波的视频数据进行表征的图样信息,以实现改进的滤波。可以将滤波器信息242与编码的视频数据214包括在相同的压缩流中,可以使用任何的各种技术来将具体的滤波器信息与要滤波的对应视频数据相关联。在一些实现中,提供滤波器信息242,以用于解码器250处的(由环后处理器进行的)后滤波。备选地,可以提供滤波器信息,以用于(由环内处理器进行的)环内滤波,或用于环内滤波和后滤波二者。可选地,如果正在执行环内滤波,滤波器处理器240向环内处理器232提供滤波器信息。
[0026]解码器250包括熵解码器252、去量化器254、逆变换处理器256、环内处理器260和环后处理器264。帧缓冲器258提供由预测器262在应用空间预测和运动补偿中使用的重构帧。附加处理器266表示以下操作:从来自预测器262的之前解码的参考块和来自逆变换处理器256的解码残留块,恢复针对要提供给环内处理器260的特定重构块的视频数据。
[0027]熵解码器252接收并解码视频数据214,以恢复量化系数。接收并向环后处理器264提供滤波器信息242,以向环内处理器260提供的重构帧应用适当的后滤波来生成从解码器250输出的解码视频帧216。在熵解码处理期间还可以恢复边带信息,可以将其中的一些提供给运动补偿环路,以在运动补偿(如果可应用)中使用。例如,针对帧间编码宏块,熵解码器252可以恢复运动矢量和/或参考帧信息。
[0028]解量化器254对熵解码器252恢复的量化系数进行解量化,以产生变换域系数,然后将变换域系数经过逆变换处理器256的逆变换来重新创建“视频数据”。在一些情况下,例如在帧内编码宏块的情况下,重新创建的“视频数据”是相对于帧内之前解码的块在空间补偿中使用的残留数据。解码器250从残留数据生成视频数据,以及从之前解码的块生成像素数据。在其他情况下,例如在帧间编码宏块的情况下,来自逆变换处理器256的重新创建的“视频数据”是相对于来自不同帧的参考块在运动补偿中使用的残留数据。
[0029]在执行运动补偿时,预测器262将参考块放置在针对特定的帧间编码宏块指定的帧缓冲器258中。这是基于针对帧间编码宏块指定的参考帧信息和运动矢量来进行的。然后,预测器262提供参考块像素数据,以与残留数据相组合来获得针对该宏块的重新创建的视频数据。
[0030]可选地,由环内处理器260和环后处理器264分别将环内处理和环后处理应用于重构帧/片。例如,环内处理可以包括解块操作,以及环后处理可以包括滤波,例如参考图3和图4A-4D更详细地描述的自适应的基于图样的滤波。特定类型的环内和环后处理是可选的,以及在一些情况下,环内和环后处理器在旁路模式下操作,以在没有任何处理的情况下(例如,在空间补偿之后,解块可以不是必须的)提供重构数据。在环内和环后处理之后,输出帧/片来作为解码视频帧216,以例如在显示设备上显示。将要理解,视频回放机器(例如计算机、机顶盒、DVD或蓝光播放器和/或移动手持设备)可以在输出设备上进行显示之前将解码帧缓冲在存储器中。
[0031]对可以由环后处理器264在后滤波中应用的基于图样的自适应滤波的实现例如基于Wiener滤波器。滤波器处理器240可被配置为在滤波器信息242中提供对要应用于重构视频帧的特定段的特定Wiener滤波器进行定义的系数。滤波器处理器240还可被配置为执行分段,以确定要被滤波的段,以及确定要将哪些滤波器应用于哪些段。例如,滤波器处理器240将重构视频帧划分为不重叠的段,以及针对每个段确定自适应滤波器以改善特定特性(例如,降低量化噪声)。
[0032]可以关于二维空间中的像素位置{(x,y) ;x e x,y e Y}对Wiener滤波器进行定义,其中,Sx,y表示原始帧S中(例如,输入数据212中)位于(x,y)处的像素的值,以及Rx,y表示(例如,向环后处理器264提供的)重构帧R中相同像素的值。可以通过最小化由E表示的均方误差(MSE)的一组系数Ii=IKj ;i,J e [-K, K]}来定义Wiener滤波器,其中,
通过下面的等式给出E:
【权利要求】
1.一种用于对包括帧的视频数据进行编码的方法,所述方法包括: 从所述帧的压缩数据生成重构帧; 至少部分地基于个体像素的图样信息,将所述重构帧的至少一些像素划分为多个具有一个或更多个像素的段; 针对所述多个段的一个或更多个段中的每个段,生成相应的滤波器信息;以及 生成编码的视频数据,所述编码的视频数据包括: 所述帧的压缩数据,以及 所生成的滤波器信息。
2.根据权利要求1所述的方法,其中,至少部分地基于个体像素的图样信息将所述重构帧的至少一些像素划分为多个具有一个或更多个像素的段包括: 将所述重构帧的至少一些像素划分为多个具有一个或更多个像素的集合,以及至少部分地基于个体像素的图样信息,将具有一个或更多个像素的集合中的至少第一集合划分为多个具有一个或更多个像素的子集, 至少一个段对应于所述集合中的一个集合,以及至少一个段对应于所述子集中的一个子集。
3.根据权利要求2所述的方法,其中,所述多个具有一个或更多个像素的集合是至少部分地基于个体像素的变化信息而确定的。
4.根据权利要求3所述的方法,其中,具有在多个范围中的不同范围内的相应的变化信息值的像素属于所述多个具有一个或更多个像素的集合中不同的相应集合。
5.根据权利要求1所述的方法,其中,具有一个或更多个像素的一个段中的特定像素的图样信息是至少部分地基于围绕`所述特定像素的像素的强度值与所述特定像素的强度值相比较而确定的。
6.根据权利要求5所述的方法,其中,确定所述特定像素的图样信息包括:确定与围绕所述特定像素的多个参考位置相关联的相应强度值,以及确定所述特定像素的强度值是大于还是小于与所述参考位置相关联的强度值。
7.根据权利要求6所述的方法,其中,根据多个像素的强度值,对与所述参考位置之一相关联的至少一个强度值进行插值。
8.根据权利要求1所述的方法,其中,针对所述多个段的一个或更多个段中的每个段生成相应的滤波器信息包括:确定根据所述重构帧的第一段的滤波器信息来滤波的所述第一段中的像素值与所述帧的对应像素值之间的差。
9.根据权利要求1所述的方法,还包括:基于所述重构帧,生成所述视频数据中包括的另一帧的压缩数据。
10.一种存储计算机程序的计算机可读存储介质,所述计算机程序用于对包括一个或更多个帧的输入数据进行编码,所述计算机程序包括用于使计算机系统执行以下操作的指令: 从所述帧的压缩数据生成重构帧; 至少部分地基于个体像素的图样信息,将所述重构帧的至少一些像素划分为多个具有一个或更多个像素的段; 针对所述多个段的一个或更多个段中的每个段,生成相应的滤波器信息;以及生成编码的视频数据,所述编码的视频数据包括: 所述帧的压缩数据,以及 所生成的滤波器信息。
11.一种用于对包括一个或更多个帧的视频数据进行编码的设备,所述设备包括: 存储器,被配置为缓冲从所述视频数据重构的一个或更多个帧;以及 至少一个处理器,与所述存储器耦合并被配置为基于所述存储器中缓冲的一个或更多个帧来处理所述视频数据,所述处理包括: 从所述帧的压缩数据生成重构帧; 至少部分地基于个体像素的图样信息,将所述重构帧的至少一些像素划分为多个具有一个或更多个像素的段; 针对所述多个段的一个或更多个段中的每个段,生成相应的滤波器信息;以及 生成编码的视频数据,所述编码的视频数据包括: 所述帧的压缩数据,以及 所生成的滤波器信息。
12.一种用于对编码的视频数据进行解码的方法,所述方法包括: 从所述编码的视频 数据生成重构帧; 从所述编码的视频数据提取针对所述重构帧的多个具有一个或更多个像素的段的一个或更多个段中的每个段的相应的滤波器信息,其中,所述多个段中的至少一个段是至少部分地基于个体像素的图样信息而确定的;以及 通过应用从所述多个段中的第一段的滤波器信息导出的滤波器,对所述第一段中的像素进行滤波。
13.根据权利要求12所述的方法,其中,至少部分地基于个体像素的图样信息确定至少一个段包括: 将所述重构帧的至少一些像素划分为多个具有一个或更多个像素的集合,以及至少部分地基于个体像素的图样信息,将具有一个或更多个像素的集合中的至少第一集合划分为多个具有一个或更多个像素的子集, 至少一个段对应于所述集合中的一个集合,以及至少一个段对应于所述子集中的一个子集。
14.根据权利要求13所述的方法,其中,所述多个具有一个或更多个像素的集合是至少部分地基于个体像素的变化信息而确定的。
15.根据权利要求14所述的方法,其中,具有在多个范围中的不同范围内的相应的变化信息值的像素属于所述多个具有一个或更多个像素的集合中的不同的相应集合。
16.根据权利要求12所述的方法,其中,具有一个或更多个像素的一个段中的特定像素的图样信息是至少部分地基于围绕所述特定像素的像素的强度值与所述特定像素的强度值相比较而确定的。
17.根据权利要求16所述的方法,其中,确定所述特定像素的图样信息包括:确定与围绕所述特定像素的多个参考位置相关联的相应强度值,以及确定所述特定像素的强度值是大于还是小于与所述参考位置相关联的强度值。
18.根据权利要求17所述的方法,其中,根据多个像素的强度值,对与所述参考位置之一相关联的至少一个强度值进行插值。
19.一种存储计算机程序的计算机可读存储介质,所述计算机程序用于对编码的视频数据进行解码,所述计算机程序包括用于使计算机系统执行以下操作的指令: 从所述编码的视频数据生成重构帧; 从所述编码的视频数据提取针对所述重构帧的多个具有一个或更多个像素的段的一个或更多个段中的每个段的相应的滤波器信息,其中,所述多个段中的至少一个段是至少部分地基于个体像素的图样信息而确定的;以及 通过应用从所述多个段中的第一段的滤波器信息导出的滤波器,对所述第一段中的像素进行滤波。
20.一种用于对编码的视频数据进行解码的设备,所述设备包括: 存储器,被配置为缓冲从所述编码的视频数据重构的一个或更多个帧;以及 至少一个处理器,与所述存储器耦合并被配置为基于所述存储器中缓冲的一个或更多个帧来处理所述编码的视频数据,所述处理包括: 从所述编码的视频数据生成重构帧; 从所述编码的视频数据提取 针对所述重构帧的多个具有一个或更多个像素的段的一个或更多个段中的每个段的相应的滤波器信息,其中,所述多个段中的至少一个段是至少部分地基于个体像素的图样信息而确定的;以及 通过应用从所述多个段中的第一段的滤波器信息导出的滤波器,对所述第一段中的像素进行滤波。
【文档编号】H04N19/176GK103828366SQ201180073589
【公开日】2014年5月28日 申请日期:2011年7月21日 优先权日:2011年7月21日
【发明者】刘 英, 何大可 申请人:黑莓有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1