CN105940677B - 低复杂性样本自适应偏移编码 - Google Patents

低复杂性样本自适应偏移编码 Download PDF

Info

Publication number
CN105940677B
CN105940677B CN201580006206.8A CN201580006206A CN105940677B CN 105940677 B CN105940677 B CN 105940677B CN 201580006206 A CN201580006206 A CN 201580006206A CN 105940677 B CN105940677 B CN 105940677B
Authority
CN
China
Prior art keywords
lcu
sao
sample
video encoder
difference
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.)
Active
Application number
CN201580006206.8A
Other languages
English (en)
Other versions
CN105940677A (zh
Inventor
阿塔纳西奥斯·利昂塔里斯
李芒
苏密特·莫汉
钟仁肃
H·G·拉古迪
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN105940677A publication Critical patent/CN105940677A/zh
Application granted granted Critical
Publication of CN105940677B publication Critical patent/CN105940677B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • 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/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Abstract

至少一个处理器经配置以使用样本自适应偏移SAO模式对图片的最大译码单元LCU的样本进行编码。为了使用SAO对所述LCU的所述样本进行编码,所述至少一个处理器经配置以:计算所述LCU的对应经重构样本与所述LCU的原始样本之间的差;从所述差中的每一者削减位的数目以形成经削减的差;将所述经削减的差求和以形成差的总和;削减所述差的总和以形成经削减的差的总和;计算所述经重构样本的数目;从所述经重构样本的数目削减位的数目以形成经削减的样本数目;以及将所述经削减的差的总和除以所述经削减的样本数目以产生用于所述LCU的偏移。

Description

低复杂性样本自适应偏移编码
本申请案主张2014年1月30日申请的第61/933,718号申请案的优先权,所述申请案的全文以引用的方式并入本文中。
技术领域
本发明涉及视频译码,并且更确切地说涉及用于样本自适应偏移(SAO)偏移编码的技术。
背景技术
数字视频能力可以并入到多种多样的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、电子图书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话(所谓的“智能电话”)、视频电话会议装置、视频串流装置及其类似者。数字视频装置实施视频压缩技术,例如描述于以下各者中的那些技术:由MPEG-2、MPEG-4、ITU-TH.263、ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)定义的标准、高效率视频译码(HEVC)标准,及此些标准的扩展。视频装置可以通过实施此类视频压缩技术来更有效率地发射、接收、编码、解码及/或存储数字视频信息。
视频压缩技术执行空间(图片内)预测及/或时间(图片间)预测来减少或去除视频序列中固有的冗余。对于基于块的视频译码来说,视频切片(即,视频帧或视频帧的一部分)可分割成视频块,所述视频块也可被称作树块、译码单元(CU)和/或译码节点。使用关于同一图片中的相邻块中的参考样本的空间预测编码图片的经帧内译码(I)切片中的视频块。图片的经帧间编码(P或B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。
空间或时间预测导致待译码块的预测性块。残余数据表示待译码原始块与预测性块的间的像素差。经帧间译码块是根据指向形成预测块的参考样本块的运动向量和指示经译码块与预测块之间的差的残余数据编码的。根据帧内译码模式和残余数据来编码经帧内译码块。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生残余变换系数,可接着量化所述残余变换系数。可扫描一开始按二维阵列排列的经量化变换系数,以便产生变换系数的一维向量,且可应用熵译码以实现更多压缩。
发明内容
本发明描述与样本自适应偏移(SAO)滤波相关的技术。举例来说,本发明描述用于减少用于视频编码器的SAO模式决策的复杂性的技术。大体上,本发明描述用于减少与当使用SAO编码模式时对视频数据块(例如,经译码视频图片的最大译码单元(LCU))进行编码相关联的计算复杂性和存储器要求的技术。本发明还描述与确定用于LCU的SAO编码模式相关的技术,以及与缓冲当使用SAO编码LCU时使用的LCU的样本相关的技术。本发明描述用于估计且比较与不同SAO模式相关联的成本函数的速率失真成本且选择优化成本函数的模式的技术。另外,本发明描述用于减少成本函数的计算复杂性的技术。
在一个实例中,一种用于对视频数据进行解码的方法,所述方法包含:使用样本自适应偏移(SAO)模式对图片的最大译码单元(LCU)的样本进行编码。使用所述SAO模式对所述LCU的所述样本进行编码包括:计算所述LCU的对应经重构样本与所述LCU的原始样本之间的差;从所述差中的每一者削减位的数目以形成经削减的差;将所述经削减的差求和以形成差的总和;削减所述差的总和以形成经削减的差的总和;计算所述经重构样本的数目;从所述经重构样本的数目削减位的数目以形成经削减的样本数目;以及将所述经削减的差的总和除以所述经削减的样本数目以产生用于所述LCU的偏移。
在另一实例中,一种用于对视频数据进行编码的装置包含存储器和至少一个处理器。所述至少一个处理器经配置以使用样本自适应偏移(SAO)模式对图片的最大译码单元(LCU)的样本进行编码。为了使用所述SAO模式对所述LCU的所述样本进行编码,所述至少一个处理器经配置以:计算所述LCU的对应经重构样本与所述LCU的原始样本之间的差;从所述差中的每一者削减位的数目以形成经削减的差;将所述经削减的差求和以形成差的总和;削减所述差的总和以形成经削减的差的总和;计算所述经重构样本的数目;从所述经重构样本的数目削减位的数目以形成经削减的样本数目;以及将所述经削减的差的总和除以所述经削减的样本数目以产生用于所述LCU的偏移。
在另一实例中,一种用于对视频数据进行编码的方法包含确定用于LCU的至少一个样本自适应偏移(SAO)模式,其中所述至少一个SAO模式包括以下各项中的至少一者:频带偏移模式、边缘偏移模式、合并上方模式、合并左边模式和跳过模式。确定所述至少一个SAO模式包括基于用于所述LCU的SAO模式的预定优先级而确定所述至少一个SAO模式。
在另一实例中,一种用于对视频数据进行编码的装置包含存储器和至少一个处理器。所述至少一个处理器经配置以确定用于LCU的至少一个样本自适应偏移(SAO)模式,且所述至少一个SAO模式包括以下各项中的至少一者:频带偏移模式、边缘偏移模式、合并上方模式、合并左边模式和跳过模式。确定所述至少一个SAO模式包括基于用于所述LCU的SAO模式的预定优先级而确定所述至少一个SAO模式。
附图及以下描述中陈述一或多个实例的细节。其它特征、目标和优点将从所述描述和图式以及权利要求书而显而易见。
附图说明
图1是说明可利用本发明中描述的技术的实例视频编码及解码系统的框图。
图2A到2D是说明用于样本自适应偏移(SAO)译码的实例边缘偏移分类的概念图。
图3是说明用于SAO译码的实例频带偏移分类的概念图。
图4是说明可实施本发明中描述的技术的实例视频编码器的框图。
图5是说明实例视频解码器的框图。
图6是说明根据本发明的技术的用于确定SAO滤波模式的高级过程的概念图。
图7是说明根据本发明的技术的用于执行明度SAO导出的过程的概念图。
图8是说明根据本发明的技术的用于执行边缘偏移(EO)明度SAO成本导出的过程的流程图。
图9是说明根据本发明的技术的用于执行明度频带偏移导出的过程的流程图。
图10是说明根据本发明的技术的用于执行色度SAO导出的方法的流程图。
图11是说明根据本发明的技术的用于执行边缘偏移色度导出的过程的流程图。
图12是说明根据本发明的技术的用于执行频带偏移色度导出的过程的流程图。
图13是说明根据本发明的技术的用于执行SAO滤波的过程的流程图。
图14是说明根据本发明的技术的用于执行SAO滤波的过程的流程图。
图15是说明当前LCU和相邻LCU的概念图。
图16是说明根据本发明的技术的用于相对于当前LCU从LCU缓冲样本的技术的概念图。
图17是说明根据本发明的技术的视频编码器使用以导出样本自适应偏移参数的样本的区的概念图。
图18是说明根据本发明的技术的用于确定用于最大译码单元的SAO模式的过程的流程图。
图19是说明根据本发明的技术的用于确定用于最大译码单元的SAO模式的过程的流程图。
具体实施方式
本发明描述与样本自适应偏移(SAO)滤波相关的技术。举例来说,本发明描述用于当使用SAO模式对视频数据的图片的LCU(最大译码单元)进行译码时减少计算复杂性且改进位速率译码效率的技术。本发明还描述用于使用SAO对LCU进行编码的缓冲技术,以及用于估计SAO模式的位速率且选择当对LCU进行编码时使用的SAO编码模式的技术。
SAO滤波是在视频译码中使用的一类环路滤波。当对LCU进行编码时,视频译码器(即视频编码器或视频解码器)将偏移值应用于LCU的样本。一般来说,对视频数据的经译码图片(例如,经重构图像)中的样本添加偏移值在一些情况下可增加经译码视频图片的图像质量而不会极大地增加存储或发射经编码视频数据所需的位开销。潜在地由SAO滤波产生的译码的改进可例如为经解码图像更接近地类似原始图像。SAO技术允许视频译码器取决于像素(或块)分类度量而将不同偏移值应用于不同像素(或像素块),所述度量例如边缘度量、频带度量或其它类型的度量。
在一些实例中,视频译码器的SAO滤波器单元可经配置以执行两个类型的SAO滤波,本发明中一般称为频带偏移(BO)滤波和边缘偏移(EO)滤波。视频译码器的SAO滤波器单元还可时常不应用偏移,其如下文中更详细地解释可自身被视为第三类型的SAO滤波。视频译码器可显式地或隐式地用信号表示SAO滤波器单元应用的偏移滤波的类型。当应用边缘偏移滤波时,视频译码器可基于译码单元的边缘信息对像素进行分类,且视频译码器基于边缘分类而确定译码单元的像素(例如,色度和/或明度样本)的偏移。如下文中更详细地解释,通常存在基于边缘的SAO的四个变化,其中将像素的值与其八个相邻像素中的两个进行比较。视频译码器用于比较的两个相邻像素可取决于视频译码器选择基于边缘的偏移的哪一种变化用于译码单元。基于像素之间的差的量值,视频译码器可对译码单元的像素添加偏移。
当应用频带偏移滤波时,视频译码器将译码单元的像素分类到直方图的不同频带中。视频译码器基于像素的性质而分类像素,例如像素的强度值,其中每一频带具有相关联偏移。每一频带可包含像素值范围。举例来说,0到255范围的像素值可划分成32个相等频带(标记为0到31),以使得对于直方图的全部三十二个频带,像素值0-7是第一频带,像素值8-15是第二频带,像素值16-23是第三频带,等等。视频译码器可使用所述频带以确定哪一特定偏移值适用于像素或群组像素。举例来说,如果像素具有值10(其在以上实例中在第二频带(即值8-15)内),那么视频译码器可将与第二频带相关联的特定偏移添加到像素值。
除如上文所描述将像素分类为频带之外,视频译码器还可将频带分组为两个或更多个群组以用于应用偏移值的目的。视频译码器可进一步将频带分组到两个群组中成为两个群组(例如,两个十六频带的群组,四个频带的一个群组和二十八个频带的一个群组,八个频带的一个群组和二十四个频带的一个群组,或其它此类分组)。频带的分组可用于确定频带的偏移值在经编码视频位流中用信号表示的次序,和/或可用以确定特定频带是否具有除零外的偏移值。视频译码器可使用差分译码技术用信号表示频带的偏移,其中将当前值用信号表示为当前偏移值与先前偏移值之间的差。
本发明可一般地称视频编码器向例如视频解码器等另一装置“用信号表示”某些信息。然而,应理解,视频编码器可以通过使某些语法元素与视频数据的各种经编码部分相关联来用信号表示信息。也就是说,视频编码器可以通过将某些语法元素存储到视频数据的各种经编码部分的标头来“用信号表示”数据。在一些情况下,此些语法元素可在由视频解码器接收且解码之前经编码且存储(例如,存储到计算机可读媒体)。因而,术语“用信号表示”可能总体上指代用于解码经压缩的视频数据的语法或其它数据的通信,不论所述通信是实时或几乎实时发生还是在一段时间中发生,例如可能在编码时将语法元素存储到媒体上的时候发生,接着可以在存储到这个媒体上之后的任何时间由解码装置检索。
在任何情况下,在高效率视频译码(HEVC)标准中包含的一些技术中,SAO滤波可在切片层级经启用和停用,且此外,SAO滤波可单独地针对明度和色度样本而经启用和停用。举例来说,对于视频数据的特定切片,明度和色度样本两者可经SAO滤波;明度或色度样本都不可经SAO滤波;或者明度和色度样本中的一者可经SAO滤波而另一者不可经SAO滤波。当SAO滤波针对切片经启用时,则在最大译码单元(LCU)层级用信号表示SAO类型和偏移值。
如上文所介绍,SAO类型可包含频带偏移滤波、边缘偏移滤波或无SAO滤波。因此,即使SAO滤波针对特定切片经启用,所述切片的一些LCU也不可经SAO滤波(即一些LCU将具有无SAO滤波的SAO类型)。在一些情况下,以一系列合并旗标语法元素用信号表示SAO类型和偏移值,其中第一合并旗标的真值指示偏移类型且LCU的偏移值是从左边相邻LCU继承,且第二合并旗标的真值指示SAO类型且偏移值是从上方相邻(也被称作顶部相邻)LCU继承。如果两个合并旗标为假,那么视频译码器用信号表示指示用于LCU的新SAO类型和新偏移值的语法元素。
视频编码器(例如下文描述的视频编码器20)可经配置以减少与以SAO滤波编码视频数据相关联的计算复杂性和/或存储器要求。一般来说,本发明可将“裁剪”称为数学函数,其将数字的精度减少到指定最大数目的位(即规定的值范围)。裁剪功能可使用各种硬件机构等,通过算术右移位、算术左移位、“与”运算、掩蔽、舍入来减少数字的精度。
视频编码器(例如下文描述的视频编码器20)还可经配置以当从上述模式选择SAO模式时使用本发明的技术。举例来说,根据本发明的技术,视频编码器20可经配置以确定用于LCU的至少一个样本自适应偏移(SAO)模式。所述至少一个SAO模式可包括以下各项中的至少一者:频带偏移模式、边缘偏移模式、合并上方模式、合并左边模式,和跳过模式。为了确定所述至少一个SAO模式,视频编码器20可经配置以基于用于LCU的SAO模式的预定优先级而确定所述至少一个SAO模式。
图1是说明可利用本发明中描述的SAO编码技术的实例视频编码和解码系统10的框图。如图1中所示,系统10包含源装置12,其产生在稍后时间待由目的地装置14解码的经编码视频数据,且如将在下文更详细地描述,视频数据的此编码和解码可包含译码SAO模式和/或偏移值。源装置12及目的地装置14可包括多种多样的装置中的任一者,包含桌上型计算机、笔记型(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如所谓的“智能”电话)、所谓的“智能”平板计算机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置或类似者。在一些情况下,可装备源装置12和目的地装置14以用于无线通信。
目的地装置14可以经由链路16接收待解码的经编码视频数据。链路16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一个实例中,链路16可包括使得源装置12能够实时地将经编码视频数据直接发射到目的地装置14的通信媒体。可根据通信标准(例如,无线通信协议)调制经编码的视频数据,并将其发射到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如射频(RF)频谱或一或多个物理传输线。通信媒体可形成分组网络(例如,局域网、广域网或全球网络,例如因特网)的部分。通信媒体可包含路由器、交换器、基站或任何其它可用于促进从源装置12到目的地装置14的通信的设备。
替代性地,可将经编码数据从输出接口22输出到存储装置34。类似地,可由输入接口从存储装置34接入经编码数据。存储装置34可以包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器或用于存储经编码视频数据的任何其它合适的数字存储媒体。在另一实例中,存储装置34可对应于可保持由源装置12产生的经编码视频的文件服务器或另一中间存储装置。目的地装置14可经由流式传输或下载从存储装置34存取所存储的视频数据。文件服务器可为能够存储经编码视频数据且将经编码视频数据发射到目的地装置14的任何类型的服务器。实例文件服务器包含网络服务器(例如,用于网站)、FTP服务器、网络附接存储(NAS)装置及本地磁盘驱动器。目的地装置14可以通过任何标准数据连接(包含因特网连接)来存取经编码视频数据。此可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码的视频数据从存储装置34的发射可为流式传输发射、下载发射或两者的组合。
本发明的技术未必限于无线应用或设定。所述技术可应用于视频译码以支持多种多媒体应用中的任一者,例如空中电视广播、有线电视发射、卫星电视发射、串流视频传输(例如,经由因特网)、对数字视频编码以存储于数据存储媒体上、对存储于数据存储媒体上的数字视频解码,或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频传输,以支持例如视频流式传输、视频重放、视频广播和/或视频电话等应用。
在图1的实例中,源装置12包含视频源18、视频编码器20和输出接口22。在一些状况下,输出接口22可包含调制器/解调器(调制解调器)及/或发射器。在源装置12中,视频源18可包含例如视频俘获装置(例如,摄像机)、含有先前俘获的视频的视频存档、用于从视频内容提供者接收视频的视频馈入接口及/或用于产生计算机图形数据作为源视频的计算机图形系统,或此类源的组合等源。作为一个实例,如果视频源18为摄像机,那么源装置12及目的地装置14可形成所谓的相机电话或视频电话。然而,本发明中所描述的技术一般来说可适用于视频译码,且可应用于无线和/或有线应用。
可由视频编码器20来编码所俘获视频、经预先俘获的视频或计算机产生的视频。经编码视频数据可通过源装置12的输出接口22直接发射到目的地装置14。还可(或替代地)将经编码视频数据存储到存储装置34上以供稍后由目的地装置14或其它装置存取以用于解码及/或回放。
目的地装置14包含输入接口28、视频解码器30及显示装置32。在一些情况下,输入接口28可包含接收器及/或调制解调器。目的地装置14的输入接口28经由链路16接收经编码视频数据。经由链路16传送或在存储装置34上提供的经编码视频数据可包含由视频编码器20所产生的多种语法元素以供由例如视频解码器30的视频解码器用于解码视频数据。此类语法元素可与在通信媒体上发射、存储于存储媒体上或存储文件服务器的经编码视频数据包含在一起。
显示装置32可与目的地装置14一起集成或在目的地装置外部。在一些实例中,目的地装置14可包含集成显示装置,且还经配置以与外部显示装置介接。在其它实例中,目的地装置14可为显示装置。一般来说,显示器装置32将经解码视频数据显示给用户,且可包括多种显示器装置中的任一者,例如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示器装置。
视频编码器20和视频解码器30可根据视频压缩标准(例如最近标准化的高效率视频译码(HEVC)标准)来操作,且可符合HEVC测试模型(HM)。2013年4月的文献ITU-T H.265,系列H:视听和多媒体系统,视听服务的基础结构-移动视频的译码,“高效率视频译码”,称为“HEVC标准”。
或者,视频编码器20和视频解码器30可根据其它专有或业界标准来操作,所述标准例如是ITU-T H.264标准,也被称为MPEG-4第10部分高级视频译码(AVC),或此类标准的扩展。但是,本发明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含MPEG-2和ITU-T H.263。
尽管图1中未图示,在一些方面中,视频编码器20和视频解码器30可各自与音频编码器及解码器集成,且可包含适当多路复用器-多路分用器单元或其它硬件和软件以处置共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么多路复用器-多路分用器单元可以符合ITU H.223多路复用器协议,或例如用户数据报协议(UDP)等其它协议。
视频编码器20和视频解码器30各自可实施为多种合适的编码器电路中的任一者,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件固件或其任何组合。当部分地用软件实施所述技术时,装置可将用于所述软件的指令存储在合适的非暂时计算机可读媒体中,且使用一或多个处理器用硬件执行所述指令以执行本发明的技术。视频编码器20和视频解码器30中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(编解码器)的部分。
HEVC标准化努力是基于被称作HEVC测试模型(HM)的视频译码装置的模型。HM根据(例如)ITU-T H.264/AVC假设视频译码装置相对于现存装置的若干额外能力。举例来说,虽然H.264提供九种帧内预测编码模式,但HM可提供多达三十三种帧内预测编码模式。
一般来说,HM描述视频帧或图片可划分成包含明度及色度样本两者的树块或最大译码单元(LCU)的序列。树块具有与H.264标准的宏块类似的目的。切片包含按译码次序的若干连续树块。视频帧或图片可以被分割成一或多个切片。每一树块可以根据四叉树分裂成译码单元(CU)。举例来说,作为四叉树的根节点的树块可分裂成四个子节点,且每一子节点又可为父代节点且可分裂成另外四个子节点。最终未分裂子节点作为四叉树的叶节点包括译码节点,即经译码视频块。与经译码位流相关联的语法数据可界定树块可分裂的最大次数,且还可界定译码节点的最小大小。
CU包含译码节点和与所述译码节点相关联的预测单元(PU)和变换单元(TU)。CU的大小对应于译码节点的大小并且形状必须是正方形。CU的大小可介于8×8个像素至多达具有最大64×64个像素或更大的树块大小的范围内。每一CU可以含有一或多个PU和一或多个TU。举例来说,与CU相关联的语法数据可描述CU分割成一或多个PU。分割模式可在CU被跳过或经直接模式编码、经帧内预测模式编码或经帧间预测模式编码之间有所不同。PU可以分割成非正方形形状。举例来说,与CU相关联的语法数据还可描述CU根据四叉树到一或多个TU的分割。TU可为正方形或非正方形形状。
HEVC标准允许根据TU变换,TU可针对不同CU而有所不同。TU的大小通常是基于针对经分割LCU定义的给定CU内的PU的大小而确定,但是情况可能并不总是如此。TU通常与PU大小相同或小于PU。在一些实例中,可以使用被称为“残余四叉树”(RQT)的四叉树结构将对应于CU的残余样本细分成较小单元。RQT的叶节点可被称为变换单元(TU)。可以变换与TU相关联的像素差值以产生变换系数,所述变换系数可经量化。
一般来说,PU包含与预测程序有关的数据。例如,当PU经帧内模式编码时,PU可以包含描述PU的帧内预测模式的数据。作为另一实例,当PU经帧间模式编码时,PU可包括限定PU的运动向量的数据。界定PU的运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量所指向的参考图片,及/或运动向量的参考图片列表(例如,列表0、列表1或列表C)。
一般来说,TU用于变换及量化过程。具有一或多个PU的给定CU还可以包含一或多个变换单元(TU)。在预测之后,视频编码器20可计算对应于PU的残余值。残余值包括像素差值,所述像素差值可变换成变换系数、经量化且使用TU进行扫描以产生串行化变换系数以用于熵译码。本发明通常使用术语“视频块”来指代CU的译码节点。在一些特定情况下,本发明还可使用术语“视频块”来指包含译码节点以及PU及TU的树块,即,LCU或CU。
视频序列通常包含一系列视频帧或图片。图片群组(GOP)一般包括一系列一或多个视频图片。GOP可包含GOP的标头、所述图片中的一或多个的标头或其它地方中的语法数据,其描述GOP中包含的图片的数目。图片的每一切片可包含描述用于相应的切片的编码模式的切片语法数据。视频编码器20通常对个别视频切片内的视频块进行操作以便对视频数据进行编码。视频块可与CU内的译码节点相对应。视频块可具有固定或变化的大小,并且根据指定译码标准可在大小上有所不同。
作为实例,HM支持各种PU大小的预测。假设特定CU的大小为2N×2N,那么HM支持2N×2N或N×N的PU大小的帧内预测,及2N×2N、2N×N、N×2N或N×N的对称PU大小的帧间预测。HM还支持用于在2N×nU、2N×nD、nL×2N及nR×2N的PU大小下的帧间预测的不对称分割。在不对称分割中,不分割CU的一个方向,但是将另一方向分割成25%和75%。CU的对应于25%分区的部分通过“n”继之以“上”、“下”、“左”或“右”的指示来指示。因而,举例来说,“2N×nU”是指水平地分割的2N×2N CU,其中顶部为2N×0.5N PU,且底部为2N×1.5N PU。
在本发明中,“N×N”与“N乘N”可互换使用来指代在垂直和水平尺寸方面的视频块的像素尺寸,例如,16×16像素或16乘16像素。大体来说,16x16块将在垂直方向上具有16个像素(y=16),且在水平方向上具有16个像素(x=16)。同样,NxN块总体上在垂直方向上具有N个像素,并且在水平方向上具有N个像素,其中N表示非负整数值。块中的像素可布置成行和列。此外,块未必需要在水平方向上与在竖直方向上具有相同数目个像素。举例来说,块可包括NxM个像素,其中M未必等于N。
在使用CU的PU进行帧内预测性或帧间预测性译码之后,视频编码器20可以计算用于CU的TU的残余数据。PU可包括空间域(还称为像素域)中的像素数据,且TU在将变换应用到残余视频数据之后可包括变换域中的系数,所述变换例如离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换。残余数据可对应于未经编码图片的像素与对应于PU的预测值之间的像素差。视频编码器20可以形成包含用于CU的残余数据的TU,并且接着变换TU以产生用于CU的变换系数。
在用于产生变换系数的任何变换之后,视频编码器20可执行变换系数的量化。量化大体上指代对变换系数进行量化以可能减少用以表示系数的数据的量从而提供进一步压缩的过程。量化过程可以减少与系数中的一些或全部相关联的位深度。例如,n位值可在量化期间被下舍入到m位值,其中n大于m。
在一些实例中,视频编码器20可利用预定义扫描次序来扫描经量化的变换系数以产生可被熵编码的串行化向量。在其它实例中,视频编码器20可以执行自适应扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器20可以例如根据上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵编码方法对所述一维向量进行熵编码。视频编码器还20也可熵编码与经编码视频数据相关联的语法元素以供视频解码器30在解码视频数据时使用。
为了执行CABAC,视频编码器20可向待发射的符号指派上下文模型内的上下文。上下文可涉及(例如)符号的相邻值是否为非零。为了执行CAVLC,视频编码器20可选择用于待发射的符号的可变长度码。VLC中的码字可经构造使得相对较短码对应于更有可能符号,而较长码对应于不太可能符号。以此方式,使用VLC可例如实现优于针对待发射的每一符号使用等长度码字的位节省。概率确定可基于指派到符号的上下文。
SAO译码也包含在HEVC标准中。一般来说,对视频图片中的像素添加偏移值可改善经重构视频质量,而不会极大地增加存储或发射经编码视频数据所需的译码位开销。SAO技术允许例如视频编码器20和/或视频解码器30等视频译码器取决于像素(或块)分类度量而应用不同偏移值以应用于不同像素(或块)。可能的分类度量包含例如边缘度量和频带度量等活动性度量。偏移分类的描述可参见C.-M.傅、C.-Y.陈、C.-Y.蔡、Y.-W.黄、S.雷的“CE13:具有不依赖LCU的解码的样本自适应偏移(CE13:Sample Adaptive Offset with LCU-Independent Decoding)”,JCT-VC工作成果E049,日内瓦,2011年2月(“C.-M.傅等人”)。
在根据HEVC标准的SAO实施方案中,每一分区(其可由若干块组成,例如LCU的集合)可具有五个SAO模式中的一者,其也被称作像素分类。视频编码器(例如视频编码器20)可基于LCU(LCU可采取16×16、32×32或64×64的大小)选择性启用SAO处理。如果SAO处理经启用,那么视频编码器20可以五个SAO选项中的一者处理LCU分量(Y,Cb,Cr)。视频编码器20用信号表示语法值“sao_type_idx_luma”和“sao_type_idx_chroma”的值以向视频解码器30指示哪一模式将分别应用于选定LCU的明度和色度通道。
第一模式是“边缘偏移”(EO)。如果视频编码器20选择此模式,那么视频编码器20用信号表示sao_type_idx_luma/chroma=2。另外,视频编码器20用信号表示基于sao_eo_class_luma和sao_eo_class_chroma语法值而选择四个可能的边缘分类器(参见下文展示的表1)中的一者,其在下文更详细地论述。当选择EO模式时,视频编码器20将LCU中的像素分类为五个可能的类别中的一者。那些类别中的四者具有非零偏移,其可显式地在位流中用信号表示。视频编码器20随后将这些偏移添加到属于相应类别的像素。
第二模式是“频带偏移”(BO),视频编码器20通过设定sao_type_idx_luma/chroma=1来用信号表示所述模式。在此模式中,视频编码器20将LCU中的像素分类为32个可能的类别(频带)。根据本发明的技术,视频编码器20可通过使像素中的每一者的强度右移位3位(对于具有8位强度值的像素)而将像素分类为32个频带。那32个频带中仅四个连续频带的群组将具有非零偏移,视频编码器20在位流中显式地用信号表示此情形。视频编码器20将用信号表示的非零偏移中的第一者的位置用信号表示为语法元素sao_band_position。视频编码器20随后将每一偏移添加到属于相关联频带的像素。
在也被称作“跳过模式”的下一模式中,视频编码器20不应用处理且视频编码器20用信号表示等于零的sao_type_idx_luma/chroma。在此模式中,视频编码器20使当前LCU的像素保持不变,且SAO充当从解块块/单元一直到经解码图片缓冲器(DPB)(也被称作“参考图片存储器”或简称为“存储器”,如下相对于图4所述)的像素输出的通路。
在称为“合并左边”模式的第四模式中,视频编码器20将左边相邻LCU的SAO参数应用于当前LCU的像素(其中左边相邻LCU是直接定位于当前正译码的LCU的左边的LCU)。当视频编码器20选择此模式时,视频编码器20将sao_merge_left_flag的值设定为等于一。在称为“合并上方”模式的第五模式中,视频编码器20将上方相邻LCU的SAO参数应用于当前LCU的像素(其中上方相邻LCU是直接定位于当前正译码LCU上方的LCU)。在此模式中,视频编码器20将sao_merge_left_flag的值设定为等于0,且将sao_merge_up_flag的值设定为等于1。
图2A到2D是展示HEVC标准中当前包含的四个可能的边缘偏移分类的概念图。边缘偏移类型基于边缘信息分类每一像素,且使用滤波器形状分类当前LCU的每一像素,其由语法元素sao_eo_class标引。所述四个可能的滤波器形状包含:水平(类0),垂直(类1),135度(类2)和45度(类3),其分别在图2A到2D中展示。
视频编码器20针对每一像素重复分类操作recPicture[xC+i,yC+j]。在LCU中,分量(xC,yC)是LCU的左上样本的坐标,且对于示范性32×32LCU,针对明度i=0…31且j=0…31,且针对色度i=0…15且j=0…15。视频编码器20使用连同当前样本recPicture[xC+i,yC+j]一起使用两个相邻像素recPicture[xC+i+hPos[k],yC+j+vPos[k]],其中k=0…1。以下表1中界定表示为hPos和vPos的相邻像素的坐标。
SaoEoClass[cIdx][rx][ry] 0 1 2 3
hPos[0] -1 0 -1 1
hPos[1] 1 0 1 -1
vPos[0] 0 -1 -1 -1
vPos[1] 0 1 1 1
表1-针对不同sao_eo_class值的滤波器分支的坐标
在表2的前两行中展示分类操作。视频编码器20执行的此操作将当前像素分类为以下表3中所示的五个可能的类别中的一者。在分类期间,视频编码器20为当前LCU的每一像素指派从0到4的范围的索引。视频编码器20在位流中针对具有以1到4标引的四个类别发送任何非零偏移。给定当前像素的类别索引(edgeTable[edgeIdx]),视频编码器20将适当偏移应用于像素,如表2的第三行中所示。参数saoValueArray具有5个条目,其全部以零值初始化。条目1到4以位流中用信号表示的偏移值填充。
表2-EO分类以及对经重构样本的偏移的应用
对于图2A到2D中所示的边缘分类中的每一者,视频编码器20通过将当前像素(C)的值与相邻像素(1和2)的值进行比较而计算当前像素的边缘类型。图2A说明分类零(sao_eo_class=0)的水平边缘偏移。在图2A中,视频编码器20将当前像素(像素C)与左边相邻像素(像素1)和右边相邻像素(像素2)进行比较。图2B说明分类(sao_eo_class=1)的垂直SAO边缘偏移。在图2B的分类中,视频编码器20将当前像素(像素C)与上方相邻像素(像素1)和下方相邻像素(像素2)进行比较。对于图2C中所示的135度SAO边缘偏移分类(sao_eo_class=2),视频编码器20将当前像素(像素C)与左上方相邻像素(像素1)和右下方相邻像素(像素2)进行比较。对于图2D中所示的45度SAO边缘偏移分类(sao_eo_class=3),视频编码器20将当前像素(像素C)与右上方相邻像素(像素1)和左下方相邻像素(像素2)进行比较。
所述四个边缘偏移分类可各自带有具有范围从0到4的五个可能的整数值的边缘类型。初始地,当前像素的边缘类型假定为零。如果当前像素C的值等于左边和右边相邻像素(1和2)的值,那么C的边缘类型等于零。如果C的值小于两个相邻像素的值,那么C的边缘类型等于一。如果当前像素C的值小于相邻像素中的一者,且C等于另一像素的值,那么边缘类型等于二。如果当前像素C的值大于一个相邻像素的值且C等于另一相邻像素的值,那么边缘类型等于三。如果当前像素C的值大于两个相邻像素值的值,那么边缘类型等于四。表3概括了基于当前像素(p)与相邻像素的比较的EO分类类别。
类别 条件
1 p小于两个相邻者
2 p小于相邻者中的一个&&p等于相邻者中的一个
3 P大于相邻者中的一个&&p等于相邻者中的一个
4 p大于两个相邻者
0 非以上任何情况
表3-在应用EO分类器之后的分类类别
视频编码器20将同一通道(即Y、Cr或Cb通道)中的样本分类到上述五个类别中的一者中,且确定将应用于所述类别中的每一者中的像素中的每一者的偏移。视频编码器20基于速率失真成本函数而选择五个EO模式中的一者以用于当前LCU,且在经译码视频位流中用信号表示类别以及用于选定EO类别的偏移值。
为了确定施加于用于每一边缘类的CU的偏移,视频编码器20确定以特定边缘类分类的CU的原始样本与具有同一边缘类的块的经重构样本之间的差的总和。根据本发明的技术,为了减少存储器要求,视频编码器20可将所述差的位宽削减(例如,减少)到[-32,31]的范围,以使得6个位是减少原始样本与经重构样本之间的每一差的足够位数目。在将每一6位削减差值添加到差的总和之后,视频编码器20进一步将差的总和削减到[-4095,4095]的范围以便将表示差的总和需要的位数目减少到13位。
作为确定用于属于边缘类的像素的偏移值的部分,视频编码器20计算属于所述边缘类的经重构样本的数目,且将所述样本数目的值削减到范围[0,1023],以使得10位表示属于所述边缘类的像素的数目。
接着,视频编码器20将削减的差的总和除以样本的数目以确定用于边缘类的偏移值。然而,为了改善所述除法的性能,视频编码器20可通过迭代减法执行除法。作为迭代减法的部分,视频编码器20可将临时变量设定为等于经削减的差的总和的绝对值。视频编码器20接着可从等于经削减的差的总和的绝对值的变量迭代地减去样本数目直到所得的差小于或等于零。用于LCU的偏移随后等于执行的迭代减法的数目。
因此,根据本发明的技术,视频编码器20可经配置以使用样本自适应偏移(SAO)模式对图片的最大译码单元(LCU)的样本进行编码。为了使用SAO模式对LCU的样本进行编码,所述至少一个处理器经配置以:计算LCU的对应经重构样本与LCU的原始样本之间的差,从所述差中的每一者削减位的数目以形成经削减的差,对经削减的差进行求和以形成差的总和,削减所述差的总和以形成经削减的差的总和。视频编码器20可进一步经配置以计算经重构样本的数目,从经重构样本的数目削减位的数目以形成经削减的样本数目,且将经削减的差的总和除以经削减的样本数目以产生用于LCU的偏移。
当对经EO滤波LCU进行解码时,视频解码器30基于经译码视频位流中接收的值确定偏移和EO类别。视频解码器30将偏移应用于LCU的被分类为属于用信号表示的EO类别的样本。
本发明描述用于减少确定用于EO类别中的每一者的偏移的计算复杂性的技术,如下文更详细描述。
图3是展示可在频带偏移(BO)SAO滤波中使用的实例频带的概念图。图3中的每一矩形表示一个频带。图3的实例展示32个频带,即频带0-31,且所述频带中的一些(例如频带0、频带8、频带12、频带15、频带24和频带31)已经标记。对于基于频带的偏移,基于例如强度值等像素值将像素分类到不同频带中。出于实例的目的,假定像素值从0到255变动(例如,针对具有8位位深的样本),但也可以使用例如0到1023等其它范围(例如,当像素具有10位位深时)。在此实例中,图3中所示的最大值将等于255,且图3中所示的三十二个频带中的每一者将具有8的范围。最左边频带(即图3中的频带0)可含有具有强度值0到7的像素,下一频带(即图3中的频带1)可含有具有强度值8到15的像素,下一频带(即频带2)可含有具有强度值16到23的像素等等,直到到达最右边频带(即图3中的频带31),其可含有具有强度值248到255的像素。
当编码时,例如视频编码器20的编码器确定四个频带范围以及用以从落在所述选定四个频带范围中的像素中的每一者添加或减去的对应偏移。视频编码器20可通过在一些实例中使当前过程通道中的每一像素的强度算术右移位三个位(>>3)而确定每一频带中的像素的数目。视频编码器20仅用信号表示最左边频带的索引,且视频解码器30基于用信号表示的最左边频带而确定接下来三个右边相邻频带也应具有施加的偏移。以此方式,与指示频带或频带的数目相关联的信令可减少(对比用信号表示频带中的每一者)。
在图3的实例中,视频编码器20已确定的四频带范围开始于频带12,且结束于频带15。视频编码器20用信号表示待滤波的最左边频带的索引(图13中展示为开始索引12),且视频解码器30基于用信号表示的索引而确定频带12到15中的样本将具有施加的偏移。视频编码器20还确定且用信号表示用于四个频带中的每一者的偏移,且视频解码器30将所述偏移应用于频带12到15中的样本。
为了确定与四个频带中的每一者相关联的偏移,视频编码器20可利用类似于上文相对于图2A到2D描述的过程的过程。即,视频编码器20可确定原始像素值与经重构像素值之间的差值,削减所述差值且相加所述经削减的差值以产生差的总和,视频编码器20还可进行削减以产生经削减的差的总和。视频编码器20还可计算属于每一频带的像素的数目且削减差的数目以产生经削减的像素数目。为了确定偏移值,视频编码器20可如上文所描述使用迭代减法将差的总和除以像素数目。
下文更详细地描述用于降低执行频带偏移滤波的复杂性的额外技术。
图4是说明可实施本发明中描述的技术的实例视频编码器20的框图。视频编码器20可执行视频切片内的视频块的帧内和帧间译码。帧内译码依赖于空间预测来减少或去除给定视频帧或图片内的视频中的空间冗余。帧间译码依赖于时间预测来减少或去除视频序列的邻近帧或图片内的视频中的时间冗余。帧内模式(I模式)可指若干基于空间压缩模式中的任一者。例如单向预测(P模式)或双向预测(B模式)的帧间模式可指代若干基于时间的压缩模式中的任一者。
在图4的实例中,视频编码器20包含分割单元35、预测处理单元41、求和器50、变换处理单元52、量化单元54、熵编码单元56以及存储器64。预测处理单元41包含运动估计单元42、运动补偿单元44及帧内预测单元46。为了视频块重构,视频编码器20还包含逆量化单元58、逆变换处理单元60、求和器62、解块滤波器单元72、SAO单元74和自适应环路滤波器(ALF)76。虽然解块滤波器单元72、SAO单元74和ALF 76在图4中展示为环路内滤波器,但在其它配置中,解块滤波器单元72、SAO单元74和ALF 76可实施为环路后滤波器。此外,虽然出于解释的目的单独地展示且描述,但滤波单元可高度集成。
如图4中所展示,视频编码器20接收视频数据,且分割单元35将数据分割成视频块。此分割还可包含分割成切片、瓦片或其它较大单元,以及例如根据LCU及CU的四叉树结构的视频块分割。视频编码器20一般说明编码待编码的视频切片内的视频块的组件。所述切片可以分成多个视频块(并且可能分成被称作切片的视频块集合)。预测处理单元41可基于错误结果(例如,译码速率及失真等级)针对当前视频块选择多种可能译码模式中的一者,例如,多种帧内译码模式中的一者或多种帧间译码模式中的一者。预测处理单元41可将所得经帧内或帧间译码块提供到求和器50以产生残余块数据,并提供到求和器62以重构经编码块以用作参考图片。
预测处理单元41内的帧内预测单元46可相对于与待译码当前块在相同的帧或切片中的一或多个相邻块执行当前视频块的帧内预测性译码,以提供空间压缩。预测处理单元41内的运动估计单元42及运动补偿单元44相对于一或多个参考图片中的一或多个预测块执行当前视频块的帧间预测性译码以提供时间压缩。
运动估计单元42可经配置以根据用于视频序列的预定模式来确定用于视频切片的帧间预测模式。预定模式可将序列中的视频切片标明为P切片、B切片或GPB切片。运动估计单元42和运动补偿单元44可高度集成,但出于概念的目的分别加以说明。运动估计单元42执行的运动估计是产生运动向量的过程,所述过程估计视频块的运动。举例来说,运动向量可以指示当前视频帧或图片内的视频块的PU相对于参考图片内的预测块的移位。
预测块是被发现在像素差方面与待译码视频块的PU密切匹配的块,所述像素差可通过绝对差总和(SAD)、平方差总和(SSD)或其它差异度量来确定。在一些实例中,视频编码器20可计算存储于存储器64中的参考图片的子整数像素位置的值。举例来说,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动向量。
运动估计单元42通过比较PU的位置与参考图片的预测性块的位置来计算用于经帧间译码切片中的视频块的PU的运动向量。参考图片可以选自第一参考图片列表(列表0)或第二参考图片列表(列表1),其中的每一个识别存储在存储器64中的一个或多个参考图片。运动估计单元42向熵编码单元56和运动补偿单元44发送计算出的运动向量。
通过运动补偿单元44执行的运动补偿可以涉及基于通过运动估计(可能执行对子像素精确度的内插)确定的运动向量获取或产生预测性块。在接收到当前视频块的PU的运动向量后,运动补偿单元44可在参考图片列表中的一者中定位所述运动向量指向的预测块。视频编码器20通过从正被译码的当前视频块的像素值减去预测性块的像素值来形成残余视频块,从而形成像素差值。像素差值形成用于所述块的残余数据,且可包含明度及色度差分量两者。求和器50表示执行此减法运算的一或多个组件。运动补偿单元44还可产生与视频块和视频切片相关联的语法元素以供视频解码器30在对视频切片的视频块解码时使用。
作为如上文所描述的由运动估计单元42和运动补偿单元44执行的帧间预测的替代方案,帧内预测单元46可以对当前块进行帧内预测。具体来说,帧内预测单元46可以确定用于对当前块进行编码的帧内预测模式。在一些实例中,帧内预测单元46可以例如在单独编码遍次期间使用各种帧内预测模式对当前块进行编码,并且帧内预测单元46(或在一些实例中为模式选择单元40)可以从所述测试模式中选择适当帧内预测模式来使用。举例来说,帧内预测单元46可使用速率-失真分析计算针对各种测试的帧内预测模式的速率-失真值,且从所述测试的模式当中选择具有最好速率失真特性的帧内预测模式。速率失真分析一般确定经编码块与经编码以产生所述经编码块的原始的未经编码块之间的失真(或误差)的量,以及用于产生经编码块的位速率(也就是说,位数目)。帧内预测单元46可以根据用于各种经编码块的失真和速率计算比率,以确定哪个帧内预测模式对于所述块展现最佳速率失真值。
在任何情况下,在选择了用于一个块的帧内预测模式之后,帧内预测单元46可以将指示用于所述块的选定帧内预测模式的信息提供到熵编码单元56。视频编码器20在发射的位流中可包含配置数据,其可包含多个帧内预测模式索引表及多个经修改的帧内预测模式索引表(也称为码字映射表),对用于各种块的上下文进行编码的定义,及对最可能帧内预测模式、帧内预测模式索引表及经修改的帧内预测模式索引表的指示以用于所述上下文中的每一者。
在预测处理单元41经由帧间预测或帧内预测产生当前视频块的预测性块之后,视频编码器20通过从当前视频块减去预测性块而形成残余视频块。残余块中的残余视频数据可包含在一或多个TU中并应用于变换处理单元52。变换处理单元52使用例如离散余弦变换(DCT)或概念上类似的变换等变换将残余视频数据变换成残余变换系数。变换处理单元52可将残余视频数据从像素值域转换到变换域,例如频域。
变换处理单元52可将所得变换系数发送到量化单元54。量化单元54可量化所述变换系数以进一步减小位速率。量化过程可以减少与系数中的一些或全部相关联的位深度。可以通过调整量化参数来修改量化程度。在一些实例中,量化单元54可以接着执行对包含经量化的变换系数的矩阵的扫描。替代地,熵编码单元56可执行扫描。
在量化之后,熵编码单元56对经量化变换系数进行熵编码。举例来说,熵编码单元56可执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵译码方法或技术。在由熵编码单元56熵编码之后,经编码位流可发射到视频解码器30,或经存档以供稍后发射或由视频解码器30检索。熵编码单元56还可对正译码的当前视频切片的运动向量和其它语法元素进行熵编码。
逆量化单元58及逆变换处理单元60分别应用逆量化及逆变换以在像素域中重构残余块,以供稍后用作参考图片的参考块。运动补偿单元44可通过将残余块添加到参考图片列表中的一者内的参考图片中的一者的预测性块中来计算参考块。运动补偿单元44还可将一或多个内插滤波器应用于所重构的残余块以计算子整数像素值用于运动估计。求和器62将经重构残余块加到由运动补偿单元44产生的经运动补偿的预测块以产生参考块以用于存储在存储器64中。参考块可由运动估计单元42和运动补偿单元44用作参考块以对在后一视频帧或图片中的块进行帧间预测。
在存储于存储器64中之前,视频编码器20可使用一或多个滤波器对经重构残余块进行滤波。举例来说,可以应用解块滤波器72以对经重构残余块进行滤波以便去除成块假象。例如ALF 76和SAO 74等其它环路滤波器(在译码环路中或在译码环路之后)也可以用以平滑像素转变,或另外改善视频质量。参考块在由解块滤波器单元72、SAO单元74和ALF单元76中的一或多者滤波之后可由运动估计单元42和运动补偿单元44使用作为参考块来帧间预测后续视频帧或图片中的块。
SAO单元74可以改善视频译码质量的方式确定用于SAO滤波的偏移值。改善视频译码质量可例如涉及确定使经重构图像更接近地匹配原始图像的偏移值。视频编码器20可例如使用具有不同SAO类型和不同偏移值的多个遍次对视频数据进行译码,且选择如基于所需速率失真折衷所确定的提供最佳译码质量的SAO类型和偏移值以用于包含在经编码位流中。
在一些配置中,SAO单元74可经配置以应用两个类型的偏移(例如,频带偏移和边缘偏移),如上文所描述。SAO单元74还可经常不应用偏移,其可被视为第三类型的偏移。SAO单元74应用的偏移的类型可显式地或隐式地向视频解码器用信号表示。当应用边缘偏移时,像素可根据图2A到2D基于边缘信息而分类,且可基于边缘分类而确定偏移值。当应用基于频带的偏移时,SAO单元74可基于例如强度值等像素值将像素分类到不同频带中,其中每一频带具有相关联偏移,如相对于图3所描述。
根据本发明的一个方面,SAO单元74可经配置以使用样本自适应偏移(SAO)模式对图片的最大译码单元(LCU)的样本进行编码。为了使用SAO模式对LCU的样本进行编码,SAO单元74可经配置以计算LCU的对应经重构样本与LCU的原始样本之间的差,从所述差中的每一者削减位数目以形成经削减的差,将经削减的差求和以形成差的总和,削减所述差的总和以形成经削减的差的总和,计算经重构样本的数目,从经重构样本的数目削减位数目以形成经削减的样本数目,且将经削减的差的总和除以经削减的样本数目以产生用于LCU的偏移。
根据本发明的另一方面,SAO单元74可经配置以确定用于LCU的至少一个样本自适应偏移(SAO)模式。所述至少一个SAO模式可包括以下各项中的至少一者:频带偏移模式、边缘偏移模式、合并上方模式、合并左边模式,和跳过模式。为了确定所述至少一个SAO模式,SAO单元74可经配置以基于用于LCU的SAO模式的预定优先级而确定所述至少一个SAO模式。
图5是说明实例视频解码器30的框图。在图5的实例中,视频解码器30包含熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、求和器90、解块滤波器单元93、SAO单元94、ALF单元95和参考图片存储器92。预测处理单元81包含运动补偿单元82和帧内预测处理单元84。在一些实例中,视频解码器30可执行大体上与关于来自图4的视频编码器20描述的编码遍次互逆的解码遍次。
在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频切片的视频块及相关联的语法元素的经编码视频位流。视频解码器30的熵解码单元80对位流进行熵解码以产生经量化系数、运动向量和其它语法元素。熵解码单元80将运动向量及其它语法元素转发到预测处理单元81。视频解码器30可在视频切片层级和/或视频块层级接收语法元素。
当视频切片被译码为经帧内译码(I)切片时,预测处理单元81的帧内预测处理单元84可基于用信号表示的帧内预测模式及来自当前帧或图片的先前经解码块的数据产生用于当前视频切片的视频块的预测数据。当将视帧帧译码为经帧间译码(即,B、P或GPB)切片时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动向量和其它语法元素而产生当前视频切片的视频块的预测性块。可以从参考图片列表中的一者内的参考图片中的一者产生预测性块。视频解码器30可基于存储在参考图片存储器92中的参考图片使用默认构造技术构造参考帧列表--列表0和列表1。
运动补偿单元82通过剖析运动向量和其它语法元素确定用于当前视频切片的视频块的预测信息,并且使用所述预测信息产生用于经解码当前视频块的预测性块。举例来说,运动补偿单元82使用一些所接收的语法元素确定用于译码视频切片的视频块的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、切片的参考图片列表中的一或多者的构造信息、切片的每一经帧间编码的视频块的运动向量、切片的每一经帧间译码的视频块的帧间预测状态,及用以解码当前视频切片中的视频块的其它信息。
运动补偿单元82还可基于内插滤波器执行内插。运动补偿单元82可以使用如视频编码器20在视频块的编码期间使用的内插滤波器来计算参考块的子整数像素的内插值。在此情况下,运动补偿单元82可根据接收的语法元素而确定由视频编码器20使用的内插滤波器并使用所述内插滤波器来产生预测性块。
逆量化单元86将在位流中提供并由熵解码单元80解码的经量化的变换系数逆量化,即解量化。逆量化过程可包含使用由视频编码器20针对视频切片中的每一视频块计算的量化参数以确定应应用的量化程度及同样确定应应用的逆量化程度。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数以便产生像素域中的残余块。
在运动补偿单元82基于运动向量和其它语法元素产生用于当前视频块的预测块之后,视频解码器30通过将来自逆变换处理单元88的残余块与由运动补偿单元82产生的相对应的预测块求和而形成经解码视频块。求和器90表示执行此求和操作的组件。由求和器90形成的经解码视频块接着可由解块滤波器单元93、SAO单元94和ALF单元95滤波。给定帧或图片中的经解码视频块随后存储在存储器92(其可被称为参考图片存储器或经解码图片缓冲器)中,所述存储器存储参考图片用于后续运动补偿。存储器92还存储经解码视频用于以后在显示装置(例如图1的显示装置32)上呈现。根据本发明的方面,SAO单元94可经配置以应用与上文所论述的SAO单元74相同的滤波(例如,边缘偏移和频带偏移)。
图6是说明根据本发明的技术的用于确定SAO滤波模式的高级过程的概念图。例如视频编码器20等兼容视频编码器可执行图6的流程图中说明的技术。
在图6的实例中,视频编码器20初始地将全部跳过和合并旗标设定为等于零(120)。如上文所描述,跳过和合并旗标是指示视频编码器20是否使用来自相对于当前LCU的相邻LCU的SAO模式和参数的语法元素。视频编码器20可稍后修改跳过和合并旗标的值,如下文更详细描述。
视频编码器20利用的对图6的实例的输入包含来自当前LCU的原始像素以及来自当前LCU的经后解块和经预先解块的像素。当确定是否利用SAO跳过模式(称为SAO跳过考虑)时,视频编码器20可要求sao_deci_luma_only先前已经用信号表示为真。当考虑是否利用合并左边模式或合并左边模式时,视频编码器20可能如下需要来自左边相邻LCU(如果左边LCU可用)的SAO参数。视频编码器20可能从左边相邻LCU需要的SAO参数可包含:left_sao_type_idx_luma/chroma、left_sao_band_position_luma/Cb/Cr、left_sao_eo_class_luma/chroma、left_offsetsluma、left_offsetsCb和left_offsetsCr以及left_bo_hist_peakluma、left_bo_hist_peakCb和left_bo_hist_peakCr。为了考虑利用合并上方模式,视频编码器20可能需要来自上方相邻LCU(如果上方相邻LCU可用)的以下SAO参数:up_sao_type_idx_luma/chroma、up_sao_band_position_luma/Cb/Cr、up_sao_eo_class_luma/chroma、up_offsetsluma、up_offsetsCb和up_offsetsCr以及up_bo_hist_peakluma、up_bo_hist_peakCb和up_bo_hist_peakCr
接着,视频编码器20导出明度SAO参数(图6中展示为明度SAO参数导出获得失真、区间计数、偏移和sao_type_idx)(122)和色度SAO参数(图6中展示为色度SAO参数导出获得失真、区间计数、偏移和sao_type_idx)(124)。如果sao_deci_luma旗标等于零,那么视频编码器20可并行地导出用于明度和色度SAO的参数。为了确定明度和色度SAO参数,视频编码器20确定失真值(“dist”)、区间计数、偏移和SAO模式(例如,频带偏移或边缘偏移)。视频编码器20使用sao_type_idx参数值用信号表示SAO模式。下文将相对于图7到9更详细地描述执行明度SAO参数导出的细节。下文将相对于图10到12更详细地描述执行色度SAO参数导出的细节。
更确切地说,在步骤120中,视频编码器20可设定skip_sao_luma=0且skip_sao_chroma=0、sao_merge_left_flag和sao_merge_up_flag为0。此时,skip_sao_luma/chroma=1与sao_type_idx_luma/chroma=0相同。在其中此信号的提前知识(例如在一个实施例中可早期跳过SAO色度)可用以停用视频编码器20中的硬件操作且因此节省电力和/或处理循环的示范性实施方案中,视频编码器20维持这些作为单独信号。
在确定色度和明度SAO参数之后,在适用的情况下,视频编码器20确定当前LCU的区间计数(126),且计算对当前LCU执行SAO滤波的成本(称为JSAO)(128)。JSAO指代使用优化速率失真成本函数的SAO模式执行SAO滤波的成本。
在确定JSAO之后,视频编码器20可经配置以确定用于执行合并左边SAO滤波(130)和合并上方SAO滤波(132)的成本。在一些实例中,视频编码器20可并行地确定所述成本。下文相对于图13更详细地论述确定用于合并左边和合并上方SAO滤波的成本的过程。在一些实例中,视频编码器20可经配置以并行地计算用于合并左边SAO滤波的成本(称为Jmerge_left)以及用于合并上方SAO滤波的成本(称为Jmerge_up)。
响应于确定用于合并SAO滤波的成本,视频编码器20基于成本JSAO、Jmerge_left和Jmerge_up而做出用于当前LCU的最终SAO参数决策(134)。视频编码器20可通过在JSAO、Jmerge_left和Jmerge_up中最小化,即选择与最少成本相关联的参数,来决定LCU参数。
如果合并左边具有最低成本,那么视频编码器20分别用left_sao_type_idx_luma/chroma、left_sao_band_position_luma/Cb/Cr、left_sao_eo_class_luma/chroma、left_offsetsluma、left_offsetsCb和left_offsetsCr的值代替best_sao_type_idx_luma/chroma、best_sao_band_position_luma/Cb/Cr、best_sao_eo_class_luma/chroma、offsetsluma、offsetsCb和offsetsCr的值。在此情况下,视频编码器20将sao_merge_left_flag设定为1。
如果合并上方具有最低成本,那么视频编码器20经配置以分别用up_sao_type_idx_luma/chroma、up_sao_band_position_luma/Cb/Cr、up_sao_eo_class_luma/chroma、up_offsetsluma、up_offsetsCb和up_offsetsCr的值代替best_sao_type_idx_luma/chroma、best_sao_band_position_luma/Cb/Cr、best_sao_eo_class_luma/chroma、offsetsluma、offsetsCb和offsetsCr的值。视频编码器20还将sao_merge_up_flag设定为1。
最终参数决策包含用于当前LCU的偏移(如果存在)、合并旗标的值(其指示来自上方或左边相邻LCU的SAO参数是否应用作用于当前LCU的SAO参数)以及sao_type_idx值等等。视频编码器20经配置以对对应于最终SAO参数的语法元素进行编码。最后,视频编码器20经配置以对任何跳过旗标进行编码(136),且终止LCU SAO编码器决策。如果best_sao_type_idx_luma设定成0,那么视频编码器20将skip_sao_luma设定为1。如果best_sao_type_idx_chroma是0,那么视频编码器20将skip_sao_chroma设定为1。
另外,在其中旗标sao_deci_luma_only等于一的实例中,视频编码器20可经配置以执行明度SAO滤波,且不考虑色度、合并或跳过模式。在一些实例中,如果sao_deci_luma_only等于一,那么视频编码器20可经配置以仅执行明度和/或色度SAO滤波,但不考虑合并滤波和跳过SAO模式(138)。
图6中所示的实例过程的输出包含语法参数:sao_merge_left_flag、sao_merge_up_flag、best_sao_type_idx_luma/chroma、best_sao_band_position_luma/Cb/Cr、best_sao_eo_class_luma/chroma、offsetsluma、offsetsCb和offsetsCr。视频编码器20在用于下一行的下方相邻LCU中的合并上方处理以及内部地用于右边相邻LCU中的合并左边处理的线缓冲器中(例如,顶点流处理器中)缓冲前述语法值。另外,输出包含控制SAO是否应用于当前LCU样本的辅助参数skip_sao_luma和skip_sao_chroma以及也内部地在线缓冲器中缓冲的参数bo_hist_peakluma、bo_hist_peakCb和bo_hist_peakCr(例如,以支持合并模式处理)。
在一些实例中,视频编码器20评估某些模式和分量的次序可与图6中描述的次序不相同。举例来说,图6的方法说明视频编码器20在色度之前评估明度,且在BO之前评估EO。在一些实例中,视频编码器20可在EO之前评估BO。视频编码器20还可与色度同时评估明度,在此情况下色度的提早终止(下文描述)将是不可能的。
在一些实例中,视频编码器20可在评估用于明度的BO和EO之前评估合并模式加SAO OFF。通过这样做,如果合并成本或SAO OFF成本低于阈值(此阈值可使用时间或空间邻域而确定),那么视频编码器20可执行EO和BO决策的提早终止(即跳过EO和BO决策)。
在又另一实例中,视频编码器20还可当成本相等时对于一个模式对另一模式给予优先级。举例来说,合并左边可具有比合并上方更高的优先级。此策略可使位速率优先于质量。类似地,BO可具有比EO高的优先级,且SAO OFF可具有比BO或EO高的优先级。最后,BO和EO可具有比合并模式高的优先级(此策略将可能使质量优先于位速率)。决策步骤的优先级区分和次序因此可影响质量-位速率折衷。
图7是说明根据本发明的技术的用于执行明度SAO导出的过程的概念图。在图7的方法中,视频编码器20可经配置以执行EO明度导出以确定执行EO明度滤波的成本(160)。所述成本称为JEO,luma。视频编码器20进一步经配置以执行BO明度导出以确定用于BO明度滤波的成本,称为JBO,luma(162)。在一些实例中,视频编码器20可经配置以并行地执行步骤160和162。视频编码器20将步骤162中的BO模式滤波的成本计算为JBO,luma=dist_B[Y]+λ×(sao_bo_luma_bias+bincount1BO,luma)。在先前方程式中,sao_bo_luma_bias值可为任意的或可固定到零,bincount1BO,luma是用于明度频带偏移的估计区间计数,dist_B[Y]是用于频带偏移的计算失真,且λ是拉格朗日乘数。
响应于确定成本JBO,luma和JEO,luma,视频编码器20经配置以执行测试以确定不执行SAO滤波的成本,即用信号表示SAO跳过模式(164)。不执行SAO的成本称为Jno_SAO,luma
响应于计算不执行SAO的成本(164),视频编码器20进一步经配置以选择具有最小成本的明度SAO参数的集合且更新明度参数(166)。所述成本称为JEO,luma。视频编码器20随后输出所述成本,其稍后与其它SAO成本进行比较。
为了在EO、BO和无SAO模式之间进行选择(步骤166),视频编码器20进一步经配置以在JEO,luma、Jno_SAO,luma和JBO,luma中最小化速率-失真成本,且尝试通过选择具有最小R-D成本的SAO模式选项而确定最佳明度参数。在EO、BO和SAO模式之间选择在一些实例中可与如步骤166中所说明的最小化成本且更新明度参数同义。如果视频编码器20选择EO模式,那么视频编码器20将计算的失真存储为:dist_X[Y]=dist_Ek[Y]、bincountluma=bincount1EO,luma、offsetsluma=offsetsEO,luma以及best_sao_type_idx_luma=2。如果视频编码器20选择BO模式,那么视频编码器20将计算的失真确定为:dist_X[Y]=dist_B[Y]、bincountluma=bincount1BO,luma、offsetsluma=offsetsBO,luma以及best_sao_type_idx_luma=1。如果视频编码器20选择SAO跳过模式,即不执行SAO,则视频编码器20存储dist_X[Y]=0、bincountluma=bincount(0)以及best_sao_type_idx_luma=0。
图8是说明根据本发明的技术的用于执行边缘偏移(EO)明度SAO成本导出的过程的流程图。如上文所论述,存在用于EO SAO的四个类。在图8的方法中,视频编码器20经配置以针对偏移类中的每一者(从第一偏移类i=0到最终偏移类i=3)计算每一类的成本,即执行EO明度类导出以计算每一类的成本,表示为JEO,luma,i(182),且选择具有最低相关联成本的类(184)。为了选择具有最低成本的类,视频编码器20可选择最小化成本的最佳明度类k,且可将JEO,luma设定为等于JEO,luma,i。在一些实例中,视频编码器20经配置以彼此并行地测试多个类。根据本发明的技术,下文相对于图8描述的削减操作和迭代除法技术可改善编码EO和BO模式的性能。
如上文相对于图2A到2D所描述,当视频编码器20选择EO模式时,视频编码器20对边缘偏移分类器语法元素sao_eo_class_luma/chroma进行编码。在用信号表示sao_eo_class_luma/chroma之前,视频编码器20执行参数导出,且评估每一边缘偏移分类器的速率失真成本(sao_eo_class_luma),其中i=[0、1、2、3],视频编码器20针对每一输入类i且对当前LCU的Y通道(明度)样本执行边缘偏移导出。作为明度EO参数导出的部分,视频编码器20确定每一明度边缘类的失真值(表示为distEi[Y])以及每一边缘类的偏移(offsetsEO,luma,i)、每一类中的像素的总和(SOPEO,luma,i)、每一类中的像素的数目(NOPEO,luma,i),以及区间计数(bincountEO,luma,i)。区间计数是针对EO明度分类器i=[0、1、2、3]中的每一者对经编码参数(例如,编码模式、偏移等)进行CABAC熵编码需要的区间的数目的估计。
对于每一EO类,视频编码器20考虑在所述类由变量i表示的情况下且针对当前LCU的明度分量,视频编码器20输出且存储用于每一类的失真值distEi[Y]、每一类的偏移(offsetsEO,luma,i)、所述类的像素的总和(SOPEO,luma,i)、每一类中哦像素的数目(NOPEO,luma,i)以及区间计数bincountEO,luma,i,如上文相对于图6所描述。基于所述失真,视频编码器20经配置以确定每一类的成本,称为JEO,luma,i,如(182)中说明。视频编码器20可将JEO,luma,i计算为:
在步骤184中,视频编码器20进一步选择具有最小成本的JEO,luma,i(i=[0,1,2,3])的值。视频编码器20还将offsetsEO,luma的值设定为等于offsetsEO,luma,k,,且设定JEO,luma的值等于:JEO,luma,k-λ×sao_eo_class_y(k+1)_bias。在一些实例中,视频编码器20可将sao_eo_luma_bias和sao_eo_class_yj_bias的值设定为任意值。视频编码器20可使用设定的偏置值以便朝向特定模式偏置SAO模式决策。在其它实例中,视频编码器20可将偏置值固定为零。另外,视频编码器20可在一些实例中将sao_eo_class_y(k+1)_bias指派为任意值,且在其它实例中指派为零。
为了计算每一类的边缘偏移值,视频编码器20针对给定分量c测试给定sao_eo_class EO分类器i。给定EO分类器索引i,视频编码器20应用分类器以导出当前LCU的每一经重构像素(rc(x,y))的edgeIdx。视频编码器20根据以下表4计算edgeIdx:
表4
经重构像素指代来自解块滤波器(例如,图4的解块滤波器单元72)的块的像素。由于解块滤波器相依性,当硬件管线处理当前LCU时将不解块LCU或相邻于所述LCU的全部像素。视频编码器20可留下相对于未经滤波的LCU的下方和右边相邻样本,且可在一旦后续右边和下方相邻LCU经处理时便解块那些样本。因此,在一些实例中,视频编码器20可针对当前处理的LCU的右边和下方相邻样本,仅对经解块样本或者以经解块、部分地经解块(仅已应用垂直边缘滤波、和未经滤波(不经解块)样本的组合来应用计算以确定速率失真成本。并且,使用未经解块像素以导出SAO参数可仅针对选择SAO参数有效。一旦参数选定,视频编码器20便可使用完全经解块样本应用SAO。
为了计算每一edgeIdx(或EO类)的偏移,视频编码器20针对每一edgeIdx值计算原始与经重构像素(样本)值之间的差的总和,其中edgeIdx∈(1,2,3,4)。视频编码器20如下计算像素的总和(SOP)(SOP_Ei[c][edgeIdx]):
其中c是通道(例如,色度“Cb”、色度“Cr”或明度“Y”),其中pc(x,y)是坐标(x,y)处的原始样本值,且rc(x,y)是(x,y)处的经重构样本。
根据本发明的技术,视频编码器20可经配置以当执行边缘偏移计算时减少后续操作的位宽度和精度。举例来说,视频编码器20可将原始像素减经重构像素的差削减到范围[-32,31]以使得6个带正负号的位是表示差量的足够位数目。对于特定边缘类EOi中的每一像素,视频编码器20将经削减的差添加到SOP的当前值(在迭代通过每一类的全部像素的开始时将总和设定成零)。视频编码器20再次对范围[-4095,4095]中的SOP_Ei[c][edgeIdx]执行削减,且用此削减的结果更新SOP。这可如下写出:SOP(n)=Clip3(-4095,4095,SOP(n-1)+Clip3(-32,31,pixel_diff(n))),
其中n为集合中的像素(EOi)的索引,且pixel_diff(n)是由视频编码器20在EOi内分类的像素集合中具有索引n的原始减经重构像素的差。每次视频编码器20将每一像素的像素差添加到差的总和时,视频编码器20执行此最后削减。此最后削减确保了13位足以表示SOP(像素的总和)信息。
为了计算每一edgeIdx(例如,SAO EO类)的偏移,视频编码器20计算针对给定sao_eo_class i以edgeIdx分类的经重构像素的数目(NOP),称为NOP_Ei[c][edgeIdx]。在一些实例中,视频编码器经配置以削减NOP_Ei[c][edgeIdx]到范围[0,1023],使得在硬件中需要10位来表示NOP_Ei[c][edgeIdx]。经削减版本经存储且用于所有后续计算(包含合并成本计算)中。
为了针对每一edgeIdex edgeIdx∈(1,2,3,4)确定类i的偏移,视频编码器20可经配置以将每一SOP_Ei[c][edgeIdx]除以NOP_Ei[c][edgeIdx]的对应值。视频编码器20随后舍入且削减所述除法的结果。用以计算所述偏移的方程式因此为:
在此实例中,削减范围不同:对于edgeIdx=1或2,(vmin,vmax)=(0,7),且对于edgeIdx=3或4,(vmin,vmax)=(-7,0)。在一个实例中,SOP除以NOP是以硬件友好的方式执行。举例来说,视频编码器20将特殊计数器和迭代计数器(例如,软件变量、寄存器、硬件计数器等)设定为零。视频编码器20还将临时变量设定为等于SOP值的绝对值。
因为偏移的绝对值可不大于7(由于削减),所以视频编码器20执行迭代循环以从临时变量迭代地减去NOP,直到临时变量小于或等于零或者直到已经执行7次迭代。每次视频编码器20从临时减去NOP时,视频编码器20递增迭代计数器。另外,每次视频编码器20从临时变量减去NOP值且所得临时变量大于或等于零时,视频编码器20递增特殊计数器。在此操作结束时,特殊计数器产生特定类或edgeIdx的偏移的绝对值。视频编码器20从SOP的正负号确定偏移的正负号。然而,如果绝对值是0,那么视频编码器20确定正负号是正。
因此,根据本发明的技术,视频编码器20可经配置以使用样本自适应偏移SAO模式对经译码视频图片的LCU的样本进行编码。为了使用SAO模式对CU的样本进行编码,视频编码器20可计算LCU的对应经重构样本与LCU的原始样本之间的差,从所述差中的每一者削减位的数目以形成经削减的差,将经削减的差求和以形成差的总和,削减差的总和以形成经削减的差的总和,计算经重构样本的数目,从经重构样本的数目削减位的数目以形成经削减的样本数目,且将经削减的差的总和除以经削减的样本数目以产生用于LCU的偏移。
接着,视频编码器20针对类i计算失真,表示为dist_Ei[c]。视频编码器20将失真计算为:dist_Ei[c]=∑k(NOP_Ei[c][k]×Offset_Ei[c][k]×Offset_Ei[c][k]-SOP_Ei[c][k]×Offset_Ei[c][k]×2),其中k=[1,2,3,4]。失真计算可根据上文先前引用的C.-M.傅等人中描述的计算而执行。
为了导出明度参数,视频编码器20针对每一EO类计算速率失真成本。成本表示为JEO,luma,I,且被计算为:JEO,luma,i=dist_Ei[Y]+λ×(sao_eo_luma_bias+sao_eo_class_yj_bias+bincountEO,luma,i),
其中sao_eo_class_yj_bias是用于每一EO类的某个偏置因数。在一些实例中,视频编码器20可指派sao_eo_luma_bias和sao_eo_class_yj_bias任意值以朝向特定模式偏置模式决策选择。在其它实例中,视频编码器20可将sao_eo_luma_bias和sao_eo_class_yj_bias变量的值固定为等于零。
视频编码器20在步骤184中执行以确定明度SAO参数的最后一般操作是最小化JEO,luma,i。具体来说视频编码器20导出变量best_sao_eo_class_luma=k作为具有最小成本的索引i(对应于EO类)。视频编码器20随后将offsetsEO,luma设定为等于offsetsEO,luma,k,且JEO,luma=JEO,luma,k-λ×sao_eo_class_y(k+1)_bias。视频编码器20可在一个实例中指派任意值给sao_eo_class_y(k+1)_bias,或在其它实例中指派零。
为了导出用于明度的BO参数,视频编码器20可经配置以针对明度分量(c=Y)执行BO导出。视频编码器20随后存储输出且存储以下参数:用于频带中的每一者中的明度样本的失真值(dist_B[Y])、指示最佳频带位置的变量(best_sao_band_position_luma)、32个频带的峰位置(bo_hist_peakluma)、频带中的每一者的偏移(offsetsBO,luma)、频带中的每一者中的像素值的总和(SOPBO,luma)、频带中的每一者中的像素的数目(NOPBO,luma),以及用于频带偏移的估计区间计数(bincount0BO,Y)。下文更详细地论述计算所述区间计数。
图9是说明根据本发明的技术的用于执行明度频带偏移导出的过程的流程图。在图9的实例中,视频编码器20经配置以执行BO明度导出,其涉及确定失真和bincount0(即,执行BO明度导出以确定失真dist以及区间计数bincount0)(200)。响应于步骤200,视频编码器20进一步经配置以计算bincount1(202),且计算以BO模式对明度通道进行编码的成本JBO,luma(204)。对此过程的输入是c,如上文相对于用于明度的EO所描述。此过程的输出是参数:dist_B[Y]、best_sao_band_position_luma、bo_hist_peakluma、offsetsBO,luma、SOPBO,luma、NOPBO,luma和bincount0BO,Y,这些类似于其EO明度等效项。
对明度BO滤波过程的输入是c,指示视频编码器20正在处理哪一通道的索引。基于c,视频编码器20从适当通道(在此情况下,明度通道)读取经后解块和经预先解块的像素(样本)。对图9的过程的输出包含失真值dist_Ei[c]、偏移Offset_Ei[c][edgeIdx](其中的四个)以及SOP_Ei[c][edgeIdx]和NOP_Ei[c][edgeIdx],以及如果分量表示明度,则还有区间计数bincountEO,luma,i。如上,SOP和NOP是经预先解块与经后解块的值之间的像素差的总和。NOP是每一频带中的像素的数目。
根据本发明的技术,视频编码器20在BO偏移导出期间可不测试频带位置的全部可能的32个值。实际上,视频编码器20使用直方图分析来选择频带位置(sao_band_position)。用于每一分量LCU(例如,Y、Cb或Cr)的导出算法的阐释如下。
首先,视频编码器20使用直方图分析确定频带位置sao_band_positionc。为了计算直方图,视频编码器20首先将LCU的样本中的每一者分区到32个信道中的一者中,存储在阵列bin_count[32]中。根据本发明的技术,视频编码器20使用BO分类器将原始像素pc(x,y)分类到32区间直方图中(bandIdx(x,y)=pc(x,y)>>3,对于8位内容)。在一个实例中,视频编码器20使用提早终止方案来节省硬件循环。视频编码器20以光栅扫描次序访问像素,且根据其分类,视频编码器20递增对应于每一样本的bandIdx的区间计数。
视频编码器20一旦满足两个以下条件中的任一者便终止直方图计算:(1)分量平面中的全部像素已经处理,或(2)递增的区间值(作为处理当前像素的结果)等于分量(例如,Y、Cr、Cb)平面中的像素的数目的二分之一(即,对于32×32LCU,阈值针对明度是512像素且针对像素色度是128)。已经处于可能的区间数目的二分之一的区间计数可不小于任何其它区间计数。当视频编码器20终止处理时,视频编码器20将区间计数设定为其最大值。可存在其中分量具有仅两个非零且(因此)等值的区间计数的内容。视频编码器20继续此过程以确保直方图最大值(例如,区间中的样本的最大数目)的明确选择,因为直方图导出一旦区间中的一者达到阈值便早期终止。
接着,视频编码器20选择sao_band_positionc作为具有最大值bin_count[m]值(直方图峰)的bin_count的索引m减某个常数h(bo_hist_peakc=m-h)。在根据本发明的技术的一个实例中,视频编码器20可将常数(h)设定为1。
响应于确定原始像素的频带位置,视频编码器20使用BO分类器计算当前LCU(p(x,y))的每一经重构像素rc(x,y)的bandIdx(bandIdx(x,y)=rc(x,y)>>3,对于8位内容)。如上文所解释,经重构像素中的一些或全部可不完全经解块。
类似于相对于EO偏移计算描述的过程,视频编码器20还计算原始减经重构像素的总和(SOP_B[c][bandIdx]=∑(x,y)∈bandIdx(pc(x,y)-rc(x,y))),如上文关于图8在明度EO滤波的上下文中所描述。视频编码器20如上文相对于EO偏移计算所描述削减所述和以及差。视频编码器20确定NOP_B[c][bandIdx](以bandIdx分类的经重构像素的数目)。在一些实例中,视频编码器20将NOP_B值削减为处于[0,1023]的范围内,以使得在硬件中需要10位来表示值。经削减的版本被存储且用于全部后续计算(包含合并成本计算)中。
视频编码器20确定用于SAO_BO的偏移。对于每一bandIdx∈(0,…,31),Offset_B[c][bandIdx]=clip(round(SOP_B[c][bandIdx]/NOP_B[c][bandIdx],-7,7),
其中bandIdx在范围(sao_band_positionc,…,sao_band_positionc+3)内。在根据本发明的技术的一个实例中,SOP除以NOP是以与从SOP的绝对值的NOP的迭代减法以及正负号继承类似的方式来实施。
视频编码器20将频带SAO滤波的失真计算为:dist_B[c]=∑k(NOP_B[c][k]×Offset_B[c][k]×Offset_B[c][k]-SOP_B[c][k]×Offset_B[c][k]×2)其中k=sao_band_positionc,…,sao_band_positionc+3。失真计算在傅池明等人的“HEVC标准中的样本自适应偏移”(IEEE用于视频技术的电路和系统学报第22卷12号,2012年12月)的附录中描述。下文相对于图13更详细地更详细描述每步骤200和202的区间计数。
本发明的技术描述用于BO滤波的直方图导出的改进技术。视频编码器20可经配置以通过取得原始LCU像素的直方图而导出用于BO决策的sao_band_position。一旦导出直方图(具有或不具有任选的提早终止),便使用直方图的峰减去某个常数来导出sao_band_position语法元素。此关系可描述为:
bo_hist_peak=maxi(bin_count(i))。
随后,视频编码器20可导出频带位置为:
sao_band_position=bo_hist_peak-const。
最佳地,视频编码器20将经配置以使用经重构样本导出此直方图。然而,出于复杂性和并行度原因,视频编码器20可以良好结果使用原始样本。虽然描述的用于导出直方图的方法是高效的且产生良好质量,但可存在改进的空间。本文所描述的额外技术可通过优化视频编码器20选择直方图的峰的方式而改进基于样本的直方图导出。作为前述导出直方图峰的技术的部分,视频编码器20可如下选择具有最大总和的四个连续区间的群组:bo_hist_peak=maxi(bin_count(i)+bin_count(i+1)+bin_count(i+2)+bin_count(i+3))。所述四个连续频带仅发送非零偏移。因此,视频编码器20仍可导出sao_band_position语法元素为sao_band_position=bo_hist_peak-const。在一些实例中视频编码器20可将常数设定为零。
图10是说明根据本发明的技术的用于执行色度SAO导出的方法的流程图。在图10的实例中,视频编码器20确定明度断开+旗标是否经设定(218)。当所述旗标经设定时,视频编码器20设定跳过旗标(220),将明度SAO语法值设定为断开(222),且检查以查看用信号表示合并旗标是否将比设定跳过旗标更有效(224)。
如果明度旗标接通或另一旗标经设定,那么视频编码器20确定EO色度SAO滤波的成本(用以得到JEO,chroma的EO色度导出)(226),以及BO色度滤波的成本(用以得到JBO,chroma的BO色度导出)(228)。用于EO色度和BO色度的成本表示为JEO,chroma、JBO,chroma。接着,视频编码器20确定不执行SAO的成本Jno_SAO,chroma(无SAO测试,得到Jno_SAO,chroma)(230),且更新和选择最小化速率失真成本、即具有最低成本的色度SAO参数(232)。在一些实例中,更新色度参数可为步骤232的子步骤。
在步骤232中,视频编码器20经配置以在JBO,chroma、Jno_SAO,chroma和JEO,chroma中最小化(即,选择其中的一个),且通过选择具有最小成本的选项来确定最佳色度参数。为了选择具有最小成本的参数,如果选择EO,那么视频编码器20存储dist_X[c]=dist_Ek[c](对于c=Cb,Cr)、bincountchroma=bincount1EO,chroma、offsetsc=offsetsEO,c(对于c=Cb,Cr)以及best_sao_type_idx_chroma=2。如果选择BO,那么视频编码器20存储dist_X[c]=dist_B[c](对于c=Cb,Cr)、bincountchroma=bincount1BO,chroma、offsetsc=offsetsBO,c(对于c=Cb,Cr)以及best_sao_type_idx_chroma=1。如果不选择SAO,那么视频编码器20存储dist_X[c]=0(对于c=Cb,Cr)、bincountchroma=bincount(0)以及best_sao_type_idx_chroma=0。
如果值best_sao_type_idx_luma等于0,那么视频编码器20可任选地测试是否完全跳过色度SAO决策。可通过外部装置控制此决策。在此情况下,视频编码器20应用以下步骤:
(1)将skip_sao_luma和skip_sao_chroma两者设定为1。
(2)将best_sao_type_idx_chroma设定为0。
(3)如果上方LCU可用(在瓦片和切片边界内,或通过一些外部装置允许,例如通过编程某些寄存器),那么:
a.确定best_sao_type_idx_luma和up_sao_type_idx_luma是否都为0。将up_sao_type_idx_luma设定成上方LCU的sao_type_idx_luma语法参数的值(如果可用)。
b.检查best_sao_type_idx_chroma和up_sao_type_idx_chroma是否都为0。将up_sao_type_idx_chroma设定成上方LCU的sao_type_idx_chroma语法参数的值(如果可用)。
c.如果以上两个条件(a和b)都为真,那么视频编码器20设定sao_merge_up_flag=1且sao_merge_left_flag=0,且前进到跳转和/或终止任何进一步SAO决策的过程。
(4)如果左边LCU可用(在瓦片和切片边界内,或通过一些外部装置允许,即通过编程某些寄存器),那么:
a.检查best_sao_type_idx_luma和left_sao_type_idx_luma是否都为0。left_sao_type_idx_luma是左边LCU的sao_type_idx_luma语法参数(如果可用)。
b.确定best_sao_type_idx_chroma和left_sao_type_idx_chroma是否都为0。将left_sao_type_idx_chroma设定成左边LCU的sao_type_idx_chroma语法参数的值(如果可用)。
c.如果以上两个条件都为真,那么设定sao_merge_up_flag=0且
sao_merge_left_flag=1且终止任何进一步SAO决策。
图11是说明根据本发明的技术的用于执行边缘偏移色度导出的过程的流程图。在图11的实例中,对于每一EO分类器(sao_eo_class_chroma)i=(0、1、2、3),视频编码器20经配置以:针对输入类=i和分量c=Cb执行EO导出。视频编码器20输出dist_Ei[Cb]以及offsetsEO,Cb,I、SOPEO,Cb,i、NOPEO,Cb,I作为输出(240),且针对输入类i和分量c=Cr执行EO导出。视频编码器20输出dist_Ei[Cr]以及offsetsEO,Cr,I、SOPEO,Cr,i、NOPEO,Cr,I作为输出(242)。
响应于步骤242,视频编码器20可计算bincount0EO,chroma,i(244),且计算JEO,chroma,i=dist_Ei[Cb]+dist_Ei[Cr]+λ×(sao_eo_class_cj_bias+bincount0EO,chroma,i)。sao_eo_class_cj_bias(j=i+1)可在一个中具有任意值或可固定为零(246)。
一旦视频编码器20完成执行步骤240到246,视频编码器20便随后经配置以在JEO,chroma,i上最小化以导出best_sao_eo_class_chroma=k作为具有最小成本的索引i(248)。视频编码器20还分别将offsetsEO,Cb和offsetsEO,Cr设定为等于offsetsEO,Cb,k和offsetsEO,Cr,k。视频编码器20还如下计算bincount1EO,chroma(250),且重新计算最终成本为JEO,chroma=dist_Ek[Cb]+dist_Ek[Cr]+λ×(sao_eo_chroma_bias+bincount1EO,chroma)(252)。sao_eo_chroma_bias偏置可在一个情况中具有任意值,或可固定为零。
图12是说明根据本发明的技术的用于执行频带偏移色度导出的过程的流程图。在图12的实例中,视频编码器20针对c=Cb执行BO导出,如上文相对于图9在明度BO导出的上下文中描述(260)。此步骤的结果是输出dist_B[Cb]、best_sao_band_position_cb、bo_hist_peakCb、offsetsBO,Cb、SOPBO,Cb、NOPBO,Cb和bincount0BO,Cb
视频编码器20还针对c=Cr执行BO导出,如上文相对于图9针对明度BO导出所描述(262)。此步骤的输出是dist_B[Cr]、best_sao_band_position_cr、bo_hist_peakCr、offsetsBO,Cr、SOPBO,Cr、NOPBO,Cr和bincount0BO,Cr
视频编码器20还计算bincountt1BO,chroma,如下文更详细描述(264),且计算BO R-D(速率-失真)成本为JBO,chroma=dist_B[Cb]+dist_B[Cr]+λ×(sao_bo_chroma_bias+bincount1BO,chroma)。sao_bo_chroma_bias语法元素在一个实例中可具有任意值或可固定为零(266)。
图13是说明根据本发明的技术的用于执行SAO滤波的过程的流程图。在图13的方法中,视频编码器20可经配置以针对频带、四个EO类中的每一者和BO模式导出成本、偏移、失真值和其它值。视频编码器20可经配置以在一些实例中与图14中说明的技术并行地执行相对于图13所说明的技术。
在图13的实例中,四个最左边列指示视频编码器20针对四个边缘分类器(图2A到2D中描述的水平、垂直、45度和135度分类器)中的每一者执行EO参数和速率失真成本的确定的过程。视频编码器20通过使用水平、垂直、45度和135度分类器滤波器形状(分别为步骤300、310、320和330)中的一者对当前通道的像素中的每一者进行分类而开始计算EO成本。
响应于使用边缘分类器滤波器对像素中的每一者进行分类,视频编码器20使用以上在表3中描述的条件针对四个像素类别中的每一者确定样本的总和(SOP)。样本的总和是当前LCU的原始与经重构样本之间的差的总和(分别为步骤302、312、322和332)。
响应于针对每一分类器确定像素的总和,视频编码器20如以上表3中界定确定所述4个类别中的每一者中分类的样本的数目(步骤304、314、324和334)。视频编码器20随后将样本的总和除以样本的数目以确定用于四个样本类别中的每一者的四个偏移(步骤306、316、326和336)。视频编码器20可根据本发明的技术削减所述计算的结果作为计算差、差的总和和/或像素数目的部分。响应于确定与每一像素类别相关联的偏移,视频编码器20可计算与每一分类器相关联的失真(步骤308、318、328和338)。
视频编码器20还经配置以确定与在BO模式中对当前LCU进行编码相关联的偏移和速率失真成本。在各种实例中,视频编码器20可与确定与EO分类器中的每一者相关联的成本并行地确定与在BO模式中对当前LCU进行编码相关联的R-D成本。
为了确定BO模式,视频编码器20首先将当前LCU的样本分类到32个频带中(340)。视频编码器20在一些实例中可使用算术右移位将当前LCU的样本分类到32个频带中。响应于将当前LCU的样本分类到32个频带中,视频编码器20找到且存储当前LCU的直方图峰(342)。响应于找到直方图峰,视频编码器20可针对4个频带偏移频带中的每一者确定样本的总和(344)。样本的总和(SOP)包括当前LCU的原始与经重构样本之间的差的总和。响应于计算SOP,视频编码器20计算四个BO频带中的每一者中的样本的数目(346)。在所述差、差的总和以及样本数目的计算期间,视频编码器20可削减表示前述量中的每一者需要的位数目。
对于四个频带中的每一者,视频编码器20使用样本的数目(NOP)作为除数且将每一频带中的SOP除以所述频带中的NOP以确定用于所述频带的偏移(348)。根据本发明的技术,视频编码器20可如上文所论述使用迭代的通过减法的除法方法确定用于每一频带的偏移。响应于确定四个偏移,视频编码器20可计算BO模式的失真(350)。
一旦视频编码器20已针对EO分类器中的每一者且针对BO计算出失真,则视频编码器20可比较且存储所述模式中的每一者的失真统计数据(352),且选择用于当前LCU的EO分类器中的一者和BO模式。在各种实例中,视频编码器20可将所存储的统计数据与针对合并和跳过模式所确定的R-D成本进行比较,如下相对于图14所述。
图14是说明根据本发明的技术的用于执行SAO滤波的过程的流程图。在图14的方法中,视频编码器20可经配置以针对合并左边模式和合并上方模式导出成本、偏移、失真和其它值。视频编码器20可经配置以在一些实例中与图13中说明的技术并行地执行相对于图14所说明的技术。
合并模式包含从上方相邻LCU复制SAO参数的合并上方,以及从左边相邻LCU复制SAO参数的合并左边。现将论述确定合并上方和合并左边的成本的过程。
视频编码器20针对合并左边和合并上方模式执行类似过程,其中如果模式(和对应LCU)可用,那么视频编码器20尝试确定合并左边和合并上方模式两者的成本。如果所述两个合并模式的成本是相等的,那么视频编码器20可选择合并左边模式,因为在一些实例中合并左边模式可需要平均较少的位来编码。在以下实例中,“相邻者”的简写(NBR)基于其使用的上下文而表示相对于当前LCU的上方或左边相邻LCU。
当尝试确定合并模式(即合并左边模式和合并上方模式)的成本时,视频编码器20首先测试NBR LCU是否可用作合并候选者(370,380)。如果当前LCU处于图片上方或左边边界处且NBR LCU在所述边界外部,那么仅当NBR LCU在所述边界内时过程才返回到真。
接着,视频编码器20确定NBR LCU是否属于相对于当前LCU的不同切片或瓦片且跨越切片和瓦片边界而启用滤波的对应旗标是否可以停用。如果跨切片和瓦片存取经启用,那么过程范围到真。
视频编码器20还确定NBR LCU是否在使用BO模式。如果NBR LCU是使用BO模式经编码,那么视频编码器20确定相邻LCU的BO直方图峰是否匹配于当前LCU的峰(370,380)。如果NBR的BO峰并不匹配,那么不存在估计失真D的方式,并且因此无法使用合并模式。如果下文描述的全部条件为真,那么过程返回到真,否则(决策框370,380的“是”分支),过程返回到假,且视频编码器20不选择合并模式(决策框370,380的“否”分支)。
如果左边NBR LCU使用BO作为明度SAO模式(即NBR_sao_type_idx_luma等于1),那么视频编码器20检查以确定当前LCU的直方图峰bo_hist_peakluma是否与NBR LCU的直方图峰NBR_bo_hist_peakluma相同。如果当前LCU的直方图峰和相邻LCU的直方图位置不相等,那么过程返回到假。否则,过程返回到真(这包含NBR使用EO情况)。
对于LCU的色度通道,视频编码器20类似地确定NBR LCU的SAO模式是否使用BOSAO模式色度通道SAO模式(即NBR_sao_type_idx_chroma是否等于1)。如果NBR LCU使用BOSAO模式,那么视频编码器20检查以确定当前LCU的直方图峰bo_hist_peakCb和bo_hist_peakCr是否分别与NBR LCU的直方图峰NBR_bo_hist_peakCb和NBR_bo_hist_peakCr相同(370)。如果对应峰中的任一者不等于当前LCU的峰,那么过程返回到假。否则过程返回到真(这包含其中NBR LCU使用EO SAO经编码的情况)。如果在任一点以上条件中的任一者不为真,那么视频编码器20针对所述特定NBR LCU终止合并模式考虑过程(决策框370,380的“否”分支)。
如果合并确定过程针对色度和/或明度返回到假(再次,决策框370,380的“否”分支),那么视频编码器20将相应上方或左边合并模式的成本Jmerge_Left和Jmerge_Up分别设定为最大可能成本值(372,382)。将相应合并成本设定为最大成本在以上条件中的任一者不为真的情况下使所述合并模式不会被视频编码器20选择。
如果左边或上方NBR LCU可用且以上条件满足,那么视频编码器20从相应左边或上方NBR LCU复制SAO参数(374,384),且随后计算相应合并模式的速率失真成本(376,386)。视频编码器20如下计算使用相应合并模式的失真(dist_NBR)(378,388)。具体来说,视频编码器20计算dist_NBR=∑cdist_NBRc,其中:dist_NBRc=∑k(NOP_X[c][k]×Offset_NBR[c][k]×Offset_NBR[c][k]-SOP_X[c][k]×Offset_NBR[c][k]×2),其中X是NBR LCU分量c中使用的SAO的类型(NBR_sao_type_idx_luma或NBR_sao_type_idx_chroma)。失真计算在傅池明等人的“HEVC标准中的样本自适应偏移”(IEEE用于视频技术的电路和系统学报第22卷12号,2012年12月)的附录中描述。即使视频编码器20基于来自当前LCU的样本确定SOP和NOP,视频编码器20也在使用合并模式时从相邻LCU的偏移导出当前LCU的偏移。
接着,视频编码器20如下所述计算当前NBR的区间计数。最后,视频编码器20计算NBR LCU的SAO合并模式编码的LCU速率失真成本为Jmerge_NBR=dist_NBR+λ×(sao_merge_NBR_bias+bincount_NBR)。在一些实例中,sao_merge_NBR_bias等于sao_merge_up_bias偏置或sao_merge_left_bias偏置,其两者可具有任意值或设定成0。
为了执行合并模式SAO滤波,当前LCU针对用于当前LCU的全部边缘偏移类和分量需要存取SOP_Ei[c][edgeIdx]和NOP_Ei[c][edgeIdx]。另外,还需要用于当前LCU的参数bo_hist_peakluma、bo_hist_peakCb和bo_hist_peakCr,以及相邻LCU的可用性信息。视频编码器20还需要再次针对全部分量存取频带偏移SOP_B[c][bandIdx]和NOP_B[c][bandIdx]。对于合并左边考虑,视频编码器20需要来自左边NBR LCU(如果左边NBR LCU可用)的以下SAO参数:left_sao_type_idx_luma/chroma、left_offsetsluma、left_offsetsCb和left_offsetsCr以及left_bo_hist_peakluma、left_bo_hist_peakCb和left_bo_hist_peakCr。对于合并上方考虑,视频编码器20需要来自上方NBR LCU(再次,假定上方NBR LCU可用)的以下SAO参数:up_sao_type_idx_luma/chroma、up_offsetsluma、up_offsetsCb和up_offsetsCr以及up_bo_hist_peakluma、up_bo_hist_peakCb和up_bo_hist_peakCr。合并模式成本估计过程的唯一输出是视频编码器20在步骤390中存储的速率失真成本Jmerge_NBR
在一些实例中,视频编码器20可尝试确定对于当前LCU或LCU分量是否使用跳过模式SAO更有效(sao_skip_flag)。当视频编码器20执行明度分量的跳过模式考虑时,视频编码器20必须首先确定EO和BO SAO模式参数和相关联速率失真成本,以使得视频编码器20可将EO和BO成本与跳过成本进行比较。在一个实例中,视频编码器20可与比较明度跳过模式成本比较分开地执行色度的跳过模式速率失真的比较。因此,如果视频编码器20确定针对当前LCU应选择且编码跳过模式,那么一旦针对明度和色度两者已完成SAO EO和BO决策确定,视频编码器20便仅设定用于当前LCU的SAO跳过模式旗标。
在另一实例中,如果视频编码器20选择明度SAO跳过模式,(即设定sao_type_idx_luma=0,因为在评估EO、BO和跳过模式之后跳过模式具有最低速率失真成本),那么视频编码器20可跳过确定最佳色度SAO模式的过程。在此实例中,视频编码器20跳过执行成本较高的色度EO和BO导出,终止SAO LCU决策且将跳过旗标两者设定为1。然而,如果视频编码器20启用明度SAO(即,选择BO或EO用于当前LCU),那么视频编码器20不跳过色度SAO,且不需要执行色度EO和BO导出。在此情况下,视频编码器20仅在决策算法结束时设定跳过旗标。
在不同实例中,如果当前LCU经IPCM译码,那么视频编码器20可跳过确定用于明度和色度通道两者的SAO模式。如果LCU中的大部分样本使用无损译码(例如,针对LCU中的大多数CU设定cu_transquant_bypass_flag),那么视频编码器20也可进行相同操作(即跳过确定明度和色度SAO模式)。在一些实例中,视频编码器20可改变决策阈值(LCU的区域的多少百分比需要满足以上准则)以便使用跳过模式用于当前LCU。
如果视频编码器20考虑在明度或色度导出期间不使用SAO处理(即跳过模式),那么视频编码器20计算速率失真成本(sao_type_idx_luma/chroma等于0)。失真分量等于0,因为D表示针对SAO的失真减少,且对此情况D等于0。速率成本等效于设定成0的sao_type_idx_luma或sao_type_idx_chroma的区间成本(1个区间)。所得成本产生针对明度分量的Jno_SAO,luma=λ×(1+sao_off_luma_bias)以及针对色度分量的Jno_SAO,chroma=λ×(1+sao_off_chroma_bias)。sao_off_luma_bias和sao_off_chroma_bias偏置在一些实例中可为任意值或固定为零。
视频编码器20执行对各种SAO模式进行编码所必要的位计数的估计。在一个实例中,在速率失真(R-D)的计算期间用以对SAO语法进行译码的位的估计是通过对用于SAO语法元素的CABAC区间的数目进行计数(“区间计数”)而完成。应注意,此处高复杂性计算的其它任选的实施方案是可能的,视频编码器20可执行语法的完全CABAC编码且这可产生R-D成本导出的较准确速率成本。在下文描述的一些实例中,本发明包含低复杂性方法的描述。
为了估计明度位计数,视频编码器20计算区间计数bincountEO,luma,sao_eo_class为:
为了当视频编码器20应用EO滤波时估计用于两个色度分量的色度位计数,视频编码器20计算区间计数为:
bincount1EO,chroma=bincount(sao_type_idx_chroma)+bincount0EO,chroma,sao_eo_class
=2+bincount0EO,chroma,sao_eo_class
为了估计特定明度类的区间计数,视频编码器20计算区间计数为:
基于c,取得Y、Cb和Cr的值,当视频编码器20执行BO模式时针对每一色度分量的区间计数估计被计算为:
对于明度通道,视频编码器20将针对BO模式的位计数估计计算为:
bincount1BO,luma=bincount(sao_type_idx_luma)+bincount0BO,Y=2+bincount0BO,Y
视频编码器20当应用BO时将针对两个色度分量的区间计数估计计算为:
bincount1BO,chroma=bincount(sao_type_idx_chroma)+bincount0BO,Cb+bincount0BO,Cr
随后,视频编码器20将针对整个LCU的位估计计算为:
bincountSAO,LCU
=bincount(sao_merge_left_lag)+bincount(sao_merge_up_flag)+bincountluma+bincountchroma
随后基于以上计算,对于best_sao_type_idx_luma=2的情况,bincountluma=bincount1EO,luma
对于best_sao_type_idx_luma=2的情况,bincountchroma=bincount1EO,chroma。对于best_sao_type_idx_luma=1的情况,bincountluma=bincount1BO,luma。对于best_sao_type_idx_chroma=1的情况,bincountchroma=bincount1BO,chroma。对于best_sao_type_idx_luma=0的情况,bincountluma=bincount(sao_type_idx_luma)=bincount(0)。且对于best_sao_type_idx_chroma=0的情况,bincountchroma=bincount(sao_type_idx_chroma)=bincount(0)。
另外,视频编码器20将用于sao_merge_left/up_flag的区间计数设定为等于零(如果它们未经设定)。否则,视频编码器20将用于合并旗标的区间计数设定为等于一。视频编码器20计算用于sao_type_idx的区间计数。视频编码器20将区间计数计算为bincount(a)=max(2,a+1)。以下在表5中说明区间计数:
SAO_TYPE 意义 区间数目
0 SAO关 1
10 BO 2
11 EO 2
表5-用于SAO类型索引的区间计数
视频编码器20还确定用于sao_eo_class语法元素的值。用于sao_eo_class语法元素的区间计数等于二。视频编码器20可进一步经配置以确定用于sao_bands_position语法元素的区间计数等于五。
对于EO模式,视频编码器20将用信号表示的偏移的区间计数计算为bincountEO(a)=max(7,abs(a)+1),其在以下表6中说明。
EO 1 2 3 4 5 6 7
区间数目 1 2 3 4 5 7 7
表6
对于BO模式,用于零偏移的区间计数是1,而对于非零偏移b,区间计数是bincountBO(b)=1+max(7,abs(ab)+1)。这在以下表7中说明。
BO -7 -6 -5 -2 -1 0 1 2 5 6 7
区间数目 8 8 7 4 3 1 3 4 7 8 8
表7-用于SAO BO偏移的区间计数
图15是说明当前LCU和相邻LCU的概念图。在图15的图中,当前LCU由左上方LCU420、上方LCU 422、左边LCU 424、左下方LCU 426、下方LCU 428、右下方LCU 430、右边LCU432和右上方LCU 434定界。左上方、上方和左边LCU最可能可用于当前LCU。然而,其它相邻LCU(即,右下方LCU 430、左下方LCU 426、下方LCU 428、右边LCU 432和右上方LCU 434)可能不可用于当前LCU,因为视频编码器20可能尚未处理这些相邻LCU。然而,视频编码器20可能需要存取这些相邻LCU的样本以例如执行边缘偏移模式导出,因为需要用以确定当前像素的EO分类器的相邻像素来执行EO导出。
视频编码器20当在称为“preSao”和“postSao”的两个处理缓冲器中执行解块时存储所述样本供使用。在一些实例中,可在存储器64(图4)中分配缓冲器。在一个可能实施方案中,主处理缓冲器preSao和postSao在SAO处理的应用之前和之后存储样本。分别在宽度乘以高度方面,preSao缓冲器的大小可为(LCU_SIZE+db_skip_cols+1)×(LCU_SIZE+db_skip_rows)。在一个实例中,视频编码器20可将LCU_SIZE的值针对明度设定为32且将LCU_SIZE的值针对色度设定为16。项db_skip_rows和db_skip_cols表示针对不处于图片的右边或下方边界处的LCU,DB块不在处理的当前LCU的下方的像素行以及当前LCU的右边的像素列。在一个实施方案中,视频编码器20可将其上跳过解块的行和列的数目设定为4。
图16是说明根据本发明的技术的用于相对于当前LCU从LCU缓冲样本的技术的概念图。图16说明视频编码器20在上文相对于图15描述的preSAO缓冲器中存储的像素(样本)。图16说明两个区,第一区460含有当前LCU、相对于当前LCU的上方相邻LCU、左边相邻LCU和左上方LCU,且第二区462含有右上方相邻LCU、右边相邻LCU、右下方相邻LCU、下方相邻LCU和左下方相邻LCU。视频编码器20可能已经解块第一区(preSAO区)中的样本,且视频编码器20可将第一区460的经解块样本存储在缓冲器中。视频编码器20可能尚未解块第二区462的样本,但可将第二区462的样本存储在与第一区460的样本相同的缓冲器中。
图17是说明根据本发明的技术的视频编码器使用以导出样本自适应偏移参数的样本的区的概念图。图17说明视频编码器20使用其样本(如图15到16中所说明)但视频编码器20可使用其导出SAO参数的第一区480(以垂直散列说明)。第一区480包含左上方相邻LCU、上方相邻LCU、左边相邻LCU和左下方相邻LCU。图17还说明第二区482(以对角线散列说明),视频编码器20可在与第一区相同的缓冲器中存储且视频编码器20可使用其导出用于当前LCU的SAO参数。第二区482可包含当前LCU、右边相邻LCU、下方相邻LCU和右下方相邻LCU。
图18是说明根据本发明的技术的用于确定用于最大译码单元的SAO模式的过程的流程图。仅出于实例的目的,应理解例如视频编码器20的视频编码器可执行图18中说明的过程。在图18的实例中,视频编码器20可经配置以使用样本自适应偏移SAO模式对图片的LCU的样本进行编码。为了对LCU的样本进行编码,视频编码器20的SAO单元74可经配置以计算LCU的对应经重构样本与LCU的原始样本之间的差(502)。SAO单元74可进一步经配置以从所述差中的每一者削减位的数目以形成经削减的差(504),且将所述差求和以形成差的总和(506)。SAO单元74可进一步经配置以削减所述差的总和以形成经削减的差的总和(508)。
响应于计算经削减的差的总和,SAO单元74可进一步经配置以计算经重构样本的数目(510),且从经重构样本的数目削减位的数目以形成经削减的样本数目(512),且将经削减的差的总和除以经削减的样本数目以产生用于LCU的偏移(514)。
在一些实例中,SAO模式可包括频带偏移模式或边缘偏移模式。在其它实例中,SAO可包括频带偏移模式,且视频编码器20可进一步经配置以确定用于频带偏移模式的频带偏移。为了确定频带偏移模式,视频编码器20可进一步经配置以迭代地算术右移位LCU的原始样本以将原始样本分类到32区间直方图的区间中。
在各种实例中,原始样本可包括LCU的分量平面(例如,明度分量平面或色度分量平面)的原始样本。另外,在这些实例中,经重构样本可包括LCU的分量平面的经重构样本。在这些实例中,视频编码器20可进一步经配置以当属于直方图的32个区间中的一者的样本的数目大于或等于属于LCU的当前分量平面的样本的数目的二分之一时终止样本的迭代分类。
在又一些其它实例中,为了除以经削减的差的总和以产生用于LCU的偏移,视频编码器20可从等于所述差的总和的变量迭代地减去像素的数目直到所述变量小于或等于零,将用于LCU的偏移确定为执行的迭代减法的数目,且基于所述差的总和的正负号确定所述偏移的正负号。
在另一实例中,视频编码器20可进一步经配置以存储相对于LCU的上方和左边相邻LCU的经后解块样本(例如,在缓冲器中),存储相对于当前LCU的下方和右边相邻LCU的经预先解块样本,且存储LCU的样本。为了使用SAO模式对LCU的样本进行编码,视频编码器20可进一步经配置以基于LCU的样本中的至少一些对LCU的样本进行编码。在又另一实例中,视频编码器20可经配置以基于LCU的样本以及存储在缓冲器中的下方和右边相邻LCU的经预先解块样本的样本而确定用于LCU的SAO模式。
图19是说明根据本发明的技术的用于确定用于最大译码单元的SAO模式的过程的流程图。仅出于实例的目的,应理解,例如视频编码器20的视频编码器可执行图19中说明的过程。在图19的实例中,视频编码器20可经配置以从多个SAO模式确定用于LCU的SAO模式(540)。所述多个SAO模式可包括:频带偏移模式、边缘偏移模式、合并上方模式、合并左边模式,和跳过模式。为了确定SAO模式,视频编码器20可基于用于LCU的SAO模式的预定优先级而确定所述至少一个SAO模式。在一些实例中,为了确定所述至少一个SAO模式,视频编码器20可在从用于LCU的色度通道的所述多个模式中确定色度SAO模式之前从用于LCU的明度通道的所述多个模式中确定明度SAO模式(542)。
在一些实例中,视频编码器20可进一步确定合并左边模式、合并上方模式和跳过模式中的一者是否具有小于或等于阈值成本的速率失真成本。响应于确定合并左边模式、合并上方模式和跳过模式中的一者具有小于或等于阈值成本的速率失真成本,视频编码器20可选择合并左边模式、合并上方模式和跳过模式中具有小于或等于阈值成本的速率失真成本的一者。在另一实例中,视频编码器20可确定合并左边模式、合并上方模式和跳过模式中的一者是否具有大于阈值成本的速率失真成本。响应于确定合并左边模式、合并上方模式和跳过模式中的所述一者具有大于阈值成本的速率失真成本,视频编码器20可选择边缘偏移模式或频带偏移模式用于LCU。
在各种实例中,为了从多个SAO模式中的一者确定用于LCU的SAO模式,视频编码器20可进一步经配置以在从用于LCU的色度通道的所述多个模式中确定SAO模式之前从用于LCU的明度通道的多个模式中确定SAO模式。
在一些其它实例中,为了基于SAO模式的预定优先级确定所述至少一个SAO模式,视频编码器20可进一步经配置以:确定所述多个SAO模式中的第一SAO模式和所述多个SAO模式中的第二SAO模式是否具有相同的速率失真成本。响应于确定第一SAO模式和第二SAO模式具有相同的速率失真成本,视频编码器20可选择第一SAO模式用于LCU。在一些实例中,第一模式可包括频带偏移模式且第二模式可包括边缘偏移模式。在另一实例中,第一模式可包括合并左边模式,且第二模式可包括合并上方模式。在另一实例中,第一模式可包括频带偏移模式或边缘偏移模式,且第二模式可包括合并上方模式或合并左边模式。在又另一实例中,第一模式可包括跳过模式,且第二模式可包括频带偏移模式或边缘偏移模式。
在一或多个实例中,所描述功能可用硬件、软件、固件或其任何组合来实施。如果用软件实施,则所述功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如,数据存储媒体,或包含促进将计算机程序从一处传送到另一处(例如,根据通信协议)的任何媒体的通信媒体。以此方式,计算机可读媒体通常可对应于(1)有形计算机可读存储媒体,其为非暂时性的,或(2)通信媒体,例如信号或载波。数据存储媒体可以是可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码及/或数据结构的任何可用媒体。计算机程序产品可以包含计算机可读媒体。
以实例说明且非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储呈指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,可恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包含连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各者的组合也应该包含在计算机可读媒体的范围内。
可由例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指代上述结构或适合于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可以在经配置用于编码和解码的专用硬件和/或软件模块内提供,或者并入在组合编解码器中。并且,可将所述技术完全实施于一或多个电路或逻辑元件中。
本发明的技术可以在广泛多种装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所揭示的技术的装置的功能方面,但未必需要通过不同硬件单元实现。实际上,如上文所描述,各种单元可以结合合适的软件及/或固件组合在编解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
描述了各种实例。这些和其它实例属于所附权利要求书的范围内。

Claims (6)

1.一种用于对视频数据进行编码的方法,所述方法包括:
使用包括频带偏移模式的样本自适应偏移SAO模式对图片的最大译码单元LCU的原始样本进行编码,其中使用所述SAO模式对所述LCU的所述原始样本进行编码包括:
迭代地算术右移所述LCU的分量平面的所述原始样本以将所述原始样本分类到32区间直方图的区间中;
当属于所述分量平面的所有原始样本都已被分类时,或当属于所述直方图的32个区间中的一者的原始样本的数目大于或等于属于所述LCU的所述分量平面的所述原始样本的数目的一半时,终止迭代分类;
从具有最大数目的原始样本的区间开始选择一组四个连续的区间;
计算所述LCU的对应经重构样本与属于所选择的一组连续的区间的所述LCU的原始样本之间的差;
从所述差中的每一者削减位的数目以形成经削减的差,所述经削减的差具有第一指定的位的数目且落在相应的值范围内;
针对属于所述所选择的组的每一个区间,将所述经削减的差求和以形成差的总和;
从每一个差的总和削减位的数目以形成经削减的差的总和,所述经削减的差的总和具有第二指定的位的数目且落在相应的第二值范围内;
针对属于所述所选择的组的每一个区间,计算所述经重构样本的数目;
从每一经重构样本的数目削减位的数目以形成经削减的样本数目,所述经削减的样本数目具有第三指定的位的数目且落在相应的第三值范围内;以及
将每一经削减的差的总和除以所述相应的经削减的样本数目以产生用于所述LCU的偏移。
2.根据权利要求1所述的方法,其中对所述经削减的差的总和做除法以产生用于所述LCU的所述偏移包括:
从等于所述差的总和的变量迭代地减去所述经重构样本的数目直到所述变量小于或等于零或者已经执行了7次迭代减法;
将用于所述LCU的所述偏移确定为执行的迭代减法的数目;以及
基于所述差的总和的正负号确定所述偏移的正负号。
3.根据权利要求1所述的方法,所述方法进一步包括:
存储相对于所述LCU的上方和左边相邻LCU的经后解块样本;
存储相对于所述当前LCU的下方和右边相邻LCU的经预先解块样本;
存储所述LCU的原始样本;且
其中使用所述SAO模式对所述LCU的所述原始样本进行编码包括基于所存储的经后解块样本和经预先解块样本中的至少一些而使用所述SAO模式对所述LCU的所述原始样本进行编码。
4.一种用于对视频数据进行编码的装置,所述装置包括:
存储器;以及
至少一个处理器,其中所述至少一个处理器经配置以:
使用包括频带偏移模式的样本自适应偏移SAO模式对图片的最大译码单元LCU的原始样本进行编码,其中为了使用所述SAO模式对所述LCU的所述原始样本进行编码,所述至少一个处理器经配置以:
迭代地算术右移所述LCU的分量平面的所述原始样本以将所述原始样本分类到32区间直方图的区间中;
当属于所述分量平面的所有原始样本都已被分类时,或当属于所述直方图的32个区间中的一者的原始样本的数目大于或等于属于所述LCU的所述分量平面的原始样本的数目的一半时,终止迭代分类;
从具有最大数目的原始样本的区间开始选择一组四个连续的区间;
计算所述LCU的对应经重构样本与属于所选择的一组连续的区间的所述LCU的原始样本之间的差;
从所述差中的每一者削减位的数目以形成经削减的差,所述经削减的差具有第一指定的位的数目且落在相应的第一值范围内;
针对属于所述所选择的组的每一个区间,将所述经削减的差求和以形成差的总和;
从每一个差的总和削减位的数目以形成经削减的差的总和,所述经削减的差的总和具有第二指定的位的数目且落在相应的第二值范围内;
针对属于所述所选择的组的每一个区间,计算所述经重构样本的数目;
从每一经重构样本的数目削减位的数目以形成经削减的样本数目,所述经削减的样本数目具有第三指定的位的数目且落在相应的第三值范围内;以及
将每一经削减的差的总和除以所述相应的经削减的样本数目以产生用于所述LCU的偏移。
5.根据权利要求4所述的装置,其中为了对所述经削减的差的总和做除法以产生用于所述LCU的所述偏移,所述至少一个处理器进一步经配置以:
从等于所述差的总和的变量迭代地减去所述经重构样本的数目直到所述变量小于或等于零或已经执行7次迭代减法;
将用于所述LCU的所述偏移确定为执行的迭代减法的数目;以及
基于所述差的总和的正负号确定所述偏移的正负号。
6.根据权利要求4所述的装置,其中所述至少一个处理器进一步经配置以:
存储相对于所述LCU的上方和左边相邻LCU的经后解块样本;
存储相对于所述当前LCU的下方和右边相邻LCU的经预先解块样本;
存储所述LCU的原始样本;且
其中为了使用所述SAO模式对所述LCU的所述原始样本进行编码,所述至少一个处理器经配置以基于所存储的经后解块样本和经预先解块样本中的至少一些而对所述LCU的所述原始样本进行编码。
CN201580006206.8A 2014-01-30 2015-01-22 低复杂性样本自适应偏移编码 Active CN105940677B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461933718P 2014-01-30 2014-01-30
US61/933,718 2014-01-30
US14/274,215 2014-05-09
US14/274,215 US9628822B2 (en) 2014-01-30 2014-05-09 Low complexity sample adaptive offset encoding
PCT/US2015/012514 WO2015116472A1 (en) 2014-01-30 2015-01-22 Low complexity sample adaptive offset encoding

Publications (2)

Publication Number Publication Date
CN105940677A CN105940677A (zh) 2016-09-14
CN105940677B true CN105940677B (zh) 2019-05-03

Family

ID=53680334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580006206.8A Active CN105940677B (zh) 2014-01-30 2015-01-22 低复杂性样本自适应偏移编码

Country Status (6)

Country Link
US (1) US9628822B2 (zh)
EP (1) EP3100456B1 (zh)
JP (1) JP6285559B2 (zh)
KR (1) KR20160114087A (zh)
CN (1) CN105940677B (zh)
WO (1) WO2015116472A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107105305B (zh) * 2011-06-24 2020-04-03 Lg 电子株式会社 图像信息编码和解码方法
FR3018417B1 (fr) * 2014-03-04 2017-07-28 Sagemcom Broadband Sas Procede de modification d'un flux video binaire.
WO2015196966A1 (en) * 2014-06-23 2015-12-30 Mediatek Singapore Pte. Ltd. Method of segmental prediction for depth and texture data in 3d and multi-view coding systems
US9521423B2 (en) * 2014-06-26 2016-12-13 Sony Corporation Data encoding and decoding apparatus, method and storage medium
WO2016072750A1 (ko) * 2014-11-04 2016-05-12 삼성전자 주식회사 에지 타입의 오프셋을 적용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
KR102390162B1 (ko) * 2015-10-16 2022-04-22 삼성전자주식회사 데이터 인코딩 장치 및 데이터 인코딩 방법
JP2017085496A (ja) 2015-10-30 2017-05-18 キヤノン株式会社 動画像符号化装置及びその制御方法、コンピュータプログラム
EP3280143A1 (en) * 2016-08-04 2018-02-07 Thomson Licensing A method and an apparatus for image block encoding and decoding
EP3291553A1 (en) * 2016-08-30 2018-03-07 Thomson Licensing Method and apparatus for video coding with sample adaptive offset
WO2018070723A1 (ko) * 2016-10-11 2018-04-19 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
KR20180074150A (ko) * 2016-12-23 2018-07-03 삼성전자주식회사 Sao 필터링을 포함하는 비디오 데이터의 부호화를 위한 방법 및 장치
WO2018120230A1 (zh) * 2016-12-30 2018-07-05 华为技术有限公司 图像滤波方法、装置以及设备
EP3349459A1 (en) 2017-01-11 2018-07-18 Thomson Licensing A method and a device for image encoding and decoding
US11399187B2 (en) * 2017-03-10 2022-07-26 Intel Corporation Screen content detection for adaptive encoding
CN106993187B (zh) 2017-04-07 2019-09-06 珠海全志科技股份有限公司 一种可变帧率的编码方法及装置
CN110692249A (zh) * 2017-04-11 2020-01-14 Vid拓展公司 使用面部连续性的360度视频编码
CN109327699B (zh) * 2017-07-31 2021-07-16 华为技术有限公司 一种图像的处理方法、终端和服务器
JP6992351B2 (ja) * 2017-09-19 2022-01-13 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
WO2019083243A1 (ko) * 2017-10-23 2019-05-02 에스케이텔레콤 주식회사 Sao 필터링을 위한 방법 및 장치
CN109756736B (zh) * 2017-11-01 2021-02-12 北京金山云网络技术有限公司 Sao模式决策方法、装置、电子设备及可读存储介质
CN114073091A (zh) * 2019-06-21 2022-02-18 三星电子株式会社 视频编码方法和装置以及视频解码方法和装置
EP4042684A4 (en) 2019-10-29 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. SIGNALING AN ADAPTIVE CROSS-COMPONENT LOOP FILTER
WO2023081509A1 (en) * 2021-11-08 2023-05-11 Beijing Dajia Internet Information Technology Co., Ltd Cross-component sample adaptive offset
CN114363613B (zh) * 2022-01-10 2023-11-28 北京达佳互联信息技术有限公司 滤波方法和滤波装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277592B1 (en) * 2003-10-21 2007-10-02 Redrock Semiconductory Ltd. Spacial deblocking method using limited edge differences only to linearly correct blocking artifact
JP2009175958A (ja) * 2008-01-23 2009-08-06 Seiko Epson Corp 除算器および除算方法、並びに除算器を用いた画像符号化装置
US8982960B2 (en) * 2011-02-23 2015-03-17 Qualcomm Incorporated Multi-metric filtering
US9008170B2 (en) * 2011-05-10 2015-04-14 Qualcomm Incorporated Offset type and coefficients signaling method for sample adaptive offset
US10038903B2 (en) 2011-06-22 2018-07-31 Texas Instruments Incorporated Method and apparatus for sample adaptive offset parameter estimation in video coding
KR101785770B1 (ko) * 2011-06-23 2017-10-16 후아웨이 테크놀러지 컴퍼니 리미티드 오프셋 복호 장치, 오프셋 부호화 장치, 화상 필터 장치 및 데이터 구조
KR102010160B1 (ko) * 2011-06-28 2019-08-12 소니 주식회사 화상 처리 장치, 화상 처리 방법 및 기록 매체
US9357235B2 (en) 2011-10-13 2016-05-31 Qualcomm Incorporated Sample adaptive offset merged with adaptive loop filter in video coding
JP2013138395A (ja) * 2011-11-04 2013-07-11 Sharp Corp 画像フィルタ装置、画像復号装置、画像符号化装置、および、データ構造
GB201119206D0 (en) 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
WO2013070147A1 (en) * 2011-11-07 2013-05-16 Telefonaktiebolaget L M Ericsson (Publ) Improved sample adaptive offset compensation of video data
EP2777272B1 (en) 2011-11-08 2019-01-09 Google Technology Holdings LLC Devices and methods for sample adaptive offset coding and/or signaling
US9282328B2 (en) * 2012-02-10 2016-03-08 Broadcom Corporation Sample adaptive offset (SAO) in accordance with video coding
WO2013152356A1 (en) 2012-04-06 2013-10-10 Motorola Mobility Llc Devices and methods for signaling sample adaptive offset (sao) parameters
US9031137B2 (en) 2012-05-03 2015-05-12 Texas Instruments Incorporated Signaling signed band offset values for sample adaptive offset (SAO) filtering in video coding
US20130336386A1 (en) 2012-06-18 2013-12-19 Qualcomm Incorporated Sample adaptive offset (sao) coding
US20140301447A1 (en) * 2013-04-08 2014-10-09 Research In Motion Limited Methods for reconstructing an encoded video at a bit-depth lower than at which it was encoded

Also Published As

Publication number Publication date
US20150215617A1 (en) 2015-07-30
EP3100456B1 (en) 2020-01-15
JP6285559B2 (ja) 2018-02-28
KR20160114087A (ko) 2016-10-04
JP2017507571A (ja) 2017-03-16
WO2015116472A1 (en) 2015-08-06
EP3100456A1 (en) 2016-12-07
US9628822B2 (en) 2017-04-18
CN105940677A (zh) 2016-09-14

Similar Documents

Publication Publication Date Title
CN105940677B (zh) 低复杂性样本自适应偏移编码
CN103959777B (zh) 视频译码中的与自适应环路滤波器合并的样本自适应偏移
CN104969552B (zh) 存储减少的帧内预测模式决策
CN110999291B (zh) 用于划分视频数据的帧间预测片段中的视频块的系统和方法
CN103959775B (zh) 一种视频数据编解码的方法及设备
CN104012091B (zh) 用于译码视频数据的方法、装置及设备
CN106105201B (zh) 使用像素距离的解块滤波
CN105723707B (zh) 用于视频译码的色彩残差预测
CN105075259B (zh) 用于视频译码预测的存储器减少
CN103891293B (zh) 用于色度分量的自适应环路滤波的方法及设备
CN104937936B (zh) 用于视频译码的方法和装置
CN104081777B (zh) 对视频数据进行编码或解码的方法、装置、设备及非暂时计算机可读媒体
CN103999465B (zh) 自适应性重叠块运动补偿
CN104685875B (zh) 用于视频译码的方法、设备、计算机可读存储媒体
CN104737537B (zh) 用于译码数字视频的设备、解码视频的方法、编码视频的方法及计算机可读存储媒体
CN105379266B (zh) 停用帧内预测滤波
CN105474641B (zh) 视频译码过程中用于系数层级译码的莱斯(rice)参数初始化
CN104255035B (zh) 视讯译码中的量化参数(qp)译码
CN104126301B (zh) 在视频译码中使用码簿对环路滤波器参数进行译码
CN103190147B (zh) 用于视频译码的语法元素的联合译码方法及设备
CN105493507B (zh) 用于帧内块复制的残余预测
CN103563378B (zh) 存储器高效的上下文建模
CN109716771A (zh) 用于视频译码的线性模型色度帧内预测
CN110463202A (zh) 色彩分量当中的滤波器信息共享
CN106664425A (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
GR01 Patent grant
GR01 Patent grant