应用处理器及其方法以及包括该应用处理器的系统转让专利

申请号 : CN201510689230.8

文献号 : CN105554505B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 权宁圭曼吉特·和泰

申请人 : 三星电子株式会社

摘要 :

提供了应用处理器及其方法以及包括该应用处理器的系统。该应用处理器包括第一核和第二核,其中,第一核被配置为对包括第一处理单元和第二处理单元的第一图像进行处理,第二核被配置为对包括第三处理单元和第四处理单元的第二图像进行处理,其中,第一核和第二核被配置为并行地分别执行对第二处理单元和第三处理单元的处理。

权利要求 :

1.一种应用处理器,包括:

第一核,被配置为对包括第一数据单元和第二数据单元的第一图像进行处理,其中,第一核对应于第一硬件编解码器,第一图像是图像序列中的奇数图像;

第二核,被配置为对包括第三数据单元和第四数据单元的第二图像进行处理,其中,第二核对应于第二硬件编解码器,第二图像是图像序列中的偶数图像,其中,第一核被配置为对第一数据单元和第二数据单元进行处理并基于对第一数据单元进行处理的结果针对每个块对第一数据单元和第二数据单元的边界执行环路滤波,第二核被配置为对第三数据单元和第四数据单元进行处理并基于对第三数据单元进行处理的结果针对每个块对第三数据单元和第四数据单元的边界执行环路滤波,其中,第一核对第二数据单元的处理与第二核对第三数据单元的处理被并行地执行,其中,所述应用处理器被配置为:当对当前数据单元进行处理时,通过使当前数据单元中的块参考已完成处理的数据单元来确定当前数据单元中的块的运动矢量。

2.根据权利要求1所述的应用处理器,其中,第一核被配置为基于第一图像的处理复杂度,将第一图像划分为第一数据单元和第二数据单元,第二核被配置为基于第二图像的处理复杂度,将第二图像划分为第三数据单元和第四数据单元,当第二数据单元中的条带的数量与第三数据单元中的条带的数量不同时,第一核被配置为在第一时间周期内完成对第二数据单元的处理,并且第二核被配置为在第一时间周期内完成对第三数据单元的处理。

3.根据权利要求1所述的应用处理器,其中,第一核被配置为基于第一图像的处理复杂度,将第一图像划分为第一数据单元和第二数据单元,第二核被配置为基于第二图像的处理复杂度,将第二图像划分为第三数据单元和第四数据单元,当第二数据单元中的并行块的数量与第三数据单元中的并行块的数量不同时,第一核被配置为在第一时间周期内完成对第二数据单元的处理,并且第二核被配置为在第一时间周期内完成对第三数据单元的处理。

4.根据权利要求1所述的应用处理器,其中,第一核包括符合H.264视频编码标准的环路滤波器,其中,第二核被配置为在第一核对第二数据单元进行处理并使用所述环路滤波器对第二数据单元中的已处理的块执行环路滤波的同时,对第三数据单元进行处理。

5.根据权利要求1所述的应用处理器,其中,第一核包括符合高效视频编码标准的环路滤波器,其中,第二核被配置为在第一核对第二数据单元进行处理并使用所述环路滤波器对第二数据单元中的已处理的块执行环路滤波的同时,对第三数据单元进行处理。

6.根据权利要求1所述的应用处理器,其中,第一数据单元、第二数据单元、第三数据单元和第四数据单元中的每个数据单元包括至少一个条带。

7.根据权利要求1所述的应用处理器,其中,第一数据单元、第二数据单元、第三数据单元和第四数据单元中的每个数据单元包括至少一个并行块。

8.根据权利要求1所述的应用处理器,其中,第二核被配置为在延迟了第一核对第一数据单元进行处理的处理时间之后,执行对第三数据单元的处理。

9.根据权利要求1所述的应用处理器,其中,对第二数据单元进行处理的处理时间的一部分与对第三数据单元进行处理的处理时间的一部分重叠。

10.一种片上系统,包括:

接收器接口,被配置为接收包括第一数据单元和第二数据单元的第一图像以及包括第三数据单元和第四数据单元的第二图像;

第一核,被配置为对第一图像进行处理,其中,第一核对应于第一硬件编解码器,第一图像是图像序列中的奇数图像;

第二核,被配置为对第二图像进行处理,其中,第二核对应于第二硬件编解码器,第二图像是图像序列中的偶数图像,其中,第一核被配置为对第一数据单元和第二数据单元进行处理并基于对第一数据单元进行处理的结果针对每个块对第一数据单元和第二数据单元的边界执行环路滤波,第二核被配置为对第三数据单元和第四数据单元进行处理并基于对第三数据单元进行处理的结果针对每个块对第三数据单元和第四数据单元的边界执行环路滤波,其中,第一核对第二数据单元的处理与第二核对第三数据单元的处理被并行地执行,其中,所述片上系统被配置为:当对当前数据单元进行处理时,通过使当前数据单元中的块参考已完成处理的数据单元来确定当前数据单元中的块的运动矢量。

11.根据权利要求10所述的片上系统,其中,当第二数据单元中的条带的数量与第三数据单元中的条带的数量不同时,第一核被配置为在第一时间周期内完成对第二数据单元的处理,第二核被配置为在第一时间周期内完成对第三数据单元的处理。

12.根据权利要求10所述的片上系统,其中,当第二数据单元中的并行块的数量与第三数据单元中的并行块的数量不同时,第一核被配置为在第一时间周期内完成对第二数据单元的处理,第二核被配置为在第一时间周期内完成对第三数据单元的处理。

13.根据权利要求10所述的片上系统,其中,第一核包括符合H.264视频编码标准的环路滤波器,其中,第二核被配置为在第一核对第二数据单元进行处理并使用所述环路滤波器对第二数据单元中的已处理的块执行环路滤波的同时,对第三数据单元进行处理。

14.根据权利要求10所述的片上系统,其中,第一核包括符合高效视频编码标准的环路滤波器,其中,第二核被配置为在第一核对第二数据单元进行处理并使用所述环路滤波器对第二数据单元中的已处理的块执行环路滤波的同时,对第三数据单元进行处理。

15.一种用于对视频数据进行处理的方法,包括:

将视频数据的第一图像分配给第一核,并将视频数据的第二图像分配给第二核,其中,第一核对应于第一硬件编解码器,第二核对应于第二硬件编解码器,第一图像是视频数据中的奇数图像,第二图像是视频数据中的偶数图像;

由第一核对第一图像的第一数据单元进行处理;

由第一核对第一图像的第二数据单元进行处理;

由第二核与由第一核对第二数据单元进行处理并行地对第二图像的第三数据单元进行处理;

由第一核基于对第一数据单元的处理结果来对已处理的第一数据单元和已处理的第二数据单元执行环路滤波;

由第二核对第二图像的第四数据单元进行处理;

由第二核基于对第三数据单元的处理结果来对已处理的第三数据单元和已处理的第四数据单元执行环路滤波,其中,所述方法还包括:当对当前数据单元进行处理时,通过使当前数据单元中的块参考已完成处理的数据单元来确定当前数据单元中的块的运动矢量。

16.根据权利要求15所述的方法,其中,第一数据单元、第二数据单元和第三数据单元中的每个数据单元包括至少一个条带或至少一个并行块。

17.根据权利要求15所述的方法,还包括:

将视频数据的第三图像分配给第一核,其中,第三图像包括第五数据单元和第六数据单元;

由第一核与由第二核对第二图像的第四数据单元进行处理并行地对第三图像的第五数据单元进行处理。

18.一种应用处理器,包括:

第一核,被配置为对包括第一块组和第二块组的第一图像进行处理,其中,第一核对应于第一硬件编解码器,第一图像是图像序列中的奇数图像;

第二核,被配置为对包括第三块组和第四块组的第二图像进行处理,其中,第二核对应于第二硬件编解码器,第二图像是图像序列中的偶数图像;

其中,第一核被配置为对第一块组和第二块组进行处理并基于对第一块组进行处理的结果针对每个块对第一块组和第二块组的边界执行环路滤波,第二核被配置为对第三块组和第四块组进行处理并基于对第三块组进行处理的结果针对每个块对第三块组和第四块组的边界执行环路滤波,其中,第一核对第二块组的处理与第二核对第三块组的处理被并行地执行,其中,所述应用处理器被配置为:当对当前块组进行处理时,通过使当前块组中的块参考已完成处理的块组来确定当前块组中的块的运动矢量。

19.根据权利要求18所述的应用处理器,其中,第一核在第二核开始对第二图像的第三块组进行处理的同时开始对第一图像的第二块组进行处理。

