图像处理装置、图像处理方法、记录介质和程序的制作方法

文档序号:7970022阅读:85来源:国知局
专利名称:图像处理装置、图像处理方法、记录介质和程序的制作方法
技术领域
本发明总的来说涉及图像处理装置、图像处理方法、记录介质和程序。更特别地,本发明涉及适合用于解码帧间预测编码数据流数据的图像处理装置、图像处理方法、记录介质和程序。
背景技术
移动图像专家组2(MPEG2)视频是国际标准组织/国际电工协会(ISO/IEC)13818-2定义的并且由国际电信联盟-电信部门(ITU-T)H.262推荐的视频信号的高效的编码方法。
MPEG中,通过考虑图像的时间冗余度确定相邻像素之间的运动补偿差,来提高编码效率。在MPEG视频解码器中,有关运动补偿像素,通过将由当前被解码的主题像素的运动向量表示的参考图像数据加入到该主题像素,而对该主题像素执行运动补偿,以便在被编码之前的图像数据可以被重建。
MPEG2视频数据流具有由多个层形成的层次配置,诸如序列层、图片组(GOP)层、图片层、片(slice)层、宏块层以及块层。
GOP包括多个图片。MPEG2中,图像包括三类图片I-图片(内部编码图片)、P-图片(预测编码图片)以及B-图片(双向预测编码图片)。I-图片中,所有宏块都是内部编码(帧内编码)的。P-图片包括内部编码或相互间编码(inter-coded)(前向(暂时在前)帧间编码)宏块。B-图片包括内部编码宏块、前向相互间编码宏块、后向(暂时在后(upcoming))相互间编码宏块、或者进行通过对前向相互间编码像素和后向相互间编码像素的平均值取整(round-averaging)来执行的内插帧间预测编码的宏块。只有I-图片可以被独立编码而不参考其他图片。因此,可以通过访问I-图片而容易地执行打乱图片的时间顺序的操作,诸如随机访问操作。
GOP的范围从GOP的标头(header)到紧靠下一个序列(sequence)的标头或下一个GOP的标头之前。在比特流中,只在紧靠I-图片之前插入GOP的标头。通常,由于使用双向预测解码B-图片,因此参考在前和在后的I-图片或P-图片来解码它们。如果B-图片所参考的I-图片或P-图片位于相邻的GOP之上,则GOP包括诸如被称为“开放式(open)GOP”的B-图片。如果单独地解码开放式GOP,则一些B-图片可能不被解码。
然而,并不总是需要在B-图片上执行双向预测编码,并且每个宏块的编码模式可以在双向预测、仅仅前向预测、仅仅后向预测或不需预测之间转换。可以参考同一个GOP中的I-图片或P-图片解码的GOP被称为“封闭式(closed)GOP”。封闭式GOP可以被单个地解码而不需要在前或在后的GOP。
以下的技术是公知的。当以例如×2或×3的速率回放采用仅仅编码有限数量的帧的编码方法编码的视频信号时,被再现的图像表示自然运动(例如,专利号3564745中公开的技术)。

发明内容
以下参照图1和2描述一种解码器,该解码器采用上述出版物中公开的技术以×2的速率回放MPEG开放式GOP。
图1中示出了上述类型的解码器。解码器1通过使用两个解码芯片,即,#1解码芯片11-1和#2解码芯片11-2,执行并行处理来解码开放式GOP数据流,其中每个芯片可以以×1的速率解码数据流。
当接收被编码的数据流时,#1解码芯片11-1和#2解码芯片11-2以×1的速率解码被编码的数据流的每个图片,并且将解码的图像数据提供到选择器13。缓冲器12-1和12-2分别缓冲将要提供到#1解码芯片11-1和#2解码芯片11-2的被编码的数据流,或者暂时存储作为参考图像用于解码P-图片或B-图片的被解码的I-图片或P-图片。
选择器13从#1解码芯片11-1或#2解码芯片11-2提供的被解码的图像数据中选择将要作为解码的视频信号而输出的图像数据,并且输出所选择的图像数据。
在解码器1中,#1解码芯片11-1和#2解码芯片11-2顺序地解码形成一个GOP的图片。例如,当执行快速回放操作时,GOP被交替地解码,诸如由#1解码芯片11-1解码GOP0,由#2解码芯片11-2解码GOP1,由#1解码芯片11-1解码GOP2,由#2解码芯片11-2解码GOP3,等等。
现在参照图2给出解码器1试图以×2的速率执行解码处理的情况的说明。
例如,当由#1解码芯片11-1解码GOP1时,为了解码GOP1头部的两个B-图片,#1解码芯片11-1将参考GOP0的最后一个P-图片,而为了解码GOP0的最后一个P-图片,#1解码芯片11-1将参考紧靠最后一个P-图片之前的P-图片。采用这种方法,为了解码GOP1头部的两个B-图片,需要事先解码GOP0的所有I-图片和P-图片。
同样,当由#2解码芯片11-2解码GOP2时,为了解码GOP2头部的两个B-图片,#2解码芯片11-2将参考GOP1的最后一个P-图片,而为了解码GOP1的最后一个P-图片,#2解码芯片11-2将参考紧靠最后一个P-图片之前的P-图片。采用这种方法,为了解码GOP2头部的两个B-图片,需要事先解码GOP1的所有I-图片和P-图片。
也就是说,在解码分配给#1解码芯片11-1或#2解码芯片11-2的GOP之前,需要#1解码芯片11-1或#2解码芯片11-2解码紧靠将被解码的GOP之前的GOP的I-图片和P-图片。因此,当通过解码器1的#1解码芯片11-1和#2解码芯片11-2交替地解码GOP以便以×2的速率输出被解码的图片时,在GOP3和后面图片的回放开始时间处,按解码参考图像(即紧靠将被解码的GOP之前的GOP的I-图片和P-图片)所需的时间,发生延迟。结果,难于执行×2的解码处理。
当使用多个解码芯片执行以×2的回放操作时,其中每个芯片能够执行×1的速率解码,如图3中所示,除了#1解码芯片11-1和#2解码芯片11-2之外还需要使用第三个解码芯片,以便使用三个芯片来执行并行处理。采用这种配置,解码参考图像所需的时间可以被补偿,该参考图像是例如,紧靠将被解码的GOP之前的GOP的I-图片和P-图片,以便可以执行×2的解码。
如果用T表示解码GOP2所需的时间,如图4中所示,并且如果解码用于解码GOP2的参考图像(即GOP1的I-图片和P-图片)所需的时间T1小于T/2,如图4中A所表示的那样,则可以使用如上所述的三个解码芯片执行×2的解码。然而,如果解码用于解码GOP2的GOP1的I-图片和P-图片所需的时间为T2大于T/2,如图4中B所表示的那样,则例如,因为GOP2的各个图片所需的解码时间不同,所以即使使用三个解码芯片也难于执行×2的解码。因此需要再增加一个解码芯片以便以×2的速率解码该开放式GOP。
如果数据流被限制为仅仅是封闭式GOP,则不需要解码紧靠将被解码的GOP之前的GOP的I-图片和P-图片,如图5中所示,因此,可以通过两个解码芯片执行×2的解码处理。然而,编码模式,即,数据流由开放式GOP还是由封闭式GOP形成,不由解码器1确定,而是当编码数据流时由编码器确定。另外,由于在封闭式GOP中,参考图像包括在同一个GOP中,所以生成的图像的质量变得低于使用开放式GOP的质量。所以,除了特殊的目的,例如,用于编辑部分之外,通常不使用封闭式GOP。
同样,为了解码具有较高帧频的编码视频数据流,将使用多个解码芯片或者提高时钟频率,其中每个解码芯片具有×1的解码能力。
因此,希望在帧间编码数据流上执行快速和高性能的解码处理。
根据本发明的一个实施例,提供了一种用于解码被编码的数据流并且输出被解码的数据流的图像处理装置。该图像处理装置包括多个解码装置和一个输出装置,其中每个解码装置对构成编码数据流的每个帧的预定区域执行解码处理,其中输出装置用于接收作为多个解码装置执行解码处理的结果所获得的多个像素数据并且将多个像素数据组合为被解码的图像数据并且用于输出该被解码的图像数据。在多个解码装置中,所述解码装置将不同解码装置执行解码处理所需的像素数据提供到不同的解码装置,该像素数据是作为所述解码装置执行解码处理的结果所获得的像素数据中的数据,并且还从不同的解码装置中获得所述解码装置执行解码处理所需的像素数据,该像素数据是作为不同的解码装置执行解码处理的结果所获得的像素数据中的数据。所述解码装置通过参考作为所述解码装置执行解码处理的结果所获得的像素数据和从不同的解码装置获得的像素数据而执行解码处理。
上述的图像处理装置还可以包括多个像素数据存储装置,像素数据存储装置的数量与多个解码装置的数量相同,该像素数据存储装置用于暂时存储作为多个解码装置的每一个执行解码处理的结果所获得的像素数据或多个解码装置的每一个执行解码处理所需的像素数据。所述解码装置可以将作为所述解码装置执行解码处理的结果所获得的像素数据和从不同的解码装置中获得的像素数据存储到像素数据存储装置中,并且可以通过参考作为所述解码装置执行解码处理的结果所获得的并存储在像素数据存储装置中的像素数据和从所述不同的解码装置中获得的并存储在像素数据存储装置中的像素数据而执行解码处理。
在上述的图像处理装置中,不同的解码装置执行解码处理所需的像素数据可以是不同解码装置解码的预定区域中包含的运动补偿参考区域的运动向量搜索区域中所包括的像素数据,而所述解码装置执行解码处理所需的像素数据可以是所述解码装置解码的预定区域中包含的运动补偿参考区域的运动向量搜索区域中所包括的像素数据。
在上述的图像处理装置中,多个解码装置的每一个可以由一个芯片形成,并且芯片的输入/输出终端可以相互连接以便多个解码装置相互连接来发送和接收像素数据。
上述的图像处理装置还可以包括控制装置,该控制装置用于控制由多个解码装置执行的解码处理。该控制装置可以检测形成编码数据流的每个图片的图片类型,而多个解码装置的每一个可以根据控制装置检测的图片类型来执行解码处理。
多个解码装置的每一个可以检测形成编码数据流的每个图片的图片类型,并且可以根据所检测的图片类型来执行解码处理。
上述的图像处理装置还可以包括用于分割编码数据流的数据流分割装置。多个解码装置的每一个可以对形成由数据流分割装置分割的编码数据流的每个帧的预定区域执行解码处理。
数据流分割装置可以以片(slice)为单元将构成编码数据流的每个帧分割为预定的区域,所述片的数量与多个解码装置的数量相同。
多个解码装置的每一个可以接收形成编码数据流的每个帧,以片为单元将该帧分割为预定的区域,并且提取和解码预定区域之一,所述片的数量与多个解码装置的数量相同。
多个解码装置的每一个可以优先地解码由不同解码装置执行解码处理所需的像素数据。
根据本发明的另一个实施例,为图像处理装置提供了一种图像处理方法或程序,该方法用于解码被编码的数据流并且输出被解码的数据流,该程序允许计算机执行解码被编码的数据流的处理并且输出被解码的数据流。该图像处理方法或程序包括以下步骤使用多个解码器对形成编码数据流的每个帧的每个预定区域执行解码处理;将不同的解码器执行解码处理所需的像素数据提供到不同的解码器,该像素数据是作为多个解码器的所述解码器执行解码处理的结果所获得的像素数据中的数据;从不同的解码器获得所述解码器执行解码处理所需的像素数据,该像素数据是作为不同的解码器执行解码处理的结果所获得的像素数据中的数据;以及接收作为多个解码器执行解码处理的结果所获得的像素数据,并且将所接收的像素数据组合为被解码的图像数据;以及输出该解码的图像数据。在解码处理中,当解码帧间预测编码帧的预定区域时,通过参考作为所述解码器执行解码处理的结果所获得的像素数据和所述解码器执行解码处理所需的并且从不同解码器获得的像素数据,解码该预定区域。
根据本发明的一个实施例,多个解码装置/解码器,每一个对形成编码数据流的每个帧的预定区域执行解码处理。多个解码装置/解码器中,所述解码装置/解码器,将不同的解码装置/解码器执行解码处理所需的像素数据,提供到不同的解码装置/解码器,该像素数据是作为所述解码装置/解码器执行解码处理的结果所获得的像素数据中的数据,并且还从不同的解码装置/解码器获得所述解码装置/解码器执行解码处理所需的像素数据,该像素数据是作为不同的解码装置/解码器执行解码处理的结果所获得的像素数据中的数据。所述解码装置/解码器,通过参考作为所述解码装置/解码器执行解码处理的结果所获得的像素数据和从不同的解码装置/解码器获得的像素数据,执行解码处理。然后,多个解码装置/解码器获得的像素数据被组合并输出。
如上所述,根据本发明的一个实施例,编码的数据流可以被解码,并且特别地,参考像素可以在多个解码装置/解码器中发送和接收。因此,一个帧可以被分割,并且可以对所分割的帧执行快速和高性能的解码。


