具体实施方式
在以下的描述中,将参考用于视频编码的H.264标准来描述一些示例实施例。本领域技术人员将理解,本申请不限于H.264,而是可以应用于其他的视频编码/解码标准,包括将来可能的标准,例如HEVC。还将意识到,没有必要将本申请限制为视频编码/解码,而是可以应用于音频编码/解码、图像编码/解码或者任何其他数据的有损编码/解码。本申请广泛应用于使用多层数据压缩的任何有损数据压缩过程,在该有损数据压缩过程中,在具有不同质量或分辨率的两个或更多层中对对象数据进行编码,而与被编码/解码的数据的类型无关。例如,除了可应用于可缩放视频编码之外(例如,在H.264/SVC中描述的可缩放视频编码),还可以将其应用于多视图视频编码,例如,在H.264/MVC中描述的多视图视频编码。
在下面的描述中,当指视频或图像时,有时可以将术语“帧”和“片(slice)”可互换地使用。本领域技术人员将意识到,在H.264标准的情况下,帧可以包含一个或多个片。还将意识到,根据可应用的图像或视频编码标准的具体要求,特定的编码/解码操作逐帧执行,而一些编码/解码操作逐片执行。在任何具体的实施例中,视情况而定,可应用的图像或视频编码标准可以确定是否结合帧和/或片来执行下面描述的操作。相应地,根据本公开,本领域技术人员将理解,在此描述的具体操作或过程以及对帧、片或两者的具体引用是否可应用于给定实施例的帧、片、或两者。
就将以下描述的过程或方法应用于图像和/或视频而言,可以对其进行基于块、基于编码单元、基于片、基于帧、基于画面组(GOP)或基于其他方面的应用,这是本领域技术人员在完整查看以下描述之后将会意识到的。编码单元可以是可应用的标准规定作为基本编码单元的任何块或块组,例如,H.264/AVC中的编码单元是16x16的宏块。HEVC可以指定一个或多个编码单元,在一些实现中,编码单元的大小可以变化,以及在一些情况下,帧或图像可以包括多于一个类型/大小的编码单元。就将此处描述的过程或方法应用于音频(例如,音乐或语音数据)而言,可以将其应用于数据点(例如,音频采样)的组合或序列。
现在参考图1,图1以方框图的形式示出了用于编码视频的编码器10。还参考图2,图2示出了用于解码视频的解码器50的方框图。将意识到,可以将在此描述的编码器10和解码器50各自在专用或者通用的计算设备上实现,该专用或者通用的计算设备包含一个或多个处理单元或存储器。视情况而定,可以例如通过专用集成电路的方式来实现编码器10或解码器50所执行的操作,或者通过通用处理器可执行的存储的程序指令的方式来实现。设备可以包括附加的软件,例如包括用于控制基本设备功能的操作系统。考虑到以下的描述,本领域技术人员将意识到可在其中实现编码器10或解码器50的设备和平台的范围。
编码器10接收视频源12,并产生编码的比特流14。解码器50接收编码的比特流14,并输出解码的视频帧16。可以将编码器10和解码器50配置为根据多种视频压缩标准进行操作。例如,编码器10和解码器50可以遵循H.264/AVC。在其他实施例中,编码器10和解码器50可以符合其他视频压缩标准,包括H.264/AVC标准的演进,例如HEVC。
编码器10包括空间预测器21、编码模式选择器20、变换处理器22、量化器24和熵编码器26。如本领域技术人员将意识到的,编码模式选择器20针对视频源确定适当的编码模式,例如,对象帧/片是否是I、P、或B类型,以及对帧/片内的特定宏块或编码单元进行帧间编码还是帧内编码。变换处理器22对像素域数据执行变换。具体地,变换处理器22应用基于块的变换,以将像素域数据变换为频谱分量。例如,在多个实施例中,使用离散余弦变换(DCT)。在一些实例中可以使用其他变换,例如离散正弦变换或者其他变换。根据编码单元的大小,基于编码单元或子编码单元来执行基于块的变换。在H.264标准中,例如,典型的16x16宏块包含16个4x4变换块,对4x4的块执行DCT过程。在一些情况下,变换块可以是8x8,意味着每个宏块有4个变换块。在其他情况下,变换块可以是其他大小。在一些情况下,16x16的宏块可以包括4x4和8x8变换块的非重叠组合。
向像素数据的块应用基于块的变换产生变换域系数的集合。本上下文中的“集合”是有序集合,在该集合中,系数具有系数位置。在一些实例中,可以将变换域系数的集合视为系数的“块”或矩阵。在此处的描述中,短语“变换域系数的集合”或者“变换域系数的块”可互换使用,并意在指变换域系数的有序集合。
量化器24对变换域系数的集合进行量化。然后,熵编码器26对量化的系数和相关联信息进行编码。
在不参考其他帧/片的情况下,对帧内编码的帧/片(即,类型I)进行编码。换言之,其不使用时间预测。然而,如图1中由空间预测器21所示出的,帧内编码的帧的确依赖于帧/片内的空间预测。即,当对特定块编码时,可以将块中的数据与针对该帧/片已经编码的块内的临近像素的数据进行比较。使用预测算法,可以将块的源数据转换为残差数据。然后,变换处理器22对残差数据编码。例如,H.264针对4x4变换块规定了9种空间预测模式。在一些实施例中,可以使用9种模式中的每一种来独立地处理块,然后使用率失真优化来选择最佳模式。
H.264标准还规定了运动预测/补偿的使用,以利用时间预测。相应地,编码器10具有反馈环路,反馈环路包括解量化器28、逆变换处理器30和解块处理器32。这些单元对解码器50实现的用于再现帧/片的解码处理进行镜像。使用帧存储器34来存储再现帧。通过这种方式,运动预测基于在解码器50处的重构帧将是什么,而不是基于原始的帧,由于编码/解码中所涉及的有损压缩,原始帧可以与重构帧不同。运动预测器36使用存储在帧存储器34中的帧/片作为源帧/片,以用于针对标识类似块的目的而与当前帧进行的比较。相应地,对于应用运动预测的宏块,变换处理器22所编码的“源数据”是从运动预测过程产生的残差数据。例如,其可以包括与基准帧、空间位移或者“运动矢量”有关的信息,以及包括对预测(基准块)与当前块之间的差(如果有)进行表示的残差像素数据。变换处理器22和/或量化器24可以不对与基准帧和/或运动矢量有关的信息进行处理,而是可以将其提供给熵编码器26,以作为比特流的一部分与量化系数一起编码。
本领域技术人员将意识到用于实现H.264编码器的细节和可能的变型。
解码器50包括熵解码器52、解量化器54、逆变换处理器56、空间补偿器57和解块处理器60。帧缓冲器58提供运动补偿器62在应用运动补偿时使用的重构帧。空间补偿器57表示从之前解码的块恢复特定帧内编码块的视频数据的操作。
熵解码器52接收并解码比特流14,以恢复量化的系数。在熵解码过程期间还可以恢复辅助信息,可以将其中的一些提供给运动补偿环路,以在运动补偿(如果可应用)中使用。例如,针对帧间编码的宏块,熵解码器52可以恢复运动矢量和/或基准帧信息。
然后,解量化器54对量化的系数进行解量化以产生变换域系数,然后将其经过逆变换处理器56的逆变换来重新创建像素域“视频数据”。将意识到,在一些情况下,例如在帧内编码的宏块的情况下,重新创建的“视频数据”是在相对于帧内之前解码的块的空间补偿中使用的残差数据。空间补偿器57根据残差数据以及来自之前解码的块的重构像素数据来生成视频数据。在其他情况下,例如在帧间编码的宏块的情况下,来自逆变换处理器56的重新创建的“视频数据”是在相对于来自不同帧的重构基准块的运动补偿中使用的残差数据。在此,可以将空间补偿和运动补偿都称为“预测操作”。
运动补偿器62在帧缓冲器58中定位针对特定帧间编码的宏块指定的基准块。运动补偿器62基于针对帧间编码的宏块指定的基准帧信息和运动矢量来进行该操作。然后,运动补偿器62提供基准块像素数据,以与残差数据组合以获得针对该宏块的重构视频数据。
然后,如解块处理器60所指示的,可以向重构帧/片应用解块过程。在解块之后,输出帧/片作为解码的视频帧16,以例如在显示设备上显示。将要理解,视频回放机器可以在输出设备上进行显示之前将解码的帧缓冲在存储器中,视频回放机器例如计算机、机顶盒、DVD或蓝光播放器和/或移动手持设备。在一些实例中,可以在输出前对像素域数据应用其他的后处理滤波操作。
预期遵循HEVC的编码器和解码器将会具有这些相同特征中的多个特征。
现在参考图3,图3示出了遵循H.264/SVC的编码器100的示例架构。本实施例中的编码器100实现了空间可缩放性,并包括基本层编码级106和增强层编码级108。通过空间下采样器104将全分辨率视频102下采样为基本层分辨率,以产生下采样的视频,即,“基本层视频”105。将下采样的基本层视频105输入到基本层编码级106,而将全分辨率视频102输入到增强层编码级108。
基本层编码级106包括运动估计和帧内预测组件110,运动估计和帧内预测组件110根据H.264/AVC来处理基本层分辨率下采样的视频105,以选择运动矢量、量化步长和划分模式。运动估计和帧内预测组件110向基本层编码器112提供所产生的纹理(残差)和运动(预测)信息。基本层编码器112对纹理和运动信息进行熵编码,以针对基本层分辨率视频产生遵循H.264/AVC的编码视频数据的比特流,即,编码的基本层视频113。将该比特流输入到复用器122。
在一些实施例中,基本层编码级106还包括SNR(信噪比)可缩放编码器114,用于针对基本层视频105的SNR(质量)缩放来产生附加的增强比特流数据。SNR可缩放编码器114接收来自基本层编码器112的比特流、基本层分辨率视频105以及来自运动补偿和帧内预测组件110的数据(例如,运动矢量和编码模式数据)。根据H.264/SVC,SNR可缩放编码器114可以生成“增强”比特流数据,“增强”比特流数据要与编码的基本层数据113的比特流交织,以使得解码器能够增强重构的基本层视频的质量。例如,在一些实例中,来自SNR可缩放编码器114的增强比特流可以包括对残差数据的细化,以使得可以实现更精细的量化。
根据H.264/SVC标准,基本层编码级106向增强编码层级108提供信息以在增强层编码级108的编码判决中对增强层编码级108进行引导。具体地,基本层编码级106可以提供运动估计、残差数据等的细节。增强层编码级108使用这些细节,并具体地在运动补偿和帧内预测组件116中使用这些细节。增强层运动补偿和帧内预测组件116选择运动矢量、编码模式等,以根据可应用的可缩放视频编码方案对增强层视频编码,并产生纹理(残差)和运动数据。增强编码器118接收纹理和运动数据,并对增强层视频进行熵编码。增强层编码级108包括SNR可缩放编码器120,用于针对增强层编码的SNR(质量)缩放,产生附加的增强比特流数据。
作为示例,H.264/SVC通过使用从基本层编码级108获得的细节提供了至少三种可能的层间预测增强。第一示例是层间帧内预测,在层间帧内预测中,可以通过运动补偿和帧内预测组件来对重构的基本层宏块进行上采样,并使用其作为对应增强层宏块的预测。可以对实际增强层宏块与基于对基本层块进行上采样的预测之间的差值进行编码,以作为增强层的一部分(或者可以不这样做)。另一示例是层间运动预测,层间运动预测使用放大(upscale)的划分和来自基本层的运动矢量数据作为针对增强层的模式和运动矢量数据,并在然后对残差(即,差值)进行编码。第三示例是层间残差预测,在层间残差预测中,使用放大的基本层残差作为增强层残差数据的预测,并在增强层中仅编码该差值。在一些情况下,可以协作地使用层间残差预测和层间运动预测。
复用器122根据可缩放视频编码方案,将来自基本层编码级106和增强层编码级108的所产生的比特流复用在一起,以产生编码视频的可缩放比特流124。
率失真优化
将H.264/AVC中的压缩的帧间预测宏块解码为五个分量(m、Ref、v、u和q)的集合,m是宏块模式,也可以可互换地称为编码模式或划分模式。可以将宏块的亮度分量划分为具有不同划分大小的以下7种模式中的一种:16x16、8x16、16x8、8x8和子划分模式4x8、8x4、4x4。Ref是包含基准帧的索引的矢量,基准帧是之前已编码的帧,用作对每个划分的预测。为了在此进行的讨论的目的,假定基准帧的数目是1。换言之,以下讨论假定仅对一个之前编码的帧进行运动估计;然而,将意识到,更一般的情况可以涉及多个帧。v是运动矢量,运动矢量是二维矢量,存储了每个划分相对其在基准帧中的预测的空间偏移。u指运动预测残差,运动预测残差要用于调整基准帧中由运动矢量指示的数据,以重构针对划分的数据。q是标量量化参数。
为了实现由率失真代价函数度量的最优编码性能,常规编码器使用强力的耗时过程来处理每个帧间预测宏块。使用了两个在计算上开销大的过程:考虑特定范围内的所有候选运动矢量(运动估计),以及考虑所有可能的宏块模式(编码模式)。由率失真代价函数来度量编码性能,采用以下的形式:
J=D+λR (1)
其中,失真D指编码误差,以及编码率R是用来表示编码的宏块的比特数目。量λ是拉格朗日乘数,是量化参数的函数。
在H.264/AVC基准编解码器中,在运动估计和模式判决中,基于稍微不同的量来计算代价函数。运动估计关注于搜索当前块和基准帧中导致最小率失真代价的位置之间的空间位移(运动矢量)。在特定搜索范围内,基于以下公式的最小化,针对帧i中的宏块的每个划分来单独执行该过程:
等式(2)表示对最小化代价表达式的运动矢量vi的搜索。在等式(2)中,失真是原始像素xi与其预测pi之间差值的总和。基于运动矢量vi所指向的重构基准帧的特定块来找到预测pi。比率项表示比率,是输出比特流中编码运动矢量vi所需的比特数目。
将注意到,等式(2)没有反映真实的失真和真实的比率。事实上,真实的失真来自于从变换域系数(TCOEF)的量化取整的整数(也称为“残差”),以及真实的比率包括运动比率和纹理比率。本领域技术人员将意识到,在运动估计中使用的代价函数是不完整的,因为在该阶段残差未确定。为了在运动估计阶段评估真实的率失真代价,将需要编码器针对每个候选运动矢量计算残差,变换和量化所预测的残差,然后重构宏块,之后可以度量真实的代价。因为计算复杂度高,这种实现是不实际的。因此,当执行运动矢量估计时,常规编码器使用等式(2)来近似真实的率失真代价。
在模式判决期间,由于残差更容易获得,率失真代价函数能够将残差考虑在内。相应地,可以基于对以下公式的最小化,在所有可能的帧间编码宏块模式中选择宏块模式:
等式(3)反映了将在解码器中解码的真实失真,该失真是在整个宏块上原始像素xi与其重构之间的累积差值。基于在基准帧中找到的由重构的运动估计残差Z
-1Z(x
i-p
i)来调整或修改的宏块预测p
i生成重构,其中,残差数据是(x
i-p
i),Z是变换和量化处理,Z
-1表示Z的逆处理。该情况下的比率代价还表示真实的编码比特,不仅包括运动比率
还包括纹理比率
“纹理比率”是有时候使用来指用于对量化的变换域系数(TCOEF)进行编码的比率的术语。
将意识到,编码过程在不同的阶段使用以上两个代价函数。首先使用等式(2)来近似针对特定宏块模式的最佳运动矢量,在编码过程中稍后使用等式(3)来选择最优宏块模式。容易推断,如果等式(2)定位适合的运动矢量不准确,则等式(3)在选择最优宏块模式中将被误导,该次优结果将最终影响整体的编码性能。
在对H.264/SVC中的基本层的遵循AVC的编码中使用上述的运动估计和模式判决过程。
然后,使用在对基本层的遵循AVC的编码中开发的参数来对增强层的编码进行引导或控制。就基本层编码不准确或者次优而言,也对增强层造成了负面影响。
增强层SVC编码通常不能满足原本通过对增强层自身(即,作为不可缩放视频)进行常规的遵循AVC的编码所能实现的性能。这可能部分由于对基本层的不精确或者次优的编码,一些增强层编码可能依赖于对基本层的编码。这还部分是由于下采样操作造成的可缩放层之间的最优编码参数的差异以及区分不同层所需的开销。
在以下的讨论中,为了简洁,假定增强层视频是“全分辨率”视频。在最简单的情况下,这意味着其与原始的输入视频具有相同的空间分辨率,而基本层视频是空间下采样的版本。在其他情况下,增强层视频也可以是原始输入视频的空间下采样版本,然而与基本层视频的下采样程度不同。在其他情况下,可以存在多于一个的增强层,在该情况下,可以应用下面的讨论和过程,使用原始输入视频或者具有增强层分辨率的下采样版本来生成残差。
原则上,开发出使得对增强层视频的SVC编码接近于对具有全分辨率的视频的AVC编码所能达到的程度的机制可以是有利的。为了将增强层视频控制为向对全分辨率视频的AVC编码接近,可以将基本层编码控制为对全分辨率视频的AVC编码,因为使用了基本层编码的参数来引导增强层编码。从而,根据本申请的一个方面,使用来自对全分辨率视频的编码的参数来影响和引导较低分辨率视频(基本层)的编码,继而在增强层视频的可缩放编码中使用来自对较低分辨率视频(基本层)的编码的参数。
根据一个方面,通过将全分辨率残差并入基本层视频的编码中,对基本层编码进行细化。具体地,可以将全分辨率残差下采样至基本层分辨率,并且可以在运动估计和/或模式判决中使用的率失真优化表达式的失真和/或比率项中将其用作残差。
在一个示例中,全分辨率视频通过遵循H.264/AVC的编码过程,在该过程中开发的编码参数对SVC编码器可用。具体地,使残差数据可用。通过对原始输入视频进行空间下采样来创建下采样的视频,获得基本层视频。当在基本层中对下采样的视频进行编码,而不是使用等式(2)的运动估计代价函数时,编码器可以使用如下率失真代价函数:
在等式(4)中,失真项包括下采样的全分辨率残差DS(U)。运算符DS()指示空间下采样,全分辨率残差是U。将注意到,等式(4)往往使编码器对给出预测pi的基本层运动矢量进行选择,预测pi将导致与在对全分辨率视频中的等效块的AVC编码中所获得的相同的残差(下采样的)。换言之,基于与下采样的残差的最佳适配来选择运动矢量。可以修改等式(4)以在比率项中包括发送下采样残差的比率;然而,在一些情况下,也可以对其进行省略,因为针对所有的候选运动矢量来说,这是相同的。
在另一实施例中,可以修改等式(4),以使得取代在失真项中直接使用下采样的残差,等式(4)使用重构的下采样残差,重构的下采样残差给出如下:
Z-1Z(DS(U)) (5)
重构的下采样残差表示解码器实际使用的残差数据(如果要向解码器发送下采样的全分辨率残差,这在一些实施例中这是可能的)。类似地,可以将比率项修改为表示对变换和量化的下采样残差进行发送的代价,例如,表达为rZ(DS(U));虽然将如等式(4)一样,在一些情况下也可以省略该比率项。
在一些实施例中,也可以将下采样的全分辨率残差并入模式判决中。在第一实施例中,可以将下采样残差并入用于选择编码模式的代价表达式中。例如,可以将下采样残差并入模式判决代价表达式的失真和比率项中,例如:
等式(6)提供了宏块模式的测试,在该测试中,基本层视频和增强层视频中相同位置的宏块具有类似的运动矢量,以及近似相同的残差(纹理)。在该情况下,使用下采样残差来作为最终的残差。已经基于与下采样残差的最佳适配来选择运动矢量,模式判决基于通过选择导致表达式最小化的适合的编码模式mi来最小化等式(6)。
在第二实施例中,宏块模式判决关注具有类似运动矢量但有轻微不同的残差(纹理)的情况。对于该情况,用于评估宏块编码模式的代价表达式可以是以上等式(3)的表达式。
在一个实施例中,使用等式(6)和等式(3)这两个宏块模式代价表达式来选择编码模式。可以将每一个表达式视为宏块模式族,每个族包含7个不同的宏块划分和子划分。
例如,在一些实现中,如等式(4)所表示的,可以仅在运动估计阶段中使用下采样残差。在一些实现中,可以在运动估计和模式判决中都使用下采样残差。
现在参考图4,图4示出了根据本申请的一方面的编码器200的架构。编码器200包括以上结合图3描述的基本层编码级106和增强层编码级108;然而,编码器200还包括对全分辨率视频进行编码过程以生成残差数据204的全分辨率编码级202。然后,空间下采样器104将残差数据204下采样至基本层分辨率,以获得下采样的残差206。将下采样残差206提供给基本层编码级106,以及具体地,提供给运动补偿和帧内预测组件110,以在基本层编码过程中使用。全分辨率编码级202可以使用H.264/AVC编码或者适于该实现的任何这种不可缩放编码过程。
现在参考图5,图5以流程图的形式示出了用于编码输入视频以创建可缩放视频格式的编码的视频的方法300。可缩放视频格式包括具有空间缩减的分辨率的编码的第一或基本层视频,以及具有较高分辨率(在一些情况下,较高分辨率是全分辨率)的编码的第二或增强层视频。方法300包括操作302,使用运动补偿的编码过程,从对全分辨率的视频的编码获得残差数据。例如,可以使用H.264/AVC编码过程来确定全分辨率视频的残差值。
在一些实例中,编码器可以不需要执行操作302的全分辨率编码本身。在一些实例中,可以使全分辨率残差数据对编码器可用。例如,在代码转换的上下文中,原始视频之前已被解码,使得代码转换器的解码器部分将可以从解码的视频获得重构的残差值。在该情况下,代码转换器的编码器部分可以使用重构的残差值来作为全分辨率残差值,而不对全分辨率重构的解码视频执行运动补偿编码过程。在此使用术语“全分辨率残差值”来覆盖计算的残差和重构的残差这两种可能性。将理解,代码转换是对编码的视频进行解码来创建重构的视频,然后对重构的视频进行编码来创建编码的重构视频的过程。在一个实施例中,可以将代码转换器配置为对编码的全分辨率视频进行解码,以将其转换为可缩放视频格式。
在操作304中,将全分辨率残差值空间下采样至基本层分辨率。然后,在操作306中,基本层编码级对基本层分辨率视频进行编码。操作306中对基本层视频的编码包括:使用包括下采样的残差的率失真表达式来执行运动估计。率失真表达式可以在失真项和/或比率项中包括全分辨率残差。在一些实施例中可以使用等式(4)。将意识到,在用于运动估计的率失真表达式中使用全分辨率残差值类似于寻找与缩减的全分辨率残差最佳适配的运动矢量。在该示例实施例中,可以使用由原始块和来自运动补偿的预测块之间的差值所产生的实际残差来编码基本层视频。相应地,如例如等式(3)中所反映的,编码模式判决可以考虑与实际残差相关联的失真和比率代价。
在操作308中,当在基本层执行了运动估计和模式选择时,基本层向增强层提供其编码判决的细节,以及具体地,提供基本层残差。在操作308中,部分依靠在基本层进行的编码判决,使用可缩放视频编码过程对增强层视频进行编码。结果是编码的增强层数据的比特流。
在操作310中,将编码的基本层比特流和编码的增强层比特流进行组合,以产生可缩放编码的视频的比特流。
现在参考图6,图6示出了用于编码可缩放视频格式的视频的另一示例方法400的流程图。在该示例方法400中,操作402和404与上述操作302和304类似。在操作406中,对基本层视频进行编码。如上结合图5和操作306所述,基本层编码包括:使用包括下采样的全分辨率残差的率失真表达式来执行运动估计。操作406还包括:在用于选择编码模式的率失真表达式中使用下采样的全分辨率残差。即,取代使用从原始块和来自于运动补偿的预测块之间的差值产生的实际残差,编码器使用缩减的全分辨率残差作为用于编码的纹理。率失真表达式可以例如是等式(6)中示出的表达式。
操作408和410与上述操作308和310类似。
在一些实施例中,编码器可以在选择编码模式时对等式(3)和等式(6)进行评估。换言之,编码器可以在从7个可能的编码模式中进行选择时,评估与使用实际残差以及使用缩减的全分辨率残差相关联的率失真代价。然后,使用最低代价的选择作为针对基本层编码的块的编码模式判决的基础,用于编码该块纹理遵循该结果。
使用对等式(3)和等式(6)进行评估的编码模式选择,已经对在此描述的过程进行了实验性的测试。在实验中使用了CIF视频序列“Foreman”和“Akiyo”。在试验中,将基本层视频下采样至QCIF大小,而增强层视频为CIF大小,即,双值(dyadic)空间下采样情况。在JSVM 9.15基准编解码器中实现该实验。图7和图8分别示出了针对“Akiyo”和“Foreman”序列的结果图。每个图示出了基本层视频的性能图和增强层视频的性能图。每个图都包括来自JSVM 9.15标准编解码器和所提出的修改的结果图。将注意到,所提出的方法在基本层和增强层方面都胜过JSVM标准编解码器,并没有性能较差的情况。运动越少的序列中的性能增益越明显。
现在参考图9,图9示出了编码器900的示例实施例的简化框图。编码器900包括处理器902、存储器904和编码应用906。编码应用906可以包括计算机程序或应用,该计算机程序或应用存储在存储器904中并包含用于配置处理器902执行例如在此处描述的步骤或操作的指令。例如,编码应用906可以根据在此描述的过程来编码比特流并输出编码的比特流。输入数据点可以涉及音频、图像、视频或者可以进行有损数据压缩方案的其他数据。将理解,可以将编码应用906存储在计算机可读介质上,例如CD、闪存设备、随机存取存储器、硬盘等。
现在参考图10,图10示出了解码器1000的示例实施例的简化框图。解码器1000包括处理器1002、存储器1004以及解码应用1006。解码应用1006可以包括计算机程序或应用,该计算机程序或应用存储在存储器1004中并包含用于配置处理器1002执行例如在此处描述的步骤或操作的指令。将理解,可以将解码应用1006存储在计算机可读介质上,例如CD、闪存设备、随机存取存储器、硬盘等。
将意识到,可以通过多个计算设备来实现根据本申请的解码器和/或编码器,包括但不限于服务器、适当编程的通用计算机、音频/视频编码和回放设备、机顶电视盒、电视广播设备以及移动设备。可以通过软件的方式实现解码器或编码器,该软件包含用于配置处理器来执行在此描述的功能的指令。可以将软件指令存储在任何适合的计算机可读存储器上,包括CD、RAM、ROM和闪存等。
将理解,可以使用标准计算机编程技术和语言来实现在此描述的编码器以及实现所描述的用于配置编码器的方法/过程的模块、例程、进程、线程或者其他软件组件。本申请不限于具体的处理器、计算机语言、计算机编程惯例、数据结构、其他的实现细节。本领域技术人员将认识到,可以将所描述的过程作为存储在易失性或非易失性存储器中的计算机可执行代码的一部分、作为专用集成芯片(ASIC)的一部分等来实现。
可以对所描述的实施例的进行特定的适配和修改。因此,将以上讨论的实施例视为示意性的而不是限制性的。