通过帧内预测的视频编解码的装置及方法与流程

文档序号:14960324发布日期:2018-07-18 00:23阅读:142来源:国知局

本发明要求2015年11月27日提出的申请号为62/260,353且名称为“methodsofadaptiveneighboringsamplesfilteringforintraprediction”的美国临时申请以及2016年11月18日提出的申请号15/355,484的美国申请的权利,其整体以引用方式并入本文中。

本发明涉及视频编解码。具体地,本发明涉及视频编解码系统中像素预测的技术。



背景技术:

此处提供的背景技术描述用作一般渲染本说明书上下文的目的。目前署名发明人的工作内容,既包含在本背景技术部分中所描述的工作的内容,也包含在申请时未被认为是现有技术的说明书的各方面,这些既不明确也不暗示地被承认是本说明书的现有技术。

很多视频编解码标准包括将输入视频的图像帧分割成一个或多个编码单元。通常,编码单元可以包括具有一个亮度预测块和至少两个相应色度预测块的预测单元。当编码块的原始图像时,根据预设的视频编解码标准,原始图像可以被分割成此块的预测图像和残差图像。当解码此块时,通过根据同一预设视频编解码标准生成并组合此块的预测图像与残差图像,此块的重构图像可以被获得。

在一些应用中,基于其他块和/或其他帧的图像,块的预测图像可以被生成。这个预测方案也称为帧间预测。在一些应用中,通过基于多种预测模式中所选择的一个来推断(extrapolat)与此块相邻的相邻样本,块的预测图像可以被生成。这个预测方案也称为帧内预测。帧内预测的多种预测模式可以包括沿着多种预设方向之一拓展相邻样本(也称为方向预测模式)、将相邻样本的平均值分配到此块的所有像素(也称为直流(directcurrent,dc)预测模式)或者基于与此块的不同侧相邻的相邻样本来执行二维推断(也称为平面预测模式)。



技术实现要素:

本发明的方面提供一种视频编解码的方法。本方法可以包括接收与视频数据的当前图像帧中当前块相关的输入数据,其中当前块由帧内预测进行编解码,或者将由帧内预测进行编解码。本方法也包括:确定当前块的帧内预测模式;选择至少包括默认滤波器和n抽头滤波器的多个滤波器中一个,其中n是不同于3的正整数;以及通过使用所选择的滤波器滤波多个相邻样本,生成多个已滤波器相邻样本。另外,本方法包括:通过基于多个已滤波相邻样本和帧内预测模式预测当前块,对当前块进行编码或者解码。

在一实施例中,本方法还包括:发送或取得表示所选择的滤波器是默认滤波器还是n抽头滤波器的标志。

本方法还可以包括:基于帧内预测模式和与当前块相关的块尺寸中的至少一个,确定是否对多个相邻样本执行滤波处理;仅当确定对多个相邻样本执行滤波处理时,发送或者取得标志;以及当确定不对多个相邻样本执行滤波处理时,通过基于多个相邻样本和帧内预测模式预测当前块,对当前块进行编码或者解码。

本方法还可以包括:基于帧内预测模式和与当前块相关的块尺寸中的至少一个,确定是否发送或取得标志;以及当确定不发送或取得标志时,选择默认滤波器作为所选择的滤波器。在一实施例中,与当前块相关的块尺寸包括当前块的宽度、当前块的高度、与当前块相关的四叉树深度、与当前块相关的编码单元分割深度和与当前块相关的四叉树二叉树分割深度中的一个或者组合。本方法还可以包括:仅当块尺寸大于第一预定义阈值时,发送或取得标志。

在一实施例中,本方法也包括:基于当前块的残差编解码,确定是否发送或取得标志;以及当确定不发送或取得标志时,选择默认滤波器作为所选择的滤波器。

另外,仅当与当前块相关的至少一个非零系数时,标志可以被发送或取得。仅当与当前块相关的非零系数的数量大于第二预定义阈值时,标志可以被发送或取得。仅当与当前块相关的多个非零系数的多个幅度的统计值大于第三预定义阈值时,标志可以被发送或取得。

在一实施例中,标志被发送在承载视频数据的视频流的序列、视图、图像、切片或块层中。

本发明的方法还提供了一种视频编解码装置,其包括处理电路,用于接收与视频数据的当前图像帧中当前块相关的输入数据,其中当前块由帧内预测进行编解码,或者将由帧内预测进行编解码。处理电路还用于:确定当前块的帧内预测模式;选择至少包括默认滤波器和n抽头滤波器的多个滤波器中一个,其中n是不同于3的正整数;以及通过使用所选择的滤波器滤波多个相邻样本,生成多个已滤波器相邻样本。此外,处理电路用于通过基于多个已滤波相邻样本和帧内预测模式预测当前块,对当前块进行编码或者解码。

在一实施例中,处理电路还用于发送或取得表示所选择的滤波器是默认滤波器还是n抽头滤波器的标志。处理电路还可以用于:基于帧内预测模式和与当前块相关的块尺寸中的至少一个,确定是否对多个相邻样本执行滤波处理;仅当确定对多个相邻样本执行滤波处理时,发送或者取得标志;以及当确定不对多个相邻样本执行滤波处理时,通过基于多个相邻样本和帧内预测模式预测当前块,对当前块进行编码或者解码。

本发明的方面还提供了一种非暂时性计算机可读介质,其存储有多个程序指令,用于使得装置的处理电路执行视频编解码方法。本方法可以包括接收与视频数据的当前图像帧中当前块相关的输入数据,其中当前块由帧内预测进行编解码,或者将由帧内预测进行编解码。本方法也包括:确定当前块的帧内预测模式;选择至少包括默认滤波器和n抽头滤波器的多个滤波器中一个,其中n是不同于3的正整数;以及通过使用所选择的滤波器滤波多个相邻样本,生成多个已滤波器相邻样本。另外,本方法包括:通过基于多个已滤波相邻样本和帧内预测模式预测当前块,对当前块进行编码或者解码。

