处理用于当解码图像时对于块的操作的参数的制作方法

文档序号:11935337阅读:264来源:国知局
处理用于当解码图像时对于块的操作的参数的制作方法与工艺

诸如音频和视频以及静止图像之类的数字媒体数据通常被编码成比特流,其被传送或存储在数据文件中,其中已编码比特流符合已建立的标准。这样的标准的示例是称为ISO/IEC 23008-2 MPE-H Part 2、也被称为ITU-T H.265或HEVC或H.265的格式。在本文中,依照该标准被编码的比特流被称为HEVC兼容比特流。

当从HEVC兼容比特流解码图像时对中间图像数据执行两个操作:采样自适应偏移和解块。更特别地,这些操作依照被存储在已编码比特流中的、用于该块的参数来处理中间图像数据的每个块。



技术实现要素:

本发明内容被提供用来以简化形式介绍下面在具体实施方式中进一步描述的概念的选择。本发明内容不意图标识要求保护的主题的关键特征或必要特征,其也不意图用于限制要求保护的主题的范围。

在具有作为中央处理单元的协处理器的图形处理单元的系统中,图形处理单元被编程成执行各种操作来解码图像。对于采样自适应偏移和解块操作,中央处理单元处理比特流,并且针对每个图像将用于这些操作的参数载入图形处理单元中。对于每个图像,图形处理单元然后依照所接收的参数并行地处理中间图像数据的块。

为了使用作为协处理器的图形处理单元解码已编码视频,将应用于中间图形数据的块的参数从中央处理单元传输到图形处理单元。当正执行的操作适用于中间图像数据的小部分块时,那么中央处理单元可以将仅用于该操作所适用的那些块的参数传输给图形处理单元。特别地,中央处理单元可以将用于中间图像数据的有限数目的块的一组参数与每组参数所适用的块的指示一起传输。这种传输减少了CPU与GPU之间传输的数据量并且减少了GPU执行的计算量,从而提高解码速度并且降低功耗。否则,中央处理单元可以传输将应用于中间图像数据的所有块的该组参数。在后一情况下,可以从接收的各组参数的排序推断任何特定组的参数所适用的块。

当从HEVC兼容比特流解码图像时对中间图像数据执行两个操作:采样自适应偏移和解块。这样的操作可以稀疏地应用于中间图像数据的块并且可受益于这一技术。

在一个实现方式中,是否稀疏地应用操作可以由中央处理单元在解码期间确定。然而,可以在任何时间分析已编码比特流中的已编码图像以便确定是否向已编码图像稀疏地应用操作。可以在解码之前为图像确定该组参数和它们所适用的块的指示,并将其存储以供稍后解码。可以在编码比特流时确定该组参数和它们所适用的块的指示并将其存储在已编码比特流中或与已编码比特流相关联地存储。因而,该组参数可以作为现有知识可用于随后使用已编码比特流的任何解码器。已编码比特流可以包括数据,其指示用于操作的参数如何被存储,例如存储数据是否表示参数和块或者存储数据是否表示用于所有块的参数。

如果已编码比特流包括指示用于操作的一组参数和它们所适用的中间图像数据的块两者的数据或者与该数据相关联,那么任何解码器都可以使用所存储的信息,即使对中间图像数据的操作并不由图形协处理器执行。

在下面的描述中,对形成本文一部分且其中通过图示的方式示出该技术的特定示例实现方式的附图进行参考。应理解的是,可以在不偏离本公开的范围的情况下利用其它实施例并且做出结构改变。

附图说明

图1是用于回放媒体的示例操作环境的框图。

图2是图示出编码器和解码器与已编码比特流之间的关系的框图。

图3是描述稀疏性检查器的示例实现方式的流程图。

图4是示例实现方式中的图形协处理器的操作的图示。

图5是示例实现方式中的图形协处理器的操作的流程图。

图6是可以用其实现这样的系统的组件的示例计算设备的框图。

具体实施方式

下面的部分提供用于处理已编码媒体数据的示例操作环境。