说明书 :

应用处理器及其方法以及包括该应用处理器的系统

[0001] 本申请要求于2014年10月22日提交到印度专利局的第5269/CHE/2014号印度临时专利申请以及于2015年2月24日提交到韩国知识产权局的第10-2015-0025676号韩国专利申请的优先权,通过引用将上述专利申请的公开内容全部包含于此。

技术领域

[0002] 示例性实施例涉及一种半导体装置,更具体地说,涉及一种包括用于执行实时环路滤波的多核的应用处理器及其方法以及包括该应用处理器的系统。

背景技术

[0003] 图像中的条带(slice)和并行块(tile)可以降低熵编码或熵解码中的依赖性。然而,当由多个处理器对图像中的多个条带或多个并行块进行并行处理时,多个条带或多个并行块的去块操作可被暂停,直到与多个条带或多个并行块的边界邻近的宏块的处理操作完成。另外,多个处理器需要交换关于与多个条带或多个并行块的边界邻近的宏块的去块操作的信息。
[0004] 即,当由多个处理器并行处理图像中的多个划分区域时,去块操作可因为多个处理器所处理的图像中的多个划分区域的依赖性和分布而被暂停或延迟。

发明内容

[0005] 根据示例性实施例的一方面,提供了一种应用处理器,所述应用处理器包括:第一核,被配置为对包括第一处理单元和第二处理单元的第一图像进行处理;第二核,被配置为对包括第三处理单元和第四处理单元的第二图像进行处理,其中,第一核和第二核被配置为并行地分别执行对第二处理单元的处理和对第三处理单元的处理。
[0006] 第一核可以基于第一图像的处理复杂度,将第一图像划分为第一处理单元和第二处理单元,第二核可以基于第二图像的处理复杂度将第二图像划分为第三处理单元和第四处理单元,以及当第二处理单元中的条带的数量与第三处理单元中的条带的数量不同时,第一核被配置为在第一时间周期内完成对第二处理单元的处理,第二核被配置为在第一时间周期内完成对第三处理单元的处理。
[0007] 第一核可以基于第一图像的处理复杂度,将第一图像划分为第一处理单元和第二处理单元,第二核可以基于第二图像的处理复杂度将第二图像划分为第三处理单元和第四处理单元,以及当第二处理单元中的并行块的数量与第三处理单元中的并行块的数量不同时,第一核被配置为在第一时间周期内完成对第二处理单元的处理,第二核被配置为在第一时间周期内完成对第三处理单元的处理。
[0008] 第一核可以包括符合H.264视频编码标准的环路滤波器,在第一核对第二处理单元进行处理并使用所述环路滤波器对第二处理单元中的已处理的块执行环路滤波的同时,第二核对第三处理单元进行处理。
[0009] 第一核可以包括符合高效率视频编码(HEVC)标准的环路滤波器,在第一核对第二处理单元进行并使用所述环路滤波器对第二处理单元中的已处理的块执行环路滤波的同时,第二核对第三处理单元进行处理。
[0010] 第一处理单元、第二处理单元、第三处理单元和第四处理单元中的每个处理器可以包括至少一个条带。
[0011] 第一处理单元、第二处理单元、第三处理单元和第四处理单元中的每个处理器可以包括至少一个并行块。
[0012] 第一核可以被实现在第一硬件编解码器中,第二核可以被实现在第二硬件编解码器中。
[0013] 第一核和第二核可以被实现在单个硬件编解码器中。
[0014] 第一核可以是中央处理器(CPU)的第一核,第二核可以是CPU的第二核。
[0015] 可在延迟了对第一处理单元进行处理的处理时间之后,执行对第三处理单元的处理。
[0016] 根据另一个示例性实施例的一方面,提供了一种片上系统(SoC),所述片上系统包括:接收器接口,被配置成接收具有第一处理单元和第二处理单元的第一图像以及具有第三处理单元和第四处理单元的第二图像;第一核,被配置为对第一图像图像进行处理;第二核,被配置为对第二图像图像进行处理,其中,第一核和第二核被配置为并行地分别执行对第二处理单元的处理和对第三处理单元的处理。
[0017] 当第二处理单元中的条带的数量与第三处理单元中的条带的数量不同时,第一核可以在第一时间周期内完成对第二处理单元的处理,第二核可以在第一时间周期内完成对第三处理单元的处理。
[0018] 当第二处理单元中的并行块的数量与第三处理单元中的并行块的数量不同时,第一核可以在第一时间周期内完成对第二处理单元的处理,第二核可以在第一时间周期内完成对第三处理单元的处理。
[0019] 第一核可以包括符合H.264视频编码标准的环路滤波器,在第一核对第二处理单元进行处理并使用所述环路滤波器对第二处理单元中的已处理的块执行环路滤波时,第二核可以对第三处理单元进行处理。
[0020] 第一核可以包括符合高效视频编码(HEVC)标准的环路滤波器,在第一核对第二处理单元进行处理并使用所述环路滤波器对第二处理单元中的已处理的块执行环路滤波时,第二核可以对第三处理单元进行处理。
[0021] 根据另一个示例性实施例的一方面,提供了数据处理系统,所述数据处理系统包括:接收器接口,被配置为接收具有第一处理单元和第二处理单元的第一图像以及具有第三处理单元和第四处理单元的第二图像;第一核,被配置为对第一图像进行处理;第二核,被配置为对第二图像进行处理,其中,第一核和第二核被配置为并行地分别执行对第二处理单元的处理和对第三处理单元的处理。
[0022] 当第二处理单元中的条带的数量与第三处理单元中的条带的数量不同时,第一核可以在第一时间周期内完成对第二处理单元的处理,第二核可以在第一时间周期内完成对第三处理单元的处理。
[0023] 当第二处理单元中的并行块的数量与第三处理单元中的并行块的数量不同时,第一核可以在第一时间周期内完成对第二处理单元的处理,第二核可以在第一时间周期内完成对第三处理单元的处理。
[0024] 第一核可以包括符合H.264视频编码标准的环路滤波器,在第一核对第二处理单元进行处理并使用所述环路滤波器对第二处理单元中的已处理的块执行环路滤波时,第二核可以对第三处理单元进行处理。
[0025] 第一核可以包括符合高效率视频编码(HEVC)标准的环路滤波器,在第一核对第二处理单元进行处理并使用所述环路滤波器对第二处理单元中的已处理的块执行环路滤波时,第二核可以对第三处理单元进行处理。
[0026] 接收器接口可以是无线接口。
[0027] 可在延迟了对第一处理单元进行处理的处理时间之后执行对第三处理单元的处理。
[0028] 根据另一个示例性实施例的一方面,提供了用于处理视频数据的方法,用于处理视频数据的方法包括:将视频数据的第一图像分配给第一核并将视频数据的第二图像分配给第二核;由第一核对第一图像的第一处理单元进行处理;由第一核对第一图像的第二处理单元进行处理;由第二核与由第一核对第二处理单元进行处理并行地对第二图像的第三处理单元进行处理;基于对第一处理单元的处理结果来对被处理的第一处理单元和被处理的第二处理单元执行环路滤波。
[0029] 第一处理单元、第二处理单元和第三处理单元中的每个处理单元包括至少一个条带或至少一个并行块。
[0030] 视频数据可以包括奇数图像和偶数图像,视频数据的所有奇数图像可以被分配给第一核,视频数据的所有偶数图像可以被分配给第二核,直到对视频数据的处理完成为止。
[0031] 根据另一示例性实施例的一方面,提供了一种应用处理器,所述应用处理器包括第一核和第二核,其中,在第一核对第一图像的第一块组进行处理的同时第二核不执行处理,在第一核对第一图像的第二块组进行处理的同时第二核对第二图像的第一块组进行处理。
[0032] 第一核可以对第一图像的第二块组进行处理,第二核可以并行地对第二图像的第一块组进行处理。
[0033] 在第二核开始对第二图像的第一块组进行处理的同时,第一核可开始对第一图像的第二块组进行处理。

附图说明

