图像数据处理装置与方法

文档序号:7651935阅读:240来源:国知局
专利名称:图像数据处理装置与方法
技术领域
本发明例如可应用于根据H.264/MPEG-4AVC(ITU-T Rec.II.264ISO/IEC 14496-10AVC)标准对视频数据的编码与解码。本发明通过如下方式减小了在并行地利用多个用于编码处理和解码处理的算术处理装置来同时处理图像数据的配置中缓存存储器的容量顺序并循环分配条带(slice)到多个算术处理部分,利用多个算术处理部分来并行地同时编码和解码图像数据,并且设置每个条带的处理以建立这样一种关系,在这种关系中,在每个条带中进行处理的宏块的参考宏块可能与紧接着的前一条带中的宏块的参考宏块部分重叠。
背景技术
在现有技术中,在各种视频设备中,利用H.264/MPEG-4AVC(在下文中称之为H.264/AVC)、WMV9(视窗媒体视频9)、MPEG-4(ISO/IEC 14496信息技术-音频-可视对象的通用编码)、MPEG-2(ISO/IEC 13818-2国际标准MPEG-2视频)、MPEG-1(ISO/IEC 11172-2国际标准MPEG-1视频)等对运动图像的图像数据执行编码处理和解码处理。在这些编码处理和解码处理中,宏块按光栅扫描(raster scan)顺序被顺序处理。
就是说,如图41A到41D所示,在视频信号例如是所谓的4∶2∶0的情况下,在这种类型的编码处理中,亮度信号Y和色差信号Cr、Cb被分别划分成16像素×16像素和8像素×8像素的宏块。对于亮度信号Y,对每个8像素×8像素块执行离散余弦变换处理,其中所述8像素×8像素块是通过将一个宏块分别在水平方向和垂直方向上分成两半而形成的。对于色差信号Cr、Cb,对每个宏块执行离散余弦变换处理。在H.264/AVC中,对每个4像素×4像素块执行正交变换处理和离散Hadamard变换处理,其中所述4像素×4像素块是通过将各个块进一步分成两半而形成的。在这种类型的编码处理中,对作为离散余弦变换处理结果的各个系数数据执行量化处理和变长编码处理。
因此,在这种类型的编码处理和解码处理中,如图42A所示,每个宏块(MB)是利用二维地址,即水平和垂直地址(X,Y)来标识的。此外,在这种处理中,如图42B所示,水平和垂直地址(X,Y)被转换成用于访问存储器的一维地址,并且保存在存储器中的各个宏块的图像数据被顺序处理。
在处理中,通过参考相邻宏块的处理结果来提高传输效率。具体而言,在MPEG-1、2的帧内预测中,如图43所示,参考在同一条带的扫描开始端一侧的相邻宏块(X-1,Y)的处理结果,后一宏块(X,Y)被处理。在图43以及随后的附图中,参考关系用箭头示出。如下,将被参考的宏块被称为参考宏块。因此,在图43的示例中,宏块(X-1,Y)是宏块(X,Y)的参考宏块。这里,条带是条带层的处理单元,并且由多个水平方向上连续的宏块构成。
在MPEG-4的帧内预测中,如图44所示,在同一条带的扫描开始端一侧的相邻宏块(X-1,Y)、紧接着的前一条带中的正上方相邻宏块(X,Y-1)和在包含该正上方相邻宏块(X,Y-1)的条带的扫描开始端一侧的相邻宏块(X-1,Y-1)都被设置为宏块(X,Y)的参考宏块,并且宏块(X,Y)是通过参考宏块(X-1,Y)、(X,Y-1)或(X-1,Y-1)的处理结果来处理的。
在MPEG-4的运动向量预测中,如图45所示,在同一条带的扫描开始端一侧的相邻宏块(X-1,Y)、紧接着的前一条带中的正上方相邻宏块(X,Y-1)和在包含该正上方相邻宏块(X,Y-1)的条带的扫描终止端一侧的相邻宏块(X+1,Y-1)被设置为宏块(X,Y)的参考宏块,并且宏块(X,Y)的运动向量是通过参考宏块(X-1,Y)、(X,Y-1)或(X+1,Y1)的运动向量来预测的。
在H.264/AVC的帧内预测中,如图46所示,在同一条带的扫描开始端一侧的相邻宏块(X-1,Y)、紧接着的前一条带中的正上方相邻宏块(X,Y-1)、在包含该正上方相邻宏块(X,Y-1)的条带的扫描开始端一侧的相邻宏块(X-1,Y-1)和在包含该正上方相邻宏块(X,Y-1)的条带的扫描终止端一侧的相邻宏块(X+1,Y-1)被设置为宏块(X,Y)的参考宏块,并且宏块(X,Y)是通过参考宏块(X-1,Y)、(X,Y-1)、(X-1.Y-1)或(X+1,Y-1)的处理结果来处理的。
在H.264/AVC的运动向量预测中,如图47所示,与MPEG-4的运动向量预测类似,相邻宏块(X,Y-1)、(X+1,Y-1)和(X-1,Y)被设置为宏块(X,Y)的参考宏块,并且宏块(X,Y)的运动向量是通过参考宏块(X,Y-1)、(X+1,Y-1)或(X-1,Y)的运动向量而被处理的。
在H.264/AVC的去块滤波(deblocking filter)处理中,如图48所示,在同一条带的扫描开始端一侧的相邻宏块(X-1,Y)和紧接着的前一条带中的正上方相邻宏块(X,Y-1)被设置为宏块(X,Y)的参考宏块,并且宏块(X,Y)是通过参考宏块(X,Y-1)或(X-1,Y)的处理结果来处理的。
在上述编码和解码处理中,编码处理和解码处理可以利用诸如中央处理单元之类的算术处理装置的算术处理来执行。
在使用算术处理装置的数据处理系统中,利用缓存存储器来实现高速处理。
就是说,如图49所示,在使用算术处理装置的数据处理系统1中,缓存存储器2由诸如SRAM之类的可以高速访问的存储器构成,并且主存储器4由具有比缓存存储器2更低功耗的存储器构成,但是该存储器与缓存存储器2相比较难进行高速访问。此外,包含数据处理装置3的命令的数据被存储在主存储器4中,并且存储在主存储器4中的命令和部分数据被加载并保存在缓存存储器2中。在缓存存储器2中,用于管理各个数据的地址的TAG信息被设置,并且命令和数据被存储。
在数据处理系统1中,当再次使用同样的命令和数据时,数据处理装置3首先如箭头A所示访问缓存存储器2并搜索所需命令和数据。当目标命令和数据存在于缓存存储器2中时,设备取出并使用记录在缓存存储器2中的命令和数据。当目标命令和数据未存在于缓存存储器2中时,设备如箭头B所示从主存储器4取出目标命令和数据并使用它们,并且将该命令和数据存储在缓存存储器2中。缓存存储器2可被配置为主存储器中的软件,用于以更高速度进行数据管理。
关于用于利用算术处理装置执行编码处理和解码处理的配置,例如,在JP-A-2006-42364(专利文献1)中提出了一种方案,用于减少从存储器加载作为处理对象的图像数据的总周期数。此外,在JP-A-2000-115806(专利文献2)中提出了一种方案,用于利用缓存存储器来提高处理图像数据的速度。
当通过利用多个算术处理装置并行地同时处理图像数据来执行编码处理和解码处理时,与利用一个算术处理装置处理图像数据的情况相比,可以提高处理速度。此外,可以设想,当在通过利用多个算术处理装置并行地同时处理图像数据来执行编码处理和解码处理的配置中使用缓存存储器时,处理速度甚至可以更高。在此情况下,如果可以通过有效地利用所述通过利用多个算术处理装置并行地同时处理图像数据来执行编码处理和解码处理的配置减小缓存存储器的容量,则可以减小电路大小并且可以降低功耗。

