用于改进的多层数据压缩的方法和设备的制作方法

文档序号:7887592阅读:230来源:国知局
专利名称:用于改进的多层数据压缩的方法和设备的制作方法
技术领域
本申请总体涉及数据压缩,具体地,涉及多层数据压缩的改进。
背景技术
数据压缩在多种上下文中进行。在通信和计算机网络中非常普遍地使用数据压缩来有效地存储、发送和再现信息。数据压缩在图像、音频和视频编码中找到具体的应用。因为每个视频帧所需要的大量数据以及进行编码和解码通常需要的速度,视频向数据压缩呈现出了巨大的挑战。本领域当前最新的视频编码是ITU-T H.264/AVC视频编码标准。其针对不同的应用定义了多个不同的简档,包括主简档、基线简档和其他简档。通过MPEG-ITU 的联合发起,下一代视频编码标准当前正在开发之中高效视频编码(HEVC)。存在多种用于使用基于块的编码过程来编码/解码图像和视频的标准,包括
H.264。在这些过程中,将图像或帧划分为块(典型地,4x4或8x8),以及将块频谱变换为系数,量化,并进行熵编码。在很多情况下,被变换的数据不是实际的像素数据,而是预测操作之后的残差数据。预测可以是帧内预测(即,在帧/图像内的块至块的预测)或者帧间预测(即,在帧之间的预测)(也称为运动预测)。预期HEVC也将具有这些特征。标准中的一些提供了可缩放的多层数据压缩。例如,H. 264/SVC(可缩放视频编码)定义了用于在多层中对视频进行编码的格式,以使得所产生的比特流的一个或多个部分(即,子流)提供该视频数据的有效可解码的较低分辨率的版本。可以在空间、时间上或者通过质量度量来对不同的层进行缩放。以示意的方式,H.264/SVC提供了以较低的空间分辨率对基本层编码(即,视频的缩减(downscale)版本)并且以较高的空间分辨率对增强层编码的能力。在一些比特流中可以存在多于两个层。可能由于屏幕尺寸限制、带宽限制、延迟要求等,具体的设备或应用可能希望仅使用可缩放编码视频的基本层。可缩放视频编码在视频会议、视频流、移动视频以及其他这种应用中找到具体的应用。可缩放视频编码的问题是增强层的率失真性能通常达不到原本通过常规的
H.264/AVC编码可以达到的率失真性能。尝试提高SVC性能常常为了提高增强层率失真性能对基本层性能进行折衷。提供进一步改进的用于可缩放编码的编码器、方法和过程将是有利的。

发明内容
在一个方面,本申请描述了一种对输入视频进行编码以创建可缩放视频格式的编码视频的方法,其中,所述输入视频包括全分辨率帧,所述可缩放视频格式包括具有空间下采样的基本层分辨率的编码的基本层视频和具有较高分辨率的编码的增强层视频。该方法包括获得所述全分辨率帧的全分辨率残差值;将所述全分辨率残差值空间下采样至基本层分辨率,以生成下采样残差;对所述输入视频进行空间下采样,以创建具有基本层分辨率的基本层视频;使用运动估计过程对所述基本层视频进行编码,以产生编码的基本层视频, 所述运动估计过程使用包括所述下采样残差的运动估计率失真优化表达式;使用可缩放视频编码过程对具有较高分辨率的增强层视频进行编码,以产生编码的增强层视频;以及将编码的基本层视频和编码的增强层视频组合,以产生编码视频的比特流。另一方面,本申请描述了具有处理器、存储器和编码应用的编码器,当被执行时, 所述编码应用将所述处理器配置为执行在此描述的一个或多个方法和过程。在另一方面,本申请描述了存储计算机可执行指令的计算机可读介质,当执行时, 所述计算机可执行指令将处理器配置为执行在此描述的一个或多个方法。在又一方面,本申请涉及非瞬时计算机可读介质,在所述非瞬时计算机可读介质上存储有通过在此描述的一个或多个方法所产生的编码视频的比特流。结合附图查看以下示例的描述,本领域普通技术人员将理解本申请的其他方面和特征。


