专利名称:用于视频编码的方法和装置的制作方法
技术领域:
本发明涉及用于视频编码的方法。
背景技术:
诸如音频流或视频流的多媒体流的编码已经在文献中被广泛地描述,并由多个标准进行标准化。大多数视频编码标准描述了先进的压缩技术,它们被开发以使得视频或音频信号以更低的比特率传输,并且一般仅指定视频流的语法和解码过程。尽管编码过程本身没有被标准化,但大多数现有的编码器或多或少地遵循相同的参考体系,由此,批量处理包括计算编码相关的语法单元。这些包括不是残余数据的语法单元,并可包括片段头和用于片段内每个宏块的头部数据,包括帧内预测模式、用于帧内编码和帧间编码的运动矢量、宏块等。例如,在a 264/AVC视频编码标准中,这些语法单元被表示为类别2语法单元,并因此仅包含用于描述编码流的底层编码结构的语法单元,而没有有关像素值的信息。 大多数传统的编码器还根据所接收的输入视频数据和这些所计算的编码相关的语法单元,构建预测像素块的序列。这些预测像素块可例如通过从输入视频流的对应块中减去它们来处理,或反之亦然,从而获得残余像素块的序列。该残余像素块的序列通常被进一步变换和量化,以获得处理后残余像素数据的序列。例如,在H. 264编码器中,这些处理后残余像素数据对应于类别3和类别4语法单元。这些处理后残余像素数据与编码相关的语法单元一起进一步进行组合熵编码步骤。编码的残余像素数据和编码的编码相关的语法单元的最终组合形成传统的编码的视频流。尽管这种编码方法目前被广泛普及,但它们仍需要大量的处理能力,因为编码器需要对每个输入流计算编码结构相关的语法单元,这需要大量的处理工作。
发明内容
因此,本发明的目的是描述用于编码至少一个视频流的可选的编码方法,其需要更少的处理能力,并产生更高效的编码器。根据本发明,该目的通过一种方法实现,该方法包括以下步骤接收所述至少一个输入视频流;构建预测像素块的序列;处理所述预测像素块的序列和所述至少一个输入视频流的对应块,以获得处理后残余像素数据的序列;其中,所述预测像素块的序列根据来自参考输入数据的输入编码结构数据构建,所述输入编码结构数据还与所述处理后残余像素数据一起进行组合熵编码步骤,从而获得至少一个编码的视频流。这样,通过提供输入编码结构可从中简单地获得或提取的参考输入数据,并通过根据该输入编码结构构建预测像素块,可以获得简单和改进的方法,因为该编码结构不再由编码器本身计算,而是直接被提供给编码器或者以允许容易提取或获得的形式提供。组合熵编码步骤可包括输入编码结构和处理后残余数据的熵编码步骤,然后是编码的编码结构和编码的残余数据的组合步骤,或者包括输入编码结构和处理后残余数据的组合步骤,然后是组合的输入编码结构和处理后残余数据的熵编码步骤,或者包括任何其它序列的这种动作的一部分的可能组合。残余像素块的处理可包括根据所述预测像素块与所述至少一个输入视频流的对应块之间的差生成残余像素块的序列;变换并量化所述残余像素块的序列,从而获得所述处理后残余像素数据的序列。可选地,残余像素块的处理可包括根据所述预测像素块(PPB1,PPPB2)与所述至少一个输入视频流(IV1,IV2)的对应块之间的差生成残余像素块的序列,并过滤残余像素块以获得所述处理后残余像素数据的序列。在一些实施例中,参考输入数据包括编码的输入编码结构数据,以致输入编码结构数据通过熵解码所述参考输入数据而从所述参考输入数据中获得。
另外,其它变形实施例还包括以下步骤将至少一个输入视频流的配置数据与输入编码结构数据进行比较,如果数据不匹配,则所述至少一个输入视频流进一步被预处理,从而生成至少一个更新输入视频流,以致残余像素块根据所述预测像素块与所述至少一个更新视频流的对应块之间的差确定。在这些可选的配置数据被包括在输入视频流内的一些情况下,这可进一步改进编码过程,这将在描述部分进一步说明。另一个可选的方法包括其它步骤对处理后残余像素块进行反量化和反变换,以进一步在所述预测像素块的构建期间使用。这仍可进一步改进编码的准确性。该方法还可以包括以下步骤根据参考编码流生成参考输入数据。该参考编码流可通过对参考视频输入流进行传统的编码而获得。在又一个可选的方法中,至少一个输入视频流可根据这种参考视频流和某些输入修正数据生成。这具有以下优点通过该参考流和各个输入修正数据的组合,来自一个参考流的一个编码结构可被共同用于编码从这种参考流中获取的许多流。相对于现有技术中的对于这种最终视频流的每一个都必须执行整个编码过程的方法,现在只有一个参考流必须被编码,并且它的编码结构可以重复用于从该单个参考流中获取的所有视频流的编码。这节省了相当数量的编码处理能力,并在编码流的可能传输期间,还节省大量的传输带宽。如果这些最终编码流必须被存储,则需要更少的存储容量。在又一个用于并行编码若干视频流的变形方法中,这些流中的一个可以被选择作为参考流,接着,根据该参考流确定编码结构,其进一步被重复用于编码其它视频流。相对于现有技术中分别编码这些视频流中的每一个的方案,该变形具有降低处理能力的优点。相对于前面的变形,降低带宽和存储容量的类似考虑也是有效的。本发明还涉及一种用于执行前述方法的编码器、装置和配置。其它实施例在后附的权利要求中提出。应当指出,在权利要求中使用的术语“连接”不应被解释为仅限于直接连接。因此,表述“设备A连接到设备B上”的范围不应当限于设备A的输出直接连接到设备B的输入的设备或系统。它意味着在A的输出和B的输入之间存在一条路径,其可以是包括其它设备或装置的路径。
应当指出,在权利要求中使用的术语“包括”不应当被解释为限于其后面所列出的装置。因此,表述“设备包括装置A和B”不应当局限于设备仅包括组件A和B。它意味着相对于本发明,设备的相关组件是A和B。
通过参考以下结合附图的描述,本发明的上述和其它目的和特征会变得更清楚,本发明本身会得到更好的理解,其中图I示出现有技术的编码器的实施例的基本机制;图2a_d示出根据本发明的编码器的实施例;图3示出根据本发明的编码器的另一个实施例;图4a和4b示出根据本发明的编码器的其它实施例,其中每一个接收超过一个的 输入视频流;图5示出根据本发明的编码器的另一个实施例;图6a示出生成参考输入数据IREF的装置的实施例A,其中参考输入数据IREF可用作前面图2至5的实施例的输入;图6b示出图6a所示的装置的特定实施例B,但是针对编码比特流使用例如根据H. 264标准的附加数据分割特征的特定情形;图7示出包括如图5所示的装置A的实施例和如图4b所示的编码器的实施例的第一配置Al的实施例;图8示出本身包括如图7所示的第一配置Al的第二配置A2的实施例;图9示出包括如图8所示的第二配置A2的第三配置A3的实施例;图IOa示出包括如图7所示的第一配置Al的第四配置A4的实施例;图IOb示出这种第四配置的另一个实施例A4b。
具体实施例方式应当注意,以下仅说明本发明的原理。因此,可以理解,本领域的普通技术人员能够设计各种配置,尽管在此没有明确描述或示出,但这些配置仍包含本发明的原理。在此所记载的所有例子和条件语言主要目的仅在于教导以帮助读者理解本发明的原理和发明人为改进现有技术所贡献的概念,并应被解释为并不限定这些特定记载的例子和条件。另外,在此记载本发明的原理、方面和实施例的所有语句及其特定例子意在包括其结构和功能的等同。另外,应当注意这种等同包括当前已知的等同以及将来开发的等同,即,任何所开发的执行相同功能而不管结构如何的单元。本领域的普通技术人员应当知道,在此的任何模块图表示包含本发明的原理的示例性电路的概念性视图。同样,应当知道,任何流程图、流程图表、状态转换图、伪代码等表示各种过程,其可实质地在计算机可读媒体中表现并因此由计算机或处理器执行,不论这种计算机或处理器是否明确地示出。还应当理解,在整个文件中,表述“输入视频流”和“输出视频流”是指输入和输出数据,其可具有真实流视频的形式,但还可涉及(所存储的)数据文件或者这些文件的组合。因此,在本说明书中陈述的实施例是指这些视频数据的在线和离线编码以及它们的任何组人
口 O在讨论根据本发明的编码器的实施例之前,将给出H. 264现有技术编码方法的简单论述。根据该标准,每个视频帧在宏块级别被细分和编码,其中每个宏块是16X16像素块。宏块可一起分组在片段中以允许并行化或错误弹性。对于每个宏块,编码的比特流首先包含数据,其以信号通知解码器如何根据已解码的宏块计算该宏块的预测,其次包含残余数据,其被解码并添加到该预测上以重构宏块像素值。每个宏块或者以“帧内预测”模式编码,其中宏块的预测根据当前片段中重构的宏块形成,或者以“帧间预测”模式编码,其中宏块的预测根据已解码的帧(称为参考帧)中的像素块形成。帧内预测编码模式在当前片段内应用空间预测,其中编码的宏块根据当前片段中先前已被编码、解码和重构的邻接样本预测。以帧内预测模式编码的宏块被称为I类型宏块。帧间预测编码模式是基于时间预测的,其中编码的宏块根据先前和/未来的参考帧中的样本预测。如果每个子块根据单 个参考帧进行预测,则以帧间预测模式编码的宏块被称为P类型宏块,或者如果每个子块根据一个或两个参考帧进行预测,则以帧间预测模式编码的宏块被称为B类型宏块。缺省的H. 264行为是以光栅扫描顺序(S卩,从左到右扫描线)将宏块分组到片段中。然而,H. 264标准还引入另一个特征,称为灵活宏块排列,后面简写为FMO。FMO将视频帧分成多个片段组,其中每个片段组包含一组宏块,其可能处于非连续的位置并可能在帧中的任何位置。对于传输,每个片段可使用缺省模式在一个网络抽象层内传输,后面简写为NAL。然而,H. 264/AVC标准还描述附加的每个片段在几个NAL单元上的数据分割的特征,以在片段的传输期间改善错误弹性。根据一个片段在几个分区上的数据分割这个特征,一个片段的编码内容将分布在3个NAL单元上NAL单元分区A、NAL单元分区B和NAL单元分区C。根据标准,NAL单元分区A包含该片段的类别2语法单元,其表示不是残余数据的所有片段有关的语法单元。这些类别2语法单元包括片段头和用于片段内每个宏块的头部数据,包括帧内预测模式、用于帧内编码和帧间编码的运动矢量、宏块等。如果使用帧内预测编码,则NAL单元分区B包含类别3语法单元,其是所考虑的片段的宏块的帧内编码的残余数据,如果使用该类型的编码,则NAL单元分区C包含类别4语法单元,其是帧间编码的残余数据。根据H. 264标准,该数据分割机制可应用于流的任何片段,除了即时解码刷新(IDR)图像的片段以外。IDR图像是仅包含帧内编码的片段并确保所有以前的参考图像不再用于流的后面的图像的帧间预测。IDR图像通常用于在编码流中提供接入点或增强错误弹性。这些NAL单元还进一步被封装成分组,用于通过网络向接收机传输,该接收机包含用于再次解码所接收的分组以允许原始帧被重构来显示的解码器。在输出流没有数据分割的情况下,给定片段的类别2、3和4语法单元被分组在同一个NAL单元中,如编码标准所规定的。因此,与编码结构有关的语法单元和与残余数据有关的语法单元被混合到同一个NAL单元中。在输出比特流使用数据分割的情况下,对于给定片段,类型2、3和4的语法单元被分别放在不同的NAL单元中,其分别被标识为分区A、B和C NAL单元。因此,编码的残余像素数据被包含在分区B和C NAL单元中,而编码的类别2语法单元被包含在分区A中。图I示出典型的现有技术的编码器的主要组件。输入视频流包括原始输入视频数据像素颜色值本身以及可选的某些其它输入数据,诸如用水平和垂直方向上的像素数量表示的帧大小、帧速率、例如YUV或RGB的颜色空间、色度采样的类型(其中例如如果使用YUV,则色度采样的类型表示为4:2:0或4:4:4)等。该输入视频流一方面被转发到标记为“进行编码决策”的模块,其用于进行编码决策以提供与编码本身有关的语法单元。这些语法单元在H. 264中也被称为类别2语法单元,其通常包括如序列和图像参数集、片段头和宏块头、以及所有将在后面对解码器解释如何根据视频的已解码部分构建像素数据的帧内预测和帧间预测的信息的数据。这些语法单元进一步在提供编码的语法单元的类似命名的块中进行熵编码。另一方面,输入视频流还被转发到用于确定由预测构建模块提供的预测像素块与来自输入视频的对应块之间的差的单元。预测构建模块在图I中被标记为“构建预测”,并将自身连接到“进行编码决策”模块以使得预测像素块能够根据这些语法单元生成。然后,最终的残余像素块在类似命名的模块中进一步被变换和量化,以生成处理后残余像素数据。 在H. 264编码器中,这些残余像素数据对应于类别3和4语法单元。在大多数现有技术的编码器中,块变换和量化的计算在正向方向上执行,但通常也在反向方向上执行,如图I中的反馈所描述的。这些反馈步骤通常被添加以确保编码器使用与解码器相同的一组解码帧以进行预测。相对于没有出现这些反馈步骤的“开环”编码器,这种解码器称为“闭环”编码器。现有技术的编码器之间的主要差异通常在于它们进行生成底层编码结构的编码决策的方式,因为这意味着选择帧的类型、划分片段、帧内或帧间预测、帧内预测模式的选择和运动矢量的计算等。因此,这些步骤通常在“进行编码决策”的模块中执行,并通常明显增加编码器的复杂性。最终,与编码有关的语法单元以及编码的残余像素数据被熵编码以根据输入视频流生成一个单独的编码视频流。该组合熵编码在通常包括熵编码器和组合器C的模块中执行。熵编码被理解为包括压缩语法单元以及残余像素块的操作。这些操作包括预测性编码、可变长度编码(Exp-GoIomb,CAVLC)或算术编码(CABAC)步骤,如例如在H. 264标准中规定的。在组合语法单元和残余像素模块之前或之后,可执行上述操作。在图I所述的实施例中,熵编码在组合之前执行,但在其它现有技术的编码器中,该顺序是相反的。在H. 264编码器中,该组合步骤还可以包括分组到NAL单元中,如前面所说明的。相对于这些相当复杂的现有技术的编码器,根据本发明的编码器的实施例在图2a中提供。该实施例El包括用于接收输入视频流的第一输入端子IN1,该输入视频流可以是真实流,但也可以是如先前所述的所存储的文件。该输入视频被标记为IV1。如参照图I所说明的,该输入视频可包括相同的原始视频数据,诸如像素颜色值本身以及可选的某些附加输入数据,诸如以水平和垂直方向上的像素的数量表示的帧大小、帧速率、例如YUV或RGB的颜色空间、色度采样的类型(例如,如果使用YUV,则表示为4:2:0或4:4:4)等。该实施例El还用于构建预测像素块的序列(标记为PPB1),并处理所述预测像素块的序列以及输入视频流的对应块。在实施例El中,该处理包括根据预测像素块和输入视频流的对应块生成残余像素块的序列(标记为RPB1),并变换和量化残余像素块以获得处理后残余像素数据的序列。然而,也可以是其它根据预测像素块和输入视频流的对应块获得处理后残余像素数据的方法。与现有技术的编码器的不同之处在于该实施例El现在包括标记为INRef的附加输入端子,用于接收标记为IREF的参考输入数据,根据该参考输入数据可导出或取得标记为IESD的输入编码结构数据。在图2a的实施例中,IREF仅包括这种输入编码结构,以致输入IREF无需进行任何其它处理以获取IESD。该输入编码结构数据现在用于构建预测像素块,其导致与先前描述的现有技术的编码器相比更低的复杂性。由于编码结构被当作附加输入,而预测像素块可以根据该编码结构构建,因此,如在现有技术中的“进行编码决策”模块中执行的视频序列的详细分析不再需要。从而,编码过程的复杂性大大地降低。残余像素块RPBl还可进行过滤步骤或可选的变换和量化步骤,如图2a所示。然后,处理后残余像素数据QRPDl连同输入编码结构数据IESD被提供给标记为CEE的组合熵编码模块,在图2a的实施例中,其包括熵编码模块和其后的组合模块C。然而,其它用于CEE的实施例也可以,并可包括组合模块和其后的熵编码模块,或者在熵编码例如对分离的数据部分顺序地或并行地执行的情况下,也可包括一系列或一组这样的模块。如先前参照图I所描述的,熵编码被理解为包括压缩语法单元以及残余像素块的 操作。这些操作包括预测性编码、可变长度编码(Exp-Golomb,CAVLC)或算术编码(CABAC)步骤,如例如在H. 264标准中规定的。可以在组合编码结构数据和残余像素块之前或之后执行。处理后残余像素数据的熵编码将产生标记为ERPDl的编码的残余像素数据,而输入编码结构数据IESD的熵编码将产生标记为EIESD的编码的输入编码结构数据。两者的组合将最终生成编码的输出视频流IVl。参考输入数据IREF可以作为数据流或作为独立的数据文件或者其组合来提供。这种参考输入数据的例子将在本文档的后面的段落中给出并说明。还应当注意,对于在本文档所描述的所有实施例,应当理解,适当的缓冲器电路和控制可被提供以控制像素数据存储和提供给在所有附图中标记为“缓冲的像素数据”的缓冲器中或从中提供。缓冲器管理技术对于本领域的普通技术人员来说是已知的,并且由于这些对于理解本发明的实施例是不必要的,因此,为了不使附图过多,这些控制模块未被示出。如先前所描述的,所有用于编码输入视频流IVl以最终获得编码的视频流EVl的步骤也可由一个单独的处理器执行。相对于图I的现有技术的编码器,图2a的实施例不再包括反量化和反变换的解码反馈环路。该开环体系结构有时可导致在解码器的质量漂移,虽然已经显示当编码以足够高的比特率/质量操作点进行时,对质量的影响较小(例如,参见J. S. McVeigh和S. -W. Wu的 “Partial closed loop versus open motion estimation for HDTV compression,,,国际成像系统和技术杂志,1994年第5卷第4号,第268至275页)。另外,因为它们打破了帧间预测链,因此,在比特流中规则插入的IDR图像也可以用作在编码侧和解码侧使用的参考帧的再同步点,从而限制质量漂移在连续的帧上的传播。图2b和2c示出编码器E2和E3的一些变形实现。对于这两个实施例,参考输入数据IREF包括采用编码形式的输入编码结构(标记为EIESD),因此,其首先必须被熵解码以获得输入编码结构数据IESD,其可以用于构建预测像素块。在两个变形中,该熵解码是由标记为EDl的模块执行。解码的输入编码结构数据IESD可与处理后残余像素数据QRPDl —起进行额外的组合熵编码,如图2C的实施例所示,或者包括编码的编码输入结构EIESD的参考数据可以被直接提供给组合熵编码模块CEE的组合模块C,如图2b的实施例所示。图2d示出具有可选的组合熵编码模块CEE的实施例E4,从而输入编码结构数据IESD可首先与处理后残余像素模块QRPBl组合,然后对该组合数据进行熵编码。图3示出具有用于执行反量化和反变换的反馈步骤的模块的编码器E5的实施例。这些模块用于生成等同的解码的残余像素块,然后,其被添加到预测像素块PPB上以生成解码的像素数据DPD,其被临时缓冲或存储。相对于图2a-c的开环实施例,该图3的闭环实施例更具鲁棒性,因为它将进一步防止质量漂移。图4a和4b示出用于编码在各个输入端子INl和IN2上接收的两个输入视频流IVl和IV2的编码器的实施例。在图4a所描述的实施例E6中,参考输入数据IREF包括熵编码的输入结构数据EIESD,其首先被熵解码以获得输入编码结构数据IESD。该数据被共同用 流IVl和IV2各自的编码的残余像素数据ERPDl和ERPD2在各自的组合模块Cl和C2中与输入编码结构数据IESD相结合,以获得用于提供给各自的输出端子OUTl和0UT2的编码的输出视频流EVl和EV2。在图4b所示出的实施例E7中,参考输入数据IREF包括未编码的输入编码结构数据IESD,其因此可被方便地使用而无需任何进一步的解码。如在图2a的实施例El中那样,该输入编码结构IESD在与各个编码的残余像素数据ERPDl和ERPD2相结合之前需要被熵编码。但是,组合熵编码模块CEE的其它实施例可具有熵编码和组合颠倒的顺序。相对于现有技术中对于每个输入视频流必须在预测像素块可被构建之前进行编码决策的情形,所描述的实施例El至E7现在被极大地简化,因为输入编码结构可由外部提供并可共同用于构建各个输入视频流的预测像素块。参考输入数据IREF可包括例如可从已编码的视频流中推出或导出的编码结构,或者可包括基于输入视频流结构的先验知识的数据。包括采用某种形式的输入编码结构数据的参考输入数据的生成将在后面段落中说明。在某些实施例中,诸如图5所示的实施例E8,通过首先执行可选地包括在输入视频流内的所有或部分视频元数据是否匹配输入编码结构数据的检查来进一步提高编码质量。将要被比较的元数据可包括配置数据,诸如用水平和垂直方向上的像素的数量表示的帧大小、帧速率、颜色空间、色度采样的类型和将要被编码的输入视频序列的帧的数量等。如果这些数据在输入视频流中出现,则优选地,这些数据应当与嵌入在由IREF提供的输入编码结构数据中的那些数据相似。如果不是这种情况,则特殊的预处理操作(诸如空间缩放、颜色空间转换、色度格式转换、帧速率的转换或在若干随后的帧中划分等,所有都是根据已知的现有水平的技术)可以对输入视频流IVl进行,作为预处理步骤以便满足这些限制。因此,实施例ES包括标记为“comp”的模块,用于验证在输入视频流IVl内提供的这些配置参数或这些配置参数的一部分与输入编码结构数据一致。应当注意,如果前面的编码器的实施例没被使用时,该实施例在提供这种元数据的情况下是优选的。如果配置数据匹配输入编码结构数据,则输入视频流流将进一步被编码,如例如在图2a-d的实施例中所示的。否则,将使用额外的标记为“Pr印roc”的预处理模块,其中输入视频流首先使用前述的现有的变换在像素域中进行预处理,以获得预处理或更新的视频流,其然后被提交给其它操作,如图2a-d所示。在图5所描述的实施例中,由箭头表示的从比较模块到预处理模块的控制信号Cl通知预处理模块对输入视频IVl执行这些操作或者不执行这些操作。在不需要预处理的情况下,其因此也是输入视频流不包含任何一个这种配置参数的情况,预处理器仅仅原样输出输入视频流;在需要预处理的情况下,因此预处理被执行。来自该预处理模块的输出表示预处理后视频流或者原始视频流本身,被标记为nvi。然后,来自该更新的视频流的更新的像素数据连同输入编码结构数据一起使用以构建预测像素块PPBl。当然,许多其它实施例可用于实现该变形方法。如前面所述,根据本发明的编码器的实施例可对包括编码或未编码的编码结构输入数据的参考输入数据进行操作,并可在它们的输入INRef处包括某些其它分析装置,用于检查参考数据IREF是否已被编码,并根据该分析,从IREF中选择、提取或导出适当的编码结构IESD。
为了进一步提高性能,有时建议输入参考流IREF不包含任何I_PCM宏块。在这些特定的编码器实施例中,如果需要,则这可再次由额外的分析和修正模块进行检查和修正。本领域的普通技术人员能够提供这种模块。根据本发明的编码器的其它实施例可以将前面描述的实施例中的一个与如参照图I描述的现有的编码机制相结合。作为例子,这种实施例可以用于对于每个片段,首先根据例如参照图3说明的方法计算该片段的残余数据,并在与该片段的预测像素块相加后,将所获得的由反馈步骤计算的解码片段与输入视频中的同一个片段进行比较。如果解码片段相对原始片段的例如使用峰值信噪比(PSNR)测量的质量低于某个阈值,则原始片段被重定向到现有的编码器,诸如图I的编码器,以便计算产生更高质量的编码片段的新的编码结构。在这种情况下,该片段的输出编码结构包括该新的编码结构,而不是作为输入提供的编码结构。需要指出,现有的编码器与前面实施例所示的编码器之间的切换决策也可以在更粗粒度(例如在帧级别或在序列级别)或者在更细粒度(例如在宏块级别)进行。需要指出,对于后一种情形,如果宏块的编码结构被更改,则对于在相同片段中的所有随后的宏块,所有依赖于更改后宏块的语法单元还需要重新计算和重新编码。这种情况可能会出现,例如由于量化参数QP、运动矢量和帧内编码模式的预测性编码,或者由于用基于上下文的自适应编码进行编码的语法单元的上下文的变化。包括编码结构数据的参考输入数据IREF可以采用许多方式生成并向编码器提供。在此描述三种可能,但还可设想许多其它方式。第一种可能是使用先前编码的参考视频流的编码结构数据。优选地,该参考流的空间和时间结构应当类似于将要被编码的一个视频流。但是,即使不是这种情况,输入视频流的编码仍然可以发生,而不会有任何功能问题,并可能导致不好的压缩比或PSNR保真度。在图6a中示出用于从这种编码的参考视频流EVREF中获取编码结构数据的装置A的实施例。该装置A用于接收该编码的参考视频流EVREF,并进一步用于熵解码和进一步解析或分析编码数据,以致过滤器可随后提取与编码结构有关的所有语法单元,以便将它们与残余像素数据相分离。解析或分析也可以由过滤器自身执行,因此,不需要对此给出单独的模块。因此,过滤后的输入编码结构数据或流IESD可方便地用作先前描述的编码器的实施例的输入参考数据IREF。可选地,输入编码结构数据IESD可以再次由额外的熵编码步骤压缩,如果这些数据的这种压缩或编码对于其它目的是期望的。最终数据被标记为EIESD。图6b示出这种装置的可选实施例B,其适合于用于从先前编码的视频流EVREFh中获取参考输入数据IREF,其中该先前的编码使用例如根据H. 264标准的附加数据分割特征执行。由于在先的数据分割,编码的参考视频流EVREFh现在可以只在NAL单元级别进行过滤,以从NAL分区B和C中分离NAL分区A分组。尽管在过滤操作之前不需要熵解码,但应当注意,NAL单元A分区仍然包括编码的输入编码结构数据,标记为EIESDh。因此,参考输入数据IREF包括编码的输入编码结构数据,然后优选地,其被提供给诸如在图2b和2c中描述的编码器的编码器的实施例,因为这些编码器包括额外的用于从IREF中获取输入编码结构数据IESD的熵解码器。另一个可能是直接根据将要被编码的输入视频流的结构的先验知识创建输入编码结构数据IESD,该知识本身与将使用编码的视频的应用有关。例如,如果这种应用已经提供关于像素如何在例如已定义的窗口中被分组在图像中以及这些组将如何在随后的图像内在空间上演变的一些知识,则根据由该应用给出的视频模型的准确性,该信息可容易 地转换成可用于压缩视频流本身的编码结构数据或流。这可通过一个简单的例子说明,其中,假定对于给定程序,视频是在统一颜色的背景上移动的标志。还假定该标志具有并行于图像的边界的矩形形状,并且宽和高是16的倍数。还假定它在图像内随时间的位移是已知的,并且在每个时间点,以它仅横跨全部宏块的方式进行定位,由于假定尺寸是16的倍数,因此这是可能的。最后假定标志决不覆盖第一行的宏块或宏块的第一列。因此,不管标志或背景颜色本身,编码结构数据可被生成,其将该假定的视频结构的知识转换成该编码结构,如下所示一在第一个图像中,帧内编码模式用于向其余背景传播第一(左上)宏块的背景颜色,对于被标志覆盖的宏块组,使用任意的帧内编码模式和QP值。在此,标志宏块的压缩效率可能低,因为标志的像素值预先不知道。一在后面的图像中,由于相对于前一个图像,标志的运动是已知的,并可总被表示为16的倍数,因此,每个宏块或者完全处于背景中或者是标志的一个初始宏块。因此,从第二帧开始的每个帧可以被编码为单个P片段,并且对于每个完整的宏块,所有的运动矢量可以事先计算。根据本发明的编码器的实施例有许多应用。第一个应用在图7中表示,并示出用于根据编码的参考流EVREF编码一个或几个输入视频流IVl和IV2的配置Al。该编码的参考流首先被提供给如图5所示的装置A的实施例,用于从中提取参考输入编码结构IESD,其作为输入参考数据IREF被提供给编码器E7的实施例,诸如在图4b中示出的编码器。如参照该图所说明的,该编码器实施例用于生成IVl和IV2各自的编码的残余数据,并随后分别与编码的输入编码结构相组合,以便生成和提供各个编码的输出视频流IVl和IV2。另一个应用在图8中示出,其示出第二配置A2,其包括如前一段所描述的第一配置Al以及标记为ET的附加传统编码器。该传统的现有技术的编码器用于根据现有技术的编码方法来编码参考视频流或参考视频数据VREF,并向第一配置Al提供编码的参考视频流EVREF。然后,Al能够编码两个输入视频流IVl和IV2,以最终提供分别标记为EVl和EV2的编码的输出流。图9示出第三配置的实施例A3,其自身包括在前一个图中示出的第二配置的实施例A2。该第三配置用于接收参考输入视频流VREF以及分别标记为deltal和delta2的各个输入修正数据输入。这些较小的修正将在像素级别被添加到或与参考流VREF相结合时产生各自的输入视频流IVl和IV2。deltal和delta2可以被认为是描述如何修改VREF的像素值以便获取IVl和IV2。通常,根据预先指定的格式,它们可包含一列指令,其描述VREF的哪些像素位置将被修正和VREF中对应的像素值将被如何修改以获得IVl和IV2。这些指令可例如被表示为将要被修正的一列VREF的像素,其中对于每个这种像素,描述一个修正,例如通过将被添加到原始像素值(或从原始像素值中减去)的像素值,或者通过必须替代原始像素值的新的像素值。可选择地,在一些其它情况下,除了列表之外,像素的位置还可用更紧凑的方式表示;例如,如果将要被修正的像素被分组在矩形区域中,该矩形区域的边平行于图像的边,则像素的位置可以由该该矩形的左上和右下像素位置描述。同样,在其它情况下,修改像素值的指令可以被表示为与将在某个像素区域或整个帧上应用的对比度、照明等的变化有关的某些全局图像过滤信息,或者可意味着用具有匹配像素区域的分辨率的给定视频或静态图像代替所定义的像素区域,然后视频或图像数据也可被包括在deltal或delta2内。前面的可能的组合也是可能的。这种情形例如发生在轻量级个性化应用中,其中例如小的标志、画中画(PiP)视频或动画对象被分别添加到原始视频序列的顶部,在这种情况下,原始视频序列可以被认为是参考视频流。由于最终的视频流IVl和IV2 不会明显地不同于参考流VREF,因此,来自EVREF的编码结构IESD可能仍然提供有效的压缩以编码最终的IVl和IV2视频流。一种变形应用涉及添加或掩饰视频场景的某些小的部分,例如,为了隐藏某些品牌名称或标志。根据参考输入视频是什么,delta将包含标志(如果参考视频不包含标志)、或者某些隐藏信息(例如另一个标志)或者任何其它详细说明当标志存在时如何隐藏像素值以在其它情况下明确地隐藏它的指令。水印是可应用在像素域中的轻量级且原则上视觉不易察觉的修正的另一个例子。例如在IPTV情形中,水印允许根据用户的机顶盒所接收的视频流唯一地标识用户。然而,这不需要对每个用户重新编码视频流的个性化版本。使用至少一个版本,各个流的个性化可通过根据唯一的时间模式而从一个版本切换到另一个版本来获得。IDR图像是用于这种切换点的自然候选。图IOa和IOb又示出用于实现另一个应用的第四配置的实施例A4和A4b。该配置用于接收多个输入视频流。为了简化起见并不使附图过于复杂,在图IOa和IOb中描述的两个实施例中,仅示出两个输入视频流IVl和IV2,但该配置也并且特别适用于接收多于两个的输入视频流。实施例包括标记为S的选择模块以选择输入视频流中的一个作为参考流,然后,通过传统的编码器ET对该参考流进行传统的编码。在两个所描述的实施例中,第一个输入视频IVl被选为参考流。然后,标记为EVlT的编码的参考流被提供给第一配置Al,另一个流IV2也将如此。在图IOb的实施例中,编码的参考流EVlT被直接提供以作为该配置的输出编码流EV1。在图IOa的实施例中,根据在本文档中说明的方法,EVlT在模块CEE中再次进行组合熵编码之前被熵解码。这种第四配置的实施例可例如用于立体视频或多视图视频的压缩。对于使用例如基于立体的三维视频或自由视点视频的应用,通常必须捕捉同一个对象或场景的几个视图。例如,在立体视法中,两个视频通常彼此非常接近。当捕捉横跨大范围的视点的多个视频流时,各种流通常可分组在具有彼此接近的视点的流集群中。为了存储或传输具有接近视点的两个或多个视频流,现有技术的方法会独立地压缩和存储/传输各种视图,由于复杂性而带来极大的成本,并且存储/传输成本将与编码的视图的数量呈线性变化。该第四配置提出一种可选方案,包括首先只编码一个视频流,然后重复使用所选择的编码流的编码结构以有效地编码其它视频流。这极大地降低了后面的流的编码复杂性,允许所有流在存储/传输媒体上共享同一个编码结构。特别是对于a 264应用,其中NAL单元A分区可 被共享,这是非常有成本效益的方案。虽然在上面结合特定装置对本发明的原理进行了描述,但应当清楚地理解,该说明是仅仅作为例子进行的,并不是对如后附权利要求所限定的本发明的范围的限制。
权利要求
1.一种用于编码至少一个视频流(ivi,IV2)的方法,所述方法包括以下步骤 一接收所述至少一个输入视频流(IVl,IV2); 一构建预测像素块(PPB1,PPB2)的序列;以及 一处理所述预测像素块(PPB1,PPB2)的序列和所述至少一个输入视频流(IV1,IV2)的对应块,以获得处理后残余像素数据(QRPDl,QRPD2)的序列; 其中,所述预测像素块(PPB1,PPB2)的序列根据来自参考输入数据(IREF)的输入编码结构数据(IESD)构建,所述输入编码结构数据(IESD)还与所述处理后残余像素数据(QRPDI, QRPD2) 一起进行组合熵编码步骤,从而获得至少一个编码的视频流(EV1,EV2)。
2.如权利要求I所述的方法,其中,所述处理包括根据所述预测像素块(PPB1,PPB2)与所述至少一个输入视频流(IV1,IV2)的对应块之间的差生成残余像素块(RPB1,RPB2)的序列;变换并量化所述残余像素块(RPB1,RPB2)的序列,从而获得所述处理后残余像素数据(QRPDI,QRPD2)的序列。
3.如权利要求I或2所述的方法,其中,所述参考输入数据(IREF)包括编码的输入编码结构数据(EIESD),以致所述输入编码结构数据(IESD)通过对所述参考输入数据(IREF)进行熵解码而从所述参考输入数据(IREF)中获得。
4.如权利要求I至3任意一项所述的方法,还包括以下步骤将所述至少一个输入视频流(IVl)的配置数据与所述输入编码结构数据(IESD)进行比较,并且如果数据不匹配,则所述至少一个输入视频流(IVl)进一步被预处理,从而生成至少一个更新输入视频流(Πν ),以致所述残余像素块根据所述预测像素块(PPBl)与所述至少一个更新输入视频流的对应块之间的差确定。
5.如权利要求I至4任意一项所述的方法,还包括以下步骤从编码的参考视频流(EVREF,EVREFh)中提取所述参考输入数据(IREF)。
6.如权利要求5所述的方法,还包括以下步骤对参考视频流(VREF)编码以提供所述编码的参考视频流(EVREF )。
7.如权利要求6所述的方法,其中,所述至少一个输入视频流(IVl,IV2)根据所述参考视频流(VREF)和输入修正数据(deltal,delta2)生成。
8.一种用于编码多个视频流(IV1,IV2)的方法,所述方法包括以下步骤选择所述视频流(IV1,IV2)中的一个作为参考视频流(VREF),所述参考视频流(VREF)进一步被编码以获得编码的参考视频流,由此,其它视频流进一步根据权利要求5进行编码。
9.一种用于编码至少一个视频流(IV1,IV2)的编码器(E1-E8),所述编码器包括至少一个输入端子(INI,IN2),用于接收所述至少一个输入视频流(IV1,IV2);所述编码器进一步用于构建预测像素块(PPB1,PPB2)的序列,处理所述预测像素块(PPB1,PPB2)的序列和所述至少一个输入视频流(IV1,IV2)的对应块,从而获得处理后残余像素数据(QPRD1,QPRD2)的序列; 其中,所述编码器还包括附加输入端子(INRef ),用于接收参考输入数据(IREF); 所述编码器进一步用于根据来自所述参考输入数据(IREF)的输入编码结构数据(IESD)来构建所述预测像素块(PPB1,PPB2)的序列,并对所述参考输入数据(IREF)连同所述处理后残余像素数据(QPRD1,QPRD2)进行熵编码,从而生成至少一个编码的视频流(EV1, EV2)以提供给所述编码器的至少一个输出端子(0UT1,0UT2)。
10.如权利要求9所述的编码器(E1-E8),还包括熵编码器和组合器(C;C1;C2)。
11.如权利要求9或10所述的编码器(E1-E8),还用于通过根据所述预测像素块(PPB1, PPB2)与所述至少一个输入视频流(IV1,IV2)的对应块之间的差生成残余像素块(RPB1, RPB2)的序列、变换并量化所述残余像素块(RPBl,RPB2)的序列以获得所述处理后残余像素数据(QRPD1,QRPD2)的序列来处理所述预测像素块(PPB1,PPB2)和所述至少一个输入视频流(IVI,IV2)的对应块。
12.如权利要求9所述的编码器(E2,E3,E4,E6),其中,所述参考输入数据(IREF)包括编码的输入编码结构数据(EIESD);所述编码器(E2)还包括熵解码器(EDl ),用于对所述参考输入数据(IREF)进行熵解码以生成所述输入编码结构数据(IESD)。
13.如权利要求9至11任意一项所述的编码器(ES),还用于将所述至少一个输入视频流(IVl)的配置数据与所述输入编码结构数据(IESD)进行比较,如果数据不匹配,则预处理所述至少一个输入视频流(IV1),以生成至少一个更新输入视频流(UIV1),以致所述残 余像素块(PPB1)根据所述预测像素块与所述至少一个更新输入视频流(UIV1)之间的差确定。
14.第一装置(Al),包括根据权利要求9-13任意一项所述的编码器(E1-E8);以及用于从编码的参考视频流(EVREF,EVREFh)中提取所述参考输入数据(IREF)以提供给所述编码器(E1-E8)的装置(A,B)。
15.第二装置(A2),包括根据权利要求14所述的第一装置(Al);以及编码器(ET),用于编码参考视频流(VREF),以将因此获得的编码的参考流(EVREF)提供给所述第一装置(Al)。
16.第三装置(A3),包括根据权利要求15所述的第二装置(A2);以及至少一个视频组合装置(VCM1,VCM2),用于根据所述输入参考视频流(VREF)和输入修正数据(deltal,delta2)生成所述至少一个输入视频流(IV1,IV2)以提供给所述第二装置(A2)。
17.第四装置(A4;A4b),用于接收多个输入视频流(IV1,IV2),并包括选择装置(S),用于选择所述多个输入视频流中的一个输入视频流(IVl)作为参考视频流;以及编码器(ET),用于对所述参考视频流进行编码以生成编码的参考视频流(EVl)以提供给所述第四装置(A4,A4b)的第一输出并提供给在所述第四装置内包括的根据权利要求14所述的第一装置(Al),所述第一装置进一步用于对所述多个输入视频流中的其它输入视频流(IV2)进行编码,并将其它编码的视频流(EV2)提供给所述第四装置(A4,A4b)的其它输出。
全文摘要
一种用于编码至少一个视频流(IV1,IV2)的方法,包括以下步骤接收所述至少一个输入视频流(IV1,IV2),构建预测像素块(PPB1,PPB2)的序列,处理所述预测像素块(PPB1,PPB2)的序列和所述至少一个输入视频流(IV1,IV2)的对应块,以获得处理后残余像素数据(QRPD1,QRPD2)的序列,其中,所述预测像素块(PPB1,PPB2)的序列根据来自参考输入数据(IREF)的输入编码结构数据(IESD)构建,所述输入编码结构数据(IESD)还与所述处理后残余像素数据(QRPD)一起进行组合熵编码步骤,以获得至少一个编码的视频流(EV1,EV2)。还公开了编码器和几种包括这种编码器的装置。
文档编号H04N7/26GK102783148SQ201080058560
公开日2012年11月14日 申请日期2010年12月20日 优先权日2009年12月21日
发明者J-F·麦克 申请人:阿尔卡特朗讯公司