图1是说明公知的解码器配置的方框图;图2说明了图1中所示的公知解码器以×2的速率执行解码处理的情况;图3说明了包括三个解码芯片的解码器执行的处理;图4说明了包括三个解码芯片的解码器试图以×2的速率执行解码处理的情况;图5说明了公知的解码器解码封闭式GOP时的处理;图6示出了接收、暂时存储编码数据流并在高速回放时对其进行解码的系统的方框图;图7由图7A和7B组成,是说明根据本发明的实施列的解码器配置的第一个例子的方框图;图8A、8B和8C说明了分割帧的方式;
图9到14说明了两个解码芯片之间参考像素的发送和接收;图15是说明解码处理1的流程图;图16由图16A和16B组成,是说明被分割的帧的解码处理1的流程图;图17说明了访问视频缓冲器的访问时间;图18、19和20说明了解码处理的顺序和解码处理的速率;图21是说明根据本发明的实施例的解码器配置的第二个例子的方框图;图22说明了三个解码芯片中的参考像素的发送和接收;图23说明了解码处理的顺序和解码处理的速率;图24由图24A和24B组成,是说明根据本发明的实施例的解码器配置的第三个例子的方框图;图25由图25A和25B组成,是说明根据本发明的实施例的解码器配置的第四个例子的方框图;图26是说明解码处理2的流程图;图27由图27A和27B组成,是说明被分割的帧的解码处理2的流程图;图28由图28A和28B组成,是说明根据本发明的实施例的解码器配置的第五个例子的方框图;图29是说明解码处理3的流程图;图30由图30A和30B组成,是说明被分割的帧的解码处理3的流程图;图31由图31A和31B组成,是说明根据本发明的实施例的解码器配置的第六个例子的方框图;图32是说明解码处理4的流程图;图33由图33A和33B组成,是说明被分割的帧的解码处理4的流程图;图34是说明根据本发明的实施例的解码器配置的第七个例子的方框图;图35由图35A和35B组成,是说明根据本发明的实施例的解码器配置的第八个例子的方框图;图36是说明解码处理5的流程图;图37由图37A和37B组成,是说明被分割的帧的解码处理5的流程图;以及图38是说明根据本发明的实施例的解码器配置的第九个例子的方框图。
具体实施例方式
在描述本发明的实施例之前,下面先讨论权利要求的特征与本发明的实施例之间的联系。该描述用于确保在本说明书中描述支持所请求保护的发明的实施例。因此,即使不将以下实施例中的元件描述为涉及本发明的某一特征,也不必定意味着该元件不涉及权利要求的该特征。相反,即使这里将元件描述为涉及权利要求的某一特征,也不必定意味着该元件不涉及权利要求的其他特征。
根据本发明的实施例的图像处理装置(例如,图7中所示的解码器54-1,图21中所示的解码器54-2,图24中所示的解码器54-3,图25中所示的解码器54-4,或图28中所示的解码器54-5)是用于解码被编码的数据流并且输出解码的数据流的图像处理装置。该图像处理装置包括多个解码装置(例如,图7中所示的#1解码芯片72和#2解码芯片76,图21中所示的#1解码芯片203和#2解码芯片205,图24中所示的#1解码芯片301和#2解码芯片303,图25中所示的#1解码芯片352和#2解码芯片353,或图28中所示的#1解码芯片382和#2解码芯片383)和一个输出装置(例如,图7、24、25或28中所示的选择器79,或图21中所示的选择器209),其中每个解码装置对形成编码数据流的每个帧的预定区域执行解码处理,该输出装置用于接收作为多个解码装置执行解码处理的结果所获得的多个像素数据并且将该多个像素数据组合为解码图像数据,并且用于输出该解码的图像数据。在多个解码装置中,所述解码装置将在作为所述解码装置执行解码处理的结果所获得的像素数据中,由不同的解码装置执行解码处理所需的像素数据(例如,图10中由α或β表示的区域中的像素数据)提供到不同的解码装置,并且还从不同的解码装置获得,在由所述不同的解码装置执行解码处理的结果所获得的像素数据中,由所述解码装置执行解码处理所需的像素数据。所述解码装置通过参考作为所述解码装置执行解码处理的结果所获得的像素数据和从所述不同的解码装置获得的像素数据,来执行所述解码处理。
上述的图像处理装置还可以包括多个像素数据存储装置(例如,图7、24、25或28中所示的视频缓冲器75和78,或者图21中所示的第一缓冲器204、第二缓冲器206以及第三缓冲器208),像素数据存储装置的数量与多个解码装置的数量相同,该像素数据存储装置用于暂时存储作为多个解码装置的每一个执行解码处理的结果所获得的像素数据或多个解码装置的每一个执行解码处理所需的像素数据。所述解码装置可以将作为所述解码装置执行解码处理的结果所获得的像素数据和从不同的解码装置获得的像素数据存储到像素数据存储装置中,并且可以通过参考作为所述解码装置执行解码处理的结果所获得的并存储在像素数据存储装置中的像素数据,和从所述不同的解码装置获得的并存储在像素数据存储装置中的像素数据,来执行解码处理。
上述的图像处理装置还可以包括用于控制多个解码装置执行的解码处理的控制装置(例如,图7或24中所示的控制器71,图21中所示的控制器201,图25中所示的控制器351或图28中所示的控制器381)。该控制装置可以检测形成编码数据流的每个图片的图片类型,而多个解码装置的每一个可以根据控制装置检测的图片类型而执行解码处理。
上述的图像处理装置还可以包括用于分割编码数据流的数据流分割装置(图7、24、25中所示的数据流分割器72或图21中所示的数据流分割器202)。多个解码装置的每一个可以对形成由数据流分割装置分割的编码数据流的每个帧的预定区域执行解码处理。
多个解码装置的每一个可以优先地解码不同的解码装置执行解码处理所需的像素数据(例如,图10中由α或β表示的区域中的像素数据)。
根据本发明的另一个实施例,提供了一种用于图像处理装置(例如,图7中所示的解码器54-1,图21中所示的解码器54-2,图24中所示的解码器54-3,图25中所示的解码器54-4,或图28中所示的解码器54-5)的图像处理方法以及程序,该方法用于解码被编码的数据流并且输出解码的数据流,该程序允许计算机执行用于解码已被编码的数据流并且输出解码的数据流的处理。该图像处理方法包括以下步骤使用多个解码器(例如,图7中所示的#1解码芯片72和#2解码芯片76,图21中所示的#1解码芯片203和#2解码芯片205,图24中所示的#1解码芯片301和#2解码芯片303,图25中所示的#1解码芯片352和#2解码芯片353,或图28中所示的#1解码芯片382和#2解码芯片383)对形成编码数据流的每个帧的每个预定区域执行解码处理(例如,图16中所示的步骤S24、S29或S34);将在作为多个解码器的所述解码器执行解码处理的结果所获得的像素数据中,由不同的解码器执行解码处理所需的像素数据(例如,图10中由α或β表示的区域中的像素数据),提供到不同的解码器;从不同的解码器获得(例如,图16中所示的步骤S27或S32),在作为所述不同的解码器执行解码处理的结果所获得的像素数据中,由所述解码器执行解码处理所需的像素数据;以及接收作为多个解码器执行解码处理的结果所获得的像素数据并且将所接收的像素数据组合为解码的图像数据;以及输出该解码的图像数据(例如,图15中所示的步骤S6)。在解码处理中,当解码有关帧间预测编码的帧的预定区域时,通过参考作为所述解码器执行解码处理的结果所获得的像素数据和所述解码器执行解码处理所需的并从不同的解码器获得的像素数据,来解码该预定区域。
下面参照附图详细地描述本发明的实施例。
图6所示的系统中,输入并暂时存储由例如MPEG2视频编码的编码数据流,然后在高速回放时对它解码。
当接收未压缩的视频数据流时,编码器51使用例如MPEG2对它编码,并且将编码的数据流提供到记录/回放处理器52。
记录/回放处理器52在硬盘驱动器(HDD)53中记录该编码数据流,或者回放记录在HDD 53上的编码数据流并且将该编码数据流提供到解码器54。记录/回放处理器52不仅可以以×1的速率而且可以变速(包括快速)地执行回放操作。也就是说,从记录/回放处理器52提供到解码器54的数据流是变速回放数据流。
解码器54解码所提供的变速回放数据流并且输出解码的视频数据。解码器54可以使用多个解码芯片在所提供的变速回放数据流(编码数据流)上执行快速回放操作。虽然后面给出了它的详细说明,但是也可以采用不同的方式配置解码器54。
图7包括图7A和7B,是说明解码器54的第一个例子的解码器54-1的配置的方框图。当接收由MPEG2编码的数据流时,解码器54-1可以解码该数据流并且输出解码的数据流。
解码器54-1包括控制器71、数据流分割器72、#1解码芯片73、数据流缓冲器74、视频缓冲器75、#2解码芯片76、数据流缓冲器77、视频缓冲器78以及选择器79。虽然解码器54-1可以具有三个或更多的解码芯片,但是下面给出的说明假设提供了两个解码芯片,即,#1解码芯片73和#2解码芯片76。
控制器71根据用户的输入操作、外部设备提供的控制信号、或数据流分割器72提供的信息而控制解码器54-1的所有操作。
在控制器71的控制下,数据流分割器72解码所提供的编码数据流的序列层、GOP层、以及图片层,并且将编码数据流的每个图片分割为与解码芯片相同的数量(在这种情况下,两个),并且将所分割的图片区域分配并提供到#1解码芯片73和#2解码芯片76。可以采用以下的方式分割输入数据流的每个图片,如图8A、8B以及8C中所示。如图8A中所示,可以以片为单元将每个图片分割为与解码芯片相同的数量(在这种情况下,两个)。或者,如图8B中所示,可以将每个图片垂直地分割为与解码芯片相同的数量(在这种情况下,两个)。或者,如图8C中所示,可以将每个图片倾斜地分割为与解码芯片相同的数量(在这种情况下,两个)。如果用MPEG2解码,则垂直或倾斜地分割图片可能比以片为单元分割图片更困难。
在MPEG2视频数据流中,片由位于同一水平行的一系列宏块组成,并且在slice start code(片开始代码)中表示每个片的垂直位置。因此,当以片为单元将一个图片分割为与解码芯片相同的数量时,数据流分割器72可以根据片开始代码而分割每个帧。
数据流分割器72还将作为解码序列层、GOP层和图片层的结果所获得的信息,诸如,所提供数据流的图片类型,提供到控制器71。
数据流分割器72从每个图片分割出的区域的数量可以大于解码芯片的数量,然后,可以将所分割出的图片区域配置到解码芯片上。然而,最好数据流分割器72将每个图片分割为与解码芯片相同的数量,如图8A、8B或8C中所示,并且将分割出的区域配置给每个芯片解码器。采用这样的配置,当解码图片区域时,由一个解码芯片解码并且被其他解码芯片参考的区域变得更小。这简化了下面描述的在解码芯片之间发送和接收参考像素的处理。
可以平均地或不平均地分割图片。数据流分割器72可以具有检测图像的复杂性的功能,并且如果图片区域中的图像的复杂性非常不同,则数据流分割器72可以根据图像的复杂性(编码中的难度)确定区域(图8A或8B中的a和b)的分割比。
#1解码芯片73包括数据流输入电路91、缓冲器控制电路92、解码器单元93、运动补偿电路94、缓冲器控制电路95、芯片间接口(I/F)96以及显示输出电路97。在控制器71的控制下,#1解码芯片73解码从数据流分割器72提供的被分割的图片区域。在这种情况下,#1解码芯片73提供作为参考图片数据的图片区域中包含的区域的像素数据,该像素数据可能是#2解码芯片76执行解码处理所需的数据。#1解码芯片73还接收从#2解码芯片76提供的被解码的像素数据并且将它存储到视频缓冲器75中,并且如果需要,则通过参考所存储的像素数据而执行解码处理。
由例如动态随机存取存储器(DRAM)构成的数据流缓冲器74暂时存储提供到#1解码芯片73的编码数据流。由例如DRAM构成的视频缓冲器75接收由#1解码芯片73解码的视频信号(像素数据)或者从#2解码芯片76提供的被解码的视频信号(像素数据),并且暂时存储该像素数据。
#2解码芯片76包括数据流输入电路111、缓冲器控制电路112、解码器单元113、运动补偿电路114、缓冲器控制电路115、芯片间接口(I/F)116以及显示输出电路117。在控制器71的控制下,#2解码芯片76解码从数据流分割器72提供的被分割的图片区域。在这种情况下,#2解码芯片76提供作为参考图片数据的图片区域中包含的区域的像素数据,该像素数据可能是#1解码芯片73执行解码处理所需的数据。#2解码芯片76还接收从#1解码芯片73提供的被解码的像素数据并且将它存储到视频缓冲器78中,并且如果需要,则通过参考所存储的像素数据而执行解码处理。
由例如DRAM构成的数据流缓冲器77暂时存储提供到#2解码芯片76的编码数据流。由例如DRAM构成的视频缓冲器78接收由#2解码芯片76解码的视频信号(像素数据)或者从#1解码芯片73提供的被解码的视频信号(像素数据),并且暂时存储该像素数据。
选择器79从#1解码芯片73和#2解码芯片76接收被解码的像素数据,并且将该被解码的像素数据作为被解码的视频数据而输出。
解码器54-1可以具有驱动器80,而驱动器80连接到控制器71以便将信息发送到驱动器80中安装的可移动介质81,以及从驱动器80中安装的可移动介质81接收信息。
下面描述#1解码芯片73的配置和操作。
数据流输入电路91接收由数据流分割器72分割的编码数据流并且将它提供到缓冲器控制电路92。缓冲器控制电路92根据由时钟生成电路(未示出)提供的基本时钟在数据流缓冲器74中缓冲输入的编码数据流。缓冲器控制电路92还读取数据流缓冲器74中存储的编码数据流并且将它输出到解码器单元93。缓冲器控制电路92可以按时间顺序读取编码数据流的每个片,其中所述片存储在数据流缓冲器74中,并且将读取的片输出到解码器单元93。或者,缓冲器控制电路92可以按预定的顺序读取编码数据流的每个片,将在下面对其进行讨论,并且将读取的片输出到解码器单元93。
解码器单元93根据MPEG语法解码输入的数据流,并且将解码的数据流提供到运动补偿电路94。更特别地,解码器单元93将片层分成宏块以便解码该宏块,并且将所得的预测向量和像素输出到运动补偿电路94。
运动补偿电路94根据从解码器单元93输出的宏块是否经过运动补偿,通过缓冲器控制电路95从视频缓冲器75读取被解码的参考像素数据,然后对宏块执行运动补偿。运动补偿电路94然后将所得的像素数据输出到缓冲器控制电路95。
更特别地,如果从解码器单元93输出的宏块没有经过运动补偿,则运动补偿电路94通过缓冲器控制电路95在视频缓冲器75中存储像素数据。视频缓冲器75中存储的像素数据被用作显示图像并且可以被用作其他图片的参考数据。
如果从解码器单元93输出的宏块经过运动补偿,则运动补偿电路94根据从解码器单元93输出的预测向量,通过缓冲器控制电路95从视频缓冲器75读取参考像素数据。然后,运动补偿电路94通过将读取的参考像素数据添加到由解码器单元93提供的像素数据而执行运动补偿。运动补偿电路94通过缓冲器控制电路95在视频缓冲器75中存储运动补偿像素数据。视频缓冲器75中存储的像素数据被用作显示图像并且可以被用作其他图片的参考数据。
缓冲器控制电路95根据由时钟生成电路(未示出)提供的基本时钟将从运动补偿电路94提供的像素数据输入到视频缓冲器75。缓冲器控制电路95还通过芯片间接口96将从#2解码芯片76提供的像素数据输入到视频缓冲器75。另外,缓冲器控制电路95从视频缓冲器75存储的像素数据中读取由运动补偿电路94指定的参考像素数据,并且将该参考像素数据提供到运动补偿电路94。缓冲器控制电路95读取视频缓冲器75中存储的像素数据,并且将它提供到显示输出电路97。缓冲器控制电路95还在区域(运动向量搜索区域)中,读取视频缓冲器75中存储的像素数据中被用作#2解码芯片76执行解码处理所需的参考像素的像素数据,并且通过芯片间接口96将读取的像素数据提供到#2解码芯片76。
显示输出电路97根据同步定时信号,通过缓冲器控制电路95从视频缓冲器75中读取像素数据,生成用于输出被解码的像素数据的同步定时信号,并且作为被解码的视频数据而输出该像素数据。
#2解码芯片76的数据流输入电路111、缓冲器控制电路112、解码器单元113、运动补偿电路114、缓冲器控制电路115、芯片间接口116以及显示输出电路117的功能与#1解码芯片73的基本相同,并且#2解码芯片76的操作与#1解码芯片73的操作也相同,因此,省略#2解码芯片76的详细解释。
数据流输入电路111接收编码数据流,而缓冲器控制电路112将所提供的编码数据流输入到数据流缓冲器77,并且还读取数据流缓冲器77中存储的编码数据流,并将所读取的编码数据流输出到解码器单元113。
解码器单元113根据MPEG语法解码输入数据流,并且将解码的数据流提供到运动补偿电路114。运动补偿电路114根据从解码器单元113输出的宏块是否经过运动补偿,通过缓冲器控制电路115从视频缓冲器78读取被解码的参考像素数据,然后对宏块执行运动补偿。然后运动补偿电路114将所得的像素数据输出到缓冲器控制电路115。
如果从解码器单元113输出的宏块经过运动补偿,则运动补偿电路114根据从解码器单元113输出的预测向量,通过缓冲器控制电路115从视频缓冲器78读取参考像素数据。然后,运动补偿电路114通过将读取的参考像素数据添加到由解码器单元113提供的像素数据而执行运动补偿。运动补偿电路114通过缓冲器控制电路115,在视频缓冲器78中存储运动补偿像素数据。视频缓冲器78中存储的像素数据被用作显示图像并且可以被用作其他图片的参考数据。
缓冲器控制电路115将从运动补偿电路114提供的像素数据输入到视频缓冲器78,并且还将#1解码芯片73通过芯片间接口116提供的像素数据输入到视频缓冲器78。另外,缓冲器控制电路115从视频缓冲器78存储的像素数据中读取由运动补偿电路114指定的参考像素数据,并且将该参考像素数据提供到运动补偿电路114。缓冲器控制电路115读取视频缓冲器78中存储的像素数据,并且将它提供到显示输出电路117。缓冲器控制电路115还在区域(运动向量搜索区域)中读取视频缓冲器78中存储的像素数据中被用作#1解码芯片73执行解码处理所需的参考像素的像素数据,并且通过芯片间接口116将读取的像素数据提供到#1解码芯片73。显示输出电路117通过缓冲器控制电路115从视频缓冲器78中读取像素数据,并且输出所读取的像素数据作为被解码的视频数据。
为了在#1解码芯片73的芯片间接口96与#2解码芯片76的芯片间接口116之间发送和接收数据,最好分别提供例如用于将来自芯片间接口96的数据提供到芯片间接口116的数据总线的接口(专用线),以及例如用于将来自芯片间接口116的数据提供到芯片间接口96的数据总线的接口(专用线),以至于一个接口只用于单向通信而不用于其他方向的通信。
如果单独地提供两个接口而不提供公共接口,诸如数据总线,则可以通过芯片间接口96将通过缓冲器控制电路95从视频缓冲器75读取的像素数据提供到芯片间接口116,而不管是否将数据从芯片间接口116提供到芯片间接口96。同样,可以通过芯片间接口116将通过缓冲器控制电路115从视频缓冲器78读取的像素数据提供到芯片间接口96,而不管是否将数据从芯片间接口96提供到芯片间接口116。也就是说,在使用公共接口的情况下是必需的伴随着数据传送的复杂的地址控制、或者确定何时占用公共接口或者何时发送或接收数据的定时控制,在采用这种配置的情况下,就不需要了。另外,与使用公共接口时相比,可以降低数据的传送速率。
更特别地,如果使用公共接口,则当发送或接收数据时,如果公共接口用于发送和接收其他数据则需要等待时间。另外,从一个解码芯片向其他解码芯片发送数据之前,需要用于执行地址控制或定时控制的控制信号,以便于确定何时占用公共接口或何时传送要在解码芯片之间发送和接收的数据,还需要用于根据控制信号进行管理的发送和接收数据的各种设置。相反,如果单独地提供接口,则不需要用于发送或接收其他数据的等待时间,同样,不需要发送和接收数据之前的处理。因此,当在相同的时间周期中从一个解码芯片向其他解码芯片传送相同数量的数据时,与使用公共接口时相比,可以降低数据传送速率。
可以通过连接两个解码芯片的输入/输出端而相互连接#1解码芯片73和#2解码芯片76。
下面将参照图9到14描述在#1解码芯片73与#2解码芯片76之间发送和接收被解码的像素数据。
数据流分割器72用以片为单元将输入编码数据流的每个帧分割为两个区域,并且将一个区域提供到#1解码芯片73而将另一个区域提供到#2解码芯片76。在这种情况下,由于当解码P-图片或B-图片时,由一个解码芯片解码并且被其他解码芯片参考的区域变得较小,因此最好将帧只分割为两个完整的(solid)区域而不再细分。
在提供到解码器54的编码数据流中,不参考其他图片而内部编码I-图片,参考前面的I-图片或P-图片(参考图片)编码P-图片,并且参考前面和后面的I-图片或P-图片(参考图片)编码B-图片。在这种情况下,为了P-图片和B-图片,搜索这样的参考块,该参考块使参考图片中包含的相应宏块与将被解码的宏块之间的误差最小,以便确定指示要根据参考宏块解码的宏块的位移的运动向量。采用这种方式,由运动向量,即差值,代表将被解码的宏块。
通常,在MPEG编码中,宏块由一个16×16块组成。该实施例中的解码器54可以对帧间编码数据流而不是MPEG帧间编码数据流执行解码处理,因此,运动补偿基本区域的大小不用限制到16×16块。运动补偿基本区域的大小可以从16×16,16×8,8×16,8×8,8×4,4×8以及4×4中选择,如H.264中所定义的。运动补偿基本区域可以基于一个除了块以外的单元。宏块所参考的参考图片基于以半个像素为单元的运动向量,而参考图片的大小可以改变,诸如16×16,17×16,16×17,17×17,16×8,16×9,17×9或17×8。
当通过#1解码芯片73或#2解码芯片76解码P-图片或B-图片中包含的预定宏块时,使用关于解码参考图片的宏块的运动向量搜索区域的信息。然而,如果由一个解码芯片解码的宏块位于其他解码芯片的边界附近,则用作参考图片数据的部分运动向量搜索区域包括在将由其他解码芯片解码的图片区域中。更特别地,当由#2解码芯片76解码P-图片或B-图片时,如图9中所示,如果与#2解码芯片76解码的图片区域(它的垂直区域由图9表示)中的P-图片或B-图片相应的宏块位于#1解码芯片73解码的图片区域(它的垂直区域由图9表示)附近,则那些宏块的部分搜索区域包括在由#1解码芯片73解码的图片区域中。
因此,为了搜索包括#1解码芯片73或#2解码芯片76所需的运动向量的全部搜索区域,一个解码芯片事先将可能包含在其他解码芯片所需的运动向量搜索区域中的像素数据(被解码的I-图片和P-图片)提供到其他解码芯片。
在#1解码芯片73解码的I-图片或P-图片中,如图10中所示,在#1解码芯片73解码的图片区域中,图片区域α(与#2解码芯片76解码的图片区域b接近的图片区域)被提供到#2解码芯片76,并且作为被存储的视频数据,与#2解码芯片76解码的图片区域b一起被存储到视频缓冲器78。同样,在#2解码芯片76解码的I-图片或P-图片中,如图10中所示,在#2解码芯片76解码的图片区域b中,图片区域β(与#1解码芯片73解码的图片区域a接近的图片区域)被提供到#1解码芯片73,并且作为被存储的视频数据,与#1解码芯片73解码的图片区域a一起被存储到视频缓冲器75。
图10中所示的区域α或β是可能包含在运动向量搜索区域中的数据,该运动向量搜索区域是执行运动补偿处理时其他解码芯片进行解码处理所需的区域。在具有1920个像素列和1080个像素行的交替(interlace)帧数据中,根据MPEG标准,用于运动补偿的运动向量搜索区域被定义为具有±1920个像素列(即,最大长度)和128个像素行的区域。因此,如果由解码器54解码的编码数据流是如MPEG标准中定义的具有1920个像素列和1080个像素行的交替帧数据,则与图10中所示的将被提供(复制)到其他解码芯片的区域α或β的宽度相应的行的数量为128,根据级别在MPEG标准ISO/IEC13818-2的表8-8中将该数量定义为参数限制。由于用每个图片的f_code表示将被提供(复制)的区域的行的数量,所以可以通过检测f_code中定义的行的数量来确定α和β。
下面参照图11到14具体地描述每个图片的解码处理、#1解码芯片73和#2解码芯片76执行的解码处理、以及#1解码芯片73与#2解码芯片76之间的解码像素数据的传送。现在假设每个图片中,#1解码芯片73解码的图片区域被称为“第一区域”,而#2解码芯片76解码的图片区域被称为“第二区域”。
如图11中所示,从I-图片分割出的第一区域和第二区域分别被提供到#1解码芯片73和#2解码芯片76。#1解码芯片73的解码器单元93通过缓冲器控制电路92接收I-图片第一区域,然后解码I-图片第一区域中包含的每个片。缓冲器控制电路95将I-图片第一区域的解码像素数据提供到视频缓冲器75并且在那里存储它。缓冲器控制电路95还将I-图片第一区域的解码像素数据中,由#2解码芯片76解码处理所需的运动向量搜索区域中包含的区域(由图10中的α表示)的像素数据,提供到芯片间接口96。芯片间接口96将所接收的像素数据提供到#2解码芯片76的芯片间接口116。
同时,#2解码芯片76的解码器单元113通过缓冲器控制电路112接收I-图片第二区域,然后解码I-图片第二区域中包含的每个片。缓冲器控制电路115将I-图片第二区域的解码像素数据提供到视频缓冲器78,并且在那里存储它。缓冲器控制电路115还将I-图片第二区域的解码像素数据中,由#1解码芯片73解码处理所需的运动向量搜索区域中包含的区域(由图10中的β表示)的像素数据,提供到芯片间接口116。芯片间接口116将所接收的像素数据提供到#1解码芯片73的芯片间接口96。
#2解码芯片76的芯片间接口116将由#1解码芯片73的芯片间接口96提供的像素数据,即I-图片第一区域的像素数据中,由#2解码芯片76解码处理所需的运动向量搜索区域中包含的区域(由图10中的α表示)的像素数据,提供到缓冲器控制电路115。缓冲器控制电路115将所接收的像素数据提供到视频缓冲器78。#1解码芯片73的芯片间接口96将由#2解码芯片76的芯片间接口116提供的像素数据中,即,I-图片第二区域的像素数据中,由#1解码芯片73解码处理所需的运动向量搜索区域中包含的区域(由图10中的β表示)的像素数据提供到缓冲器控制电路95。缓冲器控制电路95将所接收的像素数据提供到视频缓冲器75。
也就是说,在视频缓冲器75中存储I-图片第一区域的像素数据以及I-图片第二区域的像素数据中#1解码芯片73解码处理所需的运动向量搜索区域中包含的区域β的像素数据。在视频缓冲器78中存储I-图片第二区域的像素数据以及I-图片第一区域的像素数据中#2解码芯片76解码处理所需的运动向量搜索区域中包含的区域α的像素数据。
视频缓冲器75存储的像素数据中,由缓冲器控制电路95读出I-图片第一区域的像素数据,并且通过显示输出电路97被提供到选择器79。视频缓冲器78存储的像素数据中,由缓冲器控制电路115读出I-图片第二区域的像素数据,并且通过显示输出电路117被提供到选择器79。
当解码P-图片时,视频缓冲器75中存储的I-图片第一区域的像素数据,以及视频缓冲器75中存储的I-图片第二区域的像素数据中由#1解码芯片73解码处理所需的运动向量搜索区域中包含的区域的像素数据,被读到缓冲器控制电路95中,并且被用于运动补偿电路94处理运动补偿。同样,视频缓冲器78中存储的I-图片第二区域的像素数据,以及视频缓冲器78中存储的I-图片第一区域的像素数据中由#2解码芯片76解码处理所需的运动向量搜索区域中包含的区域的像素数据,被读到缓冲器控制电路115中,并且被用于运动补偿电路114处理的运动补偿。也就是说,如图12中所示,由#1解码芯片73解码的P-图片第一区域中包含的每个宏块的运动向量搜索区域相应于I-图片第一区域以及I-图片第二区域中#1解码芯片73解码处理所需的运动向量搜索区域中包含的区域。如图12中所示,由#2解码芯片76解码的P-图片第二区域中包含的每个宏块的运动向量搜索区域相应于I-图片第二区域以及I-图片第一区域中#2解码芯片76解码处理所需的运动向量搜索区域中包含的区域。
#1解码芯片73的缓冲器控制电路95将P-图片第一区域的解码像素数据提供到视频缓冲器75并且在那里存储它。缓冲器控制电路95还将,P-图片第一区域的解码像素数据中的#2解码芯片76解码处理所需的运动向量搜索区域中包含的图10中的α表示的区域,提供到芯片间接口96。芯片间接口96然后将所接收的像素数据提供到#2解码芯片76的芯片间接口116。
#2解码芯片76的缓冲器控制电路115将P-图片第二区域的解码像素数据提供到视频缓冲器78并且在那里存储它。缓冲器控制电路115还将,P-图片第二区域的解码像素数据中的#1解码芯片73解码处理所需的运动向量搜索区域中包含的图10中的β表示的区域,提供到芯片间接口116。芯片间接口116然后将所接收的像素数据提供到#1解码芯片73的芯片间接口96。
#2解码芯片76的芯片间接口116将从#1解码芯片73的芯片间接口96接收的像素数据,即,#2解码芯片76解码处理所需的运动向量搜索区域中包含的图10中的α表示的区域的P-图片第一区域的像素数据中的像素数据,提供到缓冲器控制电路115。缓冲器控制电路115然后将所接收的像素数据提供到视频缓冲器78。同样,#1解码芯片73的芯片间接口96将从#2解码芯片76的芯片间接口116接收的像素数据,即,#1解码芯片73解码处理所需的运动向量搜索区域中包含的图10中的β表示的区域的P-图片第二区域的像素数据中的像素数据,提供到缓冲器控制电路95。缓冲器控制电路95然后将所接收的像素数据提供到视频缓冲器75。
也就是说,如图13中所示,在视频缓冲器75中存储P-图片第一区域的像素数据以及#1解码芯片73解码处理所需的运动向量搜索区域中包含的区域β的P-图片第二区域的像素数据中的像素数据。在视频缓冲器78中存储P-图片第二区域的像素数据以及#2解码芯片76解码处理所需的运动向量搜索区域中包含的区域α的P-图片第一区域的像素数据中的像素数据。
当解码B-图片时,视频缓冲器75中存储的前面和后面的I-图片或P-图片的第一区域的像素数据,以及前面和后面的I-图片或P-图片的第二区域的像素数据中#1解码芯片73解码处理所需的运动向量搜索区域中包含的区域的像素数据,被读到缓冲器控制电路95,并且被用于运动补偿电路94的运动补偿处理。视频缓冲器78中存储的前面和后面的I-图片或P-图片的第二区域的像素数据,以及前面和后面的I-图片或P-图片的第一区域的像素数据中#2解码芯片76解码处理所需的运动向量搜索区域中包含的区域的像素数据,被读到缓冲器控制电路115,并且被用于运动补偿电路114的运动补偿处理。也就是说,如图14中所示,#1解码芯片73解码的B-图片第一区域中包含的每个宏块的运动向量搜索区域相应于前面和后面的I-图片或P-图片第一区域,以及前面和后面的I-图片或P-图片第二区域的像素数据中,由#1解码芯片73解码处理所需的运动向量搜索区域中包含的区域。由#2解码芯片76解码的B-图片第二区域中包含的每个宏块的运动向量搜索区域相应于前面和后面的I-图片或P-图片第二区域,以及前面和后面的I-图片或P-图片第一区域的像素数据中,由#2解码芯片76解码处理所需的运动向量搜索区域中包含的区域。
#1解码芯片73的缓冲器控制电路95将B-图片第一区域的解码像素数据提供到视频缓冲器75并且在那里存储它。由于B-图片不用作其他图片的参考图片,所以不需要将#1解码芯片73解码的B-图片提供(复制)到#2解码芯片76。
#2解码芯片76的缓冲器控制电路115将B-图片第二区域的解码像素数据提供到视频缓冲器78并且在那里存储它。由于B-图片不用作其他图片的参考图片,所以不需要将#2解码芯片76解码的B-图片提供(复制)到#1解码芯片73。
如上所述,通过一个解码芯片解码I-图片或P-图片之后,在由其他解码芯片解码P-图片或B-图片时,用作参考像素数据的被解码的I-图片或P-图片中包含的区域的像素数据被提供到其他解码芯片并且被复制到其他解码芯片的视频缓冲器。因此,当由其他解码芯片解码P-图片或B-图片时,可以获得视频缓冲器中存储的用作参考像素数据的像素数据。
下面参照图15中的流程图描述参照图7所讨论的解码器54-1执行的解码处理1。
步骤S1中,数据流分割器72接收输入的数据流。
步骤S2中,控制器71检测数据流的每个帧的图片类型并且将表示图片类型的控制信号提供到#1解码芯片73和#2解码芯片76。
步骤S3中,数据流分割器72在控制器71的控制下分割所接收的帧,并且将所分割的帧区域分配和提供到#1解码芯片73和#2解码芯片76。
步骤S4中,执行被分割帧的解码处理1,下面参照由图16A和16B组成的图16详细地描述该处理1。
步骤S5中,#1解码芯片73的显示输出电路97生成同步定时信号,用于输出由解码像素数据构成的图像数据,并且显示输出电路97根据该定时信号,通过缓冲器控制电路95,将视频缓冲器75中缓存的像素数据中解码器单元93解码的(图10中的a表示的)图像数据作为解码视频数据读出到选择器97。同时,#2解码芯片76的显示输出电路117生成同步定时信号,用于输出由解码像素数据构成的图像数据,并且显示输出电路117根据该定时信号,通过缓冲器控制电路115,将视频缓冲器78中缓存的像素数据中解码器单元113解码的(图10中的b表示的)图像数据作为解码视频数据读出到选择器97。
步骤S6中,选择器79接收#1解码芯片73和#2解码芯片76解码的图像数据并且将分割的图像数据组合为一个帧。然后完成该处理。
根据上述的处理,图7中所示的解码器54-1可以分割一个帧并且使用#1解码芯片73和#2解码芯片76解码所分割的帧区域。例如,如果#1解码芯片73的解码器单元93和#2解码芯片76的解码器单元113的每一个具有以×1的速率解码数据的能力,并且如果数据流分割器72将一个帧分割为两个图片区域以便所得的图片区域的编码难度相同,则图7中所示的解码器54-1可以以×2的速率解码数据。
采用这种配置,如上所述,可以执行×2速率的解码处理。另外,如果以与公知解码器相同的速率执行解码处理,则可能减小解码器电路的大小(可以降低每个解码芯片的处理性能)。此外,可以使用多个解码芯片解码很难由一个解码芯片处理的具有较高帧频的编码数据流。更特别地,可以使用每一个能够处理1920×1080/30P的两个解码芯片解码具有1920×1080/60P的编码数据流。可以使用每一个能够处理1920×1080/60i的两个解码芯片解码具有1920×1080/60P的编码数据流。可以使用每一个能够处理1920×1080/60i的两个解码芯片解码具有1920×1080/120i的编码数据流。
如果希望从预定的图片开始回放操作,则即使存在解码预定图片所需的多个参考图片,也可以执行快速解码处理,因此,可以执行快速随机的回放操作。
下面参照由图16A和16B组成的图16中的流程图描述图15的步骤S4中执行的被分割帧的解码处理1。在#1解码芯片73和#2解码芯片76中并行地执行被分割帧的解码处理1。
步骤S21中,#1解码芯片73的数据流输入电路91接收由数据流分割器72分割的数据并且将它提供到缓冲器控制电路92。缓冲器控制电路92在数据流缓冲器74中缓冲所提供的数据。同时,#2解码芯片76的数据流输入电路111接收由数据流分割器72分割的数据,并且将它提供到缓冲器控制电路112。缓冲器控制电路112在数据流缓冲器77中缓冲所提供的数据。
步骤S22中,缓冲器控制电路92将数据流缓冲器74中缓冲的数据读到解码器单元93。缓冲器控制电路112将数据流缓冲器77中缓冲的数据读到解码器单元113。
步骤S23中,解码器单元93或113根据从控制器71提供的控制信号来确定所提供的数据是否为I-图片。如果步骤S23中确定所提供的数据不是I-图片,则程序转到步骤S28。
如果步骤S23中发现所提供的数据是I-图片,则程序转到步骤S24,在该步骤中解码器单元93或113解码所提供的编码数据中包含的每个宏块。
步骤S25中,缓冲器控制电路95从解码器单元93接收解码数据,并且将解码的像素数据(相应于图11中的I-图片第一区域)作为参考图片并作为输出图片,提供到视频缓冲器75。缓冲器控制电路115从解码器单元113接收解码数据,并且将解码的像素数据(相应于图11中的I-图片第二区域)作为参考图片并作为输出图片,提供到视频缓冲器78。
步骤S26中,缓冲器控制电路95将,解码器单元93提供的解码数据中要复制到#2解码芯片76的区域(由图10中的α表示)中的#2解码芯片76解码处理所需的数据,提供到芯片间接口96。芯片间接口96将所接收的像素数据提供到#2解码芯片76的芯片间接口116。缓冲器控制电路115将,解码器单元113提供的解码数据中要复制到#1解码芯片73的区域(由图10中的β表示)中的#1解码芯片73解码处理所需的数据,提供到芯片间接口116。芯片间接口116将所接收的像素数据提供到#1解码芯片73的芯片间接口96。
在这种情况下,优选地,连接#1解码芯片73和#2解码芯片76的接口,也就是说,将数据从芯片间接口96提供到芯片间接口116的接口以及将数据从芯片间接口116提供到芯片间接口96的接口相互独立而不使用公共接口,诸如数据总线。于是,不再需要在使用公共接口的情况下所必需的伴随着数据传送的复杂的地址控制、或者确定何时占用公共接口或者何时发送或接收数据的定时控制。另外,与使用公共接口时相比可以降低数据传送速率。
可以通过连接两个解码芯片的输入/输出终端而相互连接#1解码芯片73和#2解码芯片76。
步骤S27中,#1解码芯片73的芯片间接口96将从#2解码芯片76接收的像素数据提供到缓冲器控制电路95。缓冲器控制电路95然后将所接收的像素数据提供到视频缓冲器75。#2解码芯片76的芯片间接口116将从#1解码芯片73接收的像素数据提供到缓冲器控制电路115。缓冲器控制电路115然后将所接收的像素数据提供到视频缓冲器78。也就是说,如参照图11所讨论的,在视频缓冲器75中存储I-图片第一区域的像素数据,以及I-图片第二区域的像素数据中#1解码芯片73解码处理所需的运动向量搜索区域中包含的图10中的β表示的区域的像素数据。在视频缓冲器78中存储I-图片第二区域的像素数据,以及I-图片第一区域的像素数据中#2解码芯片76解码处理所需的运动向量搜索区域中包含的图10中的α表示的区域的像素数据。然后程序返回图15的步骤S4并且进行到步骤S5。
如果步骤S23中确定所提供的数据不是I-图片,则程序转到步骤S28以便根据控制器71提供的控制信号来确定所提供的数据是否为P-图片。后面讨论如果步骤S28中确定所提供的数据不是P-图片,则程序转到步骤S33。
如果步骤S28中发现所提供的数据是P-图片,则程序转到步骤S29。步骤S29中,解码器单元93或113使用参考像素数据解码每个宏块。更特别地,由于P-图片中包含的宏块使用运动补偿,所以解码器单元93将片层分成宏块,并且将所得的预测向量和像素输出到运动补偿电路94。运动补偿电路94根据解码器单元93输出的预测向量,通过缓冲器控制电路95从视频缓冲器75读出参考像素数据,并且将读取的参考像素数据添加到解码器单元93提供的像素数据,从而执行运动补偿。下面讨论,在步骤S27或步骤S32中已经将解码分割的P-图片所需的参考图片的所有像素存储到视频缓冲器75中。解码器单元113将片层分成宏块,并且将所得的预测向量和像素输出到运动补偿电路114。运动补偿电路114根据解码器单元113输出的预测向量通过缓冲器控制电路115从视频缓冲器78读出参考像素数据,并且将读取的参考像素数据添加到解码器单元113提供的像素数据,从而执行运动补偿。下面讨论,在步骤S27或步骤S32中已经将解码分割的P-图片所需的参考图片的所有像素存储到视频缓冲器78中。
步骤S30中,缓冲器控制电路95从解码器单元93接收解码数据(相应于图13中的P-图片第一区域的像素数据)并且作为参考图片或输出图片将它提供到视频缓冲器75。缓冲器控制电路115从解码器单元113接收解码数据(相应于图13中的P-图片第二区域的像素数据)并且作为参考图片或输出图片将它提供到视频缓冲器78。
步骤S31中,缓冲器控制电路95将,解码器单元93提供的解码数据中要复制到#2解码芯片76的图10中α表示的区域中的#2解码芯片76解码处理所需的数据,提供到#2解码芯片76的芯片间接口116。缓冲器控制电路115将,解码器单元113提供的解码数据中要复制到#1解码芯片73的图10中β表示的区域中的#1解码芯片73解码处理所需的数据,提供到#1解码芯片73的芯片间接口96。
步骤S32中,#1解码芯片73的芯片间接口96将从#2解码芯片76接收的像素数据提供到缓冲器控制电路95。缓冲器控制电路95然后将所接收的像素数据提供到视频缓冲器75。#2解码芯片76的芯片间接口116将从#1解码芯片73接收的像素数据提供到缓冲器控制电路115。缓冲器控制电路115然后将所接收的像素数据提供到视频缓冲器78。也就是说,如参照图13所讨论的,在视频缓冲器75中存储P-图片第一区域的像素数据,以及P-图片第二区域中运动向量搜索区域中包含的β表示的区域的#1解码芯片73解码处理所需的像素数据。在视频缓冲器78中存储P-图片第二区域的像素数据,以及P-图片第一区域中运动向量搜索区域中包含的α表示的区域的#2解码芯片76解码处理所需的像素数据。然后程序返回图15的步骤S4并且进行到步骤S5。
如果步骤S28中确定所提供的数据不是P-图片,则程序转到步骤S33以便根据控制器71提供的控制信号来确定所提供的数据是否为B-图片。如果步骤S33中确定所提供的数据不是B-图片,则程序返回步骤S23。
如果步骤S33中发现像素数据是B-图片,则程序转到步骤S34。步骤S34中,解码器单元93或113使用参考像素数据解码每个宏块。更特别地,由于B-图片中包含的宏块使用运动补偿,所以解码器单元93将片层分为宏块并且解码每个宏块,以便将所得的预测向量和像素输出到运动补偿电路94。运动补偿电路94然后根据解码器单元93输出的预测向量,通过缓冲器控制电路95从视频缓冲器75读取参考像素数据,并且将所读取的参考像素数据添加到解码器单元93提供的像素数据中,从而执行运动补偿。步骤S27或步骤S32中,已经将解码被分割的B-图片所需的参考图片的所有像素存储到视频缓冲器75中。同时,解码器单元113将片层分为宏块,并且解码每个宏块,以便将所得的预测向量和像素输出到运动补偿电路114。运动补偿电路114然后根据解码器单元113输出的预测向量,通过缓冲器控制电路115从视频缓冲器78读取参考像素数据,并且将所读取的参考像素数据添加到解码器单元113提供的像素数据中,从而执行运动补偿。步骤S27或步骤S32中,已经将解码被分割的B-图片所需的参考图片的所有像素存储到视频缓冲器78中。
步骤S35中,缓冲器控制电路95从解码器单元93接收解码数据(相应于图14中的B-图片第一区域),并且作为输出图像将它提供到视频缓冲器75。缓冲器控制电路115从解码器单元113接收解码数据(相应于图14中的B-图片第二区域),并且作为输出图像将它提供到视频缓冲器78。然后程序返回图15的步骤S4并且进行到步骤S5。
根据上述的处理,根据控制器71检测的图片类型由#1解码芯片73和#2解码芯片76中的每个执行解码处理。在这种情况下,在#1解码芯片73和#2解码芯片76的每一个中,将由其他解码芯片作为参考图片使用的像素数据提供到其他解码芯片,同样,其他解码芯片提供的参考图片被存储到视频缓冲器中,并且可以被用作参考图片。
根据上述的处理,完成了I-图片的解码之后,当解码后面的另一个图片时,即,P-图片或B-图片,其他解码芯片所参考的像素数据被提供到其他解码芯片,并且完成了P-图片的解码之后,当解码另一个图片,即,P-图片或B-图片时,其他解码芯片所参考的像素数据被提供到另一个解码芯片。采用这种配置,访问视频缓冲器75或78所需的总的访问时间与以下情况相比可以被降低,一种情形是,当解码相应的图片时,将另一解码芯片所需的解码像素数据复制到该另一解码芯片;更特别地,一种情形是,当解码I-图片时,从另一解码芯片获得解码I-图片所需的I-图片或P-图片像素数据;或者一种情形是,当解码B-图片时,从另一解码芯片获得解码B-图片所需的I-图片或P-图片像素数据。
参照图17更具体地讨论上述两种情况下访问视频缓冲器75或78所需的访问时间。当解码相应的图片时,如果在解码芯片之间交换和复制解码像素数据,如图17中所示,则当解码I-图片时,访问视频缓冲器75或78所需的访问时间仅仅是写入与I-图片相应的解码图像的时间T1,而当解码P-图片时,访问视频缓冲器75或78所需的访问时间是写入与P-图片相应的解码图像的时间T1,读取前面的参考图片的时间T2,以及通过另一解码芯片读取解码处理使用的参考图片的时间T3。读取时间T2大于或等于写入时间T1。当解码B-图片时,访问视频缓冲器75或78所需的访问时间是写入与B-图片相应的解码图像的时间T1,读取前面和后面的参考图片的时间T2×2,以及通过另一解码芯片读取解码处理使用的前面和后面的参考图片的时间T3×2。
相反,如果当结束I-图片的解码时,由另一解码芯片解码P-图片或B-图片所使用的像素数据被提供到该另一解码芯片,或者如果当结束P-图片的解码时,由另一解码芯片解码P-图片或B-图片所使用的像素数据被提供到该另一解码芯片,如图17中的B所表示的,则当解码I-图片时,访问视频缓冲器75或78所需的访问时间是写入与I-图片相应的解码图像的时间T1,以及写入另一解码芯片提供的参考图片和将来用于解码P-图片或B-图片的时间T4。当解码P-图片时,访问视频缓冲器75或78所需的访问时间是写入与P-图片相应的解码图像的时间T1,读取前面的参考图片的时间T2,以及写入另一解码芯片提供的参考图片和将来用于解码P-图片或B-图片的时间T4。当解码B-图片时,访问视频缓冲器75或78所需的访问时间是写入与B-图片相应的解码图像的时间T1,以及读取前面和后面的参考图片的时间T2×2。
如图17中的A所表示的,当解码相应的图片时,无论是否在解码芯片之间交换和复制解码像素数据,或者如图17中的B所表示的,当结束I-图片或P-图片的解码时,事先将所需的像素数据提供到另一解码芯片,解码B-图片所需的时间大于解码其他类型图片的时间。然而,通过事先将所需的参考图片提供到另一解码芯片,可以将解码一图片时访问视频缓冲器75或78所需的最大访问时间减少图17中的T5所表示的时间。因此,可以减少总的解码处理时间。换句话说,可以以相同的解码率来执行快速的解码处理,并且可能降低解码芯片与视频缓冲器之间的数据传送率。
在这种情况下,如上所述,优选地,连接#1解码芯片73和#2解码芯片76的接口,即,将数据从芯片间接口96提供到芯片间接口116的接口和将数据从芯片间接口116提供到芯片间接口96的接口相互独立而不使用公共接口,诸如数据总线。然后,不再需要在使用公共接口的情况下所必需的伴随着数据传送的复杂的地址控制、或者确定何时占用公共接口或者何时发送或接收数据的定时控制。另外,与使用公共接口时相比可以降低数据传送率。
可以进一步减少解码处理时间,换句话说,可以依赖启动#1解码芯片73和#2解码芯片76的每一个执行的片解码处理而执行快速解码处理。
下面参照图18到20描述解码处理的顺序和处理速率。
图18说明了由#1解码芯片73和#2解码芯片76的每一个执行的解码处理的解码顺序的多种模式。
在MPEG数据流中,picture header(图片标头)之后,顺序地提供形成picture data(图片数据)所表示的帧的多个片。在这种情况下,按照从图片左上方的片到图片右下方的片的顺序提供片。因此,按照正常的解码顺序,在#1解码芯片73和#2解码芯片76的每一个中,从每个被分割图片的顶部到底部按顺序执行解码处理,如图18中的箭头151和152所表示的。因此,最后解码将由#1解码芯片73解码并传送到#2解码芯片76的图18中的α所表示的参考像素。
因此,当解码P-图片后面的B-图片时,即使已经完成了由#2解码芯片76解码的P-图片的解码处理,也不能开始B-图片的解码处理,直到将#1解码芯片73解码的图18中的α表示的区域提供到#2解码芯片76并且存储到视频解码器78。
为了减少等待将参考图片复制(传送)到另一解码芯片的解码处理的等待时间,应当提高解码芯片之间参考图片的传送率。
因此,在该实施例的解码器54中,#1解码芯片73中解码处理的顺序与箭头151表示的不同。
也就是说,在图7所示的解码器54-1中,提供到#1解码芯片73的编码数据流被存储到数据流缓冲器74。缓冲器控制电路92首先读取图18中的α表示的区域中的参考图片,并且将它提供到解码器单元93。更特别地,在α表示的区域中,可以将开始于右下方(其邻近#2解码芯片76解码的区域)的片顺序地提供到解码器单元93,如图18中的箭头153所表示的,然后,在#1解码芯片73解码的剩余区域中,可以将开始于右下方的片顺序地提供到解码器单元93,如箭头154所表示的。或者,在α表示的区域中,可以将开始于左上方的片顺序地提供到解码器单元93,如箭头155所表示的,然后,在#1解码芯片73解码的剩余区域中,可以将开始于左上方的片顺序地提供到解码器单元93,如箭头156所表示的。或者,在α表示的区域中,可以将开始于右下方的片顺序地提供到解码器单元93,如箭头157所表示的,然后,在#1解码芯片73解码的剩余区域中,可以将开始于左上方的片顺序地提供到解码器单元93,如箭头158所表示的。
如果首先将α表示的区域中的参考像素读到解码器单元93,在上述的任意模式中,在完成#2解码芯片76解码的区域中的所有图片的解码之前,α表示的区域中的参考像素被解码并且被提供到#2解码芯片76。结果,可以消除等待将参考图片复制(传送)到另一解码芯片的解码处理的等待时间。
更特别地,如果按照从每个被分割图片的顶部到底部的顺序执行解码处理,如图18中的箭头151和152所表示的,则在完成#2解码芯片76解码的区域中的解码处理之前不会完成图19中的箭头172所表示的数据传送,如图19中所示,即使#1解码芯片73开始解码处理α表示的区域并且解码参考像素被顺序地提供到#2解码芯片76。也就是说,如箭头173所表示的,直到α表示的区域中的参考像素被提供到#2解码芯片76并且被存储到视频解码器78,后面图片的解码处理才能开始。
相反,如果首先将α表示的区域中的编码数据流读到解码单元93,如图18中的箭头153到158所表示的,则可以首先在#1解码芯片73中开始α表示的区域的解码处理,如图20所示,并且当被解码的参考像素顺序地提供到#2解码芯片76时,执行除了α之外的区域的解码处理。因此,在完成#2解码芯片76解码的区域的解码处理之前,完成箭头181和182表示的数据传送。也就是说,在完成#2解码芯片76解码的区域的解码处理之后,可以马上开始后面图片的解码处理,如箭头183所示。
如上所述,在每个解码芯片中,优先地执行将要提供到其他解码芯片的区域的解码处理,因此,当其他解码芯片解码其他区域时,可以完成数据传送而不需要显著地提高传送率。
图21是说明解码器54的第二个例子的解码器54-2的配置的方框图。解码器54-2可以使用三个解码芯片解码被编码的数据流。
解码器54-2包括控制器201、数据流分割器202、#1解码芯片203、第一缓冲器204、#2解码芯片205、第二缓冲器206、#3解码芯片207、第三缓冲器208以及选择器209。虽然解码器54-2可以具有四个或更多的解码芯片,但是下面给出了说明,假设提供了三个解码器,即,#1解码芯片203、#2解码芯片205和#3解码芯片207。第一缓冲器204、第二缓冲器206和第三缓冲器208中的每一个都包括数据流缓冲器和视频缓冲器。可以单独地提供数据流缓冲器和视频缓冲器。
控制器201根据用户输入的操作、外部设备提供的控制信号、或数据流分割器202提供的信息而控制解码器54-2的所有操作。
在控制器201的控制下,数据流分割器202解码所提供的编码数据流的序列层、GOP层、以及图片层,并且将编码数据流的每个图片分割为与解码芯片相同的数量(在这种情况下,三个),并且将所分割的图片区域分配并提供到#1解码芯片203、#2解码芯片205以及#3解码芯片207。每个图片可以以片为单元被分割为与解码芯片相同数量(在这种情况下,三个)。或者,每个图片可以被垂直或倾斜地分割为与解码芯片相同的数量(在这种情况下,三个)。如果使用MPEG2解码,则垂直或倾斜地分割图片可能比以片为单元分割图片更困难。例如,数据流分割器202可以根据片开始代码以片为单元分割图片。
数据流分割器202还将作为解码所提供数据流的序列层、GOP层和图片层的结果所获得的信息,诸如图片类型,提供到控制器201。
数据流分割器202从每个图片分割出的区域的数量可能比解码芯片的数量大,于是,所分割出的图片区域可以分配到解码芯片。然而,最好数据流分割器202将每个图片分割为与解码芯片相同的数量并且将一个完整的分割区域分配到每个芯片解码器,因为可以简化解码芯片之间参考像素的发送和接收处理。
可以平均或非平均地分割图片。数据流分割器202可以具有检测图像的复杂性的功能,并且如果图片区域中图像的复杂性非常不同,则数据流分割器202可以根据图像的复杂性(编码的难度)确定图片的分割比率。
#1解码芯片203在控制器201的控制下,解码数据流分割器202提供的被分割的图片。在这种情况下,#1解码芯片203将区域中的像素数据提供到#2解码芯片205,该像素数据可能是#2解码芯片205解码处理所需的参考像素,并且还将#2解码芯片205提供的被解码的像素数据存储到第一缓冲器204中,并且如果需要,则参考所存储的像素数据而执行解码处理。
由例如DRAM构成的第一缓冲器204暂时存储提供到#1解码芯片203的编码数据流、#1解码芯片203解码的视频信号(像素数据)、以及#2解码芯片205提供的被解码的视频信号(像素数据)。
#2解码芯片205在控制器201的控制下,解码数据流分割器202提供的被分割的图片。在这种情况下,#2解码芯片205将区域中的像素数据提供到#1解码芯片203,该像素数据可能是#1解码芯片203解码处理所需的参考像素,并且还将区域中的像素数据提供到#3解码芯片207,该像素数据可能是#3解码芯片207解码处理所需的参考像素。#2解码芯片205还将#1解码芯片203或#3解码芯片207提供的解码像素数据存储到第二缓冲器206中,并且如果需要,则参考所存储的像素数据而执行解码处理。
由例如DRAM构成的第二缓冲器206暂时存储提供到#2解码芯片205的编码数据流、#2解码芯片205解码的视频信号(像素数据)、以及#1解码芯片203或#3解码芯片207提供的被解码的视频信号(像素数据)。
#3解码芯片207在控制器201的控制下,解码数据流分割器202提供的被分割的图片。在这种情况下,#3解码芯片207将区域中的像素数据提供到#2解码芯片205,该像素数据可能是#2解码芯片205解码处理所需的参考像素,并且还将#2解码芯片205提供的被解码的像素数据存储到第三缓冲器208中,并且如果需要,则参考所存储的像素数据而执行解码处理。
由例如DRAM构成的第三缓冲器208暂时存储提供到#3解码芯片207的编码数据流、#3解码芯片207解码的视频信号(像素数据)、以及#2解码芯片205提供的被解码的视频信号(像素数据)。
选择器209从#1解码芯片203、#2解码芯片205、以及#3解码芯片207接收被解码的像素数据并且作为被解码的视频数据而输出该像素数据。
解码器54-2可以具有驱动器80,而驱动器80被连接到控制器201以便将信息发送到驱动器80中安装的可移动介质81中以及从该介质81接收信息。
解码器54-2使用三个解码芯片(即,#1解码芯片203、#2解码芯片205和#3解码芯片207)执行的解码处理,基本上与解码器54-1使用两个解码芯片执行的解码处理相同。
更特别地,如图22中所示,#1解码芯片203解码的区域(图22中a所表示的)中,区域(图22中α所表示的)中的像素数据被提供到#2解码芯片205,该像素数据是#2解码芯片205解码处理所需的参考图片。在#2解码芯片205解码的区域(图22中b所表示的)中,区域(图22中β所表示的)中的像素数据被提供到#1解码芯片203,该像素数据是#1解码芯片203解码处理所需的参考图片,并且,区域(图22中γ所表示的)中的像素数据被提供到#3解码芯片207,该像素数据是#3解码芯片207解码处理所需的参考图片。然后,#3解码芯片207解码的区域(图22中c所表示的)中,区域(图22中δ所表示的)中的像素数据被提供到#2解码芯片205,该像素数据是#2解码芯片205解码处理所需的参考图片。
在#1解码芯片203、#2解码芯片205以及#3解码芯片207中,可以按从数据流分割器202提供片的时间顺序分割所述片,如图23中的箭头251到253所示。然而,特别是在#1解码芯片203和#2解码芯片205中,解码处理最好从需要传送到其他解码芯片的片开始,如图23中的三个解码模式i)、ii)和iii)所示的,用箭头261到285来表示,以便防止由于数据传送而在解码处理中产生的延迟。
更特别地,在#1解码芯片203中,在图23中的α表示的区域中,顺序地解码位于右下方(邻近#2解码芯片205解码的区域)的片,如箭头261所表示的,然后,在#1解码芯片203解码的剩余区域中,可以顺序地解码位于右下方的片,如箭头262所表示的。或者,在图23中的α表示的区域中,首先顺序地解码位于左上方的片,如箭头271所表示的,然后,在#1解码芯片203解码的剩余区域中,可以顺序地解码位于左上方的片,如箭头272所表示的。或者,在图23中的α表示的区域中,首先顺序地解码位于右下方的片,如箭头281所表示的,然后,在#1解码芯片203解码的剩余区域中,可以顺序地解码位于左上方的片,如箭头282所表示的。
在#2解码芯片205中,在图23中的γ表示的区域中,首先顺序地解码位于右下方(邻近#3解码芯片207解码的区域)的片,如箭头263所表示的,然后在图23中的β表示的区域中,首先顺序地解码位于右下方的片,如箭头264所表示的。然后,在#2解码芯片205解码的剩余区域中,可以顺序地解码位于右下方的片,如箭头265所表示的。或者,在图23中的β表示的区域中,首先顺序地解码位于左上方(邻近#1解码芯片203解码的区域)的片,如箭头273所表示的,然后在图23中的γ表示的区域中,首先顺序地解码位于左上方的片,如箭头274所表示的,然后,在#2解码芯片205解码的剩余区域中,可以顺序地解码位于左上方的片,如箭头275所表示的。或者,在图23中的β表示的区域中,首先顺序地解码位于左上方(邻近#1解码芯片203解码的区域)的片,如箭头283所表示的,然后在图23中的γ表示的区域中,首先顺序地解码位于右下方(邻近#3解码芯片207解码的区域)的片,如箭头284所表示的,然后,在#2解码芯片205解码的剩余区域中,可以顺序地解码位于右下方的片,如箭头285所表示的。
由图24A和24B构成的图24是说明解码器54的第三个例子的解码器54-3的配置的方框图。图24中,用相同的参考标号指明与图7中的那些元件相应的元件,并且因此省略它们的详细说明。
图24中所示的解码器54-3的配置与图7中所示的解码器54-1的配置基本相同,除了分别提供的是#1解码芯片301和#2解码芯片303而不是#1解码芯片73和#2解码芯片76,以及提供了包括数据流缓冲器74和视频缓冲器75的#1缓冲器302和包括数据流缓冲器77和视频缓冲器78的#2缓冲器304之外。#1解码芯片301的配置与#1解码芯片73的配置基本相同,除了提供的是控制从#1缓冲器302读取数据和向#1缓冲器302写入数据的缓冲器控制电路311而不是缓冲器控制电路92和95之外。#2解码芯片303的配置与#2解码芯片76的配置基本相同,除了提供的是控制从#2缓冲器304读取数据和向#2缓冲器304写入数据的缓冲器控制电路321而不是缓冲器控制电路112和115之外。
图24中所示的解码器54-3执行的处理与图15和16中的流程图所表示的处理基本相同,除了执行缓冲器控制电路92和95执行的处理的缓冲器控制电路311,以及执行缓冲器控制电路112和115执行的处理的缓冲器控制电路321之外。在图24所示的解码器54-3中,如参照图18或23所讨论的在一个帧中的解码顺序那样,将要提供到另一个解码芯片的区域中所包含的像素数据被优先地解码,以便可以加速解码处理。
在上述的解码器54-1到54-3中,控制器71或201检测所提供数据流的图片类型并且将表示图片类型的控制信号提供到解码芯片。或者,可以通过每个解码芯片来检测图片类型。
由图25A和25B构成的图25是说明解码器54的第四个例子的解码器54-4的配置的方框图。解码器54-4可以检测所提供数据流的图片类型。图25中,用相同的参考标号指明与图7中的那些元件相应的元件,并且因此省略它们的详细说明。
图25中所示的解码器54-4的配置与图7中所示的解码器54-1的配置基本相同,除了所提供的控制器351不是控制器71并且分别提供的是#1解码芯片352和#2解码芯片353而不是#1解码芯片73和#2解码芯片76之外。在解码器54-4中,即使只为每个解码芯片提供一个缓冲器,即,#1缓冲器302或#2缓冲器304,并且即使只为每个解码芯片提供一个缓冲器控制电路,如图24中所示的解码器54-3那样,这样一种解码器的处理也与每个解码芯片中具有两个缓冲器的解码器54-4的处理基本相同,所述两个缓冲器是数据流缓冲器和视频缓冲器。因此,这里省略该解码器的详细的配置和处理。
#1解码芯片352的配置与#1解码芯片73的配置基本相同,除了提供有可以检测所提供数据流的图片类型的数据流输入电路361而不是数据流输入电路91之外。#2解码芯片353的配置与#1解码芯片76的配置基本相同,除了提供有可以检测所提供数据流的图片类型的数据流输入电路371而不是数据流输入电路111之外。
下面参考图26中的流程图描述由图25中所示的解码器54-4执行的解码处理2。
步骤S51中,数据流分割器72接收输入的数据流。
步骤S52中,数据流分割器72在控制器351的控制下分割所接收的帧,并且将所分割的帧区域分配和提供到#1解码芯片352和#2解码芯片353。
步骤S53中,执行被分割帧的解码处理2,下面参照由图27A和27B构成的图27详细地描述该处理。
步骤S54中,#1解码芯片352的显示输出电路97生成用于输出由被解码的像素数据构成的图像数据的同步定时信号,并且显示输出电路97根据该定时信号,通过缓冲器控制电路95从视频缓冲器75缓冲的像素数据中,将解码器单元93解码的图像数据(图10中的a所表示的)作为解码视频数据读到选择器97中。同时,#2解码芯片353的显示输出电路117生成用于输出由被解码的像素数据构成的图像数据的同步定时信号,并且显示输出电路117根据该定时信号,通过缓冲器控制电路115从视频缓冲器78缓冲的像素数据中,将解码器单元113解码的图像数据(图10中的b所表示的)作为解码视频数据读到选择器97中。
步骤S55中,选择器79接收由#1解码芯片352和#2解码芯片353解码的图像数据并且将所分割的图像数据组合为一个帧。然后完成处理。
根据上述的处理,图25中所示的解码器54-4可以使用#1解码芯片352和#2解码芯片353分割一个帧以及解码所分割的帧区域。例如,如果#1解码芯片352的解码器单元93和#2解码芯片353的解码器单元113的每一个具有以×1的速率解码数据的能力,并且如果数据流分割器72将一个帧分割为两个图片区域以便所得图片区域的编码难度彼此相等,则图25中所示的解码器54-4可以以×2的速率解码数据。
如上所述,采用这种配置,可以执行×2速率的解码处理。另外,如果以与公知的解码器执行的解码处理相同的速率执行解码处理,则可能减小解码器的电路大小(每个解码芯片的处理性能可以被降低)。此外,可以使用多个解码芯片解码具有较高帧频的很难由一个解码芯片处理的编码数据流。
如果希望回放操作从预定的图片开始,则可以执行快速解码处理,即使存在解码预定图片所需的多个参考图片,因此,可以执行快速随机的回放操作。
下面参照由图27A和27B构成的图27的流程图描述图26的步骤S53执行的被分割帧的解码处理2。在#1解码芯片352和#2解码芯片353中并行地执行被分割帧的解码处理2。
步骤S71中,#1解码芯片352的数据流输入电路361接收数据流分割器72分割的数据并且检测所提供帧的图片类型。#2解码芯片353的数据流输入电路371接收数据流分割器72分割的数据并且检测所提供帧的图片类型。
步骤S72中,#1解码芯片352的数据流输入电路361将所接收的帧提供到缓冲器控制电路92。缓冲器控制电路92在数据流缓冲器74中缓冲所提供的数据。同时,#2解码芯片353的数据流输入电路371将所接收的帧提供到缓冲器控制电路112。缓冲器控制电路112在数据流缓冲器77中缓冲所提供的数据。
步骤S73中,缓冲器控制电路92将数据流缓冲器74中缓冲的数据读到解码器单元93中。缓冲器控制电路112将数据流缓冲器77中缓冲的数据读到解码器单元113中。在这种情况下,如上所述,最好优先地将需要提供到另一解码芯片的区域中的宏块作为参考像素提供到解码器单元。
步骤S74中,解码器单元93或113根据步骤S71中确定的图片类型来确定所提供的数据是否为I-图片。如果步骤S23中确定所提供的数据不是I-图片,则程序转到步骤S79。
如果步骤S74中发现所提供的数据是I-图片,则程序转到步骤S75,并且执行分别与图16中的步骤S24到S27相同的步骤S75到S78。更特别地,解码器单元93或113解码所提供的编码数据中包含的每个宏块,并且将解码数据作为参考图片和输出图片提供到视频缓冲器75或78。然后,在解码数据中,通过芯片间接口将要复制到另一解码芯片的并且为该另一解码芯片解码处理所需的区域(图10中的α或β所表示的)提供到该另一解码芯片。当接收像素数据时,其他解码芯片将它存储到视频缓冲器。程序然后返回图26中的步骤S53并且进行到步骤S54。
如果步骤S74中确定所提供的数据不是I-图片,则程序转到步骤S79以便根据步骤S71中确定的图片类型来确定所提供的数据是否为P-图片。如果步骤S79中确定所提供的数据不是P-图片,则程序转到步骤S84,在后面讨论该步骤。
如果步骤S79中发现所提供的数据是P-图片,则程序转到步骤S80,并且执行分别与图16中的步骤S29到S32相同的步骤S80到S83。更特别地,解码器单元93或113解码所提供的编码数据中包含的每个宏块,并且将解码数据作为参考图片和输出图片提供到视频缓冲器75或78。然后,在解码数据中,通过芯片间接口将要复制到另一解码芯片的并且为该另一解码芯片解码处理所需的区域(图10中的α或β所表示的)提供到所述另一解码芯片。当接收像素数据时,其他解码芯片将它存储到视频缓冲器75或78。程序然后返回图26中的步骤S53并且进行到步骤S54。
如果步骤S79中确定所提供的数据不是P-图片,则程序转到步骤S84以便根据步骤S71中确定的图片类型来确定所提供的数据是否为B-图片。如果步骤S84中确定所提供的数据不是B-图片,则程序转到步骤S74。
如果步骤S84中发现像素数据是B-图片,则程序转到步骤S85。执行分别与图16中的步骤S34和S35相同的步骤S85和S86。更特别地,解码器单元93或113使用参考像素数据解码每个宏块,并且将解码像素数据提供到视频缓冲器75或78并且在那里存储它们。程序返回图26中的步骤S53并且进行到步骤S54。
根据图27的流程图中表示的上述处理,#1解码芯片352和#2解码芯片353的每一个根据相应的解码芯片检测的图片类型来执行解码处理。在这种情况下,#1解码芯片352和#2解码芯片353的每一个中,将要用作其他解码芯片的参考图片的像素数据被提供到其他解码芯片,同样,其他解码芯片提供的参考图片的像素数据被存储到视频缓冲器75或78中并且可以被用作参考图片。
在解码器54-4中,解码器芯片的数量可以是三个或更多,在该情况下,每个解码芯片可以同样检测图片类型并且执行解码处理。
在上述的解码器54-1到54-4中,数据流分割器72将所提供的数据流分割为与解码芯片相同数量的图片区域,并且将分割的图片区域分配和提供到相应的解码芯片。或者,可以将整个数据流提供到每个解码芯片而不进行分割,而每个解码芯片可以在控制器的控制下只解码所提供数据流帧的预定部分。
由图28A和28B构成的图28是说明解码器54的第五个例子的解码器54-5的配置的方框图。在解码器54-5中,将整个数据流提供到每个解码芯片,而每个解码芯片在控制器的控制下只解码数据流的预定部分。
图28中,用相同的参考标号指明与图7中的那些元件相应的元件,并且因此省略它们的详细说明。
图28中所示的解码器54-5的配置与参照图7讨论的解码器54-1的配置基本相同,除了不提供数据流分割器72以及用控制器381代替控制器71以及用#1解码芯片382和#2解码芯片383分别代替#1解码芯片73和#2解码芯片76之外。在解码器54-5中,即使为每个解码芯片只提供一个缓冲器并且即使为每个解码芯片只提供一个缓冲器控制电路,如参照图24所讨论的,该解码器的处理也与解码器54-5的处理基本相同,因此,这里没有给出该解码器的配置和处理的详细说明。
#1解码芯片382的配置与#1解码芯片73的配置基本相同,除了所配置的数据流输入电路391不是数据流输入电路91之外,该数据流输入电路391可以在控制器381的控制下只选择所提供数据流帧的预定部分并且将所选择的部分提供到缓冲器控制电路92。#2解码芯片383的配置与#2解码芯片76的配置基本相同,除了所配置的数据流输入电路392不是数据流输入电路111之外,该数据流输入电路392可以在控制器381的控制下只选择所提供数据流帧的预定部分并且将所选择的部分提供到缓冲器控制电路112。
下面参照图29的流程图描述图28中所示的解码器54-5执行的解码处理3。
步骤S111中,解码器54-5接收输入的数据流。步骤S112中,将输入的数据流提供到#1解码芯片382和#2解码芯片383。
步骤S113中,执行被分割帧的解码处理3,下面参照由图30A和30B构成的图30详细地描述该处理。
步骤S114中,#1解码芯片382的显示输出电路97生成用于输出由解码像素数据构成的图像数据的同步定时信号,并且显示输出电路97根据该定时信号,通过缓冲器控制电路95从视频缓冲器75缓冲的像素数据中,将解码器单元93解码的图像数据(图10中的a所表示的)作为被解码的视频数据读到选择器97中。同时,#2解码芯片383的显示输出电路117生成用于输出由解码像素数据构成的图像数据的同步定时信号,并且显示输出电路117根据该定时信号,通过缓冲器控制电路115从视频缓冲器78缓冲的像素数据中,将解码器单元113解码的图像数据(图10中的b所表示的)作为被解码的视频数据读到选择器97中。
步骤S115中,选择器79接收由#1解码芯片382和#2解码芯片383解码的图像数据,并且将所分割的图像数据组合为一个帧。然后完成处理。
根据上述的处理,图28中所示的解码器54-5可以使用#1解码芯片382和#2解码芯片383分割一个帧以及解码所分割的帧区域。例如,如果#1解码芯片382的解码器单元93和#2解码芯片383的解码器单元113的每一个具有以×1的速率解码数据的能力,并且如果#1解码芯片382和#2解码芯片383的每一个选择半个帧,则图28中所示的解码器54-5可以以×2的速率解码数据。
如上所述,采用这种配置,可以执行×2速率的解码处理。另外,如果以与公知的解码器执行的解码处理相同的速率执行解码处理,则可能减小解码器的电路大小(每个解码芯片的处理性能可以被降低)。此外,可以使用多个解码芯片解码具有较高帧频的编码数据流,该编码数据流由一个解码芯片处理较困难。
如果希望回放操作从预定的图片开始,则即使存在解码预定图片所需的多个参考图片,也可以执行快速解码处理,因此,可以执行快速随机的回放操作。
下面参照由图30A和30B构成的图30的流程图描述图29的步骤S113执行的被分割帧的解码处理3。在#1解码芯片382和#2解码芯片383中并行地执行被分割帧的解码处理3。
步骤S131中,#1解码芯片382的数据流输入电路391接收数据流并且检测所提供帧的图片类型。#2解码芯片383的数据流输入电路392接收数据流并且检测所提供帧的图片类型。
步骤S132中,#1解码芯片382的数据流输入电路391和#2解码芯片383的数据流输入电路392在控制器381的控制下,以与参照图8A到8C讨论的分割帧相同的方式,从所提供的帧中选择和提取解码区域。
步骤S133中,#1解码芯片382的数据流输入电路391将所提取的解码区域提供到缓冲器控制电路92。缓冲器控制电路92然后在数据流缓冲器74中缓冲所提供的数据。#2解码芯片383的数据流输入电路392将所提取的解码区域提供到缓冲器控制电路112。缓冲器控制电路112然后在数据流缓冲器77中缓冲所提供的数据。
步骤S134中,缓冲器控制电路92将数据流缓冲器74中缓冲的数据读到解码器单元93中。缓冲器控制电路112将数据流缓冲器77中缓冲的数据读到解码器单元113中。在这种情况下,如上所述,最好将需要提供到另一解码芯片的区域中的宏块作为参考像素优先地提供到解码器单元。
步骤S135中,解码器单元93或113根据步骤S131中确定的图片类型来确定所提供的数据是否为I-图片。如果步骤S135中确定所提供的数据不是I-图片,则程序转到步骤S140。
如果步骤S135中发现所提供的数据是I-图片,则程序转到步骤S136,并且执行分别与图16中的步骤S24到S27相同的步骤S136到S139。更特别地,解码器单元93或113解码所提供的编码数据中包含的每个宏块,并且将解码数据作为参考图片和输出图片提供到视频缓冲器75或78。然后,在解码数据中,通过芯片间接口将要复制到另一解码芯片的并且为该另一解码芯片解码处理所需的区域(图10中的α或β所表示的)提供到所述另一解码芯片。当接收像素数据时,其他解码芯片将它存储到视频缓冲器75或78。程序然后返回图29中的步骤S113并且进行到步骤S114。
如果步骤S135中确定所提供的数据不是I-图片,则程序转到步骤S140以便根据步骤S131中确定的图片类型来确定所提供的数据是否为P-图片。如果步骤S140中确定所提供的数据不是P-图片,则程序转到步骤S145,在后面讨论该步骤。
如果步骤S140中发现所提供的数据是P-图片,则程序转到步骤S141,并且执行分别与图16中的步骤S29到S32相同的步骤S141到S144。更特别地,解码器单元93或113使用参考像素数据解码每个宏块,并且将被解码的数据作为参考图片和输出图片提供到视频缓冲器75或78。然后,在解码数据中,通过芯片间接口将要复制到另一解码芯片的并且为该另一解码芯片解码处理所需的区域(图10中的α或β所表示的)提供到所述另一解码芯片。当接收像素数据时,其他解码芯片将它存储到视频缓冲器75或78。程序然后返回图29中的步骤S113并且进行到步骤S114。
如果步骤S140中确定所提供的数据不是P-图片,则程序转到步骤S145,以便根据步骤S131中确定的图片类型来确定所提供的数据是否为B-图片。如果步骤S145中确定所提供的数据不是B-图片,则程序转到步骤S135。
如果步骤S145中发现像素数据是B-图片,则程序转到步骤S146。执行分别与图16中的步骤S34和S35相同的步骤S146和S147。更特别地,解码器单元93或113使用参考像素数据解码每个宏块,并且将解码像素数据提供到视频缓冲器75或78并且在那里存储它们。程序返回图29中的步骤S113并且进行到步骤S114。
根据上述的处理,数据流的所有帧被提供到#1解码芯片382和#2解码芯片383。然后,选择和提取每个帧的解码区域,检测图片类型,并且根据所检测的图片类型,对所提取的解码区域中的宏块执行解码处理。在这种情况下,#1解码芯片382和#2解码芯片383的每一个中,将要用作其他解码芯片的参考图片的像素数据被提供到其他解码芯片,同样,其他解码芯片提供的参考图片的像素数据被存储到视频缓冲器中并且可以被用作参考图片。
在参照图29和30所讨论的处理中,通过#1解码芯片382和#2解码芯片383的每一个检测所提供帧的图片类型。或者,控制器381可以检测所提供帧的图片类型。
在解码器54-5中,解码芯片的数量可以是三个或更多,在该情况下,每个解码芯片同样可以检测图片类型,选择解码区域以及执行解码处理。
虽然在上述的解码器54-1到54-5中为每个解码芯片提供了一个缓冲器,但是所有解码芯片中只能提供和使用一个缓冲器。
由图31A和31B构成的图31是说明解码器54的第六个例子的解码器54-6的配置的方框图。在解码器54-6中,只为所有解码芯片提供了一个公共的缓冲器。图31中,用相同的参考标号指明与图7中的那些元件相应的元件,因此省略它们的详细说明。
解码器54-6包括数据流分割器72、选择器79、控制器401、#1解码芯片402、#2解码芯片403以及缓冲器404。缓冲器404包括数据流缓冲器431和视频缓冲器432。虽然解码器54-6可以具有三个或更多解码芯片,但是以下给出的说明中,假设提供了两个解码芯片,即,#1解码芯片402和#2解码芯片403。
控制器401根据用户输入的操作、外部设备提供的控制信号、或数据流分割器202提供的信息来控制解码器54-6的所有操作。
在控制器401的控制下,数据流分割器72解码所提供的编码数据流的序列层、GOP层、以及图片层,并且采用与参照图8A到8C所讨论的分割帧的方式相同的方式将编码数据流的每个图片分割为与解码芯片相同的数量(在这种情况下,两个),并且将所分割的图片区域分配和提供到#1解码芯片402和#2解码芯片403。
数据流分割器72还将诸如图片类型的信息提供到控制器401,该信息是作为解码所提供数据流的序列层、GOP层和图片层的结果而获得的。
由数据流分割器72从每个图片分割出的区域的数量可以大于解码芯片的数量,然后,将所分割的图片区域分配到解码芯片。然而,最好数据流分割器72将每个图片分割为与解码芯片相同的数量,如图8A、8B或8C所示,并且将整个分割区域分配到每个芯片解码器,因为用于在解码芯片之间发送和接收参考像素的处理可以被简化。
可以平均地或不平均地分割图片。数据流分割器72可以具有检测图像的复杂性的功能,并且如果图片区域中的图像的复杂性非常不同,则数据流分割器72可以根据图像的复杂性(编码中的难度)来确定分割比。
#1解码芯片402包括数据流输入电路91、解码器单元93、运动补偿电路94、显示输出电路97、以及缓冲器控制电路411。在控制器401的控制下,#1解码芯片402解码数据流分割器72提供的被分割的图片区域。在这种情况下,#1解码芯片402将解码像素数据提供到缓冲器404的视频缓冲器432,并且还从视频缓冲器432读取参考像素数据以便参考所读取的参考像素数据来执行解码处理。
#2解码芯片403包括数据流输入电路111、解码器单元113、运动补偿电路114、显示输出电路117、以及缓冲器控制电路421。在控制器401的控制下,#2解码芯片403解码数据流分割器72提供的被分割的图片区域。在这种情况下,#2解码芯片403将解码像素数据提供到缓冲器404的视频缓冲器432,并且还从视频缓冲器432读取参考像素数据以便参考所读取的参考像素数据来执行解码处理。
由例如DRAM构成的缓冲器404包括两个存储区域,诸如数据流缓冲器431和视频缓冲器432。数据流缓冲器431暂时存储提供到#1解码芯片402和#2解码芯片403的编码数据流。视频缓冲器432接收并暂时存储#1解码芯片402解码的视频信号(像素数据)和由#2解码芯片403解码的被解码的视频信号(像素数据)。
选择器79从#1解码芯片402和#2解码芯片403接收被解码的像素数据,并且将该被解码的像素数据作为被解码的视频数据输出。
解码器54-6可以具有驱动器80,而驱动器80连接到控制器401,以便将信息传送到安装在驱动器80的可移动介质81,并且从安装在驱动器80的可移动介质81接收信息。
下面描述#1解码芯片402的配置和操作。
数据流输入电路91接收数据流分割器72所分割的编码数据流,并且将它提供到缓冲器控制电路411。缓冲器控制电路411根据时钟发生器电路(未示出)提供的基本时钟在数据流缓冲器431中缓冲输入的编码数据流。缓冲器控制电路411还按照时间顺序连续地读取数据流缓冲器431中存储的编码数据流,并且将它们输出到解码器单元93,其中数据流存储在该数据流缓冲器中。
解码器单元93根据MPEG语法解码输入的数据流,并且将解码的数据流提供到运动补偿电路94。更特别地,解码器单元93将片层分为宏块,以便解码该宏块,并且将所得的预测向量和像素输出到运动补偿电路94。
根据从解码器单元93输出的宏块是否经过运动补偿,运动补偿电路94通过经由缓冲器控制电路411从视频缓冲器432读取被解码的参考像素数据,执行运动补偿。运动补偿电路94然后将所得的像素数据输出到缓冲器控制电路411。
更特别地,如果从解码器单元93输出的宏块没有经过运动补偿,则运动补偿电路94通过缓冲器控制电路411,在视频缓冲器432中存储像素数据。视频缓冲器432中存储的像素数据被用作显示图像并且可以用作其他图片的参考数据。
如果从解码器单元93输出的宏块经过运动补偿,则运动补偿电路94根据解码器单元93输出的预测向量,通过缓冲器控制电路411从视频缓冲器432中读取参考像素数据。在这种情况下,为了从视频缓冲器432中读取参考像素数据,运动补偿电路94将所需的有关像素位置的信息和参考像素的大小提供到缓冲器控制电路411。缓冲器控制电路411根据有关像素位置和大小的信息,读取所需的参考像素。在这种情况下,由于通过#1解码芯片402或#2解码芯片403访问视频缓冲器432,所以需要伴随着数据传送的地址控制或用于确定何时占用数据总线或何时发送和接收数据的定时控制。然后,运动补偿电路94通过将所读取的参考像素数据添加到解码器单元93提供的像素数据中,来执行运动补偿。运动补偿电路94通过缓冲器控制电路411,在视频缓冲器432中存储运动补偿像素数据。视频缓冲器432中存储的像素数据被用作显示图像并且可以用作其他图片的参考数据。
缓冲器控制电路411还读取视频缓冲器432中存储的像素数据,并且将它提供到显示输出电路97。显示输出电路97生成用于输出解码像素数据的同步定时信号,并且显示输出电路97根据该定时信号,将从视频缓冲器432中读出的像素数据作为解码视频数据输出。
#2解码芯片403中,数据流输入电路111、解码器单元113、运动补偿电路114、显示输出电路117、以及缓冲器控制电路421的功能与#1解码芯片402的相应部件的功能基本相同,并且#2解码芯片403的操作与#1解码芯片402的操作基本相同,并且因此省略它们的详细说明。
数据流输入电路111接收编码数据流。缓冲器控制电路421在数据流缓冲器431中缓冲所输入的编码数据流,并且还按照时间顺序连续地读取数据流缓冲器431中存储的编码数据流,并且将它们输出到解码器单元113,其中数据流存储在该数据流缓冲器中。
解码器单元113根据MPEG语法解码所输入的数据流,并且将解码的数据流提供到运动补偿电路114。运动补偿电路114根据从解码器单元113输出的宏块是否经过运动补偿,通过经由缓冲器控制电路421从视频缓冲器432读取被解码的参考像素数据,执行运动补偿。运动补偿电路114然后将所得的像素数据输出到缓冲器控制电路421。在这种情况下,为了从视频缓冲器432中读取参考像素数据,运动补偿电路114将所需的有关像素位置的信息和参考像素的大小提供到缓冲器控制电路421。缓冲器控制电路421然后根据有关像素位置和大小的信息,从视频缓冲器432中读取所需的参考像素。在这种情况下,由于通过#1解码芯片402或#2解码芯片403访问视频缓冲器432,所以需要伴随着数据传送的地址控制或用于确定何时占用数据总线或何时发送和接收数据的定时控制。
如果从解码器单元113输出的宏块使用运动补偿,则运动补偿电路114根据解码器单元113输出的预测向量,通过缓冲器控制电路421从视频缓冲器432中读取参考像素数据,然后将所读取的参考像素数据添加到解码器单元113提供的像素数据中,从而执行运动补偿。运动补偿电路114通过缓冲器控制电路421,将运动补偿像素数据存储到视频缓冲器432中。视频缓冲器432中存储的像素数据被用作显示图像并且可以用作其他图片的参考数据。
缓冲器控制电路421还读取视频缓冲器432中存储的像素数据,并且将它提供到显示输出电路97。显示输出电路97通过缓冲器控制电路421将从视频缓冲器432中读出的像素数据作为解码视频数据输出。
现在参照图32的流程图给出图31中的解码器54-6执行解码处理4的说明。
步骤S201中,数据流分割器72接收输入的数据流。
步骤S202中,控制器401检测数据流的每个帧的图片类型,并且将表示图片类型的控制信号提供到#1解码芯片402和#2解码芯片403。
步骤S203中,数据流分割器72在控制器401的控制下分割所接收的帧,并且将分割的帧区域分配和提供到#1解码芯片402和#2解码芯片403。
步骤S204中,执行被分割帧的解码处理4,下面参照由图33A和33B构成的图33详细地描述该处理。
步骤S205中,#1解码芯片402的显示输出电路97生成用于输出由解码像素数据构成的图像数据的同步定时信号,并且显示输出电路97根据该定时信号,通过缓冲器控制电路411将解码器单元93解码的图像数据(图10中的a所表示的)作为解码的视频数据读到选择器79中,该图像数据是视频缓冲器432中缓冲的像素数据中的数据。同时,#2解码芯片403的显示输出电路117生成用于输出由解码像素数据构成的图像数据的同步定时信号,并且显示输出电路117根据该定时信号通过缓冲器控制电路421,将解码器单元113解码的图像数据(图10中的b所表示的)作为解码的视频数据,读到选择器79中,该图像数据是视频缓冲器432中缓冲的像素数据中的数据。
步骤S206中,选择器79接收#1解码芯片402和#2解码芯片403解码的图像数据,并且将所分割的图像数据组合为一个帧。然后完成处理。
根据上述的处理,图31中所示的解码器54-6可以使用#1解码芯片402和#2解码芯片403,分割一个帧,并且解码所分割的帧区域。
然而,在#1解码芯片402和#2解码芯片403中,由于#1解码芯片402和#2解码芯片403共享缓冲器404,所以需要伴随着数据传送的复杂的地址控制或用于确定何时占用数据总线或何时发送和接收数据的定时控制。因此,为了没有延迟地执行快速的解码处理,应当适当地增加缓冲器404与#1解码芯片402或#2解码芯片403之间的数据传送率。
虽然在该例子中由控制器401检测每个帧的图片类型,但是#1解码芯片402和#2解码芯片403的每一个也可以检测图片类型。
虽然在该例子中数据流分割器72分割所提供的编码数据流的每个帧,但是#1解码芯片402和#2解码芯片403的每一个可以在控制器401的控制下接收未分割的数据流并且选择和提取帧的解码区域。
下面参照由图33A和33B构成的图33的流程图描述图32中的步骤S204执行的被分割帧的解码处理4。
步骤S221中,#1解码芯片402的数据流输入电路91接收数据流分割器72分割的数据,并且将它提供到缓冲器控制电路411。缓冲器控制电路411在数据流缓冲器431中缓冲所提供的数据。同时,#2解码芯片403的数据流输入电路111接收数据流分割器72分割的数据,并且将它提供到缓冲器控制电路421。缓冲器控制电路421在数据流缓冲器431中缓冲所提供的数据。
步骤S222中,缓冲器控制电路411将数据流缓冲器431中缓冲的数据读到解码器单元93中。缓冲器控制电路421将数据流缓冲器431中缓冲的数据读到解码器单元113中。
步骤S223中,解码器单元93或113根据控制器401提供的控制信号确定所提供的数据是否为I-图片。如果步骤S223中确定所提供的数据不是I-图片,则程序转到步骤S226。
如果步骤S223中发现所提供的数据是I-图片,则程序转到步骤S224,在该步骤中解码器单元93或113解码所提供的编码数据中包含的每个宏块。
步骤S225中,缓冲器控制电路411从解码器单元93接收被解码的数据,,并且将被解码的像素数据(与图11中的I-图片第一区域相应)作为参考图片并作为输出图片提供到视频缓冲器432。缓冲器控制电路421从解码器单元113接收被解码的数据,并且将被解码的像素数据(与图11中的I-图片第二区域相应)作为参考图片并作为输出图片提供到视频缓冲器432。然后程序返回图32中的步骤S204,并且进行到步骤S205。
如果步骤S223中确定所提供的数据不是I-图片,则程序转到步骤S226以便根据控制器401提供的控制信号确定所提供的数据是否为P-图片。如果步骤S226中确定所提供的数据不是P-图片,则程序转到步骤S229,后面将讨论该步骤。
如果步骤S226中发现所提供的数据是P-图片,则程序转到步骤S227。步骤S227中,解码器单元93或113使用参考像素数据解码每个宏块。更特别地,由于P-图片中包含的宏块使用运动补偿,所以解码器单元93将片层分为宏块并且将所得的预测向量和像素输出到运动补偿电路94。运动补偿电路94根据解码器单元93输出的预测向量,通过缓冲器控制电路411从视频缓冲器432中读取参考像素数据,并且将读取的参考像素数据添加到解码器单元93提供的像素数据中,从而执行运动补偿。解码器单元113将片层分为宏块,并且将所得的预测向量和像素输出到运动补偿电路114。运动补偿电路114根据解码器单元113输出的预测向量,通过缓冲器控制电路421从视频缓冲器432中读取参考像素数据,并且将读取的参考像素数据添加到解码器单元113提供的像素数据中,从而执行运动补偿。
步骤S228中,缓冲器控制电路411从解码器单元93接收解码数据(与图13中的P-图片第一区域的象素数据相应),并且作为参考图片或输出图片将它提供到视频缓冲器432。缓冲器控制电路421从解码器单元113接收解码数据(与图13中的P-图片第二区域相应的象素数据相应),并且作为参考图片或输出图片将它提供到视频缓冲器432。然后程序返回图32中的步骤S204并且进行到步骤S205。
如果步骤S226中确定所提供的数据不是P-图片,则程序转到步骤S229以便根据控制器401提供的控制信号确定所提供的数据是否为B-图片。如果步骤S229中确定所提供的数据不是B-图片,则程序返回步骤S223。
如果步骤S229中发现像素数据是B-图片,则程序转到步骤S230。步骤S230中,解码器单元93或113使用参考像素数据解码每个宏块。更特别地,由于B-图片中包含的宏块使用运动补偿,所以解码器单元93将片层分为宏块,并且解码每个宏块以便将所得的预测向量和像素输出到运动补偿电路94。运动补偿电路94然后根据解码器单元93输出的预测向量,通过缓冲器控制电路411从视频缓冲器432中读取参考像素数据,并且将读取的参考像素数据添加到解码器单元93提供的像素数据中,从而执行运动补偿。同时,解码器单元113将片层分为宏块,并且解码每个宏块,以便将所得的预测向量和像素输出到运动补偿电路114。运动补偿电路114然后根据解码器单元113输出的预测向量,通过缓冲器控制电路421从视频缓冲器432中读取参考像素数据,并且将读取的参考像素数据添加到解码器单元113提供的像素数据中,从而执行运动补偿。
步骤S231中,缓冲器控制电路411从解码器单元93接收解码数据(与图14中的B-图片第一区域相应),并且作为输出图片将它提供到视频缓冲器432。缓冲器控制电路421从解码器单元113接收解码数据(与图14中的B-图片第二区域相应),并且作为输出图片将它提供到视频缓冲器432。然后程序返回图32中的步骤S204并且进行到步骤S205。
根据上述的处理,由#1解码芯片402和#2解码芯片403的每一个根据控制器401所检测的图片类型来执行解码处理。在这种情况下,在#1解码芯片402和#2解码芯片403的每一个中,可以从相同的视频缓冲器432中读取被其他解码芯片用作参考图片的像素数据。
图34是说明解码器54的第七个例子的解码器54-7的配置的方框图,该解码器54-7具有三个解码芯片并且所有三个解码芯片使用一个公共缓冲器。图34中,用相同的参考标号指明与解码器54-1到54-6的任何一个中所示的那些元件相应的元件,并且因此省略它们的详细说明。
解码器54-7包括数据流分割器202、缓冲器404、控制器451、#1解码芯片452、#2解码芯片453、#3解码芯片454、以及选择器209。虽然解码器54-7可以具有四个或更多解码芯片,但是下面给出的说明,假设提供了三个解码器,即,#1解码芯片452到#3解码芯片454。
控制器451根据用户输入的操作、外部设备提供的控制信号、或数据流分割器202提供的信息控制解码器54-7的所有操作。
在控制器451的控制下,数据流分割器202解码所提供的编码数据流的序列层、GOP层、以及图片层,并且将编码数据流的每个图片分割为与解码芯片相同的数量(在这种情况下,三个),并且将分割的图片区域分配和提供到#1解码芯片452、#2解码芯片453和#3解码芯片454。
数据流分割器202还将诸如图片类型的信息提供到控制器451,该信息作为解码所提供的数据流的序列层、GOP层和图片层的结果而获得。
可以平均地或非平均地分割图片。数据流分割器202可以具有检测图像的复杂性的功能,并且如果图片区域中图像的复杂性非常不同,则数据流分割器202可以根据图像的复杂性(编码中的困难)确定图片的分割比。
#1解码芯片452在控制器451的控制下,解码数据流分割器202提供的被分割的图片,并且将解码的像素数据存储到缓冲器404中,并且如果需要则参考所存储的数据执行解码处理。
#2解码芯片453在控制器451的控制下,解码数据流分割器202提供的被分割的图片,并且将解码的像素数据存储到缓冲器404中,并且如果需要则参考所存储的数据执行解码处理。
#3解码芯片454在控制器451的控制下,解码数据流分割器202提供的被分割的图片,并且将解码的像素数据存储到缓冲器404中,并且如果需要则参考所存储的数据执行解码处理。
由例如DRAM构成的缓冲器404暂时存储#1解码芯片452、#2解码芯片453和#3解码芯片454提供的编码数据流以及#1解码芯片452、#2解码芯片453和#3解码芯片454解码的像素数据。
选择器209从#1解码芯片452、#2解码芯片453和#3解码芯片454接收被解码的像素数据并且作为被解码的视频数据而输出该像素数据。
解码器54-7可以具有驱动器80,并且驱动器80连接到控制器451以便将信息发送到驱动器80中安装的可移动介质81以及从驱动器80中安装的可移动介质81接收信息。
解码器54-7使用#1解码芯片452到#3解码芯片454执行的解码处理与参照图32和33所讨论的由图31中所示的解码器54-6执行的解码处理基本相同。
解码器54-7中,代替为所有的解码芯片提供单一的缓冲器,可以为每个解码芯片提供一个缓冲器。代替事先将参考图片提供到另一个解码芯片,当需要时,每个解码芯片可以请求另一个解码芯片为解码处理发送参考图片。
由图35A和35B构成的图35是说明解码器54的第八个例子的解码器54-8的配置的方框图。解码器54-8中,当一个解码芯片需要不包含在解码芯片解码的像素数据中的区域中的参考图片时,该解码芯片可以请求另一个解码芯片发送包含参考图片的区域。图35中,用相同的参考标号指明与图7中的那些元件相应的元件,并且因此省略它们的详细说明。
图35中所示的解码器54-8的配置与图7中所示的解码器54-1的配置基本相同,除了所提供的控制器501不是控制器71并且分别提供的#1解码芯片502和#2解码芯片503不是#1解码芯片73和#2解码芯片76之外。解码器54-8中,即使为每个解码芯片提供了一个缓冲器,即,#1缓冲器302或#2缓冲器304,每个缓冲器包括数据流缓冲器74或77和视频缓冲器75或78,并且即使只为每个解码芯片提供一个缓冲器控制电路,如同图24中所示的解码器54-3那样,该解码器的处理也与每个解码芯片中具有两个缓冲器,即,数据流缓冲器和视频缓冲器,和两个缓冲器控制电路的解码器54-8的处理基本相同。因此,这里省略该解码器的配置和处理的详细说明。
#1解码芯片502的配置与#1解码芯片73的配置基本相同,除了缓冲器控制电路511代替缓冲器控制电路95并且芯片间接口512代替芯片间接口96之外。#2解码芯片503的配置与#2解码芯片76的配置基本相同,除了缓冲器控制电路521代替缓冲器控制电路115并且芯片间接口522代替芯片间接口116之外。
#1解码芯片502中,当发自解码器单元93的宏块使用运动补偿时,运动补偿电路94根据解码器单元93输出的预测向量,通过缓冲器控制电路511从视频缓冲器75读取参考像素数据,或者请求#2解码芯片503通过缓冲器控制电路511和芯片间接口512发送参考像素数据。
请求#2解码芯片503发送参考像素数据的信号包括用于指定所请求的参考像素数据的信息,诸如有关参考像素数据的位置或大小的信息。
#2解码芯片503的芯片间接口522将从#1解码芯片502接收的请求信号提供到缓冲器控制电路521。缓冲器控制电路521从视频缓冲器78中读取所请求的参考图片,并且通过芯片间接口522将它提供到#1解码芯片502。#1解码芯片502的芯片间接口512将所接收的参考像素提供到缓冲器控制电路511,并且缓冲器控制电路511将所请求的像素数据作为参考图片提供到运动补偿电路94。
运动补偿电路94然后通过将所提供的参考像素数据添加到解码器单元93输出的像素数据中而执行运动补偿。运动补偿电路94然后通过缓冲器控制电路511将运动补偿像素数据写到视频缓冲器75中。视频缓冲器75中存储的像素数据被用作显示图像并且可以被用作其他图片的参考数据。
同样在#2解码芯片503中,当解码器单元113输出的宏块使用运动补偿时,运动补偿电路114同样请求#1解码芯片502通过缓冲器控制电路521和芯片间接口522发送参考像素数据。
下面参照图36的流程图描述参照图35所讨论的解码器54-8所执行的解码处理5。
步骤S261中,数据流分割器72接收输入的数据流数据。
步骤S262中,控制器501检测数据流的每个帧的图片类型并且将表示图片类型的控制信号提供到#1解码芯片502和#2解码芯片503。
步骤S263中,数据流分割器72在控制器501的控制下分割所接收的帧,并且将所分割的帧区域分配和提供到#1解码芯片502和#2解码芯片503。
步骤S264中,执行被分割帧的解码处理5,下面参照由图37A和37B构成的图37详细地描述该处理。
步骤S265中,#1解码芯片502的显示输出电路97生成用于输出由解码的像素数据构成的图像数据的同步定时信号,并且显示输出电路97根据该定时信号,通过缓冲器控制电路511,从视频缓冲器75缓冲的像素数据中,将解码器单元93解码的图像数据(图10中的a所表示)作为解码的视频数据读到选择器79中。同时,#2解码芯片503的显示输出电路117生成用于输出由解码的像素数据构成的图像数据的同步定时信号,并且显示输出电路117根据该定时信号,通过缓冲器控制电路521,从视频缓冲器78缓冲的像素数据中,将解码器单元113解码的图像数据(图10中的b所表示的)作为解码的视频数据读到选择器79中。
步骤S266中,选择器79接收#1解码芯片502和#2解码芯片503解码的图像数据,并且将所分割的图像数据组合为一个帧。然后完成处理。
根据上述的处理,图35中所示的解码器54-8可以分割一个帧并且使用#1解码芯片502和#2解码芯片503解码所分割的帧区域。
虽然在该例子中由控制器501检测每个帧的图片类型,但是#1解码芯片502和#2解码芯片503的每一个也可以检测图片类型。
数据流分割器72分割所提供编码数据流的每个帧。或者,#1解码芯片502和#2解码芯片503的每一个可以在控制器501的控制下,接收未分割的数据流,并且从每个帧中选择和提取解码区域。
下面参照由图37A和37B构成的图37的流程图,描述图36中的步骤S264执行的被分割帧的解码处理5。
步骤S301中,#1解码芯片502的数据流输入电路91接收数据流分割器72分割的数据,并且将它提供到缓冲器控制电路92。缓冲器控制电路92在数据流缓冲器74中缓冲所提供的数据。同时,#2解码芯片503的数据流输入电路111接收数据流分割器72分割的数据,并且将它提供到缓冲器控制电路112。缓冲器控制电路112在数据流缓冲器77中缓冲所提供的数据。
步骤S302中,缓冲器控制电路92将数据流缓冲器74中缓冲的数据读到解码器单元93中。缓冲器控制电路112将数据流缓冲器77中缓冲的数据读到解码器单元113中。
步骤S303中,解码器单元93或113根据控制器501提供的控制信号确定所提供的数据是否为I-图片。如果步骤S303中确定所提供的数据不是I-图片,则程序转到步骤S306。
如果步骤S303中发现所提供的数据是I-图片,则程序转到步骤S304,在该步骤中解码器单元93或113解码所提供的编码数据中包含的每个宏块。
步骤S305中,缓冲器控制电路511从解码器单元93接收被解码的数据,并且将被解码的像素数据(与图11中的I-图片第一区域相应)作为参考图片并作为输出图片提供到视频缓冲器75。缓冲器控制电路521从解码器单元113接收被解码的数据,并且将被解码的像素数据(与图11中的I-图片第二区域相应)作为参考图片并作为输出图片提供到视频缓冲器78。然后程序返回图36中的步骤S264,并且进行到步骤S265。
如果步骤S303中确定所提供的数据不是I-图片,则程序转到步骤S306,以便根据控制器501提供的控制信号确定所提供的数据是否为P-图片。如果步骤S306中确定所提供的数据不是P-图片,则程序转到步骤S309,下面将讨论该步骤。
如果步骤S306中发现所提供的数据是P-图片,则程序转到步骤S307。步骤S307中,解码器单元93或113使用参考像素数据解码每个宏块。
更特别地,由于P-图片中包含的宏块使用运动补偿,所以解码器单元93将片层分为宏块,并且将所得的预测向量和像素输出到运动补偿电路94。运动补偿电路94根据解码器单元93输出的预测向量,通过缓冲器控制电路511从视频缓冲器75读取参考像素数据。或者,运动补偿电路94请求#2解码芯片503通过缓冲器控制电路511和芯片间接口512,发送视频缓冲器78中存储的参考像素数据。如果#1解码芯片502请求参考像素数据,则用于指定参考像素数据的相关像素位置和大小的信息被提供到#2解码芯片503。
响应请求信号,#2解码芯片503的芯片间接口522将从#1解码芯片502接收的请求信号提供到缓冲器控制电路521。缓冲器控制电路521从视频缓冲器78中读取所请求的参考图片,并且通过芯片间接口522将它提供到#1解码芯片502。#1解码芯片502的芯片间接口512将所接收的参考图片提供到缓冲器控制电路511,而缓冲器控制电路511将该像素数据提供到运动补偿电路94。运动补偿电路94然后通过将所获得的参考像素数据添加到解码器单元93提供的像素数据而执行运动补偿。
同样在#2解码芯片503中,运动补偿电路114从视频缓冲器78读取参考像素数据或者请求#1解码芯片502发送参考像素数据。
步骤S308中,缓冲器控制电路511从解码器单元93接收被解码的数据(与图13中的P-图片第一区域的像素数据相应),并且将它作为参考图片或输出图片提供到视频缓冲器75。缓冲器控制电路521从解码器单元113接收被解码的数据(与图13中的P-图片第二区域的像素数据相应),并且将它作为参考图片和输出图片提供到视频缓冲器78。然后程序返回图36中的步骤S264并且进行到步骤S265。
如果步骤S306中确定所提供的数据不是P-图片,则程序转到步骤S309,以便根据控制器501提供的控制信号确定所提供的数据是否为B-图片。如果步骤S309中确定所提供的数据不是B-图片,则程序转到步骤S303。
如果步骤S309中发现像素数据是B-图片,则程序转到步骤S310。步骤S310中,解码器单元93或113使用参考像素数据解码每个宏块。
更特别地,由于B-图片中包含的宏块使用运动补偿,所以解码器单元93将片层分为宏块,并且解码每个宏块,以便将所得的预测向量和像素输出到运动补偿电路94。运动补偿电路94然后根据解码器单元93输出的预测向量,通过缓冲器控制电路511从视频缓冲器75读取参考像素数据。或者,运动补偿电路94请求#2解码芯片503通过缓冲器控制电路511和芯片间接口512,传送视频缓冲器78中存储的参考像素数据。如果#1解码芯片502请求参考像素数据,则用于指定参考像素数据的相关像素位置和大小的信息被提供到#2解码芯片503。
响应请求信号,#2解码芯片503的芯片间接口522将从#1解码芯片502接收的请求信号提供到缓冲器控制电路521。缓冲器控制电路521从视频缓冲器78中读取所请求的参考图片,并且通过芯片间接口522将它提供到#1解码芯片502。#1解码芯片502的芯片间接口512将所接收的参考图片提供到缓冲器控制电路511,而缓冲器控制电路511将该像素数据提供到运动补偿电路94。运动补偿电路94然后通过将所获得的参考像素数据添加到解码器单元93提供的像素数据,而执行运动补偿。
同样在#2解码芯片503中,运动补偿电路114从视频缓冲器78读取参考像素数据,或者请求#1解码芯片502发送参考像素数据。
步骤S311中,缓冲器控制电路511从解码器单元93接收被解码的数据(与图14中的B-图片第一区域相应),并且将它作为输出图像提供到视频缓冲器75。缓冲器控制电路521从解码器单元113接收被解码的数据(与图14中的B-图片第二区域相应),并且将它作为输出图像提供到视频缓冲器78。然后程序返回图36中的步骤S264,并且进行到步骤S265。
根据上述的处理,#1解码芯片502和#2解码芯片503的每一个根据控制器501检测的图片类型执行解码处理。在这种情况下,在#1解码芯片502和#2解码芯片503的每一个中,如果被用作参考图片的像素数据不包含在一个解码芯片解码的像素数据中,则解码芯片可以请求其他解码芯片发送参考像素数据。
图38是说明解码器54的第九个例子的解码器54-9的配置的方框图。解码器54-9包括三个解码芯片,并且每个解码芯片可以仅仅当需要的时候请求另一个解码芯片发送被用作参考图片的像素数据。图38中,用相同的参考标号指明与解码器54-1到54-8的任何一个中的那些元件相应的元件,并且因此省略它们的详细说明。
解码器54-9包括控制器551、数据流分割器202、#1解码芯片552、第一缓冲器204、#2解码芯片553、第二缓冲器206、#3解码芯片554、第三缓冲器208、以及选择器209。虽然解码器54-9可以具有四个或更多的解码芯片,但是下面给出的说明,假设提供了三个解码芯片,即,#1解码芯片552到#3解码芯片554。第一缓冲器204到第三缓冲器208每个包括一个数据流缓冲器和一个视频缓冲器。可以单独地提供该数据流缓冲器和视频缓冲器。
控制器551根据用户输入的操作、外部设备提供的控制信号、或者数据流分割器202提供的信息,控制解码器54-9的所有操作。
在控制器551的控制下,数据流分割器202解码所提供的编码数据流的序列层、GOP层、和图片层,并且将编码数据流的每个图片分割为与解码芯片相同的数量(在这种情况下,三个),并且将所分割的图片区域分配和提供到#1解码芯片552到#3解码芯片554。每个图片可以以片为单元被分割为与解码芯片相同的数量(在这种情况下,三个)。或者,每个图片可以被垂直或倾斜地分割为与解码芯片相同的数量(在这种情况下,三个)。如果使用MPEG2解码,则垂直或倾斜地分割图片可能比以片为单元分割图片更困难。当以片为单元将一个图片分割为与解码芯片相同的数量时,数据流分割器202可以根据片开始代码分割每个帧。
在控制器551的控制下,#1解码芯片552解码数据流分割器202提供的被分割的图片,并且将解码像素数据提供到第一缓冲器204,并且在那里存储它。如果参考像素数据没有存储在第一缓冲器204中,则#1解码芯片552请求#2解码芯片553发送参考像素数据,然后执行解码处理。
由例如DRAM构成的第一缓冲器204接收提供到#1解码芯片552的编码数据流以及#1解码芯片552解码的视频信号(像素数据),并且暂时存储它们。
在控制器551的控制下,#2解码芯片553解码数据流分割器202提供的被分割的图片,并且将解码像素数据提供到第二缓冲器206,并且在那里存储它。如果参考像素数据没有存储在第二缓冲器206中,则#2解码芯片553请求#1解码芯片552或#3解码芯片554发送参考像素数据,然后执行解码处理。
由例如DRAM构成的第二缓冲器206接收提供到#2解码芯片553的编码数据流以及#2解码芯片553解码的视频信号(像素数据),并且暂时存储它们。
在控制器551的控制下,#3解码芯片554解码数据流分割器202提供的被分割的图片,并且将解码像素数据提供到第三缓冲器208,并且在那里存储它。如果参考像素数据没有存储在第三缓冲器208中,则#3解码芯片554请求#2解码芯片553发送参考像素数据,然后执行解码处理。
由例如DRAM构成的第三缓冲器208接收提供到#3解码芯片554的编码数据流以及#3解码芯片554解码的视频信号(像素数据),并且暂时存储它们。
选择器209通过#3解码芯片554从#1解码芯片552接收被解码的像素数据并且作为被解码的视频数据输出它。
解码器54-9可以具有驱动器80,而驱动器80连接到控制器551,以便将信息发送到驱动器80中安装的可移动介质81以及从驱动器80中安装的可移动介质81接收信息。
解码器54-9使用三个解码芯片(即,#1解码芯片552到#3解码芯片554)执行的处理,与参照图35到37所讨论的包括两个解码芯片的解码器54-8执行的处理基本相同。
上述一系列处理操作可以由软件来执行。在这种情况下,从记录介质将相应的软件程序安装到内置专用硬件的计算机中或者安装到诸如通用计算机的计算机中,该通用计算机可以通过在其中安装不同的程序而执行不同的功能。
如图7、21、24、25、28、31、34、35或38中所示,这样一种记录介质包括在其上记录程序的可移动介质81,诸如磁盘(包括软盘)、光盘(包括致密盘只读存储器(CD-ROM或数字通用盘(DVD)))、磁光盘(包括小型磁盘(MD)(寄存))、或分别从计算机分给用户的半导体存储器。
在本说明书中,可以按照在说明书中描述的时间顺序执行构成记录介质上记录的程序的步骤。或者,可以并行或分别地执行它们。
在本说明书中,系统是包括多个设备的整个装置。
本领域的技术人员可以理解的是,在权利要求或其等价物的范围内,根据设计要求和其他因素,可以进行各种变型、组合、子组合和变化。
相关申请的交叉引用本发明包含有关2005年8月26日在日本专利局提交的日本专利申请JP2005-245742的主题,在此通过引用合并其全部内容。
权利要求
1.一种用于解码被编码的数据流并且输出被解码的数据流的图像处理装置,包括多个解码装置,每一个对构成编码数据流的每个帧的预定区域执行解码处理;以及输出装置,用于接收作为多个解码装置执行解码处理的结果所获得的多个像素数据并且将该多个像素数据组合为被解码的图像数据,并且用于输出该被解码的图像数据,其中,在多个解码装置中,一个解码装置,将作为所述一个解码装置执行解码处理的结果所获得的像素数据中的另一个解码装置执行解码处理所需的像素数据,提供到所述另一个解码装置,并且还从所述另一个解码装置中获得,作为所述另一个解码装置执行解码处理的结果所获得的像素数据中的所述一个解码装置执行解码处理所需的像素数据,以及所述一个解码装置,通过参考作为所述一个解码装置执行解码处理的结果所获得的像素数据以及从所述另一个解码装置中获得像素数据,执行解码处理。
2.根据权利要求1的图像处理装置,还包括多个像素数据存储装置,用于暂时存储作为多个解码装置的每一个执行解码处理的结果所获得的像素数据或者多个解码装置的每一个执行解码处理所需的像素数据,所述像素数据存储装置的数量与所述多个解码装置的数量相同,其中所述一个解码装置,将作为所述一个解码装置执行解码处理的结果所获得的像素数据以及从所述另一个解码装置中获得的像素数据,存储到像素数据存储装置中,并且参考作为所述一个解码装置执行解码处理的结果所获得的并存储在像素数据存储装置中的像素数据,以及从所述另一个解码装置中获得的并存储在像素数据存储装置中的像素数据,执行解码处理。
3.根据权利要求1的图像处理装置,其中所述另一个解码装置执行解码处理所需的像素数据,是所述另一个解码装置解码的预定区域中包括的运动补偿参考区域的运动向量搜索区域中包括的像素数据,而所述一个解码装置执行解码处理所需的像素数据,是所述一个解码装置解码的预定区域中包括的运动补偿参考区域的运动向量搜索区域中包括的像素数据。
4.根据权利要求1的图像处理装置,其中多个解码装置的每一个由一个芯片构成,并且芯片的输入/输出终端相互连接,以便多个解码装置相互连接来发送和接收所述像素数据。
5.根据权利要求1的图像处理装置,还包括控制装置,用于控制多个解码装置执行的解码处理,其中控制装置检测形成编码数据流的每个图片的图片类型,而多个解码装置的每一个根据控制装置检测的图片类型执行解码处理。
6.根据权利要求1的图像处理装置,其中多个解码装置的每一个检测形成编码数据流的每个图片的图片类型,并且根据所检测的图片类型执行解码处理。
7.根据权利要求1的图像处理装置,还包括用于分割编码数据流的数据流分割装置,其中多个解码装置的每一个对形成数据流分割装置分割的编码数据流的每个帧的预定区域执行解码处理。
8.根据权利要求7的图像处理装置,其中数据流分割装置以片为单元将形成编码数据流的每个帧分割为预定的区域,所述片的数量与多个解码装置的数量相同。
9.根据权利要求1的图像处理装置,其中多个解码装置的每一个接收形成编码数据流的每个帧,以片为单元将所述帧分割为预定的区域,并且提取和解码预定的区域之一,所述片的数量与多个解码装置的数量相同。
10.根据权利要求1的图像处理装置,其中多个解码装置的每一个优先地解码所述另一个解码装置执行解码处理所需的像素数据。
11.一种用于图像处理装置的图像处理方法,用于解码被编码的数据流并且输出被解码的数据流,包括步骤使用多个解码器,对形成编码数据流的每个帧的每个预定区域执行解码处理;将另一个解码器执行解码处理所需的像素数据提供到所述另一个解码器,该像素数据是作为多个解码器之一执行解码处理的结果所获得的像素数据中的数据;从所述另一个解码器中获得所述一个解码器执行解码处理所需的像素数据,该像素数据是作为所述另一个解码器执行解码处理的结果所获得的像素数据中的数据;以及接收作为多个解码器执行解码处理的结果所获得的像素数据,并且将所接收的像素数据组合为被解码的图像数据,并且输出该被解码的图像数据,其中,在解码处理中,当解码帧间预测编码帧的预定区域时,通过参考作为所述一个解码器执行解码处理的结果所获得的像素数据以及所述一个解码器执行解码处理所需的并从所述另一个解码器中获得的像素数据,解码预定的区域。
12.一种用于解码被编码的数据流并且输出被解码的数据流的图像处理装置,包括多个解码器,每一个被配置成对构成编码数据流的每个帧的预定区域执行解码处理;以及输出单元,被配置成接收作为多个解码器执行解码处理的结果所获得的多个像素数据,并且将该多个像素数据组合为被解码的图像数据并且输出该被解码的图像数据,其中,在多个解码器中,一个解码器将另一个解码器执行解码处理所需的像素数据提供到所述另一个解码器,该像素数据是作为所述一个解码器执行解码处理的结果所获得的像素数据中的数据,并且还从所述另一个解码器中获得所述一个解码器执行解码处理所需的像素数据,该像素数据是作为所述另一个解码器执行解码处理的结果所获得的像素数据中的数据,以及所述一个解码器通过参考作为所述一个解码器执行解码处理的结果所获得的像素数据以及从所述另一个解码器中获得的像素数据而执行解码处理。
13.一种用于解码被编码的数据流并且输出被解码的数据流的解码设备,包括一个解码器,每一个对形成编码数据流的每个帧的预定区域执行解码处理;以及传送单元,用于将作为所述一个解码器执行解码处理的结果所获得的像素数据、另一个解码器执行解码处理所需的像素数据,传送到所述另一个解码器,并且从所述另一个解码器接收作为所述另一个解码器执行解码处理的结果所获得的像素数据、所述一个解码器执行解码处理所需的像素数据,其中,所述一个解码器,通过参考作为所述一个解码器执行解码处理的结果所获得的像素数据以及从所述另一个解码器中获得的像素数据,执行解码处理。
14.一种用于解码设备的图像处理方法,用于解码被编码的数据流并且输出被解码的数据流,包括步骤通过使用一个解码器,对形成编码数据流的每个帧的每个预定区域执行解码处理;将作为所述一个解码器执行解码处理的结果所获得的像素数据、另一个解码器执行解码处理所需的像素数据发送到所述另一个解码器;以及从所述另一个解码器接收作为所述另一个解码器执行解码处理的结果所获得的像素数据、所述一个解码器执行解码处理所需的像素数据,其中,所述一个解码器,通过参考作为所述一个解码器执行解码处理的结果所获得的像素数据以及从所述另一个解码器获得的像素数据,执行解码处理。
全文摘要
一种包括多个解码器和一个输出单元的图像处理装置,每个解码器解码形成编码数据流的每个帧的预定区域,该输出单元接收作为多个解码器解码处理的结果获得的像素数据并且将该像素数据组合为被解码的图像数据以便输出它。一个所述解码器将作为所述解码器解码处理的结果所获得的像素数据中的不同的解码器所需的像素数据提供到不同的解码器,并且从不同的解码器获得作为不同的解码器解码处理的结果所获得的像素数据中的所述解码器所需的像素数据。所述解码器通过参考作为所述解码器解码处理的结果所获得的像素数据以及从不同的解码器获得的像素数据执行解码处理。
文档编号H04N7/26GK1956545SQ20061014037
公开日2007年5月2日 申请日期2006年8月28日 优先权日2005年8月26日
发明者三谷公一, 大桥正和, 杉山晃, 河野成生 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1