参照图1,示例媒体处理系统包括计算设备100,其包括中央处理单元102、图形处理单元103、操作系统104和媒体处理器106。在该示例中,媒体处理器可以是在设备的操作系统上运行的应用,并且操作系统管理对计算设备的资源(诸如中央处理单元102、图形处理单元103和计算设备的其他组件)的访问。下面联系图6描述计算设备的各种资源的更多细节。

媒体处理器106可以实现例如解码器,其读取已编码成比特流的媒体数据108,该比特流与解码器被实现来处理的标准数据格式相兼容。例如,媒体处理器可以是HEVC兼容解码器。

已编码比特流一般表示已编码数字媒体数据,诸如音频、视频、静止图像、文本和辅助信息。如果存在多个媒体流,诸如音频和视频,则已编码数据的各流可以多路复用成单个比特流。已编码比特流一般要么被传送(在该情况下其可以被称为流化数据)要么被存储在数据文件中。已编码比特流以及它们被存储在其中的文件一般符合已建立的标准。

许多这样的标准规定了数据结构(典型地称为分组不过其可以被称作其他名称),所述数据结构包括元数据(提供关于分组的数据)和/或已编码媒体数据(有时称为本质数据)和/或与已编码媒体数据相关联的辅助信息(诸如用于用来从分组或一组分组解码图像的操作的参数)。标准的规范定义了哪些结构是要求的、哪些结构是可选的以及各种结构、字段和字段值是什么意思。

由媒体处理器106实现的解码器可以是从已编码比特流读取和解码媒体数据以产生输出110的任何应用的部分。媒体处理器106可以由其他应用(未示出)用来提供媒体以供该应用回放。

在另一实现方式中,媒体处理器106可以实现媒体文件处理器,其是接收已编码媒体数据的应用。在其读取已编码比特流的能力方面可以以与媒体文件解码器类似的方式实现媒体文件处理器。这样的媒体文件处理器可以作为管理媒体数据的应用(诸如媒体文件共享应用)的一部分分析所存储或传送的比特流。媒体文件处理器可以处理媒体数据以使得媒体数据在另一系统内可用,在所述另一系统中媒体数据然后可以用于各种目的,诸如共享存储、存档、编辑、回放、分发等等。

一般而言,为了解码或处理包括已编码视频数据的媒体数据108,媒体处理器106读取比特流并依照也可以存储在比特流中的参数向已编码数据应用各种操作。对于要输出的视频数据的每个图像,可以存在由解码过程的不同阶段产生的一个或多个中间图像。该中间数据一般被划分为块,并且每个块依照已编码比特流中针对该块定义的参数进行处理。

在一些实现方式中,可以实现媒体解码器以便利用通过图形协处理器可用的并行化和/或快速矩阵、矢量和其他处理。例如,图形处理器可以为了提高性能而并行地处理图像数据的块。应用可以将应用编程接口(API)用于图形库,其中媒体解码器被实现为图形库内的着色器。API管理访问计算设备的中央处理器、图形协处理器和存储器资源。商业可用的API层的示例是来自Khronos集团的OpenGL接口和来自Microsoft公司的Direct3D接口。应用也可以在不使用这样的API的情况下利用图形协处理器。

为了使用具有中央处理器单元102和作为协处理器的图形处理单元(GPU)103的计算设备100解码已编码视频,一般将应用于中间图像数据的块的参数从中央处理单元传输到图形处理单元。(在本文中,术语图形处理单元、图形协处理器和GPU意图是同义的)。

当正执行的操作适用于中间图像数据的少量块时,那么中央处理单元可以将仅用于该操作所适用的那些块的参数传输到图形处理单元。特别地,中央处理单元可以将用于中间图像数据的有限数目的块的一组参数与每组参数所适用的块的指示一起传输。这种传输减少了CPU与GPU之间传输的数据量并且减少了GPU执行的计算量,从而提高解码速度并且降低功耗。

否则,中央处理单元可以传输将应用于中间图像数据的所有块的该组参数。在后一情况下,可以从接收的各组参数的排序推断任何特定组的参数所适用的块。

解码器可以根据操作被如何稀疏地应用于中间图像数据的块而应用用于处理中间图像数据的任一技术。例如,如果操作仅被应用于几个块,那么中央处理单元可以将用于有限数目的块的一组参数与每组参数所适用的块的指示一起传输。如果操作被应用于许多块,那么中央处理单元可以传输要应用于中间图像数据的所有块的该组参数。