发明内容
考虑到上述情况实现了本发明,并且本发明的优点是要提供一种图像数据处理装置、图像数据处理方法、用于图像数据处理方法的程序和记录用于图像数据处理方法的程序的记录介质,它们能够通过利用多个算术处理装置并行地同时处理图像数据来减小执行编码处理和解码处理的配置中的缓存存储器的容量。
根据本发明一个实施例的图像数据处理装置包括多个算术处理部分,它们分别以宏块为单位编码或解码图像数据;主存储器,其积累和保存用于所述多个算术处理部分的处理的数据;以及所述多个算术处理部分的缓存存储器,其保存保存在所述主存储器中的数据的一部分,其中所述图像数据的条带被顺序且循环地分别分配给所述多个算术处理部分,并且多个条带被设置为处理对象,所述多个算术处理部分处理保存在所述缓存存储器中的数据,并按照光栅扫描的顺序在对作为处理对象的所述多个条带的宏块的处理序列中并行地同时编码或解码所述图像数据,以建立每一条带的处理与紧接着的前一条带的处理之间的一致关系,并且所述一致关系是这样一种关系当前条带和紧接着的前一条带可被并行地同时处理,并且当前条带中正在处理的宏块在距紧接着的前一条带中正在处理的宏块预定数目个宏块的光栅扫描开始端一侧处,从而使得在当前条带中正在处理的宏块的参考宏块可以与该正在处理的宏块在紧接着的前一条带中的参考宏块部分重叠。
根据本发明一个实施例的一种以宏块为单位编码或解码图像数据的图像数据处理方法包括以下步骤将数据存储在用于存储编码和解码所需数据的主存储器中;将数据存储在用于存储在所述主存储器中存储的数据的缓存存储器中;以及使用保存在所述缓存存储器中的数据来利用多个算术处理装置分别同时地执行编码或解码所述图像数据的并行处理,从而以宏块为单位并行地同时处理通过顺序且循环地分配图像数据的条带而设置的多个处理对象,其中所述同时的并行处理步骤按照光栅扫描的顺序在对作为处理对象的所述多个条带的宏块的处理序列中编码或解码所述图像数据,以建立每一条带的处理与紧接着的前一条带的处理之间的一致关系,并且所述一致关系是这样一种关系当前条带和紧接着的前一条带可被并行地同时处理,并且当前条带中正在处理的宏块在距紧接着的前一条带中正在处理的宏块预定数目个宏块的光栅扫描开始端一侧处,从而使得在当前条带中正在处理的宏块的参考宏块可以与该正在处理的宏块在紧接着的前一条带中的参考宏块部分重叠。
根据本发明一个实施例的一种用于图像数据处理方法的程序,所述图像数据处理方法通过算术处理装置的执行来以宏块为单位编码或解码图像数据,所述用于图像数据处理方法的程序包括以下步骤将数据存储在用于存储编码和解码所需数据的主存储器中;将数据存储在用于存储在所述主存储器中存储的数据的缓存存储器中;以及使用保存在所述缓存存储器中的数据来利用多个算术处理装置分别同时地执行编码或解码所述图像数据的并行处理,从而以宏块为单位并行地同时处理通过顺序且循环地分配图像数据的条带而设置的多个处理对象,其中所述同时的并行处理步骤按照光栅扫描的顺序在对作为处理对象的所述多个条带的宏块的处理序列中编码或解码所述图像数据,以建立每一条带的处理与紧接着的前一条带的处理之间的一致关系,并且所述一致关系是这样一种关系当前条带和紧接着的前一条带可被并行地同时处理,并且当前条带中正在处理的宏块在距紧接着的前一条带中正在处理的宏块预定数目个宏块的光栅扫描开始端一侧处,从而使得在当前条带中正在处理的宏块的参考宏块可以与该正在处理的宏块在紧接着的前一条带中的参考宏块部分重叠。
根据本发明一个实施例的一种记录有用于图像数据处理方法的程序的记录介质,所述图像数据处理方法通过算术处理装置的执行来以宏块为单位编码或解码图像数据,所述用于图像数据处理方法的程序包括以下步骤将数据存储在用于存储编码和解码所需数据的主存储器中;将数据存储在用于存储在所述主存储器中存储的数据的缓存存储器中;以及使用保存在所述缓存存储器中的数据来利用多个算术处理装置分别同时地执行编码或解码所述图像数据的并行处理,从而以宏块为单位并行地同时处理通过顺序且循环地分配图像数据的条带而设置的多个处理对象,其中所述同时的并行处理步骤按照光栅扫描的顺序在对作为处理对象的所述多个条带的宏块的处理序列中编码或解码所述图像数据,以建立每一条带的处理与紧接着的前一条带的处理之间的一致关系,并且所述一致关系是这样一种关系当前条带和紧接着的前一条带可被并行地同时处理,并且当前条带中正在处理的宏块在距紧接着的前一条带中正在处理的宏块预定数目个宏块的光栅扫描开始端一侧处,从而使得在当前条带中正在处理的宏块的参考宏块可以与该正在处理的宏块在紧接着的前一条带中的参考宏块部分重叠。
根据实施例的配置,图像数据可以通过使用缓存存储器被多个算术处理部分并行地同时编码和解码。此外,由于在当前条带中正在处理的宏块的参考宏块与该正在处理的宏块在紧接着的前一条带中的参考宏块部分重叠,因此与正在处理的宏块的所有参考宏块的数据都被存储的情况相比,存储在缓存存储器中的数据可被减少,并且缓存存储器的容量可被减小。
根据实施例的配置,在同时的并行处理步骤中,图像数据可以通过使用缓存存储器被并行地同时处理。此外,由于在当前条带中正在处理的宏块的参考宏块与该正在处理的宏块在紧接着的前一条带中的参考宏块部分重叠,因此与正在处理的宏块的所有参考宏块的数据都被存储的情况相比,存储在缓存存储器中的数据可被减少,并且缓存存储器的容量可被减小。
根据本发明的实施例,通过利用多个算术处理装置并行地同时处理图像数据,可以减小执行编码处理和解码处理的配置中的缓存存储器的容量。


