译码器的制作方法

文档序号:7575436阅读:316来源:国知局
专利名称:译码器的制作方法
技术领域
本发明涉及用于在第一和第二编码机制中的信号之间的转换的译码器。该译码器具体适用于转换二-和三-维图象和视频信号。
当必须通过一传输链路长距离传输运动图象电视时,会有许多偶然性。当以数字形式传输时,广播质量的电视要求传输速率超过100Mbit/s,这对于传输来说很昂贵,并要求高带宽的链路。可以在图象质量上引入一个可以接受的降级,以减少要传输的信息内容。附加的或可选择的,可以使用压缩编码技术,它利用了编码的视频信号中高的空间和时域冗余度。
也有其他使用压缩编码技术的申请。这样,例如,鉴于包括声音的电视电话质量的图象可以压缩到低于64kbit/s,对于视频参考申请,可以压缩到几百kbit/s的位速率。
冗余减少技术假设在邻近的象素或象素块之间的存在空间和/或时域的相关性。相关性的细节可以和该假设和实际象素或象素块之间的差别一起进行编码。典型地,将被编码的图象的每一帧包括一个图象元素(象素)集合,它们被分为N×M块。
预测编码利用了这样的假设,即一帧中的一个值与在相同帧或不同帧中的一些相邻值相关,因此可以在接收机中计算该值,而不需传输。这样仅需要由这一假设得出的预测误差。例如,可以精确传输一帧的第一象素,而每一后续象素仅作为其预测器输出的差值来传输。在更多的复杂机制中,可以由许多象素的组合发现该预测。
变换编码通过将幅值变换为另一组值来利用在一帧内的象素的幅值间的相关性,它们中的多数期望相对较小,因此可以用较少的比特来编码。变换编码的最通常的形式为使用离散余弦变换(DCT)。将一个N×M象素块变换为一个N×M变换相关值的集合。通过用一个量化因子来除每一个相关值来对所得到的相关值集合进行量化。可以通过一个长度可变码,例如一个Huffman码来对所量化的相关值进行编码。
另一种编码技术是运动补偿,其中一幅图象被分为一些象素块,当前帧的每一块与一个参考帧的相应块进行比较,该参考帧可以是一个在前和/或后续帧,并具有一个在位置上由该块移动的区域,标识该块最接近的参考帧的该区域。
称在标识区域和所感兴趣的块之间的位置的矢量差为运动矢量,并将该运动矢量用于将参考帧的标识区域移动到当前帧的相关块中。对于当前帧的所有块产生运动矢量,并将该运动矢量用于由参考帧获得预测帧。在当前帧与预测帧之间的差值平均小于在当前帧与参考帧之间的差值,并可以用更少的比特来编码。从而,已存储了参考帧的解码器可以使用运动矢量和差值来再建当前帧。可以单独使用任何上述编码技术或使用上述技术的组合对信号进行编码。
此外,在将来,可以合理期望地是,可以同时提供一个宽范围的诸如HDTV等高质量视频服务与诸如电视电话和视频会议的较低质量视频服务。最可能的是,将来不仅可经计算机网络,而且可经电话线、ISDN、ATM或甚至移动网络检索包含视频的多媒体文档。具有不同位速率和变化的通信负载的经上述几种类型链路或网络的传输将要求位速率适合于可用信道容量。该系统的一个主要限制是在与传输格式相关的级别以下的任何级别的解码将不需要传输源的完全解码。
为了将这些各种质量视频服务的集成最大化,期望有一个可提供非限制范围视频服务的单独编码机制。这种编码机制使得用户可以用不同质量相互间通信。例如,一个只预定较低质量视频服务的用户应可以用他所预定的较低质量视频级别来解码和再建一个数字传输的较高质量的视频信号。相似的,较高质量服务用户应可以编码和再建一个数字传输的较低质量视频信号,虽然,其质量当然不会好于其传输质量。
因此存在一些与其中将视频信号传输给具有不同要求(图象质量,处理能力,存储要求,解析度,带宽,帧速率等)的用户的方法有关的问题。以下几点总结了上述要求-满足具有不同带宽要求的用户,-满足具有不同计算能力的用户,-使帧速率、解析度和压缩比适应于用户偏爱和可用带宽,-使帧速率、解析度和压缩比适应于网络能力,-短时延,和-如果要求,与标准保持一致。
一个对于满足接收机不同要求的问题的解决方法是设计可调整比例的位流,在发射机与接收机之间通常可能没有直接的互相影响。通常,发射机可以产生一个包含各层的位流,具有在解析度、带宽、帧速率、存储或计算复杂性方面的不同要求的接收机可以使用所述各层。如果增加了不具有与前面接收机相同的要求的新接收机,则必须对发射机再编程以容纳下新接收机的要求。简要起见,必须预先知道解码器的性能。
此外,可调整位流的设计可以导致与实现相同质量的单个位流相比的更高的比特数量。一个可调整位流也要求计算能力更强的编码器,它可以由与所述不同接收机数目相等的编码器组成。
该问题的另一种解决方法是使用译码器。译码器接收根据第一编码机制编码的所接收的数据流并输出根据第二编码机制编码的一个编码数据流。如果一个用户具有一个根据第二编码机制运作的解码器,则这种译码器允许接收根据第一编码机制编码的发送信号,而不需修正原编码器。例如,该译码器可用于由用于发送的ISDN视频端子经ITU-T标准H.263的电话线将一个与ITU-T标准H.261相一致的128kbit/s视频信号转变为28.8Kbit/s信号。
大多数已知的译码器将根据第一编码机制的视频信号解码为未压缩的视频信号,然后一个编码器根据第二编码机制对该视频信号进行编码以输出一个新压缩的数据流。从而实施了一个完全的解码操作以再建原始信号,然后根据第二编码机制对再建信号进行编码以提供一个新编码的数据流。对于包括运动补偿在内的编码方法,对于根据新编码机制编码的信号必须产生新的运动矢量,这占据了普通译码器的大部分时间。
在最近发表的著作已描述了用于视频信号的各种译码器结构。该研究主要集中在速率译码上,即由某一个位速率译码到一个较低的位速率上,而不需改变其解析度。此外,国际专利申请WO95/29561公开了一种译码器,它由输入、接收的数据流中提取出运动矢量,并将该运动矢量传给译码器的编码部分的数据流,从而避免了运动矢量的再计算。
虽然在上述国际专利申请中所描述的译码器看似适合于速率降低,但当译码器的编码器必须以一种不同的空间解析度(例如CIF和QCIF)对已编码的视频序列(在译码器中)进行编码时,该译码器将不能工作。这是由于在该国际专利申请WO95/29561中公开的译码器对具有不同空间解析度的两种视频信号进行不同的操作,一种由译码器的解码器端产生而另一种由编码器端产生。
此外,国际专利申请WO95/29561未处理在空间解析度上的一个变化能如何有效地完成的问题。因此,WO95/29561中所述的译码器仅适合于一个位速率,即用于具有相同空间解析度的编码机制。
而且,当发射机使用的运动精度与接收机所使用的不同时,WO95/29561所给出的结果将不能保持。例如,当发射机使用具有整数像素精度的H.263算法而接收机使用具有半像素精度的H.263算法时,必须实现运动矢量的进一步精细化。而该问题在WO95/29561中未指出。另外,在WO95/29561中,未指出时域解析度变化的问题。
已公开的欧洲专利申请EP0687112A2公开了一种用于转换空间或时域解析度的图象转换装置。该装置也可对运动补偿信息进行定标。这可以通过由目标块和周围块的平均、取模和中值来内插一个中心值而实现。
已公开的欧洲专利申请EP0690392A1也指出位速率转换的问题。然而,没有实现其他诸如解析度降低的改进。此外,EP0690392A1还用于MPEG压缩信号。
综述本发明的一个目的是提供一个译码器,它可以用于位速率的改变和解析度(空间和/或时域)改变和具有比现有的译码器更简单的结构。
本发明的另一个目的是提供了一个克服了上述与解析度转换有关的问题的译码器,它还可以用于通过运动矢量的提取而获得的计算量的降低,因而它将适用于当在具有不同解析度的编码机制,例如具有352×288的解析度的第一编码机制(CIF)与具有176×144解析度的第二编码机制(QCIF),之间译码时的情况。
本发明的另一目的是提供完成在空间和DCT域中解析度的改变的一种译码器和方法。
而本发明的另一目的是提供一个用于DCT快速算法的译码器和方法,以用于改变在DCT域的解析度。
这些和其他目的可以通过包括一个用于采用运动补偿技术对已根据第一编码机制编码的视频信号进行解码的解码器和一个用于对根据第二编码机制解码的已解码视频信号进行编码的编码器的译码器结构来获得,其中第二编码机制改变了输入视频信号的解析度(空间和/或时域)和位速率。
根据本发明的第二方面,提取出在输入视频信号中的,例如为运动矢量形式,的运动补偿信息,如果必要,在适当调整比例和再精细化以后,将该运动补偿信息直接传给译码器的编码部分和再输出数据流中输出。
根据本发明的第三方面,译码器的解码器部件实现了输入视频信号在频域的解析度的降低,从而,相对工作在时域并要求滤波操作的编码器而言具有降低的计算复杂度。
根据本发明的第四方面,译码器可以使用空间可变长度编码器(VLC)和更适合于块尺寸和所使用的解析度的扫描操作。对将使用哪一种编码的决定可以基于与接收机的协议,即检查接收机是否可以接受译码器提出使用的VLC。
根据本发明的第五方面,译码器使用用于离散余弦变换(DCT)的空间算法,此处称为修剪的(pruning)DCT,它可以只计算译码操作所要求的DCT系数的所需部分。
根据本发明的第六方面,在DCT域,使用空间DCT算法进行帧(图象)的欠抽样和过抽样(内插)。
根据本发明的第七方面,可以在空域实现空间解析度的改进。
根据本发明的第八方面,译码器可以对由译码器的解码器提供的运动矢量进行在精细化。例如,如果在发射机处使用整数像素精度进行运动估计,则在译码器的编码器处要求实现半像素精度,编码器可以使用已有的运动矢量并对它们的精度进行再精细化。
根据本发明的第九方面,译码器可以用这样一种方式调整运动矢量的比例,使得当修改解析度时可以有效地使用它们。
根据本发明的第十方面,译码器可以用这样一种方式组合四个输入运动矢量,使得在再编码过程中对每一个宏块产生一个运动矢量。
根据本发明的第十一方面,译码器具有将宏块类型的信息由(译码器的)解码器传给(译码器的)编码器并对它们进行再精细化的装置。
根据本发明的另一个方面,译码器用这样一种方式在一个小区域对运动矢量进行再精细化,使得当修改解析度时,可以有效地使用它们。
根据本发明的另一个方面,译码器可用于执行动态空间解析度修改,即根据该序列的复杂度和可用带宽逐帧地改变空间解析度。
根据本发明的另一个方面,译码器可用于实现时域解析度的降低,即帧速率的降低。它也可用于执行空间解析度、时域解析度和动态解析度的组合。
本发明提供了一种对于传输视频信号到具有不同要求和能力(压缩和解压缩算法,可用带宽,计算能力,帧速率要求,解析度要求等)的接收机的问题的解决办法。它提供了一种可以对代表最适合特定接收机的要求和能力的某一解析度(空间和/或时域)和压缩比的视频序列的任何输入位流进行译码。该接收机可用于修改输入视频信号的解析度和/或压缩比以满足特定接收机的解析度、带宽和计算要求。
附图简述下面将通过非限制性的实施例和参照附图对本发明进行描述,其中-

