视频解码系统、视频解码方法和相应地计算机存储介质与流程

文档序号:14655415发布日期:2018-06-12 03:01阅读:195来源:国知局

本发明有关于用于解码包含独立编码图块(tile)的视频的视频解码技术。所述视频可以是全向视频(omnidirectional video)或虚拟现实(virtual reality)视频。更具体来说,本发明有关于解码包含独立编码图块的视频的视频解码系统、视频解码方法和相应地计算机存储介质。



背景技术:

这里提供的背景描述是为了总体上呈现本公开的上下文的目的。目前提及的发明人在本背景部分中描述的工作的范围内的工作以及在提交时可能不作为现有技术限定的描述的方面既不明确地也不隐含地被承认为本公开的现有技术。

用户可以用头戴式显示器(head mounted display,简写为HMD)观看虚拟现实或全向(VR/360)视频,并且在所有可能的方向上在身临其境的360度空间中转动头部。在瞬间,仅显示HMD的视场(field of view,简写为FOV)中的浸入式环境的一部分。如在一些视频编码标准中所指定的基于图块的编解码技术可以用于处理VR/360视频以减少传输带宽或解码复杂度。



技术实现要素:

依据本发明的示范性实施例,提出一种视频解码系统、视频解码方法和相应地计算机存储介质以解决上述问题。

依据本发明的一个实施例,提出一种视频解码系统,包括解码器核心,其经配置以选择性地解码图像中的多个独立可解码图块,每一图块包括各自与一对基于图像的(X,Y)坐标或基于图块的(X,Y)坐标相关联的最大编解码单元;以及存储器管理电路,被配置为转换当前LCU的一个或两个坐标以生成一个或两个经转换的坐标,以及基于一个或两个经转换的坐标确定存储参考数据的目标存储空间以解码当前LCU。

依据本发明的另一实施例,提出一种视频解码方法,包括由解码器核心选择性地解码图像中的多个可独立解码的图块,每个图块包括最大编解码单元,每个最大编解码单元与一对基于图像的(X,Y)坐标或基于图块的(X,Y)坐标相关联;转换当前LCU的一个或两个坐标以产生一个或两个经转换的坐标;以及基于一个或两个经转换的坐标确定存储用于解码当前LCU的参考数据的目标存储空间。

依据本发明的另一实施例,提出一种非暂时性计算机可读介质,存储计算机指令,计算机指令在由一个或多个处理器执行时使一个或多个处理器执行视频解码方法,方法包括:选择性的解码图像中的多个独立可解码的图块,每个图块包括最大编解码单元(LCU),每个编解码单元与一对基于图像的(X,Y)坐标或基于图块的(X,Y)坐标相关联;转换当前LCU的一个或两个坐标以产生一个或两个经转换的坐标;以及基于一个或两个经转换的坐标确定存储用于解码当前LCU的参考数据的目标存储空间。

本发明的视频解码系统、视频解码方法和相应地计算机存储介质可以减少用于存储数据的存储空间。

【附图说明】

图1示出了根据本公开实施例的视频解码系统。

图2A示出了用于在传统解码系统中解码基于图块的图像的常规解码过程。

图2B展示根据本发明的实施例的用于解码视频解码系统中基于图块的图像的解码过程。

图3A展示在图2A示例中描述的常规解码系统中的示范性存储器访问方案。

图3B展示根据本发明的实施例的示范性存储器访问方案。

图4A展示常规解码系统中的输出存储器的输出存储器映射的示例。

图4B展示视频解码系统中的输出存储器的输出存储器映射的示例。

图5A展示根据本发明实施例的视频解码系统中的示例性DMA控制器。

图5B展示由DMA控制器并行地读取图块数据的示例过程。

图6示出了根据本公开实施例的视频解码系统。

图7示出了根据本公开的实施例的用于对视频解码系统中的图像进行解码的示例解码过程。

图8示出了根据本公开的实施例的坐标转换方案。

图9示出了根据本公开实施例的视频解码系统。

图10示出了根据本公开的实施例的示例视频解码过程。

图11示出了根据本公开的实施例的示例视频解码过程。

【具体实施方式】

在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异异来作为区分组件的方式,而是以组件在功能上的差异异来作为区分的基准。在通篇说明书及权利要求书当中所提及的「包含」是开放式的用语,故应解释成「包含但不限定于」。另外,「耦接」一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或透过其它装置或连接手段间接地电气连接至第二装置。

图1示出了根据本公开实施例的视频解码系统100。视频解码系统100可以被配置为部分地解码包括彼此独立编码的图块的图像。在一个示例中,视频解码系统100可以包括解码器核心110、图像至图块存储器管理单元(picture-to-tile memory management unit,简写为P2T MMU)121、基于图块的存储器122、分段ID存储器131、并置运动向量(MV)存储器132、参考图像存储器133、输出存储器134和直接存储器访问(direct memory access,简写为DMA)控制器142。在一个示例中,解码器核心110可以包括解码控制器111、熵解码器112、MV解码器113、逆量化和逆变换(IQ/IT)模块114、帧内预测模块115、运动补偿模块116、重建模块117以及一个或多个环路滤波器(in-loop filter)118。这些组件如图1所示耦合到一起。

