一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于色度的跨分量自适应环路滤波器的制作方法

2022-03-31 11:22:48 来源:中国专利 TAG:


1.本发明涉及视频分量的块的编码或解码。本发明的实施例发现了在控制用于对这种分量的样本进行滤波的滤波器时的特定但不排他的使用。特别地但不排他地,控制自适应环路滤波器。


背景技术:

2.视频编码包括图像编码(图像等效于视频的单个帧)。在视频编码中,诸如变换系数的量化或运动补偿(通常使用插值滤波器来进行)等的一些编码工具经常引入失真偏差/效应(在给定上下文中看起来是有条理的或至少是非随机的失真)。为了补偿这些偏差/伪像,并且提高(或至少维持良好水平的)编码效率,使用一些被称为后滤波器或环内滤波器的特定编码工具。解块滤波器(dbf)、样本自适应偏移(sao)滤波器或自适应环路滤波器(alf)是这种编码工具的一些示例。在编码环路内应用环内滤波器,从而它们提供给当前帧的图像质量增加,这使得基于当前帧编码的后续帧的编码效率能够增加。例如,dct系数的量化对于视频压缩是高效的,但是它经常在压缩的样本块的边界上引入块伪像(偏差)。解块滤波器减少了由这种伪像引起的不期望的影响。与在编码环路外(例如,紧挨在显示帧之前)对帧进行解块相比,在编码环路内(在帧用作另一帧的运动补偿的参考帧之前)对解码帧进行解块(使用dbf)显著地增加了运动补偿的编码效率。
3.本发明特别涉及自适应环路滤波器(alf),该alf也用作环内滤波器以减少解码帧/图像中的不期望的压缩伪像。alf已经由视频编码专家组/运动图片专家组(vceg/mpeg)标准化组研究,并且正考虑在通用视频编码(vvc)标准中使用,例如在vvc测试模型软件的第五版本(vtm-5.0或vvc草稿版本5)中使用。跨分量alf(ccalf)在联合视频专家组(jvet)第15次会议(瑞典,哥德堡,2019年7月3日~12日)的jvet-o0636中提出,其是针对alf的补充滤波器,其使用亮度通道的样本值来估计对色度通道的样本值进行的伪像的附加错误校正。可以在各个色度通道上应用ccalf。


技术实现要素:

