视频处理方法及装置的制造方法

文档序号:10618729阅读:170来源:国知局
视频处理方法及装置的制造方法
【专利摘要】本发明涉及视频处理装置,上述视频处理装置包括:影像中央处理单元,与主机进行通信,接收比特流来分析头部信息;以及预扫描模块,对根据上述影像中央处理单元的控制从上述主机输入的视频比特流进行预扫描,从而生成预扫描信息,基于上述预扫描信息及上述头部信息,上述影像中央处理单元对上述比特流进行重新排序处理,为了以规定单位对上述被重新排序处理的比特流进行并行解码处理而执行任务调度。
【专利说明】
视频处理方法及装置
技术领域
[0001 ] 本发明涉及视频处理方法及装置,更详细地,涉及利用多个处理单元对视频进行处理的结构。【背景技术】
[0002]随着对超高清(UHD,ultra_high density)的需求,以目前的视频压缩技术很难收容存储介质的大小及传输介质的带宽,随之,需要一种用于压缩超高清视频的新型压缩标准技术,由此,高效视频编码(HEVC,High Efficiency Video Coding)于2013年1月实现标准化。
[0003]但是,高效视频编码也可用于通过互联网(internet)、第三代移动通信技术(3G) 及长期演进(LET,Long Term Evolut1n)等网络提供的视频流,此时,不仅可通过高效视频编码对超高清级别的视频进行压缩,而且还可对全高清(FHD,Full High-Definit1n)或高清(HD,High Definit1n)级别的视频进行压缩。
[0004]如超高清电视(TV),短期内,视频处理技术将以4K 30fps为主,但预计将以4K 60fps/120fps,8K 30fps/60fps/--?的速度使每秒钟处理的像素数量持续增多。
[0005]根据如上所述的应用方式,为了以具有成本效益(cost-effective)的方式应对各种分辨率、帧率等,需具有可根据应用中所需的性能、功能容易处理视频的视频译码装置。
[0006]尤其,为了实现如上所述的应用方式,目前,可提出利用多个处理单元的并行处理 (parallel processing)方式的影像处理技术。在利用多个处理单元的并行处理方式中,可预想到将通过向多个处理单元分别分配所分割的比特流进行译码。
[0007]但是,在单纯使用如上所述的并行处理方式的情况下,有可能发生导致多个处理单元之间的处理量不均衡的情况。并且,因如上所述的处理量不均衡的情况而有可能导致带宽效率降低,而且,在硬件方面也将发生对硬件不利的情况。
[0008]尤其,在一个图像中存在尺寸互不相同的译码单位(例如,片(tile)或切片 (slice))的情况下,对向各个处理单元分配的片或切片的译码时间可相异。因此,即使执行基于利用多个处理单元的多译码,也因各个处理单元的处理时间各异,从而,不仅很难使整体译码时间实现同步以及很难预测实现同步的时间,而且还有可能导致时间非效率性地增长。
[0009]另一方面,为了实现基于利用多个单元的并行译码,可提出波前并行处理(WPP, Wavefront Parallel Proceccing)方式的编码及译码方法。但是,在近期新兴的高效视频编码标准方式中,在结构方面,当执行译码时,只有在比特流的头部信息标明波前并行处理形式,才可在执行译码时用多个处理单元执行并行译码,因而存在适用范围有限的问题。
[0010]并且,根据普通的波前并行处理方式,不仅存在之前所说明的不均衡等的问题,而且还存在对各个处理单元的处理顺序(ordering)分配方面的问题。通常,为了使影像正常再生,输出将按图像单位同步化,由此可执行按图像单位同步化的解码。因此,将产生一部分处理单元为了实现同步化而等待的时间。由此,会发生同步化过程中延迟(latency)增加或者整体解码时间变长的问题。
【发明内容】