视频解码系统100可经配置以解码位流102中携载的经编码视频序列以产生经解码图像。特别地,位流102中携带的图像可以被分割成彼此独立编码的图块。因此,视频解码系统100可独立解码图像中的每个图块而不参考相邻图块的相邻参考数据。结果,可以减少用于存储相邻参考数据的存储空间。

例如,在用于对包括不是彼此独立地编码的图块的图像进行解码的常规视频解码系统中,需要存储对应于图块行中的多个图块的相邻参考数据以用于对下一图块行中的图块进行解码。相比之下,在用于对独立编码的图块进行解码的视频编解码系统100中,基于图块的存储器122可以被配置为存储与一个当前图块相对应的相邻参考数据,但是不需要存储器来存储先前经处理的图块的相邻参考数据。结果,与用于解码包括依赖编码的图块的图像的常规视频解码系统相比,可以减少用于在视频编解码系统100中存储相邻参考数据的存储空间。

另外,视频编解码系统100可经配置以使用基于图像的坐标(picture based coordinates)来操作。例如,每个图块可以被划分成最大编解码单元(LCU)的行和列,每个最大编解码单元与一对基于图像的(X,Y)坐标相关联。基于图块的存储器122可以包括多个存储空间,每个存储空间对应于当前正在被处理的图块(被称为当前图块)中的LCU列。当正在处理当前图块中的LCU(该LCU被称为当前LCU)时,可以在当前LCU的基于图像的X坐标上执行坐标转换

(coordinate translation)以生成指示包括当前的LCU的LCU列的基于图块的X坐标。相应地,可以基于转换的X坐标来定位与当前LCU对应的目标存储空间。随后,可以访问基于图块的存储器122中的所确定的目标存储空间,以写入或读取与当前LCU相关的相邻参考数据。

此外,由于位流102中携带的图像中的图块可以被独立解码,视频编解码系统100可以被配置为选择性地解码图像中的图块。或者,换句话说,当图像的仅一部分图块被解码时,图像可以被部分地解码,或者当图像的所有图块被解码时,图像可以被完全解码。举例来说,在虚拟现实或全向(VR/360)视频应用中,为了显示头戴式显示器(HMD)装置的视野(FOV),视频编解码系统100可经配置以仅选择重叠FOV的图块解码。得到的部分解码的图像可以包括图像中的图块的子集,而不是图像中的所有图块。作为这种部分解码的结果,与存储完全解码的图像相比,可以减少用于缓冲输出图像的输出存储器134。

解码器核心110可经配置以接收位流102中携载的经编码数据且解码经编码数据以产生完全或部分经解码图像。在不同的示例中,位流102可以是符合各种视频编解码标准之一的位流,比如高效率视频编解码(HEVC)标准、VP9标准等。解码器核心110可以通过使用与不同示例中的相应视频编解码标准对应的解码技术来相应地解码编码数据。用于生成位流102的视频编解码标准通常可以支持视频处理中的图块。例如,如在相关的视频编解码标准中所规定的,图像可以被分割成可被独立解码的矩形区域,被称为图块。图像中的每个图块可以包括近似相等数量的块,诸如HEVC中的编解码树单元(CTU),或者如VP9中的超级块。在本说明书中,CTU或超级块可以被称为最大编解码单元(LCU)。如可以在各种编解码操作中分开处理的那样,LCU可以进一步被分割成更小的块。

另外,位流102中携带的编码视频序列可以具有支持部分解码图像的编解码结构。举例来说,在编码的视频序列中,每N张图像可以包括一个主图像(master picture),随后是N-1个从图像(slave picture)。每个主图像可以被用作参考图像,用于预测编码主图像之前或之后的相邻从图像或其他主图像。相反,从图像不允许用作参考图像。当编码的视频序列在解码器核心110被解码时,主图像可被完全解码并存储在参考图像存储器133中,该参考图像存储器133稍后可用于解码其它相邻的从图像或主图像。相反,从图像可以被部分解码,并且部分解码的从图像的图块可以被存储在输出存储器134中,等待被显示,但不被用作参考图像的数据。

解码控制器111可以被配置为控制和协调解码器核心110中的解码操作。具体地,在一个示例中,解码控制器111可以被配置为确定图像中的图块的子集以部分解码图像。例如,解码控制器111可以从指示正被显示的VR/360视频的区域的HMD接收FOV信息101。另一方面,解码控制器111可以从熵解码器112或软件解析接收到的高级语法获得图像的图块分割信息。基于图块分割信息和FOV信息101,控制器111可以确定图像中与正在显示的区域重叠的图块的子集。

随后,解码控制器111可以命令DMA控制器142从位流102读取对应于图像中的所选图块的编码数据。例如,位流102可以携带正被处理的视频序列的编码数据,并且可以首先从远程编码器接收,然后存储在本地存储器中。

熵解码器112可经配置以从DMA控制器142接收经编码数据且解码经编码数据以产生各种语法元素。举例来说,可将包括图像图块分割信息的高级语法提供给解码控制器111,可将包括经编码块残差的语法元素提供到IQ/IT模块114,可将包含帧内预测模式信息的语法元素提供到帧内预测模块115,而包括运动向量预测信息的语法元素可以被提供给MV解码器113。

