可分级视频编解码器的编码设备及其方法转让专利

申请号 : CN201210105257.4

文献号 : CN102740071B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王利民杨寅夏张香君郭欣赵勖罡

申请人 : VIXS系统公司

摘要 :

本公开涉及可分级视频编解码器的编码设备及其方法。按照可分级视频编码(SVC)技术对视频信号编码使用两个分别用于基础层和增强层的不同编码通路,从而两个编码通路共享公用的硬件编码模块。举例来说,控制模块可以将所接收的与基础层关联的视频信息直接路由给硬件编码器模块予以编码,而将与增强层关联的视频信息路由给升级器。然后,将升级后的视频信息提供给硬件编码器模块以供以与对基础层信息进行处理的方式类似的方式予以处理。硬件编码器将经编码的视频信息提供给另一个控制模块,该控制模块根据经编码的视频信息与基础层关联还是与增强层关联,确定将信息相应地路由给硬件熵编码器还是软件熵编码器。

权利要求 :

1.一种编码方法,包括:

用第一编码通路对可分级视频编码流的基础层进行编码(302),所述第一编码通路包括第一硬件编码模块;以及用与第一编码通路不同的第二编码通路对可分级视频编码流的增强层进行编码(304),所述第二编码通路包括所述第一硬件编码模块,其中所述编码方法还包括:

接收第一图像帧;

响应于确定(404)要将第一图像帧编码(302)为基础层的一部分,通过第一输入端将第一图像帧提供(408)给所述第一硬件编码模块,并通过使用所述第一硬件编码模块将第一图像帧编码为基础层帧;以及响应于确定要将第一图像帧编码为增强层的一部分,将第一图像帧升级(410),并通过第一输入端将升级后的第一图像帧提供给所述第一硬件编码模块以对升级后的第一图像帧进行编码,其中所述升级改变代表所述第一图像帧的像素的数量。

2.如权利要求1所述的编码方法,还包括:

接收来自第一编码通路和第二编码通路两者共用的输出端的经编码的信息;

响应于确定经编码的信息是基础层信息,按照第一熵编码处理对经编码的信息进一步编码;以及响应于确定经编码的信息是增强层信息,通过按照第二熵编码处理对经编码的信息进行处理来对增强层进一步编码。

3.如权利要求1所述的编码方法,还包括:

接收来自第一编码通路和第二编码通路两者共用的输出端的经编码的信息;

响应于确定经编码的信息是基础层信息,按照第一熵编码处理对经编码的信息进一步编码;以及响应于确定经编码的信息是增强层信息,通过按照第二熵编码处理对经编码的信息进行处理来对增强层进一步编码。

4.如权利要求3所述的编码方法,其中,按照第一熵编码处理处理经编码的信息包括:在硬件熵编码模块处理(508)经编码的信息。

5.如权利要求4所述的编码方法,其中,按照第二熵编码处理处理经编码的信息包括:在软件熵编码模块处理(506)经编码的信息。

6.如权利要求1所述的编码方法,其中,所述第一编码通路和第二编码通路都包括第二硬件编码模块。

7.如权利要求1所述的编码方法,其中,所述第一硬件编码模块要执行以下中的一个或多个:预测内预测模式;

确定在输入端所接收的视频信息的多个运动矢量;

基于在输入端所接收的第一运动矢量,确定第二运动矢量;

基于在输入端所接收的像素值,确定经量化的系数;和/或确定在一个或多个输入端所接收的运动矢量之间的差别。

8.一种编码设备,包括:

包括第一硬件编码模块(106)的第一编码通路,所述第一编码通路用来对可分级视频流的基础层编码;

包括第一硬件编码模块的第二编码通路,所述第二编码通路用来对可分级视频流的增强层编码;以及包括接收图像帧的输入端的第一控制模块(105),所述第一控制模块用来响应于确定要将图像帧编码到基础层中,通过经第一输入端将图像帧提供给第一硬件编码模块来对基础层编码,并且响应于确定要将图像帧编码到增强层中,通过将图像帧升级并经第一输入端将升级后的图像帧提供给所述第一硬件编码模块来对升级后的增强层编码,其中所述升级改变代表所述图像帧的像素的数量。

9.如权利要求8所述的设备,还包括:

接收来自与第一编码通路和第二编码通路关联的输出端的经编码的信息的第二控制模块,所述第二控制模块用来响应于确定经编码的信息与基础层关联,将经编码的信息提供给第一熵编码处理,并且响应于确定经编码的信息与增强层关联,将经编码的信息提供给第二熵编码处理,所述第二熵编码处理与第一熵编码处理不同。