附图说明

将结合下面的附图对被提供作为示例的本发明的各种实施例进行详细描述,其中相同的符号表示相同的元件,以及其中:

图1是根据本发明实施例的视频编解码系统的功能框图;

图2是根据本发明实施例的图1中视频编解码系统中的解码电路的功能框图;

图3是示出根据本发明实施例的在不同情景下处理相邻样本的示意图;

图4是根据本发明实施例的图1中视频编解码系统中的编码电路的功能框图;

图5是示出根据本发明实施例的使用例如图2中解码电路的解码电路的视频解码流程的流程图;以及

图6是示出根据本发明实施例的使用例如图4中编码电路的编码电路的视频编码流程的流程图。

具体实施方式

根据本发明的一些实施例,当使用帧内预测方案编码或者解码块时,与此块相邻的相邻样本可以被绕过(bypass)、由默认滤波器进行滤波或者由n抽头滤波器进行滤波,其中n大于3。因此,在编码端处,用将提供较佳编解码结果的适当处理的相邻样本,例如,最小编解码成本、最大图像质量、编解码成本与图像质量之间的预设平衡等,此块可以被编码。同样地,在解码端处,通过显性标志或者被推导为隐性标志,使用如编码端处所规定的适当处理的相邻样本,此块可以被解码。

图1显示了根据本发明实施例的视频编解码系统100的功能框图。视频编解码系统100包括解码电路110和编码电路120。编码电路120接收输入视频106,并通过编码输入视频106生成已编码视频数据102。解码电路110接收已编码视频数据102,并通过解码已编码视频数据102生成输出视频104。视频编解码系统100可以由一个或两个视频编解码设备来实现。例如,根据本发明的视频编解码设备可以包括解码电路110和编码电路120中至少一个。

解码电路110可以包括帧内预测器112、相邻样本滤波模块114和解码控制器116。帧内预测器112可以基于来自于相邻样本滤波模块114的已处理相邻样本和由已编码视频数据102指示的相应帧内预测模式,生成待解码块(或者当前块)的预测图像,解码控制器116可以监督已编码视频数据102的解码流程,包括选择相邻样本滤波模块114的多个滤波器之一或者相邻样本滤波模块114的绕过路径,以用于处理与当前块相邻的相邻样本。

解码控制器116可以确定是否基于帧内预测模式和/或与当前块相关的块尺寸对相邻样本执行滤波处理。当解码控制器116确定相邻样本将由相邻样本滤波模块114的滤波器进行滤波时,解码控制器116还可以基于帧内预测模式、与当前块相关的块尺寸或者已编码视频数据102中所提供的信息取得表示使用哪个滤波器的标志。在一示例中,当不提供使用哪个滤波器的指示时,解码控制器116可以选择相邻样本滤波模块114的默认滤波器。与当前块相关的块尺寸可以对应于当前块的宽度、当前块的高度、与当前块相关的四叉树深度、与当前块相关的编码单元分割深度、与当前块相关的四叉树二叉树分割深度等中的一个或者组合。

帧内预测器112可以支持多种帧内预测模式,并且每个帧内预测模式表示唯一的推断方式,以用于基于来自于相邻样本滤波模块114的已处理相邻样本来生成预测图像。例如,当解码电路110用于基于国际电通信联盟电通信标准化部门(internationaltelecommunicationuniontelecommunicationstandardizationsector,itu-t)h.264标准(也称为h.264,mpeg-4部分10,高级视频编解码,mpeg-4avc或者h.264/mpeg-4avc标准),解码4×4亮度块时,帧内预测器112可以执行符合h.264标准的9种不同的帧内预测模式,包括8种不同的方向预测模式和dc预测模式。当解码电路110用于基于itu-th.265标准(也称为h.265,高效视频编解码(highefficiencyvideocoding,hevc),或者h.265/hevc标准),解码32×32亮度块时,帧内预测器112可以执行符合h.265标准的35种不同的帧内预测模式,包括33种不同的方向预测模式、dc预测模式和平面预测模式。

在一些示例中,解码控制器116从已编码视频数据102中提取关于用于由帧内预测编解码的块的相应帧内预测模式的信息。

编码电路120至少包括帧内预测器122、帧内估计器128、相邻样本滤波模块124和编码控制器126。帧内估计器128可以分析输入视频106,并基于来自于相邻样本滤波模块124的已处理相邻样本选择帧内预测模式。帧内估计器128所确定的帧内预测模式还可以被编码为已编码视频数据102的一部分。帧内预测器122可以基于来自于相邻样本滤波模块124的已处理相邻样本和来自于帧内估计器128所确定的帧内预测模式,生成块的预测图像,以进一步用于编码流程。编码控制器126可以监督当前块的编码流程,包括选择相邻样本滤波模块124的多个滤波器之一或者相邻样本滤波模块124的绕过路径,以用于处理与待编码块相邻的相邻样本。

编码控制器126可以确定是否基于帧内预测模式和/或与当前块相关的块尺寸选择对相邻样本执行滤波处理的滤波器。当编码控制器126确定使用相邻样本滤波模块124的滤波器来处理当前块时,根据帧内预测模式、与当前块相关的块尺寸或者当前块的残差编解码(例如,与当前块相关的非零系数的数量或者与当前块相关的非零系数的幅度的统计值),滤波器的选择可以被做出。当编码控制器126确定使用相邻样本滤波模块124的滤波器来对相邻样本执行滤波处理时,编码控制器126可以生成标识所选择的滤波器的标志,并通过将此标志或者自此标志可以取得的信息嵌入到已编码视频数据102中,发送此标志。在至少一个示例中,当确定相邻样本滤波模块124的默认滤波器将用于执行滤波处理时,编码控制器126可以避免通过已编码视频数据102发送此标志,作为选择此默认滤波器的隐性指示。

