视频编码方法、视频译码方法、视频编码设备、视频译码设备、视频编码程序和视频译码程序的制作方法

文档序号:7877577阅读:135来源:国知局
专利名称:视频编码方法、视频译码方法、视频编码设备、视频译码设备、视频编码程序和视频译码程序的制作方法
技术领域
本发明涉及视频编码方法、视频译码方法、视频编码设备、视频译码设备、视频编码程序和视频译码程序。
背景技术
视频信号编码技术用于视频信号的传输和存储-再现。熟知的技术例如包括国际标准视频编码方法例如ITU-T推荐H.263(下文称为H.263),ISO/IEC国际标准14496-2(MPEG-4视频,下文称为MPEG-4)等。另一种已知的较新的编码方法是预定用于由ITU-T和IAO/IEC、ITU-T推荐H.264以及ISO/IEC国际标准14496-10(Joint FinalCommittee Draft of Joint VideoSpecification,下文称为H.26L)进行的联合国际标准化的视频编码方法。
因为活动视频信号由一系列随时间一点一点地变化的图像(帧)构成,在这些视频编码方法中,通常的做法是,在作为编码对象检索的帧(当前帧)和另一帧(参考帧)之间进行帧间预测,借以减少视频信号中的时间上的冗余度。在这种情况下,当在当前帧和与当前帧具有较少的不同的参考帧之间进行帧间预测时,所述容冗余度可以被进一步减小,因而可以提高编码效率。
因为这个原因,如图6所示,对于当前帧A1的参考帧可以是相对于当前帧A1的时间上的先前帧A0,或者是时间上的随后帧A2。利用先前帧进行的预测被称为前向预测,而利用随后帧进行的一侧被称为后向预测。双向预测被定义为这样一种预测,其中任意地选择两种预测方法中的一种,或者被定义为这样一种预测,其中两种方法被同时使用。
一般地说,利用这种双向预测,例如在图6所示的例子中,作为前向预测的参考帧的在时间上的先前帧和作为后向预测的参考帧的在时间上的随后帧都在当前帧之前被预先存储。
图7A和图7B是表示在图6所示的双向预测的情况下(A)译码和(B)帧的输出的图。例如,在MPEG-4的译码中,当利用双向帧间预测对当前帧A1译码时,相对于帧A1是一个时间上的先前帧的帧A0和在时间上的随后帧的帧A2,在对当前帧A1译码之前,首先作为被帧内预测而不是帧间预测解码的帧或者作为由前向帧间预测译码的帧被译码,并且把它们作为参考帧保留。此后,使用这样保存的两个帧A0、A2,利用双向预测对当前帧A1译码(图7A)。
因此,在这种情况下,时间上的随后参考帧A2和当前帧A1的译码时间的顺序和其各自的译码图像的输出时间的顺序相反。这些帧A0,A1和A2的每一个附有输出时间信息0,1或2,因而按照这个信息可以得知帧的时间序列。由于这个原因,按照正确的顺序输出译码的图像(图7B)。在MPEG-4中,输出时间信息用绝对值描述。
最近的一些视频编码方法允许使用多个参考帧实施上述的帧间预测,而不是前向中的一个参考帧和后向中的一个参考帧,使得能够由相对于当前帧具有更小变化的帧进行预测,如图8所示。图8表示一个例子,其中使用相对于当前帧B2的两个时间上的先前帧B0、B1和两个时间上的随后帧B3、B4作为当前帧B2的参考帧。
图9A和9B是表示在图8所示的双向预测的情况下(A)帧的译码和(B)帧的输出的图。例如,在按照H.26L译码时,可以在多达参考帧的数量的一个预定的上限范围内保留多个参考帧,并且当进行帧间预测时,则从它们当中任意地指定一个最佳的参考帧。在这种情况下,当当前帧B2作为双向预测的帧被译码时,在对当前帧B2译码之前,所述参考帧被首先译码。所述参考帧包括相对于当前帧B2的多个时间上的先前帧(例如两个帧B0,B1)和多个时间上的随后帧(例如两个帧B3,B4),它们被译码并作为参考帧被保持。当前帧B2可以由这些帧B0,B1,B3,B4当中的被任意指定用于预测的一个帧被预测(图9A)。
因此,在这种情况下,时间上的随后参考帧B3,B4和当前帧B2的译码时间的顺序和它们各自的输出时间的顺序相反。B0-B4的这些帧中的每一个附有输出时间信息或者输出顺序信息0-4,因而按照这个信息可以得知帧的时间序列。由于这个原因,译码图像按照正确的顺序被输出(图9B)。输出时间信息通常用绝对值描述。当帧的间隔是常数时使用所述输出顺序。
为了使用时间上的随后帧作为预测帧利用后向预测进行译码,需要满足这样的条件,即,在当前帧的译码之前要完成时间上的随后帧的译码,以便使得其可被用作预测帧。在这种情况下,和不应用后向预测的帧相比,在当前帧的译码图像成为可得到的之前发生延迟。
下面参照图10A-10C对此进行具体说明。图10A-10C相应于图6,7A,7B所示的例子。首先,每个帧A0-A2的编码数据按照用于执行帧间预测所需的顺序被译码,假定按照帧速率帧的间隔是恒定的时间间隔,并且用于每个帧A0-A2的译码操作所需的时间是可以忽略的,不论是否应用帧间预测,也不管帧间预测的方向(图10A)。在实际上,帧A0-A2的译码时间间隔不必是恒定的,并且可以根据许多因素例如在帧A0-A2的编码位中的变化而改变。不过,就平均而言,可以假定它们是恒定的。在任何情况下,用于译码操作所需的时间不是0,但是如果在帧A0-A2当中它们的差不是如此之大,则在后面的说明中,将不会引起严重问题。
这里假定,没有由于后向预测而引起的延迟的、也没有相对于任何其它帧译码时间和输出时间的顺序颠倒的帧A0(没有延迟也没有颠倒的帧下文称之为后向预测非相关帧)的译码图像被获取时的时间被定义为和译码图像相互关联的输出时间,并且译码图像在所述输出时间被输出。假定随后帧是后向预测帧A1,其译码图像将在时间上的随后帧A2之后被译码,因而在获得译码图像之前形成延迟。
由于这个原因,如果把获得后向预测非相关帧A0的译码图像时的时间被定义为输出时间的参考,则在其相互关联的输出时间内不能获得后向预测帧A1的译码图像(图10B)。即,在后向预测非相关帧A0的译码图像和后向预测帧A1的译码图像之间的输出时间间隔,和原来的时间间隔相比大出一个用于执行后向预测所需的延迟时间,从而使视频输出不自然。
因此,在视频编码中应用后向帧间预测的情况下,如图10C所示,同样需要预先延迟后向预测非相关帧A0的译码图像的输出时间一个用于执行所述后向预测所需的延迟时间,使得能够正确处理后向预测帧A1的输出时间间隔。
通常,对于在以下条件下的视频编码应用后向帧间预测,即,编码是在高的比特速率下进行的,并且总是使用等于电视广播信号的比特速率的每秒30帧的恒定帧速率,如电视广播及其存储那样,因为后向帧间预测产生更多的预测选择,因而增加了计算的复杂性,使得其在简单的设备上不能实现,并因为在涉及双向对话的实时通信例如电视会议时增加延迟是不希望的。
在这种情况下,例如,如在MPEG-4中那样,当使用一个时间上的随后帧作为后向预测的参考帧时,在执行后向预测时所需的延迟时间是常数。例如,当帧速率是上述的30帧/秒时,延迟时间是每个帧的时间间隔即1/30秒。因而,后向预测非相关帧的译码图像的输出时间应当被延迟的时间可以被相等地设置为1/30秒。