10.如权利要求8所述的编码设备,还包括:

接收来自与第一编码通路和第二编码通路关联的输出端的经编码的信息的控制模块,所述控制模块用来响应于确定经编码的信息与基础层关联,将经编码的信息提供给第一熵编码处理,并且响应于确定经编码的信息与增强层关联,将经编码的信息提供给第二熵编码处理,所述第二熵编码处理与第一熵编码处理不同。

11.如权利要求10所述的编码设备,其中,所述第一熵编码处理在第二硬件编码模块(109)执行,而所述第二熵编码处理在软件编码模块(107)执行。

说明书 :

可分级视频编解码器的编码设备及其方法

技术领域

[0001] 本公开一般涉及视频处理,尤其是涉及视频编码。

背景技术

[0002] 视频编码可以使经压缩的视频信号以降低的带宽发送和存储在较小的存储器部分内。压缩和其他处理的程度可以影响编码视频信号解码后所得到的视频图像的质量和分辨率。因此,要编码的视频信号通常被编码成具有足够的信息以考虑到显示分辨率、帧率和可以由具有特定处理和显示能力的显示设备再现的其他涉及质量的参数。然而,在有些情况下,所希望的是将共用的视频流提供给支持各种处理和显示特征的不同设备,以限制在显示时需要完成的处理量。例如,在视频会议中,有用的是为每个会议节点提供一份共用的视频信号,以使得所有的会议参与者都可以观看同一个视频。然而,各种节点处的显示设备可能具有不同的处理和显示能力。一个途径是将视频信号编码成具有与能力最强的显示设备关联的质量参数,而使每个能力较差的设备对视频信号进行再处理以适应较差的视频质量。然而,这会导致通信带宽的利用效率低,以及使每个接收设备要承担不希望的处理负荷。

附图说明

[0003] 本领域技术人员通过参照附图可以更好地理解本公开,并且明白本公开的许多特征和优点。在不同的附图中同样的标号所标的是类似或相同的项目,其中:
[0004] 图1为例示按照本公开的一个实施例的视频编码器的方框图;
[0005] 图2为例示按照本公开的一个实施例的图1的硬件编码器的方框图;
[0006] 图3为按照本公开的一个实施例的对可分级(scalable)视频编码的视频流进行编码的方法的流程图;
[0007] 图4为按照本公开的一个实施例的在图1的视频编码器路由图像帧的方法的流程图;以及
[0008] 图5为按照本公开的一个实施例的在图1的视频编码器路由经编码的视频信息的方法的流程图。

具体实施方式