具体地,在一个示例中,位流102中的一些语法元素可以利用基于上下文的自适应二进制算术编码(CABAC)方法来编码。为了解码与对应于当前块(LCU或更小块)的CABAC编码的语法元素,熵解码器112可以被配置为基于之前解码的相邻块中的相关辅助信息来选择概率模型。相邻块的相关边信息(side information)可以被称为与相邻块对应的CABAC相邻参考数据。相应地,当对图块中的当前LCU的CABAC编码的语法元素进行解码时,熵解码器112可以将对应于当前LCU的CABAC相邻参考数据存储到基于图块的存储器122,该存储器稍后可以用于在相同图块中的相邻LCU中的块的熵解码。

此外,在一个示例中,可以根据VP9标准来对位流102进行编码,并且针对编码的视频序列来配置分段,如在VP9标准中所指定的那样。例如,可以为图像指定多个片段。对于这些段中的每一个段,可以指定用于控制编码或解码的一组参数。例如,该组参数可以包括量化参数、环路滤波器强度、预测参考图像等。图像中的每个块可以被分配一个分段标识(ID)(segmentation identity),指示该块的分段联系。图像的那些分段ID可以形成可以在两个图像(例如主图像和参考主图像的从图像)之间改变的分段图。这两个分段图之间的差异可以被计算和熵编码。

因此,熵解码器112可经配置以解码对应于当前图像的当前LCU的分段ID差异,从分段ID存储器131检索(retrieve)先前解码的分段映射中的并置LCU的分段ID,且随后通过将解码后的分段ID差异添加到并置LCU的检索到的分段ID,来产生当前LCU的分段ID。然后可以将如此生成的主图像中的当前LCU的分段ID存储到分段ID存储器131中,并稍后用于解码参考主图像的图像中的并置LCU。

MV解码器113可以从熵解码器112接收解码的运动向量差并相应地重建运动向量。举例来说,可参考相邻块的运动向量或参考图像中的并置块的运动向量来预测性地对LCU中的块的运动向量进行编码。因此,根据从熵解码器112接收的运动向量预测信息,MV解码器113可以确定运动向量候选。运动向量候选可以是存储在基于图块的存储器122中的先前解码的相邻LCU中的块的相邻运动向量中的一个,或者存储在并置MV存储器132中的参考图像中的并置LCU中的块的并置运动向量。可以基于运动向量差和确定的运动向量候选来构建运动向量。另外,也可以采用与运动向量候选相关联的参考图像索引。

随后,MV解码器113可将当前LCU的经解码的运动向量存储到基于图块的存储器122,其随后可用于解码与当前LCU相邻的LCU中的块的运动向量。存储到基于图块的存储器122的当前LCU的解码的运动向量可以被称为MV相邻参考数据。另外,当包括当前LCU的图像是主图像时,MV解码器113可将当前LCU的解码的运动向量存储到并置MV存储器132中,所述并置MV存储器随后可用于在解码顺序的将来的图像(从图像或另一主图像)中对并置LCU的运动向量进行解码。

运动补偿模块116可从MV解码器113接收经解码的运动向量及相关联的参考图像索引,且从参考图像存储器133检索对应于所接收的运动向量及参考图像索引的参考块。检索的参考块可被用作当前块的预测并被发送到重建模块117。

帧内预测模块115可以从熵解码器112接收帧内预测模式信息,并且生成当前LCU中的当前块的预测,该当前LCU被发送到重建模块117。具体地,为了生成预测,帧内预测模块115可以从基于图块的存储器122检索与当前LCU相邻的先前处理的LCU中的参考样本。检索到的参考样本可以被称为帧内预测相邻参考数据。例如,当前块是与先前处理的LCU相邻的块。可以基于检索到的参考样本和接收到的帧内预测模式信息来生成当前块的预测。

IQ/IT模块114可以接收编码块残差,并且执行逆量化和逆变换处理以恢复提供给重建模块117的块残差信号。

重建模块117可以接收来自IQ/IT 114模块的块残差信号,以及来自帧内预测模块115和运动补偿模块116的块预测,并且随后生成被提供给环路滤波器118的重建块。特别地,重建模块117可将当前LCU的帧内预测相邻参考数据存储到基于图块的存储器122中,稍后可用于处理与当前LCU相邻的LCU中的帧内预测编码块。

环路滤波器118可接收重建块,并滤波重建块中的样本以减少块的失真。环路滤波器118可以包括一个或多个滤波器,诸如去块滤波器、采样自适应偏移滤波器等。可以连续执行不同类型滤波器的滤波。在一个示例中,环路内滤波器118可以基于LCU执行滤波。典型地,沿着当前LCU的边界对样本进行滤波需要属于与当前LCU相邻的LCU的相邻样本。例如,可以从上到下和从右到左执行对当前LCU的滤波处理。

因此,可以从基于图块的存储器121检索属于先前处理的LCU并且与当前LCU的顶部边界相邻的顶部相邻样本,以便对检索到的样本和顶部边界相邻的当前LCU的样本执行滤波。对于当前LCU的底部边界附近的样本,因为属于当前LCU下方的LCU的相邻样本还不可用,所以靠近底部边界的那些样本可以被存储在基于图块的存储器122中并且稍后被检索以处理当前LCU下方的LCU。存储在基于图块的存储器122中的靠近底部边界的样本可以被称为与当前LCU相对应的滤波相邻参考数据。

