解码装置中控制片内存储器的数据并行读写的方法及装置的制作方法

文档序号:7646506阅读:253来源:国知局
专利名称:解码装置中控制片内存储器的数据并行读写的方法及装置的制作方法
技术领域
本发明涉及一种数据解码装置,尤其涉及数据解码装置的片内存 储装置中数据的读写控制方法及其装置。
背景技术
目前视频解码芯片对于基于宏块的运动补偿视频解码方案如下-由解码数据中获取当前图像或当前帧中的一个宏块(以下称 "当前块")的信息,其中包括运动矢量以及原始图像中当前块与参 考块之间的残差块数据。其中,所述运动矢量用以指示当前块与参考 帧中相应宏块的参考块之间的相对位置。-基于该运动矢量在片外存储装置的参考帧数据中找到相应的 参考块数据,并读入片内存储装置。其中,所述片外存储装置是视频 解码装置外部的存储装置,所述片内存储装置是设置在视频解码装置 内部的存储装置。-将参考块数据与残差块数据相加,即可复原出当前块的原始图 像的编码数据。然而,实际过程中,基于运动矢量计算出的参考块位置信息可能 并非是整数值。此时不能将参考块数据直接与残差块数据相加,而需 要由参考块数据利用插值计算来获取与当前块对应的预测块数据。具体的,例如当前块的象素位置为(x,y),运动矢量为(a,b),则 对应的参考块象素位置应为(x,, y,),其中,x,=x-a; y,=y-b,当x,, y, 并非整数值时,则不可能直接读取相应的象素值,只能由与之相邻的 整数位置上的象素值进行插值计算来获取,通常可有2-4个象素值 来进行插值计算,即(xl, yl ) , (xl, y2), (x2, yl), (x2, y2),其中, xl<x,<x2; yl<y,<y2。因此,在读取参考块数据时,除与当前块象素 数量对应的象素外,还需要读取周围的额外象素数据,以用于对边缘 象素进行插值计算。而以上过程中,运动补偿的计算量主要在于两个部分其一是从片外存储装置读取参考块的图像的编码数据;其二是对 读取的参考块的图像的编码数据进行插值计算。现在的视频解码装置,特别是在手持设备的视频解码装置中,片外存储装置访问速度比较慢,尤其是在现有的采用AHB架构 (Advanced High performance BUS,高性能总线)来访问SDRAM (Synchronous DRAM,同步动态随机存储器)的情况下,访问片外存 储装置产生的延迟远大于插值计算的延迟。因此,在支持手持设备的 视频解码才莫块中,MC (Motion Compensation,运动补偿)^殳计的瓶颈主 要是如何减少读取参考图像的延迟。而在现有技术中的视频解码装置中,片内存储装置只设置一个存 储器,用于存储由片外存储装置中读取的参考块的图像的编码数据, 且对片外存储装置中的数据读取与对所存储的参考块的图像的编码 数据的插值计算进行串行处理,即对片外存储装置中的参考块的图像 的编码数据的读取后才能对该部分参考块块的图像的编码数据进行 插值计算且在该次插值计算完毕后才能继续对片外存储装置中下一 参考块的读取。这种方案无疑增加了由片外存储装置读取数据的间隔和访问片 外存储装置的次数,因此必然导致插值计算延迟。具体的,对于上述片外存储装置的参考块的图像的编码数据的读 取与插值计算方案,现有技术包括以下两种实现方式第一种方式在视频解码装置中,设置一个大容量的存储器作为 片内存储装置,当一个宏块的参考块全部存储完毕后,再对保存在该 存储器中的该参考块的图像的编码数据读取以进行插值计算,其中该 片内存储装置的大小至少能够容纳 一个宏块的参考图像的数据。图1所示为现有技术读取片外存储装置中参考块的图像的编码数 据以及对该图像的编码数据进行插值计算的第一种方式的示意图。
步骤Sll中,视频解码装置计算出当前宏块的相关信息,其中所 述相关信息包括该宏块的参考块的图像的编码数据。步骤S12中,视频解码装置从片外存储装置中读取并保存该当前 宏块的参考块的图像的编码数据。步骤S13,判断当前宏块的数据是否全部读取,如果没有全部读 取,则返回步骤S12继续从片外存储装置读取并保存其余的图像的编码数据,如果读取完毕,则执行步骤S14。步骤S14中,视频解码装置对所读取的图像的编码数据进行插值 计算。步骤S15中,视频解码装置对插值计算的结果输出。 这种方式在 一 个宏块的数据读取时只需要对片外存储装置执行 一次读取操作,因而延迟较小。但是这种方式釆用的存储器的大小必须足够大以能容纳至少一 个宏块的参考块的图像的编码数据。而大容量的存储器无疑将大大增 加一见频解码芯片的面积和制造成本。第二种方式在视频解码装置中,设置一个小容量的存储器,并 且每次从片外存储装置中读取宏块中的一个分块(例如4x4块)的 参考块的图像的编码数据写入该存储器,保存完毕后对该存储器中的 数据进行插值计算。插值计算完毕后,再将下一个分块的参考块的图 像的编码数据写入该存储器,保存完毕后再进行该下一个分块的插值 计算,如此往复。由于这种方式的插值计算将一个宏块分割成多个分 块依次进行存储和插值,因此一个宏块的存储和插值计算分为多次进 行。图2所示为现有技术读取片外存储装置中图像的编码数据以及对 该图像的编码数据进行插值计算的第二种方式的示意图。步骤S21中,视频解码装置计算出当前宏块的相关信息,其中所 述相关信息包括该宏块的参考块的图像的编码数据。步骤S22中,视频解码装置从片外存储装置中读取一预定量的该 当前宏块的参考块的图像的编码数据。步骤S23,视频解码装置对所述预定量的图像的编码数据进行插
值计算。步骤S24,判断当前宏块的参考块的图像的编码数据是否全部读 取并插值计算完毕,如果没有当前宏块的参考块的图像的编码数据没有全部读取并插值计算完毕,则返回步骤S12继续从片外存储装置读取该宏块下 一预定量的图像的编码数据。步骤S25中,视频解码装置对插值计算的结果输出。 对比第一方式,这种方式减少了所需的存储器的大小,但是由于 每次读取的图像的编码数据大大减少,相同大小的宏块就需要分成多 次来读取,因此增加了访问片外存储装置的次数,增加了访问片外存 储装置产生的延迟。综上所述,现有技术的上述两种方式,对片外存储装置中的图像 的编码数据的读取并存入存储器的操作与对存储器中数据读取并进 行插值计算的操作是串行处理的。因此不论是上述第一种方式或者是 上述第二种方式,在从片外存储装置中读取数据的同时,不能进行插 值计算,而插值计算的同时,也不能对片外存储装置进行读取,增加 了运动补偿中读取和插值计算的,悉时间,从而导致了视频解码运算时 间的增长。特别是第二种方式,由于其读取次数增加,每次进行读取需要对 片外存储装置,例如SDRAM,进行包括请求仲裁、激活memory的 行、读数据、关闭等操作,因而,大大增加了读取的延迟时间。而第一种方式,由于虽然由于其对片外存储装置中当前宏块的图 像的编码数据一次读取完毕保存在解码装置内部的存储器中,但是为 了能够完整保存当前宏块的图像的编码数据,所使用的存储器必须足 够大,而大容量的存储器无疑大大增加了视频解码装置的成本。发明内容针对现有技术的解码装置特别是视频解码装置所采用的片外存 储装置中的外部数据特别是图像的编码数据的读取和对该外部数据 的解码计算的串行执行方案存在的读取延迟大和需要在解码装置内
部设置大容量的存储器的问题,本发明采用了一朴并行读取外部数据 与对已存数据进行解码运算的控制方法及其装置。根据本发明的第 一 方面,提供了 一种在数据解码装置中用于控制 将外部数据写入片内存储装置并由片内存储装置读取外部数据进行 解码运算的方法,其特征在于该方法并行地控制将从片外存储装置读 取的外部数据存入片内存储装置以及从片内存储装置读取已存数据 进行解码运算的操作。根据本发明的第二方面,提供了 一种在数据解码装置中用于控制 将外部数据写入片内存储装置并由片内存储装置读取已存数据进行 解码运算的读写控制装置,其特征在于,并行地控制从片外存储装置 读取外部数据存入所述片内存储装置以及从片.内存储装置读取已存 储的数据进行解码运算的操作。根据本发明的第三方面,提供了 一种用于控制将外部数据写入片 内存储装置并由片内存储装置读取外部数据进行解码运算的数据解 码装置,其特征在于,包括所述的读写控制装置。与现有技术相比,本发明对片外存储装置的图像的编码数据的读取 和插值计算是并行进行的,其中,对片外存储装置读取可以连续进行, 因而降低了对片外存储装置的外部数据的读取延迟,而由于解码计算与 对片外存储装置中的数据读取是并行处理的,解码计算完毕后的数据可 以被覆盖,而不必占据解码装置内部的片内存储装置的存储空间,因而 也减低了所需要的片内存储装置的大小。