作为特定示例应用,当解码来自HEVC兼容比特流的图像时,存在对中间图像数据执行的至少两个操作:采样自适应偏移和解块。这样的操作可以稀疏地应用于中间图像数据的块并且可以受益于这一技术。可以稀疏地应用于其他视频压缩操作中的中间数据的块的其他操作也可以受益于这一技术。

为了确定是否向中间图像的块稀疏地应用操作,可以处理已编码比特流。该确定可以由媒体处理器在解码已编码比特流中的图像期间或就在该解码之前进行。虽然更一般地,可以在任何时间分析已编码比特流中的已编码图像以便确定是否对已编码图像稀疏地应用操作。可以在解码之前确定该组参数和它们所适用的块的指示并且将其存储以供稍后解码。

在一个实现方式中,可以在创建已编码比特流时进行这样的确定。可以在编码比特流时确定该组参数和它们所适用的块的指示,并且可以将其存储在已编码比特流中或者与已编码比特流相关联地存储。因而,该组参数可以作为现有知识可用于随后使用已编码比特流的任何解码器。已编码比特流可以包括数据,其指示用于操作的参数如何被存储,例如存储数据是否表示参数和块,或者存储数据是否表示用于所有块的参数。

该实现方式避免在解码时分析用于每个图像的参数来决定如何将这些参数打包并传输到GPU。进一步,在该实现方式中,可以在编码时而不是在每个解码操作时分析一次参数。随后,如果已编码比特流包括指示用于操作的一组参数和它们所适用的中间图像数据的块两者的数据或者与该数据相关联,那么任何解码器都可以使用所存储的信息,即使对中间图像数据的操作并不由图形协处理器执行。

这些各种实现方式由图2的数据流图表示。在图2中,稀疏性检查器200处理来自编码器206的已编码数据202以便确定是否向图像的中间图像数据的块稀疏地应用操作。如果稀疏地应用操作,那么构建数据结构204,其提供每组参数和每组参数所适用的块的指示。数据结构204和已编码数据202被提供给解码器208,其中图形协处理器被提供该数据结构204。

在图2中,应注意的是,稀疏性检查器200可以驻留在编码器210、解码器220或预处理器230内,诸如将已编码媒体数据导入存储的媒体应用。因而,可以在编码时、在解码时或者作为其间任何时间的预处理步骤使用稀疏性检查器。如果稀疏性检查器是编码器或预处理器的一部分,那么数据结构204可以是已编码数据202的一部分。

现在参照图3,现在将描述描述稀疏性检查器的示例操作的流程图。在该示例中,假定已经形成包括一系列数据分组的已编码比特流,并且每个分组被顺序地读取。该过程通过从比特流读取300要处理的下一分组而开始。为了简单性和图示的目的,假定一个分组对应于一个输出图像。然而,在实践中,处理器可以使用来自较早分组的信息或者在处理需要一些将来分组的情况下可以推迟当前分组的处理。在给定的分组中,用于应用于输出图像的中间图像数据的块的操作的参数被标识302。这些参数一般在设定的序列中,使得从参数的排序推断出它们所适用的块。非零参数的数目被标识304。

在306处确定参数是否稀疏。例如,可以确定具有用于操作的非零参数的块的数目并且将其与阈值相比较。可以使用一定百分比的具有非零参数的块,因为这样的值跨不同图像尺寸进行归一化。阈值取决于实现方式,包括但不限于稀疏性的度量(例如,块的数目或块的百分比)和这样的条件,即:在该条件下向图形协处理器提供完整列表的参数或者该列表的参数和关联的块标识数据更为高效。

如果参数是稀疏的,那么参数列表被重新打包308成数据结构,所述数据结构将每组参数与该组参数所对应的块相关联。否则,该列表的参数的保持不变,如310处指示的。如312处指示的,然后可以处理将用于该输出图像的参数。用于图像的参数的处理可以包括例如存储它们以供稍后使用或者将它们提供给图形协处理器。如果如314处确定,分组保持,那么可以以类似的方式处理下一分组,否则完成比特流的处理。