通过示例的方式,现在将对附图进行参考,附图示出了本申请的示例实施例,并且在附图中图I以方框图的形式示出了用于编码视频的编码器;图2以方框图的形式示出了用于解码视频的解码器;图3示出了遵循H. 264/SVC的解码器的示例架构;图4示出了根据本申请的一方面的编码器的架构;图5示出了用于编码可缩放编码视频的示例方法的流程图;图6示出了用于编码可缩放编码视频的另一示例方法的流程图;图7和图8分别示出针对视频序列“Akiyo”和“Forman”示意所描述的可缩放编码过程的实施例相对于JSVM 9. 15标准编码器的性能的图;图9示出了示例编码器的方框图;以及图10示出了示例解码器的方框图。可在不同的图中使用类似的参考标号来表示类似的组件。
具体实施例方式在以下的描述中,将参考用于视频编码的H. 264标准来描述一些示例实施例。本领域技术人员将理解,本申请不限于H. 264,而是可以应用于其他的视频编码/解码标准, 包括将来可能的标准,例如HEVC。还将意识到,没有必要将本申请限制为视频编码/解码, 而是可以应用于音频编码/解码、图像编码/解码或者任何其他数据的有损编码/解码。本申请广泛应用于使用多层数据压缩的任何有损数据压缩过程,在该有损数据压缩过程中, 在具有不同质量或分辨率的两个或更多层中对对象数据进行编码,而与被编码/解码的数据的类型无关。例如,除了可应用于可缩放视频编码之外(例如,在H. 264/SVC中描述的可缩放视频编码),还可以将其应用于多视图视频编码,例如,在H. 264/MVC中描述的多视图视频编码。在下面的描述中,当指视频或图像时,有时可以将术语“帧”和“片(slice)”可互换地使用。本领域技术人员将意识到,在H. 264标准的情况下,帧可以包含一个或多个片。 还将意识到,根据可应用的图像或视频编码标准的具体要求,特定的编码/解码操作逐帧执行,而一些编码/解码操作逐片执行。在任何具体的实施例中,视情况而定,可应用的图像或视频编码标准可以确定是否结合帧和/或片来执行下面描述的操作。相应地,根据本公开,本领域技术人员将理解,在此描述的具体操作或过程以及对帧、片或两者的具体引用是否可应用于给定实施例的帧、片、或两者。就将以下描述的过程或方法应用于图像和/或视频而言,可以对其进行基于块、 基于编码单元、基于片、基于帧、基于画面组(GOP)或基于其他方面的应用,这是本领域技术人员在完整查看以下描述之后将会意识到的。编码单元可以是可应用的标准规定作为基本编码单元的任何块或块组,例如,H. 264/AVC中的编码单元是16x16的宏块。HEVC可以指定一个或多个编码单元,在一些实现中,编码单元的大小可以变化,以及在一些情况下,帧或图像可以包括多于一个类型/大小的编码单元。就将此处描述的过程或方法应用于音频 (例如,音乐或语音数据)而言,可以将其应用于数据点(例如,音频采样)的组合或序列。现在参考图1,图I以方框图的形式示出了用于编码视频的编码器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)进行编码。换言之,其不使用时间预测。然而,如图I中由空间预测器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,以选择运动矢量、量化步长和划分模式。运动估计和帧内预测组件Iio向基本层编码器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种模式中的一种16xl6、8xl6、16x8、8x8和子划分模式4x8、 8x4、4x4。Ref是包含基准帧的索引的矢量,基准帧是之前已编码的帧,用作对每个划分的预测。为了在此进行的讨论的目的,假定基准帧的数目是I。换言之,以下讨论假定仅对一个之前编码的帧进行运动估计;然而,将意识到,更一般的情况可以涉及多个帧。V是运动矢量,运动矢量是二维矢量,存储了每个划分相对其在基准帧中的预测的空间偏移。u指运动预测残差,运动预测残差要用于调整基准帧中由运动矢量指示的数据,以重构针对划分的数据。q是标量量化参数。为了实现由率失真代价函数度量的最优编码性能,常规编码器使用强力的耗时过程来处理每个帧间预测宏块。使用了两个在计算上开销大的过程考虑特定范围内的所有候选运动矢量(运动估计),以及考虑所有可能的宏块模式(编码模式)。由率失真代价函数来度量编码性能,采用以下的形式J = D+λ R (I)其中,失真D指编码误差,以及编码率R是用来表示编码的宏块的比特数目。量λ 是拉格朗日乘数,是量化参数的函数。在H. 264/AVC基准编解码器中,在运动估计和模式判决中,基于稍微不同的量来计算代价函数。运动估计关注于搜索当前块和基准帧中导致最小率失真代价的位置之间的空间位移(运动矢量)。在特定搜索范围内,基于以下公式的最小化,针对帧i中的宏块的每个划分来单独执行该过程hie — η η||Λ! — pjl +Aiyi
(2)等式(2)表示对最小化代价表达式的运动矢量Vi的搜索。在等式(2)中,失真是原始像素Xi与其预测Pi之间差值的总和。基于运动矢量Vi所指向的重构基准帧的特定块来找到预测Pi。比率项^表示比率,是输出比特流中编码运动矢量Vi所需的比特数目。将注意到,等式(2)没有反映真实的失真和真实的比率。事实上,真实的失真来自于从变换域系数(TCOEF)的量化取整的整数(也称为“残差”),以及真实的比率包括运动比率和纹理比率。本领域技术人员将意识到,在运动估计中使用的代价函数是不完整的,因为在该阶段残差未确定。为了在运动估计阶段评估真实的率失真代价,将需要编码器针对每个候选运动矢量计算残差,变换和量化所预测的残差,然后重构宏块,之后可以度量真实的代价。因为计算复杂度高,这种实现是不实际的。因此,当执行运动矢量估计时,常规编码器使用等式(2)来近似真实的率失真代价。在模式判决期间,由于残差更容易获得,率失真代价函数能够将残差考虑在内。相应地,可以基于对以下公式的最小化,在所有可能的帧间编码宏块模式中选择宏块模式
权利要求
1.一种对输入视频(102)进行编码以创建可缩放视频格式的编码的视频(124)的方法,其中,所述输入视频(102)包括全分辨率帧,所述可缩放视频格式包括具有空间下采样的基本层分辨率的编码的基本层视频(113)和具有较高分辨率的编码的增强层视频,所述方法包括获得(302、402)所述全分辨率帧的全分辨率残差值(204);将所述全分辨率残差值(204)空间下采样(304、404)至基本层分辨率,以生成下采样的残差(206);对所述输入视频进行空间下采样(304、404),以创建具有基本层分辨率的基本层视频 (105);使用运动估计过程对所述基本层视频(105)进行编码(306、406),以产生编码的基本层视频,所述运动估计过程使用包括所述下采样的残差的运动估计率失真优化表达式;使用可缩放视频编码过程对具有较高分辨率的增强层视频进行编码(308、408),以产生编码的增强层视频;以及将编码的基本层视频和编码的增强层视频组合(310、410),以产生编码的视频的比特流。
2.根据权利要求I所述的方法,其中,对基本层视频进行编码包括使用包括所述下采样的残差的模式判决率失真优化表达式。
3.根据权利要求2所述的方法,其中,所述模式判决率失真优化表达式包括
4.根据权利要求I所述的方法,其中,对基本层视频进行编码包括使用包括实际残差的模式判决率失真优化表达式,其中,所述实际残差是基于原始像素块和预测像素块之间的差值来确定的。
5.根据权利要求I所述的方法,其中,对基本层视频进行编码包括通过使用至少两个模式判决率失真优化表达式并从其中选择最低代价模式来选择宏块模式,所述两个模式判决率失真优化表达式包括第一表达式和第二表达式,所述第一表达式包括下采样的残差,所述第二表达式包括实际残差,所述实际残差是基于原始像素块和预测像素块之间的差值来确定的。
6.根据权利要求5所述的方法,其中,所述第一表达式包括
7.根据权利要求I所述的方法,其中,所述运动估计率失真优化表达式包括失真项,所述失真项包括由下采样的残差来调整的运动矢量所给出的原始像素值和预测像素值之间的差值。
8.根据权利要求7所述的方法,其中,所述运动估计率失真优化表达式包括比率项,所述比率项包括用于发送下采样的残差的比率值。
9.根据权利要求8所述的方法,其中,所述用于发送下采样的残差的比率值是在对下采样的残差进行变换、量化和熵编码之后用于对发送下采样的残差的比率代价。
10.根据权利要求7所述的方法,其中,所述运动估计率失真优化表达式包括
11.根据权利要求I所述的方法,其中,获得全分辨率残差值包括使用运动补偿过程计算全分辨率帧的全分辨率残差值。
12.根据权利要求I所述的方法,其中,获得全分辨率残差值包括通过运动补偿的解码过程来获得全分辨率残差值。
13.一种用于对输入视频进行编码的编码器(900),所述编码器包括处理器(902);存储器(904);通信系统,用于输出编码的视频;以及编码应用(906),存储在存储器中,包含当由所述处理器(902)执行时将所述处理器 (902)配置为使用根据权利要求I至12中任一项所述的方法对输入视频进行编码的指令。
14.一种非瞬时计算机可读介质,在所述非瞬时计算机可读介质上存储有计算机可执行指令,当由处理器(902)执行时,所述计算机可执行指令将所述处理器(902)配置为执行根据权利要求I至12中任一项所述的方法。
15.一种非瞬时计算机可读介质,在所述非瞬时计算机可读介质上存储有编码的视频的比特流,所述编码的视频的比特流是根据权利要求I至12中任一项所述的方法产生的。
全文摘要
本发明描述了用于编码可缩放数据压缩格式的数据的编码器(900)和方法。具体地,描述了用于编码空间可缩放视频的过程,其中,编码器(900)在对基本层分辨率的基本层视频(105)进行编码时,在其运动估计过程中使用来自对视频的全分辨率编码的缩减的残差(206)。还可以在基本层(106)处的编码模式选择过程中使用缩减的残差(206)。
文档编号H04N7/26GK102611890SQ20121001560
公开日2012年7月25日 申请日期2012年1月18日 优先权日2011年1月19日
发明者何达科, 邵明楷 申请人:捷讯研究有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1