通过阅读以下参照附图所作的对非限制性实施例的详细描述,本发 明的其它特征、目的和优点将会变得更明显。图1为现有技术的外部数据的读取和解码计算的第一种方式的流 程图;图2为现有技术的图像的编码数据的读取和插值计算的第二种方 式的流程图3为根据本发明一个具体实施例的釆用一个存储器作为片内存 储装置的控制并行地进行编码数据的写入片内存储装置与从片内存 储装置中读取的方法的示意图;图4为根据本发明一个具体实施例的采用一个存储器作为片内存 储装置的控制并行地进行编码数据的写入片内存储装置与从片内存 储装置中读取的方法的流程图;图5为根据本发明一个具体实施例的采用两个存储器作为片内存储装置的控制并行地进行编码数据的写入片内存储装置与从片内存储装置中读取的方法的示意图;图6为根据本发明一个具体实施例的采用多个存储器作为片内存 储装置的控制并行地进行编码数据的写入片内存储装置与从片内存 储装置中读取的方法流程图;图7a为根据本发明一个具体实施例的intel16 x 8格式的宏块划分 为两个块的示意图;图7b为根据本发明一个具体实施例的intel8x. 8格式的宏块划分 为四个块的示意图;图7c为才艮据本发明一个具体实施例的intel8 x 16才各式的宏块由两 个块划分为四个分块的示意图;图8a为根据本发明一个具体实施例的intel8 x 16格式的宏块中一 个块的相关参考块示意图;图8b为根据本发明一个具体实施例的intel8 x 16格式的宏块中另 一个块的相关参考块示意图;图8c为根据本发明一个具体实施例的intel8 x 16格式的宏块中相 邻两个分块的公共参考象素块的示意图;图9a为根据本发明一个具体实施例的一个控制并行地进行编码 数据的写入与读取的读写控制装置的结构图;图9b为根据本发明一个具体实施例的一个控制并行地进行编码 数据的写入与读取的读写控制装置的 一 个优选例的结构图;图10a为根据本发明 一个具体实施例的另 一个控制并行地进行编
码数据的写入与读取的读写控制装置的结构图;图10b为根据本发明 一个具体实施例的 一个控制并行地进行编码 数据的写入与读取的读写控制装置的另 一 个优选例的结构图。
具体实施方式
为了更好地理解本发明,下面结合本发明的具体实施例作进一步说 明,但其不限制本发明。根据本发明的第一方面,提出了一种在数据解码装置中用于控制 将外部数据从片外存储装置写入片内存储装置并由片内存储装置读 取已存数据进行解码运算的方法,其中,所述片外存储装置指设置在数据解码芯片外部的SDRAM (Synchronous DRAM,同步动态随机存 储器),闪存卡(Flash memory card),光盘和硬盘等存储装置,所述 片内存储装置指设置在数据解码芯片内部的緩存以及寄存器等存储 装置,其采用了以下两种实施方案第一种方案,采用片内存储装置只采用一个存储器,且该片内存 储装置分为已存区域和空闲区域两部分,当外部数据从片外存储装置 中读取并写入片内存储装置中空闲区域中时,同时从片内已存区域中 读取已存数据以进行解码计算。第二种方案,采用片内存储装置采用多个存储器,并将待解码的数 据分为多个分块,其中所述多个存储器可以是多个独立的存储装置,也 可以是一个存储装置划分成的多个存储区域,所述多个存储器包括空闲 存储器和已写存储器。当从片外存储装置中读取当前分块的外部数据写 入空闲存储器时,同时执行从已写存储器中读取前一分块的已存数据进 行解码计算。当前分块的数据全部写入所述空闲存储器且前一分块的已 存数据已经全部读耳又,则将所述空闲存储器作为已写存储器,将存储所 述前一分块数据的已写存储器作为空闲存储器,并执行下一分块数据的 存储与所述当前分块数据的读取以做解码计算。下面结合附图对本发明的两种方案进行具体说明。
首先,参照图3和图4对本发明的第一种方案即采用一个存储器 作为片内存储装置12方案进行说明。
首先,在步骤S41中,数据解码装置01控制并行地将由片外存 储装置11读取的外部数据写入所述存储器的空闲区域及读取所述存 储器已存区域中的已存数据,以进行解码运算,例如在基于宏块的视 频解码装置中,所述解码运算可以包括插值运算。
数据解码装置01从片外存储装置11中读取外部数据存入片内存 储装置12,同时对已经存入片内存储装置12的数据进行解码运算。
如图3所示,片内存储装置12包括已保存数据的已存区域13, 和已存区域中已存数据已被读取以做解码计算的区域14。
读写控制装置02从片外存储装置11中读取外部数据,并顺次存 入片内存储装置12中空闲部分。当外部数据从片外存储装置11中写 入片内存储装置12后,存储后的所述外部数据即为存储在所述片内 存储装置12中的已存数据。在将片外存储装置11中的外部数据写入 片内存储装置12的同时,读写控制装置02还读取片内存储装置1211 中的已存数据以做解码计算。
接着,在步骤S42中,数据解码装置控制将所述空闲区域中的写 入已存数据的部分由空闲区域中去除且合并入已存区域;参考图3,片内存储装置12包括可以写入新的外部数据的空闲 区域15和已经存在已存数据的已存区域13。具体地,所述空闲区域 15与所述已存区域13的转换方式有以下两种在第一种转换方法中,当空闲区域15写入外部数据后,该写入 数据部分的空闲区域15被并入已存区域13,写入的外部数据即成为 已存数据。
这种转换方式在外部数据的写入过程中,随着外部数据的写入, 空闲区域15减少,已存区域13增加。因此这种方法的片内存储装置 12的空闲区域的存储量足够大,例如读写控制装置01是使用在在基 于运动补偿的视频解码装置的读写控制装置时,对于每一个当前宏块 处理开始时,其片内存储装置12中的空闲区域的存储量必须大于所
要处理的宏块的图像的编码数据的最大数据量。在第二种转换方式中,当空闲区域15写入外部数据后,该写入 数据部分的空闲区域15被并入已存区域13,写入的外部数据即成为 已存数据,并且在已存区域13中有已存数据被读取后,该已存数据已被读取的部分已存区域,即图3中附图标记14所示的部分已存区域,由于其所存储的已存数据已经被读取,因此该部分的已存数据可以被覆盖,所述部分已存区域14可以并入空闲区域15。因此,在第二种转换方式中,步骤S42还可以包括以下步骤 控制将所述已存区域中的已存数据已被读取的部分由所述已存区域中去除且合并入空闲区域。该步骤可以在读取已存数据以进行解码运算的同时进行。另外,在对外部数据的存储和对已存数据的读取过程中,由于对片外存储装置11的读取速度通常较读取片内存储装置12中已存数据以进行解码运算的速度为慢,所以本发明还可以进一 步对外部数据写入片内存储装置12的过程与从片内存储装置12读取已存数据以进行解码运算的过程进行协调处理。所以优选地,步骤S41还进一步包括以下步骤:.检测所述已存区域中未被读取的已存数据量;其中,所述对片内存 储装置12中未被读取的已存数据的数据量的检测可以通过地址指针 或者地址表计算得到。当检测到所述已存区域中未被读取的已存数据量小于第 一 预定 阔值时,控制停止读取所述已存区域中的已存数据;当检测到已存区域中未被读取的已存数据量大于第二预定阈值 时,控制开始读取已存区域中的已存数据。例如,参照图3,所述检测未被读取的已存数据量是否大于第一 预定阈值操作在对所述存储在片内存储装置12中的已存数据的读取 操作前进行,所述检测未被读取的已存数据量是否小于第一预定阈值 的操作在对所述存储在片内存储装置12中的已存数据的读取操作时 进行。 并设定片内存储装置12中未被读取以做解码运算的已存数据大 于一第二预定阈值时,开始读取片内存储装置12中的已存数据以作 解码运算,而小于一第一预定阈值时,停止读取片内存储装置12中 的已存数据以作解码运算。对于使用在基于运动补偿的视频解码装置中的读写控制方法,所 述外部数据是存储在片外存储装置11中的当前宏块对应的图像的编 码数据,所述第一预定阈值可以时3 x 3块象素对应的数据量,所述第二预定阈值可以是9x9块象素对应的图像的编码数据的数据量。 由于读取片内存储装置12中的已存数据以进行解码运算的速度远大于从片外存储装置11中的读取外部数据的速度,因此,每次从片内存储装置12中读取数据进行解码运算一段时间后,片内存储装置12 中未解码运算的已存数据将小于所述第一预定阈值,当已存数据小于 所述第一预定阈值时,则停止对所述片内存储装置12中已存数据的 读取。停止读取片内存储装置12中的已存数据后,从片外存储装置 11中读取并存入片内存储装置12的已存数据的增加,当所述片内存 储装置12中未解码运算的已存数据大于所述第一预定阈值时,对所 述片内存储装置12中已存数据的读取重新启动。而与此已存数据的 间歇性读取不同,从片外存储装置11中读取外部数据写入片内存储 装置12的过程可以是连续的。上述第 一 、第二阈值可以由本领域技术人员根据具体应用情况确 定,在此不再累述。其中,对片内存储装置12中未被读取作解码运算的已存数据的 数据量的判断,在顺序存储的情况下,可以使用已存区域与已存区域 中已存数据已读取部分的指针的地址差计算得到。在非顺序存储的情况下,可以设置一个地址表,用来记录所有已 存区域的地址段信息,以及记录所有已存区域中已读取部分的已存数 据的地址段,根据地址表中所有已存区域的地址段得到已存区域的数 据量,并根据所有已存区域中已读取部分的已存数据的地址段得到已 存区域中已读取部分的已存数据的数据量,从而计算得到所述片内存
储装置12中未被读取作解码运算的已存数据的数据量。然后,在步骤S43中,数据解码装置01判断所述外部数据均已被读取,如果没有全部读取,则重复步骤S41和S42,直至所述外部 数据均已被读取,以进行解码运算。下面结合图3和图4,以intell6x 16格式的宏块数据的读取过程 为例对根据本发明的 一个具体实施例的使用在基于运动补偿的视频 解码装置中的片内存储器的读写控制方法作进一步说明。其中设置在该视频解码装置内部的片内存储装置12为一个156 x4字节的存储器。intel16 x 16格式的宏块只包含一个16x16的块,其对应的参考 块的图像的编码数据最大值为126x4字节小于156x4字节。首先,以片内存储装置12的地址0作为存储起始地址,将保存 在片外存储装置11中的当前处理的intell6x 16格式的宏块的参考块 的图像的编码数据作为外部数据存储到片内存储装置12中,直至该 宏块的参考块的图像的所有编码数据都保存完毕。在所述宏块的参考块的图像的编码数据存储的同时,开始检测所 述作为片内存储装置12的存储器中已经保存但尚未被读取以做插值 计算的已存数据的数据量,并将16x4字节作为第一预定阈值,将9 x4字节作为第二预定阈值,当该数据量大于该第一预定阈值即16 x 4字节时,开始读取存储器中的未被读取的已存数据以作解码运算, 由于对片内存储装置12中数据读取速度大于对片内存储装置12的已 存数据的读取速度,随着读取过程的进行,所述未被读取的已存数据 量逐渐减少。当该数据量小于该第二预定阔值即9x4字节时,读取 片内存储装置12中的已存数据以作解码运算的过程停止。停止后所 述未被读取的已存数据量逐渐增加,当该数据量大于第 一预定阈值 时,再次读取片内存储装置12中未被读取的已存数据。如此往复, 直至该当前intell6xl6格式的宏块的参考块的图#^的编码数据全部 被存储到片内存储装置12中,并全部被读取以做插值运算。上述第
一、第二阈值可以由本领域技术人员根据具体应用情况确定,在此不 再累述。本发明的第二种方案是采用多个存储器作为片内存储装置12的 方案,该方案中所要读取的外部数据被分为多个分块。其中设置在数据解码装置01内部的片内存储装置12包括两个或两个以上的存储器,所述两个或者两个以上地存储器可以是物理上独 立的两个或者两个以上内部存储器,也可以是也可以是一个内部存储 器划分出来的两个或两个以上存储区域。以下参照图4 图8c,以采用两个物理上独立的存储器的片内存 储装置12的解码装置中的读写控制装置为例来对多个存储器的片内 存储装置12的读取控制方法作进一步说明。具体地,所述两个存储器即第一存储器51与第二存储器52交替 地作为空闲存储器和已存存储器。其中,空闲存储器用于存储从片外 存储装置11中读取的数据,已存存储器中的数据用于被读取以进行 解码运算。在数据解码开始时如果第一存储器51与第二存储器52中都没有 存储需要进行解码运算的数据,则所述第一存储器51和所述第二存 储器52都可以用来存储数据,两者都可以作为空闲存储器。随机或 者缺省地选择第一存储器51或者第二存储器52用来存储从片外存储 装置11中读取的外部数据。而由于第一存储器51与第二存储器52 都没有写入数据,开始时不存在已写存储器,因此此时也不执行读取已写存储器中的已存数据的操作,而只执行从片外存储装置11读取 外部数据的操作。从片外存储装置11中读取第一个分块的外部数据 可以存入所述空闲存储器。当第 一分块的数据全部存入一个空闲存储 器例如第二存储器52后,所述第二存储器52则转换为已写存储器状 态,继续执行如上述参照图3和图4所述的并行读写数据的处理流程。 下面参照图5a和图5b来对第一存储器51和第二存储器52交替 作为空闲存储器和已写存储器执行并行读写操作的处理流程进行说明。图5a中,第一存储器51作为空闲存储器,第二存储器52作为 已写存储器。从片外存储装置11读取当前分块对应的外部数据写入 空闲存储器,即第一存储器51,同时读取已写存储器,即第二存储器 52中的已存数据,即存储在第二存储器52中前一分块对应的已存数 据进行解码运算。由于通常读取片内存储装置12以做解码运算的速 度远大于对片外存储装置11的读取速度,因此当第二存储器52中的 已存数据读取完毕时,将第二存储器52作为空闲存储器,对片外存 储装置11中的数据的读取可能尚未完成,即将外部数据写入第一存 储器51的操作仍在继续,所述第一存储器51仍然是空闲存储器。当 所述当前分块的数据全部存入第一存储器51后,所述第一存储器51 转为已写存储器,继续执行如图4所示的下一分块对应的外部数据写 入空闲存储器和读取已写存储器中当前分块数据的操作,如图5b所 示。图5b中,第一存储器51为已写存储器状态,第二存储器52为 空闲存储器状态。将下一分块作为当前分块,从片外存储装置11中 读取该当前分块即前述如图5a所示的操作中的下一分块对应的外部 数据写入空闲存储器即第二存储器52,并从已写存储器即第 一存储器 51中,读取当前分块的数据进行解码运算。当所述已写存储器中的当 前数据读取完毕,且所述下一分块的外部数据在空闲存储器中存储完 毕,则将第二存储器52转换为已存存储器状态,将第一存储器转换 为空闲存储器状态。随后,执行如图5a所示的操作,即从片外存储装置11中读取所 迷当前分块的下一分块的外部数据写入空闲存储器,从已写存储器中 读取所述当前分块的已存数据进行解码运算。如此往复,直至需要解 码运算的全部外部数据解码运算完毕。本领域技术人员根据以上描述,应可无需任何创造性劳动即可类 推到两个存储区域来实现本发明的方案,在此不在累述。
当片内存储装置12包括的存储器多于两个时,情况与上述2个 存储器的情况类似,将写入外部数据的存储器作为已写存储器,从未 写入数据以及写入数据但已经被读取完毕的存储器中随机或者以缺 省顺序选择一个存储器作为空闲存储器执行上述并行执行数据读写 的操作。本领域技术人员根据以上对两个存储器的方案的描述,应能 无需任何创造性劳动实现多于两个存储器的方案,在此不再累述。图6所示的流程图为根据本发明的另一种具体实施方式
即控制包括多个存储器。 、^ — ' ° ''该方法包括以下步骤首先在步骤S61中,控制将并行地由片外存储装置11中读取的 当前分块的外部数据写入所述多个存储器中的 一 空闲存储器中;以及 控制由所述多个存储器中的已写存储器中读取前一分块的已存数据, 以进行解码运算;其次在步骤S62中,当检测到所述当前分块的外部数据已完全写 入所述空闲存储器中且所述前 一 分块的已存数据已由所述已写存储 器中完全读出,则将所述已写存储器作为空闲存储器和将所述空闲存 储器作为已写存储器,然后在步骤S63中,重复上述步骤S61,直至所述参考块的所有 分块的外部数据均已被读取,以进行解码运算。另外,作为本发明的一种优化例,当空闲存储器中已存储的数据 与将要存储进该空闲存储器中的外部数据有部分重叠时,该部分重叠 的数据可以不再读取从而减少读取外部数据的时间。为实现这种功能,步骤S61还可以包括以下步骤检测在所述多个存储器之一中顺序写入的两个分块之间是否存 在重叠冗余数据。如果当检测在所述空闲存储器中前一写入的分块与当前分块之 间存在重叠冗余数据,则控制在所述空闲存储器中保留所述重叠冗余 数据而仅写入当前分块中非重叠冗余的数据。
下面结合图5a和图5b,以两个存储器的基于运动补偿的视频解 码装置中的数据读写控制装置为例对根据本发明 一 个具体实施例的采用多个存储器的片内存储装置12的在数据解码装置中用于控制将 外部数据写入片内存储装置12并由片内存储装置12读取已存数据进行解码运算的方法做进 一 步说明。该读写控制装置中设置在该视频解码装置内部的片内存储装置12的大小可以由根据宏块所划分的分块的对应的参考块的图像的编 码数据的大小确定。下面以现有16x 16的宏块的处理方法为例进行说明,以下实施 例中的所述片内存储装置12包括第一存储器51和第二存储器52,所 述第一存储器51和所述第二存储器52由一个156x4字节大小的存 储装置所划分出的两个78 x 4字节大小的存储区域构成,即所述两个 存储区域分别构成第一存储器51和第二存储器52,其中所述第一存 储器的起始地址为0,所述第二存储器的起始地址为78。由于该读写 控制装置使用在视频解码装置中,所述外部数据和所述已存数据为图 像块的数据。进一 步在所述基于运动补偿的视频解码装置的应用环境 中,所述图像块包括参考宏块。具体的,对于intell6x8类型的宏块的数据,如图7a所示,该类 型的宏块包括2个16x8的块,以每个块为一个分块。下面参照图7、 图5a、图5b来对本发明进行描述。由于intell6x8类型的宏块,其对应的参考块的数据的理论最大 值为2x 13x21Byte,但实际的操作中,为了便于整行存储,实际上 存储这些数据的最大存储量为2 x 13 x 24Byte,即156x4字节,即单 个块所需的最大存储量为78x4字节。因此,78x4字节的存储器足 够用来存储一个所述16 x 8的块对应的数据。将当前宏块的第 一个分块的对应的参考块的图像的编码数据存 储到第一存储器,其存储的起始地址为第一存储器的起始地址,即从
0地址开始存储。存储完毕后,将第二个分块对应的参考块的图像的 编码数据存储到第二存储器52中,其存储的起始地址为第二存储器52的起始地址,即从78地址开始存储。同时对存储在第一存储器51 中的第 一个分块对应的图像的编码数据进行插值运算,待第二分块的 数据存储完毕后,对存储在第二存储器52中的第二分块对应的图像 的编码数据进行插值计算。对于intel8x 8格式的宏块,如图7b所示,宏块包含4个8x8 块,且每个8 x 8块可以进一步划分为i个8x8分块,或者2个8x4或者4x8分块,又或者4个4x4分块。其中,每个分块最大的理论最大值为13xi3Byte,但在实际应用 中,为了便于整行存储,每个分块的图像的编码数据占用的最大存储 量为13xl6字节,即52x4字节。由于每个块可以进一步分为1个, 或者2个,或者4个分块,每个分块的图像的编码数据占用的最大存 储量应是小于或者等于52x4字节,因此,不论是单个分块对应的参 考块的图像的编码数据还是单个块对应的参考块图像的编码数据都 小于一个存储器的存储大小,即78x4字节。在将intel8x8格式的宏块的图像的编码数据写入片内存储装置 12并从片内存储装置12中读出该宏块已写入的分块或者块对应的参 考块的图像的编码数据以进行插值计算时,该分块或者块对应的参考 块的图像的编码数据作为该分块或者块的外部数据,在写入片内存储 装置12后,保存在该片内存储装置12的该分块或者块对应的参考块 的图像的编码数据作为该分块或者块的已存数据,由于一个分块或者 块对应的参考块的图像的编码数据需要的存储量都小于一个存储器 的存储大小,因此,即可以以分块为单位进行写入与读出,也可以以 块为单位进行写入与读出。以分块为单位进行所述intd8x8格式的宏块图像的编码数据的 写入与读取操作如下将第一个分块对应的外部数据存储到第一存储器51,其存储的起
始地址为第一存储器51的起始地址,即从地址0.开始存储。存储完 毕后,将第二个分块的外部数据存储到第二存储器52中,其存储的起始地址为第二存储器52的起始地址,即从地址78开始存储。同时 对存储在第一存储器51中的第一个分块的已存数据进行插值运算, 待第二分块的外部数据存储完毕后,对存储在第二存储器52中的第二分块的已存数据进行插值计算,并将第三分块对应的外部数据从0 地址开始存储到第一存储器51中。如此往复,直至所有分块都被插 值计算完毕。以块为单位进行所述intel8xg格式的宏块图像的编码数据的写 入与读舉4喿作如下将第一个块的外部数据存储到第一存储器51,其存储的起始地址 为第一存储器51的起始地址,即从地址0开始存储。存储完毕后, 将将第二个块对应的外部数据存储到第二存储器52中,其存储的起 始地址为第二存储器52的起始地址,即从地址78开始存储。同时对 存储在第一存储器51中的第一个块的已存数据进行插值运算,待第 二块的数据存储完毕后,对存储在第二存储器52中的第二块的已存 数据进行插值计算,并将第三块对应的已存数据从地址0开始存储到 第一存储器51中。如此往复,直至所有块的已存数据都被插值计算 完毕。其中,各块或者分块的外部数据在第一存储器51或者第二存储 器52中存储也可以不从该第一存储器51或者第二存储器52的起始 地址开始存储,只需要保证该块或者分块的外部数据都可以保存在该 第一存储器51或者第二存储器52中即可。对于intel8x 16格式的宏块,如图7c所示,该intel8 x 16格式的 宏块包括两个8xl6块,且每个块各有一个运动矢量对应。当所述8 x 16块对应的运动矢量的x和y值,都非整数时,该8xl6块做插值 运算过程中,还需要该8x 16块以外的象素点,即行列各加5个象素 作为插值运算的参考值。因此,运动矢量的x和y值非整数的8 x 16
块的相关图像的编码数据理论值为21 x 13Byte,同理,在实际使用中, 为了保持整行存储,实际需要的存储量为21 x 16Byte,即84x4字节。显然,对intel8x 16格式的宏块,如果使用上述的将第一存储器 51与第二存储器52交替地用于存储以及读取块对.应的参考块的图像 的编码数据的方法,则每个块对应的参考块的图像的编码数据所需要 的实际存储量为84x4字节,显然该值大于第一存储器51或者第二 存储器52的存储量,即78x4字节。为了解决这个问题,如图7c所 示,本发明将每个intel8 x 16宏块中的8 x 16的块进一步划分为2个 分块,具体地,该2个分块可以相同大小,确保每个分块插值运算所 需的已存数据小于第一存储器51或者第二存储器52的存储量。分别 对每个分块进行写入第一存储器51或者第二存储器52以及从第一存 储器51或者第二存储器52中读取已存的分块的已存数据以用于插值 计算。开始存储时,第一存储器51和所述第二存储器52均为空闲存 储器,将第一分块731的外部数据保存在第一存储器51中,保存完 毕后,将该第一存储器52标记为已写存储器,将第二分块742外部 数据保存在第二存储器52中,同时将第一存储器51中保存的第一分 块731已存数据进行插值计算,计算完毕后将第一存储器标记为空闲 存储器,当第二分块742外部数据保存完毕后,将第二存储器52设 定为已存存储器,将第三分块733外部数据保存在第一存储器51即 空闲存储器中,同时对已写存储器即第二存储器52中的第二分块742 已存数据以进行插值计算,计算完毕将第二存储器52标记为空闲存 储器,当第三分块733外部全部保存在第一存储器51中后,将第一 存储器51标记为已写存储器,将第四分块744外部数据保存在空闲 存储器即第二存储器52中,对已写存储器即第一存储器51中的第三 分块733已存数据以进行插值计算,当插值计算完毕,对第一存储器 51标记为空闲存储器,当第四分块744的外部数据保存完毕,将第二 存储器52标记为已写存储器,如此往复,直至所有分块的图像的编 码数据全部插值计算完毕。其中,当一个分块的运动矢量的x或者y不为整数时,其划分出
来的两个分块的参考块的象素存在重叠,如图8c所示,当分块"对应的运动矢量并非整数值,其划分出的第一分块731和第三分块733 的参考象素有部分是重叠的。当分块73对应的运动矢量并非整数值, 第一分块731插值计算所需的图像象素的编码数据是图8a中的附图 标记81所示部分的图像象素对应的编码数据,其中阴影部分为第一 分块731以外的参考象素,而第三分块733插值计算所需的图像象素 的编码数据是图8b中的附图标记82所示部分的图像象素对应的编码 数据,其中阴影部分为第三分块733以外的参考象素。由于第一分块 731与第三分块733都是由分块73划分出来,第一分块731对应的参 考块象素与第三分块733对应的参考块象素存在重叠的公共参考象素 块,即附图8c中,附图标记83所示部分。当将第一分块731的外部数据保存于第一存储器51中时,为了 节省存储器的存储量可以覆盖原先保存于第一存储器51中且已经被 插值计算的第三分块733的已存数据,但是公共参考象素块81对应 的图像的编码数据同时也是第三分块733对应的参考块的图像的编码 数据的一部分,因此在第一分块731的参考块图像的编码数据覆盖第 二分块733的参考块的图像的编码数据时,公共参考象素块81对应 的参考块的图像的编码数据可以保留,以减少重复读取所述公共参考 象素块81对应的参考块的图像的编码数据的时间。具体地,下面结合图5a、图5b、图6、图7c、图8a、图8b和图 8c,以一种8x 16格式的宏块的图像的编码数据的写入以及读取控制 方法为例进行详细描述。其中为便于描述,将各分块或者各块对应的 参考块的图像的编码数据作为该分块或者该块的外部数据,在写入片 内存储装置12后,保存在该片内存储装置12中的该分块或者该块对 应的参考块的图像的编码数据又成为该分块或者块的已存数据。本实施例中,为了便于描述,当前宏块的各分块对应的图像的编 码数据在片外存储装置11为顺序存储,且第一存储器与第二存储器 由同一片内存储装置12划分而成,其中第一存储器的地址为0~77,
第二存储器的地址为77~ 156。则第一存储器51与第二存储器52的 大小都为78x4字节,由于8x 16格式宏块的图像的编码数据的写入 以及读取控制方法是以分块为单位写入片内存储装置12以及从片内 存储装置12读取以做插值计算,因此,首先确定各分块的参考块的 图像的编码数据大小方法如下对接收到的当前宏块中块的分块的运动矢量进行判断,确定各分 块的运动矢量中的x与y值是否为整数值。根据x与y是否整数值的判断,确定每个分块划分出地2个分块 的参考块的图像的编码数据大小,以便确定需要从片外存储装置11 中需要读取的参考块图像的数据量。本实施例中,第一块73所划分出的第一分块731与第三分块733 大小相同,且由于第一分块731与第三分块733都是由第一块73划 分出来,第一块73只具有一个运动矢量,所以第一分块731与第三 分块733的参考块的图像的编码数据量相同。同理,第二块74所划 分出来的第二分块742与第四分块744的参考块的图像的编码数据量 相同。另外,根据运动矢量中x与y是否整数值的情况,可以确定第三 分块733与第一分块731有多少象素重叠以及第三分块733与第一分 块731所需要的参考块的图像的编码数据,因而也确定在进行第三分 块存储时,未与第一分块731重叠的参考块的象素的图像的编码数据 的大小,从而决定在进行第三分块存储时需要将多少图像的编码数据 写入片内存储装置12。具体地,第一块73的两个分块731与733的参考块图像象素的 情况如下当第一块73对应的运动矢量的x与y都为整数时,第一分块731 与第三分块733的参考块都是8x8的块,两者之间没有公共参考象 素块,因此第一分块731对应的参考块的图像的编码数据的数据量为 16x4字节,第三分块733对应的参考块的图像的编码数据的数据量 也是16x4字节。
当第一块73对应的运动矢量中的X为整数,y为非整数时,其 所划分出来的第一分块731与第三分块733的参考块都是13 x 8的块, 且两者之间存在公共参考象素块,第三分块733出去公共参考象素块 后为一8x8的块,因此,在存储第一分块731时,需要存储的参考 块的图像的编码数据的数据量为26x4字节,而在存储第一分块731 时,只需要存储一 8x8的参考块的图像的编码数据,即需要存储的 参考块的数据量为16x4字节。当第一块73对应的运动矢量中的x为非整数,y为整数时,第 一分块731与第三分块733的参考块都是8 x 13的参考块,但是在实 际存储中,为了存储方便,通常在存储器中保持整行存储,通常采用 8 x 16的参考块进行存储。而且由于第一分块731与第三分块733的 参考图像都位于x方向,因此第一分块731与第三分块733之间不存 在公共参考象素块,因此,在存储第一分块731时,需要存储的参考 块的图像的编码数据的数据量为32x4字节,而在存储第一分块731 时,需要存储的参考块的数据量为32x4字节。当第一块73对应的运动矢量中的x为非整数,y为非整数时, 第一分块731与第三分块733的参考块是13 x 13的块,但是在实际 存储中,为了存储方便,通常在存储器中为了保持整行存储,通常采 用13 x 16的参考块进行存储。而且第一分块731与第三分块733在x 方向没有存在重叠象素,因此不存在公共参考象素块,而只在y方向 存在公共参考象素块,因此第一分块731与第三分块733之间只在y 方向上存在公共参考象素块,因此,在存储第一分块731时,需要存 储的参考块的图像的编码数据的数据量为52x4字节,而在存储第一 分块731时,y方向上的公共参考象素块对应的图.像的编码数据不需 要再次写入存储器,而只需要存储8 x 16的参考块的图像的编码数据, 即需要存储的参考块的数据量为32 x 4字节。第二块74划分成的第二分块742与第四分块744的存储情况与 上述的第一分块731与第三分块733的情况类似,在此不再累述。 根据以上分析,将8x 16格式的宏块的各分块的参考块的图像的编码数据写入片内存储装置12的方法各有不同,具体的步骤如下步骤1 、第 一 分块7 31的外部数据存储如下在第一存储器51中,将写入地址设置为0地址,并从片外存储 装置11中读取该8 x 16宏块中第一分块73对应的参考块数据如下当第一块73的运动矢量中x与y都是整数值时,从片外存储装 置11中读取第一分块731对应的外部数据,即第一分块731对应参 考块的图像的编码数据并写入第一存储器51,即从当前宏块的第一块 73在片外存储装置11的存储起始地址起读取一个8 x 8块对应的图像 的编码数据的数据量,即16x4字节的数据存入第一存储器。当第一块73的运动矢量中x是整数,y是非整数时,从片外存 储装置11中读取第一分块731对应的参考块图像的编码数据并写入 第一存储器51,从当前宏块的第一块73在片外存储装置11的存储起 始地址起读取一个13x8块对应的图像的编码数据的数据量,即26 x4字节的数据存入第一存储器51。当第一块73的运动矢量中x是非整数,y是整数时,从片外存 储装置11中读取第一分块731对应的图像的编码数据并写入第一存 储器,从当前宏块的第一块73在片外存储装置11的存储起始地址起 读取一个8x 16块对应的图像的编码数据的数据量,即32x4字节的 数据存入第一存储器51。当第一块73的运动矢量中x与y都是整数时,从片外存储装置 11中读取第一分块731对应的图像的编码数据并写入第一存储器51, 从当前宏块的第一块73在片外存储装置11的存储起始地址起读取一 个13 x 16块对应的图像的编码数据的数据量,即52x4字节的数据 存入第一存储器51。步骤2、对第 一存储器中的第 一分块731的已存数据的读取如下 在第一分块731的图像的编码数据存储完毕后,第一存储器51 作为已写存储器,对第一分块的数据进行读取以做插值计算,其读取
的起始地址为地址0,当读取完毕时,将该第一存储器51重新作为空 闲存储器。步骤3、对第二分块742的外部数据的存储过程如下 在对已写存储器,即第一存储器51开始进行读取的同时,开始 进行将第二分块742对应的图像的编码数据写入第二存储器52,即将 写入地址设置为地址78,将第二分块742对应的图像的编码数据从 78地址起存入第二存储器52。 具体地当第二块74的运动矢量中x与y都是整数值时,从片外存储装 置11中读取第二分块742对应的外部数据,即第二分块742对应的 图像的编码数据并写入第二存储器52,从当前宏块的第二块74在片 外存储装置11的存储起始地址起读取一个8x8块对应的图像的编码 数据的数据量,即16x4字节的数据存入第二存储器52。当第二块74的运动矢量中x是整数,y是非整数时,从片外存 储装置11中读取第二分块742对应的图像的编码数据并写入第二存 储器52,从当前宏块的第二块74在片外存储装置11的存储起始地址 起读取一个13 x 8块对应的图像的编码数据的数据量,即26x4字节 的数据存入第二存储器52。当第二块74的运动矢量中x是非整数,y是整数时,从片外存 储装置11中读取第二分块742对应的图像的编码数据并写入第二存 储器52,从当前宏块的第二块74在片外存储装置11的存储起始地址 起读取一个8x 16块对应的图像的编码数据的数据量,即32x4字节 的数据存入第二存储器52。当第二块74的运动矢量中x与y都是整数时,从片外存储装置 11中读取第二分块742对应的图像的编码数据并写入第二存储器52, 从当前宏块的第二分块73在片外存储装置11的存储起始地址起读取 一个13 x 16块对应的图像的编码数据的数据量,即52x4字节的数 据存入第二存储器52。
步骤4、对第二分块742的已存数据进行读取当第二分块742对应的参考块的图像的编码数据全部写入所述第 二存储器52后,将该第二存储器52作为已写存储器,并在已写存储 器,即第二存储器52中读取第二分块742的数据以做插值计算,其 读取的起始地址为78地址,当第二分块742的数据读取完毕时,将 该第二存储器52重新作为空闲存储器。步骤5、对第三分块731的外部数据进行存储在对已写存储器,即第二存储器进行数据开始读取的同时,开始 将第三分块743对应的参考块的图像的编码数据写入第一存储器51 的操作,其具体过程如下当第三分块73的运动矢量中x与y都是整数值时,将第一存储 器51的存储地址设置为16,从片外存储装置11中读取第三分块733 的数据并从地址16开始写入第一存储器,即将片外存储装置11中第 一块73对应的图像的编码数据中从第一分块731的数据之后再读取 16 x 4字节的图像的编码数据写入第一存储器51。当第一块73的运动矢量中x是整数,y是非整数时,将第一存 储器51的写地址设置为6,从片外存储装置11中读取第三分块733 的数据并从地址26开始写入第一存储器,即将片外存储装置11中第 一分块73对应的图像的编码数据中从第一分块731的数据之后再读 取下一个8x8块的图像的编码数据,即16x4字节大小的图像的编 码数据写入第一存储器51。当第一分块73的运动矢量中x是非整数,y是整数时,将第一 存储器51的写地址设置为32,并从片外存储装置11中读取第三分块 733中除公共参考象素块以外的图像的编码数据并从地址26开始写 入第一存储器,即将片外存储装置11中第一分块73对应的图像的编 码数据中从第 一 分块7 31的数据之后再读取8 x 16块的图像的编码数 据,即再读取32x4字节的图像的编码数据写入第一存储器51。
当第一块73的运动矢量中x是非整数,y是非整数时,将第一 存储器的写地址设置为52,并从片外存储装置11中读取第三分块733 中除公共参考象素块以外的图像的编码数据的数据并从地址52开始写入第一存储器51,即将片外存储装置11中第一分块73对应的参考 块的图像的编码数据中从第 一分块731的外部数据的存储地址之后再 读取一个8x 16块的数据,即32x4字节的图像的编码数据写入第一 存储器。其中,由于第一存储器存储量为78x4字节,而且如图8c 所示,公共参考块象素的图像的编码数据位于第一分块731与第三分 块733交界处,由于图像的编码数据在片外和片内存储装置12为顺 序存储,所述公共参考块象素位于第一存储器的地址32-51处,因 此第一存储器中地址0 5段保存的第一分块731的图像编码数据是 非公共参考像素块的图像的编码数据,而且已经被差值计算完毕,因而该段地址保存的图像的编码数据是可以被覆盖的,因此,第三分块 733对应的非公共参考块以外部分对应的参考块的图像的编码数据被 顺次写入第 一存储器的地址52 ~ 77 ,以及地址0 ~ 5部分中。步骤6、读取第一存储器51中的第三分块733的已存数据以进 行插值计算。在第三分块733的图像的编码数据存储完毕后,第一存储器51 作为已写存储器,对第三分块的数据进行读取以做插值计算。其中, 需要指出的是,当第三分块733与第一分块731存在时,第三分块733 还应包括所述公共参考块象素的图像的编码数据,而不仅仅是第三分 块733的非公共参考块部分的图像的编码数据。具体地当第一块73的运动矢量中x与y都是整数值时,从第一存储器 11的地址16起读取一个8 x 8块对应参考块的图像的编码数据的数据 量,即16x4字节的数据做插值计算。当第一块73的运动矢量中x是整数,y是非整数时,从第一存 储器11的地址16起读取一个13 x 8块对应的参考块的图像的编码数
据的数据量,即读取26 x 4字节的数据做插值计算。当第一块73的运动矢量中x是非整数,y是整数时,从第一存 储器51的地址32起读取一个8 x 16块对应的参考块的图像的编码数 据的数据量,即读取32 x 4字节的数据做插值计算。当第一块73的运动矢量中x与y都是整数时,从第一存储器51 的地址32起读取一个13 x 16块对应的图像的编码数据的数据量即52 x4字节的数据,即读取第一存储器51中32~ 75,以及0 5地址存 储的图像的编码数据以做插值运算。当第一存储器51中第三分块733对应的已存数据全部被读出以 做插值计算后,将所述第一存储器51作为空闲存储器。步骤7、将第四分块744外部数据写入第二存储器52在对第三分块733开始进行读取的同时,开始将第四分块744对 应的图像的编码数据写入第二存储器52的过程的操作,该操作与上 述第三分块733的写入过程类似,具体地在对已写存储器,即第二存储器52进行数据开始读取的同时, 开始将第三分块743对应的参考块的图像的编码数据写入第 一存储器 5l的操作,其具体过程如下当第四分块74的运动矢量中x与y都是整数'值时,将第二存储 器52的存储地址设置为94,从片外存储装置11中读取第四分块744 的数据并从地址94开始写入第二存储器52,即将片外存储装置11 中第二分块74对应的图像的编码数据中从第二分块742的外部数据 之后再读取16x4字节的图像的编码数据写入第一存储器51。当第四分块74的运动矢量中x是整数,y是非整数时,将第一 存储器51的写地址设置为104,从片外存储装置11中读取第四分块 744的数据并从地址104开始写入第二存储器,即将片外存储装置11 中第二块74对应的图像的编码数据中从第二分块742的外部数据之 后再读取下一个8x8块对应的参考块的图像的编码数据,即16x4 字节大小的图像的编码数据写入第二存储器52中。当第四块74的运动矢量中X是非整数,y是整数时,将第一存 储器51的写地址设置为110,并从片外存储装置11中读取第四分块 744中除公共参考象素块以外的图像的编码数据,并从地址110开始 写入第一存储器51,即将片外存储装置11中第二块74对应的图像的 编码数据中从第四分块744的图像的编码数据之后再读取32 x 4字节 的图像的编码数据写入第一存储器51。当第二分块74的运动矢量中x是非整数,y是非整数时,将第二 存储器52的写地址设置为130,并从片外存储装置11中读取第四分 块733中除公共参考象素块以外的参考块的图像的编码数据的数据并 从地址52开始写入第一存储器51,即将片外存储装置11中第一块 73对应参考块的图像的编码数据中从第一分块731的数据的存储地 址之后再读取一个8 x 16块的数据,即32x 4字节的图像的编码数据 写入第一存储器51。与第三分块733的存储过程同理,第二分块742 与第四分块744公共参考块象素位于第一存储器51的地址110~ ]29 处,因此第一存储器51中地址78 83段保存的第二分块742的图像 的编码数据是非公共参考像素块,而且已经被差值计算完毕,因而该 段地址保存的图像的编码数据是可以被覆盖的,因此,第四分块744 对应的非公共参考块以外部分对应的图像的编码数据被顺次写入第 一存储器51的地址130 ~ 155,以及地址78~ 83部分中。当第四分块744的全部数据全部写入第二存储器52后,将第二 存储器52作为已写存储器。步骤8、对第四分块744的已存数据进行读取以进行插值计算 当第四分块744的图像的编码数据全部保存完毕后,开始对第四分块744的图像的编码数据进行读取以进行插值计算。其中,需要指出的是,当第四分块744与第二分块742存在时,第四分块733的图像的编码数据还应包括所述公共参考块象素对应的参考块的图像的编码数据,而不仅仅是第四分块744的非公共参考块部分的参考块的图像的编码数据,其具体过程如下
当第二块74的运动矢量中X与y都是整数值时,从第一存储器51的地址94起读取一个8x8块对应的图像的编码数据的数据量,即 16 x 4字节的数据做插值计算。当第二块74的运动矢量中x是整数,y是非整数时,从第一存 储器51的地址94起读取一个13 x 8块对应的图像的编码数据的数据 量,即26 x 4字节的已存数据做插值计算。当第二块74的运动矢量中x是非整数,y是整数时,从第一存 储器51的地址110起读取一个8x 16块对应的图像的编码数据的数 据量,即32x4字节的已存数据做插值计算。当第二块74的运动矢量中x与y都是整数时,从第一存储器51 的地址110起读取一个13 x 16块对应的图4象的编码数据的数据量, 即52x 4字节的数据存入第二存储器,即读取第二存储器52中110 ~ 155,以及78~ 83地址存储的图像的编码数据以做插值运算。当第二存储器52中第四分块744对应的数据全部被读出后,将 所述第一存储器51作为空闲存储器。通过以上过程,即可完成将一个intel8 x 16格式宏块的图像的编 码数据写入片内存储装置12,以及从片内存储装置12中读取所述宏 块的图像的编码数据以做插值计算。与现有技术相比,采用了本发明的读写控制方法后,对片外存储装 置11的图像的编码数据的读取和插值计算是并行进行的,其中,对片外 存储装置11读取可以连续进行,因而降低了对片外存储装置11的外部 数据的读取延迟时间。另外而由于解码计算与对片外存储装置11中的数 据读取是并行处理的,解码计算完毕后的数据可以被覆盖,.而不必占据 解码装置内部的片内存储装置12的存储空间,因而也减低了所需要的 片内存储装置12的大小。根据本发明的第二方面,提供了 一种在数据解码装置中用于控制 将外部数据写入片内存储装置12并由片内存储装置12读取已存数据 进行解码运算的读写控制装置,其特征在于,并行地控制从片外存储
装置11读取外部数据存入所述片内存储装置12以及从片内存储装置 12读取已存储的数据进行解码运算的操作。其中,所述读写控制装置 02的片内存储装置12包括一个存储器和多个存储器两种方案。下面参照图3、图5a、图5b以及图9a 图10b对本发明的读写 控制装置做进一步说明。如附图9a所示,采用一个存储器作为片内存储装置12的在数据 解码装置中用于控制将外部数据写入片内存储装置12并由片内存储 装置12读取已存数据进行解码运算的读写控制装置,包括第一控制 装置91和第二控制装置92。下面参考图3和图9a,对该采用一个存储器作为片内存储装置 12读写控制装置进行进一步说明。第一控制装置91控制将由片外存储装置11中读取数据写入所述 存储器的空闲区域15及并行地执行控制读取所述存储器已存区域13 中的已存储的数据,以进行解码运算。第二控制装置92根据第一控制装置91的数据写入片内存储装置 12后,片内存储装置12中已存数据的存储位置的变化,控制将所述 空闲区域15中的写入已存数据的部分由空闲区域15中去除且合并入 已存区域。优选地,所述第一控制装置91还可以根据片内存储装置12中已 被读取的已存数据的存储位置,控制重复地将所述由片外存储装置 1112中读取数据写入所述空闲区域15及并行地读取所述已存区域15 中的已存储的数据;且所述第二控制装置92还用于控制重复地将所 述空闲区域中的写入数据的部分由空闲区域15中去除且合并入已存 区域13,直至所述参考块的数据均已被读取,以进行解码运算。另外,参照图9b,所述的读写控制装置具有一个优化例,该优化 例中,所述第二控制装置92还用于控制将所述已存区域中的已存数 据已被读取的部分由所述已存区域中去除且合并入空闲区域。具体地,该读写控制装置还包括了第一检测装置93,并在策一控 制装置91中增加了一个停止控制装置911和一个启动控制装置912。
第一检测装置93,检测所述已存区域13中未被读取的已存数据的数据量;其中,第一控制装置91还包括停止控制装置911,用于当第一检测装置93检测到所述已存区域 中未被读取的已存数据的数据量小于第 一预定阈值时,停止控制装置 911控制停止读取所述已存区域中的已存数据;启动控制装置912,用于当检测到所述已存区域中未被读取的已 存数据量大于第二预定阈值时,控制开始读取所述已存区域中的已存 数据。第一检测装置93在对已存区域中未被读取的已存数据量进行检 测后,将检测到的已存信息发送第 一控制装置中的停止控制装置与启 动控制装置。停止控制装置根据已存信息判断所述已存区域中未被读取的已 存数据量是否小于第一预定阈值,当小于第一预定阈值时,控制停止 读取所述已存区域中的已存数据。启动控制装置根据已存信息判断所述已存区域中未被读取的已 存数据量是否大于第二预定阈值,当大于第二预定阈值时,控制开始 读取所述已存区域中的已存数据。其中所述的第一预定阈值与第二预定阈值可以是预先设定的。例 如第一预定阈值可以是16x4字节,第二预定阔值可以是。采用多个存储器作为片内存储装置12的在数据解码装置中用于 控制将外部数据写入片内存储装置12并由片内存储装置12读取已存 数据进行解码运算的读写控制装置的结构与上述采用单个存储器作 为片内存储装置12的读写控制装置不同。下面参考附图10a、图5a和图5b,对采用多个存储器作为片内 存储装置12的在数据解码装置中用于控制将外部数据写入片内存储 装置12并由片内存储装置12读取已存数据进行解码运算的读写控制 装置进行说明。 所述采用两个存储器作为片内存储装置12的.读写控制装置包括 第三控制装置101和状态转换装置102。所述片内存储装置12包括多个存储器,例如使用两个78x4字 节大小的存储器即第一存储器51和第二存储器52,所述数据包括多 个分块。第三控制装置101控制将由片外存储装置11中读取的当前分块 的外部数据写入所述多个存储器中的 一 空闲存储器中;以及并行地控 制由所述多个存储器中的已写存储器中读取前一分块的已存数据,以 进行解码运算;读写状态转换装置102,在检测到所述当前分块的外部数据已完 全写入所述空闲存储器中且所述前一分块的数据已由所述已写存储 器中完全读出时,将所述已写存储器作为空闲存储器和将所述空闲存 储器作为已写存储器。在各分块的数据没有全部读取完毕前,第三控制装置101重复地 控制将由片外存储装置11中读取的当前分块的外部数据写入所述空 闲存储器中且并行地由所述已写存储器中读取前一分块的已存数据,图10b所示为图10a所示的读写控制装置的一个优化例。该读写 控制装置在图10a所示的读写控制装置的基础上,还增加了一个第二 检测装置103,并在第三控制装置101中增加了一个冗余处理控制装 置1011。该第二检测装置103对所述多个存储器之一中顺序写入的两个分 块之间是否存在重叠冗余数据进行检测。'第三控制装置101中的冗余处理控制装置1011,在接收了第二检 测装置103检测到的重叠冗余数据的信息后,控制在空闲存储器中保 留所述重叠冗余数据而仅写入所述当前分块中的非重叠冗余数据。另外,上述读写控制装置特别适用于视频解码装置的读写控制装 置,使用在视频解码装置中时,所述数据解码装置包括视频解码装置, 所述数据包括参考块的图像数据。
特别的,当如图10a或者图10b所示的读写控制装置,使用在基 于运动补偿的视频解码装置中时,所述数据解码装置包括基于运动补 偿的视频解码装置,所述图像块包括参考宏块。所述图像块包括参考宏块且所述参考宏块的类型包括intel16 x 8、 intel8 x 16、 intel8 x 8类 型,所述重叠冗余数据包括所述参考宏块的两个分块之间的重叠象素 的象素数据。其中,所述第二检测装置根据接收到的当前宏块的宏块 类型以及运动矢量中x和y值是否整数来对确定同 一存储器中顺序写 入的两个分块之间是否存在重叠冗余数据。如本发明所述的在数据解码装置中用于控制将外部数据写入片 内存储装置12并由片内存储装置12读取已存数据进行解码运算的读 写控制装置,并行地控制从片外存储装置11读取外部数据存入所述 片内存储装置12以及从片内存储装置12读取已存储的数据发送给数 据解码装置中的解码运算装置进行解码运算,由于如上所述对片外存 储装置11中的外部数据的读取与对片内存储装置12中已存数据的读 取以做解码运算是并行进行的,所以包括了本发明所述用于控制将外 部数据写入片内存储装置12并由片内存储装置12读取已存数据进行 解码运算的读写控制装置的数据解码装置在对片外存储装置11中的 外部数据进行读取并写入片内存储装置12时,同步地对已保存在片 外存储装置11中的已存数据进行读取以作插值计算。如本发明所述的读写控制装置或者包括了该读写控制装置的数据 解码装置,其对片外存储装置11的图像的编码数据的读取和插值计算是 并行进行的。其中,该读写控制装置或者包括该读写控制装置的数据解码装置对 片外存储装置11的读取是可以连续进行,因而降低了对片外存储装置 11的外部数据的读取延迟。而且由于解码计算与对片外存储装置11中的数据读取是并行处理 的,解码计算完毕后的数据可以被覆盖,而不必占据解码装置内部的片
内存储装置12的存储空间,因而也减低了所述读写控制装置或者包括 该所述读写控制装置的数据解码装置所需要设置的片内存储装置12的 大小,从而也降低了该读写控制装置的成本。另一方面,本发明提出的第二种读写控制装置进一步将外部解码数 据分为多个分块,以分块为单位进行写入片内存储装置12以及从片内存储装置12读取以进行解码运算的操作,因而每次需要存储的分块的存储量也大大小于整块数据的大小,因而也大大减少了所需要设置的片内存储装置12的存储量,从而大大减少了读写控制装置以及包括该读 写控制装置的数据解码装置的成本。当然,本发明还可以有其他多种实施例,在不背离本发明精神及其实变,但这些相应的改变都应属于本发明权利要求的保护范围。
权利要求
1、一种在数据解码装置中用于控制将外部数据写入片内存储装置并由片内存储装置读取已存数据进行解码运算的方法,其特征在于,并行地控制将从片外存储装置读取的外部数据存入片内存储装置以及从片内存储装置读取已存数据以进行解码运算的操作。
2、 根据权利要求1所述的方法,其特征在于,所述片内存储装 置包括一个存储器,其中,该方法包括以下步骤a. 控制并行地将由片外存储装置读取的外部数据写入所述存储 器的空闲区域及读取所述存储器已存区域中的已存数据,以进行解码 运算;b. 控制将所述空闲区域中的写入已存数据的部分由空闲区域中 去除且合并入已存区域;c. 重复步骤a和b,直至所述外部数据均已被读取,以进行解码 运算。
3. 根据权利要求2所述的方法,其特征在于,所述步骤b还包 括以下步骤区域中去除且合并入所述空闲区域。
4. 根据权利要求2或3所述的方法,其特征在于,还包括以下 步骤-检测所述已存区域中未被读取的已存数据量.; 其中,所述步骤a还包括以下步骤-当检测到所述已存区域中未被读取的已存数据量小于第 一预定 阈值时,控制停止读取所述已存区域中的已存数据; 其中,所述步骤a还包括以下步骤 -当检测到所述已存区域中未被读取的已存数据量大于第二预定 阈值时,控制开始读取所述已存区域中的已存数据。
5、 如权利要求1所述的方法,其特征在于,所述片内存储装置 包括多个存储器;所述外部数据包括多个分块,其中,该方法包括以下步骤A. 控制并行地将由片外存储装置中读取的当前分块的外部数据 写入所述多个存储器中的 一空闲存储器中;以及由所述多个存储器中 的已写存储器中读取前一分块的已存数据,用以进行解码运算;B. 当检测到所述当前分块的外部数据已完全写入所述空闲存储 器中且所述前一分块的已存数据已由所述已写存储器中完全读出,则 将所述已写存储器作为空闲存储器和将所述空闲存储器作为已写存 储器,重复上述步骤A和B,直至所述已存数据的所有分块的外部数 据均已被读取,以进行解码运算。
6、 如权利要求5所述的方法,其特征在于,还包含以下步骤-检测在所述多个存储器之一中顺序写入的两个分块之间是否存 在重叠冗余数据;其中,步骤A还包括-当检测在所述空闲存储器中前一写入的分块与当前分块之间存 在重叠冗余数据,则控制在所述空闲存储器中保留所述重叠冗余数据 而仅写入当前分块中非重叠冗余数据。
7、 根据权利要求5或6所述的方法,其特征在于,所述片内存 储装置包括两个存储器。
8、 根据权利要求1至7中任一项所述的方法,其特征在于,所 述数据解码装置包括视频解码装置,所述外部数据和所述已存数据包 括参考块的图像的编码数据。
9、 根据权利要求8所述的方法,其特征在于,所述视频解码装 置包括基于运动补偿的视频解码装置,所述图像块包括参考宏块。
10、 根据权利要求8或者9所述的方法,其特征在于,所述数据解码装置包括基于运动补偿的视频解码装置,且所述图像块包括参考 宏块,所述重叠冗余数据包括所述参考宏块的两个分块之间的重叠象素的编码数据,且所述参考宏块的类型包括intel16 x 8、 intel8 x 16、 intel8x8类型。
11、 根据权利要求10所述的方法,其特征在于,所述存储器的 存储量为78x4字节。
12、 一种在数据解码装置中用于控制将外部数据写入片内存储装 置并由片内存储装置读取已存数据进行解码运算的读写控制装置,其 特征在于,并行地控制从片外存储装置读取外部数据存入所述片内存 储装置以及从片内存储装置读取已存储的数据以进行解码运算的操作。
13、 如权利要求12所述的读写控制装置,其特征在于,所述片 内存储装置包括一个存储器,其中,所述读写控制装置包括第 一控制装置,用于控制并行地将由片外存储装置中读取数据写 入所述存储器的空闲区域及执行控制读取所述存储器已存区域中的 已存储的数据,以进行解码运算;第二控制装置,用于控制将所述空闲区域中的写入已存数据的部 分由空闲区域中去除且合并入已存区域;其中,所述第一控制装置还用于控制并行地重复地将所述由片外 存储装置中读取数据写入所述空闲区域及读取所述已存区域中的已 存储的数据;且所述第二控制装置还用于控制重复地将所述空闲区域中的写入数据的部分由空闲区域中去除且合并入已存区域,直至所述 参考块的数据均已被读取,以进行解码运算。
14、 如权利要求13所述的读写控制装置,其特征在于,所述第 二控制装置还用于控制将所述已存区域中的已存数据已被读取的部 分由所述已存区域中去除且合并入空闲区域。
15、 根据权利要求13或者14所述的读写控制装置,其特征在于 还包括量; 、其中,第一控制装置还包括停止控制装置,用于当检测到所述已存区域中未被读取的已存数 据量小于第 一 预定阈值时,控制停止读取所述已存区域中的已存数 据;启动控制装置,用于当检测到所述已存区域中未被读取的已存数 据量大于第二预定阈值时,控制开始读取所述已存区域中的已存数 据。
16、 根据权利要求12所述的读写控制装置,其特征在于,所述片内存储装置包括多个存储器,所述数据包括多个分块,其中,所述 读写控制装置包括第三控制装置,用于控制并行地将由片外存储装置中读取的当前 分块的外部数据写入所述多个存储器中的一空闲存储器中;以及由所述多个存储器中的已写存储器中读取前一分块的已存数据以进行解 码运算;读写状态转换装置,用于在检测到所述当前分块的外部数据已完 全写入所述空闲存储器中且所述前一分块的数据已由所述已写存储 器中完全读出时,将所述已写存储器作为空闲存储器和将所述空闲存储器作为已写存储器;其中,所述第三控制装置重复地控制并行地将由片外存储装置中 读取的当前分块的外部数据写入所述空闲存储器中且由所述已写存 储器中读取前一分块的已存数据直至所述参考块的所有分块的已存数据均已被读取。
17、 根据权利要求16所述的读写控制装置,其特征在于,还包括第二检测装置,用于检测在所述多个存储器之一中顺序写入的两个分块之间是否存在重叠冗余数据;其中,第三控制装置还包括冗余处理控制装置,用于当检测在所述空闲存储器中前 一 写入的 分块与当前分块之间存在重叠冗余数据时,控制在空闲存储器中保留 所述重叠冗余数据而仅写入所述当前分块中的非重叠冗余数据。
18、 根据权利要求16或者17所述的读写控制装置,其特征在于, 所述片内存储装置包括两个存储器。
19、 根据权利要求12~18中任一项所述的读写控制装置,其特 征在于所述数据解码装置包括视频解码装置,所述数据包括参考块的 图像数据。
20、 根据权利要求12~19中任一项所述的读写控制装置,其特 征在于,所述视频解码装置包括基于运动补偿的视频解码装置,所述 图像块包括参考宏块。
21、 根据权利要求17或者18所述的读写控制装置,其特征在于, 所述数据解码装置包括基于运动补偿的视频解码装置,所述图像块包 括参考宏块且所述参考宏块的类型包括intell6x 8、 intel8 x 16、 intel8 x 8类型,所述重叠冗余数据包括所述参考宏块的两个分块之间的重 叠象素的编码数据。
22、 根据权利要求21所述的读写控制装置,'其特征在于,所述存储器的存储量为78x4字节。
23、 一种数据解码装置,其特征在于,包括如权利要求11-20 中任一项所述的用于控制将外部数据写入片内存储装置及由片内存 储装置读取外部数据以进行解码运算的读写控制装置。
全文摘要
现有的基于宏块的运动补偿视频解码方案,对外部数据的读取和读取已存数据以做插值运算是串行操作的,导致了设置在视频解码装置内部的片内存储装置的容量较大以及解码速度下降,本发明提供了一种在数据解码装置中用于控制并行地将外部数据写入片内存储装置并由片内存储装置读取已存数据进行解码运算的方法及其装置可以减少所需要的片内存储装置的容量和解码的时间。
文档编号H04N7/26GK101399977SQ20071004671
公开日2009年4月1日 申请日期2007年9月29日 优先权日2007年9月29日
发明者罗忠祥 申请人:智多微电子(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1