发明内容
不过,近些年来,伴随着计算机性能的改进和视频服务的种类的增加,在通过因特网和移动通信进行的视频传输中,延迟是可以允许的,因而要求以低的比特率进行视频编码的使用被增加。为了实现在低的比特率下编码,使用小于30帧/秒的帧速率,或者使用可变的帧速率,以便动态地改变帧速率,以便控制编码比特速率。
在这种视频编码中,当应用上述的后向预测以便更多地提高编码效率时,由于后向预测而引起的延迟时间不总是等于以前使用的1/30秒。在可变帧速率的应用中,帧速率不是恒定的。例如,当暂时使用小的帧速率的情况下,每个帧的时间间隔成为大的,因而后向预测非相关帧的译码图像的输出时间应当延迟的时间不能被唯一地确定。由于这个原因,不能正确地处理在后向预测非相关帧的译码图像和后向预测的帧的译码图像之间的输出时间间隔。
在这种情况下,具有一种这样的可能的方法,其中对于后向预测预先考虑一个大的可允许延迟时间,并且使后向预测非相关帧的译码图像的输出时间总是延迟一个所述的延迟时间,借以正确地处理相对于后向预测的帧的译码图像的输出时间间隔。不过,在这种情况下,总是对译码图像的输出时间附加一个大的延迟,而不管在实际的后向预测中的延迟时间。
当在后向预测例如H.26L中使用多个参考帧时,作为时间上的随后帧的所有参考帧的译码必须在当前帧译码之前完成。这进一步增加了为执行后向预测所需的延迟时间。
在这种情况下,因为在后向预测中使用的参考帧的数量被唯一地确定为对于当前帧的要在当前帧之前被译码的时间上的随后帧的数量,参考帧的数量可被选择地在直到参考帧的预定的最大数量的上限的范围内改变。
例如,假定参考帧的数量的上限是4,则在后向预测中使用的参考帧的数量可以是2,如图8所示,或者是1,如图11A所示,或者是3,如图11B所示。因为参考帧的数量可以用这种方式改变,用于执行后向预测所需的延迟时间可以非常大地改变。这导致不能正确地处理在后向预测非相关帧的译码图像和后向预测帧的译码图像之间的输出时间间隔。
此时,因为可以在后向预测中使用的参考帧的最大数量没有超过参考帧的数量的上限,按照参考帧的数量的上限确定的延迟时间是在执行后向预测时可能发生的最大延迟时间。因此,如果后向预测非相关帧的译码图像的输出时间总是被延迟这个延迟时间,则相对于后向预测的帧的译码图像的输出时间间隔可被正确地处理。
不过,在这种情况下,总是对译码图像的输出时间附加大的延迟,而不管后向预测的帧实际使用的参考帧的数量。在上述的可变帧速率的应用中,虽然参考帧的最大数量可被唯一地确定,但是不能唯一地确定最大延迟时间。
在迄今为止的应用后向预测进行视频编码的应用中,除去完全地使用固定的帧速率的情况之外,不能唯一地确定为执行后向预测所需的延迟时间。这使得不能正确地处理在后向预测非相关帧的译码图像和后向预测帧的译码图像之间的输出时间间隔,因而造成了视频输出不自然的问题。
在后向预测中使用多个参考帧的情况下,也可以改变参考帧的数量,因而可以改变延迟时间。因此,具有不能正确地处理在后向预测非相关帧的译码图像和后向预测帧的译码图像之间的时间间隔问题。在为了应对这个问题而总是采用最大延迟时间的情况下,产生了总是对译码图像的输出时间附加大的延迟问题。
本发明便是为了解决上述问题而作出的,因而本发明的目的在于,提供一种视频编码方法、视频译码方法、视频编码设备、视频译码设备、视频编码程序和视频译码程序,它们能够在执行后向帧间预测时实现译码图像以合适的时间间隔输出。
为了实现上述目的,按照本发明的视频编码方法是一种实现在一帧和另一帧之间的帧间预测的视频编码方法,所述视频编码方法包括输出一个由后向预测引起的最大延迟时间。
同样,按照本发明的视频编码设备是一种用于实现在一帧和另一帧之间的帧间预测的视频编码设备,所述视频编码设备被构成用于输出一个由后向预测引起的最大延迟时间。
在上述的按照本发明的视频编码方法和视频编码设备中,在编码由一系列的帧构成的活动图像并输出编码的数据时,除去所述编码的数据之外,还输出由于后向预测而产生的最大延迟时间。这使得在使用后向帧间预测时能够以合适的时间间隔输出译码图像。
按照本发明的视频编码程序是一种用于使计算机执行用于实现在一帧和另一帧之间的帧间预测的视频编码的视频编码程序,所述视频编码程序使计算机执行用于输出由后向预测引起的最大延迟时间的处理。
在上述的按照本发明的视频编码程序中,在编码活动图像并输出其编码数据时,使所述计算机除去输出编码数据之外,还执行输出最大延迟时间的处理。这使得在执行后向帧间预测时能够以合适的时间间隔输出译码图像。
按照本发明的视频译码方法是一种实现在一帧和另一帧之间的帧间预测的视频译码方法,所述视频译码方法包括实现输入由后向预测引起的最大延迟时间。
同样,按照本发明的视频译码设备是一种用于实现在一帧和另一帧之间的帧间预测的视频译码设备,所述视频译码设备被构成用于实现输入由后向预测引起的最大延迟时间。
在上述的按照本发明的视频译码方法和视频译码设备中,在译码输入的编码数据从而产生活动图像时,除去编码数据之外,还输入由于后向预测而产生的最大延迟时间。这使得在执行后向帧间预测时能够以合适的时间间隔输出译码图像。
按照本发明的视频译码程序是一种用于使计算机执行用于实现在一帧和另一帧之间的帧间预测的视频译码的视频译码程序,所述视频译码程序使计算机执行实现输入由后向预测引起的最大延迟时间的处理。
在上述的按照本发明的视频译码程序中,在译码编码数据从而产生活动图像时,使所述计算机除去输入编码数据之外,还执行用于实现输入最大延迟时间的处理。这使得在使用后向帧间预测时能够以合适的时间间隔输出译码图像。
另一种视频编码方法是一种包括以下步骤的视频编码方法输入步骤,用于实现作为编码的对象的帧的输入;编码步骤,用于利用预定的方法对所述的帧编码;以及最大延迟时间计算步骤,用于由所述帧的显示时间、编码时间、和后向预测引起的延迟时间计算所述帧的最大延迟时间。
类似地,另一种视频编码设备是一种包括以下装置的视频编码设备输入装置,用于实现作为编码的对象的帧的输入;编码装置,用于利用预定的方法对所述的帧编码;以及最大延迟时间计算装置,用于由所述帧的显示时间、编码时间、和由后向预测引起的延迟时间计算所述帧的最大延迟时间。
类似地,另一种视频编码程序是一种用于使计算机执行以下处理的视频编码程序输入处理,用于实现作为编码的对象的帧的输入;编码处理,用于利用预定的方法对所述的帧编码;以及最大延迟时间计算处理,用于由所述帧的显示时间、编码时间、和由后向预测引起的延迟时间计算所述帧的最大延迟时间。
在上述的按照本发明的视频编码方法、设备和程序中,帧的最大延迟时间在编码活动图像时被计算。这使得在使用后向帧间预测时能够实现以合适的时间间隔输出译码图像。
另一种视频译码方法是一种包括以下步骤的视频译码方法输入步骤,用于实现包含由预定方法编码的帧的编码数据的图像数据、所述帧的译码时间和最大延迟时间的输入;译码步骤,用于利用预定的方法译码所述编码数据,从而产生再现的帧;以及图像输出时间计算步骤,用于根据所述译码时间和所述最大延迟时间计算用于显示所述帧的输出时间。
类似地,另一种视频译码设备是一种包括以下装置的视频译码设备输入装置,用于实现包含由预定方法编码的帧的编码数据的图像数据、所述帧的译码时间和最大延迟时间的输入;译码装置,用于译码所述编码数据,从而产生再现的帧;以及图像输出时间计算装置,用于根据所述译码时间和所述最大延迟时间计算用于显示所述帧的输出时间。
类似地,另一种视频译码程序是一种用于使计算机执行以下处理的视频译码程序输入处理,用于实现包含由预定方法编码的帧的编码数据的图像数据、所述帧的译码时间和最大延迟时间的输入;译码处理,用于利用预定的方法译码所述编码数据,从而产生再现的帧;以及图像输出时间计算处理,用于根据所述译码时间和所述最大延迟时间计算用于显示所述帧的输出时间。
在上述的按照本发明的视频译码方法、设备和程序中,在译码编码的数据以便产生活动的图像时,根据最大延迟时间计算用于显示所述帧的输出时间。这使得在使用后向帧间预测时能够实现以合适的时间间隔输出译码图像。
关于在所述的视频编码方法、编码设备和编码程序中输出的最大延迟时间,优选地将所述最大延迟时间定义为在要被进行后向帧间预测的帧的发生时间和在后向预测中可被用作参考帧的时间上的最后的随后帧的发生时间之间的时间差。
关于所述最大延迟时间的应用,所述最大延迟时间可以作为要被施加于整个编码数据的信息被输出。在另一个实施例中,所述最大延迟时间可以作为施加于每帧的信息被输出。在另一个实施例中,所述最大延迟时间可以作为要被施加于所述最大延迟时间被指示应用的帧、以及在上述帧之后的每个时间上的随后帧的信息被选择地输出。
关于在所述视频译码方法、译码设备和译码程序中输入的最大延迟时间,优选地,所述最大延迟时间被定义为在相对于任何其它帧,译码时间和输出时间的顺序不颠倒的帧的译码时间和与上述的帧相互关联的译码图像输出时间之间的时间差。在另一个实施例中,此后,优选地,根据最大延迟时间设置译码图像输出时间的一个参考时间。
关于所述最大延迟时间的应用,所述最大延迟时间可以作为要被施加于整个编码数据的信息被输出。在另一个实施例中,所述最大延迟时间可以作为施加于每帧的信息被输入。在另一个实施例中,所述最大延迟时间可以作为要被施加于所述最大延迟时间被指示应用的帧、以及在上述帧之后的每个时间上的随后帧的信息被选择地输入。
按照本发明的视频处理系统是这样一种视频处理系统,所述系统包括视频编码设备和视频译码设备,其中所述编码设备是上述的视频编码设备,所述译码设备是上述的视频译码设备。
如上所述,所述视频处理系统利用所述视频编码设备和所述视频译码设备被构成,用于实现由于后向预测而引起的最大延迟时间的输出和输入。这充分实现了一种在使用后向帧间预测时能够以合适的时间间隔输出译码图像的视频处理系统。