图1是用于说明本发明实施例1的编码器中的宏块处理引擎的处理序列的示意图。
图2是示出被应用到本发明实施例1的视频设备的编码器的框图。
图3是示出图2中的编码器的各个宏块处理引擎的处理程序的流程图。
图4是示出宏块处理引擎和缓冲存储器相对于用于帧内预测的图像数据的关系的框图。
图5是示出宏块地址的图表。
图6是示出图4中的配置的另一示例的框图。
图7是示出图4中的配置的不同于图6中的示例的另一示例的框图。
图8是示出图4中的配置的不同于图6和7中的示例的另一示例的框图。
图9是用于说明MPEG-1、2的帧内预测处理的示意图。
图10是示出利用图1中的处理的宏块处理的示意图。
图11A到11C是用于说明缓存存储器的容量的示意图。
图12是示出被应用到本发明实施例1的视频设备的解码器的框图。
图13是示出图12中的解码器的各个宏块处理引擎的处理程序的流程图。
图14是示出本发明实施例2的视频设备中的缓冲存储器的配置的框图。
图15是用于说明本发明实施例3的视频设备中的宏块处理的示意图。
图16A到16C是用于说明图15的配置中的缓存存储器的容量的示意图。
图17是用于说明本发明实施例4的视频设备中的宏块处理的示意图。
图18A到18C是用于说明图17的配置中的缓存存储器的容量的示意图。
图19是用于说明本发明实施例5的视频设备中的宏块处理的示意图。
图20A到20C是用于说明图19的配置中的缓存存储器的容量的示意图。
图21是示出本发明实施例6的编码器的主要部分的框图。
图22是示出图21的配置中的宏块地址的图表。
图23是用于说明图21的配置中的宏块处理的示意图。
图24是继续图23的示意图。
图25是继续图23和24的示意图。
图26是继续图23到25的示意图。
图27是示出本发明实施例7的编码器和解码器的主要部分的框图。
图28是用于说明图27的配置中的宏块处理的示意图。
图29是继续图28的示意图。
图30是继续图28和29的示意图。
图31是继续图28到30的示意图。
图32是用于说明在本发明实施例8的编码器中用于预处理的宏块处理引擎的操作的示意图。
图33是继续图32的示意图。
图34是示出本发明实施例9的视频设备中的缓冲存储器的配置的框图。
图35是用于说明在本发明实施例10的编码器中用于预处理的宏块处理引擎的操作的示意图。
图36是继续图35的示意图。
图37是示出本发明实施例11的编码器和解码器的主要部分的框图。
图38是用于说明在图37的编码器中用于预处理的宏块处理引擎的操作的示意图。
图39是继续图38的示意图。
图40是继续图39的示意图。
图41A到41D是用于说明宏块的示意图。
图42A和42B是用于说明宏块地址的示意图。
图43是用于说明MPEG-1、2的帧内预测中的参考宏块的示意图。
图44是用于说明MPEG-4的帧内预测中的参考宏块的示意图。
图45是用于说明MPEG-4的运动向量预测中的参考宏块的示意图。
图46是用于说明H.264/AVC的帧内预测中的参考宏块的示意图。
图47是用于说明H.264/AVC的运动向量预测中的参考宏块的示意图。
图48是用于说明H.264/AVC的去块滤波处理中的参考宏块的示意图。
图49是用于说明缓存的示意图。
具体实施例方式
在下文中,将通过适当地参考附图来详细描述本发明的实施例。
(1)实施例的配置图2是示出被应用到本发明实施例1的视频设备的编码器的框图。该实施例的视频设备利用编码器10对图像数据执行编码处理,将数据记录在记录介质中,并将数据输出到传输通道。此外,该设备利用解码器(随后将描述)对记录在记录介质中的图像数据和从传输通道输入的经编码的数据执行解码处理。
这里,编码器10由所谓的具有多个中央处理单元的多核处理器构成,并且顺序输入运动图像的图像数据像素(Pixel)到缓冲存储器31中。在图2中,对图像数据到缓冲存储器31的输入和输出的描述被简化。编码器10被配置为使得多个中央处理单元能够分别访问缓冲存储器31。编码器10根据H.264/AVC的方法利用多个中央处理单元的算术处理对存储在缓冲存储器31中的图像数据像素执行编码处理,并输出经编码的数据流(Stream)。
在编码器10中,形成有宏块处理引擎(MB处理引擎)11A到11N的功能块,所述宏块处理引擎11A到11N分别用于利用各自的中央处理单元处理宏块。此外,在编码器10中,预处理部分(ME)12和后处理部分13的功能块由控制整个操作的主中央处理单元构成。编码器10的程序被预先安装在视频设备中并被提供,但是,它们也可以被改为记录在诸如光盘、磁盘、存储器卡之类的各种记录介质中并被提供,或者经由诸如因特网之类的网络下载并被提供。
这里,预处理部分12是这样的功能块,其在利用宏块处理引擎11A到11N执行处理之前,以帧为单位预先一起处理图像数据像素。具体而言,预处理部分12在帧间预测时,相对于存储在缓冲存储器31中的参考帧,利用运动检测电路21检测最优预测模式和运动向量。
宏块处理引擎11A到11N是可并行处理的功能块,其分别以宏块为单位处理图像数据像素。宏块处理引擎11A到11N响应于在预处理部分12中的设置的最优预测模式和运动向量创建预测值,对各个宏块的图像数据执行编码处理,并输出数据coef。
就是说,宏块处理引擎11A到11N将来自缓冲存储器31的图像数据像素以宏块为单位输入到减法电路22。减法电路22在执行帧内编码时生成帧内预测电路23中生成的预测值与顺序输入的图像数据像素之间的差值数据,并且在执行帧间编码时生成在运动补偿电路24中生成的预测值与的图像数据像素之间的差值数据。
离散余弦变换电路(DCT)25对从减法电路22输出的差值数据执行正交变换处理并输出系数数据。量化电路(Q)26按预定的量化级别对系数数据进行量化并输出数据。宏块处理引擎11A到11N将量化电路26的输出数据coef输出到后处理部分13。
逆量化电路(Q-1)27对量化电路26的输出数据coef执行逆量化处理,并解码出输入到量化电路26的系数数据。逆离散余弦变换电路(IDCT)28对逆量化电路27的输出数据执行逆离散余弦变换处理,并解码出输入到离散余弦变换电路25的差值数据。加法电路29将由帧内预测电路23或运动补偿电路24生成的预测值与在逆离散余弦变换电路28中解码出的差值数据相加,并解码出去块滤波器30或帧内预测电路23的输入数据像素。
帧内预测电路23在利用加法电路29解码的当前帧Fn的图像数据像素执行帧内编码时输出预测值。运动补偿电路24输入由加法电路29解码并保存在缓冲存储器31中的图像数据像素以作为参考帧Fn-1的图像数据,并且在利用参考帧Fn-1的图像数据执行帧间编码时输出预测值。
对于I图片(I picture),宏块处理引擎11A到11N有选择地输出帧内预测电路23的预测值到减法电路22,以按帧内预测的最优预测模式编码图像数据像素。对于除了I图片之外的其他图片,引擎输出帧内预测电路23和运动补偿电路24的预测值到减法电路22,以按照具有帧内预测的最优预测模式和帧间预测的最优预测模式的较少量代码的最优预测模式来编码图像数据像素。宏块处理引擎11A到11N可以按以子宏块作为最优预测模式的预测模式来执行处理,所述子宏块是通过将一个宏块划分成多个块作为处理单位而形成的。在此情况下,引擎对配置一个宏块的子宏块顺序执行编码处理,然后,最终以宏块为单位对图像数据像素执行编码处理。
后处理部分13按一定顺序输入宏块处理引擎11A到11N的输出数据coef。该部分利用变长编码电路(VLC)对输入数据coef执行变长编码处理,然后添加量化级别信息、宏块类型(mb类型)等等,并输出经编码的数据流。此外,该部分利用去块滤波器(去块操作)30对从宏块处理引擎11A到11N输出的图像数据执行滤波处理以消除块失真,然后将数据作为参考帧Fn-1存储在缓冲存储器31中。
图3是示出各个宏块处理引擎11A到11N的处理程序的流程图。各个宏块处理引擎11A到11N在主中央处理单元的控制下执行图3所示的处理程序。
就是说,当各个宏块处理引擎11A到11N启动该处理程序时,引擎从步骤SP1移动到步骤SP2,并基于从预处理部分12通知的宏块类型来确定帧间预测或帧内预测。这里,在帧间预测的情况下,宏块处理引擎11A到11N从步骤SP2移动到步骤SP3,并利用运动补偿电路24计算预测值,而在帧内预测的情况下,它们从步骤SP2移动到步骤SP4,并且利用帧内预测电路23来计算预测值。
随后,宏块处理引擎11A到11N在步骤SP5处利用减法电路22计算差值数据,然后,在随后的步骤SP6处,利用离散余弦变换电路25将差值数据变换成系数数据。此外,在随后的步骤SP7处,引擎利用量化电路26对系数数据执行量化处理,并将处理结果输出到后处理部分13。此外,宏块处理引擎11A到11N在随后的步骤SP8处执行量化处理,并在随后的步骤SP9处执行逆离散余弦变换处理。在随后的步骤SP10处,引擎将预测值添加到逆离散余弦变换处理的结果并解码出原始图像数据。
宏块处理引擎11A到11N将解码出的图像数据输出到后处理部分13,并且在随后的步骤SP11处判断是否存在将要处理的另一宏块。这里,当存在将要处理的另一宏块时,宏块处理引擎11A到11N从步骤SP11返回步骤SP2,并开始对随后的宏块进行处理。相反,当不存在将要处理的其他宏块时,宏块处理引擎11A到11N从步骤SP11移动到步骤SP12,并且结束该处理程序。
图4是示出宏块处理引擎11A到11N和缓冲存储器31相对于用于帧内预测的图像数据的关系的框图。在图4以及以下描述中,宏块处理引擎11A到11N的数目为3的情况将被描述。这里,各个宏块处理引擎11A到11C被形成为可经由总线(BUS)独立访问缓冲存储器31。
在缓冲存储器31中,缓存存储器32由诸如SRAM之类可高速访问的存储器构成,而主存储器33由具有比缓存存储器32更低功耗的小存储器构成,但是该存储器与缓存存储器32相比,更难进行高速访问。此外,缓冲存储器31在主存储器33中存储和保存用于宏块处理引擎11A到11C中的帧内预测的当前帧的图像数据、用于运动补偿的参考帧的图像数据和从预处理部分12输入的将被处理的图像数据。虽然宏块处理引擎11A到11C在主中央处理单元的控制下处理一个宏块,但是缓冲存储器加载随后将被宏块处理引擎11A到11C处理的多个宏块以及参考宏块的图像数据并将数据保存在缓存存储器32中。当在相应宏块处理引擎11A到11C的处理中完成的图像数据被存储在主存储器33中时,参考宏块的图像数据的紧接前一宏块的图像数据被一起存储在缓存存储器32中。
此外,如图5所示,缓冲存储器31在水平方向和垂直方向上设置二维地址(X,Y),这些二维地址(X,Y)参照各个宏块的图像数据的光栅扫描开始位置来标识各个宏块的位置,并将当前帧的图像数据和被预处理部分12处理的图像数据以宏块为单位保存在缓存存储器32中。在这点上,缓冲存储器31利用主存储器33中的存储空间中的一维地址来存储各个宏块的图像数据。因此,当从主存储器33加载图像数据并将数据存储在缓存存储器32中时,缓冲存储器31对将被存储在缓存存储器32中的图像数据所属宏块的二维地址进行地址转换以转换成主存储器33的一维地址,并从主存储器33加载图像数据。
在访问缓冲存储器31的方法中,如图6所示,与图4相比,二维地址也可被应用到主存储器33的地址管理,并且在从主存储器33向缓存存储器32加载数据时的地址转换过程可被省略。此外,如图7所示,与图4相比,缓存存储器32的地址管理可以利用一维地址来执行,并且在从主存储器33向缓存存储器32加载数据时的地址转换过程可被省略。注意,在此情况下,当缓冲存储器31被访问时,将二维地址转换成一维地址的地址转换处理是必需的。此外,如图8所示,与图4相比,在缓存存储器32处可以利用二维地址来执行地址管理,并且在主存储器33处可以利用一维地址来执行地址管理。
图1是用于说明这些宏块处理引擎11A到11C的宏块处理序列的示意图。宏块处理引擎11A到11C在主中央处理单元(未示出)的控制下以宏块为单位顺序处理图像数据。这里,主中央处理单元从光栅扫描开始端一侧开始顺序并循环分配构成一帧的条带到各个宏块处理引擎11A到11C。因此,在图1所示示例中,在垂直方向上的第一条带SL1被分配到第一宏块处理引擎11A,并且随后的第二条带SL2被分配到随后的第二宏块处理引擎11B。此外,随后的第三条带SL3被分配到随后的第三宏块处理引擎11C,并且随后的第四条带SL4被分配到第一宏块处理引擎11A。
各个宏块处理引擎11A到11C同步地按光栅扫描的顺序顺序处理已经分配到该引擎的多个条带的宏块。此外,各个宏块处理引擎11A到11C按照相对于宏块处理引擎11A到11C对紧接着的前一条带的处理被延迟预定数目个宏块的定时来处理各个条带,从而使得在对各个宏块的处理开始时,对将被处理的宏块的参考宏块的处理已经完成,并且正在处理的宏块所参考的图像数据已被存储在缓冲存储器31中。
就是说,如图9所示,在如上参考图43所述的MPEG-1、2的帧内预测中,由于参考宏块仅仅是在同一条带中位于扫描开始端一侧的紧接前一相邻宏块,因此当各个条带被各个宏块处理引擎11A到11C独立处理时,无论将被处理的条带是哪个,都能够仅仅通过在光栅扫描方向上顺序处理宏块来参考当前帧的经编码的图像数据来执行宏块的编码处理。因此,在MPEG-1、2中,对一帧的图像数据的编码处理可以用多个宏块处理引擎11A到11C来并行地同时执行,而无需考虑各个条带中的处理的定时。
但是,在本实施例的编码处理中,图像数据是根据H.264/AVC的方法被编码的。在H.264/AVC的帧内预测中,如以下参考图46所述,不仅处于同一条带的扫描开始端一侧的相邻宏块(X-1,Y)是宏块(X,Y)的参考宏块,而且紧接着的前一条带中的相邻宏块(X,Y-1)、(X-1,Y-1)和(X+1,Y-1)也是宏块(X,Y)的参考宏块。因此,当像在MPEG-1、2情况下一样在不考虑对先前和随后条带的处理的情况下利用多个宏块处理引擎11A到11C并行地同时执行对各个条带的宏块的处理时,各个宏块处理引擎11A到11C将具有等待时间,用于等待紧接着的前一条带中的参考宏块的处理完成。因此,在此情况下,可能无法有效地高速处理宏块。
为了消除等待时间,必须使得在一个条带的处理开始之前,对紧接着的前一条带中的参考宏块的处理已经完成。
这里,在H.264/AVC的帧内预测中,由于紧接着的前一条带中的参考宏块是正上方宏块(X,Y-1)和正上方宏块(X,Y-1)的前一和后一宏块(X-1,Y-1)和(X+1,Y-1),因此如果在紧接着的前一条带中,从光栅扫描开始端一侧开始的两个或更多个宏块已被处理,则可以开始对后一条带进行处理。
在该实施例中,各个宏块处理引擎11A到11C同步地按光栅扫描的顺序处理分配到各个引擎的多个条带的宏块,从而,相对于在紧接着的前一条带中的宏块处理引擎11A到11C的处理延迟预定数目个宏块的定时开始对各个条带的处理,并且并行地同时执行对图像数据的编码处理。
此外,在该实施例中,后一条带的处理开始点是相对于紧接着的前一条带的处理来设置的,从而使得在紧接着的前一条带的处理中的宏块的参考宏块与在后一条带的处理中的宏块的参考宏块可以部分重叠,因此,将被参考的宏块的处理结果的数目被尽可能地设置为最小。
更具体而言,作为连续条带中的处理对象的宏块的位置关系被设置为使得每一条带中正在处理的宏块的水平位置可以在这样的位置上,即该位置在扫描开始端一侧相对于在紧接着的前一条带中正在处理的宏块之间相距一个宏块,并且各个条带的宏块被顺序处理。因此,在图1的示例中,作为箭头所示参考关系,在第一条带中,从左端起第五宏块的处理结果被同一条带和后一条带所参考,并且在后一条带中,从左端起第三宏块的处理结果被同一条带和后一条带所参考。
因此,各个宏块处理引擎11A到11C按图10所示序列顺序处理宏块。就是说,在宏块处理引擎11A到11C中,第一宏块处理引擎11A开始第一条带的处理并且处理宏块(0,0)。此外,顺序地,第一宏块处理引擎11A参考宏块(0,0)的处理结果处理后一宏块(1,0)。
当后一宏块(1,0)的处理完成时,在后一条带中,第二宏块处理引擎11B开始处理,这是因为在紧接着的前一条带中,在光栅扫描开始端一侧的两个宏块的处理已经完成。就是说,第一和第二宏块处理引擎11A和11B分别顺序处理宏块(2,0)和(0,1)。此外,第一和第二宏块处理引擎11A和11B分别顺序处理宏块(3,0)和(1,1)。
这里,当宏块(1,1)的处理完成时,在后一条带中,第三宏块处理引擎11C开始处理,这是因为在紧接着的前一条带中,在光栅扫描开始端一侧的两个宏块的处理已经完成。就是说,第一、第二和第三宏块处理引擎11A、11B和11C分别顺序处理宏块(4,0)、(2,1)和(0,2)。此外,第一、第二和第三宏块处理引擎11A、11B和11C分别顺序处理宏块(5,0)、(3,1)和(1,2)。
因此,假设宏块处理引擎11A到11C并行地同时处理宏块,缓冲存储器31将当前帧Fn的经解码的图像数据和从预处理部分12输入的将被处理的图像数据存储在主存储器33中,并且根据宏块处理引擎11A到11C的将被处理的宏块,从主存储器33顺序加载将被处理的宏块的图像数据和参考宏块的当前帧Fn的图像数据到缓存存储器32。
就是说,在图7的示例中,在第一宏块处理引擎11A处理第一宏块(0,0)的情况下,缓冲存储器在缓存存储器32中预先加载和保存从预处理部分12输入的宏块(0,0)的相应图像数据。此外,在第一宏块处理引擎11A处理后一宏块(1,0)的情况下,缓冲存储器在缓存存储器32中预先加载和保存从预处理部分12输入的宏块(1,0)的相应图像数据以及先前刚被处理的宏块(0,0)的当前帧Fn的图像数据。
在第二宏块处理引擎11B随后开始处理的情况下,缓冲存储器在缓存存储器32中预先加载和保存将被第一和第二宏块处理引擎11A和11B处理的宏块(2,0)和(0,1)的图像数据以及参考宏块(0,0)和(1,0)的当前帧Fn的图像数据。此外,缓冲存储器随后在缓存存储器32中加载和保存将被第一和第二宏块处理引擎11A和11B处理的宏块(3,0)和(1,1)以及参考宏块(0,0)、(1,0)、(2,0)和(0,1)的当前帧Fn的图像数据。缓冲存储器从缓存存储器32中丢弃在随后宏块的处理中不再需要被参考的数据。
缓存存储器32被配置为具有适合于以上图1所述宏块处理引擎11A到11C的处理的最小必需存储容量。这里,如图11A到11C所述,当三个宏块处理引擎11A到11C分别处理宏块时,各个宏块处理引擎11A到11C分别利用最多四个参考宏块之一来处理宏块(图11A)。因此,如图11B所示,如果简单地计算,缓存存储器32所需的最小容量M是这样获得的(一个宏块的图像数据量)×(将被处理的宏块数目(1)+参考宏块的最大数目(4))×(宏块处理引擎11A到11C的数目)。但是,在该实施例中,参考宏块被设置为在正在处理的宏块和紧接着的前一宏块之间有重叠,从而,通过容量M减去对应于重叠的宏块数目的容量N所获得的容量(M-N)是缓存存储器32所需的最小值。
因此,缓存存储器32的容量被设置为最小必需容量(M-N),并且与参考宏块被设置为在将被处理的条带和紧接着的前一条带之间没有重叠的情况相比,容量有所减小。
图12是示出与图2相对照,被应用到本发明实施例1的视频设备的解码器的框图。解码器40是通过用用于解码器的程序替代将被构成以上参考图2所述的编码器10的多个中央处理单元执行的用于编码器的程序来配置的。解码器40对来自由图2的编码器10生成的经编码的数据流的图像数据像素进行解码。
这里,在解码器40中,用于处理宏块的宏块处理引擎(MB处理)41A到41N的功能块是分别利用各个中央处理单元来构成的。此外,在解码器40中,预处理部分(VLD)42和后处理部分(去块操作)43的功能块是利用控制这个操作的主中央处理单元构成的。
这里,预处理部分42是这样的功能块,其在利用宏块处理引擎41A到41N执行处理之前,以帧为单位预先一起处理经编码的数据流。具体而言,预处理部分42是对应于编码器10的后处理部分13的配置,并且对从后处理部分输出的经编码的数据流执行变长解码处理,并且解码出宏块处理引擎41A到41N的输入数据coef。
宏块处理引擎41A到41N是对应于编码器10的宏块处理引擎11A到11N的配置,并且是可并行处理的功能块,其以宏块为单位各自处理预处理部分42的输出数据coef并输出图像数据像素。
就是说,宏块处理引擎41A到41N以来自缓冲存储器31的宏块为单元将预处理部分42的输出数据coef输入到逆量化电路(Q-1)51。这里,逆量化电路51按在经编码的数据流中设置的量化级别对预处理部分42的输出数据coef执行逆量化处理,并将数据输入到逆离散余弦变换电路52。逆离散余弦变换电路(IDCT)52对逆量化电路51的输出数据执行逆离散余弦变换处理。加法电路53将由逆帧内预测电路54或运动补偿电路55生成的逆预测值与解码后的差值数据相加并解码出图像数据像素。
逆帧内预测电路54利用加法电路53解码出的当前帧Fn的图像数据像素输出帧内预测的逆预测值。运动补偿电路55经由缓冲存储器31输入加法电路53解码出的图像数据像素,作为参考帧Fn-1的图像数据,并利用图像数据输出逆帧间预测的预测值。
后处理部分43对来自宏块处理引擎41A到41N的输出数据像素执行块滤波处理,并消除块失真。此外,该部分输出已经从中消除了块失真的图像数据像素,并将数据作为参考帧存储在缓冲存储器31中。
图13是示出各个宏块处理引擎41A到41N的处理程序的流程图。各个宏块处理引擎41A到41N在主中央处理单元的控制下执行图13所示的处理程序。
就是说,当各个宏块处理引擎41A到41N启动该处理程序时,引擎从步骤SP21移动到步骤SP22,并且基于从预处理部分42通知的宏块类型来判断是逆帧间预测还是逆帧内预测。这里,在逆帧间预测的情况下,宏块处理引擎41A到41N从步骤SP22移动到步骤SP23,并且利用运动补偿电路55计算逆预测值,而在逆帧内预测的情况下,它们从步骤SP22移动到步骤SP24,并且利用逆帧内预测电路54计算逆预测值。
随后,宏块处理引擎41A到41N在步骤SP25处对从预处理部分42输入的经编码的数据流执行逆量化处理,然后在后一步骤SP26处执行逆离散余弦变换处理。此外,在后一步骤SP27处,引擎将逆预测值与逆离散余弦变换处理的结果相加并解码出原始图像数据像素。宏块处理引擎41A到41N将解码出的图像数据输出到后处理部分43,并且在后一步骤SP28处判断是否存在将被处理的另一宏块。这里,当存在将被处理的另一宏块时,宏块处理引擎41A到41N从步骤SP28返回步骤SP22并开始对随后宏块的处理。相反,当不存在将被处理的其他宏块时,宏块处理引擎41A到41N从步骤SP28移动到步骤SP29并结束处理程序。
与编码器10的宏块处理引擎11A到11C的情况一样,宏块处理引擎41A到41N按相对于紧接着的前一条带被延迟的定时开始每一条带的处理,从而使得每一条带中正在处理的宏块相对于紧接着的前一条带中正在处理的宏块在扫描开始端一侧彼此间相距一个宏块,并且使得正在处理的条带和紧接着的前一条带之间参考宏块部分重叠,从而,并行地同时处理连续条带。
此外,与编码器10的情况一样,缓冲存储器31缓存将被处理的宏块的图像数据和来自存储器33的各个宏块处理引擎41A到41N的参考宏块,并将数据保存在缓存存储器32中,并且当被各个宏块处理引擎41A到41N访问时,输出保存在缓存存储器32中的图像数据。
(2)实施例的操作在上述配置中,在实施例的视频设备中,经编码的数据流是通过利用例如编码器10(图2)编码从调谐器或光盘设备输出的图像数据像素而生成的,并且经编码的数据流被记录在记录介质中或被输出到传输通道。在相反路径上,图像数据像素是通过利用解码器40(图12)解码从记录介质再现的经编码的数据流或从传输通道输入的经编码的数据流而生成的,并且图像数据像素被输出到监视器设备等等。
在该视频设备中,编码器10和解码器40是通过加载对应于具有多个中央处理单元的所谓的多核处理器的程序来形成的。此外,利用该程序,编码器10和解码器40被形成为用于在预处理、对各个宏块的处理以及后处理中对图像数据像素和经编码的数据流执行流水线处理。
就是说,在编码器10(图2)中,预处理部分12对顺序输入的图像数据像素执行预处理,随后的多个宏块处理引擎11A到11N生成差值数据并对数据执行正交变换处理和量化处理,并且随后的后处理部分13将数据转换成经编码的数据流(图2)。此外,在解码器40(图12)中,预处理部分42对经编码的数据流执行变长编码处理,随后的宏块处理引擎41A到41N执行逆量化处理、逆正交变换处理等等以将数据转换成图像数据像素,并且随后的后处理部分43对数据执行滤波处理(图12)。
通过预处理、对各个宏块的处理以及后处理中的流水线处理,编码器10和解码器40比那些利用一个算术处理设备顺序处理图像数据的情况更高速地执行编码处理和解码处理。
但是,由于在某些处理中存在等待时间,因此这些处理的简单流水线处理浪费功率。因此,在编码器10和解码器40中,宏块处理引擎11A到11N和41A到41N被分配给相对于其他宏块其流水线处理具有最重处理负载的各个宏块,并且多个宏块处理引擎11A到11N和41A到41N并行地顺序且同时处理宏块(图4和5)。
此外,由于临时保存图像数据的缓冲存储器31是利用缓存存储器32和主存储器33来可缓存地配置的并且多个宏块处理引擎11A到11N和41A到41N缓存处理所需的图像数据,因此处理速度被进一步提高(图4和5)。
但是,在利用宏块处理引擎11A到11N和41A到41N的处理中,各个宏块是通过参考已经在其上完成了编码和解码处理的参考宏块来处理的,并且参考宏块是与将被处理的宏块在同一条带中的紧接前面的宏块。因此,在编码器10和解码器40中,作为处理对象的条带被从光栅扫描的开始端一侧起顺序且循环地分配给各个宏块处理引擎11A到11N和41A到41N,并且各个宏块处理引擎11A到11N和41A到41N分别顺序处理作为处理对象的条带的宏块。
但是,此外,在利用宏块处理引擎11A到11N和41A到41N的处理中,参考宏块还存在于紧接着的前一条带中。因此,如果处理是通过简单地将各个条带分别分配给多个宏块处理引擎11A到11N和41A到41N来执行的,则与MPEG-1、2(图9)的情况一样,在多个宏块处理引擎11A到11N和41A到41N中存在等待时间,用于等待紧接着的前一条带中的参考宏块的处理完成,并且数据处理难以高速执行。
因此,在编码器10和解码器40中,当作为处理对象的条带的各个宏块被处理时,各个条带的处理开始的定时被设置为相对于紧接着的前一条带有所延迟,以使得存在于紧接着的前一条带中的相应参考宏块的处理可以完成。因此,多个宏块处理引擎11A到11N和41A到41N可以并行地同时处理各个宏块(图1)。
此外,在使用缓冲存储器31的缓存操作中,各个宏块处理引擎11A到11N和41A到41N的将被处理的宏块的图像数据以及参考宏块的图像数据被设置为处理对象,并且在防止缓存存储器32的容量增大的同时提高了处理速度(图10)。
但是,当将被处理的宏块的图像数据和参考宏块的图像数据被简单地保存和缓存在缓存存储器32中时,对应于以下数字的容量是缓存存储器32所必需的,即该数字是这样获得的用宏块处理引擎11A到11N和41A到41N的数目乘以宏块的数目(1)和参考宏块的数目之和(图11A和11B)。
因此,在编码器10和解码器40中,宏块被设置为使得正在处理的宏块在紧接着的前一条带中的部分参考宏块与正在处理的宏块在后一条带中的部分参考宏块可以重叠,更具体而言,作为处理对象的条带中正在处理的宏块在水平方向上相对于紧接着的前一条带中正在处理的宏块,在光栅扫描开始端其间相距一个宏块,从而各个条带中的宏块被处理(图1)。
因此,在编码器10和解码器40中,与将被处理的宏块的图像数据和参考宏块的图像数据被简单地保存和缓存在缓存存储器32中的情况相比,缓存存储器32的容量可被减小像重叠的参考宏块那么多,功耗可被减小,并且整体形状可被制造得更小。
(3)实施例的效果根据上述配置,条带被顺序且循环分配给多个宏块处理引擎,并且编码处理和解码处理是由多个算术处理设备并行地同时执行的,并且各个条带的处理开始的定时被设置为使得正在处理的宏块在每一条带中的参考宏块与该正在处理的宏块在紧接着的前一条带中的参考宏块可以部分重叠。因此,在通过利用多个算术处理设备并行地同时处理图像数据来执行编码处理和解码处理的配置中,缓存存储器的容量可被减小。因此,整体功耗可被减小,并且配置可被简化,尺寸可被减小。
此外,由于缓存存储器的容量被设置为对应于如下数字的容量,因此缓存存储器的容量可被设置为所需的最小值,所述数字是这样获得的从作为将被一个算术处理设备处理的宏块的数目的值“1”与最大参考宏块的数目之和与算术处理设备的数目相乘的乘积值中减去重叠的参考宏块的数目。
实施例2图14是对照图4示出本发明实施例2的视频设备中的缓冲存储器的配置的示意图。在该实施例中,针对存储在缓存存储器32中的各个宏块的数据设置有共享标志,并且多个将被处理的宏块之间重叠的参考宏块是利用共享标志来标识的。此外,已经对其设置了共享标志的参考宏块调整来自宏块处理引擎11A到11C和41A到41C的冲突访问。
标志的设置可以针对宏块处理引擎11A到11C和41A到41C米执行,并且可以利用用于分开管理标志的调度器来执行。除了关于标志的配置之外,本实施例的编码器和解码器具有与实施例1相同的配置。
通过像在本实施例中一样设置标志并且控制来自多个算术处理设备的访问,可以获得与实施例1相同的效果。
实施例3图15和16A到16C是对照图1和11A到11C用于说明本发明实施例3的视频设备中的宏块处理的示意图。在本实施例中,在实施例1中描述的后处理部分13是利用多个用于后处理的宏块处理引擎43A、43B和43C来配置的。除了利用多个用于后处理的宏块处理引擎43A、43B和43C所配置的后处理部分13之外,本实施例的编码器和解码器具有与实施例1的编码器和解码器相同的配置。
这里,像在实施例1中宏块处理引擎11A到11N和41A到41N的情况一样,条带被顺序且循环分配给用于后处理的各个宏块处理引擎43A、43B和43C,并且分别分配的多个条带是按光栅扫描的顺序来顺序处理的。此外,引擎分别利用缓存存储器执行去块滤波处理。此外,在各个条带中,扫描开始的定时被设置为使得紧接着的前一条带中的参考宏块与正在处理的宏块的参考宏块可以部分重叠。
这里,在H.264/AVC的去块滤波处理中,如参考图48所述,同一条带的在扫描开始端一侧的相邻宏块(X-1,Y)和在紧接着的前一条带中的正上方的相邻宏块(X,Y-1)被设置为宏块(X,Y)的参考宏块,并且宏块(X,Y)是通过参考宏块(X,Y-1)或(X-1,Y)的处理结果来处理的。
因此,在本实施例中,在每一条带中正在处理的宏块被设置为这样的宏块,该宏块是在水平方向上相对于紧接着的前一条带中正在处理的宏块在光栅扫描开始端一侧的相邻宏块。因此,在本实施例中,在每个宏块中,正上方的参考宏块与紧接着的前一条带中的参考宏块重叠,并且多个算术处理部分在缓存存储器容量被减小了重叠的参考宏块的情况下并行地同时处理宏块。
根据本实施例,由于多个算术处理设备在后处理的滤波处理中同样并行地同时执行处理,并且正在处理的宏块在每一条带中的参考宏块被设置为与该正在处理的宏块在紧接着的前一条带中的参考宏块部分重叠,因此缓存存储器的容量可被减小,并且图像数据可被更高速处理。
实施例4图17和18A到18C是对照图1和11A到11C用于说明本发明实施例4的视频设备中的宏块处理的示意图。在本实施例中,图像数据是按MPEG-4被编码和解码的。除了与格式相关的配置之外,本实施例的编码器和解码器具有与实施例1的编码器和解码器相同的配置。
这里,在MPEG-4的帧内预测中,如参考图44所述,同一条带中在扫描开始端一侧的相邻宏块(X-1,Y)、紧接着的前一条带中的正上方相邻宏块(X,Y-1)和在包含该正上方相邻宏块(X,Y-1)的条带的扫描开始端一侧的相邻宏块(X-1,Y-1)被设置为宏块(X,Y)的参考宏块。
因此,在本实施例中,像在实施例1中宏块处理引擎11A到11N和41A到41N的情况一样,条带被顺序且循环分配给各个宏块处理引擎,并且分别分配的多个条带按光栅扫描的顺序被顺序处理。此外,引擎分别利用缓存存储器处理宏块,并且在各个条带中,扫描开始的定时被设置为使得紧接着的前一条带中的参考宏块与正在处理的宏块的参考宏块可以部分重叠。
更具体而言,在每一条带中正在处理的宏块被设置为这样的宏块,该宏块是在水平方向上相对于紧接着的前一条带中正在处理的宏块在光栅扫描开始端一侧的相邻宏块。因此,在每个宏块中,正上方的参考宏块与紧接着的前一条带中的参考宏块重叠,并且多个算术处理部分在缓存存储器容量被减小了重叠的参考宏块的情况下并行地同时处理宏块。
根据本实施例,当本实施例被应用到MPEG-4的处理时,可以获得与实施例1相同的效果。
实施例5图19和20A到20C是对照图1和11A到11C用于说明本发明实施例5的视频设备中的宏块处理的示意图。在实施例5中,预处理部分12是在实施例4的MPEG-4编码器和解码器中用多个用于预处理的宏块处理引擎12A、12B和12C来配置的。除了预处理部分12是利用多个用于预处理的宏块处理引擎12A、12B和12C来配置的之外,本实施例的编码器和解码器具有与实施例4的编码器和解码器相同的配置。
这里,像宏块处理引擎11A到11N和41A到41N的情况一样,条带被顺序且循环分配给各个用于预处理的宏块处理引擎12A、12B和12C,并且分别分配的多个条带是按光栅扫描的顺序来顺序处理的。此外,引擎分别利用缓存存储器执行运动向量预测的处理。此外,扫描开始的定时被设置为使得紧接着的前一条带中的参考宏块与正在处理的宏块的参考宏块可以部分重叠。
这里,在MPEG-4的运动向量预测处理中,如参考图45所述,在同一条带的扫描开始端一侧的相邻宏块(X-1,Y)、紧接着的前一条带中的正上方相邻宏块(X,Y-1)和在包含该正上方相邻宏块(X,Y-1)的条带的扫描终止端一侧的相邻宏块(X+1,Y-1)被设置为宏块(X,Y)的参考宏块,并且宏块(X,Y)的运动向量是通过参考宏块(X-1,Y)、(X,Y-1)或(X+1,Y-1)的运动向量来预测的。
因此,在本实施例中,用于预处理的各个宏块处理引擎被设置为使得像在实施例1中的宏块处理引擎11A到11N和41A到41N的情况一样,每一条带中正在处理的宏块在水平方向上相对于紧接着的前一条带中正在处理的宏块在光栅扫描开始端一侧其间相距一个宏块。因此,在本实施例中,在每个宏块中,跟在正上方的参考宏块后面的参考宏块与在紧接着的前一条带中的参考宏块重叠,并且多个算术处理部分在缓存存储器容量被减小了重叠的参考宏块的情况下并行地同时执行运动向量预测处理。
根据本实施例,由于多个算术处理设备在预处理的运动向量预测中同样并行地同时执行处理,并且每一条带中正在处理的宏块的参考宏块被设置为与该正在处理的宏块在紧接着的前一条带中的参考宏块部分重叠,因此可以减小缓存存储器的容量,并且可以更高速地处理图像数据。
实施例6图21是对照图4示出本发明实施例6的编码器的主要部分的框图。在本实施例中,提供了两个由多核处理器独立配置的编码器系统。此外,如参考实施例1所述,每个编码器具有预处理部分12、多个宏块处理引擎11A到11C以及后处理部分13。在本实施例中,缓冲存储器31被两个系统共享,并且两个系统并行地同时生成具有不同比特率的经编码数据。在图21中,第一系统的宏块处理引擎用符号11AA到11AC示出,而第二系统的宏块处理引擎用符号11BA到11BC示出。
这里,如图22所述,对照图5,缓冲存储器31通过利用三维地址(X,Y,Z)的地址管理来管理各个宏块的图像数据,其中所述三维地址(X,Y,Z)是通过将用于标识执行处理的系统的一维地址添加到参考实施例1所描述的二维地址(X,Y)而形成的。因此,在本实施例中,当主存储器33被访问时,三维地址(X,Y,Z)被地址转换成一维地址。
如图23到26所示,各个系统的宏块处理引擎11AA到11AC以及11BA到11BC分别并行地同时处理已向其分配的多个条带,从而在各个系统中,像在以上参考实施例1所述的各个宏块处理引擎11A到11C的情况一样,在每一条带中正在处理的宏块的参考宏块与该正在处理的宏块在紧接着的前一条带中的参考宏块可以部分重叠。此外,在各个系统的预处理部分和后处理部分中,像在以上参考实施例1所述的各个宏块处理引擎11A到11C的情况一样,图像数据是响应于宏块处理引擎11AA到11AC以及11BA到11BC的处理而被顺序处理的。
在本实施例中,当本发明被应用到利用多个系统执行处理的情况时,可以获得与实施例1相同的效果。
实施例7图27是对照图21示出本发明实施例7的编码器和解码器的主要部分的框图。在本实施例中,编码器和解码器分别是利用独立的多核处理器来配置的。这里,像参考实施例1所描述的那样,编码器具有预处理部分12、多个宏块处理引擎11A到11C和后处理部分13。像参考实施例1所描述的那样,解码器具有预处理部分42、多个宏块处理引擎41A到41C和后处理部分43,并且后处理部分43由多个用于后处理的宏块处理引擎43A到43C构成。在本实施例中,缓冲存储器31被编码器的宏块处理引擎11A到11C和解码器的用于后处理的宏块处理引擎43A到43C共享,并且H.264/AVC的经编码的数据被解码,并且分开输入的图像数据按H.264/AVC被编码。
如图28到31所示,对照图23到26,宏块处理引擎11A到11C并行地同时处理已经向其分配的多个条带,从而如上所述,在每一条带中正在处理的宏块的参考宏块与该正在处理的宏块在紧接着的前一条带中的参考宏块可以部分重叠。此外,用于后处理的宏块处理引擎43A到43C也并行地同时处理已经向其分配的多个条带,从而如上所述,在每一条带中正在处理的宏块的参考宏块与该正在处理的宏块在紧接着的前一条带中的参考宏块可以部分重叠。
在本实施例中,当本发明被应用到利用多个编码器和解码器系统来执行处理的情况时,可以获得与实施例1相同的效果。
实施例8在本实施例中,提供了两个由多核处理器独立配置的编码器系统。此外,如参考实施例1所述,每个编码器具有预处理部分12、多个宏块处理引擎11A到11C以及后处理部分13。此外,预处理部分12由多个用于预处理的宏块处理引擎12AA到12AC和12BA到12BC构成。在本实施例中,缓冲存储器31被用于预处理的宏块处理引擎12AA到12AC和12BA到12BC的两个系统共享,并且在H.264/AVC的预处理中的运动向量预测的处理被执行,并且两个系统输出经编码的数据。
图32和33是对照图28到31用于说明用于预处理的宏块处理引擎12AA到12AC和12BA到12BC的两个系统的操作的示意图。在本实施例中,各个系统的用于预处理的宏块处理引擎12AA到12AC和12BA到12BC分别并行地同时处理已经向其分配的多个条带,从而在各个系统内,如上所述,在每一条带中正在处理的宏块的参考宏块与该正在处理的宏块在紧接着的前一条带中的参考宏块可以部分重叠。
根据本实施例,当本发明被应用到利用两个编码器系统的运动向量预测时,可以获得与实施例1相同的效果。
实施例9图34是对照图21示出本发明实施例9的视频设备中的缓冲存储器的配置的示意图。在本实施例中,如以上参考图14所述,对照图4,为存储在缓存存储器32中的各个宏块的数据设置了共享标志,并且在正在处理的多个宏块之间重叠的参考宏块用标志标识出。此外,来自多个宏块处理引擎的访问是参考标志来调整的。
当像该实施例一样利用多个系统执行处理时,可以通过控制来自多个算术处理设备的访问来获得与实施例1相同的效果。
实施例10
在本实施例中,提供了用多核处理器独立配置的编码器和解码器。这里,如参考实施例1所述,编码器具有预处理部分12、多个宏块处理引擎11A到11C以及后处理部分13。此外,预处理部分12由多个用于预处理的宏块处理引擎12A到12C构成。像参考实施例1所描述的那样,解码器具有预处理部分42、多个宏块处理引擎41A到41C和后处理部分43,并且后处理部分43由多个用于后处理的宏块处理引擎43A到43C构成。在本实施例中,缓冲存储器31被编码器的用于预处理的宏块处理引擎12A到12C和解码器的用于后处理的宏块处理引擎43A到43C共享,并且H.264/AVC的经编码的数据被解码出,并且解码出的图像数据按MPEG-4被编码。
此外,在这些编码器和解码器中,用于预处理的宏块处理引擎12A到12C和用于后处理的宏块处理引擎43A到43C按针对各个宏块处理分别设置的定时来并行地同时处理所负责的多个条带,从而,像在上述实施例中的情况一样,在每一条带中正在处理的宏块的参考宏块与该正在处理的宏块在紧接着的前一条带中的参考宏块可以部分重叠。
此外,在本实施例中,如图35和36所示,编码器和解码器被同步操作,并且解码出的处理结果被保存在缓存存储器32中。保存在缓存存储器32中的解码器的处理结果在它们被保存在缓存存储器32中之后的用符号A、B、C…所示的宏块处理周期中被处理。
在本实施例中,由于在缓冲存储器中使用缓存存储器将解码出的图像数据输入到编码器,因此整体存储容量被进一步减小。
实施例11图37是对照图21本发明实施例11的编码器和解码器的主要部分的框图。这里,如参考实施例1所述,编码器具有预处理部分12、多个宏块处理引擎11A到11C以及后处理部分13。此外,预处理部分12由多个用于运动向量检测的宏块处理引擎12AA到12AC以及多个用于运动向量预测的宏块处理引擎12BA到12BC构成,其中所述宏块处理引擎12AA到12AC分别用于检测运动向量,而宏块处理引擎12BA到12BC分别用于执行运动向量预测处理。像参考实施例1所描述的那样,解码器具有预处理部分42、多个宏块处理引擎41A到41C和后处理部分43,并且后处理部分43由多个用于后处理的宏块处理引擎43A到43C构成。在本实施例中,缓冲存储器31被编码器的宏块处理引擎12AA到12AC和12BA到12BC以及解码器的用于后处理的宏块处理引擎43A到43C共享,并且H.264/AVC的经编码的数据被解码出,并且解码出的图像数据按MPEG-4被编码。
此外,在这些编码器和解码器中,用于运动向量检测的宏块处理引擎12AA到12AC、用于运动向量预测的宏块处理引擎12BA到12BC和用于后处理的宏块处理引擎43A到43C按针对各个宏块处理分别设置的定时来并行地同时处理所负责的多个条带,从而,像在上述实施例中的情况一样,在每一条带中正在处理的宏块的参考宏块与该正在处理的宏块在紧接着的前一条带中的参考宏块可以部分重叠。
此外,在本实施例中,如图38到40所示,编码器和解码器被同步操作,并且解码出的处理结果被保存在缓存存储器32中。保存在缓存存储器32中的解码器的处理结果在它们被保存在缓存存储器32中之后的用符号A到D所示的宏块处理周期中被传递到随后的编码处理。
在本实施例中,当本发明被应用到三个连续的解码和编码过程时,可以获得与实施例9相同的效果。
实施例12在上述实施例中,利用已经预先设置的固定功能块来编码和解码图像数据的情况被描述,但是,不局限于此,即使在功能块根据将被处理的图像数据的格式、各个处理的负载等被动态改变时,本发明也可被广泛地应用。在此情况下,需要设置各个功能块的算术处理部分的数目,以使得缓存存储器的容量可以是对应于如下宏块数目的容量,所述宏块数目是这样获得的用多个算术处理部分的数目乘以一个宏块的参考宏块的数目与值“1”之和,然后再从乘积值中减去部分重叠的参考宏块的数目。
此外,在上述实施例中,描述了利用多个算术处理设备来并行地同时执行帧内预测等处理的情况,但是,不局限于此,本发明可广泛应用到一起执行预滤波处理、后滤波处理等的情况。此外,本发明可应用于运动向量、宏块类型等的传输。
此外,在上述实施例中,描述了根据H.264/AVC对图像数据执行编码处理和解码处理的情况,但是,不局限于此,本发明可广泛应用于根据其他各种编码方法来执行编码处理和解码处理的情况。
此外,在上述实施例中,描述了利用多个中央处理单元来配置并行地同时处理图像数据的多个算术处理部分的情况,但是,不局限于此,本发明可广泛应用于利用软件等来配置并行地同时处理图像数据的多个算术处理部分的情况。在此情况下,软件程序可以通过预先安装它们而被提供,或者可以通过将它们记录在诸如光盘、磁盘和存储器卡之类的记录介质中而被提供,或者可以经由诸如因特网之类的网络来提供。
本发明可被应用到根据例如H.264/MPEG-4AVC(ITU-T Rec.H.264ISO/IEC 14496-10AVC)标准来编码和解码视频数据的情况。
本领域技术人员应该理解,取决于设计需求和其他因素,可以进行发生各种修改、组合、子组合和替换,只要它们落在所附权利要求或其等同物的范围中即可。
本发明包含与2006年4月27日递交到日本专利局的日本专利申请JP2006-122890相关的主题,该日本专利申请的全部内容通过引用被结合于此。
权利要求
1.一种图像数据处理装置,包括多个算术处理部分,它们分别以宏块为单位编码或解码图像数据;主存储器,其积累和保存用于所述多个算术处理部分的处理的数据;以及所述多个算术处理部分的缓存存储器,其保存保存在所述主存储器中的数据的一部分,其中所述图像数据的条带被顺序且循环地分别分配给所述多个算术处理部分,并且多个条带被设置为处理对象,所述多个算术处理部分处理保存在所述缓存存储器中的数据,并按照光栅扫描的顺序在对作为处理对象的所述多个条带的宏块的处理序列中并行地同时编码或解码所述图像数据,以建立每一条带的处理与紧接着的前一条带的处理之间的一致关系,并且所述一致关系是这样一种关系当前条带和紧接着的前一条带可被并行地同时处理,并且当前条带中正在处理的宏块在距紧接着的前一条带中正在处理的宏块预定数目个宏块的光栅扫描开始端一侧处,从而使得在当前条带中正在处理的宏块的参考宏块可以与该正在处理的宏块在紧接着的前一条带中的参考宏块部分重叠。
2.如权利要求1所述的图像数据处理装置,其中所述缓存存储器的容量是对应于如下宏块数目的容量,其中所述宏块数目是这样获得的用一个宏块的参考宏块的数目与值“1”的和乘以所述多个算术处理部分的数目,然后再从乘积值中减去部分重叠的参考宏块的数目。
3.如权利要求1所述的图像数据处理装置,其中所述多个算术处理部分的数目被设置为使得所述缓存存储器的容量是对应于如下宏块数目的容量,其中所述宏块数目是这样获得的用一个宏块的参考宏块的数目与值“1”的和乘以所述多个算术处理部分的数目,然后再从乘积值中减去部分重叠的参考宏块的数目。
4.如权利要求1所述的图像数据处理装置,还包括所述多个算术处理部分的处理系统的多个系统,其中所述缓存存储器被所述多个算术处理部分的所述多个系统共享。
5.一种以宏块为单位编码或解码图像数据的图像数据处理方法,包括以下步骤将数据存储在用于存储编码和解码所需数据的主存储器中;将数据存储在用于存储在所述主存储器中存储的数据的缓存存储器中;以及使用保存在所述缓存存储器中的数据来利用多个算术处理装置分别同时地执行编码或解码所述图像数据的并行处理,从而以宏块为单位并行地同时处理通过顺序且循环地分配图像数据的条带而设置的多个处理对象,其中所述同时并行处理步骤按照光栅扫描的顺序在对作为处理对象的所述多个条带的宏块的处理序列中编码或解码所述图像数据,以建立每一条带的处理与紧接着的前一条带的处理之间的一致关系,并且所述一致关系是这样一种关系当前条带和紧接着的前一条带可被并行地同时处理,并且当前条带中正在处理的宏块在距紧接着的前一条带中正在处理的宏块预定数目个宏块的光栅扫描开始端一侧处,从而使得在当前条带中正在处理的宏块的参考宏块可以与该正在处理的宏块在紧接着的前一条带中的参考宏块部分重叠。
6.一种用于图像数据处理方法的程序,所述图像数据处理方法通过算术处理装置的执行来以宏块为单位编码或解码图像数据,所述用于图像数据处理方法的程序包括以下步骤将数据存储在用于存储编码和解码所需数据的主存储器中;将数据存储在用于存储在所述主存储器中存储的数据的缓存存储器中;以及使用保存在所述缓存存储器中的数据来利用多个算术处理装置分别同时地执行编码或解码所述图像数据的并行处理,从而以宏块为单位并行地同时处理通过顺序且循环地分配图像数据的条带而设置的多个处理对象,其中所述同时并行处理步骤按照光栅扫描的顺序在对作为处理对象的所述多个条带的宏块的处理序列中编码或解码所述图像数据,以建立每一条带的处理与紧接着的前一条带的处理之间的一致关系,并且所述一致关系是这样一种关系当前条带和紧接着的前一条带可被并行地同时处理,并且当前条带中正在处理的宏块在距紧接着的前一条带中正在处理的宏块预定数目个宏块的光栅扫描开始端一侧处,从而使得在当前条带中正在处理的宏块的参考宏块可以与该正在处理的宏块在紧接着的前一条带中的参考宏块部分重叠。
7.一种记录有用于图像数据处理方法的程序的记录介质,所述图像数据处理方法通过算术处理装置的执行来以宏块为单位编码或解码图像数据,所述用于图像数据处理方法的程序包括以下步骤将数据存储在用于存储编码和解码所需数据的主存储器中;将数据存储在用于存储在所述主存储器中存储的数据的缓存存储器中;以及使用保存在所述缓存存储器中的数据来利用多个算术处理装置分别同时地执行编码或解码所述图像数据的并行处理,从而以宏块为单位并行地同时处理通过顺序且循环地分配图像数据的条带而设置的多个处理对象,其中所述同时的并行处理步骤按照光栅扫描的顺序在对作为处理对象的所述多个条带的宏块的处理序列中编码或解码所述图像数据,以建立每一条带的处理与紧接着的前一条带的处理之间的一致关系,并且所述一致关系是这样一种关系当前条带和紧接着的前一条带可被并行地同时处理,并且当前条带中正在处理的宏块在距紧接着的前一条带中正在处理的宏块预定数目个宏块的光栅扫描开始端一侧处,从而使得在当前条带中正在处理的宏块的参考宏块可以与该正在处理的宏块在紧接着的前一条带中的参考宏块部分重叠。
全文摘要
一种图像数据处理装置包括多个算术处理部分;主存储器;利缓存存储器,其中图像数据的条带被顺序且循环地分别分配给所述多个算术处理部分,并且将被处理的多个条带被设置为处理对象,并且所述多个算术处理部分并行地处理图像数据,以建立每一条带的处理与紧接着的前一条带的处理之间的一致关系,在该一致关系中,当前条带和紧接着的前一条带可被并行地同时处理,从而使得在当前条带中正在处理的宏块的参考宏块可以与该正在处理的宏块在紧接着的前一条带中的参考宏块部分重叠。
文档编号H04N7/50GK101064848SQ20071009764
公开日2007年10月31日 申请日期2007年4月27日 优先权日2006年4月27日
发明者伊东义之, 福岛哲哉, 柳田幸雄 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1