[0009] 图1-5例示了按照H.264压缩标准的可分级视频编码(SVC)扩展,通过将两个不同的编码通路分别用于基础层和增强层来对视频信号进行编码,从而这两个编码通路共享公用硬件编码模块的示例性技术。具体地,控制模块可以将所接收的与基础层关联的视频信息直接路由给硬件编码器模块予以编码,而将与增强层关联的视频信息路由给升级器(upscaler)。然后,将升级后的视频信息提供给硬件编码器模块,以与对基础层信息进行处理的方式类似的方式予以处理。硬件编码器将经编码的视频信息提供给另一个控制模块,其基于经编码的视频信息与基础层还是增强层关联,确定将信息相应地路由给硬件还是软件熵编码器。通过对于基础层和增强层二者都使用公用硬件编码器模块,因此提高了编码效率。
[0010] 作为例示,SVC视频流是包括一个基础层和一个或多个增强层的视频信息流。可以对基础层单独解码以确定与SVC视频流关联的具有最低质量特性(诸如分辨率和帧率)的基础视频流。可以结合基础层对增强层解码以确定与基础视频流相比具有提高的质量特性的视频流。如在这里还要进一步说明的那样,基础层和增强层可以用不同的各自编码通路编码。如在这里所使用的那样,编码通路是指用以对视频信息进行编码的一组处理,并且可以包括硬件编码模块、软件编码模块和它们的任意组合。如在这里所使用的那样,硬件编码模块是一组硬件,其专用于执行在对视频流编码中所使用的一个或多个处理,诸如内预测、运动搜索、运动精化、模式判定、运动矢量差分(differential)、变换(transform)和量化之类。如在这里所使用的那样,硬件编码模块并不是指被编程成执行视频编码处理的通用处理器,也不是指执行一般数据通信、数据管理、存储器传送或视频编码器的其他开销功能的模块。
[0011] 图1例示了按照本公开的一个实施例的视频编码器100。视频编码器100是数据处理设备,其一般被配置成将原始视频信息编码成一个或多个经编码的视频流。作为例示,视频编码器100可以是包括多个会议节点的视频会议系统的一部分。会议节点中的一个或多个可以将表示诸如数字摄像机之类的视频获取设备所获取的原始视频信息的视频信号提供给视频编码器100。视频编码器100可以用可分级视频编码对原始视频数据编码,并将所得到的经SVC编码的视频流提供给通信接口以传送给其他会议节点。
[0012] 视频编码器100包括多路复用器102、升级器103、编码器控制模块104、基础/增强控制模块105、硬件编码器106、软件熵编码器107、基础/增强控制模块108、硬件熵编码器109和基础/增强层合并器110。多路复用器102包括多个输入端,每个输入端接收标为″S1″、″S2″、″S3″和″S4″中的一个相应的视频流。多路复用器102还包括连接到基础/增强控制模块105上的输出端和连接到编码器控制模块104的控制输入端。基础/增强控制模块105包括与升级器103和硬件编码器106的连接。升级器103包括与多路复用器102的输入端的连接以提供视频流S4。硬件编码器106包括与基础/增强控制模块108的连接,而基础/增强控制模块108包括与软件熵编码器107和硬件熵编码器109的连接。基础/增强层合并器110也包括与软件熵编码器107和硬件熵编码器109的连接。
[0013] 视频流S1-S3是视频编码器100从所接收的视频信号(未示出)中提取的视频信息流。在一个实施例中,视频信号可以表示存储在诸如光盘或磁盘、磁带或其他介质之类的记录介质内的视频信息。在另一个实施例中,视频信号可以通过诸如局域网或广域网之类的通信网络接收。流S1-S3每一个都由一系列图像帧组成,而每个图像帧由一组像素组成。多路复用器102被配置成在其输出端提供基于在控制输入端接收到的信息从视频流S1-S4中选出的一个视频流的帧。
[0014] 编码器控制模块104将控制信息提供给多路复用器102的控制输入端,以选择要编码的下一个帧。具体地,通过由控制信息选择所指定的流,编码器控制模块104使多路复用器104在其输出端提供所指定的视频流的帧。在一个实施例中,编码器控制模块104以循环(round robin)方式选择视频流。在另一个实施例中,编码器控制模块可以确定哪些流具有可供处理用的帧,并且以预定义或可重新编程的次序选择那些流。
[0015] 基础/增强控制模块105被配置成根据要将帧编码在SVC视频流的基础层内还是在SVC视频流的增强层内路由所接收的帧。基础/增强控制模块105可以基于从诸如处理器之类的控制模块(未示出)接收到的信息、基于所接收的帧本身内的信息、基于接收到帧的时间、基于帧在所关联的视频流内的位置或者它们的组合进行确定。响应于确定要将所接收的帧编码在基础层内,基础/增强控制模块105就将该帧提供给硬件编码器106。响应于确定要将所接收的帧编码在增强层内,基础/增强控制模块105就根据从控制模块接收到的信息、存储在帧本身内的信息或者它们的组合确定该帧是否已被升级。如果确定帧还没有被升级,基础/增强控制模块105就将该帧提供给升级器103。如果基础/增强控制模块105确定帧已被升级,就将该帧提供给硬件编码器106。
[0016] 升级器103被配置成将所接收的帧升级,从而增加表示该帧的像素的数目。升级器103可以通过对像素值进行内插、通过重复像素值或通过使用其他升级技术来进行升级。升级技术和升级的数量可以是预定的、可以由从控制模块接收到的控制信息指示,或者可以由包含在帧内的信息指示。
[0017] 硬件编码器106包括一个或多个硬件编码模块,用来将所接收的帧编码成经编码的视频信息。在一个实施例中,硬件编码器按照所指定的编码技术,诸如H.264编码标准,对所接收的帧进行编码。在另一个实施例中,硬件编码器106所使用的编码技术是可重新编程的,并基于控制模块所提供的控制信息。
[0018] 基础/增强控制模块108被配置成根据所接收的信息是增强层信息还是基础层信息来路由所接收的经编码的视频信息。响应于确定所接收的经编码的视频信息是增强层信息,基础/增强控制模块108就将该经编码的视频信息提供给软件熵编码器107。如果确定所接收的经编码的视频信息是基础层信息,基础/增强控制模块108就将该经编码的视频信息提供给硬件熵编码器109。
[0019] 软件熵编码器107是在处理器(未示出)上执行的软件例程。软件熵编码器107按照相关联的熵编码技术对所接收的经编码的视频信息进行熵编码。硬件熵编码器109是专用于按照相关联的熵编码技术对所接收的经编码的视频信息进行熵编码的硬件模块。在一个实施例中,软件熵编码器107所执行的熵编码不同于硬件熵编码器109所执行的熵编码。例如,软件熵编码器107和硬件熵编码器109可以执行不同的熵编码处理,或者可以执行相同的但具有不同的编码参数的熵编码处理。
[0020] 基础/增强层合并器将所接收的增强层信息与基础层信息合并以形成SVC视频流。在视频编码器110的输出端提供SVC视频流以提供给通信接口或者供存储用。
[0021] 在操作中,视频编码器100用两个不同的编码通路对基础层信息和增强层信息进行编码。具体地,用于基础层信息的视频编码通路包括硬件编码器106和硬件熵编码器109。相对与此,用于增强层信息的视频编码通路包括硬件编码器106和软件熵编码器107,而不包括硬件熵编码器109。因此,这两个视频编码通路都包括硬件编码器106。通过使用硬件编码器106对SVC视频流的基础层和增强层两者编码,因此提高了编码处理的效率。例如,常规的SVC编码器通常使用软件而不是专用的软件模块对增强层信息进行编码。这会使编码处理比用专用硬件模块的编码要慢。
[0022] 图2例示了按照本公开的一个实施例的图1的硬件编码器106。硬件编码器106包括控制模块220、运动搜索(MS)模块221、内预测(IP)模块222、运动精化(MR)模块223、模式判定(MD)模块224、运动矢量差分(MVD)模块226、和变换量化曲折(Transform,Quantization,and Zig-zag,即TQZ)模块227。硬件编码器106还包括解码器230。控制模块220包括接收图像帧的输入端和与MS模块221的连接和与IP模块222的连接。MS模块221还包括与MR模块223的连接和与解码器230的连接。MR模块223和IP模块222每一个都包括与MD模块224的连接,而MD模块224还包括与MVD模块226的连接。MVD模块226包括与TQZ模块227的连接。TQZ模块227包括与解码器230的连接和提供经编码的视频信息的输出端。在另一个实施例中,所例示的这些模块中的每一个通过公用总线与其他模块连接。
[0023] 控制模块220接收图像帧,并根据所述帧将视频信息路由给MS模块221和IP模块222之一或两者。MS模块221被配置成根据从帧的列和行到像素值的宏块(诸如16个像素x 
16个像素的大小)的分割和/或其他控制信息,处理从控制模块220接收到的图像帧。在一个实施例中,MS模块221为帧的每个宏块或每对宏块确定表示该宏块(或子块)从视频信号的基准帧或基准场到当前帧或场的位移的一个或多个运动矢量。在操作中,运动搜索模块在搜索范围内进行操作以便以整数像素级(integer pixel level)的精度(诸如为1个像素的分辨率)定位当前帧或场内的宏块(或子块)。根据用于确定具有最有利(诸如最低)成本的位置和相应运动矢量的成本公式,估计出候选位置。
[0024] 运动精化模块223被配置成根据所接收的运动搜索运动矢量,为多个宏块中的每个宏块产生精化后运动矢量。在一个实施例中,MR模块为一帧的每个宏块或每对宏块确定表示该宏块从视频信号的基准帧或基准场到当前帧或场的位移的精化后运动矢量。
[0025] 根据像素和内插像素,MR模块223将宏块在当前帧或场内的位置精化到更高的像素级精度,诸如1/4个像素的分辨率或其他子像素的分辨率。还根据用于确定具有最有利(诸如最低)成本的位置和精化后运动矢量的成本公式,估计出候选位置。
[0026] IP模块222为多个宏块的每个宏块产生内预测模式。在一个实施例中,IP模块222如H.264标准所规定的那样进行操作,然而同样可以使用其他内预测技术。具体地,内预测模块222基于根据相邻宏块确定的运动矢量估计多个IP模式,诸如为luma预测模式的内4x4或内16x16、色度预测(8x8)或其他内编码,以确定内预测模式和相关联的成本。
[0027] 模式判定模块212根据与精化后运动矢量、直接模式运动矢量和最佳内预测模式(尤其是产生最低成本或其他指定成本的方法)关联的成本,确定多个宏块中的每个宏块的最终宏块成本。
[0028] MVD模块226被配置成确定所接收的运动矢量之间的差别。这个差分信息可以供随后对经编码的视频信息进行熵编码使用。
[0029] TQZ模块227通过将剩余像素值变换、编码、量化和曲折编码成经量化的变换后的系数,产生经编码的视频信号,其可用诸如熵编码进一步编码。解码器230被配置成将TQZ模块227所提供的经编码的视频信息解码并将解码后的视频信号提供给MS模块221。
[0030] 解码器230是视频解码器模块,其被配置成将TQZ模块227所提供的视频信息解码,并将解码后的视频信息提供给MS模块221。这使MS模块221可以减少在视频编码中的误差。在所例示的这个实施例中,解码器230包括升级器231,解码器230用它执行视频解码。在一个实施例中,升级器231使用与图1的升级器103相同的硬件模块。通过将同一个升级器用于视频解码和与增强层关联的图像帧的升级,可以减小视频编码器100的总面积。
[0031] 在一个实施例中,图2中所例示的硬件编码模块被配置成同时操作以根据不同的所接收的帧来产生经编码的视频信息。因此,这些硬件编码模块中的每一个可以对与不同的视频流关联的图像帧信息进行操作。例如,在特定的时间点,IP模块222可以处理与流S1关联的图像帧,而在同一个时间点,MVD模块处理与流S4关联的图像帧或基于图像帧的信息。此外,硬件编码器106的硬件编码模块可以同时处理经SVC编码的视频信号的基础层和增强层的视频信息。因此,例如,在MS模块221处理与增强层关联的视频信息的同时,MD模块212可以处理与基础层关联的视频信息。
[0032] 图3例示了按照本公开的一个实施例的操作视频编码器100的方法的流程图。在方框302,视频编码器100用包括硬件编码器106和硬件熵编码器109的编码通路对SVC视频流的基础层编码。在方框304,视频编码器100用包括硬件编码器106和软件熵编码器107而不包括硬件熵编码器109的编码通路对SVC视频流的一个或多个增强层编码。
[0033] 图4例示了按照本公开的一个实施例的在图1的基础/增强控制模块105路由所接收的图像帧的方法。在方框402,基础/增强控制模块105接收来自多路复用器102的图像帧。在方框404,基础/增强控制模块105确定要将该图像帧编码在SVC视频流的基础层内还是在增强层之一内。响应于确定要将所接收的帧编码在基础层内,在方框408由基础/增强控制模块105将该帧提供给硬件编码器106。响应于确定要将图像帧编码在增强层之一内,方法流程就进至方框406,并且基础/增强控制模块105确定该图像帧先前是否已被升级。如果是,方法流程就进至方框408,基础/增强控制模块105将先前已升级的图像帧提供给硬件编码器106以供编码。如果图像帧先前没有被升级,方法流程就进至方框410,并且基础/增强控制模块105将该帧提供给升级器103,其将该帧升级。在方框412,升级器103将经升级的帧置入视频流S4,其供多路复用器102选用。
[0034] 图5例示了按照本公开的一个实施例的在基础/增强控制模块108路由经编码的视频信息的方法。在方框502,基础/增强控制模块108接收经编码的视频信息。在方框504,基础/增强控制模块108确定要将所接收的信息编码在SVC视频流的基础层内还是在增强层之一内。如果要将所接收的经编码的视频信息编码在增强层之一内,方法流程就进至方框506,并且基础/增强控制模块108将所接收的经编码的视频信息提供给软件熵编码器107以供熵编码。如果要将所接收的经编码的视频信息编码在基础层内,方法流程就进至方框
508,并且基础/增强控制模块108将所接收的经编码的视频信息提供给硬件熵编码器109以供熵编码。
[0035] 此外,根据本公开的一个实施例,提供了一种方法,包括:接收来自第一硬件编码模块的视频信息;响应于确定视频信息与可分级视频流的基础层关联,按照第一熵编码处理来视频信息处理;以及响应于确定视频信息与可分级视频流的增强层关联,按照与第一熵编码处理不同的第二熵编码处理来处理视频信息。此外,按照第一熵编码处理来处理视频信息包括:在第二硬件编码模块处理视频信息,而按照第二熵编码处理来处理视频信息包括:在软件编码模块处理视频信息。此外,所述方法还包括:将基础层与增强层合并以形成可分级视频流。
[0036] 本公开的其他实施方式、用途和优点对于考虑到本说明书和在这里所揭示的公开内容的实践的本领域技术人员来说是清楚的。本说明书和附图只是示例性的,因此意欲使本公开的范围仅由以下权利要求及其等同来限定。