首页 / 专利库 / 视听技术与设备 / 视频编码层 / 用于下一代视频的预测和编码的内容自适应划分

用于下一代视频的预测和编码的内容自适应划分

阅读:508发布:2020-06-03

专利汇可以提供用于下一代视频的预测和编码的内容自适应划分专利检索,专利查询,专利分析的服务。并且描述了与用于预测和编码的内容自适应划分相关联的技术。一种用于 视频编码 中的划分的计算机实现的方法包括:接收 视频 帧 ;将视频帧分割成多个瓦片、编码单元或超 片段 ;针对至少一个瓦片、编码单元或超片段确定 选定 划分技术以用于进行预测或编码划分,其中,所述选定划分技术包括结构化划分技术,其包括二分树划分技术、k‑d树划分技术、二分树划分技术的码本表示或者k‑d树划分技术的码本表示中的至少一个;采用所述选定划分技术将所述至少一个瓦片、编码单元或超片段划分成多个预测分区;以及将与所述多个预测分区相关联的划分指示符或码字编码到比特流当中。,下面是用于下一代视频的预测和编码的内容自适应划分专利的具体信息内容。

1.一种用于视频编码中的划分的计算机实现的方法,其包括:
接收视频
将所述视频帧分割成多个瓦片、编码单元或超片段
针对至少一个瓦片、编码单元或超片段确定选定划分技术以用于进行预测或编码划分,包括:
至少部分地取决于所述视频帧的图片类型来选择所述划分技术,使得I图片是通过使用k-d树划分技术来进行划分的,并且P图片是通过使用二分树划分技术来进行划分的;
其中,所述选定划分技术包括结构化划分技术,其包括所述二分树划分技术、所述k-d树划分技术、所述二分树划分技术的码本表示或者所述k-d树划分技术的码本表示中的至少一个;
采用所述选定划分技术将所述至少一个瓦片、编码单元或超片段划分成多个预测分区;以及
将与所述多个预测分区相关联的划分指示符或码字编码到比特流当中。
2.根据权利要求1所述的方法,还包括:
将所述视频帧分割成两个或更多个区域层,其中,将所述视频帧分割成所述多个瓦片、编码单元或超片段包括将所述视频帧分割成多个超片段,并且其中,至少一个超片段包括所述两个或更多个区域层中的单独的区域层。
3.根据权利要求1所述的方法,其中,将所述视频帧分割成所述多个瓦片、编码单元或超片段包括将所述视频帧分割成多个瓦片。
4.根据权利要求1所述的方法,还包括:
确定与所述多个预测分区相关联的多个预测的分区和相对应的原始像素数据的差异,以生成相对应的多个预测误差数据分区;
确定所述多个预测误差数据分区中的单独的预测误差数据分区需要编码;以及对于需要编码的所述单独的预测误差数据分区:
将所述预测误差数据分区划分成多个编码分区,其中,对所述预测误差数据分区进行划分包括二分树划分。
5.根据权利要求1所述的方法,还包括:
生成与所述多个预测分区的第一单独的预测分区相关联的帧间预测数据;
生成与第二视频帧的第二瓦片、编码单元或超片段的第二多个预测分区的第二单独的预测分区相关联的帧内预测数据;
确定所述多个预测分区和相对应的原始像素数据的差异,以生成相对应的多个预测误差数据分区;
确定所述多个预测误差数据分区中的单独的预测误差数据分区需要编码;
对于需要编码的所述单独的预测误差数据分区:
将所述预测误差数据分区划分成多个编码分区,其中,对所述预测误差数据分区进行划分包括二分树划分;
采用编码分区索引值来对所述多个编码分区编索引;
将所述编码分区和所述编码分区索引值发送至编码控制器;以及
对所述单独的预测误差数据分区的编码分区执行前向变换和量化以生成与所述单独的预测误差数据分区相关联的数据;
将与所述第一单独的预测分区相关联的帧间预测数据、限定所述第一单独的预测分区的数据、与所述第二单独的预测分区相关联的帧内预测数据、限定所述第二单独的预测分区的数据以及与所述单独的预测误差数据分区相关联的数据熵编码到比特流当中。
6.根据权利要求1所述的方法,其中,确定所述选定划分技术包括至少部分地基于所述视频帧的图片类型来确定所述选定划分技术,其中,所述图片类型包括F/B图片,并且其中,所述选定划分技术包括所述二分树划分技术。
7.根据权利要求1所述的方法,其中,确定所述选定划分技术包括至少部分地基于所述至少一个瓦片、编码单元或超片段的特征来确定所述选定划分技术,其中,所述特征包括所述至少一个瓦片、编码单元或超片段中的帧内的预期量,并且其中,在所述帧内块的预期量大于阈值时,所述选定划分技术包括所述k-d树划分技术,并且其中,在所述帧内块的预期量低于阈值时,所述选定划分技术包括所述二分树划分技术。
8.根据权利要求1所述的方法,其中,对所述至少一个瓦片、编码单元或超片段进行划分包括划分约束条件。
9.根据权利要求1所述的方法,还包括:
将所述视频帧分割成两个或更多个区域层,其中,所述两个或更多个区域层包括4像素、8像素或16像素中的至少一个的精确度,其中,所述两个或更多个区域层包括区域边界,其中,将所述视频帧分割成所述多个瓦片、编码单元或超片段包括将所述视频帧分割成多个超片段,其中,对所述视频帧进行分割包括采用16×16像素块的符号运行编码,并且其中,至少一个超片段包括所述两个或更多个区域层的单独的区域层;
对所述区域边界进行编码,其中,对所述区域边界进行编码包括符号运行编码或者生成在瓦片网格上逼近所述区域边界的码本中的至少一个,其中,所述瓦片网格是具有32×
32像素或者64×64像素中的至少一个尺寸的等间隔瓦片网格;
采用预测分区索引值来对所述多个预测分区编索引;
将所述多个预测分区和预测分区索引值发送至编码控制器;
生成与所述多个预测分区中的第一单独的预测分区相关联的帧间预测数据,其中,所述帧间预测数据包括运动矢量数据;
生成与第二视频帧的第二瓦片、编码单元或超片段的第二多个预测分区的第二单独的预测分区相关联的帧内预测数据;
确定与所述多个预测分区相关联的多个预测的分区和相对应的原始像素数据的差异,以生成相对应的多个预测误差数据分区,其中,所述多个预测的分区中的第一预测的分区至少部分地基于参考帧进行预测,所述参考帧包括紧挨着的之前的参考帧、更早的之前的参考帧、未来参考帧、变形参考帧或合成参考帧;
基于所述参考帧来生成针对所述第一预测的分区的参考类型指示符;
基于所述第一预测的分区的预测模式来生成预测模式指示符,其中,所述预测模式从帧间、多重、帧内、跳过、自动或拆分中的至少一个中进行选择;
将所述参考类型指示符和所述预测模式编码到所述比特流当中;
确定所述多个预测误差数据分区中的单独的预测误差数据分区需要编码;
对于需要编码的所述单独的预测误差数据分区:
将所述预测误差数据分区划分成多个编码分区,其中,对所述预测误差数据分区进行划分包括二分树划分;
采用编码分区索引值来对所述多个编码分区编索引;
将所述编码分区和所述编码分区索引值发送至所述编码控制器;以及
对所述单独的预测误差数据分区的编码分区执行前向变换和量化以生成与所述单独的预测误差数据分区相关联的数据;
将与所述第一单独的预测分区相关联的帧间预测数据、限定所述第一单独的预测分区的数据、与所述第二单独的预测分区相关联的帧内预测数据、限定所述第二单独的预测分区的数据、以及与所述单独的预测误差数据分区相关联的数据熵编码到比特流当中;
发送所述比特流;
接收所述比特流;
对所述比特流进行熵解码,以确定与所述第一单独的预测分区相关联的帧间预测数据、限定所述第一单独的预测分区的数据、与所述第二单独的预测分区相关联的帧内预测数据、限定所述第二单独的预测分区的数据、以及与所述单独的预测误差数据分区相关联的数据,其中,所述第一单独的预测分区包括二分树分区,以及所述第二单独的预测分区包括k-d树分区;
至少部分地基于与所述单独的预测误差数据分区相关联的数据来执行反向量化和反向变换,以生成解码的编码分区;
合并解码的编码分区以生成解码的预测误差数据分区;
将第一单独解码的预测的分区加到解码的预测误差数据分区以生成第一重构分区;
装配所述第一重构分区和第二重构分区以生成第一瓦片、第一编码单元或第一超片段中的至少一个;
将解块滤波或质量恢复滤波中的至少一个应用到所述第一瓦片、所述第一编码单元或所述第一超片段,以生成第一最终解码的瓦片、编码单元或超片段;
将所述第一最终解码的瓦片、编码单元或超片段与第二最终解码的瓦片、编码单元或超片段进行装配以生成第一解码的视频帧;
至少部分地基于所述帧间预测数据来执行运动补偿以生成第二解码的单独的预测分区;
至少部分地基于所述帧内预测数据来执行针对第二多个分区的第三解码的单独的预测分区的帧内预测;
至少部分地基于所述运动补偿来生成第二解码的视频帧;
至少部分地基于所述帧内预测来生成第三解码的视频帧;以及
发送所述第一、第二和第三解码的视频帧以经由显示设备进行呈现,
其中,将所述视频帧分割成所述多个瓦片、或编码单元、或超片段包括将所述视频帧分割成多个瓦片,
其中,确定所述选定划分技术包括至少部分地基于所述视频帧的图片类型来确定所述选定划分技术,
其中,所述图片类型包括I图片(帧内图片)、P图片(预测性图片)或者F/B图片(功能/双向图片)中的至少一个,
其中,所述图片类型包括所述I图片,并且其中,所述选定划分技术包括所述k-d树划分技术,
其中,所述图片类型包括所述P图片,并且其中,所述选定划分技术包括所述二分树划分技术,
其中,所述图片类型包括所述F/B图片,并且其中,所述选定划分技术包括所述二分树划分技术,
其中,确定所述选定划分技术包括至少部分地基于所述至少一个瓦片、编码单元或超片段的特征来确定所述选定划分技术,其中,所述特征包括所述至少一个瓦片、编码单元或超片段中的帧内块的预期量,并且其中,在所述帧内块的预期量大于阈值时,所述选定划分技术包括所述k-d树划分技术,并且其中,在所述帧内块的预期量低于阈值时,所述选定划分技术包括所述二分树划分技术,并且
其中,对所述至少一个瓦片、编码单元或超片段进行划分包括划分约束条件,其中,所述划分约束条件包括将第一分区预定义为沿第一维度对至少一个帧部分进行二等分,以及将第二分区预定义为沿第二维度对所述至少一个帧部分进行二等分,并且其中,所述第一维度包括垂直维度,以及所述第二维度包括平维度。
10.一种视频编码器,其包括:
图像缓冲器
包括预测分区发生器逻辑电路图形处理单元,其中,所述图形处理单元通信地耦合至所述图像缓冲器并且其中,所述预测分区发生器逻辑电路被配置为:
接收视频帧;
将所述视频帧分割成多个瓦片、编码单元或超片段;
针对至少一个瓦片、编码单元或超片段来确定选定划分技术,包括:
至少部分地取决于所述视频帧中帧内块的预期量来选择所述划分技术,使得当所述帧内块的预期量大于阈值时k-d树划分技术被选择,并且当所述帧内块的预期量小于阈值时,二分树划分技术被选择;
其中,所述选定划分技术包括结构化划分技术,所述结构化划分技术包括所述二分树划分技术、所述k-d树划分技术、所述二分树划分技术的码本表示或者所述k-d树划分技术的码本表示中的至少一个;以及
采用所述选定划分技术将所述至少一个瓦片、编码单元或超片段划分成多个预测分区。
11.根据权利要求10所述的视频编码器,其中,所述预测分区发生器逻辑电路还被配置为:
将所述视频帧分割成两个或更多个区域层,其中,将所述视频帧分割成多个瓦片、编码单元或超片段包括所述预测分区发生器逻辑电路被配置为将所述视频帧划分成多个超片段,并且其中,至少一个超片段包括所述两个或更多个区域层的单独的区域层。
12.根据权利要求10所述的视频编码器,其中,将所述视频帧分割成多个瓦片、编码单元或超片段包括所述预测分区发生器逻辑电路被配置为将所述视频帧分割成多个瓦片。
13.根据权利要求10所述的视频编码器,所述图形处理单元还包括:
差异确定逻辑电路,其被配置为:
确定与所述多个预测分区相关联的多个预测的分区和相对应的原始像素数据的差异,以生成相对应的多个预测误差数据分区;
编码分区发生器逻辑电路,其被配置为:
确定所述多个预测误差数据分区中的单独的预测误差数据分区需要编码;并且对于需要编码的单独的残差:
将所述预测误差数据分区划分成多个编码分区,其中,对所述预测误差数据分区进行划分包括二分树划分。
14.根据权利要求10所述的视频编码器,其中,确定所述选定划分技术包括所述预测分区发生器逻辑电路被配置为至少部分地基于所述视频帧的图片类型来确定所述选定划分技术。
15.根据权利要求10所述的视频编码器,其中,确定所述选定划分技术包括所述预测分区发生器逻辑电路被配置为至少部分地基于在相同的帧上的并且与瓦片、编码单元或超片段的另一相同类型的分区的特征不同的至少一个瓦片、编码单元或超片段的特征来确定所述选定划分技术。
16.根据权利要求10所述的视频编码器,所述图形处理单元还包括:
帧间预测逻辑电路,其被配置为:
生成与所述多个预测分区中的第一单独的预测分区相关联的帧间预测数据,其中,所述帧间预测数据包括运动矢量数据;
帧内预测逻辑电路,其被配置为:
生成与第二视频帧的第二瓦片、编码单元或超片段的第二多个预测分区的第二单独的预测分区相关联的帧内预测数据;
差异确定逻辑电路,其被配置为:
确定与所述多个预测分区相关联的多个预测的分区和相对应的原始像素数据的差异,以生成相对应的多个预测误差数据分区,其中,所述多个预测的分区中的第一预测的分区至少部分地基于参考帧进行预测,所述参考帧包括紧挨着的之前的参考帧、更早的之前的参考帧、未来参考帧、变形参考帧或合成参考帧;
编码分区发生器逻辑电路,其被配置为:
确定所述多个预测误差数据分区中的单独的预测误差数据分区需要编码;以及对于需要编码的单独的残差:
将所述预测误差数据分区划分成多个编码分区,其中,对所述预测误差数据分区进行划分包括二分树划分;
采用编码分区索引值来对所述多个编码分区编索引;以及
将所述编码分区和所述编码分区索引值发送至编码控制器;
自适应变换逻辑电路和自适应量化逻辑电路,其被配置为
对所述单独的预测误差数据分区的编码分区执行前向变换和量化以生成与所述单独的预测误差数据分区相关联的数据;以及
自适应熵编码器逻辑电路,其被配置为:
将与所述第一单独的预测分区相关联的帧间预测数据、限定所述第一单独的预测分区的数据、与所述第二单独的预测分区相关联的帧内预测数据、限定所述第二单独的预测分区的数据以及与所述单独的预测误差数据分区相关联的数据熵编码到比特流当中;并且发送所述比特流,
其中,所述预测分区发生器逻辑电路还被配置为:
将所述视频帧分割成两个或更多个区域层,其中,所述两个或更多个区域层包括4像素、8像素或16像素中的至少一个的精确度,其中,所述两个或更多个区域层包括区域边界,其中,将所述视频帧分割成所述多个瓦片、编码单元或超片段包括所述预测分区发生器逻辑电路进一步被配置为将所述视频帧分割成多个超片段,其中,将所述视频帧分割成所述多个瓦片、编码单元或超片段包括所述预测分区发生器逻辑电路进一步被配置为采用16×
16像素块通过符号运行编码来对所述视频帧进行分割,并且其中,至少一个超片段包括所述两个或更多个区域层的单独的区域层;
对所述区域边界进行编码,其中,对所述区域边界进行编码包括符号运行编码或者生成在瓦片网格上逼近所述区域边界的码本中的至少一个,其中,所述瓦片网格是具有32×
32像素或者64×64像素中的至少一个的尺寸的等间隔瓦片网格;
采用预测分区索引值来对所述多个预测分区编索引;
将所述多个预测分区和所述预测分区索引值发送至编码控制器;
其中,将所述视频帧分割成所述多个瓦片、编码单元或超片段包括所述预测分区发生器逻辑电路被配置为将所述视频帧分割成多个瓦片,
其中,确定所述选定划分技术包括所述预测分区发生器逻辑电路被配置为至少部分地基于所述视频帧的图片类型来确定所述选定划分技术,
其中,所述图片类型包括I图片(帧内图片)、P图片(预测性图片)或者F/B图片(功能/双向图片)中的至少一个,
其中,所述图片类型包括所述I图片,并且其中,所述选定划分技术包括所述k-d树划分技术,
其中,所述图片类型包括所述P图片,并且其中,所述选定划分技术包括所述二分树划分技术,
其中,所述图片类型包括所述F/B图片,并且其中,所述选定划分技术包括所述二分树划分技术,
其中,确定所述选定划分技术包括所述预测分区发生器逻辑电路被配置为至少部分地基于所述至少一个瓦片、编码单元或超片段的特征来确定所述选定划分技术,其中,所述特征包括所述至少一个瓦片、编码单元或超片段中的帧内块的预期数量,并且其中,在所述帧内块的预期数量大于阈值时所述选定划分技术包括所述k-d树划分技术,以及其中,在所述帧内块的预期数量低于阈值时所述选定划分技术包括所述二分树划分技术,并且其中,对所述至少一个瓦片、编码单元或超片段进行划分包括所述预测分区发生器逻辑电路被配置为应用划分约束条件,其中,所述划分约束条件包括将第一分区预定义为沿第一维度对至少一个帧部分进行二等分,以及将第二分区预定义为沿第二维度对所述至少一个帧部分进行二等分,并且其中,所述第一维度包括垂直维度,以及所述第二维度包括水平维度。
17.一种解码器系统,包括:
被配置为对编码的比特流进行解码的视频解码器,其中,将所述视频解码器配置为:
对所述编码的比特流进行熵解码以确定与第一预测分区相关联的帧间预测数据、限定所述第一预测分区的数据、与第二预测分区相关联的帧内预测数据、以及限定所述第二预测分区的数据,其中,所述第一预测分区包括二分树分区,以及所述第二预测分区包括k-d树分区;
至少部分地基于所述帧间预测数据来执行针对所述第一预测分区的运动补偿;
至少部分地基于所述帧内预测数据来执行针对第二单独的分区的帧内预测;
至少部分地基于所述运动补偿来生成第一解码的视频帧;
至少部分地基于所述帧内预测来生成与第一视频帧相同的视频序列中的第二解码的视频帧;以及
发送所述第一和第二解码的视频帧以经由显示设备进行呈现。
18.根据权利要求17所述的解码器系统,其中,所述视频解码器还被配置为:
对所述比特流进行熵解码,以确定与单独的预测误差数据分区相关联的数据,其中,所述单独的预测误差数据分区包括二分树编码分区;
至少部分地基于与所述单独的预测误差数据分区相关联的数据来执行反向量化和反向变换,以生成解码的编码分区;
合并所述解码的编码分区以生成解码的预测误差数据分区;
将预测分区加到所述解码的预测误差数据分区以生成第一重构分区;
对所述第一重构分区和第二重构分区进行装配以生成第一瓦片、编码单元或第一超片段中的至少一个;
将解块滤波或质量恢复滤波中的至少一个应用到所述第一瓦片、编码单元或所述第一超片段,以生成第一最终解码的瓦片、编码单元或超片段;
将所述第一最终解码的瓦片、编码单元或超片段与第二最终解码的瓦片、编码单元或超片段进行装配以生成第三解码的视频帧;以及
发送所述第三解码的视频帧以经由所述显示设备进行呈现。
19.根据权利要求17所述的解码器系统,其中,第一视频帧包括的图片类型包括P图片或F/B图片中的至少一个。
20.根据权利要求17所述的解码器系统,其中,第二视频帧包括的图片类型包括I图片。
21.根据权利要求17所述的解码器系统,还包括:
通信地耦合至所述视频解码器的天线,并且其被配置为接收视频数据的编码的比特流;以及
被配置为呈现视频帧的显示设备,
其中,所述视频解码器还被配置为:
对所述比特流进行熵解码,以确定与单独的预测误差数据分区相关联的数据,其中,所述单独的预测误差数据分区包括二分树编码分区;
至少部分地基于与所述单独的预测误差数据分区相关联的数据来执行反向量化和反向变换,以生成解码的编码分区;
合并所述解码的编码分区以生成解码的预测误差数据分区;
将预测分区加到所述解码的预测误差数据分区以生成第一重构分区;
对所述第一重构分区和第二重构分区进行装配以生成第一瓦片、编码单元或第一超片段中的至少一个;
将解块滤波或质量恢复滤波中的至少一个应用到所述第一瓦片、编码单元或所述第一超片段,以生成第一最终解码的瓦片、编码单元或超片段;
将所述第一最终解码的瓦片、编码单元或超片段与第二最终解码的瓦片、编码单元或超片段进行装配以生成第三解码的视频帧;以及
发送所述第三解码的视频帧以经由所述显示设备进行呈现,
其中,所述第一视频帧包括的图片类型包括P图片或F/B图片中的至少一个,并且其中,第二视频帧包括的图片类型包括I图片,并且
其中,第三视频帧包括的图片类型包括P图片或F/B图片中的至少一个。
22.一种非暂时性机器可读介质,其包括:
多条指令,所述多条指令响应于在计算设备上被执行而使得所述计算设备执行根据权利要求1-9中的任一项所述的方法。
23.一种用于视频编码中的划分的装置,包括:
用于接收视频帧的单元;
用于将所述视频帧分割成多个瓦片、编码单元或超片段的单元;
用于针对至少一个瓦片、编码单元或超片段确定选定划分技术以用于进行预测或编码划分的单元,包括:
用于至少部分地取决于所述视频帧的图片类型来选择所述划分技术,使得I图片是通过使用k-d树划分技术来进行划分的,并且P图片是通过使用二分树划分技术来进行划分的单元;
其中,所述选定划分技术包括结构化划分技术,其包括所述二分树划分技术、所述k-d树划分技术、所述二分树划分技术的码本表示或者所述k-d树划分技术的码本表示中的至少一个;
用于采用所述选定划分技术将所述至少一个瓦片、编码单元或超片段划分成多个预测分区的单元;以及
用于将与所述多个预测分区相关联的划分指示符或码字编码到比特流当中的单元。
24.根据权利要求23所述的装置,还包括:
用于将所述视频帧分割成两个或更多个区域层的单元,其中,将所述视频帧分割成所述多个瓦片、编码单元或超片段包括将所述视频帧分割成多个超片段,并且其中,至少一个超片段包括所述两个或更多个区域层中的单独的区域层。
25.根据权利要求23所述的装置,其中,将所述视频帧分割成所述多个瓦片、编码单元或超片段包括将所述视频帧分割成多个瓦片。
26.根据权利要求23所述的装置,还包括:
用于确定与所述多个预测分区相关联的多个预测的分区和相对应的原始像素数据的差异,以生成相对应的多个预测误差数据分区的单元;
用于确定所述多个预测误差数据分区中的单独的预测误差数据分区需要编码的单元;
以及
用于对于需要编码的所述单独的预测误差数据分区:
将所述预测误差数据分区划分成多个编码分区的单元,其中,对所述预测误差数据分区进行划分包括二分树划分。
27.根据权利要求23所述的装置,还包括:
用于生成与所述多个预测分区的第一单独的预测分区相关联的帧间预测数据的单元;
用于生成与第二视频帧的第二瓦片、编码单元或超片段的第二多个预测分区的第二单独的预测分区相关联的帧内预测数据的单元;
用于确定所述多个预测分区和相对应的原始像素数据的差异,以生成相对应的多个预测误差数据分区的单元;
用于确定所述多个预测误差数据分区中的单独的预测误差数据分区需要编码的单元;
用于对于需要编码的所述单独的预测误差数据分区:
将所述预测误差数据分区划分成多个编码分区的单元,其中,对所述预测误差数据分区进行划分包括二分树划分;
采用编码分区索引值来对所述多个编码分区编索引;
将所述编码分区和所述编码分区索引值发送至编码控制器;以及
对所述单独的预测误差数据分区的编码分区执行前向变换和量化以生成与所述单独的预测误差数据分区相关联的数据;
用于将与所述第一单独的预测分区相关联的帧间预测数据、限定所述第一单独的预测分区的数据、与所述第二单独的预测分区相关联的帧内预测数据、限定所述第二单独的预测分区的数据以及与所述单独的预测误差数据分区相关联的数据熵编码到比特流当中的单元。
28.根据权利要求23所述的装置,其中,确定所述选定划分技术包括至少部分地基于所述视频帧的图片类型来确定所述选定划分技术,其中,所述图片类型包括F/B图片,并且其中,所述选定划分技术包括所述二分树划分技术。
29.根据权利要求23所述的装置,其中,确定所述选定划分技术包括至少部分地基于所述至少一个瓦片、编码单元或超片段的特征来确定所述选定划分技术,其中,所述特征包括所述至少一个瓦片、编码单元或超片段中的帧内块的预期量,并且其中,在所述帧内块的预期量大于阈值时,所述选定划分技术包括所述k-d树划分技术,并且其中,在所述帧内块的预期量低于阈值时,所述选定划分技术包括所述二分树划分技术。
30.根据权利要求23所述的装置,其中,对所述至少一个瓦片、编码单元或超片段进行划分包括划分约束条件。
31.根据权利要求23所述的装置,还包括:
用于将所述视频帧分割成两个或更多个区域层的单元,其中,所述两个或更多个区域层包括4像素、8像素或16像素中的至少一个的精确度,其中,所述两个或更多个区域层包括区域边界,其中,将所述视频帧分割成所述多个瓦片、编码单元或超片段包括将所述视频帧分割成多个超片段,其中,对所述视频帧进行分割包括采用16×16像素块的符号运行编码,并且其中,至少一个超片段包括所述两个或更多个区域层的单独的区域层;
用于对所述区域边界进行编码的单元,其中,对所述区域边界进行编码包括符号运行编码或者生成在瓦片网格上逼近所述区域边界的码本中的至少一个,其中,所述瓦片网格是具有32×32像素或者64×64像素中的至少一个尺寸的等间隔瓦片网格;
用于采用预测分区索引值来对所述多个预测分区编索引的单元;
用于将所述多个预测分区和预测分区索引值发送至编码控制器的单元;
用于生成与所述多个预测分区中的第一单独的预测分区相关联的帧间预测数据的单元,其中,所述帧间预测数据包括运动矢量数据;
用于生成与第二视频帧的第二瓦片、编码单元或超片段的第二多个预测分区的第二单独的预测分区相关联的帧内预测数据的单元;
用于确定与所述多个预测分区相关联的多个预测的分区和相对应的原始像素数据的差异,以生成相对应的多个预测误差数据分区的单元,其中,所述多个预测的分区中的第一预测的分区至少部分地基于参考帧进行预测,所述参考帧包括紧挨着的之前的参考帧、更早的之前的参考帧、未来参考帧、变形参考帧或合成参考帧;
用于基于所述参考帧来生成针对所述第一预测的分区的参考类型指示符的单元;
用于基于所述第一预测的分区的预测模式来生成预测模式指示符,其中,所述预测模式从帧间、多重、帧内、跳过、自动或拆分中的至少一个中进行选择的单元;
用于将所述参考类型指示符和所述预测模式编码到所述比特流当中的单元;
用于确定所述多个预测误差数据分区中的单独的预测误差数据分区需要编码的单元;
用于对于需要编码的所述单独的预测误差数据分区:
将所述预测误差数据分区划分成多个编码分区,其中,对所述预测误差数据分区进行划分包括二分树划分的单元;
采用编码分区索引值来对所述多个编码分区编索引;
将所述编码分区和所述编码分区索引值发送至所述编码控制器;以及
对所述单独的预测误差数据分区的编码分区执行前向变换和量化以生成与所述单独的预测误差数据分区相关联的数据;
用于将与所述第一单独的预测分区相关联的帧间预测数据、限定所述第一单独的预测分区的数据、与所述第二单独的预测分区相关联的帧内预测数据、限定所述第二单独的预测分区的数据、以及与所述单独的预测误差数据分区相关联的数据熵编码到比特流当中的单元;
用于发送所述比特流的单元;
用于接收所述比特流的单元;
用于对所述比特流进行熵解码,以确定与所述第一单独的预测分区相关联的帧间预测数据、限定所述第一单独的预测分区的数据、与所述第二单独的预测分区相关联的帧内预测数据、限定所述第二单独的预测分区的数据、以及与所述单独的预测误差数据分区相关联的数据的单元,其中,所述第一单独的预测分区包括二分树分区,以及所述第二单独的预测分区包括k-d树分区;
用于至少部分地基于与所述单独的预测误差数据分区相关联的数据来执行反向量化和反向变换,以生成解码的编码分区的单元;
用于合并解码的编码分区以生成解码的预测误差数据分区的单元;
用于将第一单独解码的预测的分区加到解码的预测误差数据分区以生成第一重构分区的单元;
用于装配所述第一重构分区和第二重构分区以生成第一瓦片、第一编码单元或第一超片段中的至少一个的单元;
用于将解块滤波或质量恢复滤波中的至少一个应用到所述第一瓦片、所述第一编码单元或所述第一超片段,以生成第一最终解码的瓦片、编码单元或超片段的单元;
用于将所述第一最终解码的瓦片、编码单元或超片段与第二最终解码的瓦片、编码单元或超片段进行装配以生成第一解码的视频帧的单元;
用于至少部分地基于所述帧间预测数据来执行运动补偿以生成第二解码的单独的预测分区的单元;
用于至少部分地基于所述帧内预测数据来执行针对第二多个分区的第三解码的单独的预测分区的帧内预测的单元;
用于至少部分地基于所述运动补偿来生成第二解码的视频帧的单元;
用于至少部分地基于所述帧内预测来生成第三解码的视频帧的单元;以及用于发送所述第一、第二和第三解码的视频帧以经由显示设备进行呈现的单元,其中,将所述视频帧分割成所述多个瓦片、或编码单元、或超片段包括将所述视频帧分割成多个瓦片,
其中,确定所述选定划分技术包括至少部分地基于所述视频帧的图片类型来确定所述选定划分技术,
其中,所述图片类型包括I图片(帧内图片)、P图片(预测性图片)或者F/B图片(功能/双向图片)中的至少一个,
其中,所述图片类型包括所述I图片,并且其中,所述选定划分技术包括所述k-d树划分技术,
其中,所述图片类型包括所述P图片,并且其中,所述选定划分技术包括所述二分树划分技术,
其中,所述图片类型包括所述F/B图片,并且其中,所述选定划分技术包括所述二分树划分技术,
其中,确定所述选定划分技术包括至少部分地基于所述至少一个瓦片、编码单元或超片段的特征来确定所述选定划分技术,其中,所述特征包括所述至少一个瓦片、编码单元或超片段中的帧内块的预期量,并且其中,在所述帧内块的预期量大于阈值时,所述选定划分技术包括所述k-d树划分技术,并且其中,在所述帧内块的预期量低于阈值时,所述选定划分技术包括所述二分树划分技术,并且
其中,对所述至少一个瓦片、编码单元或超片段进行划分包括划分约束条件,其中,所述划分约束条件包括将第一分区预定义为沿第一维度对至少一个帧部分进行二等分,以及将第二分区预定义为沿第二维度对所述至少一个帧部分进行二等分,并且其中,所述第一维度包括垂直维度,以及所述第二维度包括水平维度。
32.一种用于视频编码中的划分的装置,包括:
用于存储指令的存储器;以及
耦合到所述存储器的处理器,所述指令由所述处理器执行,以用于执行如权利要求1-9中的任意一项所述的方法。