[0034] 通过参照附图对其示例性实施例的详细描述,以上和其他方面将变得更加明显,在附图中:
[0035] 图1是根据示例性实施例的数据处理系统的框图;
[0036] 图2是示出了包括多个条带的图像的概念图;
[0037] 图3是示出分别包括两个条带的图像的序列的概念图;
[0038] 图4是示出由两个核处理图3中所示图像的序列的过程的概念图;
[0039] 图5是示出分别包括两个条带组的图像的序列的概念图;
[0040] 图6是示出由两个核处理图5中所示图像的序列的过程的概念图;
[0041] 图7是示出分别包括三个条带的图像的序列的概念图;
[0042] 图8是示出由三个核处理图7中所示图像的序列的过程的概念图;
[0043] 图9是示出根据示例性实施例的运动矢量搜索的概念图;
[0044] 图10是示出根据示例性实施例的均包括两个并行块的图像的序列的概念图;
[0045] 图11是示出由两个核来处理图10中示出的图像的序列的概念图;
[0046] 图12是示出均包括两个并行块的图像的序列的概念图;
[0047] 图13是示出均分别包括四个并行块的图像的序列的概念图;
[0048] 图14是示出由两个核来对图13中示出的图像的序列进行处理的过程的概念图;
[0049] 图15是示出图1中所示的数据处理系统的硬件编解码器的框图;
[0050] 图16是图15中所示的硬件编解码器的编码器的框图;
[0051] 图17是图15中所示的硬件编解码器的解码器的框图;
[0052] 图18是示出根据示例性实施例的数据处理系统的框图;
[0053] 图19是示出根据示例性实施例的数据处理系统的框图;
[0054] 图20是示出根据示例性实施例的由图1、图18和图19中所示的数据处理系统处理视频数据的方法的流程图。

具体实施方式