像帧内预测器112一样,帧内估计器128和帧内预测器122可以支持多种帧内预测模式,并且每个帧内预测模式表示唯一的方式,以用于基于来自于相邻样本滤波模块124的已处理相邻样本生成预测图像。当编码电路120用于基于h.264标准编码4×4亮度块时,帧内估计器128和帧内预测器122可以选择并执行上述符合h.264标准的9种不同的帧内预测模式。当编码电路120用于基于h.265标准编码32×32亮度块时,帧内估计器128和帧内预测器122可以选择并执行上述符合h.265标准的35种不同的帧内预测模式。

相邻样本滤波模块114或者相邻样本滤波模块124的多个滤波器至少包括默认滤波器和一个或多个n抽头滤波器,其中n为大于3的正整数。默认滤波器和一个或多个n抽头滤波器可以是不同的低通滤波器,其可以沿着当前块的侧边平滑相邻样本的变化。每个相邻样本可以对应于紧邻当前块的侧边或者角的像素或者像素组。

默认滤波器可以是具有滤波器系数[1,2,1]/4的3抽头滤波器,从而,根据如下等式,块的相邻样本s[n]的已滤波样本s’[n]可以基于块的三个连续的相邻样本,即s[n-1],s[n]和s[n+1]被滤波:

s’[n]=(s[n-1]+2·s[n]+s[n+1])/4。

n抽头滤波器可以包括具有滤波器系数[2,3,6,3,2]/16的5抽头滤波器,从而,根据如下等式,块的相邻样本s[n]的已滤波样本s’[n]可以基于块的五个连续的相邻样本,即s[n-2]、s[n-1]、s[n]、s[n+1]和s[n+2]被滤波:

s’[n]=(2·s[n-2]+3·s[n-1]+6·s[n]+3·s[n+1]+2·s[n+2])/16。

其他n值和/或滤波器系数处于较佳实施例之内。默认滤波器和一个或多个n抽头滤波器也可以包括其他类型的滤波器。在很多示例中,为了确保解码电路110可以适当地解码由编码电路120编码的已编码视频数据102,相邻样本滤波模块114或者相邻样本滤波模块124被配置成具有具有兼容滤波器特性的可用滤波器的相同组合。同样地,在很多示例中,解码端处的相邻样本滤波模块114处的绕过路径或者滤波器的选择和编码端处的相邻样本滤波模块124处的绕过路径或者滤波器的选择将相互一致。绕过路径或者滤波器的选择可以由显性地提供在已编码视频数据102中的标志(即显性标志)或者由基于帧内预测模式和/或与当前块相关的块尺寸的预设选择规则(即隐性标志)传递。

图2显示了根据本发明实施例的视频编解码系统,例如图1中的视频编解码系统100中的解码电路210的功能框图。当然,图2是解码电路210的简化示意图,并因此可以不显示解码电路210的所有细节和变形。

解码电路210包括帧内预测器212、相邻样本滤波模块214和解码控制器216。相邻样本滤波模块214至少包括绕过路径232、默认滤波器234和n抽头滤波器236,其选择性地耦接于相邻样本滤波模块214的输入端214a和输出端214b之间。解码电路210还包括帧间预测器242、残差解码器244、加法器246、输出滤波器248、存储器250和处理器260。加法器246可以自残差解码器244接收输出,并选择性地自帧间预测器242或帧内预测器212接收输出。输出滤波器248自加法器246接收输出,并生成输出视频204。

解码控制器216接收并分析已编码视频数据202并提取当前块的残差信息和预测信息。解码控制器216将残差信息定向(direct)到残差解码器244,并将预测信息定向到帧内预测器212或者帧间预测器242,以便根据预测方法和已编码视频数据202中表示的解码参数重构当前块的图像。

来自于帧内预测器212或帧间预测器242的预测图像被输出到加法器246,以与来自于残差解码器244的相应残差图像进行组合,以便生成块的已重构图像。来自于加法器246的已重构图像可以由输出滤波器248进行收集,并暂时被存储在存储器250中,其可以用于将相邻样本提供给相邻样本滤波模块214。解码控制器216可以控制输出滤波器将帧的不同块的不同已重构图像组合到帧图像中、对帧图像执行去块滤波处理和/或其他环路滤波处理以及以一顺序输出帧图像并更新如已编码视频数据202中所表示的速率以变成输出视频204。已滤波帧图像也可以被存储在存储器250,其还可以由帧间预测器242使用,作为参考图像。

在操作中,当帧的块由帧内预测进行解码时,解码控制器216将表示至少帧内预测模式和块尺寸的当前块的预测信息转发给帧内预测器212。解码控制器216也将相应的残差信息转发给残差解码器244。此外,解码控制器216分析相邻样本滤波模块214是否将被设置成绕过路径232、默认滤波器234或者n抽头滤波器236,并通过滤波器选择信号(filterselectionsignal,fsel)相应地配置相邻样本滤波模块214。

解码控制器216可以先确定是否使用滤波器来处理相邻样本。如果解码控制器216确定不使用任何滤波器,则相邻样本滤波模块214可以被设置成通过绕过路径232耦接输入端214a和输出端214b。是否选择滤波器可以基于帧内预测模式和/或与当前块相关的块尺寸进行确定。例如,如果帧内预测模式是dc模式,或者块尺寸为4×4像素,则相邻样本可以被绕过到帧内预测器212,而无滤波。在一些示例中,如果帧内预测模式是方向帧内预测模式,其是垂直方向模式或水平方向模式,或者处于来自于垂直方向模式或水平方向模式的预设变形内,则相邻样本也可以被绕过到帧内预测器212,而无滤波。在一些示例中,解码控制器216基于嵌入到已编码视频数据202中的标志或者显性指示确定是否使用滤波器。