说明书全文

用于下一代视频的预测和编码的内容自适应划分

[0001] 相关申请
[0002] 本申请要求2013年1月30日提交的发明名称为“NEXT GENERATION VIDEO CODING”的美国临时申请No.61/758,314的优先权,在此将其内容全文并入本文。

背景技术

[0003] 视频编码器压缩视频信息,使得更多的信息可以通过给定的带宽被发送。压缩的信号然后可以被传送到具有解码器的接收机,所述解码器在显示之前对信号进行解码或解压缩。
[0004] 高效视频编码(HEVC)是最新的视频压缩标准,其是由ISO/IEC运动图片专家组(MPEG)和ITU-T视频编码专家组(VCEG)组成的视频编码联合组(JCT-VC)开发的。HEVC响应于以前的H.264/AVC(高级视频编码)标准不提供足够的压缩而进行开发,以用于发展较高分辨率视频应用。类似于以前的视频编码标准,HEVC包括基本功能模,例如,内/帧间预测、变换、量化、循环内滤波和熵编码
[0005] 正在发展的HEVC标准可以试图改进对H.264/AVC标准的限制,例如,对被允许的预测分区和编码分区的有限选择、有限的被允许的多参考和预测生成、有限的变换块尺寸和实际变换、用于减少编码伪像的有限机制、和低效熵编码技术。然而,正在发展的HEVC标准可以使用迭代方法来解决这样的问题。附图说明
[0006] 本文描述的材料作为示例而不是作为限制在附图中示出。为了举例说明的简单和清楚,在附图中所示的元件不一定按比例绘制。例如,为了清楚,一些元件的尺寸可以相对于其它元件被放大。此外,在被认为适当的场合,附图标记在附图当中重复以指示相对应的或类似的元件。在附图中:
[0007] 图1是示例下一代视频编码器的示意图;
[0008] 图2是示例下一代视频解码器的示意图;
[0009] 图3示出了具有用于分区的示例瓦片、编码单元或超片段的示例视频帧
[0010] 图4示出了示例视频帧的瓦片行的示例超片段;
[0011] 图5示出了视频帧的示例区域层分割;
[0012] 图6(A)和6(B)示出了被分割为区域层并且根据瓦片被划分为超片段的示例视频帧;
[0013] 图7是示出了示例编码过程的子集的流程图
[0014] 图8示出了采用二分树划分技术的帧部分的示例划分;
[0015] 图9示出了采用k-d树划分技术的帧部分的示例划分;
[0016] 图10示出了示例比特流;
[0017] 图11是示出了示例解码过程的流程图;
[0018] 图12(A)和12(B)是示例编码器子系统的示意图;
[0019] 图13是示例解码器子系统的示意图;
[0020] 图14(A)和14(B)共同提供了视频编码和解码系统及过程的组合示例的详细示出;
[0021] 图15是示例视频编码系统的示意图;
[0022] 图16是示例系统的示意图;
[0023] 图17示出了示例设备;
[0024] 图18(A)、18(B)和18(C)示出了视频帧的示例预测分区和编码分区,所有附图都是根据本公开的至少一些实现布置的。

具体实施方式