输出存储器134可以用于存储可以随后在显示设备上显示的部分或完全解码的图像的重建的图块。完全解码的图像可以被复制到参考图像存储器133中并用作参考图像。在替代示例中,参考图像存储器133和输出存储器134可以共享相同的存储空间。因此,只保留完全解码图像的一个副本。

P2T MMU 121可经配置以执行坐标转换以促进对基于图块的存储器122中的目标存储空间的存储器访问(读取或写入)。在一个示例中,解码器核心110可经配置以使用基于图像的坐标来操作。例如,每个图块内的LCU可以与一对基于图像的X和Y坐标相关联。另一方面,可以在基于图块的存储空间中配置多个存储空间,用于存储对应于当前区块内的不同LCU的相邻参考数据。P2T MMU121可执行坐标转换以将LCU的基于图像的X或Y坐标转换为基于图块的X或Y坐标。基于经转换的基于图块的X坐标,可以确定存储用于解码相应LCU的相邻参考数据的相应存储空间。

图2A示出了用于在传统解码系统中解码基于图块的图像210的常规解码过程200A。图像210可以被划分为从数字211到216标记的从图块0到图块5的六个图块,图块211-216之间存在图块边界217和219。不同于图1例子中处理的图像,图像210中的图块211-216可以被依赖地编码。换句话说,当编码图像210时,可以在跨图块边界上执行数据参考(data reference)。每个图块211-216可以进一步包括4个LCU。每个LCU均相对于位于图像210的左上角的原点以一对基于图像的(X,Y)坐标来指示。例如,图块0包括坐标为(0,0)、(1,0)、(0,1)、(1,1)的四个LCU。在解码过程200A期间,可以按照图2A中的箭头218所指示的光栅扫描顺序处理图块,并且也可以按照光栅扫描顺序来处理每个图块中的LCU。

当处理当前LCU时,一些解码操作可能需要使用位于相邻LCU(顶部相邻LCU或左边相邻LCU)中的顶部或左侧相邻参考数据。举例来说,CABAC熵解码可参考顶部或左侧相邻块中的边信息,预测性经编码运动向量的解码可参考顶部或左侧相邻LCU中的候选运动向量,帧内预测处理可需要顶部或左侧相邻样本以用于产生块的预测,而环路滤波处理可能需要顶部或左边相邻LCU中的若干行采样。由于在对图块211-216进行编码时采用交叉图块边界数据参考,所以图块211-216的解码需要相应地参考跨图块边界的相邻参考数据。

为了便于使用相邻参考数据,可以采用用于存储顶部相邻参考数据的第一存储器220和用于存储左相邻参考数据的第二存储器230。第一存储器220和第二存储器230可以分别被称为水平存储器(H存储器)和垂直存储器(V存储器)。H存储器220可以包括表示为H0-H5的六个存储空间,每个对应于图像210的每一行中的六个LCU中的一个。V-存储器230可以包括四个存储空间,分别表示为V0-V3,每个对应于图像210的每列中的四个LCU中的一个。

解码过程200A期间,当处理图像210中的每一行LCU(除了最后一行)时,对应于一行中的每个LCU的相邻参考数据可被存储到存储空间H0-H5,并随后被下一行中相应的相邻LCU使用。具体而言,当处理图块边界217上方的六个LCU中的每一个时,对应于这些LCU的顶部相邻参考数据可被存储到存储空间H0-H5。所存储的顶部相邻参考数据稍后可用于解码在图块边界217之下的六个LCU中的每一个。类似地,当处理图块边界219的左边四个LCU中的每一个时,与这些LCU对应的左相邻参考数据可被存储到存储空间V0-V3。所存储的左侧相邻参考数据稍后可用于解码图块边界219右侧的四个LCU中的每一个。

图2B展示根据本发明的实施例的用于解码视频解码系统100中基于图块的图像240的解码过程200B。可以以类似于图像210的方式将图像240划分为图块241-246和LCU,得到图块边界247和249。图像240中的LCU可以类似地用一对基于图像的(X,Y)坐标表示,并按照箭头248所示的顺序处理。然而,不同于图2A的例子,图像240中的图块241-246可以被独立编码。换句话说,当对图像240进行编码时,不允许跨图块边界(across tile boundaries)的数据参考(data reference)。

类似于图2A的示例,当处理当前LCU时,一些解码操作可能需要使用位于相邻LCU(顶部相邻LCU或左边相邻LCU)中的顶部或左侧相邻参考数据。然而,由于当对图块241-246进行编码时不允许跨图块边界数据参考,因此不会发生跨图块边界数据参考用于图块241-246的解码。结果,可以使用水平存储器250中的两个存储空间H0-H1而不是图2A中的六个存储空间H0-H5来存储当前图块的相邻参考数据。水平存储器250可以是如图1所示的基于图块的存储器122。另外,在解码过程200B期间不需要垂直存储器。