现在参照图3,现在将描述媒体解码器的示例实现方式的数据流图。媒体解码器包括分组处理器300,其在输入端处接收已编码比特流301并且提取和输出分组元数据302和本质(实际视频、图像或音频)数据304,这两者都被置于缓冲器306中。可以为分组元数据数据和本质数据提供单独的缓冲器。约束处理器308分析分组元数据302以确定是否满足约束。约束处理器可以用信号发送指示当这样的条件发生时不满足约束的事件310。来自缓冲器306的数据由解码器312处理,所述解码器312产生输出数据314,诸如已编码音频、图像或视频数据。

图4和5描述使用关于被稀疏地应用的操作的信息来提高到图形协处理器的数据传输效率和提高图形协处理器在产生输出图像时的性能的示例实现方式。高效的数据传输和减少的图形协处理器进行的操作降低了功耗并且增大了处理速度。

在图4中,中央处理单元(CPU 402)在存储器中生成一组参数的表示,其在图4中指示为参数数据400。每个参数404与存储在图形协处理器(GPU 408)中的中间图像的块406相关联。例如,块“x1,y1”与一组参数“P1”相关联。如果存在n个块(对于该n个块而言,用于该操作的参数非零),那么在参数数据400中存在n个项。块“x1,y1”对应于将由图形协处理器在存储器中生成的中间图像数据的块,其在410处指示为当前解码阶段N的输出。由前一解码阶段(N-1)产生的中间图像数据412被存储在图形协处理器的存储器中。中央处理单元包括调度器414,其指令GPU 408使用参数数据400执行拷贝操作。在图形协处理器接收到指令之后,图形协处理器将存储在其缓冲器中的中间图像数据412拷贝到输出缓冲器414以便使用参数400执行当前操作。在这样做时,图形协处理器通过向块“I(x1,y1)”应用参数“P1”而处理有该列表的参数400所标识的拷贝块。由于GPU 408的构造,一般地可以并行地处理这样的块。可以不经处理而简单地将没有对应参数的其他块拷贝到输出缓冲器。在一些实现方式中,可以通过使GPU在当前缓冲器中的适当位置处理要修改的块、留下没有参数数据400中的参数的任何未经修改的块、以及将经修改的缓冲器设定成用于第N解码阶段的输出缓冲器而避免实际拷贝操作。

在图5中,该操作可以被描述如下。中央处理单元接收500该列表的参数和那些参数所适用的块。中央处理单元将当前在图形协处理器中的中间图像数据的拷贝调度502到处理缓冲器中。中央处理单元向图形处理单元提供504该列表的参数和块。图形处理单元利用处理缓冲器中的对应参数处理506被标识的块。这样的处理可以由图形处理单元并行地执行。结果得到的经处理的中间图像数据然后可以提供508给下一处理阶段。

前述示例意图举例说明而非限制用于标识已编码比特流中被稀疏地应用的块操作的技术。通过标识这样的被稀疏地应用的操作,可以实现中央处理单元与图形协处理器之间提高的数据传输性能以及提高的图形协处理器的性能。

现在已经描述了示例实现方式,图6图示了其中可以实现这样的技术的计算设备(无论是实现编码器、解码器还是预处理器)的示例。这只是计算机的一个示例而并不意图暗示关于这样的计算机的使用范围或功能性的任何限制。

计算机可以是各种通用或专用计算硬件配置中的任一个。可以使用的计算机类型的一些示例包括但不限于个人计算机、游戏控制台、机顶盒、手持式或膝上型设备(例如,媒体播放器、笔记本计算机、平板计算机、蜂窝电话、个人数字助理、语音记录器)、服务器计算机、多处理器系统、基于微处理器的系统、可编程消费者电子装置、联网个人计算机、微型计算机、大型计算机以及包括以上类型计算机或设备中任一个的分布式计算环境等等。