当确定相邻样本将由相邻样本滤波模块214的滤波器进行处理时,解码控制器216还可以确定相邻样本滤波模块214的哪个滤波器将被选择。关于选择滤波器的确定可以是基于帧内预测模式、块尺寸或与当前块相关的残差信息(即当前块的残差编解码)执行的。例如,解码控制器216可以基于与当前块相关的非零系数的数量确定使用哪个滤波器。在一些示例中,如果非零系数的数量不为0(例如,大于0),则n抽头滤波器236可以被选择以滤波相邻样本。在一些示例中,如果非零系数的数量大于一个大于0的预设数字,则n抽头滤波器236可以被选择以滤波相邻样本。否则,默认滤波器232可以被选择。在一些示例中,解码控制器216基于嵌入在已编码视频数据202中的标志或者显性指示选择滤波器。解码控制器216可以基于嵌入在已编码视频数据202中的标志的存在与否来选择滤波器。例如,当已编码视频数据202不包括表示用于滤波相邻样本的滤波器的选择的标志时,解码控制器216可以选择默认滤波器。

此外,如图2所示,处理器260与存储器250电耦接,并可被配置成执行存储在存储器250中的程序指令以执行不同功能。处理器260可以包括单处理核或多处理核。解码电路210的不同组件,例如解码控制器216、帧内预测器212、帧间预测器242、残差解码器244、加法器246、相邻样本滤波器模块214和/或输出滤波器248,可以由硬件组件来实现,其中处理器260执行程序指令或者其组合。当然,处理器260也可以执行程序指令以控制已编码视频数据202的接收和输出视频248的输出或显示。在一些示例中,处理器260可以执行程序指令以执行可以与解码已编码视频数据202不直接相关的功能。

存储器250可以用于存储程序指令、对应于预设预测模式的信息、不同块的已重构图像和/或中间数据。在一些示例中,存储器250包括非暂时性计算机可读介质,例如,半导体或固态存储器、随机访问存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、硬盘、光盘或其他适当的存储介质。在一些实施例中,存储器250包括上述非暂时性计算机可读介质中的两个或者以上的组合。

图3显示了示出根据本发明实施例的在不同情景下处理与块310相邻的相邻样本320的示意图。如图3所示,块310具有4×4像素,其被示出为非限制性示例。相邻样本320具有与块310的上端相邻的6个样本,即a、b、c、d、e和f,与块的左端相邻的4个样本,即i、j、k和l,以及与块310的左上角相邻且处于样本a与样本i之间的角样本z。相邻样本320中的每个样本可以对应于与块相邻的相应相邻像素。

另外,根据fsel,处理332表示绕过路径(例如,图2中的绕过路径232)被选择以用于处理相邻样本320。已处理相邻样本322将等同于相邻样本320。

根据fsel,处理334表示默认滤波器(例如图2中的默认滤波器234)被选择以用于处理相邻样本320。在一些示例中,默认滤波器234是具有滤波器系数[1,2,1]/4的3抽头滤波器。已处理相邻样本324可以包括待输出的已处理相邻样本a’,b’,c’,d’,e’,f’,i’,j’,k’,l’和z’,以分别替换原始相邻样本a,b,c,d,e,f,i,j,k,l和z。当默认滤波器234是3抽头滤波器时,额外的参考样本g和参考样本m被引入,以用于计算已处理相邻样本f’和已处理相邻样本l’。例如,已处理样本可以根据如下等式被实现:

z’=(i+2z+a+2)>>2,

a’=(z+2a+b+2)>>2,

b’=(a+2b+c+2)>>2,

c’=(b+2c+d+2)>>2,

d’=(c+2d+e+2)>>2,

e’=(d+2e+f+2)>>2,

f’=(e+2f+g+2)>>2,

i’=(j+2i+z+2)>>2,

j’=(k+2j+i+2)>>2,

k’=(l+2k+j+2)>>2,以及

l’=(m+2k+k+2)>>2。

参考样本g或参考样本m可以对应于当前块驻留的帧的原始图像中的实际像素,或者帧的已解码部分的可用像素。同样地,参考样本g或参考样本m可以从帧的实际像素或者可用像素中被推断。在一些示例中,参考样本g可以是相邻可用样本的复制,例如样本f,可用像素的加权平均或任何给定值。相似地,参考样本m可以是相邻可用样本的复制,例如样本l,可用像素的加权平均或任何给定值。例如,对于具有8比特像素的帧图像,参考样本g或参考样本m可以被设置成128。

另外,根据fsel,处理336表示n抽头滤波器(例如图2中的n抽头滤波器236)被选择以用于处理相邻样本320。在一些示例中,n抽头滤波器236是具有滤波器系数[2,3,6,3,2]/16的5抽头滤波器。因此,已处理相邻样本326可以包括待输出的已处理相邻样本a”,b”,c”,d”,e”,f”,i”,j”,k”,l”和z”,以分别替换原始相邻样本a,b,c,d,e,f,i,j,k,l和z。当n抽头滤波器236是5抽头滤波器时,额外的参考样本,即g、h、m和n被引入,以用于计算已处理相邻样本e”,f”,k”和l”。例如,已处理样本可以根据如下等式被实现:

z”=(2j+3i+6z+3a+2b+8)>>4,

a”=(2i+3z+6a+3b+2c+8)>>4,

b”=(2z+3a+6b+3c+2d+8)>>4,

c”=(2a+3b+6c+3d+2e+8)>>4,

d”=(2b+3c+6d+3e+2f+8)>>4,

e”=(2c+3d+6e+3f+2g+8)>>4,

f”=(2d+3e+6f+3g+2h+8)>>4,

i”=(2k+3j+6i+3z+2a+8)>>4,

j”=(2l+3k+6j+3i+2z+8)>>4,

k”=(2m+3l+6k+3j+2i+8)>>4,以及