例如,当在解码过程200B期间对图块241中的LCU(0,0)和(1,0)进行解码时,对应于LCU(0,0)和(1,0)的顶部相邻参考数据可以被分别存储到水平存储器250中的存储空间H0-H1。所存储的顶部相邻参考数据可稍后用于连续解码LCU(0,1)和(1,1)。然而,由于没有使用跨图块边界数据参考,所以当解码LCU(0,1)和(1,1)时,没有相邻参考数据被存储到水平存储器250以用于解码下一行LCU(0,2)或(1,2)。随后,当对LCU(2,0)和(3,0)进行解码时,存储空间H0-H1可以用于存储对应于LCU(2,0)和(3,0)的顶部相邻参考数据。对于垂直存储器,因为不使用跨图块边界数据参考,所以当处理图块边界249左侧的LCU时,不需要存储对应于该LCU的左侧相邻参考数据。因此,在解码过程200B期间不使用垂直存储器。

图3A展示在图2A示例中描述的常规解码系统中的示范性存储器访问方案300A。存储器访问方案300A可以用于在解码过程200A期间确定用于访问相邻参考数据的目标存储空间。图3A中示出了图像210,以及水平和垂直存储器220和230。如图2A中类似地所示,图像210的LCU分别与图3A中的一对基于图像的(X,Y)坐标相关联。

在水平方向上,每个存储空间H0-H5对应于图像210中的LCU列。因此,基于LCU的X坐标,可以确定H0-H5的相应存储空间。例如,在写入具有基于图像的X坐标等于2的LCU(2,2)的顶部相邻参考数据时,可以将存储空间H2确定为用于写入操作的目标存储空间。当解码具有基于图像的X坐标等于2的LCU(2,3)时,存储空间H2可以被确定为用于读取各个顶部相邻参考数据的目标存储空间。类似地,(3,2)和(3,3)的LCU都具有基于图像的X坐标3,所以可以确定存储空间H3是用于各个写入和读取操作的目标存储器。

类似地,在垂直方向上,每个存储空间V0-V3对应于LCU行。相应地,基于LCU的Y坐标,可以确定V0-V3的相应存储空间。例如,当分别写有基于图像的Y坐标为2和3的LCU(3,2)和(3,3)的左边相邻参考数据时,存储空间V2和V3可以被确定用于写入操作的相应的目标内存空间。当对具有基于图像的Y坐标2和3的LCU(4,2)和(4,3)进行解码时,存储空间V2和V3可以被确定为用于读取各个左相邻参考数据的目标存储空间。

图3B展示根据本发明的实施例的示范性存储器访问方案300B。在图3B中类似地示出了与图2B类似的图像240和水平存储器250。每个LCU与一对基于图像的(X,Y)坐标相关联。如上所述,存储空间H0-H1可用于存储对应于当前图块的一行中的不同LCU的顶部相邻参考数据。存储器访问方案300B可由P2T MMU 121执行以确定当在视频解码过程200B期间正在处理LCU时用于读取或写入顶部相邻参考数据的目标存储空间。

具体而言,当正在处理当前图块中具有一对基于图像的(X,Y)坐标的当前LCU时,顶部相邻参考数据可能需要从两个存储空间H0和H1中的一个写入或读取。为了便于存储器访问,可以执行坐标转换以如下方式获得当前LCU的基于图块的X或Y坐标,

基于图块的X坐标=当前LCU的基于图像的X坐标-图块X偏移量,

基于图块的Y坐标=当前LCU的基于图像的Y坐标-图块Y偏移量,

其中,图块X偏移量是当前图块的开始位置的基于图像的X坐标,而图块Y偏移量是当前图块的开始位置的基于图像的Y坐标。例如,相对于图像240的开始位置301,图块245具有一对基于图像的坐标(2,2)的开始位置302。因此,图块245的图块X偏移量为2,以及图块Y的偏移量为2。类似地,图块246的图块X偏移量为4,以及图块Y的偏移量为2。基于当前LCU的转换的基于图块的X坐标,可以确定目标存储空间H0或H1。

例如,图块245的LCU(2,2)在多个模块112、113、117或118中的一个处被处理,并且对应于当前LCU(2,2)的顶部相邻参考数据需要被存储到水平存储器250。因此,P2T MMU 121可以从相应的模块112、113、117或118接收请求。该请求可以指示将要进行什么类型的访问操作(读或写)以及当前LCU的基于图像的X坐标和图块245的图块X偏移量。然后,P2T MMU 121可以执行如下的坐标转换,

基于图块的X坐标=基于图像的X坐标-图块X偏移量=2-2=0。

相应地,存储空间H0可以被确定为用于写入对应于LCU(2,2)的顶部相邻参考数据的目标存储空间。

又例如,当正在处理图块245的LCU(2,3)时,需要从水平存储器250中检索先前存储的对应于LCU(2,2)的顶部相邻参考数据。可执行类似的坐标转换以确定经转换的基于图块的X坐标(等于0),并且相应地可将存储空间H0确定为目标存储空间。

进一步举例来说,当读取对应于LCU(3,2)的用于解码当前LCU(3,3)的顶部相邻参考数据时,P2T MMU 121可以执行如下的坐标转换,

基于图块的X坐标=基于图像的X坐标-图块X偏移量=3-2=1,

其中当前LCU(3,3)的基于图像的X坐标为3。相应地,可以将存储空间H1确定为目标存储空间。

