利用重构画面的细化进行编码和解码的制作方法

文档序号:22689105发布日期:2020-10-28 12:59阅读:151来源:国知局
本实施例总体上涉及用于画面编码和解码的方法和设备,并且更具体地,涉及一种用于编码和解码画面部分的方法和设备。
背景技术
::为了实现高压缩效率,图像和视频编码方案通常采用预测和变换来利用视频内容中的空域和时域冗余。通常,使用帧内或帧间预测来利用帧内或帧间帧相关性,然后对原始块和预测的画面块之间的差(通常表示为预测差或预测残差)进行变换、量化和熵编码。为了重构视频,通过与预测、变换、量化和熵编码相对应的逆过程来解码压缩数据。例如,为了更好地利用视频画面的样本码字分布,通常在重构的视频信号中观测失真,尤其是在进行编码之前映射视频信号的情况下。技术实现要素:公开了一种编码方法,其包括:-在比特流中编码画面部分并重构所述画面部分;-确定细化数据,以使得:-在编码前不应用映射的情况下,与未经细化按照数据编码成本和所述画面部分的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后,减少了按照数据编码成本和所述画面部分的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化在解码回路外部的情况下,与在未经细化的逆映射之后按照数据编码成本和所述画面部分的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本相比,在逆映射和通过所述细化数据进行细化之后减少了按照数据编码成本和所述画面部分的所述原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化在解码回路中的情况下,与未经细化按照数据编码成本和所述画面部分的映射的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后减少了按照数据编码成本和所述画面部分的所述映射的原始版本与所述重构画面部分之间的失真的加权和计算的率失真成本;以及-在所述比特流中编码所述细化数据。公开了一种编码设备,其包括:-用于在比特流中编码画面部分并重构所述画面部分的装置;-用于确定细化数据的装置,以使得:-在编码前不应用映射的情况下,与未经细化按照数据编码成本和所述画面部分的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后,减少了按照数据编码成本和所述画面部分的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化在解码回路外部的情况下,与在未经细化的逆映射之后按照数据编码成本和所述画面部分的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本相比,在逆映射和通过所述细化数据进行细化之后减少了按照数据编码成本和所述画面部分的所述原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化在解码回路中的情况下,与未经细化按照数据编码成本和所述画面部分的映射的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后减少了按照数据编码成本和所述画面部分的所述映射的原始版本与所述重构画面部分之间的失真的加权和计算的率失真成本;和-用于在所述比特流中编码所述细化数据的装置。公开了一种编码设备,其包括通信接口和至少一个处理器,该通信接口被配置为访问至少一个画面部分,该至少一个处理器被配置为:-在比特流中编码被访问的画面部分并重构该画面部分;-确定细化数据,以使得:-在编码前不应用映射的情况下,与未经细化按照数据编码成本和所述画面部分的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后,减少了按照数据编码成本和所述画面部分的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化在解码回路外部的情况下,与在未经细化的逆映射之后按照数据编码成本和所述画面部分的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本相比,在逆映射和通过所述细化数据进行细化之后减少了按照数据编码成本和所述画面部分的所述原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化在解码回路中的情况下,与未经细化按照数据编码成本和所述画面部分的映射的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后减少了按照数据编码成本和所述画面部分的所述映射的原始版本与所述重构画面部分之间的失真的加权和计算的率失真成本;以及-在所述比特流中编码所述细化数据。公开了一种机器可读介质,其上存储有机器可执行指令,该机器可执行指令在被执行时实现一种用于编码画面部分的方法,该方法包括:-在比特流中编码画面部分并重构所述画面部分;-确定细化数据,以使得:-在编码前不应用映射的情况下,与未经细化所述画面部分的原始版本与所述重构的画面部分之间的率失真成本相比,在通过所述细化数据进行细化之后,减少了所述画面部分的原始版本与所述重构的画面部分之间的率失真成本;-在编码之前应用映射并且所述细化在解码回路外部的情况下,与在未经细化的逆映射之后所述画面部分的原始版本与所述重构的画面部分之间的率失真成本相比,在逆映射和通过所述细化数据进行细化之后减少了所述画面部分的所述原始版本与所述重构的画面部分之间的率失真成本;-在编码之前应用映射并且所述细化在解码回路中的情况下,与未经细化所述画面部分的映射的原始版本与所述重构的画面部分之间的率失真成本相比,在通过所述细化数据进行细化之后减少了所述画面部分的所述映射的原始版本与所述重构画面部分之间的率失真成本;以及-在所述比特流中编码所述细化数据。公开了一种计算机程序或存储这种计算机程序的介质,其中,计算机程序包括用于在由处理器执行计算机程序时执行编码方法的软件代码指令。公开了一种流,其包括表示画面部分的编码数据和细化数据,确定该细化数据以使得画面部分的原始版本与画面部分的解码版本之间的率失真成本减少。-在编码前不应用映射的情况下,与未经细化所述画面部分的原始版本与所述重构的画面部分之间的率失真成本相比,在通过所述细化数据进行细化之后,减少了所述画面部分的原始版本与所述重构的画面部分之间的率失真成本;-在编码之前应用映射并且所述细化在解码回路外部的情况下,与在未经细化的逆映射之后所述画面部分的原始版本与所述重构的画面部分之间的率失真成本相比,在逆映射和通过所述细化数据进行细化之后减少了所述画面部分的所述原始版本与所述重构的画面部分之间的率失真成本;-在编码之前应用映射并且所述细化在解码回路中的情况下,与未经细化所述画面部分的映射的原始版本与所述重构的画面部分之间的率失真成本相比,在通过所述细化数据进行细化之后减少了所述画面部分的所述映射的原始版本与所述重构画面部分之间的率失真成本。在一个实施例中,该方法还包括在将所述细化的画面部分存储在参考画面缓冲器之前,利用所述确定的细化数据来细化所述重构的画面部分。在一个实施例中,针对所述画面部分的一个分量,与所述画面部分的任何其他分量无关地执行所述利用所述细化数据来细化所述重构的画面部分。在一个实施例中,针对所述画面部分的一个分量,取决于所述画面部分的另一分量来利用所述细化数据来细化所述重构的画面部分。在一个实施例中,在所述比特流中编码所述细化数据包括:针对至少一个分量编码n个细化值,n为整数,所述n个细化值定义分段线性函数的枢轴点。在一个实施例中,所述重构的画面部分是在环内滤波后或在部分环内滤波后获得的所述重构的画面部分。公开了一种解码方法,其包括:-从比特流中解码画面部分和细化数据,定义该细化数据,以使得:-在编码前不应用映射的情况下,与未经细化按照数据编码成本和所述画面部分的原始版本与解码的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后,减少了按照数据编码成本和所述画面部分的原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化在解码回路外部的情况下,与在未经细化的逆映射之后按照数据编码成本和所述画面部分的原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本相比,在逆映射和通过所述细化数据进行细化之后减少了按照数据编码成本和所述画面部分的所述原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化在解码回路中的情况下,与未经细化按照数据编码成本和所述画面部分的映射的原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后减少了按照数据编码成本和所述画面部分的所述映射的原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本;以及-利用所述解码的细化数据细化所述解码的画面部分。公开了一种解码设备,其包括:-用于从比特流中解码画面部分和细化数据的装置,定义该细化数据,以使得:-在编码前不应用映射的情况下,与未经细化按照数据编码成本和所述画面部分的原始版本与解码的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后,减少了按照数据编码成本和所述画面部分的原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化在解码回路外部的情况下,与在未经细化的逆映射之后按照数据编码成本和所述画面部分的原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本相比,在逆映射和通过所述细化数据进行细化之后减少了按照数据编码成本和所述画面部分的所述原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化在解码回路中的情况下,与未经细化按照数据编码成本和所述画面部分的映射的原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后减少了按照数据编码成本和所述画面部分的所述映射的原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本;和-用于利用所述解码的细化数据细化所述解码的画面部分的装置。一种解码设备,包括通信接口和至少一个处理器,该通信接口被配置为访问至少一个流,该至少一个处理器被配置为:-从被访问的比特流中解码画面部分和细化数据,该细化数据被定义,以使得:-在编码前不应用映射的情况下,与未经细化按照数据编码成本和所述画面部分的原始版本与解码的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后,减少了按照数据编码成本和所述画面部分的原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化在解码回路外部的情况下,与在未经细化的逆映射之后按照数据编码成本和所述画面部分的原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本相比,在逆映射和通过所述细化数据进行细化之后减少了按照数据编码成本和所述画面部分的所述原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化在解码回路中的情况下,与未经细化按照数据编码成本和所述画面部分的映射的原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后减少了按照数据编码成本和所述画面部分的所述映射的原始版本与所述解码的画面部分之间的失真的加权和计算的率失真成本;以及-利用所述解码的细化数据细化所述解码的画面部分。公开了一种机器可读介质,其上存储有机器可执行指令,该机器可执行指令在被执行时实现一种用于解码画面部分的方法,该方法包括:-从比特流中解码画面部分和细化数据,该细化数据被定义,以使得:-在编码前不应用映射的情况下,与未经细化所述画面部分的原始版本与所述解码的画面部分之间的率失真成本相比,在通过所述细化数据进行细化之后,减少了所述画面部分的原始版本与所述解码的画面部分之间的率失真成本;-在编码之前应用映射并且所述细化在解码回路外部的情况下,与在未经细化的逆映射之后所述画面部分的原始版本与所述解码的画面部分之间的率失真成本相比,在逆映射和通过所述细化数据进行细化之后减少了所述画面部分的所述原始版本与所述解码的画面部分之间的率失真成本;-在编码之前应用映射并且所述细化在解码回路中的情况下,与未经细化所述画面部分的映射的原始版本与所述解码的画面部分之间的率失真成本相比,在通过所述细化数据进行细化之后减少了所述画面部分的所述映射的原始版本与所述解码画面部分之间的率失真成本;以及-利用所述解码的细化数据细化所述解码的画面部分。公开了一种计算机程序或存储这种计算机程序的介质,其中,计算机程序包括用于在由处理器执行计算机程序时执行编码方法的软件代码指令。在一个实施例中,该解码方法还包括:逆映射所述解码的画面部分,并且在逆映射之后,对所述解码的画面部分进行细化。在一个实施例中,在将所述细化的解码的画面部分存储在参考画面缓冲器之前,完成所述利用所述细化数据细化所述解码的画面部分。在一个实施例中,针对所述画面部分的一个分量,与所述画面部分的任何其他分量无关地执行所述利用所述细化数据来细化所述解码的画面部分。在一个实施例中,针对所述画面部分的一个分量,取决于所述画面部分的另一分量,利用所述细化数据来细化所述解码的画面部分。在一个实施例中,从所述比特流中解码所述细化数据包括:针对至少一个分量解码n个细化值,n为整数,所述n个细化值定义分段线性函数的枢轴点。在一个实施例中,所述解码的画面部分是在环内滤波后或在部分环内滤波后获得的所述解码的画面部分。附图说明图1示出了根据特定而非限制性实施例的被配置为在比特流中编码画面的发送器1000的示例性架构;图2示出了适用于执行编码方法的示例性视频编码器,例如,hevc类型的编码器;图3和图4示出了图2的视频编码器的变型;图5示出了根据特定而非限制性实施例的一种用于在比特流中编码画面部分的方法的流程图;图6示出了图5的步骤s130的详细流程图;图7和图8示出了pwl模型的示例;图9示出了图6的过程的变型;图10和图11示出了pwl模型的示例;图12示出了根据特定而非限制性实施例的被配置为从比特流中解码画面以获得解码的画面的接收器的示例性架构;图13示出了适用于执行解码方法的示例性视频解码器(例如,hevc类型的)的框图;图14示出了图13的视频解码器的变型;图15示出了图13的视频解码器的变型;和图16示出了根据特定而非限制性实施例的一种用于从比特流中解码画面的方法的流程图。具体实现方式应当理解的是,已经对附图及描述进行了简化,只示出与清楚理解本实施例相关的元件,同时为了清楚起见,省去了可在典型的编码和/或解码设备中找到的许多其他元件。下面描述各种方法,并且每种方法包括用于实现所描述的方法的一个或多个步骤或动作。除非方法的正确操作需要特定的步骤或动作顺序,否则可以修改或组合特定步骤和/或动作的顺序和/或使用。说明书中对本原理的“一个实施例”或“实施例”以及其其他变型的引用意味着结合该实施例描述的特定特征、结构、特性等被包括在本原理的至少一个实施例中。因此,在整个说明书的不同地方出现的短语“在一个实施例中”或“在实施例中”“在一个实施方式中”或“在实施方式中”以及任何其他变型不一定都指同一实施例。应当理解的是,尽管术语第一和第二可以在本文中用于描述各种元件,但是这些元件不应被这些术语所限制。这些术语仅用于区分一个元素和另一个元素。应当理解的是,使用以下“/”,“和/或”,“至少一个”和“a、b和c中的一个或多个”中的任何一个时,例如,在使用“a/b”、“a和/或b”、以及“a和b中的至少一个”的情况下,旨在包含仅选择列出的第一个选项(a),或者仅选择列出的第二个选项(b),或者同时选择两个选项(a和b)。又例如,在使用“a、b和/或c”和“a、b和c中的至少一个”的情况下,此措词旨在包含仅选择列出的第一个选项(a),或者仅选择列出的第二个选项(b),或者仅选择列出的第三个选项(c),或者仅选择列出的第一个和第二个选项(a和b),或者仅选择列出的第一个和第三个选项(a和c),或者仅选择列出的第二个和第三个选项(b和c),或者同时选择三个选项(a和b和c)。本领域和相关领域的普通技术人员明显的是,这可以扩展到所列出的多个项目。画面是单色格式的亮度样本阵列,或者4:2:0、4:2:2和4:4:4颜色格式的亮度样本阵列和两个相应的色度样本阵列(或三个三色颜色样本阵列,例如rgb)。通常,“块”针对样本阵列中的特定区域(例如,亮度y),并且“单元”包括所有颜色分量(亮度y、还可能有色度cb和色度cr)的共位块。条带是整数个基本编码单元,例如hevc编码树单元或h.264宏块单元。条带可包含完整画面及其一部分。每个条带可以包括一个或多个条带分段。在本申请中,术语“重构的”和“解码的”可以互换使用。通常,但不是必须的,术语“重构的”被用于编码器侧,而“解码的”被用于解码器侧。应当注意的是,术语“解码的”或“重构的”可以表示比特流被部分“解码”或“重构”,例如,在去块滤波之后而在sao滤波之前获得的信号,并且重构的样本可能与用于显示的最终解码的输出不同。我们还可以互换使用术语“图像”、“画面”和“帧”。针对hevc标准描述了各种实施例。然而,本实施例不限于hevc,并且可以应用于其他标准、建议及其扩展,包括例如hevc或hevc扩展,诸如格式范围(rext)、可伸缩性(shvc)、多视图(mv-hevc)扩展和未来的视频编码标准,例如,由联合视频专家小组(jvet)开发的那些。关于画面部分的编码/解码描述了各种实施例。其可以用于编码/解码整个画面或整个画面序列。图1示出了根据特定而非限制性实施例的被配置为在比特流中编码画面的发送器1000的示例性架构。发送器1000包括一个或多个处理器1005,其可以包括例如cpu、gpu和/或dsp(数字信号处理器(digitalsignalprocessor)的英文缩写),以及内部存储器1030(例如,ram、rom、和/或eprom)。发送器1000包括一个或多个通信接口1010(例如键盘、鼠标、触摸板、网络摄像机),每个适用于显示输出信息和/或允许用户输入命令和/或数据;和电源1020,其可以位于发送器1000的外部。发送器1000还可以包括一个或多个网络接口(未示出)。编码器模块1040表示可以被包括在设备中以执行编码功能的模块。另外,编码器模块1040可以被实现为发送器1000的单独的元件,或者可以作为硬件和软件的组合被并入(多个)处理器1005中,如本领域技术人员已知的。画面可以从源中获得。根据不同的实施例,源可以是但不限于:-本地存储器,例如,视频存储器、ram、闪存、硬盘;-存储接口,例如,大容量存储器、rom、光盘或磁性载体的接口;-通信接口,例如,有线接口(例如,总线接口、广域网接口、局域网接口)或无线接口(例如,ieee802.11接口或蓝牙接口);和-图像捕获电路(例如,诸如ccd(电荷耦合器件)或cmos(互补金属氧化物半导体)之类的传感器)。根据不同的实施例,可以将比特流发送到目的地。作为示例,将比特流存储在远程或本地存储器(例如,视频存储器或ram、硬盘)中。在一个变型中,将比特流发送到存储接口,例如,大容量存储器、rom、光盘或磁性载体的接口,和/或通过通信接口进行传输,例如,点对点链接、通信总线、点对多点链接或广播网络的接口。根据示例性而非限制性的实施例,发送器1000还包括存储在存储器1030中的计算机程序。该计算机程序包括指令,当由发送器1000,具体是由处理器1005执行时,这些指令使发送器1000能够执行参考图5所述的编码方法。根据一种变型,计算机程序存储在发送器1000的外部的非暂时性数字数据载体上,例如,存储在诸如hdd、cd-rom、dvd、只读和/或dvd驱动器、和/或dvd读/写驱动器之类的外部存储介质上,这些都是本领域已知的。因此,发送器1000包括读取计算机程序的机制。此外,发送器1000可以通过相应的usb端口(未示出)访问一个或多个通用串行总线(usb)类型的存储设备(例如,“记忆棒”)。根据示例性而非限制性的实施例,发送器1000可以是但不限于:-移动设备;-通信设备;-游戏设备;-平板(或平板电脑);-笔记本电脑;-静态画面照相机;-摄像机;-编码芯片或编码设备/装置;-静态画面服务器;和-视频服务器(例如,广播服务器、视频点播服务器或网络服务器)。图2示出了适用于执行图5的编码方法的示例性视频编码器100,例如,hevc类型的编码器。编码器100是发送器1000或这种发送器1000的一部分的示例。为了编码,通常将画面分割为基本编码单元,例如,hevc中的编码树单元(ctu)或h.264中的宏块单元。一组可能连续的基本编码单元被分组为条带。基本编码单元包含所有颜色分量的基本编码块。在hevc中,最小的编码树块(ctb)尺寸16x16对应于先前视频编码标准中使用的宏块尺寸。应当理解的是,尽管本文使用术语ctu和ctb来描述编码/解码方法和编码/解码设备,但这些方法和设备不应受到这些特定术语的限制,这些特定术语在其他标准(例如h.264)中可能采用不同的措词(例如宏块)。在hevc编码中,画面被分为具有可配置尺寸(通常为64x64、128x128或256x256)的正方形ctu。ctu是将四叉树的根分割为4个相等尺寸的正方形编码单元(cu),即父块尺寸的高度和宽度的一半。四叉树是其中一个父节点可以分为四个子节点的树,每个子节点可以成为父节点,而这一父节点又可以分为四个子节点。在hevc中,编码块(cb)被分割为一个或多个预测块(pb),并形成四叉树的根,该四叉树被划分为变换块(tb)。与编码块、预测块和变换块相对应,编码单元(cu)包括预测单元(pu)和树形结构的变换单元(tu)集,pu包括针对所有颜色分量的预测信息,并且tu包括针对每个颜色分量的残差编码语法结构。亮度分量的cb、pb和tb的尺寸适用于相对应的cu、pu和tu。在最新的编码系统中,ctu是划分为编码单元(cu)的编码树的根。编码树是其中父节点(通常对应于cu)可以被划分成子节点(例如,被划分成2、3或4个子节点)的树,每个子节点可以成为父节点,而这一父节点又可以被划分成子节点。除了四叉树分割模式外,还定义了新的分割模式(二叉树对称分割模式,二叉树非对称分割模式和三叉树分割模式),这些分割模式增加了可能的分割模式的总数。编码树具有唯一的根节点,例如ctu。编码树的叶是树的终止节点。编码树的每个节点表示一个cu,该cu可以被进一步划分成更小的cu,也称为子cu或通常称为子块。一旦确定了将ctu分割为cu,就对与编码树的叶相对应的cu进行编码。可以通过率失真优化过程在编码器侧确定将ctu分割为cu以及用于对每个cu(对应于编码树的叶)进行编码的编码参数。不存在将cb分割为pb和tb,即cu由单个pu和单个tu组成。在本申请中,术语“块”或“画面块”可用于指代ctu、cu、pu、tu、cb、pb和tb中的任何一个。另外,术语“块”或“画面块”可用于指h.264/avc或其他视频编码标准中指定的宏块、分区和子块,并且一般来说指代各种尺寸的样本阵列。返回到图2,在示例性编码器100中,如下所述,通过编码器元件对画面进行编码。将要编码的画面以cu为单位进行处理。使用帧内或帧间模式对每个cu进行编码。当cu以帧内模式编码时,执行帧内预测(160)。在帧间模式下,执行运动估计(175)和补偿(170)。编码器确定(105)使用帧内模式或帧间模式中的哪一个来对cu进行编码,并且通过预测模式标志指示帧内/帧间决定。通过从原始画面块中减去(110)预测样本块(也称为预测量)来计算残差。帧内模式下的cu是从重构的邻近样本中预测的,例如在同一条带内。hevc中有35种帧内预测模式可用,其中包括dc、平面、和33种角度预测模式。帧间模式下的cu是从存储在参考画面缓冲器(180)中的参考画面的重构样本来预测的。对残差进行变换(125)和量化(130)。对量化的变换系数以及运动矢量和其他语法元素进行熵编码(145)以输出比特流。编码器还可以跳过变换,或者旁路变换和量化,即,不应用变换或量化过程而直接对残差进行编码。熵编码可以是例如上下文自适应二进制算术编码(cabac)、上下文自适应可变长度编码(cavlc)、huffman、算术、exp-golomb等。cabac是一种首先在h.264中引入并且在hevc中也使用的熵编码方法。cabac涉及二进制化、上下文建模和二进制算术编码。二进制化将语法元素映射到二进制符号(bin)。上下文建模基于某些特定上下文确定每个规则编码的bin(即,未被旁路)的概率。最后,二进制算术编码根据确定的概率将位元(bin)压缩为比特。编码器包括解码回路,并由此对编码的块进行解码以为进一步的预测提供参考。对量化的变换系数进行反量化(140)和逆变换(150)以解码残差。通过组合(155)解码的残差和预测的样本块来重构画面块。可选地,(多个)环内滤波器(165)应用于重构的画面,例如,用于执行dbf(去块滤波)/sao(样本自适应偏移)/alf(自适应环路滤波)以减少编码伪像。滤波后的画面可以存储在参考画面缓冲器(180)中,作为其他画面的参考。在本实施例中,从滤波后的重构画面(即(多个)环内滤波器的输出)及其原始版本中确定(190)细化数据。在第一变型中,从在环内滤波之前的重构画面及其原始版本中确定(190)细化数据。在第二变型中,从局部滤波的重构画面(即在去块滤波之后但在sao之前)及其原始版本中确定(190)细化数据。细化数据表示校正函数,记为r(),适用于颜色分量的单独(多个)样本(例如,亮度分量y、或色度分量cb/cr、或颜色分量r、g或b)。然后,在比特流中对细化数据进行熵编码。在本实施例中,细化过程在解码回路的外部。因此,细化过程仅作为后期处理在解码器中应用。图3示出了图2的视频编码器100的变型101。与图2的模块相同的图3的模块用相同的附图标记进行标注,不再进一步公开。在由视频编码器101编码之前,可以将画面进行映射(105)。这种映射可用于更好地利用画面的样本码字值分布。通常,如图3所示,在核心编码之前对原始(输入)样本进行映射。通常,使用静态映射函数,即用于所有内容的相同功能,以限制复杂性。映射函数fmap()可能由一维查找表lutmap[x]建模,其中x是直接应用于输入信号x的值,如下所示:y=fmap(x)或y=lutmap[x]其中,x是输入信号(例如,对于10比特的信号,从0到1023),y是映射的信号。在一个变型中,一个分量的映射函数取决于另一个分量(跨分量映射函数)。例如,根据位于画面中相同的相对位置的亮度分量y来映射色度分量c。色度分量c的映射如下:c=offset+fmap(y)*(c–offset)或c=offset+lutmap[y]*(c–offset)其中,offset通常是色度信号的中心值(例如,对于10位的色度信号为512)。该参数也可以是在流中进行编码的动态参数,最终可以提高压缩增益。映射函数可以通过默认进行定义,也可以在比特流中用信号通知,例如通过分段线性模型、缩放表或增量qp(dqp)表。对滤波后的重构画面(即(多个)环内滤波器的输出)进行逆映射(185)。逆映射(185)是映射(105)的逆过程的实现方式。从逆映射之后的滤波后的重构画面及其原始版本中确定(190)细化数据。然后,在比特流中对细化数据进行熵编码。在本实施例中,细化过程在解码回路的外部。因此,细化过程仅作为后期处理在解码器中应用。图4示出了图2的视频编码器100的变型102。与图2的模块相同的图4的模块用相同的附图标记进行标注,不再进一步公开。映射模块105是可选的。从滤波后的重构画面(即(多个)环内滤波器的输出)及其原始版本(在不应用映射时)或其映射的原始版本(在应用映射时)中确定(190)细化数据。然后,在比特流中对细化数据进行熵编码(145)。还使用细化数据来细化(182)滤波后的重构画面。将细化的画面而不是滤波后的重构画面存储在参考画面缓冲器(180)中。在本实施例中,细化过程是环内过程,即,它是解码回路的一部分。因此,细化过程在编码器和解码器的解码回路中均适用。模块182和190可以插入到不同位置。细化模块182可以在(多个)环内滤波器之前插入,或者,在有至少两个环内滤波器的情况下插入在(多个)环内滤波器之间,例如,在dbf之后且在sao之前。将模块190定位,使得其以与细化模块182输入相同的画面,即,在模块182在环内滤波器之前的情况下为重构画面,而在模块182在环内滤波器之间的情况下为局部滤波的重构画面。图5示出了根据特定而非限制性实施例的一种用于在比特流中编码画面部分的方法的流程图。该方法开始于步骤s100。在步骤s110中,发送器1000(例如编码器100、101或102)访问画面部分。在编码之前,可选地,所访问的画面部分可以按图3和图4进行映射。在步骤s120中,发送器对所访问的画面部分进行编码和重构,以获得重构的画面部分。为此,可以将画面部分分割成块。对画面部分进行编码包括对画面部分的块进行编码。对块进行编码通常但不一定包括:从该块中减去预测量以获得残差块;将残差块变换为变换系数块;以量化步长对系数块进行量化以获得量化的变换系数块;和,在比特流中对量化的变化系数块进行熵编码。在编码器侧对块进行重构通常但不一定包括:对量化的变换系数块进行反量化和逆变换以获得残差块;和将预测量添加到残差块中以获得解码块。然后,通过(多个)环内滤波器(例如,图2到图4中的去块/sao/alf滤波器)对重构的画面部分进行滤波,以及按图3进行逆映射。在步骤s130中,例如,通过模块190确定细化数据,以使得被计算为数据编码成本(即,细化数据和细化的画面部分的编码成本)和画面部分的原始版本(即,所访问的图像部分,可能按图4进行映射)与重构的画面部分(可能按图2和图4进行滤波,或按图3进行逆映射并进行细化)之间的失真的加权和的率失真成本减小或最小化。更精确地,确定细化数据,以使得:-在编码前不应用映射的情况下,如图2和图4所示的没有映射的,与未经细化,按照数据编码成本(即,未经细化的画面部分的编码成本)和所述画面部分的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后,减少了按照数据编码成本(即,细化数据和细化的画面部分的编码成本)和所述画面部分的所述原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化在解码回路外部的情况下,如在图3所示的(具有映射并且回路外部的细化),与在未经细化的逆映射之后,按照数据编码成本和所述画面部分的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本相比,在逆映射和通过所述细化数据进行细化之后,减少了按照数据编码成本(即,细化数据和细化的画面部分的编码成本)和所述画面部分的所述原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本;-在编码之前应用映射并且所述细化解码回路中的情况下,如在图4所示的具有映射的,与未经细化按照数据编码成本和所述画面部分的映射的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本相比,在通过所述细化数据进行细化之后减少了按照数据编码成本和所述画面部分的所述映射的原始版本与所述重构的画面部分之间的失真的加权和计算的率失真成本。用于确定细化数据的重构的画面部分可以是重构的画面部分的环内滤波版本或环内局部滤波版本。在特定而非限制性的实施例中,标记为r的细化数据有利地通过分段线性模型(pwl)建模,该分段线性模型由n对(r_idx[k],r_val[k])定义,k=0至n-1。每一对定义pwl模型的枢轴点。在图6到图11中,详细示出了步骤s130。r_idx[k]通常是所考虑信号范围内的值,例如,对于10位的信号,范围是0到1023。有利地,r_idx[k]大于r_idx[k-1]。在步骤s140中,在比特流中编码细化数据。建议使用以下语法。考虑对三个分量进行细化。在变型中,可以编码和应用仅用于某些分量(例如,只用于两个色度分量)的语法。以细化表的形式编码细化数据。如果refinement_table_new_flag等于0,或refinement_table_flag_luma等于0,则不会对亮度应用细化。否则,对于从0到(refinement_table_luma_size-1)的所有pt,亮度细化值(r_idx[pt],r_val[pt])计算如下:r_idx[pt]设置为等于(default_idx[pt]+refinement_luma_idx[pt])r_val[pt]设置为等于(neutralval+refinement_luma_value[pt])对cb或cr分量应用类似的过程。例如,neutralval=128。可将其用于初始化如图6和图9所示的步骤s130中的值r_val。neutralval和default_idx[pt]可以是编码器和解码器侧已知的默认值,在这种情况下不需要发送。在一个变型中,neutralval和default_idx[pt]可以是在比特流中编码的值。优选地,对于从0到(refinement_table_luma_size-1)的pt,default_idx[pt]被定义为:default_idx[pt]=(maxval/(refinement_table_luma_size-1))*pt或default_idx[pt]=((maxval+1)/(refinement_table_luma_size-1))*pt对应于从0到maxval或(max+1)的等距索引,maxval是信号的最大值(例如,当信号用10个位表示时为1023)。在一个变型中,当应用映射并且基于由各个对(map_idx[k],map_val[k])定义的pwl映射表时,r_idx[k](k=0至n-1)由map_idx[k]初始化。换句话说,default_idx[k]等于map_idx[k]。同样,在另一个变型中,r_val[k](k=0至n-1)可以由map_val[k](k=0至n-1)初始化。可以默认定义语法元素refinement_table_luma_size、refinement_table_cb_size、refinement_table_cr_size,在这种情况下,不需要在流中对其进行编码。在亮度pwl模型的等距点的情况下,无需对refinement_luma_idx[pt]进行编码。refinement_luma_idx[pt]设置为0,使得对于从0到(refinement_table_luma_size-1)的pt,r_idx[pt]=default_idx[pt]。cb或cr表也是如此。在一个变型中,可以在每个表中添加语法元素以指示使用哪种细化模式(在分量内(模式1)和/或分量间(模式2)之间)。可以在sps、pps、条带、片或ctu级别上信号通知语法元素。在一个变型中,可以为每个表添加一个语法元素,以指示把表用作乘法算子还是加法算子。可以在sps、pps、条带、片或ctu级别上信号通知该语法元素。在一个实施例中,不在比特流中编码细化表。相反,默认的逆映射表(对应于图3和图4上的映射105所使用的映射表的逆)根据细化表修改,并且将修改后的逆映射表在比特流中编码。在一个实施例中,仅针对低时间等级的画面对细化表进行编码。例如,仅针对时间等级为0(时间编码等级结构中的最低等级)的画面对表进行编码。在一个实施例中,仅针对随机访问的画面(如帧内画面)对细化表进行编码。在一个实施例中,仅针对高质量的画面对细化表进行编码,该高质量的画面对应于低于给定值的画面上的平均qp。在一个实施例中,仅当细化表编码成本相对于全画面编码成本低于给定值时,才对细化表进行编码。在一个实施例中,仅当与不对细化表进行编码相比的率失真增益高于给定值时,对细化表进行编码。例如,以下规则可适用于:·如果率失真成本增益大于(0.01*宽度*高度),其中宽度和高度是所考虑分量的尺寸,则对表进行编码。如果率失真成本增益大于(0.0025*initrd),其中initrd是不应用分量细化时的率失真成本,则对该表进行编码。当率失真成本基于平方差失真时,这大体上对应于0.01db的最小psnr增益。如果将给定值设置为(0.01*initrd),则当率失真成本基于平方差失真时,这大体上对应于0.05db的最小psnr增益。假设的值可以予以修改。返回到图5,在可选步骤s150中,将细化数据应用于可能按图4进行滤波的重构的画面部分上。为此,从pwl的各对点(r_idx[pt],r_val[pt])(其中pt=0至n-1)中确定查询表lutr。例如,lutr是通过pwl的每对点(r_idx[pt],r_val[pt])和(r_idx[pt+1],r_val[pt+1])之间的线性插值确定的,如下所示:对于pt=0至n-2对于idx=r_idx[pt]至(r_idx[pt+1]–1)lutr[idx]=r_val[pt]+(r_val[pt+1]-r_val[pt])*(idx-r_idx[pt])/(r_idx[pt+1]-r_idx[pt])在一个变型中,lutr的确定如下所示:对于pt=0至n-2对于idx=r_idx[pt]至(r_idx[pt+1]1)lutr[idx]=(r_val[pt]+r_val[pt+1])/2提出了两种细化模式:·模式1—分量内细化。在模式1中,进行细化与其他分量无关。信号srec(p)的细化如下:sout(p)=lutr[srec(p)]/neutralval*srec(p)其中,srec(p)是要在画面部分中位置p处细化的重构信号,并且对应于来自(多个)环内滤波器或可能来自逆映射的信号,而sout(p)是细化后的信号。这里考虑信号srec和sout采用相同的位深度。当对两个信号使用不同的位深度时(即对sout使用bout,而对srec使用brec),可以应用与位深度差相关的缩放因子。可以使用1d-lutlutrf直接实施此操作,以使得:sout(p)=lutrf[srec(p)]=lutr[srec(p)]/neutralval*srec(p)例如,当sout的位深度bout大于srec的位深度brec时,该公式适配如下:sout(p)=2(bout-brec)*lutr[srec(p)]/neutralval*srec(p)缩放因子可以直接集成到lutr值中。可以使用1d-lutlutrf直接实施此操作,以使得:sout(p)=lutrf[srec(p)]=2(bout-brec)*lutr[srec(p)]/neutralval*srec(p)例如,当sout的位深度bout小于srec的位深度brec时,该公式适配如下:sout(p)=lutr[srec(p)]/neutralval*srec(p)/2(brec-bout)缩放因子可以直接集成到lutr值中。可以使用1d-lutlutrf直接实施此操作,以使得:sout(p)=lutrf[srec(p)]=lutr[srec(p)]/neutralval*srec(p)/2(brec-bout)有利地,该模式用于亮度分量。·模式2分量间细化。对一个分量c0执行细化并且取决于另一分量c1。信号srec_c0(p)细化如下:sout(p)=offset+lutr[srec_c1(p)]/neutralval*(srec_c0(p)–offset)其中,例如将offset设置为(maxval/2),srec_c0(p)是要细化的分量c0的重构信号,p是画面部分中的样本位置。maxval是信号srec_c0的最大值,并计算为(2b-1),其中b是信号的位深度。srec_c1(p)是分量c1的重构信号。srec_c1(p)可以是来自环内滤波器或逆映射的信号。在经过(多个)环内滤波器滤波后,例如,还可以使用低通滤波器对srec_c1(p)进一步滤波。这里考虑信号srec_c0、srec_c1和sout采用相同的位深度。有利地,模式2适用于色度分量并且取决于亮度分量。当sout的位深度bout大于srec_c0和srec_c1的位深度brec时,该公式适配如下:sout(p)=2(bout-brec)*(offset+lutr[srec_c1(p)]/neutralval*srec_c0(p)-offset))当sout的位深度bout小于srec_c0和srec_c1的位深度brec时,该公式适配如下:sout(p)=(offset+lutr[srec_c1(p)]/neutralval*srec_c0(p)-offset))/2(bout-brec)最小和最大信号值(对于10位信号,通常为0和1023)之间的舍入和钳位(clip)最终应用于细化后的值sout(p)。在以上实施例中,该细化作为乘法算子应用。在一种变型中,该细化作为加法算子应用。在这种情况下,在模式1中,信号srec(p)的细化如下:οsout(p)=lutr[srec(p)]/neutralval+srec(p)在这种情况下,在模式2中,信号srec_c0(p)的细化如下:οsout(p)=lutr[srec_c1(p)]/neutralval+srec_c0(p)下面示出了跨分量细化表值的示例,其中对于neutralval=64和n=17时,色度分量cb和cr为:cbk012345678910111213141516r_idx[k]0641281922563203844485125766407027668308969601024r_val[k]6464645258636665626666647249646464crk012345678910111213141516r_idx[k]0641281922563203844485125766407027668308969601024r_val[k]6464626163666566646070646441646464返回图5,该方法在步骤s160处结束。图6示出了详细示出步骤s130的流程图。可以在给定的画面区域a(例如,条带、片、或ctu)上,或在整个画面上,确定细化数据。细化数据r有利地通过分段线性模型(pwl)建模,该分段线性模型由n对(r_idx[k],r_val[k])定义,k=0至n-1。图7示出了pwl模型的示例,其中n=6(k∈{0,1,2,3,5})。每一对定义pwl模型的枢轴点。将值r_idx和r_val初始化(步骤s1300)。通常,对k=0到n-1初始化r_idx[k],使得在连续索引之间存在等距的间隔,即(r_idx[k+1]-r_idx[k])=d,其中d=range/(n-1),range是要细化的信号的范围(例如,对于以10位表示的信号为1024)。在示例中,n=17或33。值r_val通过值neutralval初始化,定义该值neutralval使得细化不会更改信号,例如128。在一个变型中,当应用映射并且基于由对(map_idx[k],map_val[k])定义的pwl映射表时,(r_idx[k],r_val[k])(其中k=0至n-1)由(map_idx[k],map_val[k])初始化。在图6的实施例中,仅确定值r_val[k]。值r_idx[k]固定为其初始值。使用在s1300中初始化的r来计算(步骤1301)初始率失真成本initrd。初始率失真成本initrd的计算如下:initrd=l*cost(r)+∑pinadist(sin(p),sout(p))(公式1)其中:-r是在s1300中初始化的细化数据,-a是对其进行细化的画面区域;-sin(p)被定义如下:当不应用映射时,sin(p)是原始画面区域中像素p的样本值;当应用映射并且细化处于回路外部时(图3),sin(p)是原始画面区域中像素p的样本值;当应用映射并且细化处于回路中时(图4),sin(p)是映射的原始画面区域中像素p的样本值;-sout(p)是细化的画面区域中像素p的样本值;-dist(x,y)是样本值x和样本值y之间的失真,例如失真是平方差(x-y)2;其他可能的失真函数是绝对差|x-y|或基于面向主观的指标的失真,例如ssim(参见z.wang,a.c.bovik,h.r.sheikhande.p.simoncelli,"imagequalityassessment:fromerrorvisibilitytostructuralsimilarity,"ieeetransactionsonimageprocessing,vol.13,no.4,pp.600-612,2004年4月),也可以使用ssim的变型。-cost(r)是用于编码细化数据r和细化后的画面区域的编码成本;和-l是与画面区域a相关联的值。有利地,其线性地取决于2(qp/6),其中当在画面区域a内使用单个量化参数值时,qp是量化参数,或者当在画面区域a内使用不同的量化参数值时,qp表示应用于画面区域a的量化参数。例如,qp是在区域a的块内使用的qp的平均值。在使用值neutralval初始化值r_val的情况下,可以利用画面区域的编码成本来计算初始率失真成本initrd,而无需细化数据的编码成本。在步骤s1302中,将参数bestrd初始化为initrd。然后在步骤s1303中确定细化数据r。在步骤s1304中,执行pwl模型r的连续枢轴点的索引pt上的循环。在步骤s1305中,将参数bestval和initval初始化为r_val[pt]。在步骤s1306中执行r_val[pt]的各种值的循环,即从值(initval-val0)到值(initval+val1),其中val0和val1是预定义的参数。典型值val0=val1=neutralval/4。在步骤s1307中,使用公式1以当前r(利用当前r_val[pt])计算率失真成本currd。在步骤s1308中比较currd和bestrd。如果currd低于bestrd,则将bestrd设置为currd,并将bestvalue设置为r_val[pt]。否则,该方法在步骤s1310处继续。在步骤s1310中,检验r_val[pt]的值上的循环是否结束。在循环结束的情况下,在步骤s1311中将r_val[pt]设置为bestvalue。在步骤s1312中,检验pt值上的循环是否结束。在循环结束的情况下,当前r是输出的细化数据。可以将步骤s1303迭代n次,n是值固定的整数,例如n=3。图8示出了r_val的确定。虚线表示更新r_val之后的pwl。图9示出了图6的过程的变型。在图9的实施例中,仅确定值r_idx[k]。值r_val[k]固定为其初始值。该过程使用初始r_idx和r_val数据作为输入(例如,来自图6的方法)。在步骤s1401中使用公式1计算初始率失真成本initrd。在步骤s1402中,将参数bestrd初始化为initdrd。然后在步骤s1403中确定细化数据r。在步骤s1404中,执行pwl模型r的连续枢轴点的索引pt上的循环。在步骤s1405中,将参数bestidx和initidx初始化为r_idx[pt]。在步骤s1406中执行r_idx[pt]的各种值(从initidx-idxval0到initidx+idxval1)的循环,其中idxval0和idxval1是定义的值,例如idxval0=idxval1=d/4,其中d=range/(n-1),range是要细化的信号的范围(例如,对于以10位表示的信号为1024)。在步骤s1407中,使用公式1以当前r(利用当前r_idx[pt])来计算率失真成本currd。在步骤s1408中比较currd和bestrd。如果currd低于bestrd,则将bestrd设置为currd,将bestidx设置为r_idx[pt]。否则,该方法在步骤s1310处继续。在步骤s1410中,检验r_idx[pt]的值上的循环是否结束。在循环结束的情况下,在步骤s1411中将r_idx[pt]设置为bestidx。在步骤s1412中,检验pt值上的循环是否结束。在循环结束的情况下,当前r是输出细化数据。可以将步骤s1403迭代n次,n是值固定的整数,例如n=3。图10示出了r_idx的确定。虚线表示更新r_idx之后的pwl。图11示出了r_idx和r_val的确定。虚线表示更新r_val和r_idx之后的pwl。当失真对应于原始样本值和细化后的样本值之间的平方差时,可以在步骤1301、1307、1401和1407中使用计算画面上的失真的快速实施方式。这些实现方式避免了全画面扫描。例如,如果对亮度使用直接映射,则画面阵列i的失真,标记为sse,被计算为:其中,yorig(p)是位置p处的原始画面亮度样本,而yout(p)是细化后的亮度样本,可以使用从pwl模型构建的细化lutlutrf得出:yout(p)=lutrf[yrec(p)]对于像素p的集合sy,使得解码的样本yrec(p)等于y(数学上记为{在i中的p,使得yrec(p)=y}),累积误差ssey为:其中,ny是亮度样本值y的解码画面中的出现次数(即sy的元素数)。可以将总失真sse计算为:在更改亮度细化pwl表的枢轴点时,仅需要针对受枢轴点修改影响的y值重新计算新的映射值lutrf[y],然后为这些新的映射值更新sse。在另一个示例中,如果色度u使用跨分量映射(对于v也是如此),则画面上的失真计算为:其中,uorig(p)是位置p处的原始画面色度u样本,而uout(p)可以使用从pwl模型构建的细化lutlutr得出:uout(p)=offset+lutr[yrec(p)]*(urec(p)–offset)(略去钳位、并在此处考虑简化符号,即neutralval=1且bout=brec)。对于集合sy={pini使得ydec(p)=y},累积误差为:总失真sse可以计算为:在更改u(或v)细化pwl表的枢轴点时,仅需要针对受枢轴点修改影响的y值重新计算新的映射值lutr[y],然后为这些新的映射值更新sse。图12示出了根据特定而非限制性实施例的被配置为从比特流中解码画面以获得解码的画面的接收器2000的示例性架构。接收器2000包括一个或多个处理器2005,其可以包括例如cpu、gpu和/或dsp(数字信号处理器(digitalsignalprocessor)的英文缩写),以及内部存储器2030(例如,ram、rom、和/或eprom)。接收器2000包括一个或多个通信接口2010(例如键盘、鼠标、触摸板、网络摄像机),每个适用于显示输出信息和/或允许用户输入命令和/或数据(例如,解码的画面);和电源2020,其可以位于接收器2000的外部。接收器2000还可以包括一个或多个网络接口(未示出)。解码器模块2040表示可以被包括在设备中以执行解码功能的模块。另外,解码器模块2040可以被实现为接收器2000的单独的元件,或者可以硬件和软件的组合被并入处理器2005中,作为本领域技术人员已知的。比特流可以从源中获得。根据不同的实施例,源可以是但不限于:-本地内存,例如,视频存储器、ram、闪存、硬盘;-存储接口,例如,大容量存储器、rom、光盘或磁性载体的接口;-通信接口,例如,有线接口(例如,总线接口、广域网接口、局域网接口)或无线接口(例如,ieee802.11接口或蓝牙接口);和-图像捕获电路(例如,诸如ccd(电荷耦合器件)或cmos(互补金属氧化物半导体)之类的传感器)。根据不同的实施例,可以将解码的画面发送到目的地,例如显示设备。作为示例,将解码的画面存储在远程或本地存储器(例如,视频存储器或ram、硬盘)中。在一个变型中,将解码的画面发送到存储接口,例如,大容量存储器、rom、闪存、光盘或磁性载体的接口,和/或通过通信接口进行传输,例如,点对点链接、通信总线、点对多点链接或广播网络的接口。根据示例性而非限制性的实施例,接收器2000还包括存储在存储器2030中的计算机程序。该计算机程序包括指令,当由接收器2000,特别是由处理器2005执行时,这些指令使接收器能够执行参考图16所述的解码方法。根据一种变型,计算机程序存储在接收器2000的外部的非暂时性数字数据载体上,例如,存储在诸如hdd、cd-rom、dvd、只读和/或dvd驱动器、和/或dvd读/写驱动器之类的外部存储介质上,这些都是本领域已知的。因此,接收器2000包括读取计算机程序的机制。此外,接收器2000可以通过相应的usb端口(未示出)访问一个或多个通用串行总线(usb)类型的存储设备(例如,“记忆棒”)。根据示例性而非限制性的实施例,接收器2000可以是但不限于:-移动设备;-通信设备;-游戏设备;-机顶盒;-电视机;-平板(或平板电脑);-笔记本电脑;-视频播放器,例如,蓝光播放器、dvd播放器;-显示器;和-解码芯片或解码设备/装置。图13示出了适用于执行图16的解码方法的示例性视频解码器200(例如,hevc类型的视频解码器)的框图。视频解码器200是接收器2000或这一接收机2000的一部分的示例。在示例性解码器200中,如下所述,解码器元件对比特流进行解码。视频解码器200通常执行与图2所示的编码通道相对应的解码通道,其执行视频解码作为编码视频数据的一部分。具体而言,解码器的输入包括可由视频编码器100生成的视频比特流。首先对比特流进行熵解码(230),以获得变换系数、运动矢量和其他编码信息,例如,细化数据。对变换系数进行反量化(240)并进行逆变换(250)以解码残差。然后将解码的残差与预测块(也称为预测量)组合(255)以获得解码/重构的画面块。可以从帧内预测(260)或运动补偿预测(即帧间预测)(275)获得(270)预测块。如上所述,在运动补偿期间可以使用amvp和合并模式技术,该技术可以使用插值滤波器来计算参考块的亚整数样本的插值。环内滤波器(265)被应用于重构的画面。环内滤波器可以包括去块滤波器和sao滤波器。滤波后的画面可以存储在参考画面缓冲器(280)中。将可能滤波的重构画面进行细化(290)。细化在解码回路外部,并用作后处理过程。图14示出了图13的视频解码器200的变型201。与图13的模块相同的图14的模块用相同的附图标记进行标注,不再进一步公开。对滤波后的重构画面(即(多个)环内滤波器的输出)进行逆映射(285)。逆映射(285)是应用于编码器侧的映射(105)的逆过程。逆映射可以使用从比特流解码的逆映射表或默认的逆映射表。使用从比特流中解码(230)的细化数据来细化(290)逆映射画面。在一种变型中,在单个模块中合并逆映射和细化,其使用从比特流中解码的逆映射表来应用逆映射,其中在编码器中修改逆映射表以考虑细化数据。在一种变型中,对于正在处理的给定分量,应用查找表lutcomb来执行逆映射和细化过程,并且此查找表是作为从映射表得到的查找表lutinvmap和从细化表lutr得到的查找表的级联而构建的:lutcomb[x]=lutr[lutinvmap[x]],forx=0tomaxval在本实施例中,细化过程在解码回路的外部。因此,细化过程仅作为后期处理在解码器中应用。图15示出了图13的视频解码器200的变型202。与图13的模块相同的图15的模块用相同的附图标记进行标注,不再进一步公开。从比特流中解码(230)细化数据。使用解码的细化数据来细化(290)过滤后的重构画面。将细化的画面而不是滤波后的重构画面存储在参考画面缓冲器(280)中。模块290可以插入到不同位置。细化模块290可以在(多个)环内滤波器之前插入,或者,在有至少两个环内滤波器的情况下插入在(多个)环内滤波器之间,例如,在dbf之后且在sao之前。可选地,可以对细化画面进行逆映射(285)。在本实施例中,细化过程在解码回路中。图16示出了根据特定而非限制性实施例的一种用于从比特流中解码画面的方法的流程图。该方法开始于步骤s200。在步骤s210中,接收器2000(例如解码器200)访问比特流。在步骤s220中,接收器从比特流中解码画面部分以获得解码的画面部分。为此,对画面部分的块进行解码。对块进行解码通常但不一定包括:对表示该块的比特流的一部分进行熵解码以获得变换系数块,对变换系数块进行反量化和逆变换以获得残差块,和将预测量添加到残差块中以获得解码块。然后,通过图13到图15所示的(多个)环内滤波器对解码的画面部分进行滤波,还可以按照图14进行逆映射。在步骤s230中,从比特流中解码细化数据。该步骤是编码步骤s140的逆过程。关于步骤s140公开的所有变型和实施例都适用步骤s230。在步骤s240中,对解码画面进行细化。该步骤与编码器侧的细化步骤s150相同。在另一个实施例中,动态范围适应(dra)过程是作为在编码器侧的预处理应用的信号适配,目的是提高编码效率。在解码器侧,应用逆过程。dra和逆dra可以基于静态表。对于hlg内容,不使用dra。对于pq内容,缩放表(后处理)与内容无关,并且基于所使用的dqp表。以下缩放因子对应于2dqp/6。可以对每个条带应用解码后细化过程。其旨在纠正压缩导致的失真,并影响逆动态范围自适应(dra)过程。逆映射信号(y,u,v)的细化如下:·对于亮度分量,将应用分量内缩放,对应于以下:οyrefine=min(2blum–1,lutrefiney[y]*y)ο注意:这可以使用直接lut来实现·对于色度分量,将应用与亮度有关的缩放,对应于以下:οurefine=max(0,2bchr–1,min(2bchr-1+lutrefineu[ycoloc]*(u–2bchr–1))οvrefine=max(0,2bchr–1,min(2bchr-1+lutrefinev[ycoloc]*(v–2bchr–1))ο其中,ycoloc是共位的逆映射亮度样本可以从分段线性(pwl)表构建查找表lutrefiney、lutrefineu、lutrefinev,这些表可按条带进行信号通知。pwl表的枢轴点可以是等距的,并且表的大小例如等于2s+1,s是在条带报头中信号通知的参数。实际上,可以使用17的大小。如果没有将表信号通知给分量,则使用先前解码的表。在一个实施例中,可以仅针对时间等级0的条带发送表。本文描述的实施方式可以以例如方法或过程、装置、软件程序、数据流或信号来实施。即使仅在单一实施方式形式的环境中讨论(例如,仅作为方法或设备讨论),所讨论的特征的实施方式也可以以其他形式来实施(例如,程序)。装置可以用例如适当的硬件、软件和固件来实施。这些方法可以在例如诸如处理器的装置中实施,其通常指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如计算机、手机、便携式/个人数字助理(“pda”)以及便于终端用户之间的信息通信的其他设备。本文描述的各种过程和特征的实施方式可以体现在各种不同的设备或应用中,尤其是例如设备或应用中。此类设备的示例包括编码器、解码器、处理解码器输出的后处理器、向编码器提供输入的预处理器、视频编码器、视频解码器、视频编解码器、web服务器、机顶盒、笔记本电脑、个人计算机、手机、pda、以及其他通信设备。应当清楚的是,设备可以是移动的,甚至可以安装在移动车辆中。另外,可以通过由处理器执行的指令来实现所述方法,并且可以将这样的指令(和/或由实现方式产生的数据值)存储在处理器可读介质上(例如,集成电路、软件载体),或者其他存储设备上,例如硬盘、致密盘(cd)、光盘(例如dvd,通常称为数字多功能盘或数字视频盘)、随机存取存储器(“ram”)或只读存储器(“rom”)。指令可以形成有形地体现在处理器可读介质上的应用程序。指令可以是例如硬件、固件、软件或其组合。指令可以在例如操作系统、单独的应用程序、或两者的组合中找到。因此,处理器的特征在于,例如,被配置为执行处理的设备和包括具有用于执行处理的指令的处理器可读介质(例如存储设备)的设备。此外,处理器可读介质可以存储由实现产生的除了指令之外的或者用于替代指令的数据值。对于本领域技术人员来说明显的是,实施方式可以产生各种格式化以承载例如可以被存储或发送的信息的信号。该信息可以包括例如用于执行方法的指令,或者由所描述的实施方式之一产生的数据。例如,信号可以被格式化以承载作为数据的所描述的用于写入或者读取所描述的实施例语法的规则,或者承载作为数据的所描述的实施例实际写入的语法值。这种信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码和用编码的数据流调制载波。信号承载的信息可以是例如模拟或数字信息。如已知的,信号可以通过各种不同的有线或无线链路来发送。该信号可以存储在处理器可读介质上。已经描述了许多实施方式。然而,应当理解的是,可以进行各种修改。例如,可以对不同实施方式的元件进行组合、补充、修改或移除以产生其他实施方式。另外,本领域普通技术人员可理解的是,可以用其他结构和过程代替所公开的结构和过程,并且所产生的实施方式将以至少基本上相同的方式执行至少基本上相同的功能,以至少实现与所公开的实施方式基本相同的结果。因此,本申请考虑了这些和其他实施方式。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1