[0055] 将在下文中参照附图更充分地描述各种示例性实施例,在附图中示出了示例实施例。然而,本发明构思可以以各种形式来实现并且不应被解释为受限于这里阐述的示例性实施例。相反,这些示例性实施例被提供为使得该公开将是彻底的和完整的,并将向本领域的技术人员充分传达本发明构思的范围。在整个说明书中相同的附图标记可以始终指示相同的组件。在附图中,为了清晰起见,会夸大层和区域的厚度。
[0056] 将理解的是,当层被称为“在”另一层或基底“上”时,该层可以直接在所述另一层或基底上,或者可以存在中间层。相反,当元件被称为“直接在”另一元件“上”时,不存在中间元件。
[0057] 为了易于描述,这里可使用诸如“在……之下”、“在……下方”、“下面的”、“在……上方”、“上面的”等空间相对术语来描述如图中所示的一个元件或特征与其他元件或特征的关系。将理解的是,除了附图中描绘的方位之外,空间相对术语还意在包含装置在使用或操作中的不同方位。例如,如果图中的装置被翻转,则描述为在其它元件或特征“下方”或“下面”的元件随后将被定位为在其它元件或特征“上方”。因此,示例性术语“在……下方”可以包括“在……上方”和“在……下方”两种方位。此外,所述装置可被另外定位(例如,旋转90度或者在其它方位),并相应地解释这里使用的空间相对描述符。
[0058] 除非这里另有指示或明显与上下文相矛盾,否则在描述示例性实施例的上下文中,尤其是在权利要求的上下文中,单数术语的使用将被解释为包括单数形式和复数形式。除非另外指明,否则术语“包括”、“具有”、“包含”和“含有”将被解释为开放式术语(即,意思是“包括,但不限制于”)。
[0059] 除非另有定义,否则这里使用的所有技术和科学术语具有本发明构思所属的普通技术人员通常理解的相同含义。需表明的是,除非另外具体说明,否则使用这里提供的任意或全部示例或示例性术语仅意图更好地说明本发明构思,并不限制本发明构思的范围。另外,除非明确定义,否则在通用的字典中定义的所有术语可以不以过于形式化的含义来解释。
[0060] 将参照透视图、剖视图和/或俯视图来描述示例性实施例。因此,可以根据制造技术和/或允许量对示例性视图的外形进行修改。即,示例性实施例不意图限制本发明构思的范围,而意图涵盖可由于制造工艺中的改变引起的所有改变和修改。因此,图中示出的区域以示意的形式示出,而且区域的形状通过说明性的方式被简单示出,并不作为限制。
[0061] 以下将参照附图更充分地描述各种示例性实施例。
[0062] 在各种示例性实施例中的图像或处理单元(即,将被处理的单元)可以包括一个或更多个划分区域,例如,条带或并行块。根据示例性实施例,可以由核处理图像。换而言之,可以由单核处理图像中的所有的划分区域(例如,所有的条带或所有的并行块)。这里,处理可指编码、解码、包括环路滤波的编码或包括环路滤波的解码。
[0063] 在各种示例性实施例中,图像可以划分成条带,所述条带分别定义针对AVC的整数个宏块(MB)的序列或针对HEVC的整数个编码树单元(CTU)的序列。在HEVC的示例性实施例中,图像还可以划分成并行块,所述并行块可以定义整数个CTU的矩形区域,并可以包括多于一个的条带中所包含的CTU。
[0064] 在一些示例性实施例中,可在全高清(FHD)TV或超高清(UHD)TV中实现数据处理系统100A、100B或100C。另外,数据处理系统100A、100B或100C可以与诸如H.264、高效视频编码(HEVC)等的视频编码标准兼容。
[0065] 在一些示例性实施例中,可在个人计算机(PC)、智能电话、平板PC、移动互联网装置(MID)、膝上型计算机、移动数字多媒体播放器(M-DMP)或便携式多媒体播放器(PMP)中实现数据处理系统100A、100B或100C。
[0066] 图1是根据示例性实施例的数据处理系统的框图。参照图1,数据处理系统100A可以包括控制器200A,多个存储器301、303和305和显示器400。在一些示例性实施例中,数据处理系统100A还可以包括相机500。
[0067] 控制器200A可被实现为集成电路(IC)、片上系统(SoC)、主板、应用处理器(AP)或移动AP。
[0068] 控制器200A可以接收输入的未压缩的YUV/RGB数据并对输入的未压缩的YUV/RGB数据进行编码或对已编码的比特流进行解码、控制多个存储器301、303和305的操作(诸如读/写操作)并将显示数据或视频数据发送到显示器400。另外,控制器200A可以处理从相机500输出的图像数据或视频数据,并可以将处理后的图像数据或处理后的视频数据存储在多个存储器301、303和305中的至少一个中,和/或将处理后的图像数据或处理后的视频数发送到显示器400。
[0069] 控制器200A可以包括中央处理器(CPU)210A、图像处理单元(GPU)220、多个硬件编解码器230-1至230-N(N是等于或大于2的自然数)、存储器接口(I/F)240、显示器接口(I/F)260和接收器接口(I/F)270。当数据处理系统100A还包括相机500时,控制器200A还可以包括相机接口(I/F)250。
[0070] CPU 210A、GPU 220、多个硬件编解码器230-1至230-N、存储器接口240、显示器接口260和接收器接口270可以通过总线201互相发送或接收数据。相机接口250可以连接到其他组件(诸如210A和/或220),并将数据发送到其它组件或从其它组件接收数据。
[0071] CPU 210A可以包括一个或更多个核。CPU 210A可以控制控制器200A的整体操作。例如,CPU 210A可以执行用于控制GPU 220、多个硬件编解码器230-1至230-N、存储器接口
240、相机接口250、显示器接口260和/或接收器接口270的操作的程序代码或应用。
[0072] GPU 220可以处理2D或3D图形数据。由GPU 220处理的图形数据可被存储在多个存储器301、303和305中的至少一个中,或可由显示器400来显示。
[0073] 多个硬件编解码器230-1至230-N可以在结构和操作上基本相同。在一些示例性实施例中,多个硬件编解码器230-1至230-N中的每个可以被称为核。多个硬件编解码器230-1至230-N中的每个可以分别包括存储器MEM1至MEMN中的一个。存储器MEM1至MEMN中的每个可以存储一个或更多个编码的图像和/或解码的图像的信息,和/或可对一个或更多个编码的图像和/或解码的图像执行环路滤波。
[0074] 存储器接口240可以包括第一存储器接口241、第二存储器接口243和第三存储器接口245。例如,当多个存储器301、303和305中的第一存储器301是动态随机存取存储器(DRAM)时,第一存储器接口241可以是DRAM接口。当第二存储器303是NAND闪存时,第二存储器接口243可以是NAND闪存接口。当第三存储器305是嵌入式多媒体卡(eMMC)时,第三存储器接口245可以是eMMC接口。为了便于描述,在图1中,示出了三个存储器接口241、243和245与三个存储器301、303和305;然而,这仅是示例,存储器的数量没有受到特别地限制。因此,本发明构思的技术概念没有受到存储器接口和连接到存储器接口的存储器的数量地限制。
[0075] 显示器接口260可以在CPU 210A、GPU 220或多个硬件编解码器230-1至230-N中的每个的控制下,将显示数据(例如,视频数据)发送到显示器400。在一些示例性实施例中,显示器接口260可被实现为移动行业处理器接口 嵌入式显示端口(EDP)接口、高清晰度多媒体接口(HDMI)等的显示串行接口(DSI)。然而,这些接口仅是示例性的,并且显示器接口260不限于此。
[0076] 接收器接口270可以通过有线通信网络或无线通信网络来接收未压缩的图像数据(RGB/YUV)或/和已编码的比特流。在一些示例性实施例中,接收器接口270可被实现为通用串行总线接口(USB)、以太网接口、蓝牙接口、Wi-Fi接口或长期演进(LTETM)接口等。然而,这些接口仅是示例性的,并且接收器接口270不限于此。
[0077] 相机接口250可以接收从相机500输出的图像数据。在一些示例性实施例中,相机接口250可以是 的相机串行接口(CSI)。然而,这个接口仅是示例性的,并且相机接口250不限于此。相机500可以是包括CMOS图像传感器的相机模块。
[0078] 图2是示出包括多个条带的图像的概念图。
[0079] 参照图2,图像10可以包括多个条带SLICE1至SLICE3,并且多个条带SLICE1至SLICE3中的每个可以包括多个块。例如,如图2的示例中所示,SLICE1可以包括块0至块21,SLICE2可以包括块22至块39以及SLICE3可以包括块40至块63。包括在多个条带SLICE1至SLICE3中的每个条带中的块的数量可以是互相不同的。可选择地是,包括在多个条带SLICE1至SLICE3中的每个条带中的块的数量可相同。图像10可以是将进行编码的帧、原始图像、将进行编码的图像的原始比特流、将进行解码的帧、已编码的图像或已编码的比特流EB。图2示出具有64个块(即,块0至块63)的图像。然而,这仅是示例,块的数量可以大于或小于64。
[0080] 在H.264视频编码标准中,块可以是宏块。在高效视频编码(HEVC)标准中,块可以是编码树单元(CTU)。在一些示例性实施例中,图像10可以是将进行编码的帧、原始图像、将进行编码的图像的原始比特流、将进行解码的帧、已编码的图像或已编码的比特流EB等。
[0081] 编码器可以对图像中的块进行编码,解码器可以从块0至块63顺序地对图像中的块进行解码。
[0082] 在对第一条带SLICE1中的第一块0进行处理之后,编码器或解码器不对被处理的第一块0边缘执行环路滤波,这是因为在被处理的第一块0之前没有块。另一方面,在对第一条带SLICE1中的第二块1进行处理之后,编码器或解码器可以基于被处理的第一块0的第一视频数据和被处理的第二块1的第二视频数据来对第一块0边缘和第二块1执行环路滤波。即,编码器或解码器可以对块边界执行环路滤波。这里,块边界是指两块之间的边界。
[0083] 在对第二条带SLICE2中的第23个被处理的块22进行处理之后,编码器或解码器可以基于块14、21和23的视频数据来对第二条带SLICE2中第23个被处理的块22边缘和第一条带SLICE1中的先前块14和21执行环路滤波。即,编码器或解码器可以在条带边界上执行环路滤波。
[0084] 在对第三条带SLICE3中的第41个被处理的块40进行处理之后,编码器或解码器可以基于第33个块32的视频数据,来对第三条带SLICE3中的第41个被处理的块40边缘和第二条带SLICE2中的先前块32执行环路滤波。即,编码器或解码器可对条带边界执行环路滤波。换而言之,可以使用与当前块邻近的上方被处理的块与左侧被处理的块中的至少一个来执行当前被处理的块的环路滤波。
[0085] 根据示例性实施例,包括符合H.264的视频编码标准的环路滤波器的解码器可以对每个块执行环路滤波。根据示例性实施例,包括符合HEVC的视频编码标准的环路滤波器的解码器可以对每个块执行环路滤波。例如,解码器可以根据样点自适应偏移(SAO)的视频编码标准,在对块边界上执行对与当前解码的块邻近的多个块的环路滤波,或者执行对当前解码的块中的所有像素的环路滤波。
[0086] 可以基于运动矢量、预测模式信息和/或量化参数等来执行根据H.264的视频编码标准的环路滤波。可以基于运动矢量、预测模式信息、量化参数和/或SAO滤波器的多个参数等来执行根据HEVC的视频编码标准的环路滤波。预测模式可以包括帧内预测模式信息或帧间预测模式信息。
[0087] 图3是示出分别包括两个条带的图像的序列的概念图。图4是示出由两个核处理图3中所示的图像的序列的过程的概念图。
[0088] 参照图1、图3和图4,控制器200A可以包括两个硬件编解码器230-1和230-2。第一核CORE0可以是第一硬件编解码器230-1,第二核CORE1可以是第二硬件编解码器230-2。编码器或解码器可以包括在第一核CORE0和第二核CORE1中。
[0089] 参照图3,多个图像610、612、614……616(诸如PICTURE1、PICTURE2、PICTURE3…和PICTUREm)中的每个可以分别包括两个条带610-1至610-2、612-1至612-2、614-1至614-2……616-1至616-2。多个图像610、612、614……616中的每个可以分别包括第一处理单元
610-1、612-1、614-1……616-1,并分别包括第二处理单元610-2、612-2、614-2……616-2。
如在本公开中使用的,“处理单元”是指将被处理的数据单元。例如,多个图像610、612、
614……616中的每个可以表示从接收器接口270等接收的将进行编码的帧、原始图像、将进行编码的图像的原始比特流、将进行解码的帧、编码图像或已编码的比特流EB等。
[0090] 在一些示例性实施例中,CPU 210A可以控制接收器接口270使得奇数图像可以被分配到第一核CORE0,而偶数图像可以被分配到第二核CORE1。
[0091] 在一些示例性实施例中,CPU 210A可以控制第一核CORE0和第二核CORE1使得奇数图像可以被分配到第一核CORE0,而偶数图像可以被分配到第二核CORE1。
[0092] 参照图4,在第一时间周期T1内,第一核CORE0可以对第一图像610的第一条带610-1进行处理。在第一核CORE0已完成在第一时间周期T1内对第一图像610的第一条带610-1的处理之后,第二核CORE1可在第二时间周期T2内对第二图像612的第一条带612-1进行处理。
[0093] 在第二时间周期T2内,第一核CORE0可以对第一图像610的第二条带610-2进行处理,第二核CORE1可以对第二图像612的第一条带612-1进行处理。可以在第二时间周期T2内并行地执行对第一条带612-1的处理和对第二条带610-2的处理。如在该说明书中使用的,“并行地执行对……的处理”意指在处理中存在一些重叠。因此,这里,“并行”意指在对第一条带612-1和第二条带610-2的处理中存在一些重叠。即,虽然图4、图6、图8、图11和图14中使用了虚线,但是这些线仅是为易于描述而提供的,并不意图表明处理的开始时间与结束时间精确地重合。例如,图4中的虚线不意图表明对第一条带612-1和第二条带610-2进行处理的开始时间和结束时间精确地重合。然而,在一些示例性实施例中,开始时间可以精确地重合和/或结束时间可以精确地重合。
[0094] 另外,在第二时间周期T2内,第一核CORE0可以基于对第一图像610中的第一条带610-1的处理结果,针对每个块对第一图像610的第一条带610-1和第二条带610-2的边界执行环路滤波。如参照图2所述,第一核CORE0可以使用与当前块邻近的上方被处理的块与左侧被处理的块中的至少一个来对当前被处理的块执行环路滤波。即,在第二时间周期T2内,第一核CORE0可以执行对第二条带610-2的处理以及对第一条带610-1和第二条带610-2的环路滤波,从而不需要使用额外的时间来进行环路滤波。
[0095] 在第三时间周期T3内,第一核CORE0可以处理第三图像614的第一条带614-1,第二核CORE1可以处理第二图像612的第二条带612-2。可以在第三时间周期T3内并行地执行对第三图像614的第一条带614-1的处理和对第二图像612的第二条带612-2的处理。
[0096] 另外,在第三时间周期T3内,第二核CORE1可以基于对第二图像612中的第一条带612-1的处理结果,针对每个块对第一条带612-1与第二条带612-2的边界执行环路滤波。
即,在第三时间周期T3内,第二核CORE1可以执行对第二条带612-2的处理以及对第二图像
612的第一条带612-1和第二条带612-2的边缘的环路滤波,从而不需要使用额外的时间来进行环路滤波。因此,如图4中所示,第二核CORE1可以具有一个条带的延迟。即,在第一核CORE0已经完成对第一图像610的第一条带610-1的处理之后,第二核CORE1才可以开始处理第二图像612的第一条带612-1。
[0097] 图5是示出分别包括两个条带组的图像的序列的概念图。图6是示出由两个核处理图5中所示图像的序列的过程的概念图。
[0098] 图1中所示的控制器200A可以包括两个硬件编解码器230-1和230-2,其中,硬件编解码器230-1对应于第一核CORE0,硬件编解码器230-2对应于第二核CORE1。图像的序列可以包括,例如,图像620、图像622、图像624和图像626(诸如PICTURE11、PICTURE12、PICTURE13…和PICTUREm)。
[0099] 第一核CORE0可以基于图像620中多个划分区域的处理复杂度或尺寸来将图像620划分成第一处理单元和第二处理单元。在图5和图6中,第一处理单元可以包括两个条带SLICE1-1与SLICE1-2,第二处理单元可以包括三个条带SLICE1-3至SLICE1-5。第一处理单元在图5中的粗线以上被示出,第二处理单元在图5中的粗线以下被示出。图5示出每个第一处理单元都包括两个条带,例如,第一图像620包括具有SLICE1-1和SLICE1-2的第一处理单元。然而,这仅是示例,第一处理单元可以依据多个划分区域的复杂度或尺寸而具有小于或大于两个条带的条带数量。
[0100] 第二核CORE1可以基于图像622的处理复杂度来将图像622划分成第一处理单元和第二处理单元。在图5和图6中,第一处理单元可以包括两个条带SLICE2-1和SLICE2-2,第二处理单元可以包括三个条带SLICE2-3至SLICE2-5。
[0101] 例如,当图像620、图像622、图像624和图像626不被划分成多个条带或多个并行块时,或者当多个划分的区域(例如,条带或并行块)具有不同的处理复杂度时,基于处理复杂度来定义用于多个核CORE0和CORE1的并行处理的多个划分区域是有利的。这里,第一核CORE0和第二核CORE1划分并且并行处理图像620、图像622、图像624和图像626的多个划分区域。处理复杂度可以由解码时间和/或解码时间和/或以图像的块为单位的条带的尺寸来定义。
[0102] 当图5中的m是等于或大于4的自然数时,相似地,第一核CORE0可以基于图像624的处理的复杂度来将图像624划分成第一处理单元和第二处理单元。在图5和图6中,第一处理单元可以包括两个条带SLICE3-1和SLICE3-2,第二处理单元可以包括三个条带SLICE1-3至SLICE1-5。
[0103] 第二核CORE1可以基于图像626的处理复杂度来将图像626划分成第一处理单元和第二处理单元。在图5和图6中,第一处理单元可以包括两个条带SLICEm-1和SLICEm-2,第二处理单元可以包括三个条带SLICEm-3至SLICEm-5。
[0104] 虽然,每个图像620、622、624……626被示出为分别划分成用于核CORE0的第一处理单元和用于核CORE1的第二处理单元,但是,为了便于对图5和图6进行描述,图像中的处理单元的数量可以根据用于对所述单元进行处理的核的数量而变化。
[0105] 例如,由第一核CORE0来处理三个条带SLICE1-3至SLICE1-5的处理时间和由第二核CORE1来处理两个条带SLICE2-1至SLICE2-2的处理时间可以基本相同。这里,“基本相同”可以包括“相等、几乎相同、差不多相同或在可允许的差值范围内的情况下相同”。
[0106] 如图5中所示,每个图像620、622、624……626可以分别包括五个条带SLICE1-1至SLICE1-5、SLICE2-1至SLICE2-5、SLICE3-1至SLICE3-5……SLICEm-1至SLICEm-5。例如,每个图像620、622、624……626可以是通过接收器接口270接收的将进行编码的帧、原始图像、将进行编码的图像的原始比特流、将进行解码的帧、编码图像或已编码的比特流EB等。
[0107] 回参图6,在第一时间周期T11内,第一核CORE0可以针对第一图像620的第一条带SLICE1-1和第二条带SLICE1-2进行处理。在第一时间周期T11内,第一核CORE0可以基于条带SLICE1-1的处理结果,针对每个块对条带SLICE1-1和SLICE1-2的边界执行环路滤波。
[0108] 在第二时间周期T12内,第一核CORE0可以针对第一图像620的第三条带SLICE1-3至第五条带SLICE1-5进行处理,第二核CORE1可以针对第二图像622的第一条带SLICE2-1和第二条带SLICE2-2进行处理。可以在第二时间周期T12内并行执行对第三条带SLICE1-3至第五条带SLICE1-5的处理和对第一条带SLICE2-1和第二条带SLICE2-2的处理。
[0109] 在第二时间周期T12内,第一核CORE0可以基于对条带SLICE1-2的处理结果,针对每个块对条带SLICE1-2和条带SLICE1-3的边界执行环路滤波。在第二时间周期T12内,第一核CORE0可以基于对条带SLICE1-3的处理结果,针对每个块对条带SLICE1-3和条带SLICE1-4的边界执行环路滤波,并且可以基于对条带SLICE1-4的处理结果,针对每个块对条带SLICE1-4和条带SLICE1-5的边界执行环路滤波。另外,在第二时间周期T12内,第二核CORE1可以基于对条带SLICE2-1的处理结果,针对每个块对条带SLICE2-1和条带SLICE2-2的边界执行环路滤波。
[0110] 即,在第二时间周期T12内,第一核CORE0可以针对三个条带SLICE1-3至SLICE1-5执行环路滤波,第二核CORE1可以针对两个条带SLICE2-1至SLICE2-2执行环路滤波,从而不需要额外的时间来进行环路滤波,例如,不需要额外时间来收集分布在第一核CORE0与第二核CORE1上的条带。
[0111] 在第三时间周期T13内,第一核CORE0可以对第三图像624的第一条带SLICE3-1与第二条带SLICE3-2进行处理。在第三时间周期T13内,第一核CORE0可以基于对条带SLICE3-1的处理结果,针对每个块对条带SLICE3-1和条带SLICE3-2的边界执行环路滤波。
[0112] 在第三时间周期T13内,第一核CORE0可以针对第三个图像624的第一条带SLICE3-1和第二条带SLICE3-2进行处理,第二核CORE1可以针对第二图像622的第三条带SLICE2-3至第五条带SLICE2-5进行处理。在第三时间周期T13内可以并行执行对第三条带SLICE2-3至第五条带SLICE2-5的处理和对第一条带SLICE3-1和第二条带SLICE3-2的处理。
[0113] 在第三时间周期T13内,第一核CORE0可以基于对条带SLICE3-1的处理结果,针对每个块对条带SLICE3-1和条带SLICE3-2的边界执行环路滤波。另外,在第三时间周期T13内,第二核CORE1可以基于对条带SLICE2-2的处理结果,针对每个块对条带SLICE2-2和条带SLICE2-3的边界执行环路滤波。在第三时间周期T13内,第二核CORE1可以基于对条带SLICE2-3的处理结果,针对每个块对条带SLICE2-3和条带SLICE2-4的边界执行环路滤波,并且可以基于对条带SLICE2-4的处理结果,针对每个块对条带SLICE2-4和条带SLICE2-5的边界执行环路滤波。
[0114] 即,在第三时间周期T13内,第一核CORE0可以针对两个条带SLICE3-1和SLICE3-2执行环路滤波,第二核CORE1可以针对三个条带SLICE2-3至第五条带SLICE2-5执行环路滤波,从而不需要额外的时间来进行环路滤波,例如,不需要额外的时间来收集分布在第一核CORE0与第二核CORE1上的条带。
[0115] 图7是示出分别包括三个条带的图像的序列的概念图。图8是示出由三个核处理图7中所示图像的序列的过程的概念图。
[0116] 图1中所示的控制器200A可以包括三个硬件编解码器230-1、230-2和230-3,其中,硬件编解码器230-1对应于第一核CORE0,硬件编解码器230-2对应于第二核CORE1,硬件编解码器230-3对应于第三核CORE2。编码器和/或解码器可以被嵌入在核CORE0、CORE1和CORE2中的每个核中。
[0117] 如图7所示,每个图像630、632、634、636和638(诸如PICTURE21、PICTURE22、PICTURE23、PICTURE24和PICTURE25)可以分别包括三个条带。每个图像630、632、634、636和638可以包括第一处理单元、第二处理单元和第三处理单元。即,第一处理单元、第二处理单元和第三处理单元中的每个处理单元可以分别对应于三个条带中的一个条带。每个图像
630、632、634、636和638可以是从接收器接口270接收的将进行编码的帧、原始图像、将进行编码的图像的原始比特流、将进行解码的帧、已编码的图像或已编码的比特流EB等。
[0118] 返回图8,在第一时间周期T21,第一核CORE0可以对第一图像630的第一条带SLICE1-1进行处理。
[0119] 在第二时间周期T22内,第一核CORE0可以对第一图像630的第二条带SLICE1-2进行处理。第二核CORE1可以对第二图像632的第一条带SLICE2-1进行处理。在第二时间周期T22内,可以并行执行对第二条带SLICE1-2的处理和对第一条带SLICE2-1的处理。
[0120] 在第二时间周期T22内,第一核CORE0可以基于对条带SLICE1-1的处理结果,针对每个块对条带SLICE1-1和条带SLICE1-2的边界执行环路滤波。
[0121] 为了并行处理,可以将一个(1)条带延迟分配到第二核CORE1,以及可以将两个(2)条带延迟分配到第三核CORE2。
[0122] 在第三时间周期T23内,第一核CORE0可以对第一图像630的第三条带SLICE1-3进行处理,第二核CORE1可以对第二图像632的第二条带SLICE2-2进行处理,第三核CORE2可以对第三图像634的第一条带SLICE3-1进行处理。
[0123] 在第三时间周期T23内,可以并行执行对第三条带SLICE1-3的处理以及对第二条带SLICE2-2和第一条带SLICE3-1的处理。
[0124] 在第三时间周期T23内,第一核CORE0可以基于对条带SLICE1-2的处理结果,针对每个块对条带SLICE1-2和条带SLICE1-3的边界执行环路滤波,第二核CORE1可以基于对条带SLICE2-1的处理结果,针对每个块对条带SLICE2-1和条带SLICE2-2的边界执行环路滤波。
[0125] 在第四时间周期T24内,第一核CORE0可以对第四图像636的第一条带SLICE4-1进行处理,第二核CORE1可以对第二图像632的第三条带SLICE2-3进行处理,第三核CORE2可以对第三图像634的第二条带SLICE3-2进行处理。即,一旦第一核CORE0完成对第一图像630的条带的处理,第一核CORE0便开始处理图像序列中的下一个图像(在这个事例中是第四图像636)。
[0126] 在第四时间周期T24内,可以并行执行对第一条带SLICE4-1的处理、对第三条带SLICE2-3的处理和对第二条带SLICE3-2的处理。
[0127] 在第四时间周期T24内,第二核CORE1可以基于对条带SLICE2-2的处理结果,针对每个块对条带SLICE2-2和条带SLICE2-3的边界执行环路滤波。第三核CORE2可以基于对条带SLICE3-1的处理结果,针对每个块对条带SLICE3-1和条带SLICE3-2的边界执行环路滤波。
[0128] 在第五时间周期T25内,核CORE0、CORE1和CORE2中的每个核的操作可以以与第一时间周期T21至第四时间周期T24内的操作中相似的方式来继续处理各个条带。
[0129] 图9是示出运动矢量搜索的概念图。参照图3、图4和图9,当当前处理条带是第三图像614的第一条带614-1时,第一核CORE0可以在已处理的条带610-1、610-2和612-1中搜索以寻找最佳运动矢量。例如,当由不同的核CORE0和CORE1对条带612-2和614-1中的每个条带进行并行处理时,第一核不能参考第二图像612中的现在正在被处理的第二条带612-2。另外,因为在处理条带614-1时,条带612-1和612-2之间的边缘可能处在环路滤波的操作下,所以条带614-1可能无法参考条带612-1的一些底部的像素(在H264标准中,一些底部像素可以是6个像素)。
[0130] 数据处理系统100A可以通过并行处理的条带SLICE2-2与SLICE3-1之间的依赖性确定参考图像以及匹配块(或参考块)的坐标来对第三图像614进行编码,以避免或减少并行处理的条带SLICE2-2与SLICE3-1之间的依赖性。例如,当对第一条带614-1进行编码时,可以通过使第一条带614-1中的宏块参考条带610-1、610-2和612-1中的一个而不参考第二条带612-2,来确定第一条带614-1中的宏块的运动矢量以避免依赖性,其中,第二条带612-2受到由环路滤波操作正在处理的底部像素的一些限制。因此,可以降低并行处理中的依赖性。
[0131] 当对并行处理的条带进行编码时,数据处理系统100A可以产生并参考运动限制条带组来降低并行处理的条带之间的依赖性。运动限制条带组可以包括对由当前处理条带所参考的参考图像或者先前图像的参考区域进行限制的信息。运动限制条带组可被存储在数据处理系统100A中的存储器301、303和305中,或者被存储在核230-1至230-N中的每个核中的存储器中。
[0132] 图10是示出根据示例性实施例均包括两个并行块的图像的序列的概念图。图11是示出由两个核来处理图10中示出的图像的序列的概念图。
[0133] 在多个图像640、642、644和646中的每个图像中示出的箭头表示多个图像640、642、644和646中的多个并行块的处理方向或处理顺序。
[0134] 图1中的控制器200A可以包括硬件编解码器230-1和230-2。第一核CORE0可以是第一硬件编解码器230-1,第二核CORE1可以是第二硬件编解码器230-2。在一些示例性实施例中,可以由单核来处理图像中的所有并行块。
[0135] 参照图10,多个图像640、642、644和646(诸如PICTURE31、PICTURE32、PICTURE33和PICTURE34)中的每个图像可以分别包括两个并行块TILE1-1和TILE1-2、TILE2-1和TILE2-2、TILE3-1和TILE3-2以及TILE4-1和TILE4-2。并行块TILE1-1和TILE1-2、TILE2-1和TILE2-
2、TILE3-1和TILE3-2以及TILE4-1和TILE4-2中的每个并行块可以包括一个或更多个块。多个图像640、642、644和646中的每个图像可以包括第一处理单元TILE1-1、TILE2-1、TILE3-1和TILE4-1以及第二处理单元TILE1-2、TILE2-2、TILE3-2和TILE4-2。即,例如,图像640的第一处理单元包括TILE1-1,图像640的第二处理单元包括TILE1-2。这里,多个图像640、642、
644和646中的每个图像可以是通过接收器接口270接收到的将进行编码的帧、原始图像、将进行编码的图像的原始比特流、将进行解码的帧、已编码的图像或已编码的比特流EB等。
[0136] 将参照图1、图2、图10和图11描述第一核CORE0和第二核CORE1的操作。
[0137] 在第一时间周期T31内,第一核CORE0可以对第一图像640的第一并行块TILE1-1进行处理。为了并行处理,可以将1个并行块延迟分配给第二核CORE1。
[0138] 在第二时间周期T32内,第一核CORE0可以对第一图像640的第二并行块TILE1-2进行处理,第二核CORE1可以对第二图像642的第一并行块TILE2-1进行处理。可以在第二时间周期T32内并行执行对第一并行块TILE2-1的处理和对第二并行块TILE1-2的处理。如同上面讨论的情况下,这里,“并行”意指在对第一并行块TILE2-1和第二并行块TILE1-2进行地处理中存在一些重叠。即,虽然图4、图6、图8、图11和图14中使用了虚线,但是这些线仅是为易于理解而提供的并不意图表明处理的开始时间或结束时间精确地重合。例如,图11中的虚线不意图表明对第一并行块TILE2-1和第二并行块TILE1-2进行处理的开始时间或结束时间精确地重合。然而,在一些示例性实施例中,开始时间可以精确地重合和/或结束时间可以精确地重合。
[0139] 另外,在第二时间周期T32内,第一核CORE0可以基于对第一图像640中的第一并行块TILE1-1的处理结果,针对每个块对第一并行块TILE1-1和第二并行块TILE1-2的边界执行环路滤波。即,在第二时间周期T32内,第一核CORE0可以执行对第二并行块TILE1-2的处理以及对第一并行块TILE1-1和第二并行块TILE1-2的环路滤波,从而不需要额外的时间来进行环路滤波。
[0140] 在第三时间周期T33内,第一核CORE0可以对第三图像644的第一并行块TILE3-1进行处理,第二核CORE1可以对第二图像642的第二并行块TILE2-2进行处理。可以在第三时间周期T33内并行执行对第一并行块TILE3-1的处理和对第二并行块TILE2-2的处理。
[0141] 另外,在第三时间周期T33内,第二核CORE1可以基于对第二图像642中的第一并行块TILE2-1的处理结果,针对每个块对并行块TILE2-1和TILE2-2的边界执行环路滤波。即,在第三时间周期T33内,第二核CORE1可以执行对第二并行块TILE2-2的处理以及对并行块TILE2-1和TILE2-2的环路滤波,从而不需要额外的时间来进行环路滤波。
[0142] 在第四时间周期T34内,核CORE0和CORE1中的每个核可以以与第三时间周期T33内的操作中相似的方式来继续处理各个并行块。
[0143] 图12是示出均包括分别使用水平分区划分的两个并行块的图像序列的概念图。
[0144] 在多个图像650、652、654和656中的每个图像中示出的箭头表示多个图像650、652、654和656中的多个并行块的处理方向或处理顺序。
[0145] 图1中的控制器200A可以包括两个硬件编解码器230-1和230-2。第一核CORE0可以是第一硬件编解码器230-1,第二核CORE1可以是第二硬件编解码器230-2。将参照图1、图2、图11和图12来描述第一核CORE0和第二核CORE1的操作。
[0146] 参照图12,多个图像650、652、654和656(诸如PICTURE41、PICTURE42、PICTURE43和PICTURE44)中的每个图像可以分别包括两个并行块TILE1-1和TILE1-2、TILE2-1和TILE2-2、TILE3-1和TILE3-2以及TILE4-1和TILE4-2。并行块TILE1-1和TILE1-2、TILE2-1和TILE2-
2、TILE3-1和TILE3-2以及TILE4-1和TILE4-2中的每个并行块可以包括一个或更多个块。多个图像640、642、644和646中的每个图像可以分别包括第一处理单元TILE1-1、TILE2-1、TILE3-1和TILE4-1,并分别包括第二处理单元TILE1-2、TILE2-2、TILE3-2和TILE4-2。这里,多个图像650、652、654和656中的每个图像可以是通过接收器接口270接收到的将进行编码的帧、原始图像、将进行编码的图像的原始比特流、将进行解码的帧、已编码的图像或已编码的比特流EB等。
[0147] 在第一时间周期T31内,第一核CORE0可以对第一图像650的第一并行块TILE1-1进行处理。为了并行处理,可以将一个并行块延迟分配给第二核CORE1。
[0148] 在第二时间周期T32内,第一核CORE0可以对第一图像650的第二并行块TILE1-2进行处理,第二核CORE1可以对第二图像652的第一并行块TILE2-1进行处理。可以在第二时间周期T32内并行执行对第一并行块TILE2-1的处理和对第二并行块TILE1-2的处理。
[0149] 另外,在第二时间周期T32内,第一核CORE0可以基于对第一图像650中的第一并行块TILE1-1的处理结果,针对每个块对第一并行块TILE1-1和第二并行块TILE1-2的边界执行环路滤波。即,在第二时间周期T32内,第一核CORE0可以执行对第二并行块TILE1-2的处理以及对第一并行块TILE1-1和第二并行块TILE1-2的环路滤波,从而不需要额外的时间来进行环路滤波。
[0150] 在第三时间周期T33内,第一核CORE0可以对第三图像654的第一并行块TILE3-1进行处理,第二核CORE1可以对第二图像652的第二并行块TILE2-2进行处理。可以在第三时间周期T33内并行执行对第一并行块TILE3-1的处理和对第二并行块TILE2-2的处理。
[0151] 另外,在第三时间周期T33内,第二核CORE1可以基于对第二图像652中的第一并行块TILE2-1的处理结果,针对每个块对并行块TILE2-1和TILE2-2的边界执行环路滤波。即,在第三时间周期T33内,第二核CORE1可以执行对第二并行块TILE2-2的处理以及对并行块TILE2-1和TILE2-2的环路滤波,从而不需要额外的时间来进行环路滤波。
[0152] 在第四时间周期T34内,核CORE0和CORE1中的每个核可以以与第三时间周期T33内的操作中相似的方式来继续处理各个并行块。
[0153] 图13是示出均包括具有水平和垂直分区的四个并行块的图像序列的概念图。图14是示出由两个核来对图13中示出的图像的序列进行处理的过程的概念图。
[0154] 在多个图像660、662和664(诸如PICTURE51、PICTURE52和PICTURE53)中的每个图像中示出的箭头表示多个图像660、662和664中的多个并行块的处理方向或处理顺序。
[0155] 图1中的控制器200A可以包括两个硬件编解码器230-1和230-2。第一核CORE0可以是第一硬件编解码器230-1,第二核CORE1可以是第二硬件编解码器230-2。在一些示例性实施例中,可以由单核来处理图像中的所有并行块。将参照图1、图2、图13和图14来描述第一核CORE0和第二核CORE1的操作。
[0156] 参照图12,多个图像660、662和664中的每个图像可以分别包括四个并行块TILE1-1至TILE1-4、TILE2-1至TILE2-4以及TILE3-1至TILE3-4。并行块TILE1-1至TILE1-4、TILE2-
1至TILE2-4以及TILE3-1至TILE3-4中的每个并行块可以包括一个或更多个块。多个图像
660、662和664中的每个图像可以包括分别具有两个并行块TILE1-1和TILE1-2、TILE2-1和TILE2-2及TILE3-1和TILE3-2的第一处理单元,并包括分别具有两个并行块TILE1-3和TILE1-4、TILE2-3和TILE2-4及TILE3-3和TILE3-4。这里,多个图像660、662和664中的每个图像可以是通过接收器接口270接收到的将进行编码的帧、原始图像、将进行编码的图像的原始比特流、将进行解码的帧、已编码的图像或已编码的比特流EB等。
[0157] 在第一时间周期T51内,第一核CORE0可以对第一图像660的第一并行块TILE1-1和第二并行块TILE1-2进行处理,并基于对第一并行块TILE1-1的处理结果,针对每个块对第一图像660的并行块TILE1-1和TILE1-2的边界执行环路滤波。为了并行处理,可以将两个并行块延迟分配到第二核CORE1。
[0158] 在第二时间周期T52内,第一核CORE0可以对第一图像660的第三并行块TILE1-3和第四并行块TILE1-4进行处理,第二核CORE1可以对第二图像662的第一并行块TILE2-1和第二并行块TILE2-2进行处理。可以在第二时间周期T52内并行执行对第三并行块TILE1-3和第四并行块TILE1-4的处理以及对第一并行块TILE2-1和第二并行块TILE2-2的处理。如同在上面讨论的情况下,这里,“并行”意指在对并行块的处理中存在一些重叠。即,虽然图4、图6、图8、图11和图14中使用了虚线,但是这些线仅是为易于理解而提供的并不意图表明用于处理的开始时间或结束时间精确地重合。然而,在一些示例性实施例中,开始时间可以精确地重合和/或结束时间可以精确地重合。
[0159] 另外,在第二时间周期T52内,第一核CORE0可以基于对第一图像660中的第一并行块TILE1-1的处理结果,针对每个块对并行块TILE1-1和TILE1-3的边界执行环路滤波。
[0160] 在第二时间周期T52内,第一核CORE0可以基于对第一图像660中的第二并行块SLICE1-2的处理结果,针对每个块对并行块TILE1-2和TILE1-4的边界执行环路滤波。
[0161] 在第二时间周期T52内,第一核CORE0可以基于对第一图像660的第三并行块SLICE1-3的处理结果,针对每个块对并行块TILE1-3和TILE1-4的边界执行环路滤波。
[0162] 在第二时间周期T52内,第二核CORE1可以基于对第二图像662中的第一并行块SLICE2-1的处理结果,针对每个块对第二图像662的并行块SLICE2-1和并行块SLICE2-2的边界执行环路滤波。
[0163] 即,在第二时间周期T52内执行对已处理的并行块的边界的环路滤波,从而不需要额外的时间来进行环路滤波。
[0164] 在第三时间周期T53内,核CORE0和CORE1可以以与第二时间周期T52内的操作中相似的方式来继续处理各个并行块。
[0165] 图15是示出图1中所示的硬件编解码器的框图。
[0166] 参照图1和图15,硬件编解码器230-1可以包括选择电路701、编码器700、解码器800和存储器MEM1。
[0167] 当选择信号SEL具有第一电平(例如,低电平)时,选择电路701可以响应于选择信号SEL将图像数据或视频数据INV输出到编码器700。当选择信号SEL具有第二电平(例如,高电平)时,选择电路701可以响应于选择信号SEL将已编码的比特流EBS输出到解码器800。
[0168] 可以由CPU 210A来提供选择信号SEL。可以通过相机接口250来提供图像数据或视频数据INV,可以通过接收器接口270或存储器接口240来提供已编码的比特流EBS。
[0169] 编码器700可以从选择电路701输出的图像数据或视频数据INV进行编码,并通过已编码的比特流来将已编码的图像数据或已编码的视频数据输出到解码器800。
[0170] 解码器800可以对从选择电路701输出的已编码的比特流EBS或从编码器700输出的已编码的比特流进行编码,并产生重建的图像数据或重建的视频数据RV。重建的图像数据或重建的视频数据RV可以通过显示器接口260被显示在显示器40上。
[0171] 在一些示例性实施例中,编码器700或解码器800可以将重建的图像数据或重建的视频数据RV存储在存储器MEM1中。编码器700或解码器800可以对存储在存储器MEM1中的重建的图像数据或重建的视频数据执行环路滤波。
[0172] 在一些示例性实施例中,编码器700和解码器800中的每个可以包括根据H.264视频编码标准或HEVC视频编码标准或支持环路去块滤波器的任意其他的标准而定义的环路滤波。
[0173] 图16是图15中所示的编码器的框图。
[0174] 参照图15和图16,编码器700可以包括预测器710、减法器720、变换器730、量化器740、熵编码器750、反量化器760、逆变换器770、加法器780和环路滤波器790。
[0175] 预测器710可以包括运动估计器712和运动补偿器714。预测器710可以预测当前块,产生预测块并输出预测块。具体来讲,预测器710可以预测当前块中每个像素的像素值并产生包括每个像素的预测像素值的预测块。当执行帧间预测时,预测器710可以包括运动估计器712和运动补偿器714。运动估计器712可以被称为运动矢量估计器。
[0176] 运动估计器712或运动矢量估计器712可以基于至少一个参考图像,通过与当前块的块模式或预定块模式对应的块,估计当前块的运动向量,并确定当前块的运动矢量。块的尺寸可以是16×16、16×8、8×16、8×8、8×4、4×8或4×4。
[0177] 运动补偿器714可以基于从运动估计器712输出的当前块的运动估计矢量产生预测块,并输出预测块。即,运动补偿器714可以输出参考图像中与当前块相同地址的块,作为预测块。
[0178] 减法器720可以从具有视频数据INV的当前块减去预测块,并且产生残差块。减法器720可以计算当前块中的每个像素与预测块中的每个像素之间的差,并且产生包括残差信号的残差块。
[0179] 变换器730可以将残差信号从时间域变换到频域,量化器740可以对变换器730的输出进行量化并且输出量化后的残差块。变换器730可以使用离散余弦变换以将残差信号变换到频域。变换到频域的残差信号可以是变换系数。
[0180] 熵编码器750可以从量化器740输出的量化后的残差块进行编码,并且输出已编码的比特流。此外,反量化器760可以对从量化器740输出的量化后的残差块进行反量化,并输出反量化后的残差块。
[0181] 逆变换器770可以对反量化后的残差块执行逆变换,并且产生重建的残差块。
[0182] 加法器780可以将来自预测器710的预测块与从逆变换器770输出的重建的残差块相加,并且重建当前块。
[0183] 环路滤波器790可以对重建的当前块执行环路滤波,并且将滤波后的当前块输出到预测器710。
[0184] 图17是图15中所示的解码器的框图。
[0185] 参照图15至图17,解码器800可以包括熵解码器810、反量化器820、逆变换器830、运动补偿器840、加法器850和环路滤波器860。
[0186] 熵解码器810可以对接收到的已编码的比特流EBS或从编码器700输出的已编码的比特流进行解码,并且产生量化后的残差块。
[0187] 反量化器820可以对从熵解码器810输出的量化后的残差块执行反量化,并且产生反量化后的残差块。
[0188] 逆变换器830可以对反量化后的残差块执行逆变换,并且产生重建的残差块。
[0189] 运动补偿器840可以基于包括在从环路滤波器860输出的重建的块中的运动矢量来预测当前块,并且输出预测块。
[0190] 加法器850可以通过将从逆变换器830输出的重建的残差块与从运动补偿器840输出的预测块相加来重建当前块,并且输出重建的当前块。
[0191] 环路滤波器860可以对重建的当前块执行环路滤波,并且输出重建的当前块RV。即,环路滤波器860可以通过块来输出重建的视频数据RV。
[0192] 在一些示例性实施例中,环路滤波器790和860均可包括去块滤波器和样点自适应偏移(SAO)滤波器。
[0193] 图18是根据示例性实施例示出数据处理系统的框图。
[0194] 参照图18,数据处理系统100B可以包括控制器200B、多个存储器301、303和305、以及显示器400。在一些示例性实施例中,数据处理系统100B还可以包括相机500。
[0195] 控制器200B可以被实现在集成电路(IC)、片上系统(SoC)、主板、应用处理器(AP)和/或移动AP等中。
[0196] 控制器200B可以包括CPU 210A、GPU 220、多个硬件编解码器230、存储器接口(I/F)240、显示器接口(I/F)260和接收器接口(I/F)270。当数据处理系统100B还包括相机500时,控制器200B还可以包括相机接口(I/F)250。
[0197] 除了包括在硬件编解码器中的多个编解码器231-1至231-N之外,图18中示出的控制器200B在结构和操作方面都与图1中示出的控制器200A相同或相似。
[0198] 多个编解码器231-1至231-N中的每个编解码器的操作可与图1中的多个硬件编解码器230-1至230-N中的每个硬件编解码器的操作相同或相似。另外,多个编解码器231-1至231-N中的每个编解码器可以具有与存储器MEM1至MEMN中的每个存储器对应的存储器。
[0199] 多个编解码器231-1至231-N中的每个编解码器可以包括参照图15至图17所描述的组件701、700和800。图4至图14中描述的第一核CORE0、第二核CORE1和第三核CORE2可以分别对应于第一核231-1、第二核231-2和第三核231-3。
[0200] 图19是示出根据示例性实施例的数据处理系统的框图。
[0201] 参照图19,数据处理系统100C可以包括控制器200C、多个存储器301、303和305、以及显示器400。在一些示例性实施例中,数据处理系统100C还可以包括相机500。
[0202] 控制器200C可以被实现为在集成电路(IC)、片上系统(SoC)、应用处理器(AP)和/或移动AP等。
[0203] 控制器200C可以包括CPU 210B、GPU 220、存储器接口(I/F)240、显示器接口(I/F)260和接收器接口(I/F)270。当数据处理系统100C还包括相机500时,控制器200C还可以包括相机接口(I/F)250。
[0204] 除了CPU 210B包括多个核CORE1至COREN之外,图19中示出的控制器200C在结构和操作方面与图1中示出的控制器200A相同或相似。
[0205] 多个核CORE1至COREN中的每个核的操作可以与图1中的多个硬件编解码器230-1至230-N中的每个硬件编解码器的操作相同或相似。另外,多个核CORE1至COREN中的每个核可以具有与存储器MEM1至MEMN中的每个存储器对应的存储器(例如,高速缓冲存储器)。
[0206] 多个核CORE1至COREN中的每个核可以运行软件编解码器。当N是3时,图4至图14中描述的第一核CORE0、第二核CORE1和第三核CORE2可以分别对应于图19中的第一核CORE1、第二核CORE2和第三核CORE3。
[0207] 参照图4至图14,由核CORE1至COREN中的每个核运行的软件编解码器可以执行编码、解码、包括环路滤波的编码或包括环路滤波的解码。
[0208] 图20是示出根据示例性实施例的由图1、图18和图19中所示的数据处理系统处理视频数据的方法的流程图。处理方法是诸如编码或解码。
[0209] 参照图1至图20,在操作S100,将每个图像分配到每个核。例如,视频数据中的第一图像、第二图像和第三图像中的每个图像可以被分配到用于处理视频数据的第一核和第二核之一。第一图像、第二图像和第三图像中的每个图像可以分别包括第一条带(或第一并行块)和第二条带(或第二并行块)。
[0210] 在操作S110,可以由第一核对第一图像中的第一条带(或第一并行块)进行处理。在操作S120,当由第一核对第一图像中的第二条带(或第二并行块)进行处理的同时,可以由第二核对第二图像中的第一条带(或第一并行块)进行并行处理。在操作S120,第一核还可以基于对第一图像的第一条带的处理结果来对第一图像的第一条带和第二条带执行环路滤波。在操作S130,当由第二核对第二图像中的第二条带(或第二并行块)进行处理的同时,可以由第三核对第三图像中的第一条带(或第一并行块)进行并行处理。在操作S130,第二核还可以基于对第二图像的第一条带的处理结果来对第二图像的第一条带和第二条带执行环路滤波。
[0211] 如上所述,可以与通过将多个图像中的每个图像分配到多个核中的每个核并由多个核对多个图像进行并行处理来对视频数据进行编码的方法类似地使用图1至图14与图18至图20中所述的对视频数据进行解码的方法。
[0212] 虽然在此已经参照示例性实施例描述了本发明构思,但是本领域的普通技术人员将理解的是,在不脱离权利要求限定的本发明构思的精神和范围的情况下,可对示例性实施例进行形式和细节上的各种改变。