虽然图2B和图3B示例中的图像240被完全解码,可以在替代示例中对图像进行部分解码。坐标转换可以以类似于图2B和图3B的方式执行,以确定基于图块的存储器122中用于处理所选图块的目标存储空间。

图4A展示常规解码系统中的输出存储器420的输出存储器映射401的示例。如图所示,图像410可具有类似于图像210的图块和LCU分区,并且包括图块411-416。所有的图块411-416和LCU已被解码并存储到输出存储器420中,等待显示。用于容纳所有LCU的存储空间具有由图像410的分辨率确定的大小。此外,LCU可以在存储器420中以LCU光栅扫描顺序排列。结果,图块(2,2)、(3,3)、(2,3)和(3,3)在输出存储器420中可以是不连续的。

图4B展示视频解码系统100中的输出存储器134的输出存储器映射402的示例。如所展示,图像430可具有类似于图像410的图块及LCU分区,且包括图块431-436。然而,与图4A的例子不同,图像430中的图块431-436可以是可独立解码的,因此图像430可以被部分解码。在图4B的例子中,图块435被选择和解码,并且图块435的LCU(2,2)、(3,2)、(2,3)和(3,3)被存储到输出存储器134。因此,用于保存解码的LCU(2,2)、(3,2)、(2,3)和(3,3)的存储空间具有由被选择和解码的图块的数量确定的大小。另外,在一个示例中,解码的LCU可以在存储器134中以图块光栅扫描顺序排列。结果,解码的图块中的LCU可以被分组在一起并且被连续地布置在存储器134中。在图4B中,在存储器映射402上示出了图块435的LCU(2,2)、(3,3)、(2,3)和(3,3)彼此相邻。

图5A展示根据本发明实施例的视频解码系统100中的示例性DMA控制器142。DMA控制器142可以包括可以并行操作的两个DMA模块DMA0和DMA1,以从存储在存储器501中的位流502中读取图块数据,并将该图块数据提供给解码器核心110。例如,存储器501可以是片外存储器,并且解码器核心110可以被实现为片上电路。并行地读取图块数据可以减少将图块数据从片外存储器501传送到片上解码器核心110所引起的延迟。

图5B展示由DMA控制器142并行地读取图块数据的示例过程500。图像510可具有类似于图像210的图块及LCU分区,且包括被标记为数字511-516的图块图块0-图块5。另外,图块511-516可以被独立地编码,并且因此可以在解码器核心110处被选择性地和独立地解码。在图5B的示例中,解码控制器111可以确定连续解码图块511、513和515,例如基于HMD FOV信息。相应地,两个DMA模块DMA0和DMA1可以被配置为开始读取操作,用于从存储器501读取图块数据。

具体地,如图5B所示,在时刻T=0时,DMA0可以开始读取图块0的图块数据,并且读取操作继续,直到T=2。同时,在时刻T=1时,DMA1可以开始操作以读取图块2的图块数据,并且读取操作继续,直到T=3。同时,解码器核心110可以在T=1时开始处理图块0,同时DMA 0正在读取图块0的图块数据,并且随后在T=2时开始处理图块2,同时DMA 1正在读取图块2的图块数据。类似地,在完成读取图块0数据之后,DMA0可以开始读取图块4的图块数据,并且解码器核心110可以开始在T=3处理图块4。这样,图块数据可以通过两条并行路径交替地(alternatively)从存储器501传送到解码器核心110,从而提高了视频解码系统100的吞吐率。

图6示出了根据本公开实施例的视频解码系统600。视频解码系统600可以包括与视频解码系统100的组件类似的组件,并且以与视频解码系统100类似的方式进行操作。例如,视频解码系统600可以包括组件视频解码系统100中包含的组件142、111-118、122、131-134。视频解码系统600可以包括以与解码器核心110类似的方式操作的解码器核心610,并且部分解码包括独立编码的图块的图像。

不同于解码器核心110,解码器核心610可基于基于图块的坐标来操作。例如,当处理当前图块时,当前图块中的LCU可以与图块的起始位置作为原点的一对基于图块的(X,Y)坐标相关联。因此,基于图块的存储器122的存储器访问可以是直接的,并且可以无需坐标转换,基于当前LCU的基于图块的X坐标来确定用于存储当前LCU的顶部相邻参考数据的目标存储空间。然而,对分段ID存储器131、并置MV存储器132和参考图像存储器133的存储器访问可能需要执行坐标转换。

例如,可以基于LCU来组织存储器131-133中的数据,并且用于存储数据的存储空间可以与每个LCU的基于图像的(X,Y)坐标对相关联,因此可以位于基于图像的(X,Y)坐标对。因此,视频解码系统100中的P2T MMU121在视频解码系统600中被移除,并且在解码器核心610与存储器131-133之间添加图块到图像存储管理单元(T2P MMU)621。T2P MMU 621可用于将当前LCU的一对基于图块的(X,Y)坐标转换为一对基于图像的(X,Y)坐标。基于所转换的坐标,可以实现对与存储器131-133中的当前LCU对应的数据的访问。