l”=(2n+3m+6l+3k+2j+8)>>4。

同理于生成已处理相邻样本324的示例,参考样本g、h、m和n中的每个是来自于帧的原始图像或者帧的已解码部分的可用像素。参考样本g、h、m和n中的每个可以从帧的原始图像或者帧的已解码部分的可用像素中被推断。在一些示例中,参考样本g和参考样本h可以是相邻可用样本(例如样本f)的复制、已知像素的加权平均或任何给定值。相似地,参考样本m和参考样本n可以是相邻可用样本(例如样本l)的复制、已知像素的加权平均或任何给定值。例如,对于具有8比特像素的帧图像,参考样本g、h、m和n可以被设置成128。

当然,如图3所示的块310、相邻样本320和已处理相邻样本322、324和326仅是示例。其他的块尺寸、其他相邻样本的数量和/或其他类型的滤波器处于本发明的较佳实施例内。

图4显示了根据本发明实施例的视频编解码系统,例如图1中的视频编解码系统100中的编码电路420的功能框图。图4是编码电路420的简化示意图,并因此可以不显示编码电路420的所有细节和变形。

编码电路420包括帧内预测器422、帧内估计器428、相邻样本滤波模块424和编码控制器426。相邻样本滤波模块424至少包括在相邻样本滤波模块424的输入端424a和输出端424b之间可以选择性地耦接的绕过路径432、默认滤波器434和n抽头滤波器436。相邻样本滤波模块424可以具有与图2中的相邻样本滤波模块214相似的配置,因此其具体描述被省略。在一些示例中,相邻样本滤波模块214和相邻样本滤波模块424可以被实现为硬件组件、软件组件或者其组合。同样的相邻样本滤波模块214和相邻样本滤波模块424可以被实现为由视频编解码系统100的解码电路110和编码电路120共享的集成模块。

编码电路420还包括帧间预测器442、帧间估计器444、加法器246、残差编码器447、重构模块448、存储器450和处理器460。

编码控制器426监督帧内估计器428和帧间估计器444的操作,并指导帧内估计器428或者帧间估计器444以将每个帧图像分割成不同的块并确定用于每个块的预测方案、预测模式和/或相应的系数。基于来自于帧内估计器428、帧间估计器444和残差编码器447的输入,编码控制器426也生成输出视频数据402。

当帧内估计器428用于使用帧内预测对块进行编码时,帧内估计器428接收输入视频406的当前帧图像fn和与来自于相邻样本滤波模块424的块相邻的已处理相邻样本,并根据视频编解码标准确定预设的帧内预测模式之一。随后,帧内估计器428将所确定的帧内预测模式输出到帧内预测器422和编码控制器426。以与图2中的帧内预测器212的操作相似的方式,帧内预测器422基于已处理相邻样本和所确定的帧内预测模式生成当前块的预测图像。

当帧间估计器444用于使用帧间预测对块进行编码时,帧间估计器444接收当前帧图像fn和一个或多个已重构参考帧图像fref,并相应地确定编码参数和系数。随后,帧间估计器444将所确定的编码参数和系统输出到帧间预测器442和编码控制器426。以与图2中的帧间预测器242的操作相似的方式,帧间预测器442基于参考帧图像和所确定的编码参数和系数,生成当前块的预测图像。

加法器446接收当前块的原始图像和由帧内预测器422或帧间预测器442生成的块的预测图像,并通过从当前块的原始图像中提取预测图像,输出残差图像。残差编码器447接收残差图像并对残差图像进行编码。编码控制器426可以基于帧内估计器428、帧间估计器444和残差编码器447的输出生成已编码视频数据402。在一些示例中,编码控制器426可以控制帧内估计器428、帧间估计器444、帧内预测器422、帧间预测器442和/或残差编码器447,以基于不同的预测方案和参数对同一块进行编码,并选择编码方案和参数的较佳组合以对块进行编码。

重构模块448可以自帧内预测器422或帧间预测器442接收预测图像,并自残差编码器447接收已重构残差图像,并以与图2中的输出滤波器248的操作相似的方式生成帧图像的已重构图像fn’。已重构帧图像fn’被存储在存储器450中,并根据预设视频编解码标准由帧间估计器444可访问,作为参考fref。

在操作中,当帧的块由帧内预测进行编码时,帧内估计器428自输入视频406接收块的原始图像,并自相邻样本滤波模块424接收与块相邻的已处理相邻样本。编码控制器426可以设置相邻样本滤波模块424使用绕过路径432、默认滤波器434或n抽头滤波器436,以用于处理与当前块相邻的相邻样本,并通过fsel相应地配置相邻样本滤波模块424。

例如,编码控制器426可以基于与当前块相关的块尺寸,确定相邻样本滤波模块424的原始设置。在编码控制器426接收所选择的帧内预测模式和已编码残差图像之后,编码控制器426可以确定是否选择滤波器以基于帧内预测模式和/或与当前块相关的块尺寸对相邻样本执行滤波处理。同样地,滤波器的选择可以根据帧内预测模式、与当前块相关的块尺寸或者与当前块相关的非零系数的数量被做出。编码控制器426还可以指导帧内估计器428以分析当前块的图像,并相应地更新帧内预测模式的选择和/或相邻样本滤波模块424的滤波器。在残差编码器447基于所更新的帧内预测模式或者滤波器选择来处理另一残差图像之后,编码控制器426可以确定将使用哪个编码方案,并将此信息嵌入到最终已编码视频数据402中。本流程可以对于块重复几次,直到编码控制器426确定用于编码当前块的适当的编码方案及相应的参数或系数已被发现。