[0011]技术问题
[0012]本发明根据上述必要性提出,本发明涉及具有多核(Multi core)结构的影像处理单元(VPU,Video Processing Unit)的视频处理装置及方法。[0〇13]技术手段
[0014]用于实现上述目的的本发明一实施例的视频处理装置,上述视频处理装置包括: 影像中央处理单元,与主机进行通信,接收比特流来分析头部信息;以及预扫描模块,对根据上述影像中央处理单元的控制由上述主机输入的视频比特流进行预扫描,从而生成预扫描信息,基于上述预扫描信息及上述头部信息,上述影像中央处理单元可以对上述比特流进行重新排序处理,为了以规定单位对上述被重新排序处理的比特流进行并行解码处理而执行任务调度。
[0015]另一方面,根据用于实现上述目的的本发明一实施例,视频处理方法包括:与主机进行通信,并接收比特流来分析头部信息的步骤;对由上述主机输入的视频比特流进行预扫描来生成预扫描信息的步骤;以及基于上述预扫描信息及上述头部信息来对上述比特流进行重新排序处理,为了以规定单位对上述被重新排序处理的比特流进行并行解码处理而执行任务调度的步骤。[0〇16]另一方面,上述视频处理方法可通过计算机可读记录介质体现,上述计算机可读记录介质记录有可在计算机执行上述视频处理方法的程序。[〇〇17]技术效果
[0018]根据本发明的实施例,基于通过预扫描模块生成的预扫描信息,以与比特流的结构无关的方式按规定段单位进行分割并分配,从而可使多个处理单元不间断(seamless)执行并行处理。[〇〇19]尤其,可在预扫描模块抽取及存储用于通过对比特流进行扫描,使各个核连续执行熵解码的必要的最少信息。
[0020]由此,可消除多个处理单元之间的处理量不均衡,并可抑制因处理量不均衡而导致的带宽效率降低。
[0021]并且,可在影像中央处理单元通过利用各个处理单元可执行基于利用预扫描信息的不间断并行处理这一点,可更加有效地排列比特流处理顺序,并可缩短译码时间。
[0022]而且,可在影像中央处理单元以与各个处理单元相对应的方式生成适当的任务并进行分配,非同步控制基于开始处理各个图像的预扫描、重新排列及基于译码的完成处理时间,由此,不仅可提高比特流处理率,而且可减少数据的开销,并可减少延迟。
[0023]并且,通过近期新兴的波前并行处理方式,还可在未被编码的流中进行基于利用波前并行处理方式的多个处理单元的多核译码,从而可提高编码器的性能。【附图说明】
[0024]图1为示出视频编码装置的结构的框图。[〇〇25]图2为用于说明以块单元分割影像并进行处理的方法的一例的图。
[0026]图3为示出在编码装置中执行帧间预测的结构的一实施例的框图。
[0027]图4为示出本发明一实施例的视频译码装置的结构的框图。
[0028]图5为示出在译码装置中执行帧间预测的结构的一实施例的框图。
[0029]图6及图7为示出序列参数集(SPS,Sequence Parameter Set)的结构的一例的图。 [〇〇30] 图8及图9为示出图像参数集(PPS,Picture Parameter Set)的结构的一例的图。 [〇〇31] 图10至图12为切片头部(SH,Slice Header)的结构的一例的图。
[0032]图13为示出本发明一实施例的视频译码装置的层状结构(layer structure)的图。
[0033]图14为示出本发明一实施例的影像中央处理单元的视频译码工作的时序图。[〇〇34]图15为用于说明本发明一实施例的预扫描模块的框图。
[0035]图16为用于说明根据本发明一实施例的预扫描模块进行预扫描的信息的框图。 [〇〇36]图17为用于说明本发明一实施例的预扫描模块的工作的流程图。
[0037]图18至图21为用于说明借助本发明实施例的预扫描模块的工作而生成的预扫描信息的图。[〇〇38]图22为用于说明本发明一实施例的影像中央处理单元的工作的流程图。[〇〇39]图23至图25为用于说明本发明一实施例的影像中央处理单元的工作及与此相关的任务调度而例示的图。【具体实施方式】
[0040]以下,参照附图,详细说明本发明的实施例,使得本发明所属技术领域的普通技术人员容易实施本发明。但是,本发明可体现为多种不同形态,本发明并不局限于在本说明书中所进行说明的实施例。而且,为了明确地说明本发明,在附图中省略与本发明的说明无关的部分,在说明书全文中,对类似的部分赋予类似的附图标记。
[0041]在本发明的说明书全文中,当一个部分与另一部分“相连接”时,不仅包括一个部分与另一部分“直接连接”的情况,而且还包括在两个部分之间设定其他元件使两个部分 “间接连接”的情况。
[0042]在本发明的说明书全文中,当一个部件位于另一部件“上”时,不仅包括一个部件与另一部件相接触的情况,而且还包括在两个部件之间存在其他部件的情况。
[0043]在本发明的说明书全文中,当一个部分“包括”另一结构要素时,只要没有特别相反的记载,则意味着还可包括其他结构要素,而不是意味着排除其他结构要素。对于在本发明的说明书全文中所使用的术语“约”、“实际上”等,当提出固有的制作误差及物质允许误差时,“约”、“实际上”等术语表示该数值或接近该数值,上述术语用于防止不法分子不正当地利用为了便于理解本发明而提出准确或绝对数值的公开内容。在本发明的说明书全文中所使用的术语“?(的)步骤”或“?的步骤”并不意味着“用于?的步骤”。
[0044]在本发明的说明书全文中,排列式表达中所包括的“它们的组合”这一用语意味着选自由在排列式表达中所记载的结构要素组成的组中的一种以上结构要素的混合或组合, “它们的组合”意味着包括选自由上述结构要素组成的组中的一种以上结构要素。
[0045]作为对实际影像和上述影像的深度信息地图进行编码的方法的一例,可利用在至今开发的视频编码标准中具有最高编码效率的在移动图象专家组(MPEG,Moving PictureExperts Group)和视频编码专家组(VCEG,Video Coding Experts Group)中共同实现标准化的高效视频编码执行编码,但并不局限于此。
[0046]通常,编码装置包括编码过程和解码过程,译码装置包括解码过程。译码装置的解码过程与编码装置的解码过程相同。因此,以下,以编码装置为主进行说明。
[0047]图1为示出视频编码装置的结构的框图。[〇〇48] 参照图1,视频编码装置100包括图像分割部110、变换部120、量化部130、扫描部 131、熵编码部140、帧内预测部150、帧间预测部160、反量化部135、反变换部125、后处理部 170、图像存储部180、减法部190及加法部195。
[0049]图像分割部110对所输入的视频信号进行分析,并对图像的每个编码树单元(CTU, Coding Tree Unit)以规定大小的编码单元进行分割,由此确定预测模式,并且按不同的上述编码单元确定预测单元的大小。
[0050]而且,图像分割部110根据预测模式(或预测方法),向帧内预测部150或帧间预测部160传输所要进行编码的预测单元。并且,图像分割部110向减法部190传输所要编码的预测单元。
[0051]图像由多个切片构成,切片可由作为多个最大编码单元的编码树单元构成。
[0052]上述编码树单元可分割为多个编码单元(CU,Coding Unit),编码器可向比特流添加用于表示是否分割的信息(flag)。译码器可利用地址(CtuAddr)识别编码树单元的位置。 [0〇53]在未被允许分割的情况下的编码单元被视为预测单元(PU,Predict1n unit),编码器可利用预测单元索引识别预测单元的位置。
[0054]预测单元可被分为多个分区。并且,预测单元可由多个变换单元(TU,Transform unit)构成。
[0055]在此情况下,图像分割部110可按基于所确定的编码模式的规定大小的块单元(例如,预测单元或转换单元)向减法部190传输影像数据。[0〇56] 参照图2,视频编码单元使用编码树单元(CTU,Coding Tree Unit),此时,编码树单元呈多种正方形形状。编码树单元包括编码单元(⑶,Coding Unit)。[〇〇57] 编码单元呈四叉树(Quad Tree)形状,当编码单元为大小为64X64的最大编码单元时,将编码单元的深度(Depth)设定为0,从而直到编码单元的深度达到3为止,S卩,直到编码单元为8 X 8大小的编码单元为止,以递归(Recursive)的方式查找最优的预测单元并执行编码。
[0058]执行预测的预测单元被定义为预测单元,各个编码单元按被分割为多个块的块单元执行预测,并分为正方形和矩形形态执行预测。
[0059]变换部120对作为所输入的预测单元的初始块与在帧内预测部150或在帧间预测部160所生成的预测块之间的残差信号的残差块进行变换。上述残差块由编码单元或预测单元构成。由编码单元或预测单元构成的残差块被分割为最优的变换单元并被变换。可根据预测模块(intra or inter)确定互不相同的变换矩阵。并且,帧内预测的残差信号可根据帧内预测模式具有方向性,因此,可根据帧内预测模式自适应地确定变换矩阵。
[0060]变换单元可借助两个(水平、垂直)一维变换矩阵变换。例如,在帧间预测的情况下,确定预先确定的一个变换矩阵。
[0061]相反,在帧内预测的情况下,因在帧内预测模式为水平的情况下,残差块具有向垂直方向的方向性的概率变高,因此,向垂直方向适用基于离散余弦变换(DCT)的常数矩阵, 向水平方向适用基于离散正弦变换(DST)或基于卡洛变换(KLT)的常数矩阵。在帧内预测模式为垂直的情况下,向垂直方向适用基于离散正弦变换或基于卡洛变换的常数矩阵,向水平方向适用基于离散余弦变换的常数矩阵。
[0062]在双通道(DC)模式的情况下,向水平方向和垂直方向均适用基于离散余弦变换的常数矩阵。并且,在帧内预测的情况下,可基于变换单元的大小,自适应地确定变换矩阵。
[0063]量化部130确定用于对借助上述变换矩阵变换的残差块的系数进行量化的量化步长尺寸。按照预先确定的大小以上的编码单元(以下,称之为量化单元)确定量化步长尺寸。
[0064]上述预先确定的大小可以为8X8或16 X 16。而且,利用根据所确定的量化步长尺寸及预测模式确定的量化矩阵,对上述变换块的系数进行量化。
[0065]作为当前量化单元的量化步长的预测部,量化部130利用与当前量化单元相邻的量化单元的量化步长。
[0066]量化部130可按照当前量化单元的左侧量化单元、上侧量化单元、左上侧量化单元的顺序进行搜索,从而利用一个或两个有效量化步长尺寸,生成当前量化单元的量化步长尺寸预测器。
[0067]例如,可将按上述顺序搜索的有效的第一个量化步长尺寸确定为量化步长尺寸预测器。并且,也可将按上述顺序搜索的有效的两个量化步长尺寸的平均值确定为量化步长尺寸预测器,在仅有一个有效的量化步长尺寸的情况下,可将上述一个量化步长尺寸确定为量化步长尺寸预测器。
[0068]若确定上述量化步长尺寸预测器,则向熵编码部140传输当前编码单元的量化步长尺寸与上述量化步长尺寸预测器之间的差分值。
[0069]另一方面,当前编码单元的左侧编码单元、上侧编码单元、左上侧编码单元有可能均不存在。相反,可存在在最大编码单元内的编码顺序上述之前存在的编码单元。
[0070]因此,在与当前编码单元相邻的量化单元内和上述最大编码单元内,编码顺序上的之前一个量化单元的量化步长尺寸可以成为候选者。
[0071]在此情况下,可将以下顺序作为优先顺序,S卩,可将1)当前编码单元的左侧量化单元、2)当前编码单元的上侧量化单元、3)当前编码单元的左上侧量化单元、4)编码顺序上的之前一个量化单元的顺序作为优先顺序。上述顺序可以更换,也可省略上述左上侧量化单J L 〇
[0072]向反量化部135和扫描部131提供量化的上述变换块。[〇〇73]扫描部131扫描量化的变换块的系数,将上述系数变换成一维量化系数。因量化后的变换块的系数分布可依赖于帧内预测模式,从而根据帧内预测模式确定扫描方式。
[0074]并且,可根据变换单元的大小,使所确定的系数扫描方式各不相同。上述扫描图案可根据帧内预测模式而不同。量化系数的扫描顺序为反方向。
[0075]在量化的上述系数被分割为多个子集的情况下,相同扫描图案适用于各个子集内的量化系数。子集间的扫描图案适用“Z”字形扫描方式或对角线扫描方式。优选地,扫描图案可采用从包括双通道的主要子集沿着正向朝向剩余子集扫描的方式,但也可沿着反向进行扫描。
[0076]并且,以与在子集内量化的系数的扫描图案相同的方式设定子集间的扫描图案。在此情况下,根据帧内预测模式确定子集间的扫描图案。另一方面,编码器向译码器传输可表示上述变换单元内的并非为0的最后一个量化系数的位置的信息。
[0077]还可向译码器传输可表示各个子集内的并非为0的最后一个量化系数的位置的信息。
[0078]反量化部135对上述量化的量化系数进行反量化。反变换部125将反量化的变换系数复原成空间区域的残差块。加法器通过合并借助上述反变换部复原的残差块和从帧内预测部150或帧间预测部160接收的预测块,生成复原块。
[0079]后处理部170执行如下过程,S卩,用于去除在所复原的图像中发生的块效应的去块滤波过程、用于以像素单元弥补与原始影像之间的差值的自适应补偿适用过程以及用于通过编码单元弥补与原始影像之间的差值的自适应环路滤波过程。
[0080]优选地,去块滤波过程适用于大小大于预先确定的大小的预测单元及变换单元的边界。上述大小可以为8 X 8。上述去块滤波过程包括:确定滤波边界(boundary)的步骤;确定适用于上述边界的边界滤波强度(boundary filtering strength)的步骤;确定是否适用去块滤波器的步骤;以及在确定适用上述去块滤波器的情况下,选择适用于上述边界的滤波器的步骤。[0081 ]通过i)上述边界滤波强度是否大于0,以及ii)用于表示像素值在与所要进行滤波的上述边界相邻的两个块(P块、Q块)的边界部分的变化程度的值是否小于借助量化参数确定的第一基准值等条件来确定是否适用上述去块滤波器。
[0082]优选地,具有两个以上的上述滤波器。在位于块边界的两个像素之间的差值的绝对值大于或等于第二基准值的情况下,选择所执行的滤波强度相对较弱的滤波器。[〇〇83]根据上述量化参数及上述边界滤波强度确定上述第二基准值。
[0084]自适应补偿适用过程用于减小适用去块滤波器的影像内的像素和原始像素之间的差值(distort1n)。可通过图像或切片单位确定是否执行上述自适应补偿适用过程。 [〇〇85]图像或切片可被分割为多个补偿区域,并可按照各个补偿区域确定补偿类型。补偿类型可包括数量被预先确定的(例如,四个)边缘补偿型和两个带补偿型。
[0086]在补偿类型为边缘补偿型的情况下,确定各个像素所属的边缘类型,从而使用与上述边缘补偿型相对应的补偿。以与当前像素相邻的两个像素值的分布为基准,确定上述边缘类型。
[0087]自适应环路滤波过程可基于对经过去块滤波过程或自适应补偿适用过程的复原的影像和原始影像进行比较的值执行滤波。在自适应环路滤波中,所确定的上述自适应环路滤波(ALF)可适用于4 X 4大小或8 X 8大小的块所包括的所有像素。
[0088]可按不同的编码单元确定是否应用自适应环路滤波。待应用的环路滤波器的大小及系数可能根据各编码单元而有所不同。用于表示是否按不同的编码单元应用上述自适应环路滤波的信息可包含于各切片头部。但是,根据编码标准方式的变更可省略上述适应性环路滤波过程。
[0089]以色差信号为例,可按图像单位确定是否使用自适应环路滤波器。与亮度不同,环路滤波器的形态可呈矩形形态。
[0090]可按切片确定是否使用自适应环路滤波。因此,表示当前切片是否适用自适应环路滤波的信息包含在切片头部或图像头部。
[0091]若自适应环路滤波适用于当前切片,则切片头部或图像头部追加包含用于表示在自适应环路滤波过程中所使用的亮度成分的水平方向和/或垂直方向的滤波器长度的信息。
[0092]切片头部或图像头部可包含表示滤波器组数的信息。此时,若滤波器组的数量为2 以上,则可使用预测方法对滤波器系数进行编码。因此,切片头部或图像头部可包含表示是否通过预测方法对滤波器系数进行编码的信息,在使用预测方法的情况下,上述切片头部或图像头部包含所预测的滤波器系数。
[0093]另一方面,不仅可对亮度执行自适应滤波,而且还可对色差成分执行自适应滤波。 因此,切片头部或图像头部可包含表示各个色差成分是否被滤波的信息。在此情况下,为了减少比特数,可对表示是否对Cr和Cb进行滤波的信息进行联合编码(S卩,多路传输编码)。
[0094]此时,以色差成分为例,为了减少复杂程度,对Cr和Cb均未进行滤波的情况最为频繁的可能性高,因此,在对Cr和Cb均未进行滤波的情况下,分配最小的索引来执行熵编码。
[0095]而且,在对Cr及Cb均进行滤波的情况下,分配最大的索引来执行熵编码。[〇〇96]图像存储部180从后处理部170接收经过后处理的影像数据,以图像(picture)单位对影像数据进行复原并存储。图像可以为以帧为单位的影像或以字段为单位的影像。图像存储部180具有可存储多个图像的缓冲器(未图示)。
[0097]帧间预测部160根据存储在上述图像存储部180的一个以上的参照图像来进行移动推测,并确定用于表示参照图像的参照图像索引及移动向量。
[0098]而且,根据所确定的参照图像索引及移动向量,在存储于图像存储部180的多个参照图像中,从用于执行移动推测的参照图像中抽取并输出与所要编码的预测单元相对应的预测块。
[0099]帧内预测部150利用当前预测单元所包含的图像内部的重组的像素值来执行帧内预测编码。
[0100]帧内预测部150接收所要预测编码的当前预测单元,并根据当前块的大小,选择数量被预先设定的帧内预测模式中的一种来执行帧内预测。
[0101]帧内预测部150为了生成帧内预测块而对参照像素进行自适应滤波。在参照像素不可用的情况下,利用可用的参照像素生成参照像素。
[0102]熵编码部140对借助量化部130量化的量化系数、从帧内预测部150接收的帧内预测信息、从帧间预测部160接收的移动信息等进行熵编码。
[0103]图3为示出在编码装置中执行帧间预测的结构的一实施例的框图,图中所示的帧间预测编码装置可包括移动信息确定部161、移动信息编码模式确定部162、移动信息编码部163、预测块生成部164、残差块生成部165、残差块编码部166及复用器167。
[0104]参照图3,移动信息确定部161确定当前块的移动信息。移动信息包含参照图像索引和移动向量。参照图像索引表示之前被编码并复原的图像中的一个。[〇1〇5]在当前块被单向帧间预测编码的情况下,参照图像索引表示属于列表0L0的参照图像中的一个。相反,在当前块被双向预测编码的情况下,参照图像索引可包括表示列表 0L0的参照图像中的一个的参照图像索引和表示列表1L1的参照图像中的一个的参照图像索引。
[0106]并且,在当前块被双向预测编码的情况下,参照图像索引可包括表示通过结合列表0和列表1而生成的复合列表(LC)的参照图像中的一个或两个图像的索引。
[0107]移动向量表示各个参照图像索引所表示的图像内的预测块的位置。移动向量可采用像素单位(常数单位),但也可采用子像素单位。
[0108]例如,像素单位可具有1/2像素、1/4像素、1/8像素或1/16像素的分辨率。在移动向量并非以常数为单位的情况下,预测块从常数单位的像素中生成。
[0109]移动信息编码模式确定部162确定采用跳过模式对当前块的移动信息进行编码还是采用合并模式对当前块的移动信息进行编码,或是采用高级运动向量预测(AMVP)模式对当前块的移动彳目息进行编码。
[0110]跳过模式适用于存在具有与当前块的移动信息相同的移动信息的跳过候选者,且残差信号为0的情况。并且,跳过模式适用于当前块的尺寸与编码单元的尺寸相同的情况。 当前块可被视作预测单元。
[0111]合并模式适用于存在具有与当前块的移动信息相同的移动信息的合并候选者的情况。在当前块的尺寸和编码单元的尺寸相异或相同的情况下,合并模式适用于存在残差信号的情况。合并候选者和跳过候选者可相同。
[0112]在不适用跳过模式及合并模式的情况下,适用高级运动向量预测模式。将具有与当前块的移动向量最为类似的移动向量的高级运动向量预测候选者选为高级运动向量预测预测器。
[0113]根据移动信息编码模式确定部162所确定的方式,移动信息编码部163对移动信息进行编码。在移动信息编码模式为跳过模式或合并模式的情况下,执行合并移动向量编码过程。在移动信息编码模式为高级运动向量预测的情况下,执行高级运动向量预测编码过程。
[0114]预测块生成部164利用当前块的移动信息生成预测块。在移动向量以常数为单位的情况下,通过复制与参照图像索引所表示的图像内的移动向量所表示的位置相对应的块来生成当前块的预测块。
[0115]但是,在移动向量并非以常数为单位的情况下,从参照图像索引所表示的图像内的常数单位像素生成预测块的像素。[〇116]*在此情况下,以亮度像素为例,可使用8抽头内插滤波器生成预测像素。以色差像素为例,可使用4抽头内插滤波器生成预测像素。
[0117]残差块生成部165利用当前块和当前块的预测块生成残差块。在当前块的大小为 2N X 2N的情况下,利用当前块和与当前块相对应的大小为2N X 2N的预测块生成残差块。
[0118]但是,在用于预测的当前块的大小为2N X N或N X 2N的情况下,可在求得构成2N X 2N大小的两个2N XN块的各自的预测块之后,利用两个2N X N大小的上述预测块生成2N X 2N 大小的最终预测块。
[0119]而且,可利用上述2N X 2N大小的预测块生成2N X 2N大小的残差块。为了解除2N X N 大小的两个预测块的边界部分的间断性,可对边界部分的像素进行重叠平滑。
[0120]残差块编码部166将所生成的残差块分为一个以上的变换单元。而且,对各个变换单元进行变换编码、量化及熵编码。此时,可根据残差块的大小,通过四叉树方式确定变换单元的大小。
[0121]残差块编码部166利用基于常数的变换矩阵对通过帧间预测方法生成的残差块进行变换。上述变换矩阵为基于常数的离散余弦变换矩阵。
[0122]为了对借助上述变换矩阵变换的残差块的系数进行量化,残差块编码部166利用量化矩阵。根据量化参数确定上述量化矩阵。
[0123]按照预先确定的大小以上的编码单元确定上述量化参数。上述预先确定的大小可以为8X8或16X16。因此,在当前编码单元的大小小于上述预先确定的大小的情况下,在上述预先确定的大小内的多个编码单元中,仅对在编码顺序上的第一个编码单元的量化参数进行编码,因剩余编码单元的量化参数与上述参数相同,因而无需进行编码。
[0124]而且,利用根据所确定的量化参数及预测模式确定的量化矩阵,对上述变换块的系数进行量化。
[0125]利用与当前编码单元相邻的编码单元的量化参数对按照上述预先确定的大小以上的编码单元所确定的量化参数进行预测编码。按照当前编码单元的左侧编码单元、上侧编码单元的顺序进行搜索,从而可利用有效的一个或两个有效量化参数生成当前编码单元的量化参数预测器。
[0126]例如,可将按上述顺序搜索的有效的第一个量化参数确定为量化参数预测器。并且,按照左侧编码单元、在编码顺序上的之前一个编码单元的顺序进行搜索,从而可将有效的第一个量化参数确定为量化参数预测器。
[0127]量化的变换块的多个系数通过扫描变换为多个一维量化系数。可根据变换单元大小和帧间预测方法来设置不同的扫描方式。
[0128]例如,可向对角线方向扫描系数,在变换单元的大小为4X4的帧内块的情况下,可根据帧间预测方向发生改变。在帧间预测方向接近于垂直的情况下,可以向水平方向对变换单元的大小为4 X 4的帧内块进行扫描,在帧间预测方向接近于水平的情况下,可以向垂直方向对TU的大小为4 X 4的帧内块进行扫描。
[0129]并且,还可以根据熵编码模式设置不同的系数。例如,当以自适应二进制算术编码 (CABAC,Context_based Adaptive Binary Arithmetic Coding)模式进行编码时,还可以通过预先设定的一种方式(“Z”字形扫描或者向对角线方向的光栅扫描)对被帧间预测编码的量化系数进行扫描。相反,当以基于上下文的自适应可变长编码(CAVLC,Context Adaptive Variable Length Coding)模式进行编码时,还可以通过与上述方式不同的方式进行扫描。
[0130]例如,在帧间,扫描方式为“Z”字形扫描,在帧内,可根据帧内预测模式确定扫描方式。并且,还可根据变换单元的大小确定系数扫描方式。
[0131]上述扫描图案可根据帧内预测模式而不同。量化系数的扫描顺序为反方向。
[0132]复用器167对借助上述移动信息编码部163编码的移动信息和借助上述残差块编码部编码的残差信号实现复用。上述移动信息可根据编码模式而不同。
[0133] S卩,在跳过模式或合并模式的情况下,仅包括表示预测器的索引。但是,在高级运动向量预测模式的情况下,包括当前块的参照图像索引、差分移动向量及高级运动向量预测索引。
[0134]以下,详细说明帧内预测部150的工作的一实施例。
[0135]首先,借助图像分割部110接收预测模式信息及预测块的大小,预测模式信息表示帧内模式。预测块的大小可以为64\64、32\32、16\16、8\8、4父4的正方形,但并不局限于此。即,上述预测块的大小可以为非正方形。
[0136]接着,为了确定预测块的帧内预测模式,从图像存储部180读取参照图像。
[0137]检查是否存在不可用的上述参照像素,判断是否生成参照像素。上述参照像素用于确定当前块的帧内预测模式。
[0138]在当前块位于当前图像的上侧边界的情况下,与当前块的上侧相邻的像素未被定义。并且,在当前块位于当前图像的左侧边界的情况下,与当前块的左侧相邻的像素未被定义。
[0139]这种像素被判断为不可用像素。并且,由于当前块位于切片边界,因而在与切片的上侧或左侧相邻的像素被判断为并不是优先被编码并复原的像素的情况下,也被判断为不可用的像素。
[0140]如上所述,可在不存在与当前块的左侧或上侧相邻的像素的情况下,或者可在不存在预先被编码并复原的像素的情况下,仅利用可用的像素确定当前块的帧内预测模式。
[0141]但是,也可利用当前块的可用参照像素生成位于不可用的位置的参照像素。例如, 在上侧块的像素不可用的情况下,可利用左侧像素的一部分或整个左侧像素生成上侧像素,反之亦然。
[0142]S卩,可通过复制在预先确定的方向的位置离处于不可用的位置的参照像素最近的的可用参照像素生成参照像素。若在预先确定的方向上不存在可用参照像素,则可通过复制相反方向上的位置最近的可用参照像素生成参照像素。
[0143]另一方面,也可在存在当前块的上侧像素或左侧像素的情况下,根据上述像素所属的块的编码模式确定不可用的参照像素。
[0144]例如,在与当前块的上侧相邻的参照像素所属的块为通过帧间编码复原的块的情况下,上述像素可被判断为不可用的像素。
[0145]在此情况下,可利用与当前块相邻的块属于通过帧内编码复原的块的像素生成可用的参照像素。在此情况下,需从编码器向译码器传输根据编码模式判断可用参照像素的 fg息。
[0146]接着,利用上述参照像素确定当前块的帧内预测模式。当前块可允许的帧内预测模式的数量可根据块的大小而不同。例如,在当前块的大小为8X8、16 X16、32X 32的情况下,可存在34个帧内预测模式,在当前块的大小为4X4的情况下,可存在17个帧内预测模式。
[0147]上述34个帧内预测模式或17个帧内预测模式可由一个以上的非定向模式(non-direct1nal mode)和多个定向模式(direct1nal modes)构成。
[0148]—个以上的非定向模式可以为双通道模式和/或平面(planar)模式。在双通道模式及平面模式为非定向模式的情况下,也可与当前块的大小无关地存在35个帧内预测模式。
[0149]此时,可包括两个非定向模式(双通道模式及平面模式)和33个定向模式。[〇15〇]平面模式利用位于当前块的右下侧(bottom-right)的至少一个像素值(或上述像素值的预测值,以下,称之为第一参照值)和参照像素生成当前块的预测块。
[0151]如上所述,本发明一实施例的视频译码装置的结构可从参照图1至图3说明的视频编码装置的结构导出,例如,可通过执行参照图1进行说明的编码过程的逆过程对影像进行译码。
[0152]图4为示出本发明一实施例的视频译码装置的结构的框图。
[0153]参照图4,本发明的视频译码装置包括:熵译码部210、反量化/反变换部220、加法器270、去块滤波器250、图像存储部260、帧内预测部230、移动补偿预测部240及帧内/帧间转换开关280。
[0154]熵译码部210对从视频编码装置传输的编码比特流进行译码,并将编码比特流分为帧内预测模式索引、移动信息、量化系数序列等。熵译码部210像移动补偿预测部240供给经过译码的移动信息。
[0155]熵译码部210向上述帧内预测部230、反量化/反变换部220供给上述帧内预测模式索引。并且,上述熵译码部210向反量化/反变换部220供给上述反量化系数序列。
[0156]反量化/反变换部220将上述量化系数序列变换成二维排列的反量化系数。为了进行上述变换,选择多个扫描图案中的一种。基于当前块的预测模式(即,帧内预测模式及帧间预测模式中的一种)和帧内预测模式中的至少一种,选择多个扫描图案中的一种。
[0157]从帧内预测部或熵译码部接收上述帧内预测模式。
[0158]反量化/反变换部220利用选自多个量化矩阵的量化矩阵对上述二维排列的反量化系数进行量化系数复原。根据所要复原的当前块的大小,适用互不相同的量化矩阵,对于相同大小的块,也通过以上述当前块的预测模式及帧内预测模式中的至少一种为基础,选择量化矩阵。
[0159]而且,通过使上述复原的量化系数反变换,使残差块复原。
[0160]加法器270通过合并借助反量化/反变换部220复原的残差块和借助帧内预测部 230或移动补偿预测部240生成的预测块,从而使影像块复原。
[0161]去块滤波器250对借助加法器270生成的复原影像执行去块滤波处理。由此,可减少基于量化过程的影像损失所导致的去块伪像。
[0162]图像存储部260为维持借助去块滤波器250接受去块滤波处理的局部译码影像的帧存储器。
[0163]帧内预测部230基于从熵译码部210接收的帧内预测模式索引,复原当前块的帧内预测模式。而且,根据所复原的帧内预测模式生成预测块。
[0164]移动补偿预测部240基于移动向量信息从存储于图像存储部260的图像生成当前块的预测块。在适用精密度达到小数点位置的移动补偿的情况下,通过适用所选择的内插滤波器来生成预测块。
[0165]帧内/帧间转换转换开关280基于编码模式向加法器270提供在帧内预测部230和移动补偿预测部240中的一个生成的预测块。
[0166]图5为示出在译码装置中执行帧间预测的结构的一实施例的框图,帧间预测译码装置包括解复用器241、移动信息编码模式判断部242、合并模式移动信息译码部243、高级运动向量预测模式移动信息译码部244、预测块生成部245、残差块译码部246及复原块生成部 247。
[0167]参照图5,解复用器241从所接收的比特流对当前编码的移动信息和编码的残差信号进行解复用。解复用器241向移动信息编码模式判断部242传输经过解复用的上述移动信息,并向残差块译码部246传输经过解复用的残差信号。
[0168]移动信息编码模式判断部242判断当前块的移动信息编码模式。在所接收的比特流的跳过标志(skip_flag)的值为1的情况下,移动信息编码模式判断部242判断为以跳过编码模式对当前块的移动信息编码模式进行了编码。
[0169]在所接收的比特流的跳过标志的值为0、从解复用器241接收的移动信息仅包含合并索引的情况下,移动信息编码模式判断部242判断为以合并模式对当前块的移动信息编码模式进行了编码。
[0170]在所接收的比特流的跳过标志的值为0、从解复用器241接收的移动信息包含参照图像索引、差分移动向量及高级运动向量预测索引的情况下,移动信息编码模式判断部242 判断为以高级运动向量预测模式对当前块的移动信息编码模式进行了编码。
[0171]在移动信息编码模式判断部242将当前块的移动信息编码模式判断为跳过模式或合并模式的情况下,合并模式移动信息译码部243将被激活。
[0172]在移动信息编码模式判断部242将当前块的移动信息编码模式判断为高级运动向量预测模式的情况下,高级运动向量预测模式移动信息译码部244将被激活。[〇173]预测块生成部245利用借助上述合并模式移动信息译码部243或高级运动向量预测模式移动信息译码部244复原的移动信息,生成当前块的预测块。
[0174]在移动向量以常数为单位的情况下,通过复制与参照图像索引所表示的图像内的移动向量所表示的位置相对应的块来生成当前块的预测块。
[0175]但是,在移动向量并非以常数为单元的情况下,从参照图像索引所表示的图像内的常数单元像素生成预测块的像素。在此情况下,以亮度像素为例,可使用8抽头的内插滤波器生成预测像素。以色差像素为例,可使用4抽头内插滤波器生成预测像素。
[0176]残差块译码部246对残差信号进行熵译码。而且,对被熵译码的系数进行逆扫描来生成二维量化系数块。逆扫描方式可统一为基于自适应二进制算术编码的逆扫描方式。
[0177]并且,逆扫描方式也可根据熵译码方式而发生改变。在基于自适应二进制算术编码来译码的情况和基于上下文的自适应可变长编码来译码的情况下,帧间预测残差信号的逆扫描方式可能会发生改变。例如,在基于自适应二进制算术编码来译码的情况下,可应用对角线方向的光栅逆扫描方式,而以基于上下文的自适应可变长编码来译码的情况下可应用锯齿逆扫描方式。
[0178]并且,还可根据预测块的大小和帧间预测方式确定不同的逆扫描方式。
[0179]残差块译码部246利用反量化矩阵对所生成的系数块进行反量化。为了引导上述量化矩阵,使量化参数复原。按照预先确定的大小以上的编码单元使量化步长尺寸复原。
[0180]上述预先确定的大小可以为8X8或16X16。因此,在当前编码单元的大小小于上述预先确定的大小的情况下,在上述预先确定的大小内的多个编码单元中,仅对在编码顺序上的第一个编码单元的量化参数进行复原,因剩余编码单元的量化参数与上述参数相同,因而无需进行编码。
[0181]为了复原按照上述预先确定的大小以上的编码单位确定的量化参数,使用与当前编码单元相邻的编码单元的量化参数。可按当前编码单元的左侧编码单元、上侧编码单元的顺序进行搜索,将有效的第一个量化参数确定为当前编码单元的量化参数预测器。
[0182]并且,按左侧编码单元、编码顺序上的之前一个编码单元的顺序进行搜索,从而可将有效的第一个量化参数确定为量化参数预测器。利用所确定的上述量化参数预测器和差分量化参数复原当前预测单元的量化参数。
[0183]残差块译码部260通过反量化的上述系数块进行反变换,复原残差块。
[0184]复原块生成部270通过合并借助上述预测块生成部250生成的预测块和借助上述残差块译码部260生成的残差块生成复原块。
[0185]以下,参照图3,说明通过帧内预测复原当前块的过程。
[0186]首先,从所接收的比特流对当前块的帧内预测模式进行译码。为此,熵译码部210 参照多个帧内预测模式表中的一个复原当前块的第一帧内预测模式索引。
[0187]上述多个帧内预测模式表为编码器和编码器共享的表,可适用根据与当前块相邻的多个块的帧内预测模式的分布所选择的一种表。
[0188]作为一例,若当前块的左侧块的帧内预测模式和当前块的上侧块的帧内预测模式相同,则可适用第一帧内预测模式表来复原当前块的第一帧内预测模式索引,若当前块的左侧块的帧内预测模式和当前块的上侧块的帧内预测模式不同,则可适用第二帧内预测模式表来复原当前块的第一帧内预测模式索引。
[0189]作为另一例,在当前块的上侧块和左侧块的帧内预测模式均为定向预测模式 (direct1nal intra predict1n mode)的情况下,若上述上侧块的帧内预测模式的方向和上述左侧块的帧内预测模式的方向处于规定角度以内,则可适用第一帧内预测模式表来复原当前块的第一帧内预测模式索引,若上述上侧块的帧内预测模式的方向和上述左侧块的帧内预测模式的方向超出规定角度,则可适用第二帧内预测模式表来复原当前块的第一帧内预测模式索引。[〇19〇]熵译码部210向帧内预测部230传输复原的当前块的第一帧内预测模式索引。[〇191]在上述索引具有最小值的情况下(S卩,0),接收上述第一帧内预测模式索引的帧内预测部230将当前块的最大可能模式确定为当前块的帧内预测模式。
[0192]但是,在上述索引具有0之外的值的情况下,帧内预测部230对当前块的最大可能模式所表示的索引和上述第一帧内预测模式索引进行比较。比较结果,若上述第一帧内预测模式索引不小于上述当前块的最大可能模式所表示的索引,则将与在上述第一帧内预测模式索引加上1的第二帧内预测模式索引相对应的帧内预测模式确定为当前块的帧内预测模式,若上述第一帧内预测模式索引小于上述当前块的最大可能模式所表示的索引,则将与上述第一帧内预测模式索引相对应的帧内预测模式确定为当前块的帧内预测模式。
[0193]当前块可允许的帧内预测模式可由一种以上的非定向模式和多个定向模式构成。
[0194]—个以上的非定向模式可以为双通道模式和/或平面(planar)模式。并且,在双通道模式和平面模式中的一种可自适应地存在于上述可允许的帧内预测模式集。
[0195]为此,图像头部或切片头部可包含特指上述可允许的帧内预测模式集所包括的非定向模式的信息。
[0196]接着,为了生成帧内预测块,帧内预测部230从图像存储部260读取参照像素,并判断是否存在不可用的参照像素。
[0197]可根据是否存在用于通过适用当前块的被译码的帧内预测模式来生成帧内预测块的参照像素执行上述判断。
[0198]接着,在有必要生成参照像素的情况下,帧内预测部230利用预先复原的可用的参照像素生成处于不可用的位置的参照像素。
[0199]对不可用的参照像素的定义及参照像素的生成方法与在图1的帧内预测部150中的工作相同。但是,也可根据当前块的被译码的帧内预测模式,选择性地复原用于生成帧内预测块的参照像素。
[0200]*接着,为了生成预测块,帧内预测部230判断滤波器是否适用于参照像素。即,为了生成当前块的帧内预测块,帧内预测部230基于上述被译码的帧内预测模式及当前预测块的大小确定是否对参照像素进行滤波。[0201 ]块的尺寸越大,块效应的问题越大,因此,块的大小越大,可增加对参照像素进行滤波的预测模式的数量。但是,在块的大小大于规定大小的情况下,可将块看成平坦的区域,从而,为了减少复杂程度而有可能不对参照像素进行滤波。
[0202]在判断上述参照像素需要适用滤波器的情况下,利用滤波器对上述参照像素进行滤波。
[0203]根据上述参照像素之间的段差的差异程度,可自适应地适用两个以上的滤波器。 优选地,上述滤波器的滤波系数相对称。
[0204]并且,可根据当前块的大小自适应地适用上述两个以上的滤波器。即,在适用滤波器的情况下,对尺寸较小的块适用带宽较窄的滤波器,对尺寸较大的块适用带宽较宽的滤波器。
[0205]在双通道模式的情况下,以参照像素的平均值生成预测块,因此无需适用滤波器。 即,若适用滤波器,仅增加没必要的计算量。
[0206]并且,在影像沿着垂直方向存在相关性(correlat1n)的垂直模式中无需对参照像素适用滤波器。在影像沿着水平方向存在相关性的水平模式中也无需适用滤波器。
[0207]如上所述,滤波器是否适用与当前块的帧内预测模式存在相关性,因此,可基于当前块的帧内预测模式及预测块的大小自适应地对参照像素进行滤波。
[0208]接着,根据上述复原的帧内预测模式,利用上述参照像素或上述经过滤波的参照像素生成预测块。上述预测块的生成与编码器中的工作相同,因此将省略对其的说明。在平面模式的情况下,上述预测块的生成也与编码器中的工作相同,因此将省略对其的说明。
[0209]接着,判断是否对所生成的上述预测块进行滤波。可利用包含在切片头部或编码单元头部的信息判断是否进行上述滤波。并且,也可根据当前块的帧内预测模式判断是否进行上述滤波。
[0210]在判断为需对所生成的上述预测块进行滤波的情况下,对所生成的预测块进行滤波。具体地,通过对利用与当前块相邻的可用参照像素而生成的预测块的特定位置的像素进行滤波,生成新的像素。
[0211]上述方法可同样适用于生成预测块时。例如,在双通道模式中,对预测像素中的与参照像素相接触的预测像素的滤波通过利用与上述预测像素相接触的参照像素实现。
[0212]因此,根据预测像素的位置,利用一个或两个参照像素对预测像素进行滤波。在双通道模式中的对预测像素的滤波可适用于所有大小的预测块。在垂直模式中,与预测块的预测像素中的左侧参照像素相接的预测像素可利用除用于生成上述预测块的上侧像素之外的参照像素进行改变。
[0213]同样,在水平模式中,与所生成的预测像素中的上侧参照像素相接的预测像素可利用除用于生成上述预测块的左侧像素之外的参照像素进行改变。
[0214]当前块利用通过如上所述的方式复原的当前块的预测块和经过译码的当前的块的残差块复原。
[0215]本发明一实施例的视频比特流为用于存储一个图像中的被编码的数据的单位,上述视频比特流可包括参数集(PS,parameter sets)和切片数据。
[0216]参数集被分为图像参数集(以下,称之为图像参数集(PPS))和序列参数集(以下, 称之为序列参数集(SPS)),上述图像参数集为相当于各个图像的头部的数据。上述图像参数集和序列参数集可包含用于使各个编码初始化的初始化信息。[〇217] 序列参数集可以为用于对以随机接入单元(RAU,Random accesse unit)编码的所有图像进行译码的共同参照信息,上述序列参数集包含简介、可用作参照用的图像的最大数量及图像大小等,上述序列参数集可呈如图6及图7所示的形态。
[0218]作为用于对以随机接入单元编码的各个图像进行译码的参照信息,上述图像参数集包括可变长度编码方法的种类、量化步骤的初始值及多个参照图像,上述图像参数集可呈如图8及图9所示的形态。
[0219]另一方面,在以切片为单位对切片头部编码时,切片头部包含对相应切片的信息, 上述切片头部可呈如图10至图12所示的形态。[〇22〇]以下,详细说明利用多个处理单元进行如上所述的视频编码及译码处理的结构。 [〇221]根据本发明的一实施例,视频处理装置可包括:影像中央处理单元,与主机进行通信,从上述主机输入的视频数据分析参数信息或切片头部信息;以及多个影像处理部,通过上述影像中央处理单元的控制,根据所分析的上述信息对视频进行处理,上述多个影像处理部可包括:第一处理单元,分别与上述影像中央处理单元进行通信,由此对上述视频数据执行熵编码;以及第二处理单元,以编码单元对执行熵编码的上述视频数据进行处理。
[0222]其中,上述参数信息可包括视频参数集(VPS,Video Parameter Set)、序列参数集及图像参数集信息。
[0223]并且,上述第一处理单元可导出编码树单元、编码单元、预测单元、变换单元参数信息,并向上述第二处理单元传输。
[0224]而且,上述第二处理单元可按编码单元对执行熵编码的上述视频数据执行转换/ 量化(TQ,Transform/Quantizat1n)、帧内预测(Intra-predict1n)、帧间预测(Inter-predict1n)、环路滤波(LF,Loop Filtering)、内存压缩(Memory compress1n)中的至少一个。[〇225] 其中,视频处理装置可以为后述的视频处理单元300(VPU,Video Processing Unit),影像中央处理单元可以为后述的影像中央处理单元310(V-CPU,video central processing unit),影像处理部可以为后述的虚拟核心320(V-C0RE)。并且,第一影像处理部可以为后述的分支预测单元321(BPU),第二影像处理部可以为后述的视频编码专家322 (VCE)〇
[0226]而且,上述影像中央处理单元以图像为单位与上述主机进行通信,在执行并行处理的情况下,能够以基于编码树单元的光栅扫描(Raster scan)顺序与上述第一处理单元进行通信。例如,影像中央处理单元310能够以编码树单元的行(CTU row)为单位(CTU row) 与各个第一处理单元进行通信。
[0227]并且,根据本发明的实施例,视频处理装置还可包括预扫描(PRESCAN)控制器400,上述预扫描控制器通过对从主机输入的视频数据进行预扫描,生成以预扫描段为单位的预扫描信息。
[0228]其中,上述预扫描模块400可通过预扫描,根据编码树单元的位置,以预扫描段为单位分割视频数据的比特流分。并且,预扫描模块400可执行比特流分析及简化的熵解码 (例如,仅抽取预扫描信息的基于上下文的自适应二进制算术编码处理),生成并存储与视频数据被分割的位置相对应的预扫描信息。
[0229]借助预扫描模块400存储的预扫描信息可以与按预扫描段单位分割的位置相对应,上述预扫描信息可包含基于上下文的自适应二进制算术编码引擎信息、上下文信息、比特流补偿信息、编码树单元位置信息、准峰值(Qp)信息及追加信息中的至少一种。例如,追加信息可包含错误信息或错误指令信息中的至少一种。
[0230]并且,预扫描段单位可意味着为了以编码树单元的行为单位处理片或切片而分割视频数据的单位。因此,可根据各个片/切片起始的位置、片/切片之间的边界位置、或在各个编码树单元的行中的第一个编码树单元与切片的边界位置,确定预扫描段单位。对于与预扫描段单位相对应的分割位置的信息可通过编码树单元位置信息及比特流补偿信息来表不。[〇231]预扫描模块400提供如上所述的以预扫描段为单位分割视频数据的功能,由此影像中央处理单元310不依赖于片/切片单位,并可简单按照光栅扫描顺序生成及排列任务。 并且,即使在影像中央处理单元310以编码树单元的行为单位分配任务,各个虚拟核心320 也可基于预先存储的预扫描信息执行不间断解码。并且,可去除基于片/切片大小差异的各个处理单元之间的处理量不均衡,并可抑制处理量不均衡所导致的带宽效率减少。[〇232]另一方面,影像中央处理单元310可控制如上所述的预扫描模块400的工作与虚拟核心320之间的同步,从而可控制在帧或图像级别上的工作时间调整及输出。
[0233]而且,考虑预扫描模块400的工作时间,影像中央处理单元310能够以非同步 (asynchrouous)的方式控制图像译码起始时间和图像译码结束时间。非同步控制方法可以为在第一图像的译码起始时间和第一图像的译码结束时间之间分配作为下一个图像的第二图像的译码起始时间的方法。在此情况下,可隐藏(hiding)向各个虚拟核心追加任务的开销,因此可提高处理性能。
[0234]非同步控制方法可以为在第一图像的译码起始时间和第一图像的译码结束时间中间分配作为下一个图像的第二图像的译码起始时间的方法。在此情况下,可隐藏向各个虚拟核心追加任务的开销,因此可提高处理性能。
[0235]并且,作为其它非同步控制方法,可以对以使针对第一图像的预扫描时间和任务分配(重新排序)时间相重叠的方式控制的方法进行例示。在此情况下,若在编码树单元中对一行(row)进行预扫描处理,贝lj影像中央处理单元310能够以立即分配与上述行相对应的任务来使各虚拟核心320执行解码的方式进行控制。在此情况下,可降低时延(latency),从而可有效地使用于网络显示器等。
[0236]尤其,当待处理的图像包含片且其片被分离为列(Column)时,普通解码的时延可能很长。但是,根据本发明的实施例,由于相对于解码快速实现预扫描,因此在整个译码过程中可获得降低时延的效果。
[0237]并且,另一非同步控制方法可以为在执行对第一图像的预扫描及任务分配之后,使各个虚拟核心320的解码时间与之后的第二图像的译码起始时间重叠的方法。例如,影像中央处理单元310可在第一图像的译码结束时间之前分配第二图像的译码起始时间(可与扫描起始时间相同)。在此情况下,影像中央处理单元310为了防止性能损失而限制实例变更。例如,影像中央处理单元310仅可在从发生对第一图像的译码结束(pindone)至对作为之后图像的第二图像的译码起始(pinrun)之前为止允许实例变更。
[0238]另一方面,其中,视频处理装置均可包括视频编码装置及视频译码装置。如图1至图4所示,视频译码装置和视频编码装置可体现为相互分别执行相反过程的装置,以下,为了便于说明,以视频译码装置为例进行说明。但是,视频处理装置并不局限于此,视频处理装置也可体现为执行后述视频译码装置的相反过程的视频编码装置。
[0239]图13为示出本发明一实施例的视频译码装置的层状结构(layer structure)的图。参照图13,视频译码装置可包括执行视频译码功能的视频处理单元300,视频处理单元 300可包括影像中央处理单元310、分支预测单元321及视频编码专家322。其中,可通过分支预测单元321和视频编码专家322相结合,形成虚拟核心320。并且,视频处理单元300还可包括后述的预扫描模块400。[〇24〇]其中,优选地,本发明一实施例的视频处理单元300可包括一个影像中央处理单元 310及多个虚拟核心320(以下,称之为多虚拟核心)。但是,视频处理单元并不局限于此,可根据视频处理单元300的体现形态,上述影像中央处理单元310和虚拟核心320的数量各不相同。[〇241 ] 影像中央处理单元310控制视频处理单元300的整体工作。尤其,影像中央处理单元310可在所接收的比特流中分析视频参数集、序列参数集、图像参数集及切片头部。而且, 影像中央处理单元310可基于所分析的信息控制视频处理单元300的整体工作。
[0242] 作为一例,影像中央处理单元310可向预扫描模块400传输视频比特流,由此使预扫描模块400存储上述预扫描信息。并且,影像中央处理单元310可基于所分析的信息生成各个虚拟核心320所要处理的任务。在适用本发明一实施例的波前并行处理或虚拟波前并行处理的情况下,各个任务可以与视频比特流的以编码树单元的行为单位的数据相对应。 [〇243]并且,影像中央处理单元310可基于所分析的信息判断所要用于数据并行处理的虚拟核心320的数量。而且,根据判断结果,若判断为数据并行处理需要多个虚拟核心320, 则影像中央处理单元310可确定各个虚拟核心320需在多虚拟核心320进行处理的区域。
[0244]并且,影像中央处理单元310可通过任务确定对所要向各个虚拟核心320分配的区域的比特流的起始位置(entry points)。
[0245]并且,影像中央处理单元310可向多虚拟核心320分配因使用多虚拟核心320进行译码而产生的一个图像内的边界区域。
[0246]其中,影像中央处理单元310能够以图像为单元与应用程序编程接口(API, Applicat1n Programing Interface)进行通信,并以编码树单元的行为单位与虚拟核心 320进行通信。而且,影像中央处理单元310也能够以片/切片为单位进行通信。
[0247]根据影像中央处理单元310的控制,虚拟核心320执行译码处理、边界处理。作为一例,根据影像中央处理单元310的控制,虚拟核心320可对所分配到的区域进行译码处理。并且,根据影像中央处理单元310的控制,虚拟核心320可对所分配到的边界区域执行边界处理(boundary processing)。
[0248] 其中,虚拟核心320可包括分支预测单元321及视频编码专家322。
[0249]分支预测单元321对所分配到的区域(以编码树单元的行为单位、以片或切片为单位)的数据进行熵解码。即,分支预测单元321可执行上述熵译码部210的部分功能,并且,分支预测单元321可导出编码树单元、编码单元、预测单元、转换单元级别的参数。而且,分支预测单元321可控制视频编码专家322。[〇25〇]其中,分支预测单元321能够以编码树单元的行为单位、以片或切片为单位与影像中央处理单元310进行通信,并能够以编码树单元为单位与视频编码专家322进行通信。
[0251]视频编码专家322可接收由分支预测单元321导出的参数,执行转换/量化、帧内预测、帧间预测、环路滤波、内存压缩。即,视频编码专家322可执行上述反量化/反变换部220、 去块滤波器250、帧内预测部230、移动补偿预测部240的功能。
[0252]其中,视频编码专家3 22可通过基于编码树单元的流水线((:1'1]4&86(1 pipelining)对所分配到的区域进行数据处理。[〇253] 更具体地,影像中央处理单元310可执行与主机处理器(Host Processor)进行连接工作。并且,影像中央处理单元310可在所接收的视频比特流中分析视频参数集、序列参数集、图像参数集、切片头部。[〇254]而且,影像中央处理单元310可向预扫描模块400传递所接收的视频比特流,使预扫描信息存储于单独的存储器。
[0255]而且,影像中央处理单元310可利用所分析的信息传递用于在虚拟核心320中进行译码的必要信息。其中,必要信息可包括“图像参数数据结构(Picture parameter data structure)”及“切片控制数据结构(Slice control data structure)”。
[0256]“图像参数数据结构”可包含如下信息。作为一例,上述图像参数数据结构包含序列/图像头部(Sequence/picture header)所包含的信息(例如,图像尺寸(picture size)、 比例表(scaling list)、编码树单元、最小/最大编码单元尺寸(min/max CU size)、最小/ 最大转换单元尺寸(min/max TU size)等)、在进行帧解码时所需的缓冲器的位置(地址) 等。
[0257]如上所述,在对一个图像进行译码的过程中,可设定一次图像参数数据结构。
[0258]切片控制数据结构可包含如下信息。作为一例,上述切片控制数据结构可包含切片头部(Slice header)所包含的信息(例如,切片类型(slice type)、片/切片区域信息、参照图像列表(reference picture list)、加权预测参数(weighted predict1n parameter)等)。
[0259]如上所述,可在改变切片时设定切片控制数据结构。虚拟核心320的处理器间通信寄存器(inter-processor communicat1n registers)或在外部存储器的切片参数缓冲器 (slice parameter buffer at external memory)可存储N个切片控制数据结构,只要不是处于饱和(full)状态,即使并不是与当前正在执行译码的切片相对应的数据结构,也可预先存储上述切片控制数据结构。其中,可根据在进行单元处理时,将由虚拟核心320向影像中央处理单元310提醒完成处理的时间点设定在视频编码专家322的管线(pipe)被完全刷新(flush)的时间点之后(N=l),还是设定在当前处理中的段和下一个段之间维持流水线 0>1)来确定1[〇26〇]其中,从影像中央处理单元310向虚拟核心320传递的信息可通过虚拟核心320的处理器间通信寄存器传递。处理器间通信寄存器可体现为规定大小的寄存器阵列 (register array)(文件,file),或者可体现为外部存储器(external memory)。可在处理器间通信寄存器体现为外部存储器的情况下,影像中央处理单元310将信息存储于外部存储器,分支预测单元321从外部存储器读取信息。
[0261]另一方面,为了在即使虚拟核心320可存储的切片控制数据结构的数量为1(或任何数量(any number))个的情况下也防止段和段之间的虚拟核心320长时间处于闲置 (idle)状态,影像中央处理单元310需持续执行切片头部译码及参数生成(parameter generat1n)等。
[0262]另一方面,在一个切片包括多个切片,借助多虚拟核心320对切片进行并行处理的情况下,影像中央处理单元310可向多虚拟核心320传输相同的切片控制数据结构。[〇263] 并且,在虚拟核心320中发生异常(except1n)时,影像中央处理单元310可处理上述异常。作为一例,当在影像中央处理单元310对参数集进行译码的过程中检测到错误时、 当在虚拟核心320的分支预测单元321对切片数据(slice data)进行译码的过程中检测到错误时、当对帧进行译码的过程中超出指定译码时间时(例如,因影像处理单元300内部的未知错误及系统总线的瘫痪而引起影像中央处理单元310的周边设备(peripheral)及虚拟核心320停止运行(stall)的情况),影像中央处理单元310可对上述问题执行解决方案。
[0264]并且,在影像处理单元300对帧完成译码时,影像中央处理单元310可向应用程序编程接口传输完成报告。
[0265]尤其,为了对多虚拟核心320的数据进行并行处理,影像中央处理单元310可使多虚拟核心320同步。尤其,可借助影像中央处理单元的结构及工作进行虚拟波前并行处理, 对此将在后述中进行说明。[〇266]影像中央处理单元310可基于所分析的信息,判断所要用于数据并行处理的虚拟核心320的数量。而且,根据判断结果,若判断为数据并行处理需要多个虚拟核心320,则影像中央处理单元310可确定各个虚拟核心320需在多虚拟核心320进行处理的区域。
[0267]并且,影像中央处理单元310可通过任务确定对所要向各个虚拟核心320分配的区域的比特流的起始位置。
[0268]并且,影像中央处理单元310可向多虚拟核心320分配因使用多虚拟核心320进行译码而产生的一个图像内的边界区域。
[0269]另一方面,分支预测单元321可对所分配到的区域的数据进行熵解码。由于借助影像中央处理单元310对切片头部进行了解码,通过图像参数数据结构和切片控制数据结构接收了所需的全部信息,因而分支预测单元321可不对切片头部进行解码。
[0270]并且,分支预测单元321可导出编码树单元、编码单元、预测单元、转换单元级别的参数。
[0271]并且,分支预测单元321可向视频编码专家322传输所导出的参数。
[0272]其中,分支预测单元321和视频编码专家322可通过先进先出法(FIFO)传递各个块共同使用的信息(图像尺寸、段补偿、段尺寸)和直接存储存取控制器(DMAC)中的除数据源、 目标地址等之外的用于译码处理的编码树单元参数、编码单元参数、预测单元参数、转换单元参数、系数、参照像素数据。但是,段级别(segment level)的参数可设置于视频编码专家 322的内部寄存器(internal register),而并不采用先进先出法。
[0273]并且,分支预测单元321可执行控制视频编码专家322的视频编码专家控制器(VCE controller)的功能。视频编码专家控制器输出可由分支预测单元321通过设置寄存器来控制的图像初始化(picture_init)、段初始化信号(segment_init signal)、软件复位 (software reset),视频编码专家322的各个子块可将上述信号用于执行控制。
[0274]若分支预测单元321在视频编码专家控制器中设定上述涉及的图像级别及段级别 (picture/segment-level parameter)后,发出段运行(segment run)指令(byregister setting),则直到结束对所设定的段(segment)的解码为止,在未与分支预测单元321进行通信的情况下,可参照编码单元系数先进先出(CU parameter FIFO)的充足度和各子块的状态信息来控制解码过程。
[0275]并且,当在分支预测单元321发生异常时,分支预测单元321可对上述异常进行处理,当对切片/段完成处理时,可向影像中央处理单元310进行报告。
[0276]视频编码专家组322可接收从分支预测单元321导出的参数,执行转换/量化、帧内预测、帧间预测、环路滤波、内存压缩。
[0277]其中,视频编码专家组322可通过基于编码树单元的流水线对所分配到的区域进行数据处理。
[0278]如上所述,根据本发明的多种实施例,可通过使头部分析和数据处理过程分离,使分离的数据处理过程形成流水线,从而可提供可对多虚拟核心执行作业分配及同步等的影像中央处理单元310。[〇279]图14为示出本发明一实施例的用于影像中央处理单元310的波前并行处理视频译码的虚拟核心的同步控制的时序图。[〇28〇]参照图14,本发明实施例的视频译码装置的影像中央处理单元310可基于从比特流分析的头部信息和在预扫描模块400中预扫描的信息,生成用于并行处理的多个任务。而且,可向各个虚拟核心320依次分配多个任务。
[0281]各个虚拟核心320可根据通过上述分支预测单元321和视频编码专家322的工作进行分析的上述头部信息及预扫描信息执行译码。
[0282]如图14所示,影像中央处理单元310可按排为单位分割各个编码树单元,可生成对 1个?N个的虚拟核心320的多个任务,可向各个虚拟核心320传递上述任务。
[0283]更加具体地,例如,虚拟核心320#0从影像中央处理单元310接收第一个编码树单元行,向相邻块(NB,Ne ighbor b 1 ock)缓冲器传递当前正在处理中的编码树块(CTB)的译码过程中所生成的周边数据(Neighbor data)。为此,分支预测单元321和视频编码专家组322 可分别从当前正在处理中的编码树块生成用于对各个周边块进行译码的信息,并向相邻块缓冲器传递。
[0284]在向相邻块缓冲器传递完数据的情况下,分支预测单元321或视频编码专家322可分别向虚拟核心320#1传递相应编码树块的位置信息。
[0285]并且,在虚拟核心320#1中,可从影像预测单元310接收第二个编码树单元行(2nd CTU row),并按编码树块进行处理。尤其,为了执行波前并行处理,虚拟核心320#1可从相邻块缓冲器接收在虚拟核心320#0中已处理的编码树块的译码数据。
[0286]而且,虚拟核心320#1可基于从虚拟核心320#0接收的编码树块的位置信息和存储于相邻块缓冲器的已处理的编码树块译码信息,可按编码树块单元对第二个编码树单元排进行译码。
[0287]同样,虚拟核心320#1可向相邻块缓冲器传递在当前正在处理中的编码树块的译码过程中生成的周边数据。在向相邻块缓冲器传递完数据的情况下,虚拟核心320#1的分支预测单元321或视频编码专家322可分别向虚拟核心320#2传递相应编码树块的位置信息。 [〇288]如上所述的过程根据虚拟核心320的数量依次进行至#N,以波前并行处理方式对整体编码树单元的译码过程进行并行处理,从而可有效地进行上述过程。在完成对与图像相对应的整体编码树单元的译码的情况下,影像中央处理单元310可通过应用程序编程接口向主机处理器输出经过译码的图像的影像数据。[〇289]如上所述的影像中央处理单元310可对所有比特流执行基于使用波前并行处理的多核并行译码。在此情况下,影像中央处理单元310可通过控制达到始终在对比特流执行预扫描之后使各个虚拟核心320执行译码。并且,影像中央处理单元310可通过分析影像比特流的头部来确定是否执行预扫描。
[0290]例如,在基于在图像参数集所分析的特定语法元素可知通过波前并行处理进行编码的情况下,影像中央处理单元310可省略执行预扫描。在此情况下,即使仅利用从比特流基本分析而得的参数信息,影像中央处理单元310也可通过波前并行处理方式生成与各个虚拟核心320相对应的任务。
[0291]而且,在影像中央处理单元310基于在图像参数集中分析的语法元素判断为执行了基于利用片/切片单位的编码的情况下,影像中央处理单元310通过控制预扫描模块400 来执行预扫描,各个虚拟核心320可基于预扫描信息来执行波前并行处理解码。
[0292]以下,更具体地说明用于根据如上所述的影像中央处理单元310的控制来执行预扫描的预扫描模块400。
[0293]图15为用于说明本发明一实施例的预扫描模块400的框图。[〇294]本发明实施例的预扫描模块400可包括预扫描控制器410、存储部420及比特流分析部430。
[0295]根据影像中央处理单元310的控制,预扫描控制器410对预扫描模块400执行整体控制。预扫描控制器410可执行按影像处理单元接收比特流,基于通过比特流分析部430分析的信息生成预扫描信息,并将所生成的预扫描信息存储于存储部420的工作。由预扫描控制器410接收并处理的影像处理单元能够以图像或帧作为单位。
[0296]而且,比特流分析部430可接收以帧为单位的比特流,分析用于构成预扫描信息的基础信息。
[0297]为了构成预扫描信息,比特流分析部430可抽取与预扫描对象帧相对应的比特流的头部信息,可从头部信息分析帧的片/切片信息。并且,比特流分析部430可从比特流的头部获得预扫描对象帧的编码树单元结构信息。[〇298]尤其,比特流分析部430可分析构成编码树单元的整体帧中的与由预扫描控制器 410指定的特定块相对应的位置信息、熵编码器的引擎信息、上下文信息及准峰值信息中的至少一种。位置信息可包含与特定比特相对应的补偿信息。
[0299]为此,比特流分析部430可包括至少一个熵编码器。虽然未图示熵编码器,但例如, 上述比特流分析部430可包括预扫描用基于上下文的自适应二进制算术编码编码器。
[0300]更具体地,比特流分析部430的预扫描用基于上下文的自适应二进制算术编码编码器执行基于上下文的自适应二进制算术编码过程,可执行抽取预扫描所需的引擎信息、 上下文信息及准峰值信息中的至少一种的工作。预扫描用基于上下文的自适应二进制算术编码编码器可与在虚拟核心320中用于对影像进行译码而所包括的熵编码器(基于上下文的自适应二进制算术编码处理器)相异。[〇3〇1]因此,比特流分析部430的预扫描用基于上下文的自适应二进制算术编码编码器可以不执行除抽取预扫描信息之外的其他工作,例如,可以不执行缓冲或传递为了与用于译码的其他处理器相联动而被解码的数据的工作。由此,用于使比特流分析部430执行预扫描的基于上下文的自适应二进制算术编码熵解码速度可充分快过用于使虚拟核心320执行影像译码的基于上下文的自适应二进制算术编码熵解码速度。[〇3〇2]另一方面,如上所述,预扫描控制器410基于从比特流分析部430抽取的基础信息生成预扫描信息,并可将上述预扫描信息存储于存储部420。
[0303]所存储的预扫描信息可包含使虚拟核心320不间断执行以编码树单元的行为单位的影像译码的必要信息。
[0304]尤其,在依次对特定编码树单元行进行译码的过程中发生片/切片边界的情况下, 边界线的右侧块与另一片/切片相对应,从而导致无法通过现有的方式进行译码。
[0305]因此,预扫描信息可包含编码树单元所包括的片/切片的边界位置信息(补偿信息)、与边界相对应的块的引擎信息(基于上下文的自适应二进制算术编码引擎信息等)、与边界相对应的块的上下文信息及与边界相对应的块的准峰值信息中的至少一种。
[0306]并且,在片/切片的起始点,仅有引擎初始化信息也可进行译码,因进行初始化的时间小于存储器访问时间,因此可无需单独存储上下文信息等。由此,在编码树单元行包括片/切片的起始块(start point)的情况下,预扫描信息可仅包含与上述起始块相对应的位置信息及引擎初始化信息。
[0307]另一方面,为了执行波前并行处理,虚拟核心320需能够以编码树单元的行为单位执行译码处理,因此,预扫描信息可包含与编码树单元行的起始块相对应的位置信息、与边界相对应的块的引擎信息(基于上下文的自适应二进制算术编码引擎信息等)、与边界相对应的块的上下文信息及与边界相对应的块的准峰值信息中的至少一种。更具体地,所存储的信息可以为基于上下文的自适应二进制算术编码引擎状态(CABAC engine status)、概率上下文(probability context)、比特流补偿(bitstream offset)、编码树单元位置信息 (CTU posit1n info)、准峰值等。
[0308]并且,预扫描信息可包含追加信息。例如,追加信息可包含错误信息或错误指令信息。由此,影像中央处理单元310或虚拟核心320可基于预扫描信息预先判断是否在进行译码时发生错误,并可预先执行与之相对应的处理。[〇3〇9]并且,预扫描控制器410通过上下文索引区分预扫描信息,去除重复的信息,可有效地将预扫描信息存储于存储部420。
[0310]例如,预扫描控制器410可将编码树单元以片/切片的边界块及编码树单元行的起始块为基准分割为多个预扫描段块,并可在各个预扫描段块分配上下文索引。[〇311]而且,预扫描控制器410可在存储部420存储上下文索引和与上述预扫描段块相对应的基于上下文的自适应二进制算术编码引擎信息、上下文信息、补偿信息及准峰值至信息等并有效地进行管理。其中,可根据是否存在上下文索引信息,暗示引擎初始化信息。
[0312]另一方面,存储部420可包括内部缓冲器及外部存储器。内部缓冲器可临时存储与之前所说明的预扫描段块相对应的上下文信息。内部缓冲器可包括用于存储与预扫描段块相对应的上下文信息的一个以上的缓冲器。
[0313]若在内部缓冲器存储与规定数量以上的预扫描段块相对应的上下文信息,则所存储的数据可通过直接存储存取器(DMA)向外部存储器传递。并且,存储部420可通过与影像中央处理单元310及虚拟核心320进行通信传输预扫描信息。预扫描段块数据可通过输入输出文件(F10)的形式以软件的方式管理。[〇314]另一方面,预扫描信息的一部分可在影像中央处理单元310用于调度任务,可在虚拟核心320中用于片/切片边界或编码树单元行的影像译码。
[0315]通过向各个虚拟核心320提供如上所述的预扫描信息,由此可使虚拟核心320不间断地在片/切片边界执行译码。由此,各个虚拟核心320能够以编码树单元的行为单位执行译码。[〇316]并且,影像中央处理单元310可基于预扫描信息简单生成光栅扫描顺序的以编码树单元行的为单位的任务,可依次向虚拟核心320分配以编码树单元的行为单位的任务。因此,可减少任务生成及排列时间,而且不必考虑片/切片的大小所产生的影响,从而可减少对虚拟核心的数量及顺序分配的开销。
[0317]并且,各个虚拟核心320可仅以编码树单元的行为单位对数据进行处理,由此不仅可减少影像中央处理单元310和虚拟核心320之间、影像中央处理单元310和主机处理器之间的输入及输出延迟,虚拟核心320可将影像比特流识别为不存在片/切片结构的波前并行处理流,因而可追加去除不必要的作业,从而可有效地执行波前并行处理。[〇318]图16为用于更具体地说明根据本发明一实施例的预扫描模块预扫描的信息的框图。
[0319]参照图16,如上所述,预扫描模块400能够以与构成编码树单元的块中的特定位置相对应的方式存储预扫描信息。预扫描信息的存储可意味着存储全部引擎信息及上下文信息,或者还可意味着仅存储初始化信息。[〇32〇]如图16所示,为了处理效率,在片/切片起始的情况下,预扫描模块400可仅存储与起始点相对应的初始化信息(例如,基于上下文的自适应二进制算术编码初始化(C A B A C INIT)信息)。在此情况下,所存储的信息可以为与起始点相对应的比特流内的位置信息(编码树单元地址(CTU address)信息、网络抽象层地址(NAL address)信息或补偿信息)及与预扫描段相对应的上下文索引。
[0321]并且,预扫描模块400可存储与片/切片的边界的右侧块相对应的预扫描信息。在此情况下,预扫描信息均可包含基于上下文的自适应二进制算术编码引擎信息、上下文信息、准峰值信息及其他之后块译码所需的相关信息。在此情况下,所存储的信息可包含片/ 切片的边界的右侧块的比特流内的位置信息(编码树单元地址信息、网络抽象层地址信息或补偿信息)。
[0322]如上所述的预扫描信息的存储形态可呈如下结构。
[0323]typedef struct
[0324]{uintl6_t start_ctu_addr_x;
[0325]uintl6_t start_ctu_addr_y;
[0326]uintl6_tend_ctu_addr_x;
[0327]uintl6_tend_ctu_addr_y;
[0328]uint32_tstart_nal_addr;
[0329]uint32_tend_nal_addr;
[0330]uint8_t rbsp_offset;
[0331]uint8_t reserved;
[0332]intl6_t context_idx;}
[0333]segment_t;
[0334]尤其,根据上述结构,在预扫描段的结束(end)块被更新的过程中,上下文索引 (context_idx)也可被一同更新。此时,预扫描段包括编码树单元行的第一个块,在上述第一个块与独立切片的起始点(第一个编码树块)或切片的起始点(第一个编码树块)相对应的情况下,上下文索引可具有无效的(invalid)值。
[0335]因此,根据如上所述的本发明实施例的预扫描信息结构,若上下文索引不是(在片/切片内)行的第一个编码树块,则上下文索引无法具有有效(valid)值,可暗示是否进行初始化。
[0336]根据本实施例,切片或片的第一次编码树块还可以仅以位流的信息对上下文进行初始化,因此无需进行额外的上下文的备份,并对指示所备份的上下文索引进行无效处理, 从而可提高处理效率。
[0337]图17为用于总体说明本发明一实施例的预扫描模块400的工作的流程图。
[0338]首先,影像中央处理单元310接收影像比特流,分析头部(步骤S101),判断上述比特流是否为需进行预扫描的比特流(步骤S103)。[〇339]如上所述,影像中央处理单元310可基于所分析的头部,判断比特流是否已通过波前并行处理方式预先进行编码。例如,影像中央处理单元310可从图像参数集分析表示是否存在片/切片的标志,从而判断上述比特流是否为已通过波前并行处理方式进行编码的比特流。
[0340]在无需预扫描的情况下,影像中央处理单元310与虚拟核心320联动,执行现有方式的译码(步骤S115)。
[0341]另一方面,在比特流需要进行预扫描的情况下,根据影像中央处理单元310的控制,预扫描模块400接收影像比特流(步骤S105),并分析用于进行预扫描的比特流(步骤 S107)。如上所述,预扫描控制器410可通过控制比特流分析部430,分析用于预扫描的基础信息。预扫描模块400可通过部分简化的基于上下文的自适应二进制算术编码过程分析用于进行预扫描的编码树单元结构信息、基于上下文的自适应二进制算术编码引擎信息、上下文信息等。[〇342]之后,预扫描模块400以与存储预扫描信息的块相对应的方式生成预扫描信息(步骤S111),并将上述预扫描信息存储于存储部420(步骤S 113)。
[0343]如上所述,预扫描信息能够以与编码树单元行的第一个块、片/切片边界的右侧块相对应的方式存储。根据情况,所存储的预扫描信息可包含块的位置信息、引擎初始化信息、引擎信息、上下文信息、准峰值信息中的至少一种。
[0344]图18至图21为用于示出借助本发明实施例的预扫描模块的工作而生成的预扫描信息的图。
[0345]基于如上所述的预扫描信息的结构,在预扫描模块400中,将编码树单元划分为以上下文索引指定的各个预扫描段,上述预扫描模块400可存储各个预扫描段的预扫描信息。 预扫描段意味着借助片/切片的边界及编码树单元行的边界分割的块的集合。
[0346]尤其,因存储部420的内部缓冲器的容量有限,因此,在所存储的预扫描段达到特定数量以上的情况下,预扫描模块400可通过直接存储存取工作向外部存储器传递存储于缓冲器的信息。
[0347]并且,若完成预扫描,则预扫描模块400可向影像中央处理单元310—同输出预扫描完成消息和预扫描段数量等。
[0348]首先,图18示出作为预扫描对象的帧的编码树单元由三个切片构成的情况。[〇349]第一个切片可与段#0相对应,第二个切片可与段#1相对应,第三个切片可与段#2 相对应。在本实施例中,编码树单元块仅由切片构成,但在由片或片/切片构成的情况下,也适用相同或类似的工作,这对本发明所属技术领域的普通技术人员来说是显而易见的。 [〇35〇]图19示出抽取段#0的预扫描信息并进行存储的过程。[〇351]如图19所示,首先,预扫描模块400可存储与段#0的起始块相对应的位置信息和引擎初始化信息,预扫描模块400能够以与预扫描段#0相对应的方式存储与最后块相对应的位置信息。[〇352]接着,图20示出抽取段#1的预扫描信息并进行存储的过程。[〇353]如图20所示,首先,预扫描块400存储与段#1的切片的起始块相对应的位置信息和引擎初始化信息,预扫描模块400能够以与预扫描段#1相对应的方式存储与编码树单元行# 〇的最后块相对应的位置信息。[〇354]接着,预扫描模块400能够以与预扫描段#2相对应的方式存储与编码树单元行#1 的起始块相对应的位置信息、与上述块相对应的引擎信息、上下文信息、准峰值信息及与编码树单元行#1的最后块相对应的位置信息。
[0355]接着,预扫描模块400能够以与预扫描段#3相对应的方式存储与编码树单元行#2 的起始块相对应的位置信息、与上述块相对应的引擎信息、上下文信息、准峰值信息及与编码树单元行#2的最后块相对应的位置信息。
[0356]作为之后步骤,图21示出抽取段#2的预扫描信息并进行存储的过程。
[0357]如图21所示,首先,预扫描块400存储与段#2的切片的起始块相对应的位置信息和引擎初始化信息,预扫描模块400能够以与预扫描段#4相对应的方式存储与编码树单元行# 3的最后块相对应的位置信息。[〇358]接着,预扫描块400能够以与预扫描段#5相对应的方式存储与编码树单元行#4的起始块相对应的位置信息、与上述块相对应的引擎信息、上下文信息、准峰值信息及与编码树单元行#4的最后块相对应的位置信息。[〇359]接着,预扫描模块400能够以与预扫描段#6相对应的方式存储与编码树单元行#5 的起始块相对应的位置信息、与上述块相对应的引擎信息、上下文信息、准峰值信息及与编码树单元行#5的最后块相对应的位置信息。[〇36〇]接着,预扫描模块400能够以与预扫描段#7相对应的方式存储与编码树单元行#6 的起始块相对应的位置信息、与上述块相对应的引擎信息、上下文信息、准峰值信息及与编码树单元行#6的最后块相对应的位置信息。
[0361]另一方面,在上述预扫描执行过程中,当预扫描段为规定数量以上时,预扫描模块 400通过直接存储存取器(dma)向外部存储器输出预存储的信息,而且还可以执行释放内部缓冲器的工作。
[0362]图22为用于说明在本发明一实施例的影像译码装置由多核体现的情况下影像中央处理单元310(V_CPU)的工作的流程图。[〇363]首先,影像中央处理单元310接收影像比特流来分析头部(步骤S201),并判断是否为需要预扫描的比特流(步骤S203)。
[0364]如上所述,影像中央处理单元310可基于所分析的头部来判断影像比特流是否以波前并行处理方式被预编码。而且,在以波前并行处理方式被预编码的情况下,影像中央处理单元310可判断无需进行预扫描。
[0365]并且,例如,影像中央处理单元310可从图像参数集(PPS)对与是否存在片/切片的相关标志进行分析来确定是否需要预扫描。而且,当图像参数集的结构为entropy_coding_ 8711〇_61^1316_;^38 = 0时,影像中央处理单元310判断比特流未处于波前并行处理形式,从而可确定需要进行预扫描处理。[〇366]当无需预扫描时,影像中央处理单元310能够以与虚拟核心320连动的方式执行通过现有波前并行处理方式的解码(步骤S215)。
[0367]另一方面,当需要预扫描时,影像中央处理单元310通过控制预扫描模块400来存储预扫描信息(步骤S205),并且根据规定时间或规定数据单位判断预扫描是否结束(步骤 S207)。当预扫描未结束时,可重新执行步骤S205。
[0368]如上所述,预扫描控制器410可通过控制比特流分析部430来分析用于预扫描的基础信息。预扫描模块400可通过一些简化的自适应二进制算术编码(CABAC)处理,对用于预扫描的编码树单元结构信息、自适应二进制算术编码引擎信息、上下文信息等进行分析,预扫描模块400可与存储预扫描信息的块相对应地生成预扫描信息,并存储于存储部420。如上所述,预扫描信息能够以与编码树单元的行的第一个块、片/切片的边界的右侧块等相对应的方式存储。所存储的预扫描信息可根据不同的情况包含块的位置信息、引擎初始化信息、引擎信息、上下文信息、准峰值信息中的至少一种。[〇369]其中,影像中央处理单元310能够以可针对所有比特流实现波前并行处理形态的并行解码的方式体现。在此情况下,可省略上述判断是否需要预扫描的过程,但是,影像中央处理单元310针对预扫描模块400的工作进行的控制可能发生改变。
[0370]例如,在使用一个虚拟核心320的状态下,若在比特流内不存在片单元,则影像中央处理单元310仅通过分析头部信息也可以实现连续的解码,因此上述影像中央处理单元 310能够以省略预扫描模块400的自适应二进制算术编码的分析工作的方式进行控制。[〇371 ] 并且,例如,在使用多个虚拟核心320的状态下,由于比特流头部的entropy_sync_ enable = l,因而判断为通过波前并行处理方式实现编码,此时,由于影像中央处理单元310 仅通过分析头部信息也可实现连续的解码,因此上述影像中央处理单元310能够以省略预扫描模块400的自适应二进制算术编码的分析工作的方式进行控制。[〇372]以如上所述的方式设定的情况下,影像中央处理单元310可以仅通过改变预扫描模块400的工作控制来对所有比特流执行应用波前并行处理方式的解码。而且,在虚拟核心320中,与片/切片是否存在无关地,可以连续地对按编码树单元的光栅扫描顺序接收的编码树单元的行数据进行解码。[〇373] 为此,影像中央处理单元310执行针对预扫描的比特流的重新排序(re-ordering) (步骤S209),并生成与各虚拟核心320相对应的一个以上的任务(步骤S211)。
[0374]例如,在影像比特流具有片形式的情况下,可能需要按光栅扫描顺序对与预扫描段相对应的影像比特流进行重新排序的过程,上述预扫描段通过预扫描过程来生成。
[0375]为了按不同虚拟核心320的编码树单元的行单位分配被预扫描处理的影像比特流,并进行解码,影像中央处理单元310可以按光栅扫描顺序对比特流内的编码树单元数据进行重新排序。因预扫描模块400的存在,影像中央处理单元310可能没有必要区分片/切片。因此,影像中央处理单元310不需要排序过程,而按简单快速的光栅扫描顺序进行重新排序,并可以按编码树单元的行的单位顺序,生成用于对在各虚拟核心320中所要处理的数据进行分配的任务。
[0376] 影像中央处理单元310可确定在哪个虚拟核心320中处理各个编码树单元的行,并对时间及顺序进行调度。
[0377]而且,各虚拟核心320接收在影像中央处理单元310中生成的任务,并以与预扫描模块400连动的方式执行解码(步骤S213)。
[0378]例如,虚拟核心320可利用与借助预扫描模块400存储的预扫描段相对应的预扫描信息以波前并行处理形态执行并行解码。尤其,虚拟核心320根据预扫描模块400所提供的预扫描信息来执行解码处理,因此,即使改变处理实例也可防止损失。[〇379]图23至图25为用于说明本发明实施例的影像中央处理单元的调度控制的图。[〇38〇] 对于如上所述的影像中央处理单元310的任务调度工作,影像中央处理单元310可分别控制针对如上所述的预扫描步骤,重新排序步骤及各虚拟核心320的解码步骤的定时。
[0381]更具体地,根据一实施例,在第一虚拟核心处理完规定编码树单元(例如,整个编码树单元的1/4)之后,影像中央处理单元310能够以开始处理下一虚拟核心的流水线的方式进行控制。在此情况下,编码树单元的行的处理时间可能相对较短,但是,由于在开始对编码树单元的行进行处理之前,可能故意时延,因此可能不利于帧时延方面。
[0382]并且,根据另一实施例,在影像中央处理单元310持续且连续地进行译码,并且在以编码树单元的行单位来准备的情况下,可使用立即针对虚拟核心320执行解码的方式。在此情况下,总线(bus)上的数据可按顺序被处理,而无需针对各虚拟核心320的请求具有优先权(pr1rity) 〇
[0383]在此情况下,由于各虚拟核心320无需等待一个图像结束处理,因此可利于时延的方面。并且,若上一行编码树单元的行未得到处理,则流水线会被失速(stall),从而可向处理上一行的虚拟核心320分配总线资源,而且由于硬件方面执行同步,因此可能不存在额外开销(overhead)。另一方面,在编码树单元处理过程中,虚拟核心320为了获取总线资源而需要等待,因此,优选地,还能够以与总线相对应的方式分配针对各核心的请求的优先权。 [〇384]图23至图25表示根据如上所述的影像中央处理单元310的调度方式控制各过程的时间图。
[0385]在图23表示以图像单位依次对预扫描步骤、重新排序步骤及各虚拟核心320的解码步骤的定时进行控制的情况。
[0386]如图23所示,当以与特定图像相对应的方式开始解码(PICRUN)时,影像中央处理单元310执行预扫描,当完成预扫描时,影像中央处理单元310根据预扫描的预扫描段、且按编码树单元的光栅扫描顺序对影像比特流进行重新排序,当完成重新排序时,各虚拟核心 320以波前并行处理方式进行解码来控制图像,使得图像解码结束。这种方式虽然能够以图像或帧单位对影像比特流进行处理,但为了对一张图像或帧进行译码,而依次执行预扫描、 重新排序、解码工作,因而可增加时延。因此,本方式可应用于功能测试。
[0387]在图24表示利用虚拟核心的流水线处理来对预扫描步骤、重新排序步骤及各虚拟核心320的解码步骤的定时进行控制的情况。[〇388]如图24所示,为了提高处理性能,影像中央处理单元310能够以使图像的开始处理时间(PICRUN)和结束处理时间(PICD0NE)非同步处理的方式执行任务调度。[〇389]根据本发明实施例,当开始执行针对第一图像的处理(PICRUN1)时,影像中央处理单元310通过预扫描模块400对第一图像进行预扫描并存储预扫描信息,并且可根据基于预扫描信息而分割的预扫描段,按编码树单元的光栅扫描顺序对影像比特流进行重新排序。 [〇39〇]此时,在针对第一图像的重新排序结束时刻,影像中央处理单元310可立即开始执行针对第二图像的处理(PICRUN2)。尤其,在本实施例中,与第一图像的完成处理时间无关地,可使针对第二图像的处理以与第一图像非同步的方式开始。[〇391]另一方面,由于已完成重新排序,因此可开始执行针对第一图像的波前并行处理的解码。接收针对第一图像的比特流的各虚拟核心320以编码树单元的行单位接收第一图像,并利用预扫描信息来以波前并行处理形式执行解码,从而可输出完成译码的第一图像, 由此可结束针对第一图像的处理(PI⑶0NE1)。[〇392]另一方面,与第一图像的处理结束无关地,在针对第二图像的预扫描及重新排序结束时刻,可立即开始执行针对第三图像的处理(PICRUN3)。[〇393]另一方面,由于已结束针对第二图像的重新排序,因此可开始执行针对第二图像的波前并行处理的解码,并且可根据利用各虚拟核心320的预扫描信息的波前并行处理的译码工作来完成针对第二图像的处理(PICD0NE2)。[〇394]而且,可以与针对第二图像的处理结束无关地执行针对第三图像的预扫描及重新排序,在完成重新排序之后,接收针对第三图像的比特流的各虚拟核心320以编码树单元的行单位接收第三图像,并以利用本发明的预扫描信息的波前并行处理方式执行解码,从而输出完成译码的第三图像,由此可结束针对第三图像的处理(PICD0NE3)。
[0395]影像中央处理单元320可控制各预扫描模块400及虚拟核心320的工作时间,使得如上所述的过程反复执行。为此,影像中央处理单元320执行针对当前图像的预扫描的同时,可执行用于解码的任务的生成及分配处理。
[0396]在此情况下,借助片/切片删除追加任务等的额外开销,并且可通过流水线处理获得图像输出性能的提高。并且,如上所述,在改变实例的情况下也存储有被预扫描的信息, 因此可防止性能损失。[〇397]图25表示为了虚拟核心的低时延(Low latency)而对在预扫描步骤、重新排序步骤及各虚拟核心320的解码步骤中的定时进行控制的情况。[〇398] 如图25所示,为了低时延,影像中央处理单元310以非同步(asynchronous)的方式对图像的开始处理时间和结束处理时间进行处理,在预扫描过程中,若仅有规定单位数据得到处理,则能够以立即进入重新排序及波前并行处理的解码的过程的方式进行任务调度。其中,规定单位可表示编码树单元的行单位。
[0399]根据本发明的实施例,当开始执行针对第一图像的处理(PICRUN1)时,影像中央处理单元310通过预扫描模块400对第一图像的一部分进行预扫描并存储预扫描信息,并且可根据基于部分存储的预扫描信息所分割的预扫描段,按编码树单元的光栅扫描顺序对影像比特流进行重新排序。
[0400]此时,影像中央处理单元310能够以在针对第一图像的编码树单元行单位的重新排序结束后立即在虚拟核心320执行波前并行处理的解码的方式生成任务并进行分配。
[0401]尤其,在本实施例的情况下,可有效地使用于低时延的应用中。并且,即使在比特流以片形态实现编码,或者比特流形态为不分离为列(column)的形态的情况下也可有效地使用。
[0402]并且,虽然在图25呈现在波前并行处理的解码之后开始执行针对下一图像的处理,但是根据本发明的实施例,下一图像的处理时间和当前图像的波前并行处理的解码时间还可以重叠。
[0403]而且,在当前图像的波前并行处理的解码时间和下一图像的预扫描时间重叠的情况下,影像中央处理单元310可以仅在完成当前图像的处理之后、且开始执行下一图像的处理之前以允许更改实例的方式控制虚拟核心320的工作。这是因为在采用如上所述的流水线处理形式的情况下,当更改实例时可能产生损失。
[0404]并且,在当前图像的波前并行处理的解码时间和下一图像的预扫描时间未重叠的情况下,由于可能不发生效率损失,因而影像中央处理单元310可以不对虚拟核心320的实例变更进行限制。
[0405]根据上述本发明的实施例,可通过预扫描模块400有效生成并处理预扫描信息。并且,编码器300能够以与比特流的片/切片结构无关地基于按预扫描段的单位被分割的预扫描信息,以编码树单元行单位执行译码。虚拟核心320等的多个处理单元可不间断地执行不依赖于片/切片的波前并行处理。在预扫描模块400中,通过分析比特流,使影像中央处理单元310有效执行任务调度,可抽取可使各个虚拟核心320连续执行熵解码的必要且最少的信息并进行存储。
[0406]由此,本发明可去除多个处理单元中的每个处理单元之间的处理量不均衡,并可提高带宽效率。
[0407]如上所述的本发明的方法可被制作成用于在计算机执行的程序,并可存储于计算机可读记录介质,计算机可读记录介质的例为只读存储器(ROM)、随机存储器(RAM)、光盘只读存储器(CD-ROM)、磁带、电软盘、光数据存储装置等,并且,计算机可读记录介质还可体现为载波(例如,通过网络传输)形态。
[0408]计算机可读记录介质被分散到通过网络连接的计算机系统,从而可通过分散方式存储计算机可读代码并可被执行。而且,用于实现上述方法的功能性(funct1n)程序、代码及代码段可由本发明所属技术领域的程序员容易推断。
[0409]并且,以上示出并说明了本发明的优选实施例,但本发明并不局限于上述特定实施例,在不脱离发明要求保护范围所申请保护的本发明的主旨的情况下,不仅可由本发明所属技术领域的普通技术人员对本发明进行多种变形实施,而且上述变形实施均属于本发明的技术思想。
【主权项】
1.一种视频处理装置,其特征在于,包括:影像中央处理单元,与主机进行通信,接收比特流来分析头部信息;以及 预扫描模块,对根据上述影像中央处理单元的控制从上述主机输入的视频比特流进行 预扫描,从而生成预扫描信息,基于上述预扫描信息及上述头部信息,上述影像中央处理单元对上述比特流进行重新 排序处理,为了以规定单位对上述被重新排序处理的比特流进行并行解码处理而执行任务调度。2.根据权利要求1所述的视频处理装置,其特征在于,上述影像中央处理单元以图像单 位处理上述比特流,并且以与针对第一图像的译码的结束时间非同步的方式,并对开始针 对上述第一图像进行预扫描的第一时间进行调度。3.根据权利要求2所述的视频处理装置,其特征在于,在针对上述第一图像的重新排序 结束的情况下,上述影像中央处理单元以与针对第一图像的处理无关地开始对第二图像进 行预扫描的方式进行调度。4.根据权利要求3所述的视频处理装置,其特征在于,上述影像中央处理单元以使针对 上述第二图像的预扫描和针对上述第一图像的并行解码同时进行的方式进行调度。5.根据权利要求1所述的视频处理装置,其特征在于,上述影像中央处理单元通过上述 预扫描模块对第一图像进行预扫描并存储预扫描信息,根据基于上述预扫描信息而分割的预扫描段,按光栅扫描顺序对影像比特流进行重新 排序。6.根据权利要求5所述的视频处理装置,其特征在于,还包括多个影像处理部,上述多 个影像处理部根据所生成的上述任务,且以编码树单元的行单位接收上述被重新排序的比 特流,从而基于上述所分析的头部信息及上述预扫描信息对多个上述任务分别进行并行解码。7.根据权利要求1所述的视频处理装置,其特征在于,上述影像中央处理单元以使当前 图像的并行解码时间与下一图像的预扫描时间或者重新排序时间相重叠的方式进行调度。8.根据权利要求1所述的视频处理装置,其特征在于,上述预扫描信息包含针对一个以上的特定块的熵编码的引擎信息、上下文信息中的至 少一种,所述一个以上的特定块被包含在从上述比特流识别的编码树单元中。9.根据权利要求8所述的视频处理装置,其特征在于,上述特定单位的块的集合包含片 或者切片单位的块的集合。10.—种视频处理方法,其特征在于,包括:与主机进行通信,并接收比特流来分析头部信息的步骤;对由上述主机输入的视频比特流进行预扫描来生成预扫描信息的步骤;以及 基于上述预扫描信息及上述头部信息来对上述比特流进行重新排序处理,为了以规定 单位对上述被重新排序处理的比特流进行并行解码处理而执行任务调度的步骤。11.根据权利要求10所述的视频处理方法,其特征在于,上述执行调度的步骤包括以图 像单位处理上述比特流,并且以与针对第一图像的译码的结束时间非同步的方式对开始针 对上述第一图像进行预扫描的第一时间进行调度的步骤。12.根据权利要求11所述的视频处理方法,其特征在于,上述执行调度的步骤包括在针 对上述第一图像的重新排序结束的情况下,以与针对第一图像的处理无关地开始对第二图 像进行预扫描的方式进行调度的步骤。13.根据权利要求12所述的视频处理方法,其特征在于,上述执行调度的步骤包括以使 针对上述第二图像的预扫描和针对上述第一图像的并行解码同时进行的方式进行调度的步骤。14.根据权利要求10所述的视频处理方法,其特征在于,上述执行调度的步骤包括:对第一图像进行预扫描并存储预扫描信息的步骤;以及根据基于上述预扫描信息而分割的预扫描段,按光栅扫描顺序对影像比特流进行重新 排序的步骤。15.根据权利要求14所述的视频处理方法,其特征在于,还包括根据所生成的上述任 务,且以编码树单元的行单位接收上述被重新排序的比特流,从而基于上述所分析的头部 信息及上述预扫描信息来对多个上述任务分别进行并行解码的步骤。16.根据权利要求10所述的视频处理方法,其特征在于,上述执行调度的步骤还包括以 使当前图像的并行解码时间与下一图像的预扫描时间或者重新排序时间相重叠的方式进 行调度的步骤。17.根据权利要求10所述的视频处理方法,其特征在于,上述预扫描信息包含针对一个 以上的特定块的熵编码的引擎信息、上下文信息中的至少一种,所述一个以上的特定块被 包含在从上述比特流识别的编码树单元中。18.根据权利要求17所述的视频处理方法,其特征在于,上述特定单位的块的集合包含 片或者切片单位的块的集合。19.一种可通过计算机读取的记录介质,存储有用于在计算机运行权利要求10至权利 要求18中的某一项所记载的方法的程序。
【文档编号】H04N19/00GK105981383SQ201480074963
【公开日】2016年9月28日
【申请日】2014年2月12日
【发明人】金贤奎, 郑太荣, 金旲衍
【申请人】明达半导体股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1