图7示出了根据本公开的实施例的用于对视频解码系统600中的图像710进行解码的示例解码过程700。图像710可以以类似于图2B的示例中的图像240的方式被分割,并且包括图块711-716(每个包括四个LCU)。另外,图块711-716中的LCU可以按照与图像240相似的顺序处理。每个图块711-716可以被独立编码,并且因此可以被独立地解码。然而,不同于解码过程200B,在视频解码系统600中的解码过程700期间使用基于图块的(X,Y)坐标。

具体而言,每个图块内的LCU均与一对基于图块的(X,Y)坐标相关联。例如,图块715中的四个LCU可以分别具有一对基于图块的坐标(0,0)、(1,0)、(0,1)和(1,1)。类似地,在其他图块中,四个LCU可以分别具有一对基于图块的坐标(0,0)、(1,0)、(0,1)和(1,1)。当用于将顶部参考数据写入基于图块的存储器122或从基于图块的存储器122读取顶部参考数据的存储器访问发生在当前LCU时,可以使用当前LCU的基于图块的X坐标来确定基于图块的存储空间122中的目标存储空间H0或H1。尽管在图7的示例中图像710被完全解码,但是在替代示例中可以对图像进行部分解码。

图8示出了根据本公开的实施例的坐标转换方案800。可以在T2P MMU 621处执行坐标方案以将基于图块的(X,Y)坐标转换为基于图像的(X,Y)坐标以促进对图6示例中的存储器131-133的存储器访问。例如,图像710中的LCU可以各自具有一对基于图块的(X,Y)坐标。存储器131-133中的每一个中的存储空间可以基于用于存储对应于图像710中的每个LCU的参考数据的LCU基础来组织。当存储器访问存储器131-133中的一个将在处理当前LCU时发生时,当前LCU的基于图块的(X,Y)坐标可以以下面的方式被转换为一对基于图像的(X,Y)坐标,

基于图像的X坐标=基于图块的X坐标+图块X偏移量,

基于图像的Y坐标=基于图块的Y坐标+图块Y偏移量,

其中所述图块X或Y偏移量是包括所述当前LCU的图块的X或Y偏移量。基于转换的基于图像的(X,Y)坐标,可以在存储器131-133中的一个中确定与当前LCU对应的目标存储空间。

作为示例,在图8中示出了并置MV存储器132的存储器映射810。在存储器映射810上,按照LCU来组织并置的MV数据,并且分配给与每个LCU对应的并置MV数据具有与LCU的一对基于图像的(X,Y)坐标相关联的存储空间。当已知一对当前LCU的基于图像的(X,Y)坐标时,可以定位目标存储空间。

例如,图块715在解码器核心610中被处理。图块715具有2的X偏移量和1的Y偏移量,并且图块715的四个LCU具有基于图块的坐标(0,0)、(1,0)、(0,1)和(1,1)。当执行坐标转换方案800时,可以导出一组基于图像的坐标(2,2)、(3,2)、(2,3)和(3,3)。假设MV解码器113正在处理图块715的LCU(1,0),则MV解码器113可以向T2P MMU 621发送读取请求以读取主图像的并置MV数据。该请求可以包括基于图块的坐标(1,0)以及图块715的X和Y偏移量。T2P MMU621可以执行坐标转换以获得基于图像的坐标(3,2)。基于经转换的坐标(3,2),与坐标(3,2)相关联的目标存储空间可位于并置MV存储器132中。类似地,当MV解码器113需要写入当前LCU的MV数据,可以执行上述坐标转换过程以确定随后更新的目标存储空间。

图9示出了根据本公开实施例的视频解码系统900。视频解码系统900在结构和功能方面类似于视频解码系统600。然而,与视频解码系统600不同的是,视频解码系统900不包括T2P MMU 621。相反,从基于图块的坐标到基于图像的坐标的坐标转换功能被包括在启动读取或写入内存访问请求的各个模块中。具体地,图6示例中的熵解码器112、MV解码器113和运动补偿模块116被图9的例子中的熵解码器112-T、MV解码器113-T和运动补偿模块116-T取代。熵解码器112-T、MV解码器113-T和运动补偿模块116-T可以被配置为执行由T2P MMU621执行的坐标转换功能。

除了坐标转换功能之外,熵解码器112-T、MV解码器113-T和运动补偿模块116-T可以被配置为执行与熵解码器112、MV解码器113、运动补偿模块116类似的功能。而且,图9所示的其他部件可以与图6中的相同。

图10示出了根据本公开的实施例的示例视频解码过程1000。视频解码过程1000可以在视频解码系统100中执行。视频解码过程1000可以在S1001处开始并且进行到S1010。

在S1010,可以在视频解码系统100中选择性地解码图像中的图块。例如,图像可以包括独立编码的图块,并且因此可以是部分可解码的。特别地,可以使用基于图像的LCU坐标来指示图像的图块中的每个LCU。当对当前图块进行解码时,可以使用基于图块的存储器122中的多个存储空间来存储对应于LCU行的顶部参考数据,所述LCU行可以稍后用于解码下一个LCU行。

在S1020中,可以将当前图块中的当前LCU的基于图像的X坐标转换为基于图块的X坐标以促进对多个存储空间之一的存储器访问。例如,可以在P2T MMU121处接收存储器访问请求,指示当前LCU的写入或读取操作以及一对基于图像的(X,Y)坐标。随后,P2T MMU 121可执行转换以获得经转换的基于图块的X坐标。