编码控制器426还可以确定是否发送嵌入在已编码视频数据402中且表示解码流程是否使用滤波器和/或所选择的滤波器以用于处理与当前块相邻的相邻样本的标志或指示。在一些示例中,绕过路径或滤波器的选择可以是基于帧内预测模式和/或与当前块相关的块尺寸执行的,并且编码控制器426无需发送此标志或指示,或者甚至根本省略用于发送此标志或指示的确定。例如,如果帧内预测模式是dc模式,或者块尺寸为4×4像素,则当前块的图像可以基于相邻样本进行编码,而无需由相邻样本滤波模块424的滤波器进行滤波。同样,如果帧内预测模式是垂直方向帧内预测模式或水平方向帧内预测模式,或者处于来自于垂直方向模式或水平方向模式的预设变形内的方向帧内预测模式,则相邻样本也被绕过,而无滤波。

关于选择滤波器的确定可以基于帧内预测模式和/或与当前块相关的块尺寸进行执行。例如,编码控制器426可以基于与当前块相关的非零系数的数量确定使用哪个滤波器。在一些示例中,如果非零系数的数量是不为0,则n抽头滤波器436可以被选择以滤波相邻样本,以用于同一块的下一帧内预测试验。在一些示例中,如果非零系数的数量大于预设数字,则n抽头滤波器436可以被选择以滤波相邻样本。否则,默认滤波器232可以被选择。

此外,如图4所示,处理器460与存储器450电耦接,并可被配置成执行存储在存储器450中的程序指令以执行不同功能。处理器460可以包括单处理核或多处理核。

编码电路420的不同组件,例如,帧内预测器422、帧内估计器428、帧间预测器442、帧间估计器444、相邻样本滤波器模块424、编码控制器426、残差编码器447、加法器446和重构模块448,可以由硬件组件来实现,其中处理器260执行程序指令或者其组合。当然,处理器460也可以执行程序指令以控制已编码视频数据的接收、输出视频的输出或显示和/或与输入视频406的视频编码流程不直接相关的功能。

存储器450可以用于存储程序指令、对应于预设预测模式的信息和/或中间数据。在一些示例中,存储器450包括非暂时性计算机可读介质,例如,半导体或固态存储器、随机访问存储器、只读存储器、硬盘、光盘或其他适当的存储介质。在一些实施例中,存储器250包括上述非暂时性计算机可读介质中的两个或者以上的组合。

如图2和图4所示,解码电路210和编码电路420可以在同一电子设备中实现,解码电路210和编码电路420的不同组件可以被共享或再次使用。例如,解码电路210中的存储器250、处理器260、相邻样本滤波模块214、帧内预测器212、帧间预测器242和输出滤波器248也可以用于分别用作图4中的存储器450、处理器460、相邻样本滤波模块424、帧内预测器422、帧间预测器442和重构模块448。

图5显示了示出根据本发明实施例的使用解码电路的视频解码流程的流程图,例如图2中的解码电路210。可以理解的是,在如图5所示的流程500之前、期间和/或之后,额外的操作可以被执行。流程500始于s501并继续到s510。

在s510中,接收与视频数据的当前图像帧中的当前块相关的输入已编码数据。当前块由帧内预测进行编解码。输入已编码数据可以包括表示帧内预测模式的预测信息和用于生成当前块的已重构图像的残差信息。例如,解码控制器216可以接收包括与当前块相关的输入已编码数据的已编码视频数据202。

在s520中,基于输入已编码数据中的预测信息,确定当前块的帧内预测模式。在一些示例中,当当前块是基于h.264标准编码的4×4亮度块时,帧内预测模式可以是符合h.264标准的9种不同的帧内预测模式中的任何一种,包括8种不同的方向预测模式和dc预测模式。当当前块是基于h.265标准编码的32×32亮度块时,帧内预测模式可以是符合h.265标准的35种不同的帧内预测模式中的任何一种,包括33种不同的方向预测模式、dc预测模式和平面预测模式。例如,解码控制器216可以基于从已编码视频数据202中提取的预测信息,确定当前块的帧内预测模式。

在s530中,基于帧内预测模式和/或与当前块相关的块尺寸,确定是否对与当前块相邻的相邻样本执行滤波处理。如果确定滤波处理将对相邻样本执行,本流程继续到s540。如果确定滤波处理将不对相邻样本执行,本流程继续到s560。

在一些示例中,如果帧内预测模式是dc模式,或者块尺寸为4×4像素,则滤波处理可以不被使用。在一些示例中,如果帧内预测模式是方向帧内预测模式,其是垂直方向模式或水平方向模式,或者处于来自于垂直方向模式或水平方向模式的预设变形内,则相邻样本也可以被绕过而无滤波。在一些示例中,基于嵌入到已编码视频数据中的标志或者显性指示,是否使用滤波器可以被确定。例如,解码控制器216可以确定是否基于从已编码视频数据202中提取的信息对相邻样本执行滤波处理。滤波器使能标志或显性指示可以被发送在承载视频数据(例如,已编码视频数据202)的视频流的序列、视图、图像、切片或块层中。在一个示例中,滤波器使能标志或显性指示可以被包括在序列参数集(sequenceparameterset,sps)、视频参数集(videoparameterset,vps)、自适应参数集(adaptationparameterset,aps)、图像参数集(pictureparameterset,pps)等中。

在s540中,选择多个滤波器之一,以用于对与当前块相邻的相邻样本执行滤波处理。多个滤波器之一至少包括默认滤波器和n抽头滤波器,其中n是不同于3的正整数。在一些示例中,默认滤波器是3抽头滤波器。在一些示例中,基于取得表示所选择的滤波器是默认滤波器还是n抽头滤波器的滤波器选择标志,用于执行滤波处理的滤波器被选择。滤波器选择标志可以由输入已编码数据显性地提供,或者基于嵌入在输入已编码数据中的信息隐性地提供,例如,帧内预测模式和/或与当前块相关的块尺寸。在一些示例中,滤波器选择标志被发送在承载视频数据的视频流的序列、视图、图像、切片或块层中,或者被包括在sps、vps、aps、pps等中。在一些示例中,基于与当前块相关的残差信息,滤波器选择标志可以被取得,或者使用哪个滤波器可以被确定。当然,仅当滤波处理将被执行时,选择滤波器或者取得滤波器选择标志可以被执行。例如,仅当块尺寸大于阈值,表示对相邻样本的滤波处理将被执行时,取得滤波器选择标志可以被执行。