4.本发明涉及通过简化跨分量(cross component)滤波器来改进ccalf处理的一部分的编码性能。
5.本发明的实施例涉及使用滤波器系数和跨分量输入样本中的任一者或两者的(与内部位深相比)减小的位深表示。该约束可以通过位移位运算和/或忽略滤波器系数/输入样本的某些位来进行。
6.在本发明的一个方面,提供了一种对图像部分进行滤波的方法,该方法包括:接收与参考样本周围的样本相对应的滤波器系数和第一分量样本值,并且将所述滤波器系数和第一分量样本值输入到跨分量滤波器中以产生跨分量滤波器输出;其中,所述跨分量滤波器使用受约束位数来表示所述滤波器系数和/或第一分量样本值,以产生所述滤波器输出。
7.以这种方式,简化了滤波计算,并且令人惊奇地保持了大部分的ccalf编码改进。
8.可选地,所述受约束位数低于由内部位深定义的位数。
9.为了高效实现,用以表示所述滤波器系数和/或第一分量样本值的所述受约束位数使得滤波器输出可以以16个或更少的位表示。
10.可选地,该方法还包括将所述跨分量滤波器输出和与不同分量相对应的滤波器的输出进行组合。可选地,所述第一分量是亮度分量,并且所述不同分量是色度分量。
11.为了高效实现,所述方法包括在滤波乘法运算之前进行位移位运算以减少位数。这允许简化的滤波计算。
12.约束样本值
13.在本发明的一个方面,减少了用于表示样本值的位数。
14.可选地,根据第三变型例,约束包括通过仅考虑某些位来降低样本值的精度。
15.可选地,忽略预定义数量的最低位;例如,最低位、最低2位、最低3位或最低4位。
16.可选地,保持预定义数量的最高位;例如最高的8、7、6、5或4位。
17.为了进一步简化,该方法可以包括使用最高移除位对样本值进行舍入。
18.可选地,根据第四变型例,将样本值输入到所述滤波器中包括输入表示所述第一分量样本值和参考样本值的值的差的数字。
19.可选地,该方法还包括基于由固定裁剪参数c定义的裁剪函数(clipping function)来裁剪所述差。
20.裁剪函数k可以表示为:
21.k(d,c)=max(-c,min(c,d))
22.其中c是裁剪参数,并且d是表示差的数字。因此,到裁剪函数的输入是表示差的数字和裁剪参数,并且输出是-c以及c和d之间的较小值中的最高值。
23.在一个有利的实施例中,c为2
(ibitdepth-n)-1,其中ibitdepth是用于表示样本值的位数,并且n是满足n《ibitdepth的整数。可选地,n=2或3。
24.约束系数值
25.在本发明的一个方面,减少了用于表示滤波器系数值的位数。
26.可选地,根据第二变型例,所述约束包括限制滤波器系数的可能值的范围。这允许系数以较少的位表示,并且使得后续计算更简单。
27.可选地,根据第一变型例,所述约束包括使用降低的定点小数精度的输入系数值。
28.具有特定优点的实施例包括降低的定点小数精度是8、7和6位之一。
29.在一个可选实施例中,限制范围包括不使用高于阈值的任何位;例如,阈值是定点小数精度的第7个、第6个、第5个、第4个或第3个位。
30.在本发明的一个有利实现中,各个相乘由逐位移位和加法运算(这些运算在硬件和软件中都更容易实现)代替。因此,滤波运算可以包括样本值和滤波器系数的相乘,并且所述相乘经由逐位移位和/或与另一滤波器系数的组合来实现,以通过逐位移位和加法运算来代替所述相乘的运算。
31.滤波器形状
32.在本发明的另一方面,提出了对滤波器形状的修改。这样的修改包括减少要考虑的样本的数量(并且因此简化结果计算),同时保持由ccalf提供的增益。
33.可选地,各个第一分量样本值是相对于参考样本的定义位置处的位置处的样本
值,样本的位置由滤波器形状定义。
34.为了便于实现,滤波器形状使得其包括16个或更少的样本。
35.在一个实施例中,滤波器形状包括如下模式,其中所述第一分量样本具有相对于所述参考样本的位置(x u,y v),其中u和v属于[-2,2]整数区间。
[0036]
在另一实施例中,滤波器形状包括如下模式,其中每个样本具有相对于所述参考样本的位置(x u,y v),其中u属于[-2,2],并且v属于[-1,2]。在变型例中,滤波器是“菱形形状”;例如,其中当|u|=2时,v属于[0,1]。
[0037]
在一个实施例中,滤波器形状包括如下模式,其中每个样本具有相对于所述参考样本的位置(x u,y v),其中u属于[-1,1],并且v属于[-1,2]。在变型例中,滤波器是“菱形形状”;例如,当|u|=1时,v属于[0,1]。
[0038]
在另一实施例中,滤波器形状包括如下模式,其中每个样本具有相对于所述参考样本的位置(x u,y v),其中u,v属于[0,1]。
[0039]
用信号通知(signalling)
[0040]
本发明的实施例还涉及在位流中用信号通知ccalf滤波器系数。本发明的目的是改进用信号通知,以最小化与ccalf相关联的位率成本。
[0041]
可选地,该方法还包括在位流中用信号通知所述滤波器系数和/或样本值的减少位数。这允许不同图像的一致处理,并且如果需要,允许处理的灵活性。
[0042]
根据本发明的一个方面,该方法还包括:确定是否针对给定分量指示了跨分量自适应环路滤波器(ccalf);以及从位流解码/或编码所述滤波器系数。
[0043]
根据本发明的另一方面,提供一种对使用ccalf编码的图像部分进行解码的方法,该方法包括:确定是否针对给定分量指示了ccalf;从位流解码ccalf系数;以及使用所述ccalf系数解码所述图像部分;其中,所述ccalf系数以没有前缀的方式被编码到位流中。
[0044]
该方面表示对现有技术的简化,并且实现了较低的位率而不会显著损害ccalf性能(特别是当与如本文所述的减少用于表示滤波器系数的位数相结合时)。
[0045]
可选地,确定是否针对给定分量指示了ccalf包括对标志进行解码。
[0046]
根据本发明的另一方面,提供一种使用跨分量自适应环路滤波器(ccalf)对图像部分进行编码的方法,该方法包括:确定是否针对给定分量指示了ccalf;将ccalf系数编码到位流中;以及使用所述ccalf系数对所述图像部分进行编码;其中,使用固定表示将所述ccalf系数编码到片头部中。
[0047]
可选地,所述确定是否针对给定分量指示了ccalf包括将标志编码到所述片头部中。
[0048]
在第一替代方案中,为了易于实现,ccalf系数可以直接编码在片头部中。
[0049]
可以使用有符号一元编码(signed unary coding)将ccalf系数编码在位流中。这样的编码方案易于编码和解码,并且不依赖于其他参数(例如,前缀)来这样做。
[0050]
可选地,根据第三替代方案,有符号一元编码包括:指示系数的符号的位;以及一系列等于1的位,其指示系数的幅度。
[0051]
可选地,根据第二替代方案,有符号一元编码包括:位流中的第一位,其指示系数是否为零;(如果否系数不为零)指示系数的符号的位、以及等于1的位序列(其指示系数的幅度)。
[0052]
可选地,第一位等于1指示系数为零。
[0053]
可选地,符号位等于1指示系数为负。
[0054]
可选地,为了便于解析,有符号一元编码还包括在序列的末尾处的等于零的位,该位指示系数的用信号通知的结束。
[0055]
本发明的又一方面涉及一种如权利要求48所限定的用于对图像进行滤波的装置。
[0056]
本发明的又一方面涉及分别由权利要求49和50限定的编码器和解码器。
[0057]
本发明的又一些方面涉及如权利要求51所限定的程序。该程序可以单独提供,或者可以在载体介质上承载、由载体介质承载或在载体介质中承载。载体介质可以是非暂时性的,例如存储介质,特别是计算机可读存储介质。载体介质也可以是暂时性的,例如信号或其他传输介质。信号可以经由任何合适的网络(包括互联网)传输。
[0058]
本发明的其他特征由其他独立和从属权利要求表征。
[0059]
本发明的一个方面中的任何特征可以以任何适当的组合应用于本发明的其他方面。特别地,方法方面可以应用于设备方面,反之亦然。
[0060]
此外,以硬件实现的特征可以以软件实现,反之亦然。本文中对软件和硬件特征的任何引用应当被相应地解释。
[0061]
如本文所述的任何设备特征也可以作为方法特征提供,反之亦然。如本文所使用的,装置加功能特征可以根据它们的相应结构来替代地表示,诸如适当编程的处理器和相关联的存储器等。
[0062]
还应当理解,可以独立地实现和/或提供和/或使用在本发明的任何方面中描述和限定的各种特征的特定组合。
附图说明
[0063]
现在将仅通过示例的方式并参考以下附图来描述本发明的实施例,在附图中:
[0064]
图1示出在vtm-5.0的典型解码环路中发生alf的位置;
[0065]
图2是提供vtm-5.0中的alf滤波的概述的流程图;
[0066]
图3是除了提供vtm-5.0的alf的概述、还提供ccalf滤波的概述的流程图;
[0067]
图4-a提供根据本发明的实施例的用于ccalf滤波器的滤波器形状和系数布置;
[0068]
图4-b示出ccalf滤波器系数的典型逐位存储器表示;
[0069]
图4-c示出在10位内部位深的情况下ccalf滤波期间使用的样本值的典型逐位存储器表示;
[0070]
图4-d示出在进行ccalf滤波时ccalf滤波器系数与样本值相乘的输出的典型逐位存储器表示;
[0071]
图4-e示出在进行ccalf滤波时为了对ccalf滤波器系数与样本值相乘的结果进行求和而进行的加法运算的输出的典型逐位存储器表示;
[0072]
图5-a示出根据本发明的第一变型例的示例的通过降低系数值的精度来减少ccalf滤波器系数的位数的逐位存储器表示;
[0073]
图5-b示出根据本发明的第二变型例的示例的通过限制可能系数值的范围来减少ccalf滤波器系数的位数的逐位存储器表示;
[0074]
图5-c示出根据本发明的组合第一变型例和第二变型例的示例的通过降低系数值
的精度并且通过限制可能系数值的范围来减少ccalf滤波器系数的位数的逐位存储器表示;
[0075]
图5-d示出根据本发明的第三变型例的示例的通过忽略最低位来减少在滤波处理内部使用的样本值的位数的逐位存储器表示;
[0076]
图6-a示出根据本发明的第四变型例的示例的在滤波处理内部使用的样本值的差的逐位存储器表示;
[0077]
图6-b示出根据本发明的第四变型例的示例的当使用裁剪运算来减少滤波处理内部的位数时样本值的差的逐位存储器表示;
[0078]
图6-c示出了根据组合本发明的第三和第四变型例的示例的当使用裁剪运算并忽略最低位以减少滤波处理内部的位数时样本值的差的逐位存储器表示;
[0079]
图7-a示出根据本发明的变型例的在进行ccalf滤波时ccalf滤波器系数与样本值相乘的输出的典型逐位存储器表示;
[0080]
图7-b示出根据本发明的变型例的在进行ccalf滤波时为了对ccalf滤波器系数与样本值的相乘结果进行求和而进行的加法运算的输出的典型逐位存储器表示;
[0081]
图7-c提供根据本发明的第五变型例的针对使用16个样本以减少在ccalf滤波处理中使用的位数和运算的ccalf滤波器的示例的滤波器形状和系数布置;
[0082]
图7-d提供根据本发明的第五变型例的使用16个样本以减少在ccalf滤波处理中使用的位数和运算的ccalf滤波器的示例的滤波器形状和系数布置;
[0083]
图7-e提供根据本发明的第五变型例的使用12个样本以减少在ccalf滤波处理中使用的位数和运算的ccalf滤波器的示例的滤波器形状和系数布置;
[0084]
图7-f提供根据本发明的第五变型例的使用8个样本以减少在ccalf滤波处理中使用的位数和运算的ccalf滤波器的示例的滤波器形状和系数布置;
[0085]
图7-g提供根据本发明的第五变型例的使用4个样本以减少在ccalf滤波处理中使用的位数和运算的ccalf滤波器的示例的滤波器形状和系数布置;
[0086]
图8是示出根据本发明的实施例的编码方法的步骤的流程图;
[0087]
图9是示出根据本发明实施例的解码方法的步骤的流程图;
[0088]
图10是示意性地示出可以实现本发明的一个或多于一个实施例的数据通信系统的框图;
[0089]
图11是示出可以实现本发明的一个或多于一个实施例的处理装置的组件的框图;
[0090]
图12是示出可以实现本发明的一个或多于一个实施例的网络照相机系统的图;以及
[0091]
图13是示出可以实现本发明的一个或多于一个实施例的智能电话的图。
具体实施方式
[0092]
下面描述的本发明的实施例涉及改进图像的编码和解码。
[0093]
在本说明书中,“用信号通知(signalling)”可以指将与用于控制滤波器的一个或多于一个参数有关的信息(例如使用、不使用、启用或禁用模式/方案或其他滤波控制相关信息)插入到(提供/包括/编码在)位流中或者从位流提取/获得(解码)该信息。
[0094]
在本说明书中,术语“片(slice)”用作图像部分的示例(这种图像部分的其他示例
将是瓦片(tile)或瓦片组(其是瓦片的组/集合))。应当理解,本发明的实施例也可以代替基于片而基于图像部分(例如,瓦片或瓦片组)以及适当修改的参数/值/句法(诸如图像部分/瓦片/瓦片组的头部(代替片头部)、图像部分/瓦片/瓦片组的类型(代替片类型)、以及图像部分/瓦片/瓦片组等的统计信息(代替片统计信息))来实现。还应当理解,代替片头部或序列参数集(sps),也可以使用自适应参数集(aps)或瓦片(组)头部,以用信号通知alf或ccalf参数(或用于使用(cc)alf滤波的信息)。当aps用于用信号通知(cc)alf参数(或用于使用(cc)alf滤波的信息)时,片头部或瓦片组头部可以用于例如通过指示自适应集标识符(aps_id)来指示必须使用哪个aps以获得(cc)alf参数(或用于使用(cc)alf滤波的信息)。还应当理解,片、瓦片组、瓦片、编码树单元(ctu)/最大编码单元(lcu)、编码树块(ctb)、编码单元(cu)、预测单元(pu)、变换单元(tu)或像素/样本块中的任一个可以被称为图像部分。
[0095]
还应当理解:当滤波器或工具被描述为“有效”时,滤波器/工具“启用”或“可供使用”或“已使用”;当被描述为“无效”时,滤波器/工具“禁用”或“不可使用”或“未使用”;并且“类”是指一个或多于一个元素的组、分组、类别或分类。此外,还应当理解,当标志被描述为“有效”时,意味着该标志指示相关滤波器/工具是“有效”的。
[0096]
自适应环路滤波器(alf)
[0097]
图1示出在vtm-5.0的典型解码环路中存在alf的位置。在101中,以编码树单元(ctu:vvc中的最大编码单元,通常为128
×
128样本/像素大小)为单位对图像部分(例如,片)进行解码。ctu被拆分成矩形块或编码单元(cu),所述矩形块或编码单元使用特定预测方案/模式进行编码,并且通常是残差块的有损编码。由于基于块的编码的使用,块伪像可能在编码块之间的边界处可见。在102中,然后由dbf处理解码图像部分以减少/去除这些伪像。典型地,为了对用于块预测的残差(块)进行编码,使用dct-like变换来变换残差值(以在几个系数中压缩残差能量),并且变换后的系数被量化以降低编码成本。这种量化通常在重建块(即存储在帧缓冲器106中的参考帧中的块)中引入一些振铃(ringing)伪像。在103中,然后由sao滤波器处理dbf的输出图像部分,这有助于以较低的计算成本减少这些伪像中的一些伪像。在104中,然后由alf处理sao滤波器的输出图像部分。alf可以进一步减少如例如“振铃”等的伪像。alf具有较高阶误差建模能力,但计算成本较高。然后,alf的输出图像部分被发送到输出(例如显示器或用于与显示器通信的通信接口)105。alf的输出图像部分还可以放入帧缓冲器106中(作为存储在其中的参考帧的一部分),使得其可以用于时间预测(当使用时间预测工具时)。这就是dbf、sao滤波器和alf被称为“环内”滤波器的原因。编码器可以禁用一些环内滤波器,使得在解码处它们可以被旁路(即,不进行滤波,并且与所禁用的工具相对应的步骤的输出与其输入相同)。此外,在一些情况下,所处理的图像部分不限于片,而是可以是包含一个或多个片的全帧,具有跨越片边界(如果存在多于一个)应用滤波器的可能性,以减少这些边界上的伪像。对于多分量图像(例如,ycrcb格式的图像),dbf、sao滤波器或alf处理分别应用于各个分量,并且可能不同(例如,使用与其他分量不同的滤波参数)。
[0098]
图2提供vtm-5.0中的alf滤波的概述。对于各个通道(亮度通道:y和色度通道:cb和cr),将输入图像部分201、202、203与滤波参数204、205、206一起提供给自适应环路滤波(alf)处理207、208、209。alf处理针对各个通道210、211、212生成经处理输出图像部分。
208、209中的alf色度处理对于两个色度通道是相同的,但是由于205和206中提供的特定参数,208、209中的alf色度处理可以被配置为对各个通道不同地工作。在207中进行的alf亮度处理通常比在208中进行的alf色度处理更复杂。这有两个原因。第一个原因是亮度通道内容的处理/编码通常比色度通道更复杂,这是因为亮度通道比通常更平滑的色度通道包含更多的结构(轮廓、纹理等)。第二个原因是人眼对亮度通道上的误差比对色度通道上的误差更敏感。因此,亮度通道优选更高级和复杂(即,更大功耗和/或更慢)的处理,以提供更好的编码增益和更好的视觉质量。
[0099]
在自适应参数集(aps)和/或片头部中发送在204、205和206中提供的输入参数信息。204、205和206也可以共享一些共同信息。
[0100]
alf处理207、208、209可以在各个通道上并行进行,这是因为每一者的任务结果独立于其他者的任务结果。这种并行处理的机会可以减少处理所花费的总时间,并且可以在硬件或软件中高效地实现。
[0101]
在204、205和206中提供的输入参数信息还可以包括内部位深信息。内部位深是可用于表示样本值的位的最大数量(即,其表示样本值的精度)。在vtm-5.0中,准许使用与色度通道的内部位深不同的亮度通道的内部位深(在用于两种通道类型(亮度和色度)的序列参数集(sps)中用信号通知位深信息)。在以下描述中,“ibdl”将指代亮度的内部位深,“ibdc”将指代色度的内部位深。当针对内部位深使用“ibd”时,这意味着ibdl被认为等同于ibdc。当未提及或未指定时,内部位深不影响所论述的处理,或者已被省略,因为以正统方式处置内部位深。
[0102]
图3提供图2中的alf滤波的扩展,以使用跨分量alf(ccalf)处理。
[0103]
对于各个色度通道202、203,亮度通道的输入图像部分201与滤波参数305、306一起被提供给跨分量自适应环路滤波(ccalf)处理308、309。在311、312中将ccalf滤波处理的输出与alf色度滤波处理208、209的输出相加,以针对各个色度通道生成经处理输出图像部分313、314。308、309中的ccalf处理对于这两个色度通道是相同的,但是由于305和306中提供的特定参数,308、309中的ccalf处理可以被配置为在各个通道上不同地工作。例如,可使用特定滤波器系数来处理各个色度通道。
[0104]
在一些变型例中,与亮度通道相比,色度通道被子采样,例如对于使用yuv 4:2:0颜色表示的视频。在这样的变型例中,ccalf滤波处理308、309不应用于各个亮度样本位置,而是仅应用于在对色度样本位置进行上采样时获得的整数亮度样本位置。因此,对于yuv 4:2:0表示,滤波仅应用于亮度样本位置的四分之一。
[0105]
alf滤波处理207、208和209,以及ccalf滤波处理308和309是独立的,因此,它们可以并行进行。与图2相比,通过在311和312中进行加法运算以组合针对各个通道的两个色度滤波器的结果而在图3中引入时延(latency)。然而,由于ccalf及色度alf通常不如亮度alf复杂,因此在vtm-5.0中,在无附加时延的情况下实现3个通道的总体处理应是可行的,即,速率确定步骤可能为亮度alf,且因此其他两个通道中的附加时延不影响总体处理的时延。
[0106]
在自适应参数集(aps)和/或片头部中发送在305和306中提供的输入参数信息。305和306也可以共享一些共同信息。
[0107]
在一个变型例中,305和306包含用于线性卷积滤波器的滤波器系数(例如参见图4-a至4-e)。在一个替代方案中,305和306包含用于非线性滤波器的滤波器系数和裁剪参
数,类似于例如在vtm-5.0中用于非线性alf滤波的滤波器系数和裁剪参数。已发现线性及非线性滤波器这两者以提供编码性能的增益,然而线性滤波器较不复杂且因此在某些实现中可以是优选的。
[0108]
在一些变型例中,在305和306中提供的输入参数信息可以包括ibdl和ibdc,以推断一些左或右逐位移位运算参数(或乘法/除法运算参数)来“标准化”通道之间的数据(例如,样本值)(即,使用可比较的精度值)。
[0109]
应当理解,在一些变型例中,即使尚未进行alf滤波,也可以应用ccalf。还应当理解,亮度通道或其他种类的通道可以用于校正除色度通道以外的其他种类的通道。例如,红色通道可以用于校正使用rgb颜色表示的视频中的绿色通道和/或蓝色通道。
[0110]
还应当理解,在一些变型例中,可以使用多于一个通道来减少另一通道的误差。例如,色度通道202和203这两者的输入图像部分可以用ccalf滤波器滤波,并且将各个图像部分的滤波结果加到alf亮度滤波207的输出以校正亮度通道中的剩余误差。与亮度通道相比,当色度通道被子采样时,这样的变型例可以是特别适用的。例如,在yuv 4:2:0颜色表示中,可以对色度样本使用4个不同的滤波器,一个滤波器针对被下采样/关联到一个色度样本位置的四个亮度样本位置中的每一个。换句话说,对于亮度样本的2
×
2块,在相应色度位置处应用第一滤波器以校正2
×
2块中的位置(0,0)处的亮度样本,对相同色度样本位置应用第二、第三和第四滤波器以分别校正位置(0,1)、(1,0)和(1,1)处的亮度样本。在变型例中,仅一个ccalf滤波器用于四个亮度样本位置,但是通过对色度样本进行上采样来获得经滤波的色度样本值,以获得在与亮度样本相同的网格上对准的色度样本。
[0111]
图4-a示出当利用线性卷积滤波器进行ccalf时可以使用的滤波器形状401的示例。该滤波器形状非常适合于对亮度通道进行滤波以校正使用yuv4:2:0颜色表示的视频的色度通道中的误差,但是也可以与其他种类的颜色表示一起使用。各个框对应于位于参考样本(具有灰色虚线背景的框)位置周围的样本。各个框中的各个数字对应于应用于框的位置处的样本的滤波器系数的索引。
[0112]
位置(xc,yc)处的cb分量色度样本通过向其值加上以下量来被滤波/校正:
[0113]
其中f
icb
是用于cb色度分量的滤波器的具有索引i的滤波器系数。
[0114]
类似的滤波应用于cr分量,但使用f
icr
滤波器系数。
[0115]
通过使用以下公式标记(notation)来简化标记以获得相同的滤波:
[0116][0117]
其中是与滤波器形状中在具有位置(x,y)的参考样本(401中具有灰色虚线
背景的框)的偏移(ui,vi)处的样本一起应用的滤波器系数。
[0118]
等式(2)的实现通常使用整数运算以近似具有定点计算的实数运算来进行。然后可以将等式(2)重写为:
[0119][0120]
其中《《是整数左逐位移位运算,》》是整数右逐位移位运算,并且b是滤波器系数的定点表示的小数精度(通常为10位)(参见图4-b);并且是具有等于编解码器的ibd的整数精度的整数样本值(通常为10位,参见图4-c)。
[0121]
在yuv 4:2:0颜色表示中,亮度样本位置(x,y)对应于最接近的整数上采样的色度位置:(x,y)=(2.xc,2.y

)。
[0122]
在一些变型例中,当ibdl大于ibdc时,等式(3)可以重写为:
[0123][0124]
或者
[0125][0126]
或者
[0127][0128]
并且当ibdl低于ibdc时,等式(3)可以重写为:
[0129][0130]
或者,如果b ibdl严格高于ibdc,则等同于:
[0131][0132]
其中,b1=b ibdl-ibdc。
[0133]
等式(4)、(5)、(6)和(7)中的附加逐位移位运算或等式(8)中的修改的逐位移位参数允许标准化滤波的结果以保持与色度样本值相同的精度。为了实现这一点,在等式(4)中,对亮度样本值进行标准化;在等式(5)中,对亮度样本值与系数值相乘的结果标准化,或者在等式(6)、(7)和(8)中,对乘法输出的总和的结果(即,滤波的结果)进行标准化。
[0134]
等式(6)也可以如等式(8)中那样重写,具有相同的结果。
[0135]
在等式(7)中,括号有意地不放在逐位移位周围,这是因为当ibdl低于ibdc时,无论在何处进行左移位,计算结果都将是相同的。这是硬件或软件设计选择的问题。可替代地,等式(4)中的移位值也可以通过在应用右移位(ibdl-ibdc)之前加1《《(ibdc-ibdl-1)来舍入。
[0136]
在硬件/软件设计方面,当ibdl大于ibdc时,遵循等式(8)公式的实现可能是优选的,这是因为其需要较少的运算。在ibdl总是高于ibdc的特定情况下,等式(4)可以优选地限制乘法输入的位数:在使用等式(4)的系统实现中获得的位数然后将取决于:在该系统中可以采用ibdc的最大值对可以采用ibdl的最大值(因为这是必须应对的最坏情况)。当ibdc大于ibdl时,可以优选地使用等式(8)来不增加乘法的输入位深,特别是当可以采用ibdc的最大值总是大于可以采用ibdl的最大值时。当ibdc的最大值等于ibdl的最大值时,等式(8)是最佳折衷。
[0137]
对于b ibdl不严格高于ibdc的情况,等式(8)可以重写为:
[0138][0139]
其中b2=ibdc-ibdl-b。
[0140]
图4-b示出等式(3)中的ccalf滤波器系数的典型逐位存储器表示。ccalf滤波器系数的逐位表示402通常使用16位有符号整数表示(以tow表示的补码)来存储实数的定点值近似。10位精度用于小数部分,其他位用于存储整数部分和符号。
[0141]
图4-c示出当存储在16位整数存储器空间403(或寄存器)中时、针对vtm-5.0中的10位内部位深的、等式(3)中的样本值的典型逐位存储器表示。叉框表示未使用的位。
[0142]
图4-d示出在ccalf滤波器系数表示对应于在图4-b中使用的滤波器系数的情况下用于存储将10位内部位深样本值与ccalf滤波器系数相乘(例如,针对给定i,)的结果的32位有符号整数的典型逐位存储器表示。可以看出,需要24位精度(403的10位精度加上402的14位精度),加上用于符号的一个位(即,25位有符号整数表示)。
[0143]
图4-e示出在ccalf滤波器系数表示对应于在图4-b中使用的滤波器系数的情况下以及在使用图4-a中的滤波器模式(filter pattern)情况下用于存储将10位内部位深样本值与ccalf滤波器系数相乘的结果的累加(总和)(例如,)的中间结果的32位有符号整数的典型逐位存储器表示:。这对应于存储18个25位有符号整数的总和所需的逐位存储器,如图4-b中所示。可以看出,需要29位精度(403的10位精度加上402的14位精度加上用于存储18个加法的最坏情况结果的5位),加上用于符号的一个位(即,30位有符号整数表示)。
[0144]
根据本发明的实施例,与使用图4-b的典型系数表示时相比,用于ccalf滤波的等式(3)中的滤波运算被高度简化,特别是对于硬件专用设计(其中逻辑门的数量具有成本,并且其中用于进行乘法的门的数量取决于输入的位的最大数量)。已经令人惊讶地发现,可以实现显著的简化,同时对编码效率产生影响,这在伴随着显著的设计简化时是可接受的。通常,下面公开的简化涉及使用滤波器系数或跨分量输入样本中的任一者或两者的减小的位深表示(与内部位深相比)。受约束位深表示与第一分量样本的内部位深相比受到约束,或者与典型滤波器系数位深相比受到约束(两者均为10位的普通示例)。
[0145]
应当理解,位深减少的某些组合是特别有利的(例如当引导至可以在16位架构上进行的计算时)。在任何情况下,使用受约束位数的计算更快,这意味着ccalf(与简单的alf
相比)的(增加的时间或计算能力的)附加成本更低。
[0146]
减少等式(3)中的乘法输入的位数的第一变型例是为了降低定点小数精度。这可以通过移除图4-b中的一些最低位来完成。例如,已经发现使用7位而不是10位表现良好的折衷(例如,当使用10位样本内部位深时),以不会过多地减少ccalf的编码增益。在一些变型例中,使用6位而不是10位来使ccalf的编码增益减少了一点,但这仍然是令人感兴趣的硬件设计折衷。
[0147]
图5-a示出当将定点小数精度限制为7位而不是10位时、等式(3)中的ccalf滤波器系数的逐位存储器表示的示例。然后在501中将402的逐位表示减少到13位(12位用于精度,并且1位用于符号)。
[0148]
减少等式(3)中的乘法输入的位数的第二变型例是限制滤波器系数的可能值的范围。这可以通过移除图4-b中所示的一些最高位来实现。已经令人惊讶地发现,即使当显著限制系数的可能值的范围时,ccalf仍然可以高效地工作。这尤其令人惊讶,因为该效果特定于ccalf,并且该效果在alf的情况下不会复制(例如,这样做会对编码增益引入较高损失)。可以解释这样的简化对编码效率的惊人的低影响,这是因为发明人已发现跨分量alf在亮度样本的梯度强(例如,接近边缘)的情况下最有用(因为该位置上的色度误差通常更强且与亮度样本梯度相关)。此外,这些区域中的ccalf输出通常是小的/有限的值(而在其他地方通常为零)。因此,数学上最优的滤波器系数(在实域中)通常具有小幅度,并且可以通过使用少数量位的(定点小数数量的)整数表示来很好地近似。因此,编码性能的大部分增加可以从系数的子集实现。本发明的实施例利用该特性来简化计算,而不会显著影响编码性能。这也解释了为什么将在下面呈现的第三和第四变型例起作用:降低样本/系数的精度,这生成一种“舍入误差噪声”(其不会显著影响ccalf输出的小值的估计)。
[0149]
总之,已经发现:
[0150]
i.将系数限制在-0.03125和0.03125之间的范围内(例如,不使用高于小数点精度的第6位的任何位)具有可接受的编码影响
[0151]
ii.将系数限制在-0.0625和0.0625之间的范围内(例如,不使用高于小数点精度的第5位的任何位)没有显著的编码影响
[0152]
iii.将系数限制在-0.125和0.125之间的范围内(例如,不使用高于小数点精度的第4位的任何位)几乎没有编码影响
[0153]
iv.将系数限制在-0.25和0.25之间的范围内(例如,不使用高于小数点精度的第3位的任何位)具有可忽略的编码影响
[0154]
v.将系数限制在-0.015625和0.015625之间的范围内(例如,不使用高于小数点精度的第7位的任何位)具有在某些实现中可以容忍的编码影响。
[0155]
范围的限制值可以包括或不包括在可用系数值中。下面详细描述使用这三个范围的示例,但是也可以使用替代范围。
[0156]
在以下描述中,提供了结果。这些结果是使用jvet-n01010文档中定义的“jvet common test conditions and software reference configurations for sdr video”获得的;但是约束要应用于视频序列的前17个帧的测试条件。因此,本发明的变型例已经在vtm-5.0软件(或者在用于提供vtm-6.0软件的开发过程期间,后面的中间开发版本)之上实现,该vtm-5.0软件已经被用作基准。与基准(例如vtm-5.0)相比,针对亮度通道和两个色度
通道获得“全帧内”(ai)、“随机存取”(ra)、“低延迟b”(lb)和“低延迟p”(lp)配置的平均bd速率编码增益结果。通过如下操作来组合这些平均通道编码增益:对亮度编码增益与各个色度通道的编码增益进行14次求和,并且将和除以16以获得平均yuv编码增益。这是组合亮度和色度通道结果的常规方式,因为色度通道比亮度通道更容易编码。将针对ai、ra、lb和lp配置获得的平均yuv编码增益一起求平均,并且将这些最终平均编码增益值一起比较以提供编码增益比较。编码增益比较被表示为作为(当未明确指定为不同时)基准软件(即,vtm-5.0或后面的中间开发版本)(其具有在其上实现的ccalf)的基准的百分比,如jvet-o0636贡献中所指定的,但不包括用于简化该基准的本发明。通过简化该基准(即,使用相同的vtm-5.0或后面的中间开发版本,以及在其上实现但用本发明简化的ccalf)来实现所比较的变型例。通过计算变型例的编码增益(其是以相同质量的速率降低的百分比表示的平均bd速率增益)与基准的编码增益(也是平均bd速率增益)之间的比率来获得百分比。对于信息,与vtm-5.0相比,使用vtm-5.0之上的基准ccalf提供约-1.2%的平均yuv编码增益。
[0157]
下面提供的编码增益比较结果是信息量大的,并且当在另一编码器实现之上或在另一编解码器规范之上实现本发明时,所报告的编码增益的百分比可能是不同的。
[0158]
在以下描述中,将使用具有以下含义的范围标记:
[0159]
]x,y[,意指x和y之间的值的范围,但不包括x和y
[0160]
[x,y[,意指x和y之间的值的范围,包括x但不包括y
[0161]
]x,y],意指x和y之间的值的范围,包括y但不包括x
[0162]
[x,y],意指x和y之间的值的范围,包括x和y
[0163]
使用范围[-0.03125;0.03125[(不使用高于定点小数精度的第6位的任何位)中的系数保留了ccalf的绝大多数编码增益,同时显著减少了用于乘法的位数。图5-b示出该变型例的示例。
[0164]
图5-b示出当使用10位的定点小数精度并且将系数的可能值的范围限制为范围[-0.03125;0.03125[时、等式(3)中的ccalf滤波器系数的逐位存储器表示的示例。然后在502中将402的逐位表示减少到6位(5位用于精度,并且1位用于符号)。
[0165]
第二变型例(图5-b)可以与第一变型例(图5-a)组合,如图5-c所示。
[0166]
图5-c示出当将定点小数精度限制为7位而不是10位并且将系数的可能值的范围限制为范围[-0.03125;0.03125[时、等式(3)中的ccalf滤波器系数的逐位存储器表示的示例。然后在503中将402的逐位表示减少到3位(2位用于精度,并且1位用于符号)。
[0167]
通过将系数限制在范围]-0.03125;0.03125[(即,滤波器系数只能取{-0.0234375,-0.015625,-0.0078125,0,0.0078125,0.015625,0.0234375}一组值中的值),使得可以用两个加法/减法(取决于符号处理)和逐位移位(在图5-c所示的情况下)代替各个乘法,可以稍微进一步简化。例如,等式(3)中的乘法可以被替换为例如:
[0168][0169]
其中《《是整数左逐位移位运算,》》是整数右逐位移位运算,并且b是滤波器系数的定点表示的小数精度(7位)(参见图5-c);并且是整数精度等于编解码器的内部位深的整数样本值(通常为10位,参见图4-c)。
[0170]
乘法甚至可以仅由一个加法/减法(取决于符号处理)和逐位移位来代替。然而,这在ccalf的编码增益中引入更多损失。例如,当将定点小数精度的精度限制为6位,并且将系数限制在范围]-0.03125;0.03125[(即,滤波器系数只能取{-0.015625,0,0.015625}一组值中的值)中时,可以这样做。例如,当将定点小数精度的精度限制为7位并且将系数限制在范围]-0.015625;0.015625[(即,滤波器系数只能取{-0.0078125,0,0.078125}一组值中的值)中时,也可以这样做。与使用10位小数精度和使用在范围]-1;1[内的滤波器系数相比,使用第一替代方案允许保持大约78%的ccalf增益。使用第二替代方案允许保持大约76%的ccalf增益。
[0171]
在一些其他替代方案中,系数的值的范围是[-0.0625;0.0625[、]-0.0625;0.0625[、[-0.125;0.125[、]-0.125;0.125[、[-0.25;0.25]或]-0.25;0.25],即,对于系数的(小数部分)精度,保持一个、两个或三个附加最高位。例如,作为图5-c的替代,针对滤波器系数保留3或4位而不是2位。在这样的替代方案中,附加位是比图5-c中保持的位高1或2个位。这四个替代方案中的第二个和第四个允许分别用三个和四个加法/减法(取决于符号处理)和逐位移位来代替乘法。
[0172]
减少等式(3)中的乘法输入的位数的第三变型例是降低样本值的精度。这可以通过不考虑样本值的最低位来完成(这将等同于使用cpu实现使用向右的逐位移位)。例如,等式(3)可以重写为:
[0173][0174]
其中db对应于死位(即,被忽略/不考虑的位)的数量。在图5-d中示出在针对该变型例的乘法中使用的样本值的逐位表示的示例。
[0175]
图5-d示出当将样本值的精度限制为6位而不是10位以简化等式(3)中的乘法运算的硬件实现时、针对vtm-5.0中的10位内部位深在等式(3)中使用的样本值的逐位存储器表示的示例。叉框表示未使用的位。403的逐位表示在504中被减少为6位。
[0176]
替代方案是例如使用最高移除位值来“舍入”样本值(例如,如果最高移除位是1,则通过向具有减少的位数的表示加1,或者等效地在移除/不考虑不想要的位之前加上与最
高移除位之一相对应的值)。当降低样本精度在更大程度上影响ccalf的编码效率时,这种替代方案是令人感兴趣的,但是与仅忽略最低位相比,这还意味着使用附加运算和/或存储器。
[0177]
已经发现,在通过使用ccalf改进的vtm-5.0的上下文中,在进行滤波运算时仅保持样本值的6个最高位不会显著影响编码效率。例如,在10位的内部位深的情况下,可以忽略样本值的4个最低位,而对ccalf效率的影响较小。保持样本值的少于6个最高位是可能的,但是降低了ccalf的编码效率。例如,在进行滤波运算时保持样本值的4个最高位(即,移除10位样本上的6个最低位)仍然提供令人惊讶的感兴趣增益(平均而言,与使用10位样本上的全样本精度相比,保持了大约88%的ccalf增益)。而与使用全样本精度相比,保持5个最高位允许保持大约95%的ccalf增益。在6个最高位的情况下,结果是大约98%的增益被保留。保持多于6个最高位仅略微增加了结果。例如,利用全样本精度,保持7或8个最高位(即,移除10位内部位深的最低3或2位)提供了大约99%的ccalf增益的结果。
[0178]
在第四变型例中,如等式(2)中所表达的ccalf滤波经修改以更接近于vtm-5.0中的非线性alf(nlalf)的滤波公式:
[0179][0180]
其中,仍然是滤波器系数,但是与表示滤波器形状中在参考样本的偏移(ui,vi)处的样本与具有位置(x,y)的参考样本i
(x,y)
(401中具有灰色虚线背景的框)的值之间的差值的数字相乘。表示差值的数字可以是梯度,其等同于与参考样本相邻的样本的差。使用梯度将表示与参考样本相邻和不相邻这两者的样本的差的标准化。
[0181]
等式(12)可以以与在等式(3)中用整数运算实现等式(2)的方式相同的方式用整数运算实现:
[0182][0183]
其中《《是整数左逐位移位运算,》》是整数右逐位移位运算,并且b是滤波器系数的定点表示的小数精度(通常为10位)(参见图4-b);并且和i
(x,y)
是整数精度等于编解码器的内部位深(通常为10位,参见图4-c)的整数样本值。当使用该公式时,与的逐位表示相比,将指示符号的一个位加到的逐位表示中。这在图6-a中示出。在一些替代方案中,总是等于零并且不在位流中编码。在其他替代方案中,不一定等于零,并且乘法被处理为不使用到参考样本的差的其他变型例中的乘法。
[0184]
图6-a示出当存储在16位整数存储器空间601(或寄存器)中时、针对vtm-5.0中的10位内部位深、等式(13)中的样本值的差的逐位存储器表示。叉框表示未使用的位。
[0185]
在硬件设计观点中,与参考样本的差为无成本,这是因为其已针对亮度样本的
nlalf滤波而存在/计算(ccalf滤波器的滤波器形状包括在nlalf中的亮度的滤波器的形状中)。
[0186]
使用等式(3)的滤波时的ccalf的编码增益与使用等式(13)的滤波时相当。
[0187]
使用该表示的一个优点是,为了减少乘法的输入的位数,可以对差值进行裁剪,以保持在需要较少位来表示的范围内:
[0188][0189]
其中k是裁剪函数,例如:
[0190]
k(d,c)=max(-c,min(c,d))(15)
[0191]
或者等效地:
[0192]
k(d,c)=min(c,max(-c,d));并且其中c是裁剪参数,并且d是表示差的数字。应当注意,该表达式与vtm-5.0中的非线性alf之间的特定差异在于,裁剪参数c对于每个样本位置是相同的,并且其值是固定的且经选择以约束用于存储作为乘法的输入的的位数,而在非线性alf中时,裁剪参数c针对各个样本位置而变化,并且其值与滤波器系数一起传输(在aps中)。
[0193]
已经发现c的特别有利的固定值为2
ibitdepth-2-1或者2
ibitdepth-3-1,其中ibitdepth是编解码器的内部位深(即,用于表示样本值的位数)。例如,在10位内部位深的情况下,c的良好值是255或127。然后,该示例性裁剪运算允许在乘法的输入中节省两个或三个位。
[0194]
可以使用较小的c值,但是将倾向于降低ccalf的编码效率,而较高的值降低由裁剪处理提供的简化效率。因此,裁剪参数c的一般化是2
ibitdepth-n-1,其中n是小于ibitdepth的整数。对于较低的n值,编码效率的降低较低,但与简化相关联的优点也较低;对于较高的n值,情况相反。
[0195]
图6-b给出当存储在16位整数存储器空间602(或寄存器)中时、针对10位内部位深和c=255的用于存储等式(14)中的经裁剪差的逐位存储器表示的示例。
[0196]
第四变型例可以与第三变型例组合,以忽略裁剪差以忽略裁剪差的较低精度位。特别有利的组合是保持与第二变型例中相同数量的较低位移除,使得ccalf编码增益不受显著影响。该示例由图6-c示出。
[0197]
图6-c提供在10位的内部位深、c=255且忽略4个最低位的情况下用于存储的逐位存储器表示的示例。然后,在乘法的输入处,仅需要603的四个剩余的精度位加上用于符号的一个位来表示而不是10个位。这表示显著节省所计算的位的数量的,并且得到了更简单的实现。
[0198]
在一些实施例中,进行四个变型例的组合。例如,组合变型例一、二、三和可选地四,使得乘法运算的输出结果可以在10个精度位加上一个符号位上表示,以使得乘法结果的总和可以在最多15位加上一个符号位上表示(因此可表示/可存储在16位寄存器或存储
器空间中)。这样的实施例特别适合于硬件实现。图7-a和图7-b示出在最终舍入和位移位以将结果加到色度样本值之前、滤波运算的中间表示(乘法输出)和最终表示(求和结果)的示例。
[0199]
图7-a提供在如下情况下用于存储的逐位存储器表示的示例:仅保持样本值的8个最高位(例如,如图5-d所示),保持针对系数的小数部分的7位精度,并且系数的范围为[-0.03125;0.03125[或]-0.03125;0.03125[(例如,如图5-c所示,2位加上符号位来存储它们)。然后,乘法结果可以存储在10位加上一个符号位上。
[0200]
使用用于应对不同亮度位深ibdl和色度位深ibdc的等式(4)、以及db=ibdl-kb的等式(11),其中kb等于针对亮度样本值保持的最高精度位的数量(例如,在该示例中kb=8),等式(3)可以重写为:
[0201][0202]
其中b3=db (ibdl-ibdc)=2.ibdl-ibdc-kb,并且b4=bdpc-b3,其中,bdpc是系数的小数部分的位数(例如,在该示例中,对于系数的小数部分的7位精度,bdpc=7),并且是系数的整数表示(即,在该示例中,表示在范围[-0.03125;0.03125[或]-0.03125;0.03125[中的定点值的整数值,在该示例中,整数值取在整数范围[-4;3]或者[-3;3]中的值)。对于kb≤2.ibdl-ibdc≤bdpc kb-1,该等式有效。当kb≤2.ibdl-ibdc且2.ibdl-ibdc=bdpc kb(即b4=0)时,等式(16)可以替换为:
[0203][0204]
当kb≤2.ibdl-ibdc且2.ibdl-ibdc>bdpc kb时,等式(16)可以替换为:
[0205][0206]
并且当2.ibdl-ibdc<kb时,等式(16)可以替换为:
[0207][0208]
在给定示例中,其中kb=8,对于10位亮度和色度位深(即,ibdl=ibdc=10),等式(16)可以写为:
[0209][0210]
这使得各个系数由2位和符号位表示,并且各个样本由减少数量的8位表示,并且可选地(取决于实现/设计选择)符号位(等于零),并且因此乘法结果可以由8位和符号表示。
[0211]
图7-a对于在如下情况下提供用于存储的逐位存储器表示的示例也有效:仅保持样本值的6个最高位(例如,具有比图5-d中多两个的更高位),保持用于系数的小数部分的7位精度,并且系数的范围为[-0.125;0.125[或]-0.125;0.125[(即,4位
加上符号位来存储它们(当例如,具有比图5-c中多两个的更高位时))。乘法结果然后可以存储在10位加上一个符号位上。
[0212]
在该给定示例中,kb=6。对于10位亮度和色度位深(即,ibdl=ibdc=10),等式(16)可以写为:
[0213][0214]
图7-b提供在如下情况下用于计算和存储求和运算的逐位存储器表示的示例:如图7-a所解释的那样表示和计算应当理解,这是针对滤波器根据图4-a具有18个乘法结果的17个不同加法的情况。17个加法的最坏情况(当考虑存储定点值的10位整数值时)是整数值-2
10
=-1024的18倍,即-18432,其可以存储在15位和符号位上,意味着加法结果可以使用15位和符号位来表示。
[0215]
在另一(第五)变型例中,修改图4-a的滤波器模式,使得在滤波处理中使用16个样本或更少样本来代替18个样本。因此,在求和运算中,可以节省一个位。此外,由于一些乘法运算被移除,因此具有简化滤波计算的优点。例如,在图4-b中,将仅使用28个精度位和一个符号位来代替使用29个精度位和一个符号位,并且在图7-b中,将仅使用14个精度位来代替使用15个精度位。在使用该第五变型例的一些替代方案中,在加法运算中节省的位用于增加乘法结果的精度。例如,在图7-a中,将使用11个精度位来代替10个精度位。在一个替代方案中,10个精度位的小数部分增加一个位(从7位到8位)。这可以通过在系数值的小数部分中加一个较低精度位来实现。例如,在图5-c中,将再次使用在最右边使用的位的右边的位。可替代地,如果使用第三变型例,则这可以通过对样本值多使用一个精度位来实现。例如,在图5-d中,将再次使用在最右边使用的位的右边的位。在第二替代方案中,10个精度位的整数部分增加一个位(从3位到4位)。这是通过将一个更高精度的位加到系数值(即,增加可能系数值的范围)来实现的。例如,在图5-c中,将再次使用在最左边使用的位的左边的位。
[0216]
当使用具有大小固定的寄存器的现有硬件时,这些第五变型例替代方案是特别令人感兴趣的,并且其中每当结果安置(fit)在寄存器(例如,对于作为指令运行的、用于cpu处理暗示预定义大小的寄存器或存储器位置的操作的软件实现)时,乘法的成本是相同的。当硬件设计使用现有的预定义电路模板来实现固定大小的操作(例如,为了开发速度/成本的问题)时,无论是否不使用一些位,这也是令人感兴趣的。然后,在这两种情况下,如果都例如用16位输入和32位输出来实现,例如10位或11位上的乘法的成本(在执行时延方面和/或在用于实现的逻辑门的数量方面)不改变,但是ccalf的编码增益在第二版本的情况下略好,因为它多使用一个精度位。
[0217]
在替代方案中,在滤波中使用8个样本(或更少),使得在求和运算中可以节省2位(或更多),参见例如图7-f(其中使用8个样本(节省2位))或者图7-g(其中仅使用4个样本(节省3位))。在该替代方案的变型例中,在求和中节省的2位(或更多)在乘法的输入之间重新分配,以例如在滤波处理期间具有更高的精度以及完全使用16位寄存器的精度。
[0218]
图7-c提供针对滤波仅使用16个样本的滤波器模式706的一个示例。利用该滤波器模式,滤波运算变为:
[0219][0220]
该样本选择可以被描述为“菱形”形状,其中各个样本具有相对于参考样本的位置(x u,y v),其中u∈[-2,2]且v∈[-1,2],并且当|u|=2时,v∈[0,1]。
[0221]
图7-d提供针对滤波使用16个样本的滤波器模式707的另一示例。当使用yuv 4:2:0视频表示时,该模式比图7-c中的模式更适合,其中色度样本子采样位置位于707中的样本5、样本6、样本9和样本10的位置的中间。根据一个变型例,两个或多于两个滤波器模式是可用的,并且根据yuv 4:2:0中的色度子采样来选择一个滤波器模式。在一个替代方案中,在位流中(例如,在参数集中(例如,sps或pps))提供/用信号通知滤波器模式索引。利用该滤波器模式,滤波运算变为:
[0222][0223]
该样本选择可以描述为各个样本具有相对于参考样本的位置(x u,y v),其中u∈[-1,2]且v∈[-1,2]。
[0224]
图7-e提供针对滤波使用12个样本的滤波器模式708的示例。比图7-c中的模式相比,该模式允许访问更少的样本,并且在位流中编码更少的系数,但是不允许进一步减少在求和运算中使用的位数。利用该滤波器模式,滤波运算变为:
[0225]
[0226]
该样本选择可以被描述为各个样本具有相对于参考样本的位置(x u,y v),其中u∈[-1,1]且v∈[-1,2]。
[0227]
图7-f提供针对滤波仅使用8个样本的滤波器模式709的示例。与图7-c中的图像相比,该模式使得能够将求和运算中使用的位数进一步减少一。然后,与图4-a中的模式相比,允许减少两位。利用该滤波器模式,滤波运算变为:
[0228][0229]
该样本选择可以被描述为“菱形形状”,其中各个样本具有相对于参考样本的位置(x u,y v),其中u∈[-1,1]且v∈[-1,2],并且当|u|=1时,v∈[0,1]。
[0230]
图7-g提供针对滤波仅使用4个样本的滤波器模式710的示例。与图7-f中的模式相比,该模式使得能够进一步将求和运算中使用的位数减少一。然后,与图4-a中的模式相比,允许减少三位。利用该滤波器模式,滤波运算变为:
[0231][0232]
该样本选择可以被描述为各个样本具有相对于参考样本的位置(x u,y v),其中u和v两者都属于[0,1]。
[0233]
在一些其他变型例中,加法的成本基本上为零。乘法输入被限制,使得乘法输出/结果是16位的有符号数(即,15个精度位加上1个符号位)。然后,如果10位用于样本值,则系数值以给定精度的情况下限制在给定范围内,使得可以在5位加上一个符号位上表示系数值。在这些变型例中的一些中,在16位寄存器上进行乘法运算。
[0234]
在一个实施例中,在位流中(例如,在参数集(例如,aps、sps或pps)中,或者在片头部中)用信号通知系数的小数精度作为第一精度信息。
[0235]
在一个实施例中,在位流中(例如,在参数集(例如,aps、sps或pps)中,或者在片头部中)用信号通知系数的范围(或可能范围的集合中的索引)作为第二精度信息。
[0236]
在一个实施例中,在位流中(例如,在参数集(例如,aps、sps或pps)中,或者在片头部中)用信号通知样本值的保留位的数量(即,kb)或替代地死位的数量(即,db)作为第三精度信息。
[0237]
在一个实施例中,在位流中(例如,在参数集(例如,aps、sps或pps)中,或者在片头部中)用信号通知第一精度信息、第二精度信息和/或第三精度信息中的任一个的组合。
[0238]
在一个变型例中,在位流中用信号通知的第一精度信息、第二精度信息和/或第三精度信息中的任一个的这种组合的允许值将保证可以使用位的固定最大数量(例如16)来计算乘法运算的最坏情况。在替代方案中,最坏情况还考虑在加法运算期间使用的位的最大数量。
[0239]
在一个实施例中,用信号通知第一精度信息、第二精度信息和/或第三精度信息中的任一个的组合的可能值的集合中的索引。
[0240]
在一个变型例中,定义这样的集合以保证可以使用位的固定最大数量(例如16)来计算乘法运算的最坏情况。在替代方案中,最坏情况还考虑在加法运算期间使用的位的最大数量。
[0241]
在第一精度信息、第二精度信息和/或第三精度信息中的任一个的组合包括第一精度信息和第二精度信息(即,小数精度和保持的范围)的实施例的替代方案中,替代方案是用信号通知浮点表示的尾数大小(以位数计)和固定指数。
[0242]
在一个替代方案中,代替将定点表示用于滤波器系数,使用特定浮点表示,这保证使用有限位数运算来计算。换句话说,针对各个系数索引用信号通知第一精度信息、第二精度信息和/或第三精度信息中的任一个的组合。
[0243]
应当理解,在所描述的示例、变型例和/或实施例中,取决于所使用的样本值的位深和精度,系数范围可以向上和/或向下移位(即,乘以2的幂),同时将系数的表示的最低位移位相同的量(以保持相同的精度),以提供等效的数学结果。即,系数值(或样本值)的[范围]被缩放了任何样本值(或系数值的[范围])缩放的逆量:
[0244][0245]
这与逐位移位相同,因为左逐位移位b等效于乘以2b,并且右移位大致等效于整数除以2b(不同之处在于,对于负数,对于左移,舍入朝向负无穷大,而对于整数除法,舍入朝向0)。
[0246]
还应当理解,虽然已经在“滤波期间”经由上述逐位运算进行了样本值和/或滤波器系数的逐位表示的简化,但是也可以在滤波之前单独地预处理这些值。
[0247]
用信号通知
[0248]
图3中的输入ccalf参数305和306可以包括用于以不同粒度级启用/禁用ccalf的标志。下面提供了标志的用信号通知的示例。
[0249]
在某些实施例中,在参数集中用信号通知一个标志:例如序列参数集(sps)或图片参数集(pps)。该标志使得能够在序列级或图片级激活或不激活ccalf工具。当ccalf工具在图片中活动时,在片头部中每个色度分量用信号通知一个标志。这使得能够启用或禁用片中每个色度分量的ccalf。当在片中启用ccalf(即,在至少一个色度分量上启用cclaf)时,对于启用ccalf的各个色度分量,在片的各个ctu的ctu数据中编码ccalf_ctb_flag_cb[x][y](针对cb分量)或ccalf_ctb_flag_cr[x][y](针对cr分量)标志,其中x、y是图片中的水平和垂直ctu坐标/索引。如果在色度ctb中启用或禁用ccalf,则标志启用用信号通知。当在色度ctb中启用ccalf时,使用ctb亮度样本经由ccalf色度样本进行校正/滤波(例如,如上文所论述)。
[0250]
使用cabac(上下文自适应二进制算术编码)用信号通知标志,其中每色度分量3个cabac上下文。对于具有索引componentldx的给定色度分量,通过对在属于相同片的顶部([x][y-1])和左侧([x-1][y])ctu中活动的ccalf_ctb_flag_cb(针对cb分量)或ccalf_ctb_flag_cr(针对cr分量)(当它们存在/可用时)的数量进行计数,并且使用该值作为上下文索引来选择上下文。
[0251]
表1中给出了用信号通知ccalf_ctb_flag_cb[x][y]和ccalf_ctb_flag_cr[x][y]的示例,使用与对应于vtm-5.0的通用视频编码(草案5)中相同的标记和惯例。
[0252][0253]
表1coding_tree_unit()句法
[0254]
根据实施例,为了能够专门针对片来适配和传输滤波器系数,并且如通常利用片参数进行的,在片头部中用信号通知ccalf滤波器的系数。如果ccalf被指示为对于给定色度分量是活动的,则在位流中/从位流顺序地编码/解码相应滤波器的各个系数。
[0255]
ccalf的系数通常使用哥伦布可变长度码来编码。然而,当实现表示上述系数的位的减少时,可以简化编码。具体地,由于用于存储系数值的位数减少,因此可以使用更易于解析而不损失编码效率的编码方法。
[0256]
特定地,哥伦布编码需要用信号通知“可调谐参数”(m),以正确地解码系数;这增加了位流开销。本发明涉及在不参考任何其他参数的情况下在片头部中直接用信号通知系数。换句话说,使用固定表示(即,不参考“可调谐参数”)对系数进行编码。这可以被描述为“无前缀”或“无逗号”,因为码字是没有分隔符的单个元素(推断的或明确编码的)。
[0257]
在组合上面讨论的第一变型例和第二变型例时特别适合的第一替代方案中,系数值的已使用/有效位被如此存储在位流中而没有任何压缩(即,固定位数来表示码,无论值是什么)。作为示例,如果系数如图5-c中所示,则系数可以存储在位流中的三个位上:例如,符号位后面跟着两个小数精度位。
[0258]
在第二替代方案中,使用一种有符号一元编码来降低低幅度系数的成本。位流中的第一位指示系数是否为零,然后如果系数不为零,位指示系数的符号,然后等于1的位序列指示系数的幅度。等于1的位数等于“系数的整数表示”的绝对值减1。系数的整数表示是由503中的整数的位表示的整数值。使用“减1”,因为已经编码了等于零的信息。然后,如果
绝对值低于最大可能/授权值,则等于零的位指示该数量的用信号通知的结束。这对应于绝对值减1的一元编码。该表示的解码处理可以通过表2中描述的算法来总结。
[0259][0260]
表2第二替代方案的系数解码算法
[0261]
在使用可能系数值的不对称范围的一些替代方案中,如表2中的情况可见,当“ccalf_max_coeff_value”不等于
“‑
ccalf_min_coeff_value”时,数量的最大可能/授权值对于负数和正数是不同的。例如,如果使用图5-c的表示,并且如果可能系数值的范围是[-0.03125;0.03125](即,[-0.03125;0.0234375],对于负数,最大可能/授权值为4(因为-0.03125由整数-4表示),对于正数,最大可能/授权值为3(因为0.0234375由整数3表示)。在该示例中,第一位等于1意味着该数字为零,并且符号位等于1意味着该数字为负数。然后位流中的系数表示为:“01111”(即,-4=ccalf_min_coeff_value)针对-0.03125,“01110”(即-3)针对-0.0234375,“0110”(即-2)针对-0.015625,“010”(即-1)针对-0.0078125,“1”针对0.0,“000”(即1)针对0.0078125,“0010”(即2)针对0.015625,以及“0011”(即,3=ccalf_max_coeff_value)针对0.0234375。在一些替代方案中,第一位等于1可以意味着该数字非零。在一些替代方案中,符号位等于1可以意味着该数字为正。在一些替代方案中,数字的一元编码可以是等于0的位随后是等于1的位的序列(如果数字低于最大值)。
[0262]
在第三替代方案中,位流首先提供系数的绝对值的整数表示的一元编码。如果是非零的,则随后是符号位。表3中的算法描述了针对该表示的解码处理的示例。在该第三替代方案中,在对系数的绝对值进行解码之前,符号是未知的。然后,用于一元编码的最大值对于正值和负值是相同的(表3中的ccalf_max_coeff_absolute_value)。作为示例,图5-c的表示与设置为等于[-0.0234375;0.0234375](即,ccalf_max_coeff_absolute_value=3)的可能系数值范围一起使用。然后,位流中系数的表示为:“1111”(即-3)针对-0.0234375,“1101”(即-2)针对-0.015625,“101”(即-1)针对-0.0078125,“0”针对0.0,“100”(即1)针对0.0078125,“1100”(即2)针对0.015625,以及“1110”(即3)针对0.0234375。
[0263][0264]
表3第三替代方案的系数解码算法
[0265]
在一些变型例中,在aps(或另一参数集)中用信号通知ccalf滤波器的系数。当片头部中slice_ccalf_enable_flag_cb等于1时,片头部还提供aps(或其他参数集)的aps(或其他参数集)索引/标识符,其中必须针对cb色度分量检索ccalf滤波器的滤波器系数。当片头部中slice_ccalf_enable_flag_cr等于1时,片头部还提供aps(或其他参数集)的aps(或其他参数集)索引,其中必须针对cr色度分量检索ccalf滤波器的滤波器系数。当使用例如图4-a中所示的滤波器模式时,存在于位流中的滤波器系数的数量小于滤波器形状中所使用的样本的数量,因为一些系数由若干样本位置共用。
[0266]
本发明实施例的实现
[0267]
一个或多于一个前述实施例可以以进行一个或多于一个前述实施例的方法步骤的编码器或解码器的形式来实现。下面的实施例示出这种实现。
[0268]
例如,根据前述任何实施例的自适应环路滤波器可以用于由图8中的编码器进行的后滤波9415或由图9中的解码器进行的后滤波9567。
[0269]
图8示出根据本发明实施例的编码器的框图。编码器由连接的模块表示,各个模块适于例如以由装置的中央处理单元(cpu)执行的编程指令的形式实现根据本发明的一个或多于一个实施例的实现对图像序列的图像进行编码的至少一个实施例的方法的至少一个相应步骤。
[0270]
由编码器9400接收数字图像原始序列i0至in 9401作为输入。各个数字图像由样本集合(有时也称为像素(在下文中,它们称为像素))表示。在实现编码处理之后,位流9410由编码器9400输出。位流9410包括诸如片等的多个编码单元或图像部分的数据,各个片包括用于发送用于对片进行编码的编码参数的编码值的片头部和包括编码视频数据的片主体。
[0271]
由模块9402将输入数字图像i0至in 9401分割成像素块。块与图像部分相对应并且可以是可变大小(例如,4
×
4、8
×
8、16
×
16、32
×
32、64
×
64、128
×
128个像素并且也可以考虑若干矩形块大小)。针对各个输入块选择编码模式。提供了两类编码模式:基于空间预测编码的编码模式(帧内预测)和基于时间预测的编码模式(帧间编码、合并(merge)、跳过(skip))。测试了可能的编码模式。
[0272]
模块9403实现帧内预测处理,其中由从要编码的给定块的邻近的像素计算的预测器来预测所述要编码的块。如果选择了帧内编码,则对所选择的帧内预测器的指示以及给定块与其预测器之间的差进行编码以提供残差。
[0273]
时间预测由运动估计模块9404和运动补偿模块9405实现。首先,从参考图像9416的集合中选择参考图像,并且由运动估计模块9404选择参考图像的一部分(也称为参考区域或图像部分,其是与要编码的给定块最接近的区域(在像素值相似度方面最接近))。然后运动补偿模块9405使用所选择的区域预测要编码的块。由运动补偿模块9405计算所选择的参考区域和给定块之间的差(也称为残差块/数据)。使用运动信息(例如,运动矢量)来指示所选择的参考区域。
[0274]
因此,在这两种情况下(空间和时间预测),当不处于skip模式时,通过从原始块减去预测器来计算残差。
[0275]
在由模块9403实现的帧内(intra)预测中,预测方向被编码。在由模块9404、9405、9416、9418、9417实现的帧间预测中,至少一个运动矢量或用于识别这种运动矢量的信息(数据)被编码以用于时间预测。
[0276]
如果选择了帧间预测,则对与运动矢量和残差块相关的信息进行编码。为了进一步降低位率,假设运动是均匀的,通过相对于运动矢量预测器的差来编码运动矢量。通过运动矢量预测和编码模块9417从运动矢量场9418获得来自运动信息预测器候选集合的运动矢量预测器。
[0277]
编码器9400还包括选择模块9406,该选择模块9406用于通过应用诸如率失真准则等的编码成本准则来选择编码模式。为了进一步减少冗余,变换模块9407对残差块应用变换(诸如dct等),然后所获得的变换数据由量化模块9408进行量化,并由熵编码模块9409进行熵编码。最后,当不处于skip模式并且所选择的编码模式需要对残差块进行编码时,将正被编码的当前块的编码残差块插入到位流9410中。
[0278]
编码器9400还进行编码图像的解码,以生成用于后续图像的运动估计的参考图像(例如,参考图像/图片9416中的参考图像)。这使得接收位流的编码器和解码器能够具有相同的参考帧(例如,使用重建图像或重建图像部分)。逆量化(“去量化”)模块9411进行量化数据的逆量化(“去量化”),然后由逆变换模块9412进行逆变换。帧内预测模块9413使用预测信息来确定针对给定块使用哪个预测器,并且运动补偿模块9414实际上将由模块9412获得的残差添加到从参考图像9416的集合获得的参考区域。然后,由模块9415应用后滤波来对像素的重建帧(图像或图像部分)进行滤波,以获得参考图像9416的集合的另一参考图像。
[0279]
图9示出根据本发明实施例的可用于从编码器接收数据的解码器9560的框图。解码器由所连接的模块表示,各个模块适于例如以由装置的cpu执行的编程指令的形式实现由解码器9560实现的方法的相应步骤。
[0280]
解码器9560接收位流9561,位流9561包括编码单元(例如,对应于图像部分、块或编码单元的数据),各个编码单元由包含与编码参数有关的信息的头部和包含编码视频数据的主体构成。如关于图8所说明的,针对给定图像部分(例如,块或cu)在预定位数上对编码视频数据进行熵编码,并且对运动信息(例如,运动矢量预测器的索引)进行编码。所接收的编码视频数据由模块9562进行熵解码。残差数据然后由模块9563去量化,然后由模块9564应用逆变换以获得像素值。
[0281]
指示编码模式的模式数据也被熵解码,并且基于该模式,对图像数据的编码块(单元/集合/组)进行帧内类型解码或帧间类型解码。在帧内模式的情况下,帧内预测模块9565
基于位流中指定的帧内预测模式来确定帧内预测器(例如,可以使用位流中提供的数据来确定帧内预测模式)。如果模式是帧间模式,则从位流提取/获得运动预测信息,以找到(识别)编码器使用的参考区域。例如,运动预测信息包括参考帧索引和运动矢量残差。通过运动矢量解码模块9570将运动矢量预测器添加到运动矢量残差以获得运动矢量。
[0282]
运动矢量解码模块9570对通过运动预测编码的各个图像部分(例如,当前块或cu)应用运动矢量解码。一旦获得了当前块的运动矢量预测器的索引,则与图像部分(例如,当前块或cu)相关联的运动矢量的实际值可以被解码,并且用于通过模块9566来应用运动补偿。从参考图像9568的集合提取/获得由解码运动矢量指示的参考图像部分,使得模块9566可以进行运动补偿。用解码的运动矢量更新运动矢量场数据9571,以用于预测随后解码的运动矢量。
[0283]
最后得到解码块。在适当的情况下,由后滤波模块9567应用后滤波。最终获得并由解码器9560提供解码视频信号9569。
[0284]
图10例示可以实现本发明的一个或多于一个实施例的数据通信系统。数据通信系统包括传输装置(在这种情况下是服务器9201),其可操作以经由数据通信网络9200将数据流的数据包传输至接收装置(在这种情况下是客户终端9202)。数据通信网络9200可以是广域网(wan)或局域网(lan)。这种网络可以是例如无线网络(wifi/802.11a或802.11b或802.11g)、以太网网络、互联网网络或由若干不同网络组成的混合网络。在本发明的特定实施例中,数据通信系统可以是数字电视广播系统,其中服务器9201将相同的数据内容发送到多个客户端。
[0285]
由服务器9201提供的数据流9204可以由表示视频和音频数据的多媒体数据组成。在本发明的一些实施例中,音频和视频数据流可以分别由服务器9201使用麦克风和照相机来捕获。在一些实施例中,数据流可以存储在服务器9201上或由服务器9201从其他数据提供方接收,或在服务器9201处生成。服务器9201设置有用于对视频和音频流进行编码的编码器,特别是用以提供用于传输的压缩位流,该压缩位流是作为编码器的输入所呈现的数据的更紧凑表示。为了获得更好的传输数据的质量与传输数据的量的比率,可以例如根据高效视频编码(hevc)格式或h.264/高级视频编码(avc)格式或多用途视频编码(vvc)格式来压缩视频数据。客户端9202接收所传输的位流,并且解码重建的位流,以在显示装置上再现视频图像和利用扬声器再现音频数据。
[0286]
尽管在该实施例中考虑了流式传输场景,但将理解,在本发明的一些实施例中,可以使用例如介质存储装置(诸如光盘等)来进行编码器与解码器之间的数据通信。在本发明的一个或多于一个实施例中,视频图像可以与表示要应用到图像的重建像素的补偿偏移的数据一同传输,以在最终图像中提供经滤波的像素。
[0287]
图11示意性地例示被配置为实现本发明的至少一个实施例的处理装置9300。处理装置9300可以是诸如微计算机、工作站、用户终端或轻型便携式装置等的装置。装置/设备9300包括通信总线9313,通信总线9313连接到:
[0288]-表示为cpu的中央处理单元9311,诸如微处理器等;
[0289]-表示为rom的只读存储器9307,其用于存储操作装置9300和/或实现本发明的计算机程序/指令;
[0290]-表示为ram的随机存取存储器9312,其用于存储本发明实施例的方法的可执行代
码,以及适于记录用于实现根据本发明的实施例的对数字图像序列进行编码的方法和/或对位流进行解码的方法所需的变量和参数的寄存器;以及
[0291]-连接至通信网络9303的通信接口9302,通过该通信接口传输或接收要处理的数字数据。
[0292]
可选地,设备9300还可以包括以下组件:
[0293]-诸如硬盘等的数据存储部件9304,其用于存储实现本发明的一个或多于一个实施例的方法的计算机程序以及在实现本发明的一个或多于一个实施例期间所使用或产生的数据;
[0294]-用于盘9306(例如存储介质)的盘驱动器9305,该盘驱动器9305适于从盘9306读取数据或将数据写入所述盘9306;或者,
[0295]-屏幕9309,其用于借助于键盘9310、触摸屏或任何其他指示/输入装置来显示数据和/或用作与用户交互的图形界面。
[0296]
设备9300可以连接到诸如数字照相机9320或麦克风9308等的各种外围设备,其各自连接到输入/输出卡(未示出)以向设备9300提供多媒体数据。
[0297]
通信总线9313提供设备9300中所包括的或连接到设备9300的各种元素之间的通信和互操作性。总线的表示不是限制性的,并且特别地,中央处理单元9311可操作地直接或者借助于设备9300的其他元素将指令通信到设备9300的任何元件。
[0298]
盘9306可以由诸如可重写或不可重写的致密盘(cd-rom)、zip盘或存储卡等的任何信息介质代替,并且一般而言,由微计算机或处理器可以进行读取的信息存储部件代替,该盘9306集成到或不集成到设备中、可能可移动并且适于存储一个或多于一个程序,该一个或多于一个程序的执行使得能够实现根据本发明的对数字图像序列进行编码的方法和/或对位流进行解码的方法。
[0299]
可执行代码可以存储在只读存储器9307中、硬盘9304上或可移动数字介质(诸如,例如如前述的盘9306等)上。根据变型例,程序的可执行代码可以经由接口9302借助于通信网络9303来接收,以在执行之前存储在设备9300的存储部件之一(例如硬盘9304)中。
[0300]
中央处理单元9311适于控制和指导执行根据本发明的一个或多于一个程序的指令或软件代码的部分、存储在上述存储部件之一中的指令的执行。在通电时,存储在非易失性存储器中(例如,在硬盘9304、盘9306上或在只读存储器9307中)的一个或多于一个程序被传递到随机存取存储器9312中(其然后包含一个或多于一个程序的可执行代码)以及用于存储实现本发明所必需的变量和参数的寄存器。
[0301]
在该实施例中,设备是使用软件来实现本发明的可编程设备。然而,可替代地,本发明可以以硬件(例如,以专用集成电路(asic)的形式)来实现。
[0302]
还应理解,根据本发明的其他实施例,在诸如计算机、移动电话(蜂窝电话)、平板或能够向用户提供/显示内容的任何其他类型的装置(例如,显示设备)等的用户终端中提供根据上述实施例的解码器。根据又一实施例,在摄像设备中提供根据上述实施例的编码器,该摄像设备设备还包括用于拍摄和提供内容以供编码器进行编码的照相机、摄像机或网络照相机(例如,闭路电视或视频监视照相机)。以下参见图12和13提供两个这样的实施例。
[0303]
图12是例示包括网络照相机9452和客户端设备9454的网络照相机系统9450的图。
[0304]
网络照相机9452包括摄像单元9456、编码单元9458、通信单元9460和控制单元9462。网络照相机9452和客户端设备9454经由网络9200相互连接以能够彼此通信。摄像单元9456包括镜头和图像传感器(例如,电荷耦合器件(ccd)或互补金属氧化物半导体(cmos)),并捕获对象的图像并基于该图像生成图像数据。该图像可以是静止图像或视频图像。摄像单元还可以包括分别适于(光学地或数字地)变焦或平摇的变焦部件和/或平摇部件。编码单元9458通过使用在前述实施例中说明的所述编码方法来对图像数据进行编码。编码单元9458使用在前述实施例中说明的编码方法中的至少之一。又例如,编码单元9458可以使用在前述实施例中说明的编码方法的组合。
[0305]
网络照相机9452的通信单元9460将由编码单元9458编码的经编码的图像数据传输至客户端设备9454。此外,通信单元9460还可以接收来自客户端设备9454的命令。命令包括用于设置用于编码单元9458的编码的参数的命令。控制单元9462根据通信单元9460接收到的命令或用户输入来控制网络照相机9452中的其他单元。
[0306]
客户端设备9454包括通信单元9464、解码单元9466和控制单元9468。客户端设备9454的通信单元9464可以向网络照相机9452传输命令。此外,客户端设备9454的通信单元9464从网络照相机9452接收经编码的图像数据。解码单元9466通过使用在前述实施例中的一个或多于一个中说明的所述解码方法来对经编码的图像数据进行解码。又例如,解码单元9466可以使用在前述实施例中说明的解码方法的组合。客户端设备9454的控制单元9468根据由通信单元9464接收的用户操作或命令来控制客户端设备9454中的其他单元。客户端设备9454的控制单元9468还可以控制显示设备9470以显示由解码单元9466解码的图像。
[0307]
客户端设备9454的控制单元9468还控制显示设备9470以显示用于指定网络照相机9452的参数(例如用于编码单元9458的编码的参数)的值的gui(图形用户界面)。客户端设备9454的控制单元9468还可以根据对显示设备9470所显示的gui的用户操作输入来控制客户端设备9454中的其他单元。客户端设备9454的控制单元9468还可以根据对显示设备9470所显示的gui的用户操作输入来控制客户端设备9454的通信单元9464,以将用于指定网络照相机9452的参数的值的命令传输至网络照相机9452。
[0308]
图13是例示智能电话9500的图。智能电话9500包括通信单元9502、解码/编码单元9504、控制单元9506和显示单元9508。
[0309]
通信单元9502经由网络接收经编码的图像数据。解码/编码单元9504对通信单元9502接收到的经编码的图像数据进行解码。解码单元9504通过使用在前述实施例中的一个或多于一个中说明的所述解码方法来对经编码的图像数据进行解码。解码/编码单元9504还可以使用在前述实施例中说明的编码或解码方法中的至少之一。又例如,解码/编码单元9504可以使用在前述实施例中说明的解码或编码方法的组合。
[0310]
控制单元9506根据通信单元9502接收到的用户操作或命令控制智能电话9500中的其他单元。例如,控制单元9506控制显示单元9508以显示由解码/编码单元9504解码的图像。
[0311]
智能电话还可以包括用于记录图像或视频的图像记录装置9510(例如,数字照相机和相关联的电路)。这样的所记录图像或视频可以在控制单元9506的指令下由解码/编码单元9504进行编码。智能电话还可以包括适于感测移动装置的姿势的传感器9512。这样的传感器可以包括加速度计、陀螺仪、罗盘、全球定位(gps)单元或类似的位置传感器。这样的
传感器2212可以确定智能电话是否改变姿势,并且在编码视频流时可以使用这样的信息。
[0312]
虽然已经参考实施例描述了本发明,但是应当理解,本发明不限于所公开的实施例。本领域技术人员将理解,在不脱离所附权利要求限定的本发明的范围的情况下,可以进行各种改变和修改。本说明书(包括任何所附权利要求、摘要和附图)中公开的所有特征、和/或所公开的任何方法或处理的所有步骤,可以以任何组合进行组合,除了这样的特征和/或步骤中的至少一些相互排斥的组合之外。除非另外明确说明,否则本说明书(包括任何所附权利要求、摘要和附图)中所公开的各个特征可以由用于相同、等同或相似目的的替代特征代替。因此,除非另有明确说明,否则所公开的各个特征仅为通用系列等效或类似特征的一个示例。
[0313]
还应理解,上述比较、确定、评估、选择、执行、进行或考虑的任何结果(例如,在编码或滤波处理期间作出的选择)可以在位流中的数据(例如,指示结果的标志或信息)中指示或可从位流中的数据确定/推断,使得在处理中可以使用所指示或确定/推断的结果,而不是例如在解码处理期间实际进行比较、确定、评估、选择、执行、进行或考虑。
[0314]
在权利要求中,词语“包括”不排除其他元素或步骤,并且不定冠词“a”或“an”不排除多个。仅仅在相互不同的从属权利要求中记载不同特征的事实并不指示这些特征的组合不能被有利地使用。权利要求中出现的附图标记仅作为说明,并且不应对权利要求的范围产生限定作用。
[0315]
在前述实施例中,可以以硬件、软件、固件或其任何组合来实现所描述的功能。如果以软件实现,则功能可以作为一个或多于一个指令或代码存储在计算机可读介质上或通过计算机可读介质而发送,并且可以由基于硬件的处理单元执行。
[0316]
计算机可读介质可以包括计算机可读存储介质,其与诸如数据存储介质等的有形介质或者包括例如根据通信协议来促进将计算机程序从一个地方转移到另一个地方的任何介质的通信介质相对应。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质或者(2)诸如信号或载波等的通信介质。数据存储介质可以是可由一个或多于一个计算机或者一个或多于一个处理器访问以检索用于实现本发明中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
[0317]
作为示例而非限制,这种计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储或其他磁存储装置、闪速存储器或可以用于以指令或数据结构的形式存储期望程序代码并可以由计算机访问的任何其他介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线(dsl)或无线技术(诸如红外、无线电和微波等)从网站、服务器或其他远程源发送指令,则同轴线缆、光纤线缆、双绞线、dsl或无线技术(诸如红外、无线电和微波等)包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬态介质,而是针对非瞬态的有形存储介质。这里使用的盘(disk)和碟(disc)包括致密碟(cd)、激光碟、光碟、数字多功能碟(dvd)、软盘和蓝光碟,其中盘通常以磁性方式复制数据,而碟则通过激光以光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。
[0318]
指令可以由诸如一个或多于一个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其他等效的集成或离散逻辑电路等的一个或多
于一个处理器执行。因此,如这里使用的术语“处理器”可以指任何前述结构或适合于实现这里所述技术的任何其他结构。另外,在一些方面,这里描述的功能可以在被配置为编码和解码的专用硬件和/或软件模块内提供,或结合在组合编解码器中。此外,该技术可以在一个或多于一个电路或逻辑元件中完全实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献