在S1030,可以基于转换的基于图块的X坐标来确定目标存储空间,以写入或读取顶部参考数据。例如,多个存储空间中的每一个可以对应于图块的LCU列。基于经转换的基于图块的X坐标,多个存储空间中的一个可被确定为用于存储当前LCU的顶部参考数据的目标存储空间,或者用于读取与当前LCU相邻的先前处理的LCU的顶部参考数据的目标存储空间。随后,可以完成读取或写入操作。过程1000进行到S1099并在S1099结束。

图11示出了根据本公开的实施例的示例视频解码过程1100。视频解码过程1100可以在视频解码系统600或900中执行。视频解码过程1100可以在S1101开始并进行到S1110。

在S1110,可以在视频解码系统600或900中选择性地解码图像中的图块。例如,图像可以包括独立编码的图块,并且因此可以是部分可解码的。特别地,可以使用基于图块的LCU坐标来指示图像的图块中的每个LCU。另外,可以使用对应于先前解码的图像的参考数据来解码当前图像。例如,这些参考数据可以包括存储在参考存储器133中的参考图像数据,存储在并置MV存储器132中的并置运动向量数据,或者存储在分段ID存储器131中的分段ID。那些参考数据可以基于LCU基础来组织,并且因此可以包括每个对应于LCU的多个存储空间。当图像是由其它从图像参考的主图像时,可在处理当前LCU的同时,由熵解码器112/112-T或MV解码器113/113-T更新诸如分段ID或并列运动向量的一些参考数据。

在S1120,可以将当前图块中的当前LCU的一对基于图块的(X,Y)坐标转换为一对基于图像的(X,Y)坐标以便于存储器访问储存先前解码的图像的参考数据的存储器。例如,可以在T2P MMU 621处接收存储器访问请求,指示读取或写入操作、当前LCU的一对基于图块的(X,Y)坐标,包括当前LCU的当前图块的一对图块X和Y偏移量以及存储先前解码图像的参考数据的存储器(诸如存储器131-133)。T2P MMU 621可以随后执行转换以获得转换的基于图像的(X,Y)坐标。

在S1130,可以基于转换的基于图像的(X,Y)坐标来确定目标存储空间,用于读取先前解码的图像的参考数据,或者写入与当前LCU对应的参考数据。例如,存储参考数据的存储器中的多个存储空间中的每一个可以对应于LCU。基于转换的基于图像的(X,Y)坐标,多个存储空间中的一个可以被确定为用于读取或写入操作的目标存储空间。随后,可以完成读取或写入操作。过程1100进行到S1199并在S1199结束。

在各种实施例中,图1示例中的解码器核心110和P2T MMU 121,图6示例中的解码器核心610和T2P MMU 621以及图9示例中的解码器核心910可以以软件、硬件或其组合来实现。在一个示例中,这些组件可以被实现为一个或多个集成电路,诸如数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、数字增强电路或类似设备或其组合。又例如,当由中央处理单元(CPU)执行时,这些组件可以实现为存储在存储器中的指令,使CPU执行那些组件的功能。

过程1000和1100以及视频解码系统100、600和900的功能可以被实现为计算机程序,该计算机程序在由一个或多个处理器执行时可以使一个或多个处理器执行各个视频解码系统的相应处理和功能的步骤。计算机程序可以存储或分布在与其他硬件一起提供或作为其他硬件的一部分的光学存储介质或固态介质的合适介质上,但也可以以其他形式分布,例如经由互联网或其他有线或无线电信系统。例如,计算机程序可以通过物理介质或分布式系统(包括例如从连接到互联网的服务器)获得并加载到设备中。

计算机程序可以从提供由计算机或任何指令执行系统使用或与其结合使用的程序指令的计算机可读介质访问。计算机可读介质可以包括任何存储、传送、传播或传输计算机程序以供指令执行系统、装置或设备使用或与其结合使用的装置。计算机可读介质可以是磁性、光学、电子、电磁、红外或半导体系统(或装置或设备)或传播介质。计算机可读介质可以包括诸如半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)等的计算机可读非临时性存储介质、磁盘和光盘等。计算机可读非暂时性存储介质可以包括所有类型的计算机可读介质,包括磁存储介质、光存储介质、闪存介质和固态存储介质。

尽管在本文描述的示例中示出了包括特定数量的图块或LCU的图像,但是替代示例中的图像可以具有不同的图块或LCU分区,并且因此每个图像中具有不同数量的图块或LCU。例如,图块可以具有多于两行的LCU,并且每个这样的LCU行可以具有多于两个的LCU。然而,这里描述的功能、方案或过程可以应用于具有任何数量的图块或行的任何分区。

另外,尽管在此描述了存储在基于图块的存储器122中的某些类型的相邻参考数据的示例以及存储在存储器131-133中的某些类型的参考数据,但是在其他例子中可以使用其他类型的参考数据。因此,这里描述的功能,方案或过程也可以应用于这里没有描述的其他类型的参考数据的使用。

虽然已经结合作为示例提出的其具体实施例描述了本公开的各方面,但是可以对这些示例做出替代、修改和变型。因此,这里阐述的实施例旨在是说明性的而不是限制性的。在不脱离下面阐述的权利要求的范围的情况下可以进行改变。

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