参照图6,示例计算机600包括至少一个处理单元602和存储器604。计算机可以具有多个处理单元602。处理单元602可以包括彼此独立操作的一个或多个处理核(未示出)。在计算机中也可以存在诸如图形处理单元620之类的附加协处理单元。存储器640可以是易失性(诸如动态随机存取存储器(DRAM)或其他随机存取存储器设备)、非易失性(诸如只读存储器、闪存等等)或这两者的某种组合。该存储器配置在图6中通过虚线606图示出。计算机600可以包括附加存储装置(可移除和/或不可移除),所述附加存储装置包括但不限于磁性记录或光学记录盘或磁带。这样的附加存储装置在图6中通过可移除存储装置608和不可移除存储装置610图示出。图6中的各种组件一般通过诸如一个或多个总线630之类的互连机制进行互连。

计算机存储介质是其中数据可以由计算机存储在可寻址物理存储位置或者从物理可寻址存储位置取回的任何介质。计算机存储介质包括易失性和非易失性存储器以及可移除和不可移除存储介质。存储器604和606、可移除存储装置608和不可移除存储装置610均是计算机存储介质的示例。计算机存储介质的一些示例是RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多用盘(DVD)或其他光学或磁光记录存储设备、盒式磁带、磁带、磁盘存储装置或其他磁存储设备。计算机存储介质可以包括可以由操作系统或文件系统管理以便对于计算机而言表现为一卷或多卷存储装置的多个存储设备的组合,诸如存储阵列。计算机存储介质和通信介质是互斥类别的介质。

计算机600也可以包括(多个)通信连接612,其允许计算机通过通信介质与其他设备通信。通信介质典型地经由传播已调制数据信号(诸如载波或通过物质的其他输运机制)而通过有线或无线物质传送计算机程序指令、数据结构、程序模块或其他数据。术语“已调制数据信号”意指这样的信号,其使其特性中的一个或多个以将信息编码在该信号中这样的方式被设定或改变,从而改变信号的接收设备的配置或状态。通过示例的方式而非限制,通信介质包括诸如有线网络或直接连线连接之类的有线介质和诸如声学、射频、红外和其他无线介质之类的无线介质。通信连接612是设备,诸如有线网络接口、无线网络接口、射频收发机(例如,Wi-Fi、蜂窝、长期演进(LTE)或蓝牙等)、收发机、导航收发机(例如,全球定位系统(GPS)或全球导航卫星系统(GLONASS)等)、与通信介质接合以通过通信介质传送数据或者从通信介质接收数据,并且可以执行关于该数据的各种功能的收发机。

计算机600可以具有各种(多个)输入设备614,诸如键盘、鼠标、笔、相机、触摸输入设备、传感器(例如,加速度计或陀螺仪)等等。也可以包括(多个)输出设备616,诸如显示器、扬声器、打印机等等。所有这些设备在本领域中是公知的,并且无需在此详细讨论。输入和输出设备可以是包含图6中的计算机的各种组件的外壳的一部分,或者可以与该外壳相分离且通过各种连接接口(诸如串行总线、无线通信连接等等)连接到计算机。各种输入和输出设备可以实现自然用户接口(NUI),其是使得用户能够以“自然的”方式与设备交互而不受由诸如鼠标、键盘、遥控器等等之类的输入设备所强加的人为约束的任何接口技术。

NUI方法的示例包括依赖于话音识别、触摸和触笔识别、悬停、手势识别(在屏幕上和邻近屏幕二者)、空中手势、头眼追踪、语音和话音、视觉、触摸、手势和机器智能的那些方法,并且可以包括使用触敏显示器、语音和话音识别、意图和目标理解、使用深度相机(诸如立体相机系统、红外相机系统和其他相机系统以及这些的组合)的运动手势检测、使用加速度计或陀螺仪的运动手势检测、面部识别、三维显示器、头、眼和凝视追踪、沉浸式增强现实和虚拟现实系统(它们都提供更为自然的接口),以及用于使用电场感测电极感测脑活动的技术(诸如脑电图技术和相关方法)。

各种存储装置610、通信连接612、输出设备616和输入设备614可以与计算机的其他部分集成在外壳内,或者可以通过计算机上的输入/输出接口设备进行连接,在该情况下参考数字610、612、614和616可以指示用于连接到设备的接口或者设备本身,视情况而定。