在一些示例中,当不存在由输入已编码数据显性提供的滤波器选择标志时,默认滤波器被选择。在一些示例中,基于帧内预测模式、块尺寸或与当前块相关的残差信息,选择滤波器或者取得此标志可以被执行。例如,如果与当前块相关的非零系数的数量不为0,则n抽头滤波器可以被选择。在一些示例中,如果非零系数的数量大于一个大于0的预设数字,则n抽头滤波器可以被选择。否则,默认滤波器232可以被选择。在一些示例中,滤波器可以基于嵌入在已编码视频数据中的显性标志的存在与否被选择。例如,当输入已编码数据不包括表示滤波器的选择以用于滤波相邻样本的滤波器选择标志时,默认滤波器可以被选择。

在一些示例中,解码控制器216可以选择滤波器,以用于对当前块的相邻样本执行滤波处理。

在s545中,通过使用所选择的滤波器,滤波与当前块相邻的相邻样本,生成已滤波相邻样本。例如,相邻样本滤波模块214被设置成基于fsel来选择滤波器(默认滤波器234或者n抽头滤波器236),并滤波来自于先前已解码块的相邻样本(或者如果相邻样本不可用,则滤波给定值)。

在s550中,基于已滤波相邻样本和帧内预测模式,对当前块进行预测。例如,帧内预测器212可以基于由解码控制器216确定的帧内预测模式和来自于相邻样本滤波模块214的已滤波相邻样本,生成当前块的预测图像。

另一方面,在s560中,将相邻样本用于对当前块进行预测,而无滤波。例如,相邻样本滤波模块214被设置成基于fsel来选择绕过路径232,使得相邻样本被转发到帧内预测器212,而不由相邻样本滤波模块214的滤波器进行滤波。帧内预测器212可以基于由解码控制器216确定的帧内预测模式和不由相邻样本滤波模块214滤波的相邻样本,生成当前块的预测图像。

在s570中,基于来自于s550或s560的预测图像和从输入视频数据中提取的残差信息,对当前块进行解码。例如,加法器246将由帧内预测器212生成的预测图像与当前块的残差图像进行组合,以形成当前块的已重构图像。

在s570之后,流程500继续到s599,并结束。流程500可以被重复执行以生成所接收的已编码视频数据的其他块的已重构图像。另外,输出滤波器248还可以将当前块的已重构图像和其他块的其他已重构图像进行组合,以形成原始帧图像,并对原始帧图像执行去块滤波处理,以输出输出视频204的已重构帧图像。

图6显示了示出根据本发明实施例的使用编码电路的视频编码流程的流程图,例如图4中的编码电路420。可以理解的是,在如图6所示的流程600之前、期间和/或之后,额外的操作可以被执行。流程600始于s601并继续到s610。

在s610中,接收输入视频数据。输入视频数据可以至少包括由帧内预测编码的当前块以及与当前块相邻的相邻样本。例如,编码电路420的帧内估计器428和加法器446可以接收输入视频406中当前块的原始图像。同样地,相邻样本滤波模块424可以接收与输入视频406相邻的相邻样本。

在s620中,基于默认设置、暂定帧内预测模式(tentativeintra-predictionmode)和/或与当前块相关的块尺寸,确定是否对与当前块相邻的相邻样本执行滤波处理。如果确定滤波处理将对相邻样本执行,本流程继续到s630。如果确定滤波处理将不对相邻样本执行,本流程继续到s650。例如,编码控制器426可以基于分析当前块的原始图像和/或在先前预测试验期间所确定的预测参数,确定是否对相邻样本执行滤波处理。

在一些示例中,如果暂定帧内预测模式是dc模式,或者块尺寸为4×4像素,则滤波处理可以不被使用。在一些示例中,如果帧内预测模式是垂直方向帧内预测模式或水平方向帧内预测模式,或者是处于来自于垂直方向模式或水平方向模式的预设变形内的方向帧内预测模式,则相邻样本也可以被绕过,而无滤波。当然,如果暂定帧内预测模式还没有被确定,则默认滤波器或者没有滤波器可以用作默认设置。一旦是否使用滤波器被确定,此信息就可以通过标志(例如滤波器使能标志)或者嵌入在已编码视频数据中的显性指示被发送到解码电路。滤波器使能标志或者显性指示可以被发送在承载视频数据的视频流(例如已编码视频数据402)的序列、视图、图像、切片或块层中。在一个示例中,滤波器使能标志或者显性指示可以被包括在sps、vps、aps、pps等中。

在s630中,选择多个滤波器之一,以用于对与当前块相邻的相邻样本执行滤波处理。多个滤波器之一可以至少包括默认滤波器和n抽头滤波器,其中n是不同于3的正整数。在一些示例中,默认滤波器是3抽头滤波器。在一些示例中,待使用以执行滤波处理的滤波器可以基于默认设置、暂定帧内预测模式、与当前块相关的块尺寸和/或与来自于先前预测试验且与当前块相关的残差信息被选择。例如,编码控制器426可以选择滤波器,以用于对当前块的相邻样本执行滤波处理。

在s640中,通过使用所选择的滤波器滤波与当前块相关的相邻样本,生成已滤波相邻样本。例如,相邻样本滤波模块424被设置成基于fsel来选择滤波器(默认滤波器434或n抽头滤波器436),并滤波来自于输入视频406的帧图像的相邻样本(或者如果相邻样本不可用,则滤波给定值)。