图1是表示视频编码设备、视频译码设备和视频处理系统的原理结构的方块图;图2表示在进行双向预测的情况下的帧的编码的例子;图3是表示视频编码设备的结构的例子的方块图;图4是表示视频译码设备的结构的例子的方块图;图5A和图5B表示在进行图2所示的双向预测的情况下(A)帧的译码和(B)帧的输出;图6表示在进行双向预测的情况下的帧的编码;图7A和图7B表示在进行图6所示的双向预测的情况下(A)帧的译码和(B)帧的输出;图8表示在进行双向预测的情况下帧的编码;图9A和图9B表示在进行图8所示的双向预测的情况下(A)帧的译码和(B)帧的输出;图10A-10C表示在进行双向预测的情况下的(A)帧的译码,(B)帧的输出和(C)帧的延迟输出;以及图11A和图11B表示在进行双向预测的情况下帧的编码。
具体实施例方式
下面参照

按照本发明的视频编码方法、视频译码方法、视频编码设备、视频译码设备、视频编码程序和视频译码程序的优选实施例。在所有的附图中,相同的元件用相同的标号表示,并且没有其多余的说明。
首先在原理上说明本发明中的活动图像的编码和译码。图1是用于表示按照本发明的视频编码设备、视频译码设备和视频处理系统的示意的结构的方块图。所述视频处理系统由视频编码设备1和视频译码设备2构成。下面和在其中执行的视频编码方法和视频译码方法一道说明视频编码设备1、视频译码设备2以及视频处理系统。
视频编码设备1是一种被构成用于编码由一系列图像(帧)构成的视频数据D0,并输出编码数据D1,以便进行活动的图像的传输、存储和再现的装置。视频译码设备2是一种被构成用于译码输入的编码数据D1,从而产生由一系列的帧构成的译码的活动图像数据D2的装置。视频编码设备1和视频译码设备2通过预定的有线或无线数据传输线路相连,以便传输所需的数据例如编码数据D1和其它数据。
在视频编码设备1中进行的活动图像的编码中,如前所述,进行在作为编码对象输入的视频数据D0的一帧和作为参考帧的另一帧之间的帧间预测,以便减少视频数据的冗余度。在图1所示的视频处理系统中,视频编码设备1由用于帧间预测的时间上的随后帧进行后向帧间预测。此外,所述视频编码设备1除去输出编码数据D1之外,还输出由所述后向预测引起的最大延迟时间。
和这种视频编码设备1相应,视频译码设备2被构成用于除去实现输入来自视频编码设备1的编码数据D1之外,还实现输入由后向预测引起的最大延迟时间。然后,视频译码设备2参考输入的最大延迟时间译码编码数据D1,从而产生视频数据D2。
利用被构成用于输出最大延迟时间的视频编码设备1和视频编码方法、被构成用于实现输入最大延迟时间的视频译码设备2和视频译码方法、以及配备有所述设备1和设备2的适用于上述的后向帧间预测的视频处理系统,在利用后向帧间预测进行帧间预测时,能够使译码的图像以合适的时间间隔输出。
关于例如在视频编码中输出的最大延迟时间,其可以被定义为在要被进行后向帧间预测的帧的发生时间和可以用作后向预测的参考帧的在时间上的最后的随后帧的发生时间之间之间的时间差。
关于例如在视频译码中输入的最大延迟时间,所述最大延迟时间(下文被称为dpb_output_delay)被定义为在没有因后向帧间预测而引起的延迟,并相对任何其它帧,译码时间和输出时间的顺序不颠倒的帧的译码时间(所述译码时间下文被称为Tr)和与有关的帧相互关联的译码图像的输出时间(所述输出时间下文被称为To)之间的时间差。在这种情况下,此后,优选地根据所述最大延迟时间设置译码图像输出时间的参考时间。
最大延迟时间的应用可以是这样一种方法,其中把所述最大延迟时间施加于整个的编码数据,或者是这样一种方法,其中把最大延迟时间施加于每个帧。另一种应用方法是这样一种方法,其中把最大延迟时间施加于在预告最大延迟时间的信息之后的每个帧,即施加于对其指示最大延迟时间的帧和在时间上在所述帧的后面的每个帧。下面具体地详细说明在这些方法中最大延迟时间的输出、输入、应用等。
相应于在上述的视频编码设备1中执行的视频编码方法的处理可以由用于使计算机执行所述视频编码的视频编码程序实体化。在所述视频译码设备2中执行的视频译码方法的处理可以由用于使计算机执行所述视频译码的视频译码程序实体化。
例如,视频编码设备1可以由和ROM以及RAM相连的CPU构成,所述ROM用于存储视频编码的各个操作所需的软件程序,所述RAM用于在程序执行期间暂时保留数据。在这种结构中,视频编码设备1可以通过使所述CPU执行预定的视频编码程序实体化。
类似地,视频译码设备2可以由和ROM以及RAM相连的CPU构成,所述ROM用于存储视频译码的各个操作所需的软件程序,所述RAM用于在程序执行期间暂时保留数据。在这种结构中,视频译码设备2可以通过使所述CPU执行预定的视频译码程序实体化。
上述的用于使CPU执行视频编码或视频译码处理的程序可以以被记录在计算机可读的记录介质上的形式被分配。这种记录介质例如包括磁介质,例如硬盘和软盘;光学介质,例CD-ROM和DVD-ROM;磁光介质,例如软光盘;或硬件装置,例如RAM,ROM,以及半导体非易失存储器,它们被安装用于执行或者存储程序指令。
下面参照特定的实施例说明图1所示的视频处理系统具有的视频编码设备和视频译码设备,以及和其相应的视频编码方法和视频译码方法。下面的说明将根据这样的假设进行,即,根据H.26L进行活动视频图象的编码和译码操作,并且在关于视频编码操作中没有专门说明的部分将符合H.26L的操作。不过,应当注意,本发明不限于H.26L。
第一实施例首先说明本发明的第一实施例。本实施例将说明以固定的帧速率进行编码的实施形式。在按照本实施例的编码中,首先确定用于后向预测的参考帧的最大数量,此后,由所述参考帧的最大数量和在编码时使用的帧速率计算最大延迟时间,然后输出所述最大延迟时间。在按照本实施例的译码过程中,在译码后向预测非相关帧时,其译码图像的输出时间通过输入的最大延迟时间被显示。此后,输出时间的延迟时间被均匀地施加于每个帧,从而防止在后向预测非相关帧的译码图像和后向预测帧的译码图像之间的输出时间间隔偏离原来的时间间隔。
在编码中,因为使用的参考帧的数量的上限是预先确定的,首先在不超过所述上限的范围内确定用于后向预测的参考帧的最大数量。然后,根据用于编码的帧速率,其也是被预先确定的,按照用于后向预测的参考帧的最大数量,计算作为一帧或两帧或多帧的最大延迟时间。
图2是表示在执行双向预测时帧的编码的例子的示意图。图2表示这样一个例子,其中用于当前帧F2的参考帧是在当前帧F2之前的两个在时间上的先前帧F0,F1,和在当前帧F2之后的两个在时间上的随后帧F3,F4。
在用于后向预测的参考帧的最大数量是2并且其中帧速率是15帧/秒的情况下,如图2所示,一个帧的时间间隔是1/15秒。在这种情况下,因此,最大延迟时间是2×(1/15)=2/15秒。
在编码操作中,此后的每个帧的编码被这样控制,使得不进行要求延迟时间大于所述最大延迟时间的后向预测。具体地说,帧的编码的次序被这样控制,使得在当前帧之前、用于后向预测的最大数量的参考帧以外不编码和输出用于后向预测的任何参考帧,即在当前帧之后的任何在时间上的随后帧。
图3是表示在本实施例中使用的视频译码设备的结构的例子的方块图。图3所示的视频译码设备1由以下部分构成编码器10,用于按照预定的方法对帧(图像)编码;控制器(CPU)15,用于控制编码设备1的各个部分;被设置在输入端1a和编码器10之间的帧存储器11;以及被设置在输出端1b和编码器10之间的多路传输器12。控制器15具有最大延迟时间计算器16,和其功能一样,用于计算最大延迟时间。编码器10配备有输出缓冲器13。
在本编码设备1中进行视频编码时,通过输入端1c输入用于编码视频的条件。在进行所述条件的所述输入时,一般通过输入装置例如键盘选择或者输入编码条件。在本实施例中,具体地说,输入的编码条件包括作为编码的对象的帧的尺寸,帧速率,以及比特率,除此之外,编码条件还包括所述视频的预定的参考结构(是否应用后向预测),暂时存储的被用作参考帧的帧数(相应于输出缓冲器13的容量),以及用于后向预测的参考帧数。这些条件可以被这样设置,使得它们随时间而改变。通过输入端1c输入的编码条件被存储在控制器15内。
在编码操作开始时,控制器15向编码器10发送编码条件,此时,编码条件被设置。在另一方面,通过输入端1a输入作为编码对象的帧,并通过帧存储器11将所述的帧送到编码器10在其中进行编码。输入的帧被暂时保留在帧缓冲器11中,因为要改变帧的顺序,以便执行后向预测。例如,在图2所示的例子中,帧F2在帧F3,F4之前通过输入端1a被输入,但是其在帧F3,F4之后被编码。因此,帧F2被暂时存储在帧缓冲器11中。
编码器10根据H.26L的算法对帧进行编码。然后,编码数据被送到多路传输器12,以便和其它有关的信息被多路传输,然后通过输出端1b输出多路传输的数据。用于预测的帧在编码器10中被再现,并作为用于编码下一帧的参考帧被存储在缓冲器13中。
在本实施例中,控制器15的最大延迟时间计算器16根据通过输入端1c输入的用于后向预测的参考帧数和帧速率计算最大延迟时间dpb_output_delay。然后,多路传输器12把所述最大延迟时间附加到编码的图像数据上。此外,用于识别每一帧的显示顺序的识别符(N)也一道被附加于每帧的编码数据上。
当然,当不应用后向预测时,使用的参考帧数是0,因而dpb_output_delay的值是0。
假定在本实施例中用于传输最大延迟时间的语法被附加于H.26L中的编码数据语法上,以便在编码时实现最大延迟时间的输出和在译码时最大延迟时间的输入。在这个例子中,新的语法被附加于序列参数组(Sequence Parameter Set)内,作为用于传输要被加于整个编码数据的信息的语法。
参数dpb_output_delay被定义为用于传输最大延迟时间的语法。这里假定参数dpb_output_delay使用和在H.26L中表示时间的其它语法使用的相同的时间单位,并且其以90kHz的时间单位表示最大延迟时间。用所述时间单位表示的数值被编码,并以32位的无符号的固定长度的代码被传输。例如,当最大延迟时间是上述的2/15秒时,dpb_output_delay是(2/15)×90000=12000。
在译码操作中,由dpb_output_delay传输的最大延迟时间被译码,并使用所述最大延迟时间延迟译码图像的输出时间。
图4是表示在本实施例中使用的视频译码设备的结构的例子的方块图。图4所示的视频译码设备2由以下部分构成译码器20,用于译码编码的数据,从而产生再现的图像;控制器(CPU)25,用于控制译码设备2中的各个部分的操作;被设置在输入端2a和译码器20之间的输入缓冲器21;以及被设置在输出端2b和译码器20之间的输出缓冲器22。控制器25具有图像输出时间计算器26,和其功能一样,用于计算输出时间,以便进行帧的显示。
在这种译码设备2中进行视频译码时,作为译码对象的数据通过输入端2a被输入。这个数据是由图3所示的编码设备1编码的每帧的编码数据、最大延迟时间dpb_output_delay、以及表示每帧的显示顺序的识别符(N)的多路传输数据。
输入数据被存储在输入缓冲器21中。当来自控制器25的指令表示译码时间到时,从输入缓冲器21向译码器20输入一帧的数据,然后按照H.26L的算法被译码。用这种方式再现的帧被存储在输出缓冲器22中。在输出缓冲器22中的帧通过线路23被向回送到译码器20中,被用作用于下一帧的译码的参考帧。
在另一方面,最大延迟时间dpb_output_delay,帧速率,以及在译码器20中被译码的每帧的识别符(N)被送入控制器25。然后控制器25的图像输出时间计算器按照以下的公式由这些数据计算每帧的输出时间To(n)=dpb_output_delay+N×帧间隔在这个公式中,所述帧间隔由帧速率确定。
假定dpb_output_delay是2/15秒,帧间隔是1/15秒,如图2所示的例子那样,按照上述公式,各个帧的输出时间被计算如下N=0,To(0)=2/15N=1,To(1)=3/15N=2,To(2)=4/15N=3,To(3)=5/15按照用这种方式由控制器25获得的输出时间To(n),以恒定的间隔向输出端2b输出在输出缓冲器22中的帧,如图5B所示的帧F0,F1,F2,和F3所示。虽然未示出,输出端2b和作为监视器的显示装置相连。
图5A和图5B是表示在图2中所示的双向预测的情况下帧的(A)译码和(B)输出的图。在译码操作中,假定帧的编码数据按照用于执行帧间预测所需的顺序被译码,按照所述帧速率,其时间间隔是恒定的时间间隔,并且用于对每帧进行译码所需的时间是可以忽略的,而不管是否应用帧间预测,也不管帧间预测的方向。在这种情况下,按照用于后向预测的最大参考帧数,在后向预测的帧中用于执行后向预测所需的最大延迟时间等于一帧或几帧的时间间隔。这个时间作为最大延迟时间由dpb_output_delay传输。因而,为了输出译码图像,其输出时间被延迟一个最大延迟时间。
实际上,各个帧的译码时间间隔不是恒定的,而根据许多因素改变,例如帧的译码比特的改变。用于每帧的译码操作所需的时间也可以按照所述的帧是否是后向预测帧或者按照每个帧的编码比特而改变。
因此,为了延迟所述输出时间,在获得后向预测非相关帧F0的译码图像的时刻设置所述参考时间,所述帧F0没有由于后向预测而产生的延迟,也没有相对于其它的帧而发生的译码时间和输出时间的顺序的颠倒,如图5A和5B所示。即,通过把获得译码图像时的时间延迟一个由dpb_output_delay表示的最大延迟时间而获得的时间被确定为等于和这个译码图像相关联的输出时间的时间,并被用作输出译码图像的参考时间。此后,当这个参考时间和等于和每个译码图像相关联的输出时间的时间一致时,则输出译码图像F1-F4。
当最大延迟时间是2/15秒时,如上所述,从获得后向预测非相关帧的译码图像时的时间延迟2/15秒的时间被确定为等于和这个译码图像相关联的输出时间的时间,并被用作此后输出译码图像的参考时间。
按照所述的情况,可以想见,故意不预告最大延迟时间,以简化编码或译码操作。对于这种情况,假定在用于传输最大延迟时间的语法之前传输一个表示语法的有无的标记,则用于预告最大延迟时间的语法可以被设置为可以省略的。
在可以省略最大延迟时间的预告的情况下,所述编码操作可以被预先规定,例如使得不使用后向预测,或者在后向预测中使用的参考帧数可以在不超过参考帧数的上限范围内被选择地改变。
译码操作可以被配置使得和编码操作中的所述规定一致地进行,例如,当不应用后向预测时,则不发生用于执行后向预测所需的延迟;或者,译码操作可以被这样配置,使得在后向预测中使用的参考帧数可以在不超过参考帧数的上限的范围内被选择地改变,即,延迟时间可以变大。在这种情况下,译码操作可以被配置使得总是进行假定一个预期的最大延迟时间的处理,或者译码操作可以被配置使得允许译码图像的输出时间间隔的改变并进行不考虑每帧的延迟时间的简化处理。
本实施例根据这样的假定进行了说明,即,根据H.26L执行操作,但是应当注意,可以应用本发明的视频编码方法不限于H.26L,并且本发明可以应用于利用后向帧间预测的各种视频编码方法。
在本实施例中,利用固定长度代码的语法作为用于传输最大延迟时间的语法被附加在序列参数组内,不过应当注意,用于传输最大延迟时间的代码和语法或者用于表示最大延迟时间的时间单位当然不限于这些。固定长度代码可以由可变长度代码代替,并且最大延迟时间可以借助于能够向整个的编码数据传送要被提供的信息的多种语法的任何一种语法来传输。
例如,在H.26L中,语法可以被附加在补充的增强信息报文(Supplemental Enhancement Information Message)中。在使用另外的视频编码方法的情况下,最大延迟时间可以利用在有关的编码方法中用于向整个编码数据传输要被提供的信息的语法来传输。在另外的情况下,最大延迟时间也可以在视频编码方法的编码数据的外部被传输,如在用于使用H.263通信时用于传输控制信息的ITU-TRecommendation H.245中那样。
(第二实施例)
下面说明本发明的第二实施例。本实施例将说明以可变帧速率进行编码的实施形式。按照本实施例的编码和译码操作大部分基本上和第一实施例的相同。因为本实施例使用可变的帧速率,其涉及在低的帧速率下进行操作,以便除去在第一实施例中的在编码时进行的操作之外,避免执行需要的延迟时间大于预先计算的最大延迟时间范围的后向预测,使得即使在可变的帧速率下,也能避免在后向预测非相关帧的译码图像和后向预测帧的译码图像之间的输出时间间隔偏离原始的时间间隔。
因为在译码操作中参考帧数的上限被预先确定,首先确定在不超过所述上限范围内的用于后向预测的参考帧的最大数量。然后然后根据在编码比特率的控制中预先确定的目标帧速率确定最大的帧时间间隔,并按照在后向预测中使用的最大的参考帧数和最大帧时间间隔计算作为一帧或两帧或多帧的时间间隔的最大延迟时间。
在编码操作中,此后每个帧的编码被这样控制,使得避免需要超过最大延迟时间的后向预测。具体地说,帧的编码的顺序被这样控制,使得防止超过在后向预测中使用的最大参考帧数的在后向预测中使用的任何参考帧,即任何在时间上在当前帧之后的随后帧,在当前帧之前被编码和输出。
此外,当因为编码比特率的控制使得编码帧速率暂时成为较小,使得在这种情况下的帧时间间隔大于最大帧时间间隔时,每个帧的译码被这样控制,使得不应用后向预测来编码所述的帧。
本实施例和第一实施例基本相同之处在于,在编码过程中输出最大延迟时间,对编码数据语法附加用于传输最大延迟时间的语法dpb_output_delay,以便在编码过程中实现最大延迟时间的输入,并且语法的定义也是相同的。
在本实施例中,译码操作被设置用于译码由dpb_output_delay预告的最大延迟时间,并利用所述最大延迟时间延迟译码图像的输出时间。这个处理也和第一实施例中的相同。
(第三实施例)
下面说明本发明的第三实施例。本实施例将说明一种这样的实施形式,其中每帧的最大延迟时间被选择地预告,因而可以灵活地被改变。按照本实施例的编码和译码操作基本上和第一实施例或第二实施例的相同。
在本实施例中,在第一实施例中规定的用于传输最大延迟时间的语法dpb_output_delay被设置添加于作为用于传输提供给每个帧的信息的语法的图像参数组(Picture Parameter Set),代替用于传输提供给整个编码数据的信息的语法。其中的语法dpb_output_delay被构成用于以90kHz的时间单位表示最大延迟时间,如第一实施例的情况那样,并且用所述时间单位表示的数值被编码并以32位的无符号固定长度代码进行传输。
本实施例大部分和第一实施例相同,关于在编码过程中最大延迟时间的计算和在译码过程中利用所述最大延迟时间使译码图像的输出时间延迟,都和第一实施例相同。在本实施例中使用的视频编码设备和视频译码设备的配置也基本上和关于第一实施例的图3和图4所示的配置相同。
让我们解释在本实施例中如何确定每个帧的最大延迟时间dpb_output_delay。在图3所示的编码设备1中,控制器15利用第一实施例中所述的方法计算由于后向预测而引起的延迟时间(D),并确定每个帧的编码时间Tr(n)。当每个帧的显示时间Tin(n)被从帧存储器11输入时,则按照下述计算该帧的dpb_output_delay(n)dpb_output_delay(n)=Tin(n)+D-Tr(n)使dpb_output_delay的这个值和有关的帧相关联,并在多路传输器12中进行多路传输。
在本实施例中,用于每帧的译码的时间Tr(n)也一道被编码。以图2为例,D=2/15秒,并且Tin(n)=0,1/15,2/15,3/15,或4/15(n=0,1,2,3,4)。因为编码顺序的改变,Tr(n)成为Tin(n)=0,1/15,4/15,2/15,或3/15(n=0,1,2,3,4)。其中每帧的dpb_output_delay被获得如下
n=0,dpb_output_delay(0)=0+2/15-0=2/15n=1,dpb_output_delay(1)=1/15+2/15-1/15=2/15n=2,dpb_output_delay(2)=2/15+2/15-4/15=0n=3,dpb_output_delay(3)=3/15+2/15-2/15=3/15n=4,dpb_output_delay(4)=4/15+2/15-3/15=3/15在另一方面,在图4所示的译码设备2中,译码器20向控制器25发送每帧的dpb_output_delay(n)和Tr(n),控制器25根据以下公式计算每帧的输出时间To(n)To(n)=Tr(n)+dpb_output_delay以图2为例,每帧的To(n)根据Tin(n)=0,1/15,4/15,2/15,或3/15(n=0,1,2,3,4)和dpb_output_delay(n)=2/15,2/15,0,或3/15(n=0,1,2,3,4),按照上述规定计算每帧的To(n)如下n=0,To(0)=0+2/15=2/15n=1,To(1)=1/15+2/15=3/15n=2,To(2)=4/15+0=4/15n=3,To(3)=2/15+3/15=5/15n=4,To(4)=3/15+3/15=6/15即,所有的图像以恒定的时间间隔以2/15秒的延迟在监视器上被显示。当然,当不应用后向预测时,所使用的参考帧数是0,因而dpb_output_delay的值是0。
因为最大延迟时间由从获得后向预测非相关帧的译码图像的时刻确定参考时间,对于后向预测非相关帧,只传输最大延迟时间便足够了。因此例如可以使用这样一种结构,其中假定在用于传输最大延迟时间的语法之前传输一个表示有无语法的标记,则用于传输最大延迟时间的语法便被设置为可以忽略的。对于后向预测非相关帧,语法也可以被设置为可选择地省略,只要在不传送最大延迟时间的情况下应用以前传输的最大延迟时间即可。
在本实施例中用于每帧的语法可以和在第一实施例中确定的用于整个编码数据的语法同时使用。在这种情况下,用于每帧的语法可以被省略,只要在其之前传送一个表示有无语法的标记即可。在用于整个编码数据的语法中传输的最大延迟时间在用于每帧的语法中的最大延迟时间被传输之前被连续地提供。在其被用于每帧的语法更新之后,根据其而延迟的时间被用作此后输出每个译码图像时的参考时间。
本实施例按照假定其根据H.26L被实体化进行了说明,不过应当注意,本发明的应用不限于H.26L,本发明可以应用于使用后向帧间预测的各种视频编码方法。
在本实施例中,用于传送最大延迟时间的语法是借助于对图像参数组附加固定长度代码而形成的语法,当然,所述代码和用于传输所述代码的语法,或者用于表示最大延迟时间的时间单位不限于这些。固定长度代码可以由可变长度代码代替,并且最大延迟时间可以用能够预告要被施加于每帧的信息的任何语法预告。
例如,语法可被附加在H.26L中的补充的增强信息报文中。当使用另一种视频编码方法时,可以使用可以使用在相关的编码方法中用于预告要对每帧提供的信息的语法。此外,在所述视频编码方法中,所述信息也可以在编码数据的外部被预告,如同在利用H.263通信中用于预告控制信息的ITU-T Recommendation H.245那样。
如上面详细说明的,按照本发明的视频编码方法、视频译码方法、视频编码设备、视频译码设备、视频处理系统和视频译码程序提供了以下的效果。即,当由一系列帧构成的活动图像被后向帧间预测编码以便被输出时,通过被构成用于输出由于后向预测而引起的最大延迟时间的视频编码方法、编码设备和编码程序,和被构成用于实现输入所述最大延迟时间的视频译码方法、视频译码设备和译码程序,以及使用它们的视频处理系统,可以使得当使用后向帧间预测时,以合适的时间间隔输出译码图像。
特别地,本发明和现有技术的区别在于,输出时间不是绝对值,而是由译码时间Tr得到的相对值;因此,本发明提供了这样的效果,即,能够利用少量的位数,精确地描述和传输最大延迟时间dpb_output_delay的值,即使在帧速率是可改变的情况下。即使译码时间Tr具有漂移或者未被收到,也能输出具有从译码完成时延迟dpb_output_delay的相应的图像,从而提供使图像以正确的时间间隔输出的优点。
权利要求
1.一种实现在一帧和另一帧之间的帧间预测的视频编码方法,所述视频编码方法包括输出一个由后向预测引起的最大延迟时间。
2.一种视频编码方法,包括输入步骤,用于实现作为编码的对象的帧的输入;编码步骤,用于利用预定的方法对所述的帧编码;以及最大延迟时间计算步骤,用于由所述帧的显示时间、编码时间、和后向预测引起的延迟时间计算所述帧的最大延迟时间。
3.一种用于实现在一帧和另一帧之间的帧间预测的视频译码方法,所述视频译码方法包括实现输入由后向预测引起的最大延迟时间。
4.一种视频译码方法,包括输入步骤,用于实现包含由预定方法编码的帧的编码数据的图像数据、所述帧的译码时间和最大延迟时间的输入;译码步骤,用于译码所述编码数据,从而产生再现的帧;以及图像输出时间计算步骤,用于根据所述译码时间和所述最大延迟时间计算用于显示所述帧的输出时间。
5.一种用于实现在一帧和另一帧之间的帧间预测的视频编码设备,所述视频编码设备被配置为输出一个由后向预测引起的最大延迟时间。
6.一种视频编码设备,包括输入装置,用于实现作为编码的对象的帧的输入;编码装置,用于利用预定的方法对所述的帧编码;以及最大延迟时间计算装置,用于由所述帧的显示时间、编码时间、和由后向预测引起的延迟时间计算所述帧的最大延迟时间。
7.按照权利要求5或6所述的视频编码设备,其中所述最大延迟时间定义为,将要被进行后向帧间预测的帧的发生时间和后向预测中可被用作参考帧的时间上的最后的随后帧的发生时间之间的时间差。
8.按照权利要求5至7之一所述的视频编码设备,其中所述最大延迟时间作为要被施加于整个编码数据的信息被输出。
9.按照权利要求5至7之一所述的视频编码设备,其中所述最大延迟时间作为施加于每个帧的信息被输出。
10.按照权利要求5至7之一所述的视频编码设备,其中所述最大延迟时间可选地作为,被施加于所述最大延迟时间为其而被传输的一个帧、以及在该帧之后的每个时间上的随后帧的信息被输出。
11.一种用于实现在一帧和另一帧之间的帧间预测的视频译码设备,所述视频译码设备被构成用于实现输入由后向预测引起的最大延迟时间。
12.一种视频译码设备,包括输入装置,用于实现包含由预定方法编码的帧的编码数据的图像数据、所述帧的译码时间和最大延迟时间的输入;译码装置,用于译码所述编码数据,从而产生再现的帧;以及图像输出时间计算装置,用于根据所述译码时间和所述最大延迟时间计算用于显示所述帧的输出时间。
13.按照权利要求11或12所述的视频译码设备,其中所述最大延迟时间被定义为,相对于任何其它帧其译码时间和输出时间的顺序不颠倒的一个帧的译码时间和与所述的帧相互关联的译码图像输出时间之间的时间差。
14.按照权利要求11至13之一所述的视频译码设备,其中所述最大延迟时间作为要被施加于整个编码数据的信息被输入。
15.按照权利要求11至13之一所述的视频译码设备,其中所述最大延迟时间作为施加于每个帧的信息被输入。
16.按照权利要求11至13之一所述的视频译码设备,其中所述最大延迟时间可选地作为,被施加于所述最大延迟时间为其而被传输的一个帧、以及在该帧之后的每个在时间上的随后帧的信息被输入。
17.一种用于使计算机执行用于实现在一帧和另一帧之间的帧间预测的视频编码的视频编码程序,所述视频编码程序使计算机执行用于输出由后向预测引起的最大延迟时间的过程。
18.一种用于使计算机执行以下处理的视频编码程序输入过程,用于实现作为编码的对象的帧的输入;编码过程,用于利用预定的方法对所述的帧编码;以及最大延迟时间计算过程,用于由所述帧的显示时间、编码时间、和由后向预测引起的延迟时间计算所述帧的最大延迟时间。
19.一种用于使计算机执行用于实现在一帧和另一帧之间的帧间预测的视频译码的视频译码程序,所述视频译码程序使计算机执行用于实现输入由后向预测引起的最大延迟时间的过程。
20.一种用于使计算机执行以下处理的视频译码程序输入过程,用于实现包含由预定方法编码的帧的编码数据的图像数据、所述帧的译码时间和最大延迟时间的输入;译码过程,用于译码所述编码数据,从而产生再现的帧;以及图像输出时间计算过程,用于根据所述译码时间和所述最大延迟时间计算用于显示所述帧的输出时间。
全文摘要
一种具有视频编码设备1和视频译码设备2的视频处理系统。除去由编码视频数据D0得到的编码数据D1之外,所述编码设备1输出由后向预测引起的最大延迟时间。译码设备2除去输入来自编码设备1的编码数据D之外,还输入由后向预测引起的最大延迟时间。然后,译码设备2参考输入的最大延迟时间译码编码的数据D1。
文档编号H04N7/32GK1497941SQ200310100758
公开日2004年5月19日 申请日期2003年10月8日 优先权日2002年10月3日
发明者安达悟, 文仲丞, 加藤祯笃, 荣藤稔, 陈朝庆, 笃 申请人:株式会社Ntt都科摩
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1