[0025] 现在参考所包含的附图来描述一个或多个实施例或实现。虽然讨论了特定的配置和布置,但是应理解,这仅出于例证性目的而被完成。相关领域中的技术人员将认识到,可以使用其它配置和布置而不偏离描述的精神和范围。对相关领域中的技术人员显而易见的是,还可以在除了本文描述的内容以外的各种其它系统和应用中使用本文描述的技术和/或布置。
[0026] 虽然下面的描述阐述了可以在诸如芯片上系统(SoC)架构之类的架构中出现的各种实现,但是本文描述的技术和/或布置的实现并不限于特定的架构和/或计算系统,并且可以出于类似的目的由任何架构和/或计算系统实现。例如,使用例如多个集成电路(IC)芯片和/或封装、和/或各种计算设备和/或消费电子(CE)设备(例如,机顶盒、智能电话等)的各种架构可以实现本文描述的技术和/或布置。此外,虽然下面的描述可以阐述很多特定的细节,例如,逻辑实现、系统部件的类型和帧间关系、逻辑划分/集成选择等,但是所要求保护的主题可以在没有这样的特定细节的情况下被实施。在其它实例中,一些材料(例如,控制结构和完整的软件指令序列)可以不详细示出,以便不使本文公开的材料难理解。
[0027] 本文公开的材料可以在硬件固件、软件或其任何组合中实现。本文公开的材料也可以被实现为存储在机器可读介质上的指令,所述指令可以由一个或多个处理器读取和执行。机器可读介质可以包括用于以机器(例如,计算设备)可读的形式存储或发送信息的任何介质和/或机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等);及其它。
[0028] 在说明书中对“一个实现”、“实现”、“示例实现”等的提及指示所述实现可以包括特定的特征、结构、或特性,但每个实施例可能不一定必须包括所述特定的特征、结构或特性。而且,这样的短语并不一定指同一实现。此外,当结合实施例来描述特定的特征、结构或特性时,提出的是,无论是否在本文被明确地描述,结合其它实现来实施这样的特征、结构、或特性是在本领域中的技术人员的知识范围内的。
[0029] 下面描述与用于下一代视频编码的预测和编码的内容自适应划分有关的系统、装置、制品、以及方法。
[0030] 下文将描述下一代视频(NGV)系统、装置、制品和方法。NGV视频编码可以在视频编码过程中结合基于重要内容的自适应性以达到更高的压缩。如上所述,H.264/AVC标准可能具有各种限制以及持续进行的尝试以对标准进行改进,例如,HEVC标准可以采用迭代方案来解决这样的限制。文中将描述包括编码器和解码器的NGV系统。
[0031] 而且如文中的讨论,H.264/AVC标准可以包括对预测分区和编码分区的有限的选择。具体而言,如文中讨论的,可以接收视频帧用于编码。在一些示例中,可以将视频帧分割成瓦片(tile)、编码单元、或超片段(super-fragment)(例如,文中可以将瓦片、编码单元、或超片段描述为帧部分)。例如,瓦片或编码单元可以是视频帧的方形或矩形部分。例如,可以将视频帧完全分为多个瓦片、或者一个或多个编码单元。在其他示例中,可以将视频帧分割成超片段。例如,可以将视频帧分割成两个或更多个区域层。在一些示例中,区域层可以表示场景等的前景、背景和中景(middle-ground)。在这样的示例中,还可以将视频帧分成瓦片。超片段可以包括瓦片的单独的区域层部分。例如,如果瓦片只包括一个区域层,那么超片段可以是整个瓦片。如果瓦片包括两个区域层,那么可以将瓦片分成两个超片段,一个超片段包括具有第一区域层的瓦片部分,以及第二超片段包括具有第二区域层的瓦片部分,等等。超片段可以具有任何形状,其可以是连续的或者不连续的。
[0032] 在任何情况下,可以确定所选择的技术以用于对视频帧的瓦片、编码单元、或超片段进行预测分块。在一些示例中,可以基于视频帧的图片类型来选择选定技术。在其他示例中,可以基于被划分的瓦片、编码单元或超片段的特征来选择选定技术。在一些示例中,可以从二分树划分或者k-d树划分中选择选定技术。在一些NGV实现中,可以采用三种图片类型(尽管还可以采用子类型):I图片(例如,仅帧内补偿)、P图片(例如,预测性的)或者F/B图片(例如,功能/双向)。如所讨论的,在一些示例中,选定技术可以基于视频帧的图片类型。例如,如果图片类型为I图片,那么选定技术可以是k-d树划分,以及如果图片类型为P图形或者F图片,那么选定技术可以是二分树划分。基于选定的预测划分技术,可以将帧部分划分成任何数量的预测分区。
[0033] 可以对预测分区执行各种候选的或者可能的预测划分。可以对候选分块的预测分区进行编索引并将其发送至编码控制器,编码控制器可以确定在各种编码实现中采用哪些预测分区(例如,预测分块)(例如,可以通过速率失真优化等来对具有不同预测分区的各种分块进行评估,以确定选定的预测分块)。此外,可以将预测分区用于帧间预测(例如,运动补偿)或者帧内预测。可以通过指示符或码字等将与预测分区相关联的数据(例如,视频帧中的分区形状和位置等)以及帧间或帧内预测数据编码到比特流中,以用于传输至文中讨论的解码器。
[0034] 此外,可以经由在编码器处实现的解码循环,生成预测分区(例如,与预测分区相关联的预测的像素数据)。可以确定预测的分区和实际分区(例如,原始像素数据)的差异,以确定预测误差数据分区(例如,残差或误差信号)。可以确定预测误差数据分区是否需要通过阈值等被编码(例如,进行变换编码和量化)。在一些示例中,可以直接对与预测分区相关联的预测误差数据分区进行编码。例如,可以在不做进一步的子划分(例如,编码划分)的情况下对作为I图片的帧进行编码。在其他示例中,可以在编码之前将预测分区进一步划分成编码分区或“小片(chip)”。例如,可以在编码之前对作为P或F/B图片的帧做进一步划分(例如,编码划分)。在一些示例中,可以通过二分树划分来执行编码划分。与预测划分一样,可以执行各种候选或可能的编码划分。可以对候选编码分块的编码分区进行编索引并将其发送至编码控制器,编码控制器可以确定在编码等当中采用哪些编码分区(例如,可以通过速率失真优化等对具有不同预测分区的各种划分在一些示例中连同各种类型的变换进行评估,以确定选定的编码划分)。可以将与编码分区相关联的数据(例如,通过指示符或码字等的编码分区形状和位置)和相关联的预测误差数据变换编码、量化和编码到比特流中,以用于传输至文中讨论的解码器。
[0035] 在一些示例中,解码器可以接收所述比特流并对其解码,以确定与预测分区相关联的帧间或帧内预测数据、限定预测分区的数据(例如,所讨论的指示符或代码)、与单独的预测误差数据分区相关联的数据(例如,量化系数)等。可以如文中讨论的对预测分区执行帧间或帧内预测,并且可以执行进一步处理,以生成视频帧用于显示。此外,可以对限定预测分区的数据(例如,预测误差数据分区的编码分区)进行反向量化和反向变换,以生成解码的编码分区,可以将解码的编码分区进行组合以生成解码的预测误差数据分区。可以使解码的预测误差数据分区与(解码的)预测分区相加,以生成重构的分区,可以使所述重构分区与其他重构分区进行装配以生成瓦片、编码单元或超片段。可以将任选的解块滤波和/或质量恢复滤波应用到所述瓦片、编码单元或超片段,可以将所述瓦片、编码单元或超片段与其他瓦片或编码单元或超片段进行装配,以生成解码的视频帧。所述解码的视频帧可以用于对其他帧的解码和/或对其进行以用于通过显示设备进行呈现。
[0036] 如在本文使用的,术语“编码器”可以指编码器和/或解码器。类似地,如在本文使用的,术语“编码”可以指经由编码器执行视频编码和/或经由解码器执行视频解码。例如,视频编码器和视频解码器二者都可以是能够对视频数据进行编码的编码器的示例。此外,如在本文使用的,术语“编码译码器”可以指任何过程、程序或操作的集合,例如,可以实现编码器和/或解码器的软件、固件和/或硬件的任何组合。此外,如在本文使用的,短语“视频数据”可以指与视频编码相关联的任何类型的数据,例如,视频帧、图像数据、编码的比特流数据等。
[0037] 图1是根据本公开的至少一些实现布置的示例下一代视频编码器100的示意图。如所示出的,编码器100可以接收输入视频101。输入视频101可以包括用于对例如视频序列的输入帧进行编码的任何合适的输入视频。如所示出的,输入视频101可以经由内容预分析器模块102进行接收。内容预分析器模块102可以被配置为执行对输入视频101的视频帧的内容的分析,以确定用于改进视频编码效率和速度性能的各种类型的参数。例如,内容预分析器模块102可以确定平和垂直梯度信息(例如,Rs、Cs)、方差、每图片空间复杂度、每图片时间复杂度、场景改变检测、运动范围估计、增益检测、预测距离估计、物体数量的估计、区边界检测、空间复杂度图计算、焦距估计、胶片颗粒估计等。由内容预分析器模块102生成的参数可以由编码器100(例如,经由编码控制器103)使用和/或被量化和被传递到解码器。如所示出的,视频帧和/或其它数据可以从内容预分析器模块102被发送到自适应图片组织器模块104,自适应组织器模块104可以确定每一个视频帧的图片类型(例如,I-图片、P-图片、或F-图片/B-图片)以及按照需要对视频帧进行重排序。在一些示例中,自适应图片组织器模块104可以包括被配置为生成帧部分的帧部分发生器。在一些示例中,内容预分析器模块102和自适应图片组织器模块104可以共同被认为是编码器100的预分析子系统。
[0038] 如所示出的,视频帧和/或其它数据可以从自适应图片组织器模块104被发送到预测分区发生器模块105。在一些示例中,预测分区发生器模块105可以将帧或图片分割为瓦片、编码单元、或超片段等。在一些示例中,附加的模块(例如,在模块104和105之间)可以被提供用于将帧或图片分割为瓦片、编码单元、或超片段。预测分区发生器模块105可以将每一个瓦片、编码单元、或超片段分割为潜在的(候选)预测分块或分区。在一些示例中,潜在的预测分块可以使用划分技术(例如,k-d树划分技术、二分树划分技术等)来确定,所述划分技术可以基于单独的视频帧的图片类型(例如,I-图片、P-图片或F-图片/B-图片)、被划分的帧部分的特性等来确定。在一些示例中,所确定的潜在的预测分块可以是用于预测(例如,帧间预测或帧内预测)的分区并且可以被描述为预测分区或预测块等。
[0039] 在一些示例中,所选择的预测分块(例如,预测分区)可以利用潜在的预测分块进行确定。例如,所选择的预测分块针对每一个潜在的预测分块,可以基于使用基于特性和运动的多参考预测或帧内预测来确定预测,以及确定预测参数。对于每一个潜在的预测分块,潜在的预测误差可以通过区分原始像素和预测像素的差异来确定,并且所选择的预测分块可以是具有最小预测误差的潜在的预测分块。在其它示例中,所选择的预测分块可以基于率失真优化来进行确定,所述率失真化包括基于用于对分块和与预测分块相关联的预测误差进行编码的位的数量的加权的分数。
[0040] 如所示出的,所选择的预测分块(例如,当前帧的预测分区)的原始像素可以在差异确定器106处确定与预测的分区(例如,基于参考帧或多个参考帧以及其他预测数据(例如,帧间预测数据或帧内预测数据)对当前帧的预测分区的预测的像素数据)的差异。对所预测的分区的确定将在下面进一步进行描述,并且可以包括在图1中所示出的解码循环。来自求差的任何残差或剩残差据(例如,分区预测误差数据)可以被发送到编码分区发生器模块107。在一些示例中,例如,对于任何图片类型(I-图片、F-图片/B-图片、或P-图片)中的预测分区的帧内预测,编码分区发生器模块107可以经由开关107a和107b来设置旁路。在这样的示例中,只有分块的单个水平能够被执行。这样的分块可以被描述为预测分块(正如所讨论的)或编码分块或二者。在各种示例中,这样的分块可以经由预测分区发生器模块105来执行(正如所讨论的),或正如在本文中进一步讨论的,这样的分块可以通过经由编码分区发生器模块107实现的k-d树帧内预测/编码划分器模块或二分树帧内预测/编码划分器模块执行。
[0041] 在一些示例中,分区预测误差数据,如果有,对于保证编码可能不是足够有效的。在其它示例中,可以期望的是对分区预测误差数据进行编码,并且所述分区预测误差数据与帧间预测等相关联,编码分区发生器模块107可以确定预测分区的编码分区。在一些示例中,编码分区发生器模块107可能不被需要,因为分区可以在没有编码分块(例如,通过经由开关107a和107b可用的旁路路径所示出的)的情况下进行编码。在有编码分块或没有编码分块的情况下,在残差或剩残差据需要进行编码的事件中,分区预测误差数据(其可以随后被描述为两个事件的任一事件中的编码分区)可以被发送到自适应变换模块108。在一些示例中,预测分区发生器模块105以及编码分区发生器模块107能够共同被考虑为编码器100的划分器子系统。在各种示例中,编码分区发生器模块107可以对分区预测误差数据、原始像素数据、剩残差据、或小波数据进行操作。
[0042] 编码分区发生器模块107可以使用二分树和/或k-d树划分技术等来生成例如分区预测误差数据的潜在的编码分块(例如,编码分区)。在一些示例中,可以使用具有各种块尺寸的自适应变换或固定的变换经由自适应变换模块108来变换潜在的编码分区,并且可以基于率失真优化或其它基础来确定选定的编码分块和选定的变换(例如,自适应或固定的)。在一些示例中,可以基于基于编码分区尺寸等的预定的选择方法来确定选定的编码分块和/或选定的变换。
[0043] 例如,自适应变换模块108可以包括用于执行参数变换以允许小到中等尺寸块的局部最佳变换编码的第一部分或部件,以及用于使用固定变换(例如,离散余弦变换(DCT)或来自包括参数变换的各种变换的基于图片的变换)或如在本文进一步讨论的任何其它配置来执行全局稳定的、低开销变换编码的第二部分或部件。在一些示例中,对于局部最佳变换编码,可以执行参数Haar变换(PHT),如在本文进一步讨论的。在一些示例中,可以在大约4x4像素和64x64像素之间的矩形尺寸的2D块上执行变换,实际尺寸取决于多个因素,例如,所变换的数据是亮度还是色度,或帧间还是帧内、或所使用的确定的变换是PHT还是DCT等。
[0044] 如所示出的,结果的变换系数可以被发送到自适应量化模块109。自适应量化模块109可以对结果的变换系数进行量化。此外,与参数变换相关联的任何数据按需要可以被发送到自适应量化模块109(如果需要量化)或自适应熵编码器模块110。同样如在图1中示出的,量化系数可以被扫描并且被发送到自适应熵编码器模块110。自适应熵编码器模块110可以对量化的系数进行熵编码,并且在输出比特流111中包括它们。在一些示例中,自适应变换模块108和自适应量化模块109可以共同被考虑为编码器100的变换编码器子系统。
[0045] 同样如在图1中示出的,编码器100包括局部解码循环。局部解码循环可以在自适应反向量化模块112处开始。自适应反向量化模块112可以被配置为执行自适应量化模块109的相反操作,使得反向扫描可以被执行并且量化系数可以被解缩放以确定变换系数。例如,这样的自适应量化操作可以是有损的。如所示出的,变换系数可以被发送到自适应反向变换模块113。例如,自适应反向变换模块113可以执行如由自适应变换模块108所执行的反向变换,以生成残差或残余值或与编码分区(或预测分区,如果编码分组被被采用或只有编码分块的一个水平被采用,这样的分组可以被考虑为编码或分区多分区)相关联的分区预测误差数据(或原始数据或小波数据,如所讨论的)。在一些示例中,自适应反向量化模块
112和自适应反向变换模块113可以共同被考虑为编码器100的变换解码器子系统。
[0046] 如所示出的,分区预测误差数据(或类似数据)可以被发送到可选的编码分区装配器114。编码分区装配器114可以按需要将编码分区装配到解码的预测分区中(如所示出的,在一些示例中,编码分区装配器114可以经由开关114a和114b被跳过,使得解码的预测分区可以在自适应反向变换模块113处生成)以生成预测误差数据的预测分区或解码的残余预测分区等。
[0047] 如所示出的,解码的残余预测分区可以在加法器115处被加到预测分区(例如,预测像素数据)以生成重构的预测分区。所述重构的预测分区可以被发送到预测分区装配器116。预测分区装配器116可以装配重构的预测分区以生成重构的瓦片、或编码单元、或超片段。在一些示例中,编码分区装配器模块114和预测分区装配器模块116可以共同被考虑为编码器100的解分区器子系统。
[0048] 重构的瓦片、或编码单元、或超片段可以被发送到块效应分析器和解块滤波模块117。块效应分析器和解块滤波模块117可以使重构的瓦片、或编码单元、或超片段(或瓦片、或编码单元、或超片段的预测分区)解块和抖动。所生成的解块和抖动滤波器参数可以用于当前的滤波器操作和/或在比特流111中被编码以由例如解码器使用。块效应分析器和解块滤波模块117的输出可以被发送到质量分析器和质量恢复滤波模块118。质量分析器和质量恢复滤波模块118可以确定QR滤波参数(例如,用于QR分解)并且使用所确定的参数以用于滤波。QR滤波参数也可以被编码在输出比特流111中以由解码器使用。如所示出的,质量分析器和质量恢复滤波模块118的输出可以被发送到解码的图片缓冲区119。在一些示例中,质量分析器和质量恢复滤波模块118的输出可以是可以用于对其它帧进行的编码的预测的最终重构的帧(例如,最终重构的帧可以是参考帧等)。在一些示例中,块效应分析器和解块滤波模块117以及质量分析器和质量恢复滤波模块118可以共同被考虑为编码器100的滤波子系统。
[0049] 在编码器100中,预测操作可以包括帧间和/或帧内预测。正如在图1中示出的,帧间预测可以由一个或多个模块执行,所述一个或多个模块包括变形分析器和变形的图片生成模块120、合成分析器和合成的图片生成模块121、以及特性和运动滤波预测器模块123。变形分析器及变形图片生成模块120可以对当前图片进行分析以确定针对增益变化、主要运动的变化、配准的变化以及相对于利用其进行编码的参考帧或者多个参考帧的模糊变化的参数。可以对所确定的变形参数进行量化/去量化,并对其加以使用(例如,由变形分析器及变形图片生成模块120加以使用)以生成变形参考帧,运动估算器模块122可以采用所述变形参考帧用于计算运动矢量,从而实现对当前帧的有效运动(及特征)补偿预测。合成分析器及合成图片生成模块121可以针对运动生成超分辨(SR)率图片和投影插补(PI)图片等,从而确定用于实现这些帧当中的有效运动补偿预测的运动矢量。
[0050] 运动估计器模块122可以基于变形参考帧和/或超分辨率(SR)图片和投影插补(PI)图片以及当前帧来生成运动向量数据。在一些示例中,运动估计器模块122可以被考虑为帧间预测模块。例如,运动向量数据可以被用于帧间预测。如果帧间预测被应用,则特性和运动补偿滤波预测器模块123可以将运动补偿应用作为如所讨论的局部解码循环的部分。
[0051] 帧内预测可以由帧内定向预测分析器和预测生成模块124执行。帧内定向预测分析器和预测生成模块124可以被配置为执行空间定向预测,并且可以使用解码的相邻分区。在一些示例中,确定方向和生成预测二者可以通过帧内定向分析器和预测生成模块124执行。在一些示例中,帧内定向预测分析器和预测生成模块124可以被考虑在帧内预测模块中。
[0052] 如图1所示出的,预测模式和参考类型分析器模块125可以允许从“跳过”、“自动”、“帧间”、“拆分”、“多重”、以及“帧内”当中选择预测模式,对于瓦片(或编码单元或超片段)的每一个预测分区,可以将它们全部都应用到P-图片和F-图片/B-图片。除了预测模式之外,也允许取决于“帧间”或“多重”模式、以及针对P-图片和F-图片/B-图片来选择可以是不同的参考类型。预测模式和参考类型分析器模块125的输出处的预测信号可以由预测分析器和预测融合滤波模块126进行滤波。预测分析器和预测融合滤波模块126可以确定参数(例如,滤波系数、频率、开销)以用于滤波,并且可以执行滤波。在一些示例中,对预测信号进行滤波可以融合表示不同模式(例如,帧内、帧间、多重、拆分、跳过、以及自动)的不同类型的信号。在一些示例中,帧内预测信号可以与所有其它类型的帧间预测信号不同,使得合适的滤波可以极大地增强编码效率。在一些示例中,滤波参数可以被编码在输出比特流111中,以由解码器使用。滤波的预测信号可以将第二输入(例如,预测分区)提供给差异确定器106,如上所讨论的,差异确定器106可以确定预测差异信号(例如,分区预测误差)以用于编码,如更早前所讨论的。此外,同一滤波预测信号可以将第二输入提供给加法器115,同样如上面所讨论的。正如所讨论的,输出比特流111可以提供高效的编码比特流,以由解码器使用以用于视频的呈现。
[0053] 图2是根据本公开的至少一些实现进行布置的示例下一代生成视频解码器200的示意图。如所示出的,解码器200可以接收输入比特流201。在一些示例中,输入比特流201可以经由编码器100和/或经由本文所讨论的编码器技术进行编码。如所示出的,输入比特流201可以由自适应熵解码器模块202接收。自适应熵解码器模块202可以对各种类型的编码的数据(例如,开销、运动矢量、变换系数等)进行解码。在一些示例中,自适应熵解码器202可以使用可变长解码技术。在一些示例中,自适应熵解码器202可以执行上面所讨论的自适应熵编码器模块101的反向操作。
[0054] 解码的数据可以被发送到自适应反向量化模块203。自适应反向量化模块203可以被配置为对量化的系数进行反向扫描和解缩放,以确定变换系数。例如,这样的自适应量化操作可以是有损耗的。在一些示例中,自适应反向量化模块203可以被配置为执行自适应量化模块109的相反操作(例如,实质上与自适应反向量化模块112相同的操作)。如所示出的,变换系数(以及,在一些示例中,用于参数变换的变换数据)可以被发送到自适应反向变换模块204。自适应反向变换模块204可以对变换系数执行反向变换,以生成与编码分区相关联的残差或剩余值或分区预测误差数据(或原始数据或小波数据)。在一些示例中,自适应反向变换模块204可以被配置为执行自适应变换模块108的相反操作(例如,实质上与自适应反向变换模块113相同的操作)。在一些示例中,自适应反向变换模块204可以基于其它之前解码的数据(例如,解码的相邻分区)来执行反向变换。在一些示例中,自适应反向量化模块203和自适应反向变换模块204可以共同被考虑为解码器200的变换解码器子系统。
[0055] 如所示出的,残差或剩余值或分区预测误差数据可以被发送到编码分区装配器205。编码分区装配器205可以按照需要将编码分区装配到解码的预测分区中(如所示出的,在一些示例中,编码分区装配器205可以经由开关205a和205b被跳过,使得解码的预测分区可以在自适应反向变换模块204处被生成)。预测误差数据的解码的预测分区(例如,预测分区残差)可以在加法器206处被添加到预测的分区(例如,预测像素数据),以生成重构的预测分区。所述重构的预测分区可以被发送到预测分区装配器207。预测分区装配器207可以装配重构的预测分区,以生成重构的瓦片、编码单元、或超片段。在一些示例中,编码分区装配器模块205和预测分区装配器模块207可以共同被考虑为解码器200的解分区器子系统。
[0056] 重构的瓦片、编码单元、或超片段可以被发送到解块滤波模块208。解块滤波模块208可以对重构的瓦片、编码单元、或超片段(或瓦片、编码单元、或超片段的预测分区)进行解块和抖动。例如,所生成的解块和抖动滤波参数可以根据输入比特流201确定。解块滤波模块208的输出可以被发送到质量恢复滤波模块209。质量恢复滤波模块209可以基于QR参数来应用质量滤波,例如,所述QR参数可以根据输入比特流201确定。如图2所示出的,质量恢复滤波模块209的输出可以被发送到解码的图片缓冲区210。在一些示例中,质量恢复滤波模块209的输出可以是可以用于对其它帧可以是可以用于对其它帧进行编码的预测的最终的重构的帧(例如,所述最终重构的帧可以是参考帧等)。在一些示例中,解块滤波模块
208和质量恢复滤波模块209可以共同被考虑为解码器200的滤波子系统。
[0057] 正如所讨论的,由于预测操作的补偿可以包括帧间预测补偿和/或帧内预测补偿。正如所示出的,帧间预测补偿可以由一个或多个模块执行,所述一个或多个模块包括变形图片生成和缓冲模块211、合成图片生成模块212、以及特性和运动补偿滤波预测器模块
213。变形生成模块211可以使用解量化的变形参数(例如,根据输入比特流210确定的)来生成变形的参考帧。合成生成模块212可以基于根据输入比特流201确定的参数来生成超分辨率(SR)图片和投影插补(PI)图片等。如果应用了帧间预测,则特性和运动补偿滤波预测器模块213可以基于输入比特流201中接收的帧和运动向量数据等来应用运动补偿。
[0058] 帧内预测补偿可以由帧内定向预测生成模块214来执行。帧内定向预测生成模块214可以被配置为执行空间定向预测,并且可以根据输入比特流201中的帧内预测数据来使用解码的相邻分区。
[0059] 正如在图2中所示出的,预测模式选择器模块215可以针对瓦片等的每一个预测分区来确定从“跳过”、“自动”、“帧间”、“多重”、以及“帧内”当中的预测模式选择,上述的全部可以基于在输入比特流201中的模式选择数据应用到P-图片和F-图片/B-图片。除了预测模式,它还允许选择参考类型,所述参考类型可以取决于“帧间”或“多重”模式以及对于P-图片和F-图片/B-图片可以是不同的。在预测模式选择器模块215的输出处的预测信号可以由预测融合滤波模块216进行滤波。预测融合滤波模块216可以基于经由输入比特流201确定的参数(例如,滤波系数、频率、开销)来执行滤波。在一些示例中,对预测信号进行滤波可以融合表示不同模式(例如,帧内、帧间、多重、跳过、以及自动)的不同类型的信号。在一些示例中,帧内预测信号可以与所有其它类型的帧间预测信号不同,使得合适的滤波可以极大地增强编码效率。所滤波的预测信号可以将第二输入(例如,预测分区)提供给差异确定器206,如上所讨论的。
[0060] 如所讨论的,质量恢复滤波模块209的输出可以是最终的重构帧。最终的重构帧可以被发送到自适应图片重组织器217,自适应图片重组织器217可以基于输入比特流201中的排序参数按照需要对帧进行重排序和重组织。重排序的帧可以被发送到内容后恢复器模块218。内容后恢复器模块218可以是被配置为执行对解码的视频的感知质量的进一步改进的可选模块。改进处理可以响应于输入比特流201中的质量改进参数被执行,或它可以被执行作为单独的操作。在一些示例中,内容后恢复器模块218可以应用参数来改进质量,例如,对胶片颗粒噪声和剩余块效应减少的估计(例如,甚至在与解块滤波模块208相关讨论的解块操作之后)。如所示出的,解码器200可以提供显示视频219,显示视频219可以被配置用于经由显示设备(未示出)进行显示。
[0061] 如所讨论的,在一些示例中,编码器100和/或解码器200可以实现涉及下一代视频编码的预测和编码的内容自适应划分的技术。在一些示例中,可以通过编码器100的预测分区发生器模块105执行用于预测的内容自适应划分。在一些示例中,可以通过编码器100的编码分区发生器模块107执行用于编码的内容自适应划分。在一些示例中,可以通过预测分区发生器模块105执行针对帧间预测等的用于预测的内容自适应划分,以及可以通过编码器100的编码分区发生器模块107执行针对帧间预测等的用于编码的内容自适应划分。在一些示例中,可以通过编码器100的预测分区发生器模块105或编码分区发生器模块107执行针对帧内预测的用于预测/编码的内容自适应划分(例如,仅一层划分)。此外,在一些示例中,基于被编码的预测分块和/或编码分块,编码器100的编码分区装配器模块114和/或解码器200的编码分区装配器模块205可以对编码分区进行装配,以形成预测分区。而且,在一些示例中,编码器100的预测分区装配器116和/或解码器200的预测分区装配器207可以对重构的预测分区进行装配,以形成瓦片、超片段,可以将瓦片、超片段进行装配以生成帧或图片。如所讨论的,可以将各种预测分区、编码分区或者瓦片、编码单元、或超片段用于帧间预测、帧内预测、其他编码效率增强、或者图像或视频增强,如文中所讨论的。
[0062] 虽然图1和图2示出了特定的编码和解码模块,但是未被描绘的各种其他编码模块或部件还可以根据本公开被利用。此外,本公开不限于在图1和图2中所示出的特定的部件和/或各种部件被布置的方式。本文所描述的系统的各种部件可以被实现在软件、固件、和/或硬件和/或其任何组合中。例如,编码器100和/或解码器200的各种部件还可以至少部分地由例如可以在计算系统(例如,移动电话)中找到的计算片上系统(SoC)的硬件提供。
[0063] 此外,可以认识到的是,编码器100可以与包括例如视频内容服务器系统的内容提供系统相关联和/或由内容提供系统提供,并且输出比特流111可以通过各种通信部件和/或系统(例如,未在图1和图2中描绘的收发机、天线、网络系统等)被发送或传递到解码器(例如,解码器200)。还可以认识到的是,解码器200可以与客户端系统相关联,所述客户端系统例如计算设备(例如,桌面型计算机、膝上型计算机、平板计算机、可变换的膝上型计算机、移动电话等),其是与编码器100远程的并且经由各种通信部件和/或系统(例如,未在图1和图2中描绘的收发机、天线、网络系统等)接收输入比特流201。因此,在各种实现中,编码器100和解码器子系统200可以被共同实现,或独立于另一个而被实现。
[0064] 图3示出了根据本公开的至少一些实现布置的具有用于进行分区的示例瓦片、编码单元、或超片段的示例视频帧310。视频帧310可以包括用于编码的任何适当的视频图像、帧、图片或数据等。在示出的示例中,视频帧310出于举例示出的目的包括来自“花朵”测试序列的视频帧。如所讨论的,可以将视频帧310分割成帧部分(例如,瓦片、编码单元、或超片段)。然后,可以对所述帧部分做进一步划分,如下文进一步讨论的。可以采用任何一种或多种适当的技术将视频帧310分成帧部分。在一些示例中,可以通过瓦片边界330将视频帧310分成瓦片320-1到320-30(在图3中,出于呈现的清晰起见没有对每一瓦片都作标示),使得瓦片320-1到320-30或者类似编码单元可以是用于划分的视频帧部分。视频帧310可以包括任何数量的瓦片320,而瓦片320可以是任何尺寸的。在一些示例中,瓦片320可以是64×64像素。此外,瓦片320可以具有任何形状。在各示例中,瓦片320可以是方形或矩形的。而且,如图所示,瓦片320在帧310内可以具有不同的形状和尺寸。例如,瓦片320-3可以是方形的并且是64×64像素,瓦片320-12可以是矩形的并且是32×64像素,瓦片320-30可以是方形的并且是32×32像素,等等。
[0065] 在其他示例中,用于划分的视频帧部分可以是超片段。例如,为了确定超片段,可以将视频帧310分割成一个或多个区域层。可以基于就比特成本而言的效率限制来以任何精确度(例如,像素分辨率)执行分割,并且将所述分割量化为任何分辨率。例如,可以以4像素、8像素或者16像素精确度(例如,4像素、8像素或16像素的精确度)执行分割。现在转向图5,示出了将视频帧分割为各个区域层。
[0066] 图5示出了根据本公开的至少一些实现布置的视频帧310的示例区域层分割。如图5所示,可以将视频帧310分割成一个或多个区域层。在图5所示的示例中,可以将视频帧310分割成两个区域层:区域层510和区域层520。在图5中,区域层510包括没有标记的视频帧段,以及区域层520包括以点标记的视频帧段。例如,区域层510可以表示视频帧310的背景部分,以及区域层520可以表示视频帧310的前景部分。在一些示例中,区域层可以表示场景等的前景、背景和中景(例如,多个中景)。在一些示例中,视频帧310可以包括单个区域层。
在一些示例中,视频帧310可以包括3个、4个、5个或者更多区域层。在一些示例中,可以通过预测分区发生器模块105执行对视频帧310的分割(请参考图1)。在一些示例中,可以通过插入在自适应图片组织器104和预测分区发生器105之间的另一模块(例如,瓦片、编码单元、或超片段发生器模块)执行对视频帧310的分割。在一些示例中,可以通过自适应图片组织器模块104(或者例如自适应图片组织器模块104的瓦片、编码单元、或超片段发生器模块)执行对视频帧310的分割。可以采用任何一种或多种适当技术来执行所述分割。在一些示例中,所述分割可以包括运行符号(symbol-run)编码技术。
[0067] 此外,可以对区域边界(例如,区域层510和区域层520之间的边界等)进行编码,从而在编码器100和/或解码器200处使用。可以采用任何一种或多种适当技术来执行区域边界编码。在一些示例中,区域边界编码可以包括符号运行编码技术。在一些示例中,区域边界编码可以包括生成在瓦片网格上逼近所述区域边界的码本。例如,瓦片网格(其可以或可以不与图3的瓦片320相对应)可以是具有32×32像素或者64×64像素等尺寸的等间隔瓦片网格。
[0068] 返回到图3,示出了区域层510和区域层520,使得通过遮蔽视频帧310的影像而示出区域层520,以及通过不遮蔽视频帧310的影像而示出区域层510。此外,如所讨论的,可以将视频帧分为瓦片320-1到320-30。在一些示例中,用于划分的帧部分可以包括超片段,所述超片段包括瓦片的单独的区域层部分,如图4所示。
[0069] 图4示出了根据本公开的至少一些实现布置的示例视频帧310的一行瓦片320-13到320-18的示例超片段401到411。如图所示,超片段401-411可以包括区域层中的瓦片的部分。例如,超片段401可以包括区域层510中的瓦片320-13的部分,超片段402可以包括区域层520中的瓦片320-13的部分,超片段403可以包括区域层510中的瓦片320-14的部分等等。如图所示,超片段可以具有基本上任何形状和尺寸(仅受所描述的分割操作的精确度限制)。例如,超片段403、410和411可以分别是瓦片320-14、320-17和320-18的全部,使得这些超片段可以与其相应的瓦片具有相同形状。此外,超片段401和404-409示出了各种可能的形状,尽管很多其他形状也是可能的。此外,超片段404示出了超片段未必是连续的。
[0070] 图6(A)和6(B)示出了根据本公开的至少一些实现布置的分割成区域层620、630、640并且根据瓦片650a-650d划分成超片段661-669的示例视频帧610。如图6(A)所示并且如上文所述,可以通过分区发生器模块105或者自适应图片组织器模块104采用任何适当的技术(例如符号运行编码)将视频帧610(出于呈现的清晰起见只示出了视频帧的一部分)分割成区域层620、630、640,如上文所讨论的。在一些示例中,区域层620、630、640可以表示场景等的前景、背景和中景。如图6(B)所示,可以使区域层620、630、640与瓦片650a-650d叠加或组合,瓦片650a-650d可以是如上文所述相对于视频帧610限定的(例如,可以将视频帧610分成瓦片650a-650d),以限定超片段661-669,从而使得超片段661-669中的每一个可以包括区域层中或区域层内的瓦片的部分。
[0071] 例如,超片段661可以包括区域层620中或内的瓦片650a的部分,超片段662可以包括区域层或中或内的瓦片650a的部分,超片段663可以包括区域层620中或内的瓦片650b的部分(例如,瓦片650b的全部),超片段664可以包括区域层630中或内的瓦片650c的部分,超片段665可以包括区域层620中或内的瓦片650c的部分,超片段666可以包括区域层640中或内的瓦片650c的部分,超片段667可以包括区域层630中或内的瓦片650d的部分,超片段668可以包括区域层620中或内的瓦片650d的部分,以及超片段669可以包括区域层640中或内的瓦片650d的部分。应当指出,在图6(B)中,可以通过表示区域层边界的实线和表示瓦片边界的阴影线两者来限定超片段边界。
[0072] 如所讨论的,可以通过将视频帧划分成瓦片、或编码单元、或者通过限定超片段来限定帧部分。在一些示例中,采用瓦片可以提供简化的优点,同时超片段可以更加复杂,但是可以提供增强的帧间或者帧内预测或图像增强的优点。在任一种情况下,可以如文中讨论的对帧部分进行分区。
[0073] 如下文进一步讨论的,可以通过预测分区发生器模块105(或者例如预测分区发生器模块105的瓦片、编码单元或超片段发生器模块)、插入在自适应图片组织器104和预测分区发生器105之间的另一模块(例如,瓦片、编码单元、或超片段发生器模块)或者由自适应图片组织器模块104(或者,例如,自适应图片组织器模块104的瓦片、编码单元、或超片段发生器模块)执行将视频帧310分割为瓦片、或编码单元、或超片段。
[0074] 图7是示出了根据本公开的至少一些实现布置的示例编码过程700的子集的流程图。过程700可以包括如操作702、704、706和/或708中的一个或多个所示的一个或多个操作、功能或动作。过程700可以形成下一代视频编码过程的至少部分。作为非限制性示例,过程700可以形成图1的编码器系统100实施的下一代视频编码过程的至少部分。
[0075] 过程700可以开始于操作702“接收视频”,其中,可以接收视频帧。所述视频帧可以是文中讨论的任何视频帧。
[0076] 过程700可以继续至操作704“将视频帧分割成瓦片、编码单元、或超片段”,其中,可以采用如文中讨论的任何技术将视频帧分割成瓦片、编码单元或超片段。
[0077] 过程700可以继续至操作706“确定用于瓦片、编码单元、或超片段的选定预测划分技术(例如,k-d树或二分树划分)”,其中,可以针对帧部分(例如,瓦片、编码单元或超片段)确定所选择的划分技术。在一些示例中,所选择的划分技术可以至少部分地基于视频帧的图片类型。如所讨论的,在一些示例中,用于帧部分的划分技术可以是从二分树划分或者k-d树划分中选定的结构化划分技术。例如,结构化划分技术可以提供划分,所述划分引起可以通过比特流对其进行有效编码的组织的数据。例如,二分树划分或者k-d树分区可以提供按位编码,其包括针对无切割的0和针对切割的1,随后是指示水平或者垂直切割的0或1,并重复所述切割的图案直到结束为止(例如,无切割)。也可以采用文中讨论的码本技术来对这样的结构化划分进行有效率地编码。
[0078] 如所讨论的,在一些示例中,可以基于视频帧的图片类型来确定选择的划分技术。例如,如所讨论的,视频帧可以是I图片、P图片或者F/B图片。在一些示例中,对于作为I图片的视频帧而言,所选的划分技术可以是k-d树划分技术。此外,在这样的示例中,帧部分可以包括64×64像素的瓦片尺寸或者基于64×64像素的瓦片尺寸确定的超片段。在一些示例中,对于作为P图片的视频帧而言,选定的划分技术可以是二分树划分技术。此外,在这样的示例中,对于低分辨率P图片而言,帧部分可以包括32×32像素的瓦片尺寸或者基于32×32像素的瓦片尺寸确定的超片段,或者对于高分辨率P图片而言,帧部分可以包括64×64像素的瓦片尺寸或者基于64×64像素的瓦片尺寸确定的超片段。在一些示例中,对于作为F图片的视频帧而言,选定的划分技术可以是二分树划分技术。此外,在这样的示例中,帧部分可以包括64×64像素的瓦片尺寸或者基于64×64像素的瓦片尺寸确定的超片段。
[0079] 在其他示例中,选定的划分技术可以至少部分地基于瓦片、编码单元或超片段(例如,帧部分)的特征。例如,所述特征可以包括至少一个帧部分内的预期数量的帧内块。例如,可以通过预测分区发生器105或编码控制器103确定预期数量的帧内块。在一些示例中,在帧内块的预期数量大于阈值时,选定的划分技术可以是k-d树划分技术,而在帧内块的预期数量小于阈值时,选定的划分技术可以包括二分树划分技术。
[0080] 过程700可以继续至操作708“采用选定的预测划分技术将瓦片、编码单元或超片段划分成多个可能的预测分区”,其中,可以采用选定的划分技术将帧部分划分成多个分区。例如,可以采用选定的划分技术(例如,从k-d树划分或二分树划分中选择的)对帧部分(例如,瓦片、编码单元或超片段)进行划分。例如,可以通过编码器100的预测分区发生器模块105对帧部分进行划分。例如,可以将帧部分划分成多个可能的预测分区,可以通过速率失真优化等对多个可能的预测分区进行评估,以选择选定的预测分区,可以将所述选定的预测分区用于文中讨论的编码。此外,可以通过编码划分指示符或码字来对选定的预测分区(例如,选定划分)进行如文中讨论的表示,可以将所述指示符或码字编码到诸如比特流111或比特流1000等的比特流当中。
[0081] 如上所述,例如取决于帧的图片类型或者帧部分的特征,可以采用从二分树划分或k-d树划分中选择的划分技术,对帧部分进行分区。此外,如上所述,帧部分可以是瓦片、编码单元或超片段等,以及帧部分基本上可以具有任何形状(尤其是在采用超片段时)。为了呈现的清晰起见,将相对于方形瓦片、编码单元或超片段来描述二分树划分和k-d树划分。但是,可以将所描述的技术应用于任何形状的瓦片、编码单元或超片段。在一些示例中,所描述的划分可以划分至最小的容许尺寸,例如,4×4像素等。
[0082] 图8示出了根据本公开的至少一些实现布置的采用二分树划分技术的帧部分800的示例划分。如图所示,在一些示例中,帧部分800可以包括方形。如所讨论的,在各种示例中,帧部分800可以包括任何适当的形状。此外,帧部分800可以包括文中讨论的瓦片、编码单元或超片段等。此外,在一些示例中,帧部分800本身可以是分区,使得可以将示出的分区考虑为子分区。在通过子分区发生器模块107将分区进一步划分用于编码(例如,变换编码)时可能发生这样的示例,下文将对此做进一步讨论。
[0083] 如图8所示,二分树划分可以包括划分的进展。开始于帧部分800,可以将分区1限定为帧部分800本身。可以垂直地将分区1划分成两个分区2、3。可以对分区2、3的每一个进行进一步划分,这一次是垂直划分成分区4、5(例如,分区3的分区)和分区6、7(例如,分区2的分区)。图8的第二行(自顶部)示出了将分区3进一步垂直划分成分区8、9,以及将分区2进一步垂直划分成分区10、11。图8的第三行(自顶部)示出了水平划分(例如,代替第一行(自顶部)的垂直划分)以从分区1生成分区12、13。图8的第三行(自顶部)还示出了对分区12、13做进一步的垂直划分,以生成分区14、15(例如,分区13的分区)和分区16、17(例如,来自分区12的分区)。第四行或底部行示出了对分区12的进一步水平划分,以生成分区18、19,以及对分区13的进一步水平划分,以生成分区20、21。如图所示,可以每次一维地(例如,水平地和垂直地)、递归地采用二分树划分,从而将每一分区细分或者划分成两个相等的分区,直到可以达到最小的分区尺寸。二分树划分可以将帧部分划分成很多数量的组合,并且其可以提供分区的平滑的进展。
[0084] 图9示出了根据本公开的至少一些实现布置的采用k-d树划分技术的帧部分900的示例划分。如图所示,在一些示例中,帧部分900可以包括方形。如所讨论的,在各示例中,帧部分900可以包括任何适当的形状。此外,帧部分900可以包括文中讨论的瓦片、编码单元或超片段等。
[0085] 如图9所示,k-d划分可以包括划分的进展。此外,如图所示,k-d树分区可以是二分树划分的超集,使得图9的1-4行(从图9的顶部开始)可以与图8的1-4行匹配。在一些示例中,图9所示的k-d树分区的过程可以在特定维度(例如,垂直或水平)中将帧部分900迭代地划分成四个矩形分区。开始于帧部分900,可以将分区1限定为帧部分900自身。可以垂直地将分区1划分成两个分区2、3。可以对分区2、3的每一个进行进一步划分,这一次是垂直划分成分区4、5(例如,分区3的分区)和分区6、7(例如,分区2的分区)。图9的第二行(自顶部)示出了将分区3进一步垂直划分成分区8、9,以及将分区2进一步垂直划分成分区10、11。图9的第三行(自顶部)示出了水平划分(例如,代替第一行(自顶部)的垂直划分)以生成来自分区1的分区12、13。图9的第三行(自顶部)还示出了对分区12、13做进一步的垂直划分,以生成分区14、15(例如,分区13的分区)和分区16、17(例如,来自分区12的分区)。第四行(自顶部)示出了对分区12的进一步水平划分,以生成分区18、19,以及对分区13的进一步水平划分,以生成分区20、21。
[0086] 如所讨论的,一直到第四行,k-d树分区可以基本上与二分树划分匹配。如图9的第五行(自顶部)所示,可以将帧部分900垂直地划分成1/4和3/4尺寸分区,以生成分区22、23。此外,可以将分区23垂直地对半划分,以生成分区24、25,以及可以将分区22垂直地对半划分,以形成分区26、27。如图9的第六行或底部行所示,可以将帧部分900水平地划分成1/4和
3/4尺寸分区,以生成分区28、29、此外,可以将分区28水平地对半划分,以生成分区30、31,以及可以将分区29水平地对半划分,以形成分区32、33。这样的划分过程可以沿交替维度(例如,水平和垂直)递归地重复,从而将每一个分区细分或划分成2个相等部分(对半)和2个不等部分(例如,按照1:3的比例),直到可以达到最小的分区尺寸为止。K-d树分区可以将帧部分划分成很多数量的组合,其不仅在分区和子分区(等等)的中点上进行分区而且还在每次访问(access)时采取更进一步的准确度。在示出的示例中,采用四分之一准确度。在其他示例中,可以采用任何准确度,例如,可以采用三分之一或者五分之一等。
[0087] 如相对于图8和图9讨论的,可以将帧部分划分成各种各样的分区。可以采用索引值来对分区的每一个进行编索引,并将分区的每一个发送至编码控制器103(请参考图1)。例如,经索引和发送的分区可以包括数百个分区。可以将关于图1讨论的一个或多个分区用于预测和/或编码(例如,变换编码;在一些示例中,还可以进一步将用于编码的分区进一步划分成子分区)。例如,可以完全采用帧内预测来预测I图片,P图片可以采用帧间和帧内预测,但是帧间预测可以是对P图片的预测的主要来源,以及F/B图片可以既采用帧间预测又采用帧内预测二者。例如,编码控制器103可以选择在帧间预测和帧内预测操作中采用的分区。可以将与帧间和/或帧内预测相关联的数据以及限定所采用的分区的数据编码到比特流当中,例如,下文将对此做进一步讨论。
[0088] 在一些示例中,各种各样的划分选择可以被限制或者受到约束。可以在二分树划分示例或者在k-d树分区示例中应用这样的约束条件。例如,对帧部分(例如,瓦片、编码单元或超片段)进行分区可以包括将第一分区预定义为沿第一维度(例如,水平或垂直)将帧部分二等分,以及将第二分区预定义为沿第二维度(例如,与第一二等分相反)对至少一个帧部分进行二等分。例如,可以仅在这样的初始约束划分之后进行进一步的分区,使得基于初始帧部分的分区将不再是可用的。这样的约束条件可以实现从64×64像素帧部分开始,并且将所述帧部分划分成32×32尺寸的子部分,并且然后通过k-d树或二分树划分来对每一子部分进行分区,这可以限制分区的数量。
[0089] 可以限定预测分区和/或编码分区(例如,可以限定它们的形状和/或位置)以由编码器和/或解码器使用。在一些示例中,可以采用基于像素块的符号运行编码来限定帧部分的单独的预测分区或者预测分区的编码分区。在其他示例中,可以采用码本来限定帧部分的单独的预测分区或者预测分区的编码分区。表1示出了在限定瓦片、编码单元或超片段当中采用的具有32×32像素的片段尺寸的条目(entry)的示例二分树划分码本。在表1中,大X表示未结束的分区。
[0090]
[0091]
[0092] 表1:二分树划分码本条目的示例
[0093] 表2示出了在限定瓦片、编码单元或超片段的当中采用的具有32×32像素的片段尺寸的条目的示例k-d树分区码本。
[0094]
[0095]
[0096]
[0097] 表2:k-d树分区码本条目的示例
[0098] 表1和表2仅示出了示例码本条目。条目的完整码本可以提供对所有可能的条目及其编码的全部或者基本上全部的列举。在一些示例中,码本可以考虑上文所述的限制条件。在一些示例中,可以将与分区(或者子分区)的码本条目相关联的数据编码到比特流当中,以供解码器使用,如文中所讨论的。
[0099] 如所讨论的,可以基于选定的划分技术(例如,二分树划分或者k-d树分区)来对帧部分(例如,瓦片、编码单元或超片段)进行分区,以生成预测分区。可以基于帧间预测技术和/或帧内预测技术将预测分区用于编码。通过编码器实现的本地解码循环可以生成预测分区,可以采用所述预测分区来生成预测误差数据分区或残差(例如,预测分区和原始像素数据之间的差)。在一些实例中,可以对与预测分区相关联的预测误差数据分区进行编码,以及因此可以基本上可互换地将它们描述为预测分区或编码分区。例如,这样的实例可能发生在I图片的帧内预测的上下文中(或者在一些实现中发生在P图片和F/B图片的帧内预测的上下文中)。在其他实例中(例如,在P和F/B图片中),可以对预测误差数据分区进行评估,以确定是否需要对预测误差数据分区进行编码,如果是,则可以将相关联的分区进一步划分成用于编码的编码分区。此外,可以采用符号运行编码或码本等来表征或限定预测分区和/或编码分区。还是如所讨论的,可以将与所描述的预测分区和/或编码分区相关联的数据、预测数据等编码(例如通过熵编码器)到比特流当中。可以将比特流发送至解码器,解码器可以采用编码的比特流来对视频帧进行解码以用于显示。
[0100] 图10示出了根据本公开的至少一些实现布置的示例比特流1000。在一些示例中,比特流1000可以与如图1所示的输出比特流111和/或如图2所示的输入比特流201相对应。虽然为了呈现的清楚起见没有在图10中示出,但是在一些示例中,比特流1000可以包括报头部分和数据部分。在各种示例中,比特流1000可以包括与如本文讨论的对视频帧进行编码相关联的数据、指示符、码字、索引值、模式选择数据、参考类型数据等类似数据。如图所示,在一些示例中,比特流1000可以包括编码分区限定数据1010、预测误差数据分区编码数据1020(例如,已经经过变换编码和量化的预测误差数据)、预测分区限定数据1030、帧间预测数据1040、预测分区限定数据1050和/或帧内预测数据1060。可以将示出的数据按照任何顺序包含在比特流1000内,并且它们可以是相邻的或者由用于对视频编码的各种额外数据中的任何其它数据隔开。
[0101] 例如,编码分区限定数据1010可以包括与通过编码分区发生器107限定的编码分区相关联的数据。例如,编码分区限定数据1010可以包括与采用符号运行编码或码本技术等限定二分树划分相关联的数据,例如,编码分区指示符或码字等。此外,编码分区限定数据1010可以与通过自适应变换模块108和/或自适应熵编码器模块110生成的预测误差数据分区编码数据1020相关。预测误差数据分区编码数据1020(例如,变换系数等)可以包括经变换编码和量化的余留数据。可以通过用于解码的比特流1000来传输预测误差数据分区编码数据1020。
[0102] 例如,预测分区限定数据1030可以包括与通过预测分区发生器105限定的预测分区相关联的数据。预测分区限定数据1030可以包括与限定二分树划分或k-d树分区相关联的数据,如文中所讨论的。在各种示例中,预测分区限定数据1030可以限定与帧间预测数据或帧内预测数据相关联的分区。例如,预测分区限定数据1030可以包括与采用符号运行编码或码本技术等限定二分树划分或k-d树分区相关联的数据,例如,预测分区指示符或码字等。在一些示例中,预测分区限定数据1030可以与帧间预测数据1040相关联,使得可以将帧间预测数据配置为向由分区限定数据1030限定的分区提供帧间预测(例如,运动补偿等)。
[0103] 例如,预测分区限定数据1050可以包括与通过预测分区发生器105限定的预测分区相关联的数据。预测分区限定数据1050可以包括与限定二分树划分或k-d树分区相关联的数据,如文中所讨论的。在一些示例中,预测分区限定数据1030和预测分区限定数据1050可以限定同一帧内的预测分区。在其他示例中,预测分区限定数据1030和预测分区限定数据1050可以限定不同帧内的分区。在各种示例中,预测分区限定数据1050可以限定与帧间预测数据或帧内预测数据相关联的预测分区。例如,预测分区限定数据1050可以包括与采用符号运行编码或码本技术等限定二分树划分或k-d树分区相关联的数据。在一些示例中,预测分区限定数据1050可以与帧内预测数据1060相关联,使得帧内预测数据1060可以被配置为向由预测分区限定数据1050限定的预测分区提供帧内预测。在一些示例中,可以通过预测分析器及预测融合滤波模块124等生成帧内预测数据1060。
[0104] 如所讨论的,比特流1000可以由诸如编码器100的编码器生成和/或由用于解码的解码器200接收,使得可以通过显示设备来呈现视频帧。
[0105] 图11是示出了根据本公开的至少一些实现布置的示例解码过程1100的流程图。过程1100可以包括如由一个或多个操作1102、1104、1106、1108、1109、1110、1112和/或1114示出的一个或多个操作、功能或行动。过程1100可以形成下一代视频编码过程的至少部分。作为非限制性的示例,过程1100可以形成如图2的解码器系统200所实施的下一代视频解码过程的至少部分。
[0106] 过程1100可以在操作1102“接收编码的比特流”开始,在操作1102中可以接收比特流。例如,如本文讨论的进行编码的比特流可以在视频解码器处被接收。在一些示例中,可以经由解码器200来接收比特流1100。
[0107] 过程1100可以在操作1104“对熵编码的比特流进行解码以确定预测编码分区指示符、预测模式、预测参考类型、预测参数、运动矢量、编码分区指示符、块尺寸数据、变换类型数据、量化器(Qp)、以及量化变换系数”,其中比特流可以被解码以确定编码分区指示符(或码字)、块尺寸数据、变换类型数据、量化器(Qp)、量化的变换系数。例如,解码的数据可以包括与编码分区(例如,变化系数)相关联的数据以及与编码分区相关联的一个或多个指示符。例如,变换系数可以是针对固定变换或者内容自适应变换的,如文中讨论的。变换类型数据可以指示用于编码分区的变换类型、参数变换定向(例如,用于混合参数变换而言)和/或变换模式(例如,xmmode;仅用于采用预测差信号或原始信号的模式选择之间的帧内编码信号)。在一些示例中,可以通过自适应熵解码器模块202执行解码。在一些示例中,确定变换系数还可能涉及反向量化操作。在一些示例中,可以由自适应反向量化模块203来执行反向量化操作。
[0108] 在一些示例中,可以对比特流进行熵解码,以确定与第一单独的预测分区相关联的帧间预测数据、限定第一单独的预测分区的数据、与第二单独的预测分区相关联的帧内预测数据、限定第二单独的预测分区的数据以及与单独的预测误差数据分区相关联的数据。例如,第一单独的预测分区可以包括二分树划分,以及第二单独的预测分区可以包括k-d树分区,如文中讨论的。在一些示例中,可以对比特流进行熵解码,从而进一步确定与单独的预测误差数据分区相关联的数据,如本文所讨论的。
[0109] 过程1100可以在操作1106“对量化系数应用量化器(Qp)以生成反向量化的变换系数”继续,其中量化器(Qp)可以被应用于量化的变换系数以生成反向量化的变换系数。例如,操作1106可以经由自适应反向量化模块203被应用。例如,与单独的预测误差数据分区相关联的数据可以被反向量化以生成解码的系数。
[0110] 过程1100可以在操作1108“基于变换类型和块尺寸数据来在编码(或帧内预测)分区中的系数的每个解码块上执行反向变换以生成解码的预测误差分区”继续,其中在编码(或帧内预测)分区中的变换系数的每个解码块上,可以执行基于变换类型和块尺寸数据的反向变换以生成解码的预测误差分区。在一些示例中,反向变换可以包括反向尺寸自适应变换。在一些示例中,反向变换可以包括反向固定变换。一些示例中,反向变换可以包括反向内容自适应变换。在这样的示例中,执行反向内容自适应变换可以包括基于解码的视频数据的相邻块来确定与反向内容自适应变换相关联的基础功能。如本文讨论用于编码的任何正向变换可以用于使用相关联的反向变换来进行解码。在一些示例中,反向变换可以由自适应反向变换模块204执行。在一些示例中,生成解码的预测误差分区还可以包括经由编码分区装配器205来装配解码的编码分区。
[0111] 例如,可以将与单独的预测误差数据分区相关联的数据(例如,解码的系数)进行反向变换,以生成预测误差数据分区(例如,用于预测分区的误差数据),或者生成解码的编码分区,可以对所述解码的编码分区进行组合或装配以生成预测误差数据分区。在一些示例中,可以基于与单独的预测误差数据分区相关联的数据执行反向量化和反向变换,以生成解码的编码分区(例如,预测误差数据分区的解码的编码分区)。在一些示例中,如所讨论的,编码分区可以是预测误差数据分区的二分树编码分区。
[0112] 过程1100可以在操作1109“采用预测分区指示符、预测模式、预测参考类型和运动矢量生成预测的分区”继续,其中,可以采用预测分区指示符、预测模式、预测参考类型和运动矢量(连同预测参考图片)来生成预测分区(例如,用于预测分区或者与预测分区相关的像素数据)。
[0113] 过程1100可以在操作1110“将相对应的预测分区加到解码的预测误差数据分区以生成重构的分区”继续,其中可以将(解码的)预测分区加到解码的预测误差数据分区以生成重构的预测分区。例如,可以经由加法器206将解码的预测误差数据分区加到相关联的预测分区。在一些示例中,可以通过执行帧间或者帧内预测生成重构分区(例如,可以通过帧间或者帧内预测采用先前解码的分区等来生成预测分区)。在一些示例中,可以执行运动补偿来基于从比特流解码的帧间预测数据(例如,运动矢量),以生成解码的单独的预测分区。在一些示例中,可以基于从比特流解码的帧内预测数据来执行帧内预测以获得解码的单独的预测分区。
[0114] 过程1100可以在操作1112“装配重构的分区以生成瓦片、编码单元、或超片段”继续,其中可以装配重构的预测分区以生成瓦片、编码单元、或超片段。例如,可以经由预测分区装配器模块207来装配重构的预测分区以生成瓦片、编码单元、或超片段。
[0115] 过程1100可以在操作1114“装配图片的瓦片、编码单元、或超片段以生成完整解码的图片”继续,其中可以装配图片的瓦片、编码单元、或超片段以生成完整解码的图片。例如,在可选的解块滤波和/或质量恢复滤波之后,可以装配瓦片、编码单元、或超片段以生成完整解码的图片,完整解码的图片可以经由解码的图片缓冲器210被存储和/或在经由自适应图片再组织器模块217和内容后恢复器模块218处理之后被发送以用于经由显示设备呈现。
[0116] 可以在软件、固件、和/或硬件和/或其任何组合中实现本文所述的系统的各种部件。例如,系统300的各种部件可以至少部分地由例如可以在计算系统(例如,智能电话)中的计算片上系统(SoC)提供。本领域中的技术人员可以认识到,本文描述的系统可以包括未在相对应的图中描绘的附加部件。例如,本文讨论的系统可以包括为了清楚而未被描绘的附加部件,例如,比特流多路复用器或解多路复用器模块等。
[0117] 图12(A)和12(B)示出了根据本公开的至少一些实现布置的示例编码器子系统1200和1210的示意图。在一些示例中,可以通过图1所示的编码器100来实现编码器子系统
1200或1210。如图12(A)所示,编码器子系统1200可以包括预测分区发生器模块105,如上文所讨论的。如图所示,在一些示例中,预测分区发生器模块105可以包括瓦片、编码单元或超片段发生器模块1201,其可以生成如文中讨论的瓦片、编码单元或超片段。
[0118] 如图12(B)所示,编码器子系统1210可以包括实现在自适应图片组织器104(在一些实现中可以不将其视为是编码器子系统1210的部分)和预测分区发生器105之间的单独的瓦片、编码单元或超片段发生器模块1201。在其他示例中,可以通过自适应图片组织器104来实现单独的瓦片、编码单元或超片段发生器模块1201,并且可以将自适应图片组织器
104视为编码器子系统的部分。
[0119] 如所讨论的,在一些示例中,可以对超片段进行编码。在一些示例中,可以通过符号运行编码对超片段进行编码,所述符号运行编码可以利用沿一维(1D)扫描的相邻块之间的相关性,就像属于同一区域的相邻块那样。在其他示例中,可以采用码本来近似在32×32像素或者64×64像素等等的等间距或者基本上等间距的瓦片网格上的帧部分边界。在这样的示例中,可以采用可从码本获得的最闭合性(closest)的图案来近似通过每一瓦片的主边界,并且可以将与该图案相对应的代码包括在比特流当中以由解码器使用。在一些示例中,这样的边界表示可以是有损耗的,从而使比特成本最小化。
[0120] 在各种实现中,可以由预测分区发生器模块105生成帧部分(例如,瓦片、编码单元或超片段)或者将帧部分发送至预测分区发生器模块105,预测分区发生器模块105可以包括二分树划分发生器模块1202和k-d树分区发生器模块1203。如图所示,取决于开关1204、1205的操作,可以将帧部分输入到二分树划分发生器模块1202或者k-d树分区发生器模块
1203。在一些示例中,开关1204、1205可以基于帧部分的帧的图片类型进行操作。例如,如果帧是I图片,那么可以通过开关1204、1205将接收到的帧部分输入到k-d树分区发生器模块
1203内。如果帧是P或F/B图片,那么例如可以通过开关1204、1205将接收到的帧部分输入到二分树划分发生器模块1202内。在其他示例中,开关1204、1205可以基于接收到的帧部分的特征来进行操作。例如,如果帧部分的帧内块的预期量大于阈值,那么可以将所述帧部分输入到k-d树分区发生器模块1203内,并且如果帧部分的帧内块的预期量小于阈值,那么可以将帧部分输入到二分树划分发生器模块1202内。在各示例中,所述阈值可以是预定义的或者是试探确定的等等。
[0121] 如图所示,可以将预测分区发生器模块105的输出(通过开关1205控制的)输入到差异确定器106内,其中,处理可以如上文参考图1所讨论的继续进行,使得对差异确定器106的第二输入是预测融合分析器及预测融合滤波模块126的输出,并且使得可以可选地将差异确定器106的输出(例如,预测误差数据分区或残差等)输入到编码分区发生器107内,这一操作是通过开关107a、107b控制的,如文中所讨论的。在一些示例中,对于F/B图片或者P图片中的帧间预测而言,可以将预测误差数据分区发送至编码分区发生器模块107,从而进一步划分为编码分区(例如,通过二分树划分技术)。在一些示例中,对于I图片中的帧内预测而言,预测误差数据分区(或原始像素数据)可以绕过编码分区发生器模块107,使得在变换编码(例如,通过自适应变换模块108)之前不执行任何额外的划分。在这样的示例中,可以只对帧部分(例如,瓦片、或编码单元、或超片段)进行一次划分,并且具体取决于内容,可以将这样的分区描述为预测分区或编码分区或两者。例如,作为来自预测分区发生器的输出,可以将这样的分区看作是预测分区(因为正在将它们用于预测),而在自适应变换模块108处,则可以将这样的分区看作是编码分区(因为正在对这样的分区进行变换编码)。
[0122] 图13是根据本公开的至少一些实现布置的示例解码器子系统1300的示意图。在一些示例中,可以通过图2所示的解码器200实现编码器子系统1300。如图13所示,解码器子系统1300可以包括编码分区装配器模块205,其可以可选地从自适应反向变换模块204(未示出,请参考图2)接收输入,正如通过开关205a、205b控制的。可以提供编码分区装配器模块205的输出或者旁路通过的数据(例如,预测误差数据分区)作为加法器206的输入。如所讨论的,在一些示例中,预测误差数据分区可能已经在不进一步划分的情况下进行了变换编码(例如,在I图片的帧内预测中),并且可以绕过编码分区装配器模块205,而在一些示例中,预测误差数据分区可能已经被进一步划分为编码分区以用于变换编码,并且编码分区装配器模块205可以将这样的编码分区装配成预测误差数据分区。
[0123] 可以由预测融合滤波模块216的输出提供对加法器206的第二输入(例如,解码的预测分区),如上文参考图2所讨论的。如图所示,解码器子系统1300还可以包括预测分区装配器模块207,预测分区装配器模块207可以包括二分树划分装配器模块1301和k-d树分区装配器模块1302。可以基于开关1304、1305的控制将加法器206的输出(例如,重构的预测分区)输入到二分树划分装配器模块1301或者k-d树分区装配器模块1302内。例如,可以将二分树划分输入到二分树划分装配器模块1301内,以用于装配成帧部分,以及可以将k-d树分区输入到k-d树分区装配器模块1302内,以用于装配成帧部分(例如,根据在编码器处执行的划分的类型)。
[0124] 同样,如图所示,在一些示例中,预测分区装配器模块207可以包括瓦片、编码单元或超片段装配器模块1303,其可以被配置成将装配后的帧部分(例如,瓦片、编码单元或超片段)装配成视频帧。可以将分区装配器模块207的输出视频帧输入到解块滤波模块208(未示出,请参考图2)内,以用于进一步处理,如文中所讨论的。在其他示例中,可以在预测分区装配器模块207和解块滤波模块208之间独立地实现瓦片、编码单元或超片段装配器模块1303(请参考图2)。
[0125] 与过程700、1100有关的一些额外的和/或替代的细节以及文中讨论的其他过程可能在文中讨论的、尤其是下文联系图14讨论的实现的一个或多个示例中示出。
[0126] 图14(A)和14(B)共同提供了根据本公开的至少一些实现布置的视频编码系统1500和过程1400的组合的示例的详细示出。在所示出的实现中,过程1400可以包括如由行动1401到1423中的一个或多个示出的一个或多个操作、功能或行动。作为非限制性示例,在本文中将关于包括图1的编码器100和图2的解码器200的示例视频编码系统1500来描述过程1400,正如下面关于图20在本文进一步讨论的。在各种示例中,过程1400可以由包括编码器和解码器二者的系统或由具有使用编码器(和可选地解码器)的一个系统和使用解码器(和可选地编码器)的另一系统的单独系统实施。也注意,如上面所讨论的,编码器可以包括使用局部解码器作为编码器系统的一部分的局部解码循环。
[0127] 在所示出的实现中,视频编码系统1400可以包括逻辑电路1450、类似物和/或其组合。例如,逻辑电路1450可以包括编码器100,并且可以包括如关于图1(或图17)和/或图3-图6所讨论的任何模块,并且可以包括如关于图2和/或图18讨论的任何模块。虽然如图14(A)和14(B)所示的视频编码系统1500可以包括与特定的模块相关联的特定的一组块或行动,但是这些块或行动可以与和本文所示出的特定模块不同的模块相关联。虽然如所示出的过程1400目的在于编码和解码,但是所描述的概念和/或操作可以被单独地应用于编码和/或解码,以及更一般地被应用于视频编码。
[0128] 过程1400可以在操作1401“接收视频序列的输入视频帧”开始,其中可以经由例如编码器100来接收视频序列的输入视频帧。视频帧可以是用于编码的任何合适的视频图像、帧、图片、或数据等。
[0129] 过程1400可以在操作1402“使图片类型与一组图片中的每一个视频帧相关联”继续,其中图片类型可以经由例如内容预分析器模块102与一组图片中的每一个视频帧相关联。例如,图片类型可以是F-图片/B-图片、P-图片或I-图片等。在一些示例中,视频序列可以包括图片组,并且本文描述的处理(例如,操作1403到1411)可以在一组图片的帧或图片上执行,并且所述处理可以对一组中的所有帧或图片重复,并且然后对视频序列中的所有组的图片重复。此外,视频帧可以是低分辨率或高分辨率。
[0130] 过程1400可以在操作1403“将图片分成瓦片和/或超片段和潜在的预测分块”继续,其中图片可以经由例如预测分区发生器105被分成瓦片或超片段和潜在的预测分区。
[0131] 过程1400可以在操作1404“针对候选预测分块、预测模式和预测参考类型的组合确定预测参数”继续,其中,可以针对每一个可能的预测分块(例如,候选预测分块)、预测模式(例如,所讨论的帧内、帧间、多重、跳过、自动或拆分)和预测参考类型(例如,预测参考图片的类型——合成的或者变形的或者原始图片以及这样的图片的过去或未来版本的各种组合)的组合,来执行预测并且可以确定预测参数。例如,可以生成一定范围的可能预测分块(每一个具有各种预测分区)、可能的模式和可能的参考类型,并且可以确定相关联的预测、模式和参考类型。可以采用速率失真优化等确定这样的预测分区、模式(每预测分区)和参考类型(每预测分区)的最佳组合。例如,预测可以包括采用基于特征和运动的多重预测或帧内预测等的预测。
[0132] 例如,对于每一个预测分区而言,模式(例如,所讨论的帧内、帧间、多重、跳过、自动或拆分)和参考类型(例如,从各种各样的选择当中选出的参考图像,所述选择基于过去解码的图片、未来解码的图片以及基于这样的过去和未来解码的图片的图片,包括变形图片——例如,基于增益、配准、模糊或主运动来修改的图片,或者包括合成图片——例如,采用超分辨率图片生成或投影迹线图片生成基于参考图片来生成的图片。例如,下述表示出了示例模式和这些模式中可用的示例参考类型。可以采用其他示例。在任何事件中,对于每一个预测分区而言,可以生成预测模式指示符(例如,指示预测分区的选定模式)和参考类型指示符(例如,在必要时指示参考图片类型)并将其编码到比特流当中。
[0133]编号 预测分区模式
0 帧内
1 跳过
2 拆分
3 自动
4 帧间
[0134]5 多重
[0135] 表3:示例预测分区模式
[0136]编号 参考类型
0 MR0n(=过去SR0)
1 MR1n
2 MR2n
3 MR3n
4 MR5n(过去SR1)
5 MR6n(过去SR2)
6 MR7n(过去SR3)
7 MR0d
8 MR0g
[0137] 表4:帧间模式中的针对P图片的示例参考图片类型
[0138]编号 参考类型
0 MR0n
1 MR7n(=proj F)
2 MR3n(=未来SR0)
3 MR1n
4 MR4n(未来SR1)
5 MR6n(未来SR2)
6 MR7n(未来SR3)
7 MR0d
8 MR3d
0 MR0g/MR3g
[0139] 表4:帧间模式中的针对F/B图片的示例参考图片类型
[0140] 在表3和表4中,对参考图片类型命名的命名法如下:开头的MR表示多重参考,SR表示超分辨率,以及F表示未来,下一数字指示针对该参考的计数器,其中0指示紧挨着的前一个,1指示再前一个,2指示又再前一个,3指示更再前一个,4指示未来第一,5指示基于1新生成的超分辨率图片,6指示基于2新生成的超分辨率图片,7指示基于3新生成的超分辨率图片,以及接下来的小写字母中,n指示无变化,g表示基于增益的变形,d表示基于主运动的变形,以及b表示基于模糊的变形。如所讨论的,表3和表4中提供的参考仅提供了示例参考(例如,并非所有的数学上可能的组合),例如,只提供了基于图片类型和模式的最为有利的参考组合。这样的组合可以生成码本,编码器和解码器可以通过其传达从可用类型中选出的参考。
[0141] 如所讨论的,在一些示例中,可以执行帧间预测。在一些示例中,可以使用多达4个解码的过去和/或未来的图片和几个变形/合成预测来生成大量参考类型(例如,参考图片)。例如,在“帧间”模式中,可以在P-图片中支持多达9个参考类型(在表3中提供了其的示例),并且对于F-图片/B-图片可以支持多达十个参考类型(在表4中提供了其的示例)。此外,“多重”模式可以提供一种类型的帧间预测模式,其中不使用1个参考图片,可以使用2个参考图片,并且P-图片和F-图片/B-图片分别可以允许3个和多达8个参考类型。例如,预测可以至少部分地基于使用变形技术或合成技术中的至少一种生成的以前解码的帧。在这样的示例中,比特流(下面关于操作1412讨论的)可以包括与预测分区相关联的帧参考、变形参数、或合成参数。使用2个(例如,多重)参考生成的预测分区的组合可以基于平均、加权平均等。
[0142] 过程1400可以在操作1405“对于每一个候选预测分块,确定用于生成预测误差数据分区的实际的预测分区”继续,其中对于每一个候选预测分块,可以生成实际的预测分区。例如,对于每一个候选分块以及模式和参考类型(和相关联的预测分区、预测、和预测参数),可以确定预测误差。例如,确定潜在的预测误差可以包括确定原始像素(例如,预测分区的原始像素数据)与预测像素区的差异。如所讨论的,在一些示例中,预测误差数据分区可以包括至少部分地基于使用变形技术或合成技术中的至少一种来生成的以前解码的帧而生成的预测误差数据。
[0143] 过程1400可以在操作1406“选择最佳预测分块和预测类型并且保存相对应的预测模式、预测参考类型、以及预测参数”继续,其中可以选择预测分块和预测类型并且可以保存相关联的参数(例如,预测模式、参考类型、以及参数)以用于在比特流中进行编码。在一些示例中,可以选择具有最小预测误差的潜在的预测分块。在一些示例中,可以至少部分地基于率失真优化(RDO)来选择潜在的预测分块。在一些示例中,相关联的预测参数可以被存储以及编码在如所讨论的比特流中,以用于传输到解码器,并且由解码器使用。
[0144] 过程1400可以在操作1407“在分区预测误差数据的各种潜在编码分块上执行具有各种块尺寸的固定或内容自适应变换”继续,其中可以在分区预测误差数据的各种潜在编码分块上执行具有各种块尺寸的固定的或内容自适应变换。例如,分区预测误差数据可以被划分以生成多个编码分区。例如,分区预测误差数据可以由如在本文讨论的编码分区发生器模块107的二分树编码划分器模块或k-d树编码划分器模块进行分区。在一些示例中,与F-图片/B-图片或P-图片相关联的分区预测误差数据可以由二分树编码划分器模块进行分区。在一些示例中,与I-图片(例如,在一些示例中,瓦片、或编码单元、或超片段)相关联的视频数据可以由k-d树编码划分器模块划分。在一些示例中,可以经由一个或多个开关来选择或挑选编码划分器模块。例如,分区可以由编码分区发生器模块107生成。如所讨论的,在一些示例中,可以确定预测误差数据分区或残差是否需要编码。例如,如果残差大于等于阈值(例如,预定义阈值或者试探确定的阈值等),那么可以认为残差需要编码。如果残差小于阈值,那么可以认为残差不需要编码。例如,可以确定单独的残差需要编码。
[0145] 可以基于速率失真优化等采用编码划分以及对编码划分执行的自适应和固定变换的各种组合确定最佳或选定编码划分和相关联的变换,如下文所讨论的。在一些示例中,例如,可以采用索引值1、2、3……m对生成的编码分区(例如,基于k-d树分区的)的每一个进行编索引。可以在编码器100的编码分区发生器模块107处对编码分区编索引。可以将所生成的编码分区和相关联的编码分区索引值发送至编码控制器103。
[0146] 过程1400可以在操作1408“确定最佳编码分块、变换块尺寸、以及实际的变换”继续,其中可以确定最佳编码分块、变换块尺寸、以及实际的变换。例如,可以基于RDO或另一基础来评估各种编码分块(例如,具有各种编码分区)以确定选定的编码分块(其也可以包括当编码分区与如所讨论的变换块尺寸不匹配时将编码分区进一步分成变换块)。例如,实际变换(或选定的变换)可以包括在如本文描述的编码分区或块尺寸上执行的任何内容自适应变换或固定变换。可以如文中讨论的通过编码分区指示符或编码分区码字将选定的编码分块进行编码,以用于编码到比特流当中。类似的,可以采用码本或指示符等对选定的变换进行编码,并将其编码到比特流当中。
[0147] 过程1400可以在操作1409“量化和扫描变换系数”继续,其中可以量化和扫描与编码分区(和/或变换块;例如,基于选定的编码分块有选定的变化生成的变化参数)相关联的变换系数以为熵编码作准备。
[0148] 过程1400可以在操作1410“重构像素数据、装配到图片中并且保存在参考图片缓冲器中”继续,其中像素数据可以被重构、装配到图片中并且被保存在参考图片缓冲器中。例如,在局部解码循环(例如,包括反向扫描、反向变换、和装配编码分区)之后,可以生成预测误差数据分区。预测误差数据分区可以与预测分区相加以生成重构的预测分区,所述重构的预测分区可以被装配到瓦片、编码单元、或超片段中。装配的瓦片、编码单元、或超片段可以可选地经由解块滤波和/或质量恢复滤波来处理并且被装配以生成图片。图片可以被保存在解码的图片缓冲器119中作为用于预测其它(例如,后面的)图片的参考图片(如所讨论的)。
[0149] 过程1400可以在操作1411“对与每一个瓦片、编码单元、或超片段相关联的数据进行熵编码”继续,其中与每一个瓦片、编码单元、或超片段相关联的数据可以进行熵编码。例如,与每一个视频序列的每一组图片的每一个图片的每一个瓦片、编码单元、或超片段相关联的数据可以被熵编码。被熵编码的数据可以包括与预测分区相关联的数据(例如,帧间或帧内预测数据)(例如,预测编码指示符或码字)、模式数据、参考类型数据、预测参数、运动矢量、限定编码分区的数据(例如,编码分区指示符或码字)、用于执行选定变换的块尺寸数据、变换类型数据(指示选定的变换)、量化器(Qp;指示量化的粒度)以及量化的变换系数。
[0150] 过程1400可以在操作1412“生成比特流”继续,其中可以基于熵编码数据来生成比特流。如所讨论的,在一些示例中,比特流可以包括帧或图片参考(例如,指示图片或帧类型的数据)、与预测分区相关联的数据(例如,预测编码指示符或代码字)(例如,帧内或帧间预测数据)、模式数据、参考类型数据、预测参数(例如,与参考类型相关联的变形参数或合成参数)、运动矢量、限定编码分区的数据(例如,编码分区指示符或码字)、用于执行选定变换的块尺寸数据、变换类型数据(指示选定的变换)、量化器(Qp;指示量化的粒度)以及与预测分区相关联的量化的变换系数。
[0151] 过程1400可以在操作1413“发送比特流”继续,其中可以发送比特流。例如,视频编码系统2000可以经由天线2002(请参考图20)来发送输出比特流111、比特流1400等。
[0152] 操作1401到1413可以提供可以由如本文讨论的编码器系统使用的视频编码和比特流传输技术。后面的操作,操作1414到1423可以提供可以由如本文讨论的解码器系统使用的视频解码和视频显示技术。
[0153] 过程1400可以在操作1414“接收比特流”继续,其中可以接收比特流。例如,可以经由解码器200接收输入比特流201、比特流1400等。在一些示例中,如上文所讨论的,比特流可以包括与编码分区相关的数据、一个或多个指示符、限定编码分区的数据、预测数据和/或限定预测分区的数据。在一些示例中,比特流可以包括与预测分区相关联的数据(例如,帧间预测数据或帧内预测数据)、限定预测分区的数据以及与单独的预测误差数据分区相关联的数据。在一些示例中,比特流可以包括帧或图片参考(例如,指示图片或帧类型的数据)、与预测分区相关联的数据(例如,帧间预测数据或帧内预测数据)(例如,预测编码指示符或码字)、模式数据、参考类型数据、预测参数(例如,与参考类型相关联的变形参数或合成参数)、运动矢量、限定编码分区的数据(例如,编码分区指示符或代码字)、用于执行选定变换的块尺寸数据、变换类型数据(指示选定的变换)、量化器(Qp;指示量化的粒度)以及与预测分区相关联的量化的变换系数。
[0154] 过程1400可以在操作1415“对比特流进行解码”继续,其中可以经由例如自适应熵解码器模块202对所接收的比特流进行解码。例如,所接收的比特流可以被熵解码以确定预测分块、预测参数、选定的编码分块、选定的特征数据、运动矢量数据、量化的变换系数、滤波器参数、选择数据(例如,模式选择数据)和指示符、与预测分区相关的数据(例如,帧间或帧内预测数据)、限定预测分区的数据以及与单独的预测误差数据分区相关联的数据等。在一些示例中,可以对比特流进行解码以确定帧或图片参考(例如,指示图片或帧类型的数据)、与预测分区(例如,预测编码指示符或代码字)相关联的数据(例如,帧间预测数据或帧内预测数据)、模式数据、参考类型数据、预测参数(例如,与参考类型相关联的变形参数或合成参数)、运动矢量、限定编码分区的数据(例如,编码分区指示符或码字)、用于执行选定变换的块尺寸数据、变换类型数据(指示选定的变换)、量化器(Qp;指示量化的粒度)和/或与预测分区相关联的量化的变换系数。
[0155] 过程1400可以在操作1416“在每一个编码分区的每一个块上执行反向扫描和反向量化”继续,其中可以在正处理的预测分区的每一个编码分区的每一个块上执行反向扫描和反向量化。例如,可以经由自适应反向量化模块203来执行反向扫描和反向量化。
[0156] 过程1400可以在操作1417“执行固定的或内容自适应反向变换以对变换系数进行解码来确定解码的预测误差数据分区”继续,其中可以执行固定的或内容自适应反向变换以对变换系数进行解码来确定解码的预测误差数据分区。例如,反向变换可以包括反向内容自适应变换(例如,混合参数Haar反向变换),使得混合参数Haar反向变换可以包括在参数变换方向的方向上的参数Haar反向变换和在垂直于参数变换方向的方向上的离散余弦反向变换。在一些示例中,固定的反向变换可以包括离散余弦反向变换或离散余弦反向变换近似器。例如,可以经由自适应反向变换模块204来执行固定的或内容自适应变换。如所讨论的,内容自适应反向变换可以至少部分地基于其它以前解码的数据,例如,解码的相邻分区或块。在一些示例中,生成解码的预测误差数据分区可以包括经由编码分区装配器模块205来装配解码的编码分区。
[0157] 过程1400可以在操作1418“针对每一个预测分区来生成预测分区(像素数据)”继续,其中可以针对每一个预测分区来生成预测像素数据(例如,预测分区)。例如,可以使用选定的预测模式和预测类型(例如,基于特性和运动、或帧内、或其它类型;以及基于所讨论的各种解码、变形、和/或合成参考图片)和相关联的预测参数(例如,变形或合成参数,如果需要)来生成预测像素数据。
[0158] 过程1400可以在操作1419“将每一个解码的预测误差分区加到相对应的预测分区以生成重构的预测分区”继续,其中可以将每一个解码的预测误差分区(例如,包括零预测误差分区)加到相对应的预测分区以生成重构的预测分区。例如,预测分区可以经由图2所示的解码循环来生成并且经由加法器206加到解码的预测误差分区。
[0159] 过程1400可以在操作1420“装配重构的预测分区以生成解码的瓦片、编码单元、或超片段”继续,其中可以装配重构的预测分区以生成解码的瓦片、编码单元、或超片段。例如,可以经由预测分区装配器模块207来装配预测分区以生成解码的瓦片、编码单元、或超片段。
[0160] 过程1400可以在操作1421“应用解块滤波和/或QR滤波以生成最终解码的瓦片、编码单元、或超片段”继续,其中可选的解块滤波和/或质量恢复滤波可以被应用于解码的瓦片、编码单元、或超片段以生成最终解码的瓦片、编码单元、或超片段。例如,可以经由解块滤波模块208来应用可选的解块滤波,和/或可以经由质量恢复滤波模块209来应用可选的质量恢复滤波。
[0161] 过程1400可以在操作1422“装配解码的瓦片、编码单元、或超片段以生成解码的视频图片,并且保存在参考图片缓冲器中”继续,其中可以装配解码的(或最终解码的)瓦片、编码单元、或超片段以生成解码的视频图片,并且可以将解码的视频图片保存在参考图片缓冲器(例如,解码的图片缓冲器210)中以用于在未来预测中使用。
[0162] 过程1400可以在操作1423“发送解码的视频帧以用于经由显示设备来呈现”继续,其中可以发送解码的视频帧以用于经由显示设备来呈现。例如,解码的视频图片可以经由自适应图片再组织器217和内容后恢复器模块218被进一步处理并且被发送到显示设备作为用于呈现给用户的显示视频219的视频帧。例如,视频帧可以被发送到显示设备2005(如图20所示)以用于呈现。
[0163] 虽然本文的示例过程的实现可以包括实施以所示顺序示出的所有操作,但是本公开并不被限制在这个方面中,并且在各种示例中,本文的示例过程的实现可以包括实施所示的操作的仅仅子集和/或以与所示的不同的顺序来实施。
[0164] 此外,可以响应于由一个或多个计算机程序产品提供的指令而实施本文讨论的操作中的任何一个或多个。这样的程序产品可以包括承载提供指令的介质的信号,所述指令当由例如处理器执行时可以提供本文所描述的功能。可以以任何形式的一个或多个机器可读介质来提供计算机程序产品。因此例如包括一个或多个处理器核心的处理器可以响应于由一个或多个机器可读介质传送到处理器的程序代码和/或指令或指令集来实施本文的示例过程的操作中的一个或多个。通常,机器可读介质可以以程序代码和/或指令或指令集的形式来传送软件,所述程序代码和/或指令或指令集可以使本文描述的设备和/或系统中的任何一个实现如本文讨论的视频系统的至少部分。
[0165] 如在本文描述的任何实现中使用的,术语“模块”指被配置为提供本文描述的功能的软件逻辑、固件逻辑和/或硬件逻辑的任何组合。软件可以被体现为软件封装、代码和/或指令集或指令,并且如在本文描述的任何实现中使用的“硬件”,可以包括例如单独地或以任何组合的硬连线电路、可编程电路、状态机电路、和/或存储由可编程电路执行的指令的固件。模块可以共同或单独地被体现为形成大型系统的部分的电路,所述大型系统例如集成电路(IC)、片上系统(SoC)等。例如,模块可以被体现在逻辑电路中,用于经由本文讨论的编码系统的软件、固件、或硬件来实现。
[0166] 图15是根据本公开的至少一些实施例布置的示例视频编码系统1500的示意图。在所示的实现中,视频编码系统1500可以包括成像设备1501、视频编码器100、和/或经由处理单元1520的逻辑电路1450实现的视频编码器100和/或视频编码器、天线1502、一个或多个处理器1503、一个或多个存储器存储装置1504、和/或显示设备1505。
[0167] 如所示出的,成像设备1501、天线1502、处理单元1520、逻辑电路1450、视频编码器100、视频解码器200、处理器1503、存储器存储装置1504、和/或显示设备1505能够彼此通信。如所讨论的,虽然示出了视频编码器100和视频解码器200二者,但是在各种示例中,视频编码系统1500可以包括仅仅视频编码器100或仅仅视频解码器200。
[0168] 如所示出的,在一些示例中,视频编码系统1500可以包括天线1502。天线1502可以被配置为发送或接收例如视频数据的编码的比特流。此外,在一些示例中,视频编码系统1500可以包括显示设备1505。显示设备1505可以被配置为呈现视频数据。如所示出的,在一些示例中,可以经由处理单元1520来实现逻辑电路1450。处理单元1520可以包括专用集成电路(ASIC)逻辑、图形处理器、通用处理器等。视频编码系统1500还可以包括可选的处理器
1503,其可以类似地包括专用集成电路(ASIC)逻辑、图形处理器、通用处理器等。在一些示例中,可以经由硬件、视频编码专用硬件等来实现逻辑电路1450,以及可以经由通用软件、操作系统等来实现处理器1503。此外,存储器存储装置1504可以是任何类型的存储器,例如,易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪存等)等。在非限制性示例中,存储器存储装置1504可以由高速缓冲存储器实现。在一些示例中,逻辑电路1450可以访问存储器存储装置1504(用于实现例如图像缓冲器)。在其它示例中,逻辑电路1450和/或处理单元1520可以包括用于实现图像缓冲器等的存储器存储装置(例如,高速缓冲存储器等)。
[0169] 在一些示例中,经由逻辑电路实现的视频编码器100可以包括图像缓冲器(例如,经由处理单元1520或存储器存储装置1504)和图形处理单元(例如,经由处理单元1520)。图形处理单元可以通信地耦合到图像缓冲器。图形处理单元可以包括如经由逻辑电路1450实现以体现如关于图1和图12讨论的各种模块的视频编码器100。例如,图形处理单元可以包括预测分区发生器逻辑电路、自适应图片组织器逻辑电路、帧间预测逻辑电路、运动补偿生成逻辑电路、差异确定逻辑电路、子分区发生器逻辑电路、自适应变换逻辑电路、自适应熵编码器逻辑电路等。可以将逻辑电路配置为执行文中讨论的各种操作。例如,可以将预测分区发生器逻辑电路配置为接收视频帧,将视频帧分割成多个瓦片、编码单元或超片段,针对至少一个瓦片、编码单元或超片段确定选定的预测划分技术,使得选定的预测划分技术包括双树划分技术或k-d树划分技术的中的至少一个,并采用选定的划分技术将所述至少一个瓦片、编码单元或超片段划分成多个预测分区。可以通过类似的方式来实施视频解码器200。
[0170] 在一些示例中,可以将视频编码系统1500的天线1502配置为接收视频数据的编码比特流。视频编码系统1500还可以包括视频解码器200,其耦合至天线1502并且被配置为对编码比特流解码。例如,可以将视频解码器200配置为对编码比特流熵解码,以确定与第一预测分区相关联的帧间预测数据、限定第一预测分区的数据、与第二预测分区相关联的帧内预测数据以及限定第二预测分区的数据,使得第一预测分区包括二分树划分,以及第二预测分区包括k-d树分区,至少部分地基于帧间预测数据来针对第一预测分区执行运动补偿,至少部分地基于帧内预测数据来针对第二单独的分区执行帧内预测,至少部分地基于运动补偿来生成第一解码的视频帧,并且发送第一和第二解码视频帧以经由显示设备用于呈现。
[0171] 在实施例中,可以响应于由一个或多个计算机程序产品提供的指令来实施本文描述的特征。这样的程序产品可以包括承载了提供指令的介质的信号,所述指令当由例如处理器执行时可以提供本文所描述的功能。计算机程序产品可以以一个或多个机器可读介质的任何形式被提供。因此例如,包括一个或多个处理器核心的处理器可以响应于由一个或多个机器可读介质传送到处理器的程序代码和/或多个指令或指令集来实施本文所述的一个或多个特征。通常,机器可读介质可以传送以可以使本文描述的设备和/或系统中的任何一个实现本文描述的特征的至少部分的程序代码和/或多个指令或指令集的形式的软件。
[0172] 图16是根据本公开的至少一些实现布置的示例系统1600的示意图。在各种实现中,系统1600可以是介质系统,但是系统1600不限于所述上下文。例如,系统1600可以被合并到个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板计算机、触控板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如,智能电话、智能平板计算机或智能电视机)、移动互联网设备(MID)、消息发送设备、数据通信设备、照相机(例如,自动照相机、超级变焦照相机、数码单镜头反光(DSLR)照相机)等中。
[0173] 在各种实现中,系统1600包括耦合到显示器1620的平台1602。平台1602可以从内容设备(例如,内容服务设备1630或内容分发设备1640或其它类似的内容源)接收内容。包括一个或多个导航特征的导航控制器1650可以用于与例如平台1602和/或显示器1620进行交互。下面更详细描述这些部件中的每一个。
[0174] 在各种实现中,平台1602可以包括芯片组1605、处理器1610、存储器1612、天线1613、存储装置1614、图形子系统1615、应用1616和/或无线装置1618的任何组合。芯片组
1605可以提供在处理器1610、存储器1612、存储装置1614、图形子系统1615、应用1616和/或无线装置1618当中的帧间通信。例如,芯片组1605可以包括能够提供与存储装置1614的帧间通信的存储适配器(未描绘)。
[0175] 处理器1610可以被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核心、或任何其它微处理器或中央处理单元(CPU)。在各种实现中,处理器1610可以是双核处理器、双核移动处理器等。
[0176] 存储器1612可以被实现为易失性存储器设备,例如但不限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM)、或静态RAM(SRAM)。
[0177] 存储装置1614可以被实现为非易失性存储设备,例如但不限于,磁盘驱动器、光盘驱动器、磁带驱动器、帧内存储设备、附连的存储设备、闪存、电池备份SDRAM(同步DRAM)、和/或网络可访问的存储设备。在各种实现中,存储装置1614可以包括例如当多个硬盘驱动器被包括时增加对有价值的数字媒体的存储性能增强保护的技术。
[0178] 图形子系统1615可以执行图像(例如,静止图像或视频)的处理以用于显示。图形子系统1615可以是例如图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可以被用于通信地耦合图形子系统1615和显示器1620。例如,接口可以是高清多媒体接口、显示端口、无线HDMI、和/或兼容无线HD的技术中的任一个。图形子系统1615可以被集成到处理器1610或芯片组1605中。在一些实现中,图形子系统1615可以是通信地耦合到芯片组1605的独立设备。
[0179] 本文描述的图形和/或视频处理技术可以在各种硬件体系结构中实现。例如,图形和/或视频功能可以被集成在芯片组中。可选地,可以使用分立的图形和/或视频处理器。作为又一实现,图形和/或视频功能可以由包括多核处理器的通用处理器提供。在另外的实施例中,可以在消费电子设备中实现功能。
[0180] 无线装置1618可以包括能够使用各种适当的无线通信技术来发送和接收信号的一个或多个无线装置。这样的技术可以涉及在一个或多个无线网络当中的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络、和卫星网络。在这样的网络当中的通信中,无线装置1618可以根据任何版本的一个或多个可应用的标准来操作。
[0181] 在各种实现中,显示器1620可以包括任何电视机型监视器或显示器。显示器1620可以包括例如计算机显示屏、触摸屏显示器、视频监视器、电视机型设备和/或电视机。显示器1620可以是数字的和/或模拟的。在各种实现中,显示器1620可以是全息显示器。此外,显示器1620可以是可以接收视觉投影的透明表面。这样的投影可以传送各种形式的信息、图像和/或对象。例如,这样的投影可以是用于移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用16115的控制下,平台1602可以在显示器1620上显示用户界面1622。
[0182] 在各种实现中,内容服务设备1630可以由任何国家、国际和/或独立服务托管,并且因此是平台1602经由例如互联网可访问的。内容服务设备1630可以耦合到平台1602和/或显示器1620。平台1602和/或内容服务设备1630可以耦合到网络1660以向和从网络1660传递(例如,发送和/或接收)媒体信息。内容分发设备1640还可以耦合到平台1602和/或显示器1620。
[0183] 在各种实现中,内容服务设备1630可以包括有线电视盒、个人计算机、网络、电话、启用互联网的设备或能够分发数字信息和/或内容的电器、和能够经由网络1660或直接地在内容提供者和平台1602和/或显示器1620之间单向或双向地传递内容的任何其它类似设备。将认识到,可以经由网络1660从和向系统1600中的任一个部件和内容提供者单向和/或双向地传递内容。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。
[0184] 内容服务设备1630可以接收内容,例如,有线电视节目,包括媒体信息、数字信息、和/或其它内容。内容提供者的示例可以包括任何有线或卫星电视或广播或互联网内容提供者。所提供的示例并不是要以任何方式来限制根据本发明的实现。
[0185] 在各种实现中,平台1602可以从具有一个或多个导航特征的导航控制器1650接收控制信号。控制器1650的导航特征可以用于与例如用户界面1622进行交互。在各种实施例中,导航控制器1650可以是定点设备,其可以是允许用户将空间(例如,连续和多维)数据输入到计算机中的计算机硬件部件(具体地,人机接口设备)。很多系统(例如,图形用户界面(GUI)和电视机和监视器)允许用户使用物理手势来控制数据和将数据提供到计算机或电视机。
[0186] 可以通过指针光标、聚焦环或显示在显示器上的其它视觉指示符的运动来在显示器(例如,显示器1620)上复制控制器1650的导航特征的运动。例如,在软件应用1616的控制下,位于导航控制器1650上的导航特征可以被映射到显示在用户界面1622上的虚拟导航特征。在各种实施例中,控制器1650可以不是单独的部件,但可以被集成到平台1602和/或显示器1620中。然而,本公开并不限于在本文所示或所述的元件或上下文中。
[0187] 在各种实现中,驱动器(未示出)可以包括使用户能够像电视机一样例如在初始引导之后,当被启动时使用按钮的触摸即时地打开和关闭平台1602的技术。程序逻辑可以允许平台1602将内容流式地传送到媒体适配器或其它内容服务设备1630或内容分发设备1640,即使平台被“关闭”时。此外,芯片组1605可以包括例如支持5.1环绕声音频和/或高分辨率7.1环绕声音频的硬件和/或软件。驱动器可以包括集成图形平台的图形驱动器。在各种实施例中,图形驱动器可以包括快速外围部件互连(PCI)图形卡。
[0188] 在各种实现中,可以集成在系统1600中示出的部件中的任何一个或多个。例如,可以集成平台1602和内容服务设备1630,或可以集成平台1602和内容分发设备1640,或例如可以集成平台1602、内容服务设备1630、和内容分发设备1640。在各种实施例中,平台1602和显示器1620可以是集成单元。例如可以集成显示器1620和内容服务设备1630,或可以集成显示器1620和内容分发设备1640。这些示例并不是要限制本公开。
[0189] 在各种实施例中,系统1600可以被实现为无线系统、有线系统、或这两者的组合。当被实现为无线系统时,系统1600可以包括适合于通过无线共享介质(例如,一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等)进行通信的部件和接口。无线共享介质的示例可以包括无线频谱(例如,RF频谱等)的部分。当被实现为有线系统时,系统
1600可以包括适合于通过有线通信介质(例如,输入/输出(I/O)适配器、用于使I/O适配器与相对应的有线通信介质连接的物理连接器、网络接口卡(NIC)、磁盘控制器、视频控制器、音频控制器等)进行通信的部件和接口。有线通信介质的示例可以包括电线、电缆、金属引线、印刷电路板(PCB)、底板、交换机结构、半导体材料、双绞线、同轴电缆、光纤等。
[0190] 平台1602可以建立一个或多个逻辑或物理通道以传递信息。所述信息可以包括媒体信息和控制信息。媒体信息可以指表示用于用户的内容的任何数据。内容的示例可以包括例如来自语音对话、视频会议、流式视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音对话的数据可以是例如说话信息、静默时间段、背景噪声、舒适噪声音调等。控制信息可以指表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于通过系统按规定路线发送媒体信息或指示节点以预定方式处理媒体信息。然而,实施例并不限于图16所示或所述的元件或上下文中。
[0191] 如上所述,系统1600可以体现在变化的物理格或形状因子中。图17示出了系统1700可以体现于其中的小形状因子设备1700的实现中。在各种实施例中,例如,设备1700可以被实现为具有无线能的移动计算设备。移动计算设备可以指例如具有处理系统和移动功率源或电源(例如,一个或多个电池)的任何设备。
[0192] 如上所述,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板计算机、触控板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如,智能电话、智能平板计算机或智能电视机)、移动互联网设备(MID)、消息发送设备、数据通信设备、照相机(例如,自动照相机、超级变焦照相机、数码单镜头反光(DSLR)照相机)等。
[0193] 移动计算设备的示例还可以包括被布置为由人穿戴的计算机,例如,手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、计算机、衣服计算机,和其它可穿戴的计算机。在各种实施例中,例如移动计算设备可以被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。虽然作为示例可以使用被实现为智能电话的移动计算设备来描述一些实施例,但是可以认识到,也可以使用其它无线移动计算设备来实现其它实施例。实施例并不被限制在这个上下文中。
[0194] 如图17所示,设备1700可以包括壳体1702、显示器1704、可以包括用户界面1710的输入/输出(I/O)设备1706、和天线1708。设备1700还可以包括导航特征1712。显示器1704可以包括用于显示适合于移动计算设备的信息的任何适当的显示单元。I/O设备1706可以包括用于将信息输入到移动计算设备中的任何适当的I/O设备。I/O设备1706的示例可以包括字母数字键盘、数字小键盘、触控板、输入键、按钮、开关、摇臂开关、麦克风、扬声器、语音识别设备和软件等。信息还可以通过麦克风(未示出)被输入到设备1700中。这样的信息可以由语音识别设备(未示出)被数字化。实施例并不被限制在所述上下文中。
[0195] 图18(A)、18(B)和18(C)示出了根据本公开的至少一些实现布置的视频帧的示例预测分区和编码分区。如这里论述的,可以将视频帧划分为预测分区(例如,采用k-d树或二分树划分),并且(在一些示例中)将其进一步划分成编码分区(例如,采用二分树划分)。例如,图18(A)示出了示例视频帧1810。视频帧1810可以是任何视频帧,如文中所讨论的。在图18(A)的示例中,视频帧1810可以是I图片,其可以受到k-d树预测分块。例如,可以将视频帧
1810划分或分割成瓦片1820-1、1820-2、1820-3、1820-4等(出于清晰起见没有标出其他瓦片)。如所讨论的,在其他示例中,可以将视频帧1810分割成编码单元或超片段等。
[0196] 在任何情况下,可以将视频帧1810(或其瓦片、超片段或编码单元)划分成预测分区1830(出于清晰起见没有将其每一个都标出)。例如,如图所示,预测分区1830可以是I图片视频帧1850的k-d树分区。如所讨论的,预测分区1830可以是视频帧1810的示例划分。可以将视频帧1810划分成任何数量的分块,可以对其进行评估,从而(例如)获得最佳的或者最具效率的划分,可以通过分区指示符或码字等对该分块进行编码。如文中讨论的,可以将最佳划分的预测分区用作用于编码的结构(或切割)(例如,像素数据的预测分区、预测误差数据分区(例如,误差信号)的生成以及其他用于编码的划分(例如,编码分区)。
[0197] 图18(B)示出了示例视频帧1850。如文中讨论的,视频帧1850可以是任何视频帧。在图18(A)的示例中,视频帧1850可以是P图片或者B/F图片,并且可以受到二分树预测划分。例如,可以将视频帧1850划分或者分割成瓦片1860-1、1860-2、1860-3等(出于清晰起见没有标出其他瓦片)。如所讨论的,在其他示例中,可以将视频帧1850分割成编码单元或超片段等。可以将视频帧1850(或其瓦片、超片段或编码单元)划分成预测分区1870(出于清晰起见没有将其每一个都标出)。例如,如图所示,预测分区1870可以是视频帧1850的P图片或B/F图片的二分树划分。如所讨论的,预测分区1870可以是视频帧1850的示例划分。可以将视频帧1850划分成任何数量的划分,可以对其进行评估,从而(例如)获得最佳的或者最具效率的划分,可以通过分区指示符或码字等对该划分进行编码,如所讨论的。
[0198] 图18(C)示出了示例视频帧1850的示例瓦片1860-3。如图所示,可以将瓦片1860-3划分成预测分区1870(采用黑线示出的)。如所讨论的,可以将预测分区1870用于编码,因而可以生成与预测分区1870相关联的预测的分区,并且可以生成预测误差数据分区(例如,可以确定预测的分区和原始像素数据差异以生成预测误差数据分区),所述预测误差数据分区也与预测分区1870相关联。可以确定是否必须对预测误差数据分区进行编码,如果是,那么可以将预测误差数据分区进一步划分成编码分区(用于变换编码、变换系数的量化以及将量化后的变换系数结合到比特流当中)。如所讨论的,可以通过二分树划分技术执行这样的对编码分区的划分。例如,可以基于预测分区1870(以及与预测分区1870相关联的预测误差数据分区)来生成示例编码分区1880-1、1880-2等(采用白线示出;为了清晰起见没有标出每一编码分区)。
[0199] 如所讨论的,编码分区1880-1、1880-2等可以表示示例编码划分。在一些示例中,可以对几种编码划分(以及很多变换类型的组合)进行评估,以确定最佳的或者最具效率的编码划分(以及相关联的变换类型和尺寸)。可以通过编码分区指示符或码字等对与选定编码划分相关联的编码分区进行编码,并通过比特流对其编码。此外,可以采用编码分区对预测误差数据分区的编码分区进行变换编码以生成变换系数,可以对所述变换系数进行量化,并将其熵编码成比特流以用于(例如)解码器处使用。
[0200] 可以使用硬件元件、软件元件或这两者的组合来实现各种实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件的示例可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任何组合。确定实施例是否是使用硬件元件和/或软件元件来实现的可以根据任何数量的因素(例如,期望的计算速率、功率电平、耐热性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度、和其它设计或性能约束)而改变。
[0201] 至少一个实施例的一个或多个方面可以由存储在表示在处理器内的各种逻辑的机器可读介质上的代表性指令实现,所述指令在由机器读取时使机器制造逻辑以执行本文描述的技术。被称为“IP核心”的这样的表示可以存储在有形、机器可读介质上并且被提供到各种消费者或制造设施以加载到实际上制造逻辑或处理器的制造机器中。
[0202] 虽然关于各种实现描述了本文所阐述的某些特征,但是这个描述并不是要以限制性的意义被解释。因此,本文描述的实现以及对本公开所属的领域中的技术人员显而易见的其它实现的各种修改被认为在本公开的精神和范围内。
[0203] 下面的示例涉及另外的实施例。
[0204] 在一个示例中,一种用于在视频编码中进行分区的计算机实现的方法可以包括:接收视频帧;将视频帧分割成多个瓦片、编码单元或超片段;针对至少一个瓦片、编码单元或超片段确定选定分区划分技术以用于预测或编码划分,使得选定的分区划分技术可以包括二分树划分技术、k-d树划分技术、二分树划分技术的码本表示或者k-d树划分技术的码本表示中的至少一个;采用选定的划分技术将所述至少一个瓦片、编码单元或超片段划分成多个预测分区;以及将与所述多个预测分区相关联的编码分区指示符或码字编码到比特流当中。
[0205] 在另一个示例中,一种用于在视频编码中进行分区的计算机实现的方法还可以包括将视频帧分割成两个或更多个区域层,使得所述两个或更多个区域层包括4像素、8像素或16像素中的至少一个的精确度,使得所述两个或更多个区域层包括区域边界,使得将视频帧划分成多个瓦片、编码单元或超片段可以包括将视频帧分割成多个超片段,使得对视频帧的分割可以包括采用16×16像素块的符号运行编码,以及使得所述至少一个超片段可以包括所述两个或更多个区域层的单独的区域层;对所述区域边界进行编码,使得对区域边界进行编码可以包括符号运行编码或者生成在瓦片网格上逼近所述区域边界的码本中的至少一个,使得所述瓦片网格可以包括具有32×32像素或者64×64像素中的至少一个的尺寸的等间隔瓦片网格;采用预测分区索引值对所述多个预测分区进行编索引;将所述多个预测分区和预测分区索引值发送至编码控制器;生成与所述多个预测分区中的第一单独的预测分区相关联的帧间预测数据,使得所述帧间预测数据可以包括运动矢量数据;生成与第二视频帧的第二瓦片、编码单元或超片段的第二多个预测分区的第二单独的预测分区相关联的帧内预测数据;确定与所述多个预测分区相关联的多个预测的分区和相对应的原始像素数据的差异,以生成相对应的多个预测误差数据分区,使得所述多个预测的分区中的第一预测的分区是至少部分地基于参考帧预测的,所述参考帧包括紧挨着的之前的参考帧、更早的之前的参考帧、未来参考帧、变形参考帧或合成参考帧;基于所述参考帧来生成所述第一预测的分区的参考类型指示符;基于第一预测的分区的预测模式来生成预测模式指示符,其中,所述预测模式是从帧间、多重、帧内、跳过、自动或拆分中的至少一个中选出的;将参考类型指示符和预测模式编码到比特流当中;确定所述多个预测误差数据分区中的单独的预测误差数据分区需要编码;对于需要编码的单独的预测误差数据分区:将所述预测误差数据分区划分成多个编码分区,使得对预测误差数据分区进行分区包括二分树划分,采用编码分区索引值对所述多个编码分区编索引,将编码分区和编码分区索引值发送至编码控制器,以及对所述单独的预测误差数据分区的编码分区执行前向变换和量化以生成与单独的预测误差数据分区相关联的数据;将与所述第一单独的预测分区相关联的帧间预测数据、限定所述第一单独的预测分区的数据、与所述第二单独的预测分区相关联的帧内预测数据、限定所述第二单独的预测分区的数据以及与所述单独的预测误差数据分区相关联的数据熵编码到比特流当中;发送所述比特流;接收所述比特流;对比特流进行熵解码,以确定与第一单独的预测分区相关联的帧间预测数据、限定第一单独的预测分区的数据、与第二单独的预测分区相关联的帧内预测数据、限定第二单独的预测分区的数据以及与单独的预测误差数据分区相关联的数据,使得所述第一单独的预测分区包括二分树划分,以及第二单独的预测分区包括k-d树分区;至少部分地基于与所述单独的预测误差数据分区相关联的数据执行反向量化和反向变换,以生成解码的编码分区;合并解码的编码分区以生成解码的预测误差数据分区;将第一单独的解码的预测的分区添加到解码的预测误差数据分区以生成第一重构分区;装配所述第一重构分区和第二重构分区以生成第一瓦片、第一编码单元或第一超片段中的至少一个;对所述第一瓦片、编码单元或第一超片段应用解块滤波或质量恢复滤波中的至少一个,以生成第一最终解码瓦片、编码单元或超片段;使第一最终解码瓦片、编码单元或超片段与第二最终解码瓦片、编码单元或超片段装配以生成第一解码视频帧;至少部分地基于所述帧间预测数据执行运动补偿以生成第二解码的单独的预测分区;至少部分地基于所述帧内预测数据执行针对所述第二多个分区的第三解码的单独的预测分区的帧内预测;至少部分地基于运动补偿生成第二解码视频帧;至少部分地基于帧内预测生成第三解码的视频帧;以及发送所述第一、第二和第三解码的视频帧以用于通过显示设备进行呈现。将视频帧分割成多个瓦片、编码单元或超片段可以包括将视频帧分割成多个瓦片。确定选定的划分技术可以包括至少部分地基于视频帧的图片类型来确定选定划分技术。所述图片类型可以包括I图片(帧内图片)、P图片(预测性图片)或者F/B图片(功能/双向图片)中的至少一个。图片类型可以包括I图片,以及所选的预测划分技术可以包括k-d树划分技术。图片类型可以包括P图片,以及所选的预测划分技术可以包括二分树划分技术。图片类型可以包括F/B图片,以及所选的预测划分技术可以包括二分树划分技术。确定选定的划分技术可以包括至少部分地基于至少一个瓦片、编码单元或超片段的特征确定选定的划分技术,使得所述特征包括所述至少一个瓦片、编码单元或超片段中的帧内块的预期量,并且使得在所述帧内块的预期量大于阈值时,选定的划分技术可以包括k-d树划分技术,以及使得在所述帧内块的预期量小于阈值时使选定的划分技术可以包括二分树划分技术。对所述至少一个瓦片、编码单元或超片段进行分区可以包括划分约束条件,使得所述划分约束条件可以包括将第一分区预定义为沿第一维度对至少一个帧部分二等分,以及将第二分区预定义为沿第二维度对至少一个帧部分二等分,并且使得所述第一维度可以包括垂直维度,第二维度可以包括水平维度。
[0206] 在其他示例中,视频编码器可以包括图像缓冲器以及具有预测分区发生器逻辑电路的图形处理单元。可以将图形处理单元通信地耦合至图像缓冲器,并且可以将预测分区发生器逻辑电路配置为接收视频帧,将视频帧分割成多个瓦片、编码单元或超片段,针对至少一个瓦片、编码单元或超片段确定选定的预测划分技术,使得选定的预测划分技术可以包括二分树划分技术或k-d树划分技术中的至少一个,以及采用所述选定的划分技术来将所述至少一个瓦片、编码单元或超片段划分成多个预测分区。
[0207] 在另一示例视频编码器中,图形处理单元可以包括:帧间预测逻辑电路,其被配置为生成与所述多个预测分区的第一单独的预测分区相关联的帧间预测数据,使得所述帧间预测数据包括运动矢量数据;帧内预测逻辑电路,其被配置为生成与第二视频帧的第二瓦片、编码单元或超片段的第二多个预测分区的第二单独的预测分区相关联的帧内预测数据;差异确定逻辑电路,其被配置为确定与所述多个预测分区相关联的多个预测的分区和相对应的原始像素数据的差异,以生成相对应的多个预测误差数据分区,使得所述多个预测的分区中的第一预测的分区是至少部分地基于参考帧预测的,所述参考帧包括紧挨着的之前的参考帧、更早的之前的参考帧、未来参考帧、变形参考帧或合成参考帧;编码分区发生器逻辑电路,其被配置为确定所述多个预测误差数据分区的单独的预测误差数据分区需要编码,并且针对需要编码的单独的残差,将预测误差数据分区划分成多个编码分区,使得对预测误差数据分区进行分区包括二分树划分,采用编码分区索引值来对所述多个编码分区进行编索引,并且将编码分区和编码分区索引值发送至编码控制器;自适应变换逻辑电路和自适应量化逻辑电路,其被配置为对所述单独的预测误差数据分区的编码分区执行前向变换和量化以生成与所述单独的预测误差数据分区相关联的数据;以及自适应熵编码器逻辑电路,其被配置为将与第一单独的预测分区相关联的帧间预测数据、限定第一单独的预测分区的数据、与第二单独的预测分区相关联的帧内预测数据、限定第二单独的预测分区的数据以及与单独的预测误差数据分区相关联的数据熵编码到比特流当中,并发送所述比特流。还可以将所述预测分区发生器逻辑电路配置为:将视频帧划分成两个或更多个区域层,使得所述两个或更多个区域层可以包括4像素、8像素或16像素中的至少一个的精确度,使得所述两个或更多个区域层可以包括区域边界,使得将视频帧划分成多个瓦片、编码单元或超片段可以包括将预测分区发生器逻辑电路进一步配置为将视频帧分割成多个超片段,使得将视频帧分割成多个瓦片、编码单元或超片段可以包括将预测分区发生器逻辑电路进一步配置为采用16×16像素块通过符号运行编码对视频帧进行分割,并且使得所述至少一个超片段可以包括所述两个或更多个区域层的单独的区域层;对所述区域边界进行编码,使得对区域边界的编码可以包括符号运行编码或者生成在瓦片网格上逼近所述区域边界的码本中的至少一个,使得所述瓦片网格可以是具有32×32像素或者64×64像素中的至少一个的尺寸的等间隔瓦片网格;采用预测分区索引值对所述多个预测分区进行索引;以及将所述多个预测分区和预测分区索引值发送至编码控制器。将视频帧分割成多个瓦片、编码单元或超片段可以包括将预测分区发生器逻辑电路配置为将视频帧分割成多个瓦片。确定选定划分技术可以包括将预测分割发生器逻辑电路配置为至少部分地基于视频帧的图片类型确定选定的划分技术。所述图片类型可以包括I图片(帧内图片)、P图片(预测性图片)或者F/B图片(功能/双向图片)中的至少一个。图片类型可以包括I图片,以及所选的预测划分技术可以包括k-d树划分技术。图片类型可以包括P图片,以及所选的预测划分技术可以包括二分树划分技术。图片类型可以包括F/B图片,以及所选的预测划分技术可以包括二分树划分技术。确定选定的划分技术可以包括将预测分区发生器逻辑电路配置为至少部分地基于至少一个瓦片、编码单元或超片段的特征来确定选定的划分技术,使得所述特征可以包括所述至少一个瓦片、编码单元或超片段中的预期数量的帧内块,并且使得在帧内块的预期数量大于阈值时所述选定划分技术可以包括k-d树划分技术,以及使得在帧内块的预期数量低于阈值时所述选定划分技术包括二分树划分技术。用于对所述至少一个瓦片、编码单元或超片段进行分区可以包括将所述预测分区发生器逻辑电路配置为施加划分约束条件,使得所述划分约束条件可以包括将第一分区预定义为沿第一维度对至少一个帧部分二等分,以及将第二分区预定义为沿第二维度对至少一个帧部分二等分,并且使得所述第一维度包括垂直维度,以及第二维度包括水平维度。
[0208] 在又一个示例中,一种系统可以包括将视频解码器配置为对编码的比特流进行解码。可以将所述视频解码器配置为:对编码比特流进行熵编码以确定与第一预测分区相关联的帧间预测数据、限定第一预测分区的数据、与第二预测分区相关联的帧内预测数据、以及限定第二预测分区的数据,使得所述第一预测分区可以包括二分树划分,以及所述第二预测分区包括k-d树分区;至少部分地基于所述帧间预测数据执行针对所述第一预测分区的运动补偿;至少部分地基于帧内预测数据执行针对所述第二单独的分区的帧内预测;至少部分地基于所述运动补偿生成第一解码的视频帧;至少部分地基于所述帧内预测生成第二解码视频帧;以及发送所述第一和第二解码视频帧以用于通过显示设备进行呈现。
[0209] 在另一示例系统中,所述系统还可以包括天线,所述天线通信地耦合至视频解码器并且被配置为接收视频数据的编码比特流,所述系统还包括被配置为呈现视频帧的显示设备。还可以将所述视频解码器配置为:对所述比特流进行熵解码,以确定与单独的预测误差数据分区相关联的数据,使得所述单独的预测误差数据分区包括二分树编码分区;至少部分地基于与所述单独的预测误差数据分区相关联的数据执行反向量化和反向变换,以生成解码的编码分区;合并解码的编码分区以生成解码的预测误差数据分区;将预测分区加到解码的预测误差数据分区上以生成第一重构分区;装配所述第一重构分区和第二重构分区以生成第一瓦片、编码单元或第一超片段中的至少一个;将解块滤波或质量恢复滤波中的至少一个应用到所述第一瓦片、编码单元或第一超片段,以生成第一最终解码瓦片、编码单元或超片段;使第一最终解码瓦片、编码单元或超片段与第二最终解码瓦片、编码单元或超片段装配以生成第三解码的视频帧;以及发送所述第三解码视频帧以通过显示设备进行呈现。所述第一视频帧可以包括的图片类型包括P图片或F/B图片中的至少一个。所述第二视频帧可以包括的图片类型包括I图片。所述第三视频帧可以包括的图片类型包括P图片或F/B图片中的至少一个。
[0210] 在另一个示例中,至少一个机器可读介质可以包括多条指令,所述指令将响应于在计算设备上执行,而使得所述计算设备执行根据上述示例中的任何示例的方法。
[0211] 在又一示例中,一种装置可以包括用于执行根据上述示例中的任何示例的方法的模块。
[0212] 上面的示例可以包括特征的具体组合。但是,上文所述的这样的示例不受这方面的限制,在各种实现中,上述示例可以包括仅实施这样的特征的子集,按照不同的顺序实施这样的特征,实施这样的特征的不同组合和/或实施除了明确列举的这些特征以外的额外特征。例如,可以相对于示例装置、示例系统和/或示例制品来实现与示例方法相关描述的所有特征,反之亦然。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