在s650中,通过分析原始图像和来自于相邻样本滤波模块的已滤波或已绕过的相邻样本,确定当前块的帧内预测模式。在一些示例中,当当前块是基于h.264标准编码的4×4亮度块时,帧内预测模式可以是符合h.264标准的9种不同的帧内预测模式中的任何一种,包括8种不同的方向预测模式和dc预测模式。当当前块是基于h.265标准编码的32×32亮度块时,帧内预测模式可以是符合h.265标准的35种不同的帧内预测模式中的任何一种,包括33种不同的方向预测模式、dc预测模式和平面预测模式。例如,帧内估计器428可以确定可最小化编码当前块的整体编码成本的帧内预测模式。

在s660中,基于来自于s640/s650的已滤波器相邻样本或者来自于s620的已绕过相邻样本和s650中所确定的帧内预测模式,对当前块进行预测。当前块的预测图像可以用于生成当前块的残差图像,其将被编码为已编码视频数据的一部分。例如,帧内预测器422可以基于帧内估计器428所确定的帧内预测模式和来自于相邻样本滤波模块424的已处理相邻样本,生成当前块的预测图像。

在s670中,包括所确定的帧内预测模式、是否对相邻样本执行滤波处理和/或使用哪个滤波器对相邻样本执行滤波处理的预测参数基于预设视频编解码标准是否是最佳的或者可接受的。当确定预测参数是可接受时,本流程继续到s670。当确定修改预测参数时,例如,改变帧内预测模式、选择使用或不使用滤波器和/或改变所选择的滤波器,本流程修改预测参数,并继续到s620。

例如,编码控制器426自帧内估计器428接收所确定的帧内预测模式,并自残差编码器447接收残差信息,并确定当前帧内预测模式和绕过设置/滤波器设置是否是可接受的。在一些示例中,编码控制器426可以基于帧内预测模式更新相邻样本滤波模块424的设置,并指导帧内估计器428对同一块执行另一预测试验。

在一些示例中,滤波器可以基于帧内预测模式、块尺寸和/或与当前块相关的残差信息进行选择。例如,如果与当前块相关的非零系数的数量是非0,则n抽头滤波器可以被选择以用于下一预测试验。在一些示例中,如果非零系数的数量大于大于0的预设数字,则n抽头滤波器可以被选择以用于下一预测试验。

在s680中,基于所确定的帧内预测模式和基于原始图像和当前块的预测图像而生成的残差信息,对当前块进行编码。例如,编码控制器426可以自帧内估计器428接收所确定的帧内预测模式,并自残差编码器447接收残差信息,并相应地生成已编码视频数据402。

此外,编码控制器426可以确定是否发送标志或可嵌入到已编码视频数据402中的显性指示,以便指示是否使用滤波器来处理相邻样本。在一些示例中,基于嵌入在输入已编码数据中的信息,例如帧内预测模式、残差信息和/或与当前块相关的块尺寸,标志可以被隐性提供。在一些示例中,标志被发送在承载视频数据的视频流的序列、视图、图像、切片或块层中。

同样地,编码控制器426可以确定是否发送标志(例如滤波器选择标志)或可嵌入到已编码视频数据402中的显性指示,以便指示使用相邻样本滤波模块424的哪个滤波器来处理相邻样本。在一些示例中,滤波器选择标志被发送在承载视频数据的视频流的序列、视图、图像、切片或块层中,或者被包括在sps、vps、aps、pps等中。在一些示例中,当前默认滤波器被选择时,滤波器选择标志无需被显性提供在已编码视频数据中。在一些示例中,当选择滤波器是基于帧内预测模式、块尺寸或与当前块相关的残差信息执行时,可以不需要提供显性的滤波器选择标志。在一些示例中,已编码视频数据中的显性标志的存在与否可以用于表示哪个滤波器将被选择。

在s680之后,流程600继续到s699,并结束。流程600可以被重复执行以对输入视频的帧图像的块进行编码。

在一些实施例中,相邻样本滤波模块214中的绕过路径232和相邻样本滤波模块424中的绕过路径432可以分别被包括在默认滤波器234和默认滤波器434中。在解码侧处,在一示例中,根据显性标志或隐性标志,确定选择默认滤波器234还是n抽头滤波器236以用于当前块。如果标志表示n抽头滤波器236不被选择,则基于帧内预测模式和/或与当前块相关的块尺寸,默认滤波器234中的绕过路径232或具有滤波器系数[1,2,1]/4的3抽头滤波器被使用,以用于处理与当前块相关的相邻样本。如果此标志表示n抽头滤波器236被选择,则对与当前块相关的相邻样本无条件地执行n抽头滤波器236,以生成已滤波相邻样本。在一示例中,仅当块尺寸(当前块的宽度、当前块的高度、与当前块相关的四叉树深度、与当前块相关的编码单元分割深度和与当前块相关的四叉树二叉树分割深度)大于预定义阈值时,用于表示默认滤波器234或n抽头滤波器236的选择的标志被包括在已编码视频数据(例如比特流)中。在另一示例中,仅当当前块包括至少一个非零系数、当前块中的非零系数的数量大于预定义阈值或者当前块中的非零系数的幅度之和大于预定义阈值时,用于表示默认滤波器234或n抽头滤波器236的选择的标志被包括在已编码视频数据中。当此标志不包括在已编码视频数据中时,默认滤波器234中的绕过路径232或者具有滤波器系数[1,2,1]/4的3抽头滤波器是基于帧内预测模式和/或与当前块相关的块尺寸自适应使用的。相邻样本滤波模块424可以具有与相邻样本滤波模块214相似的配置,因此其具体描述被省略。

由于已经结合本发明的被提出用作示例的具体实施例描述了本发明的各个方面,可以做出这些示例的替代、修改和变形。因此,此处所说明的实施例用作示意目的,但不用于限制。在不脱离权利要求的范围的情况下,可以做出改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1