计算机一般包括操作系统,其是管理应用对计算机的各种资源的访问的、运行在计算机上的计算机程序。可以存在多个应用。各种资源包括存储器、存储装置、输入设备和输出设备,诸如如图6中所示的显示设备和输入设备。文件系统一般被实现为计算机的操作系统的一部分,但是可以不同于操作系统。文件系统可以被实施在其中操作由通过通信网络链接的多个计算机执行的分布式计算环境中。在分布式计算环境中,计算机程序可以位于本地计算机存储介质和远程计算机存储介质二者中,并且可以由不同计算机的处理单元执行。

操作系统、文件系统和应用可以使用一个或多个计算机的一个或多个处理单元来实现,其中一个或多个计算机程序由该一个或多个处理单元处理。计算机程序包括计算机可执行指令和/或计算机解释的指令,诸如程序模块,所述指令由计算机中的一个或多个处理单元处理。一般地,这样的指令定义例程、程序、对象、组件、数据结构等等,其当由处理单元处理时指令处理单元对数据执行操作或者配置处理器或计算机以实现各种组件或数据结构。

因此,在一个方面中,计算机包括用于生成数据结构的构件,对于用于操作的每组参数,所述数据结构包括数据,该数据指示将由该操作使用该组参数进行处理的中间图像数据的块。数据结构可以包括参数和仅用于具有用于该操作的非零参数的那些块的参数的块的指示。

在另一方面中,计算机包括用于向图像协处理器传输数据结构的构件,对于用于操作的每组参数,所述数据结构包括数据,该数据指示将由该操作使用该组参数进行处理的中间图像数据的块。数据结构可以包括参数和仅用于具有用于该操作的非零参数的那些块的参数的块的指示。

在另一方面中,计算机包括用于编码视频数据以包括数据结构的构件,对于用于操作的每组参数,所述数据结构包括数据,该数据指示将由该操作使用该组参数进行处理的中间图像数据的块。数据结构可以包括参数和仅用于具有用于该操作的非零参数的那些块的参数的块的指示。

在另一方面中,计算机接收已编码数据的比特流,所述已编码数据包括用于将对中间图像数据的块执行的操作的参数。所述参数被分析以便确定是否向中间图像数据稀疏地应用操作。响应于确定向中间图像数据稀疏地应用参数,参数的表示被生成以便对于将应用于块的每组参数,包括将向其应用该组参数的块的指示。

在前述方面中的任一个中,如果已编码比特流包括指示用于操作的一组参数和它们所适用的中间图像数据的块的数据或者与该数据相关联,那么解码可以使用所存储的信息。

在前述方面中的任一个中,比特流可以使用所生成的参数的表示进行解码。

在前述方面中的任一个中,所生成的参数的表示可以被与比特流相关联地存储。所生成的参数的表示可以被存储为存储已编码比特流的文件中的元数据。所生成的参数的表示可以被存储为与存储已编码比特流的文件相关联的元数据。所生成的参数的表示可以被存储为存储器中已编码比特流中的元数据。所生成的参数的表示可以被存储为与已编码比特流相关联的存储器中的元数据。

在前述方面中的任一个中,所生成的参数的表示可以提供给图形处理单元。

在前述方面中的任一个中,图形处理单元可以被指令以向中间图像数据应用所生成的参数的表示。

在前述方面中的任一个中,分析所述参数以便确定是否向中间图像数据稀疏地应用操作可以包括若干测试中的一个。例如,可以确定具有用于操作的非零参数的块的数目。作为另一示例,可以确定具有用于操作的非零参数的块的百分比。

在前述方面中的任一个中,分析参数可以针对比特流中的每个图像来执行。

前述方面中的任一个可以体现在一个或多个计算机中,作为这样的计算机的任一单独组件、作为由一个或多个计算机或这样的计算机的任一单独组件执行的进程、或者作为包括其中存储计算机程序指令的计算机存储装置的制品,并且所述计算机程序指令当由一个或多个计算机处理时配置所述一个或多个计算机。

可以以任何期望的组合使用本文中描述的前述可替换实施例中的任一个或全部一般形成附加混合实施例。应当理解的是,所附权利要求中限定的主题不一定限于上面描述的特定实现方式。上面描述的特定实现方式仅作为示例而被公开。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1