图1为具有改变解析度和压缩比的能力的译码器的示意图;-图2a和2b为其中使用pruning DCT算法实现解析度的改变的另一种译码器的示意图;-图3a和3b为其中一起执行运动矢量的提取和解析度的降低的另外一种译码器的示意图;-图4为其中仅要求8×8DCT处理器以获得解析度的降低的另外一种译码器的示意图;-图5a和5b为与图4所示译码器相似的一种译码器的示意图,其中运动矢量直接由译码器的解码器传给译码器的编码器;-图6a和6b为与图5所示译码器相似的一种译码器的示意图,其中使用pruning DCT算法;-图7为实现空域的解析度降低的一种译码器的示意图;-图8a和8b为实现空域的解析度降低的另外一种译码器的示意图,它也将运动矢量由译码器的解码器传给译码器的编码器;
-图9为使用时域的运动补偿信息来实现空间解析度改变的一种译码器的示意图。
优选实施例的描述图1为用于位速率降低和解析度降低的译码器的示意图。再随后的实例中,将描述一个解析度在每一维以2的因子降低的实例,例如CIF图象译码到QCIF图象。然而,该技术也可以相似方式应用于其他的解析度降低因子和不同格式。从而,一个具有第一位速率的输入位流,在此实例中根据第一编码机制,采用运动补偿和例如以128kbit/s进行的差异图象的DCT编码、符合H.263标准的CIF编码的视频信号输入译码器。在可变长度解码器(VLD)模块101中对位流BR1进行解码,其中所接收的数据转换为量化的DCT系数,量化指数和运动矢量(MV)。将该量化系数传输经过反向量化器103和一个反向DCT处理器105,在处理器105中将DCT系数转换为像素差值。
将由模块101所获得的运动矢量馈给一个计算在前帧的预测像素块的地址的运动补偿模块。然后该块由存储在一个帧存储器109中的在前帧中提取出并在一个加法器111中加在一个和一个反向DCT处理器105中以形成用于当前块的解码数据流。所考虑的帧的解码数据流作为下一帧的参考而存储在当前帧存储器109中。
解码数据(Xn)也传入译码器的解码器中。该解码器必须用比发射机小的解析度来解码。该解析度的降低在DCT域中实现。因此,DCT处理器113逐块地转换解码数据。在此实例中使用8×8的块尺寸,但也可以使用更大的尺寸。由于解析度在每一维降低为1/2,因此只有4×4的低频DCT系数可用,见K.R.Rao和P.Yip所著的“离散余弦变换算法,优点,应用”,Academic Press Inc.,1990。因此,在模块115中由8×8块提取出低频4×4DCT系数。
模块115的输出馈给一个反向4×4DCT处理器117,它再建将用于运动估计/补偿部分的帧。在模块120中运动估计为很类似于当前块的一个像素偏移块搜寻一个在前帧存储器119。在模块120中计算该最佳匹配块的运动矢量并将该矢量馈给运动补偿模块122。在模块121中对模块122的输出进行DCT变换并在模块123中由所提取出的DCT系数减去该输出以形成一个DCT域,即频域的差值信号。
然后在模块125中量化器Q2对信号进行量化,该量化器使用适合于在编码器输出端所期望的位速率的步长。在模块127中一个可变长度编码器(VLC4)将量化器的输出和来自模块120的运动估计转换为可变长度码,然后以新格式输出它们。
可选的,如果使用4×4DCT,在模块127中的(VLC4)应适合于对4×4DCT系数进行编码。由于在4×4的情形中行程小于在8×8的情形中的行程,因此对于4×4的情形,可以优化锯齿波扫描和行程。可以根据与接收机的协议来决定使用特殊设计的VLC,即检查接收机是否可以接受发射机建议使用的VLC。在接收机不接受任何特殊的VLC时,使用标准VLC。
译码器的编码器也包括一个包含模块129中的反向量化器(Q2-1)的本地解码器。该模块129接收数据流,即馈给模块127的量化系数。来自模块129的输出和来自模块120中的运动估计的输出,其后跟随有模块122中的运动补偿和在模块121中的前向DCT,输入到一个加法器13以产生一个更新的预测帧。加法器131的输出馈给模块133中的一个反向4×4处理器而来自模块133的输出存储在帧存储模块119中。
在图1中,在模块115中执行的操作由8×8系数中提取出4×4低频DCT系数。译码器的解码器的以下部分包括一个完全编码器,除了DCT现在用于4×4尺寸的块中,而非8×8的块中。接收机必须使用一个也工作于4×4块中的解码器。应注意的是,如果要求降低因子大于2,则只需保持较少的DCT系数,如果要求降低因子为4,则只需保持2×2DCT系数。
然而,从压缩效率的观点出发,这可能并不够有效。在此情形下,将DCT应用于更大的块可能会更有效。例如,可以分别使用16×16DCT(在块113中)和8×8DCT(在块117,121和133中)处理器。在当解析度由CIF变化到QCIF的情形下,在译码器的解码器部分可以使用16×16DCT和8×8DCT,而不用8×8和4×4DCT。在当要求由CIF到SQCIF的译码的情形下,可以使用16×16和4×4DCT。注意,译码器的编码环使用8×8DCT,则接收机将可使用标准8×8DCT,因此它可以是标准解码器。
然而,在此系统中转换入DCT域,获得8×8DCT系数和其后仅保持它们中的一部分的操作引入了不必要的计算复杂度。因为译码器知道需要多少DCT系数,如果直接计算这些系数将会更有效。这可以用在Christopoulos C.A.和Skodras A.N所著的“Pruning二维快速余弦变换”,Proceedings of the European Signal ProcessingConference(EUSIPCO),Edinburgh,Scotland,UK,September13-16,1994,pp.596-599,Christopoulos C.A.,J.Bormans,J.Cornelis和A.N.Skodras所著的“矢量基数快速余弦变换pruning和复杂性分析”,Signal Process,卷43,No.2,1995,pp.197-205,和SkodrasA.N.所著的“快速离散余弦变换pruning”,IEEE Trans.on SignalProcessing,42(7),1994中所描述的pruningDCT算法来处理。
这如图2a所示,它与图1中的译码器相同,除了在模块201中的操作T8→4,该操作指出转换仅由8×8计算出4×4DCT系数。从而,图2a中的模块201替换了图1中的模块113和115。应注意的是,在译码器的编码器的所有步骤中都可以使用pruning算法。
例如,可以要求仅由4×4DCT系数计算出2×2。因此可以通过只计算DCT系数的一部分(或计算全部DCT系数而将不需要的系数设为零),并通过图1的模块125中的量化Q2实现所期望的压缩比。在使用16×16和8×8DCT的情形中,则对于每一维1/2的解析度降低,T8→4可被T16→8替换,即只由16×16计算8×8参数。图2b为图2a的另一种实现方式,由硬件和/或软件的观点出发,它具有一些优点。图2b的译码器与图2a中所示的译码器相同。
图1和2a-2b中所示的所有译码器引入在译码器中的时延与复杂性,因为它们都要求进行运动估计。然而,如结合图3a和3b所示的,可以避免这些缺点,它显示了,通过省略运动估计而使用pruning DCT算法可以简化图1和2a-2b中所示的译码器。可用于译码器中的运动矢量在经过适当的调整比例以后,可以直接由解码器前送到编码器,并可以用于编码器中的运动补偿部分。因此,图3a和3b中的示意图比图1和2a-2b中的简化得多,因为现在不需要运动补偿。由于不需要一个反向4×4DCT(T4-1),因此也导致更少的硬件复杂度。
从而,在类似于图1和2a-2b的图3a中,在VLD301中提取的运动矢量也传给运动矢量定标块303,它根据要求的一个输出解析度、运动补偿块尺寸和第二编码机制的编码方法来调整输入运动矢量的比例。模块303输出的运动是直接传给可变长编码器305和传给运动补偿模块397。因此,作为与图1的译码器的差异,图3a中所示的译码器不需要如图1所示的运动估计120。而图3a的译码器也使用如图2a和2b中所示的pruning算法。
图3b示出了图3a的译码器的另一种实现方式。由硬件和/或软件的观点出发,图3b的实现方式与图3Ad实现方式相比具有一些优点。从而,图3a的译码器精确实现与图3a的译码器相同的译码器。在图1-3b中引入的一个问题是使用4×4DCT/IDCT的必要性(对于在每一维解析度减低为1/2),虽然,如果在译码器的编码器的入口点,即图1的模块113处使用16×16DCT,可以避免这一问题。然而,因为在大多数情形中使用8×8DCT进行编码和解码,则修改图1-3b中的译码器可能会带来好处,所以使用8×8DCT。
图4示出了执行解析度降低,将压缩比调整到接收机的要求和不使用4×4DCT/IDCT的译码器,在译码器的解码器处的结构与图1中所示的相同。通常计算8×8DCT系数,但仅仅使用直接由DCT pruning算法计算出的低频4×4DCT系数。如图所示,在模块401处,由8×8DCT系数提取出相应于4×4DCT系数的低频系数。认为剩余系数为0并忽略它们。VLC对4×4低频系数进行量化和编码。如果使用4×4DCT,则VLC可以是一个为4×4DCT算法设计的特殊VLC。然而,预测环使用8×8DCT。该接收机可以使用4×4DCT(在此情形中,在我们的例子中它将再建一个QCIF图象)或8×8DCT(在此情形中,它将再建一个具有QCIF解析度的CIF图象)来再建该序列。注意,上述编码的方法覆盖了一个特殊接收机的情形,即具有一个解码器的接收机,该解码器通过接收适合于较低解析度序列来以某一解析度进行再建。在最佳情形中,译码器在确定所使用的译码器方法前当然要与接收机相协商。
图4中的帧存储器403包含一个原始尺寸,在此例中即CIF,的图象,但具有更小尺寸,在此例中即QCIF,的解析度,该解析度通过用0补全提供给4×4子块的反向8×8DCT来获得。该块首先进行8×8变换并将4×4子块用做在新输入8×8块,即在将所剩系数设为0以后新输入的4×4系数,中相同子块的预测。
图5a显示了图4的简化版本,其中运动矢量可由解码部分获得并在编码部分是使用。以此方式,与图3所示的译码器的情形相似的,避免了运动补偿,导致了具有明显降低的计算复杂度的译码器结构。
应注意的是,对于该机制,如果接收机具有用于执行这一对运动矢量调整比例的装置,不需要对运动矢量调整比例。该接收机可以使用考虑到各帧在译码器的编码器中编码的方法而对它们进行再建的解码器。这要求在编码器与解码器之间有一个协议周期。如果另一方面接收机不能对任何运动矢量调整比例,则在译码器中必须要求对运动矢量调整比例。可以在译码器和接收机协议之后决定采用哪一种机制。
因此,接收机可以以QCIF解析度来再建一个CIF图象。然而,如果接收机必须再建一个低解析度序列,虽然这不需要在译码器中进行,运动矢量可以在馈给VLC之前调整比例。
图5b示出了图5a的译码器的另一种实现方式。如图5b所示,由硬件和/或软件的角度看,该实现方式是有利的。
也应注意的是,在图4和图5a-5b中,将8×8IDCT应用于零填充4×4DCT系数,如图4-5b中T8←4所示。这是在DCT域的一种内插形式。该内插不仅通过零填充,还通过在Agbinya J.I.所著的“使用离散余弦变换的内插”,Electronic Letters,Vol.28,No.20,September1992中所述的变焦(zooming)算法来实现的。也应注意的是,当同时使用零填充和变焦算法时,如果以这样一种方式,即利用已知某些系数为0的知识来使用DCT/IDCT的话,将是有利的。该知识可以包含在DCT的蝴蝶结构中而实施快速和存储有效的DCT算法,如Christopoulos C.A.和Skodras A.N所著的“Pruning二维快速余弦变换”,Proceedings of the European Signal ProcessingConference(EUSIPCO),Edinburgh,Scotland,UK,September13-16,1994,pp.596-599,Christopoulos C.A.,J.Bormans,J.Cornelis和A.N.Skodras所著的“矢量基数快速余弦变换pruning和复杂性分析”,Signal Process,卷43,No.2,1995,pp.197-205,和SkodrasA.N.所著的“快速离散余弦变换pruning”,IEEE Trans.on SignalProcessing,42(7),1994中所描述。
如上所述,pruning DCT算法可用于快速解析度降低。图6a和6b示出了这如何实施的两种不同实例。从而,图6a中的译码器与图4中的相同,但使用pruning DCT算法。在上述所有译码器中,解析度的降低是在DCT域,即在频域中实现的。然而,也可以在空域实现解析度的降低。现在参照图7描述这样一种机制。
在译码器的解码部分以与上面结合图1所描述的方法相同的方法对输入位流进行解码器。于是,在来自译码器的解码器的输出序列,即已解码帧进入译码器的编码器部分之前,经由一个适当的低通滤波器和在模块710中的欠抽样操作(LPF)对该已解码帧进行欠抽样。这此实例中,在每一维以因子2进行欠抽样。从而,根据接收机的要求对解析度已降低的新序列进行编码。
也可以使图7所示的译码器具有更大的计算效率。可通过其中不需要译码器中的运动估计的机制而以与上述方法相同的方法获得。因此,通过将与可变长解码器中提取出的运动矢量经由一个运动矢量定标器直接传给译码器的解码器端,而不需进行运动估计。
在图7的点A处的输入信号为LPF(DXn+Xn-1)=LPF(DXn)+LPF(Xn-1)=T4-1{XTRC(BR1*)}+LPF(Xn-1)该操作T4-1{XTRC(ER1*)}指出由BR1*的每一8×8系数块中提取出4×4低频DCT系数并对的每一4×4系数块执行一个反向4×4DCT,以再建解析度已降低帧。图8a示出了一个使用上述等式的译码器。应注意的是,图8a所示的译码器要求一个4×4IDCT,因此将比图7中所示的要复杂。图8b中示出了与图8a中译码器相同的另一种可实现的译码器。
图9也显示另一种可用于改变解析度的译码器。图9所示的译码器类似于图8b所示的。然而,图9中的译码器使用在模块TD/MC中实施DCT域中的运动估计和补偿的编码机制,如Ut-Va Koe和K.J.rayLiu所著的“基于子像素运动估计的DCT”,Proceedings of ICASSP96,Vol.4,pp.1930-1933中所述的。该译码器的优点是不要求DCT/IDCT处理。
适合于改变解析度的上述译码器的另一种优点为改变解析度的方法。例如可以下面方式执行欠抽样或过抽样操作
(Ⅰ)空域其后跟随有低通滤波和欠抽样的IDCT。
(Ⅱa)DCT域只保持DCT系数的所需部分。例如,只保持由8×8DCT系数提取出的4×4。
(Ⅱb)DCT域将四个8×8DCT系数组合并形成16×16块的系数。只保持由16×16DCT系数提取出的8×8DCT系数(对于以2为因子的解析度降低)。当然所使用的块尺寸依赖于在发射机和接收机中所使用的块大小。
第三种解决方法的计算强度看来较低。在W.KOU和T.Fjallbrant所著的“由两个相邻块所提取出的信号块直接计算DCT系数”,IEEETrans.on Signal Processing,卷39,No.7,July19991,pp.1692-1685中描述了一种由一个块的子块的DCT系数形成该块的DCT系数块的方法。例如,可在图8b中采用方法(c)而替换XTRC和T4-1操作。
此外,当发射机使用不同于接收机所使用的运动精度时,不能保持在国际专利申请WO95/29561中所获得的结果。例如,当发射机使用具有整数像素精度的H.261算法而接收机使用具有半像素精度的H.263算法时,则必须执行运动矢量的再精细化。
在此情形中,运动矢量可以由译码器的解码器传给译码器的编码器并再精细化。再上述译码器中,不包括该信息,而只假设以下文中所述方式对运动矢量调整比例。然而再一些情况中再精细化运动矢量是有用的,并可以用于上述所有译码器中。运动参数的再精细化依赖于使用运动估计和补偿的方法。例如,ITU-T标准H.263确定了怎样由整数像素运动矢量获得半像素运动矢量。
如果第一编码机制的运动补偿块为16×16块(运动矢量对应于16×16块),而如果第二编码机制使用8×8大小的运动矢量,则再运动矢量传给译码器的编码器之前将它们除以2(在每一维以2为因子降低解析度)。当执行解析度的降低操作时,上述将运动矢量传给编码器的方法可以应用于上述所有译码器。
如果,运动补偿块相等,则出现一个问题。假设,例如,解析度CIF的第一编码机制使用大小为16×16像素的运动补偿块。再假设解析度QCIF的第二编码机制使用相同大小(16×16像素)的运动补偿块。该第二编码机制的运动补偿块实际上代表了四个CIF的16×16块。这是由于它包含四个8×8块,而每一个8×8块代表在CIF图象中的16×16块。问题是只通过知道四个相应的第一编码机制的16×16块来获得第二编码机制的16×16块的运动矢量。
该问题的解决方法是a)可以通过以一种适当方式组合第一编码机制的相应四个(16×16块)的四个运动矢量,例如通过将它们平均,然后除以2。换句话说,获得每一个8×8块的运动矢量,并组合它们(例如将它们平均),该8×8块通过相应的16×16块(在除以2之后)形成第二编码机制的16×16块。
b)QCIF的16×16块可以分为四个8×8块,对于每一块使用由在CIF中的相应16×16块除以2之后获得运动矢量。这意味着对于第二编码机制的16×16块,使用了四个运动矢量,每一运动矢量对应于16×16块的8×8部分。
c)另一种方法为由CIF图象的4个16×16块中的三个得到中间运动矢量并对其调整比例(即用于CIF到QCIF译码的除以2)。
d)一种更简单的方法是仅仅由形成QCIF图象的16×16宏块的CIF图象的4个16×16块中随机地拾取一个运动矢量。从计算的观点看,这是最佳解决办法。
将使用的方法依赖于接收机的能力。如果接收机只接受每块一个运动矢量,则使用第一或第三解决方法。相似的,如果接收机对于每一块接受四个运动矢量,则使用第二或第四解决办法。然而如果接收机接受上述所有解决办法,则译码器可以与接收机协议将使用哪一种方法,或测试所有方法并确定使用哪一种。确定使用哪一种的一种方法是,例如,根据均方误差检测这些方法中哪一种产生最少的误差。然而,因为在大多数情况中对四个运动矢量编码将对一个运动矢量编码要求更多比特,所以必须使用一个阈值。例如,第二解决方法比第一解决方法产生的误差少20%,则使用第二解决方法。
注意,以这种方法获得的运动矢量可能不是正确的(尤其在随机选择运动矢量的情况中)。一个用于改进结果的方法是在所获得的运动矢量的一个小窗口中对运动矢量进行再精细化。例如可以在尺寸为(-3,+3)的搜寻窗口中进行再精细化。通常尺寸(-1,+1)在预测运动矢量中给出显著的改进。快速算法可用于再精细化运动矢量。也可以只对未良好预测的特定宏块执行运动矢量的再精细化。例如,在再精细化运动矢量之前,可以检测预测误差,如果该预测误差高于指定阈值时,对该宏块进行运动矢量再精细化。而不需要对另外的运动矢量进行再精细化。另一种确定是否需要对运动矢量进行再精细化的方法是检测宏块编码所需的比特数。如果这些宏块用高于特定阈值的比特数进行编码,则可能需要运动矢量再精细化,因为与具有许多高频信息的宏块的复杂性相应的比特数通常比那些不包含高频信息的要求的比特数更多。
如果第一编码机制的运动补偿块小于第二编码机制的运动补偿块,则对于第二编码机制产生一个运动矢量中的冗余。例如,如果第一编码机制使用8×8块,而第二编码机制使用16×16块,则对于第二编码机制产生一个运动矢量中的冗余。可以在这样一种情形中通过组合构成16×16块的四个8×8块(例如将它们平均)的运动矢量而发现第二编码机制的16×16块的运动矢量。第二编码机制的每一8×8块的运动矢量可以通过组合(第一编码机制的)四个8×8块的运动矢量而发现,可将该四个8×8块平均并除以2而形成第二编码机制的8×8块。对于输入和输出块的其它组合,使用一种相似的技术。
如果类似ITU H.263标准中所述的在先预测模式中使用第一编码机制,则将必须适当地组合第二编码机制的运动矢量。例如,在ITUH.263标准中,在在先预测模式中对每一宏块可能存在四个运动矢量。在此情形中,通过计算(第一编码机制的)四个亮度矢量的总和并将该总和除以8而获得第二编码机制的一个宏块的运动矢量。这里也可以执行运动矢量的再精细化。
注意,上面描了述当第二编码机制的解析度在每一维以2为因子降低时,用于获得第二编码机制的运动矢量的过程。可以清楚地理解到,当要求不同因子的解析度降低时,可以采用相似的方法,当然应采用适当的定标因子。
上面描述了用于获得彩色视频信号的亮度分量的运动矢量的过程。该用于获得第二解码机制的色度分量的运动矢量的过程依赖于所用的格式。如果考虑4∶2∶0格式,即色度矩阵在水平和垂直方向上都只是亮度矩阵的尺寸的一般,则通过将相应于亮度的(第二编码机制)的水平和垂直分量除以2而对其调整比例。
在4∶4∶4格式的情形中,即色度矩阵与亮度矩阵的尺寸相同,也可使用第二编码机制的亮度分量的运动矢量而不需对(第二编码机制)色度分量调整比例。
在4∶4∶2格式的情形中,即色度矩阵在水平方向上为亮度矩阵的尺寸的一半而在垂直方向上与亮度矩阵的尺寸相同,则可将运动矢量的水平分量除以2,而垂直分量不变。
可选的,环路滤波(例如见ITU-T标准H.261)可用于编码器和/或解码器。它们在图中都未示出,但作为本发明的一部分而考虑。
可以通过将关于宏块类型的(译码器的)解码器信息传给(译码器的)编码器而进一步降低计算复杂度。这样,在此情况中,(译码器的)编码器不必计算宏块编码类型。如果不进行解析度的改编,则如果将宏块编码为INTRA或SKIPPED,则在译码器中仍然分别作为INTRA或SKIPPED编码。然而,作为INTER编码的宏块可能在译码器的编码器中作为SKIPPED而编码,因为在再量化过程以后,所有系数将变为0。再此情形中,重要的是检测是否所有系数在再量化之后设为0,如果它们设为0,则该宏块作为SKIPPED而非INTRA进行编码。当然也可进行宏块类型的再求值,但从计算的观点看,这并不有利。也注意到,作为INTER编码的宏块再译码器中作为INTRA编码可能更好。这可以根据在标准中使用的INTER/INTRA选择模式而决定。
当在译码器中进行一个解析度的降低,将出现与传送运动矢量时出现的问题和传送宏块类型信息时出现的问题相似的问题。虽然,可以在(译码器的)编码器中再计算宏块编码类型,下列方法可用于加快计算如果在CIF的4个16×16宏块中至少有一个INTRA宏块,则将在QCIF中的相应宏块作为INTRA编码。如果所有的宏块作为SKIPPED编码,则也将该宏块作为SKIPPED编码。如果没有INTRA而至少有一个INTER,则将QCIF中的宏块作为INTER编码。在后一种情形中,将进行进一步的检查以发现是否所有的系数在量化之后都设为0。如果它们设为0,则将宏块作为SKIPPED编码。
在许多情形中,要求一个空域-时域解析度降低的组合。这可能是(由译码器到接收机的)带宽受限或当接收机的计算能力不足以以某一帧速率将输入位流解码的情形。
时域解析度的降低,即帧速率的降低,可以通过使用上述原理而完成。一种降低帧速率的简单方法是由编码序列中卸下称为B帧的双向预测帧。使用来自过去的和/或将来的I-帧或P-帧的运动补偿预测来对B帧编码。使用内帧编码来压缩I-帧;而同时使用来自过去的I-帧或P-帧的运动补偿预测来对P-帧编码。因为B-帧不用于其它B或P-帧的预测,所以将它们的一些卸下将不影响在后帧的质量。也可跳过相应于所跳过的B帧的运动矢量。描述译码器结构的原理可以很容易地修正以只通过对所示原理使用一个卸下B帧的操作来执行时域解析度的降低。注意时域解析度的降低可以独立于在发射机和接收机处使用的编码机制而实施,例如它可以应用在由基于编码机制的字波到基于一个编码机制的DCT之间的译码中。
注意,在H.263中,也限定了‘PB’帧。一个PB-帧包含一个P-图象和一个B-图象。包含两个图象的PB帧作为一个单元而编码。关于B和P图象的信息以这样一种方式插入宏块级,使得对于每一P-块的信息紧紧跟随由相关B块的信息。在译码器的解码器处,首先再建P宏块,而由再建的P宏块和在前的P图象双向预测B宏块。在帧速率译码中,由于不需要B宏块,所以不必再建它们。这也节省了用于存储B图象的额外存储器。
在一点不使用B图象的情形中,仍然可以实现帧速率的译码。然而,需要帧的完全再建并需要仔细进行运动矢量和宏块类型信息的传送。越多的帧被抛弃,所传送的运动矢量接近真实运动矢量,即发射机所估计的那些运动矢量(这也保持有宏块类型信息)的机会越小。该问题的一个简单解决办法为总是对宏块编码类型求值,并对于某一帧的运动矢量使用所传送的运动矢量(例如在平均和调整比例之后),并在所计算的值周围的一个小窗口中对其再精细化。这对于大多数类型的视频-参考应用而言工作得很好,但在有许多运动的应用中不是很好。在此情形中,必须在一个更大的窗口,可以是(-5,+5),中进行再精细化。可以使用快速算法来加快再精细化过程。
也应注意的是,在由译码器到接收机的可用带宽显著降低或接收机具有受限的计算复杂度并不能以某一帧速率对输入序列进行解码的情形中,(译码器处的)编码器可以确定只使用I帧,即内部编码方法。因此,它可以确定以内部模式对输入序列进行编码或只使用输入序列的内部编码帧。在这种情形中,可以用上述原理实现执行空域/时域解析度改变的译码器。注意,可以与在发射机和接收机处使用的编码机制相独立地实现该方法,例如,它可以应用在由基于编码机制的子波到基于一的DCT之间的译码。
此外,时域解析度降低的方法也可以应用于不改变空域解析度的情形中。从而,上述任何译码器可以改变时域解析度,而不需改变空域解析度。它也可以很容易地采用该原理以执行时域解析度和速率的转换,而不需执行任何解析度的降低,即空域解析度的降低。
而且,如果不使用运动补偿,也可以使用上述原理。不需要运动估计和补偿。此处所述的译码器可以很容易地适应于为不使用运动补偿的编码机制工作。也应注意到,甚至在第一编码机制使用运动补偿的情形中,译码器的编码器也可以决定不是用这一机制。如果译码器仍然对于第二编码机制使用运动补偿,当第一编码机制不使用运动补偿时,是同样有效的。同样,译码器可以适应于工作在任何组合中。
此外,在指定译码器接受比例调整的位流的情形中,可以根据接收机的要求再建所有层并对它们编码。这省去了一个接收和解码比例可调整位流的接收机。因此解码器可以是标准解码器,这是接收机的主要优点。注意译码器不必再建整个位流,而只需再建特定接收机所需的层。例如,如果可调整比例位流具有用于20,112和300kbit/s的层而接收机接收64kbit/s,则只有第一2层需要在译码器中再建。
作为一个附加应用,所述译码器可用于提高输入视频的解析度。仍然这可能增大第二编码机制所要求的位速率,但它对于接收机自己不能执行这一操作的情形还是有用的。例如,为了提高由QCIF到CIF到解析度,可以用一个过抽样操作来替换模块113和115。
编码器可以使用8×8DCT。可以在空域以一种相似的方式来实现过抽样。也可理解现在运动矢量必须乘以2,而不是除以2,来调整比例。
在另一种应用中,译码器可用于将输入的静止图象或3D图象(如在医疗应用中所见的)转换为不同的解析度(降低或提高)。例如,为了降低CIF图象到QCIF图象的解析度,可以(a)解码静止图象,过抽样和编码新解析度,(b)只保持DCT系数的一部分,即由每一DCT块的8×8取出的4×4,或(c)将四个8×8DCT块组合以形成16×16块的DCT系数并只保持它们中的低频8×8。一个与W.KOU和T.Fjallbrant所著的“由两个相邻块所提取出的信号块直接计算DCT系数”,IEEE Trans.on Signal Processing,卷39,No.7,July19991,pp.1692-1685中描述的方法相似方法可用于方法(c)。后一方法避免了接收机必须使用与8×8大小不同的块尺寸(如在情形(b)中)的要求并与要求解码、滤波和编码操作的方法(a)相比,计算复杂度降低。仍然可以用本专利所述的方法将视频信号转换为静止图象(例如H.263到运动JPEG)。
最后,译码器可用于执行动态的改变解析度,即逐帧地改变解析度。例如,如果译码器到接收机的带宽受限,则在译码器中的输入视频的带宽为高,而存在相当大数量的运动,则译码器进行解析度降低(和如果必要,降低速率)。当运动的数量降低到一个低值,则译码器不改变解析度(或它改变到一个更低值),而它仅采用位速率,或它甚至将解析度提高到一个大于输入视频解析度的值。该技术要求在译码器与接收机之间的协议周期。很明显,该原理可以很容易低修正以当要求时,只执行速率降低操作。
这里描述了具有最低时延和低成本的译码器结构。所述译码器尤其适合当要求改变(空域和/或时域)解析度的改变时,和适应于具体接收机的特定带宽。该译码器可放在网络中,在视频服务器中,在网关或多点通信单元(MCU)中并可以处理各种接收机的所有视频要求。
当使用其它压缩方法时,可以以一种简单方式使用本方法。例如当使用基于子波的视频编码或矢量量化方法时,可以使用它。它也可用于由一个特殊量化方法到不同方法的转换。最后,这里所述的该译码器的结构具有非常低的复杂度,从硬件和/或软件的观点看,这是一个优点。
权利要求
1.一种译码器,它具有用于对已根据第一编码机制编码的输入视频信号解码的装置和用于对根据第二编码机制解码的输出视频信号编码,并用于对具有改变的解析度(空间和/或时域)的输出视频信号编码的装置,其特征在于,用于执行频域中解析度改变的装置。
2.根据权利要求1的一种译码器,在此,采用运动补偿的编码机制对输入和输出视频信号进行编码,其特征在于,译码器具有用于由输入视频信号中提取出运动补偿参量和用于将该运动补偿信息传送给输出该输出视频信号的编码器的装置。
3.根据权利要求2的一种译码器,其特征在于,译码器具有用于对译码器的解码器所提供的运动矢量进行再精细化的装置。
4.根据权利要求1-3中任一权利要求的一种译码器,其特征在于,译码器的编码器具有用于执行pruning DCT算法以实现快速编码的装置。
5.根据权利要求1-4中任一权利要求的一种译码器,其特征在于,译码器具有用于用零填充或根据变焦算法执行DCT域中内插操作的装置。
6.根据权利要求1-5中任一权利要求的一种译码器,其特征在于,译码器的编码器具有量化装置以输出所需压缩比。
7.根据权利要求1-6中任一权利要求的一种译码器,其特征在于,译码器的编码器具有适用于所使用的块大小和解析度的可变长编码装置。
8.根据权利要求1-7中任一权利要求的一种译码器,其特征在于,具有在连续传输的帧之间实现空域解析度改变的装置。
9.根据权利要求8的一种译码器,其特征在于,具有一种用于根据在接收机端可用的带宽来改变空域解析度的装置。
10.根据权利要求1的一种译码器,其特征在于,具有一种用于将输出的DCT变换的视频信号译码为另一种解析度而不需使用任何DCT/IDCT处理器的装置。
11.一种译码器,它具有用于对已根据第一编码机制编码的输入视频信号解码的装置和用于对根据第二编码机制解码的输出视频信号编码的装置,和具有用于对已解码输入视频信号的运动矢量调整比例,以根据采用与已解码的输入视频信号大小不同的运动补偿块的一种机制对输出视频信号进行编码的装置,其特征在于,具有用于对比例调整的运动矢量进行再精细化的装置。
12.一种译码方法,它用于对已根据第一编码机制编码的输入视频信号进行解码和用于对根据第二编码机制解码的输出视频信号进行编码,其中用变化的解析度(空域和/或时域)对输出视频信号编码,其特征在于在频域执行解析度的改变。
13.根据权利要求12的方法,在此,采用运动补偿的编码机制对输入和输出视频信号进行编码,其特征在于,该方法用于由输入视频信号中提取出运动补偿参量和用于将该运动补偿信息传送给输出该输出视频信号的编码器。
14.根据权利要求13的一种方法,其特征在于,在输出序列所要求的精度与输入序列所要求的不同时,该方法用于对译码器的解码器所提供的运动矢量进行再精细化。
15.根据权利要求12-14中任一权利要求的一种方法,其特征在于,在空域执行解析度的改变。
16.根据权利要求12-15中任一权利要求的一种方法,其特征在于,使用pruning DCT算法以实现快速编码。
17.根据权利要求12-16中任一权利要求的一种方法,其特征在于,当输出具有高于输入的解析度时,用零填充或根据变焦算法执行DCT域中内插操作。
18.根据权利要求12-17中任一权利要求的一种方法,其特征在于,通过选择一个适当的量化因子以获得所需压缩比。
19.根据权利要求12-18中任一权利要求的一种方法,其特征在于,通过应用适合于所使用的特定块大小和解析度的可变长编码装置,根据所使用的块大小和解析度来调整译码器的输出序列。
20.根据权利要求12-19中任一权利要求的一种方法,其特征在于,根据当前传输条件在连续传输的帧之间实现解析度的改变。
21.根据权利要求20的一种方法,其特征在于,具有一种用于根据在接收机端可用的带宽和/或要求来改变解析度。
22.根据权利要求12的一种方法,其中输入视频信号为一个DCT变换视频信号,其特征在于,将输出的DCT变换的视频信号转换为另一种解析度而不需使用任何DCT/IDCT处理器。
23.一种译码方法,它用于将已根据第一编码机制编码的输入视频信号转换为根据第二编码机制解码的输出视频信号,其中对已解码的输入视频信号调整比例使得它们可用于根据与已解码视频信号不同大小的运动补偿块采用的机制来对输出视频信号进行编码,其特征在于,对运动矢量在精细化。
24.一种译码器,它具有用于对已根据第一编码机制编码的输入视频信号解码的装置和用于对根据第二编码机制解码的输出视频信号编码,以及对具有改变的解析度的输出视频信号编码的装置,当输入视频信号为DCT变换视频信号,其特征在于,将输入的DCT变换视频信号转换为另一种解析度,而不需使用任何DCT/IDCT处理器。
25.一种译码方法,它用于将已根据第一编码机制编码的输入视频信号转换为根据第二编码机制解码的输出视频信号,其中用一个改变的解析度对输出视频信号进行编码,当输入视频信号为DCT变换视频信号,其特征在于,将输入的DCT变换视频信号转换为另一种解析度,而不需使用任何DCT/IDCT处理器。
全文摘要
本发明提供了一个同时改变速率和解析度的译码器装置。在一个优选实施例中,也提供了用于将输入的运动矢量或类似参量直接传给输出编码器的。该译码器结构同时适合于时域和频域中的应用。
文档编号H04N7/32GK1234943SQ9719915
公开日1999年11月10日 申请日期1997年10月22日 优先权日1996年10月25日
发明者C·克里斯托珀罗斯, B·布约克 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1