首页 / 专利库 / 广播 / 帧内预测 / 运动矢量检测装置以及移动图像照相机

运动矢量检测装置以及移动图像照相机

阅读:890发布:2024-01-25

专利汇可以提供运动矢量检测装置以及移动图像照相机专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种参照参考 帧 对包括在目标帧中的目标 块 进行 运动矢量 检测的运动矢量检测装置,该装置包括:参考帧存储单元,存储由预定数量的参考块构成的参考帧;目标块存储单元,存储包括在目标帧中的目标块;参考块存储单元,包括检测区,存储包括与所述目标块相对应的参考块在内的参考块,以及预备区;写入单元,读取在包括与后继目标块相对应的参考块在内的参考块中未被存储在检测区内的参考块,并将读取的参考块写入所述预备区;以及检测单元,参照所述参考块对运动矢量进行检测。,下面是运动矢量检测装置以及移动图像照相机专利的具体信息内容。

1、一种参照参考对包括在目标帧中的目标进行运动矢量检测的运动 矢量检测装置,包括:
参考帧存储单元,用于存储由预定数量的参考块组成的参考帧;
目标块存储单元,用于存储包括在目标帧中的目标块;
包括检测区和预备区的参考块存储单元,所述检测区存储多个包括与所述 目标块相对应的参考块的参考块;
写入单元,用于在包括与后继目标块相对应的参考块在内的多个参考块 中,读取一个或多个未存储在检测区内的参考块,并将读取的参考块写入预备 区,所述后继目标块与所述目标块相邻;以及
检测单元,用于参照存储在所述检测区内的参考块检测目标块的运动矢 量。
2、按照权利要求1所述的运动矢量检测装置,其特征在于,所述检测单 元对所述目标块的运动矢量检测与所述写入单元执行的写入操作并行进行。
3、一种基于参考帧对包括在目标帧中的目标块进行运动矢量检测的运动 矢量检测装置,包括:
参考帧存储单元,用于存储由预定数量的参考块组成的参考帧;
目标块存储单元,用于存储包括在目标帧中的目标块;
参考块存储单元,用于存储包括与所述目标块相对应的参考块在内的多个 参考块;
设置单元,用于基于所述目标块在所述目标帧中的位置设置检测区和预备 区,所述检测区存储包括与所述目标块相对应的参考块在内的多个参考块;
写入单元,用于在包括与后继目标块相对应的参考块在内的多个参考块中 读取未被存储在预备区内的参考块,并将读取的参考块写入预备区,所述后继 目标块与所述目标块相邻,以及
检测单元,用于根据存储在所述检测区内的参考块检测所述目标块的运动 矢量。
4、按照权利要求3所述的运动矢量检测装置,其特征在于,所述检测单 元对所述目标块的运动矢量检测与所述写入单元执行的写入操作并行进行。
5、按照权利要求4所述的运动矢量检测装置,其特征在于,所述设置单 元对所述检测区进行设置,使得与所述目标块相对应的参考块放置在所述检测 区的中心。
6、按照权利要求5所述的运动矢量检测装置,其特征在于,存储在所述 参考块存储单元内的各参考块由表示存储在所述参考块存储单元中的参考块 的位置的物理地址确定,而且
所述检测单元包括:
指定单元,用于指定表示存储在所述检测区内的所述参考块的位置的逻辑 地址;
转换单元,用于将所述逻辑地址转换为物理地址;
读取单元,用于从所述参考块存储单元中逐像素读取由所述物理地址确定 的参考块;
重复控制单元,用于对所述指定单元、转换单元和读取单元进行重复控制, 从而对所述检测区内的所有参考块执行所述指定、转换和读取操作;以及
计算单元,用于利用读取的参考块和目标块计算所述目标块的运动矢量。
7、按照权利要求6所述的运动矢量检测装置,其特征在于,所述参考块 存储单元存储多个参考块,在这些参考块中包括与邻接所述目标帧边缘的所述 目标块相对应的参考块。
所述设置单元将包括与所述目标块相对应的参考块在内的多个参考块设 置为检测区内的一个计算范围,以及
所述检测单元根据包括在所述检测区的所述计算范围内的参考块计算运 动矢量。
8、按照权利要求3所述的运动矢量检测装置,其特征在于,所述参考帧 存储单元包括多个按照矩阵形式排列的存储器单元,各存储器单元的位置由行 地址和列地址确定,各参考块构成存储在多个具有相同的行地址的存储器单元 内的参考帧,以及
所述写入单元从由相同的行地址确定的所述多个存储器单元内读取所述 参考块。
9、按照权利要求3所述的运动矢量检测装置,其特征在于,所述参考块 存储单元包括用于存储3行4列参考块的区域,以及
所述设置单元将所述检测区设置为用于存储3行3列参考块的区域,并将 所述预备区设置为用于存储3行1列参考块的区域。
10、按照权利要求3所述的运动矢量检测装置,其特征在于,所述参考块 存储单元包括用于存储3行5列参考块的区域,以及
所述设置单元将所述检测区设置为用于存储3行3列参考块的区域,并将 所述预备区设置为用于存储3行2列参考块的区域。
11、一种根据参考帧检测包括在目标帧内的目标块的运动矢量检测方法, 包括:
参考帧存储步骤,存储由预定数量的参考块构成的参考帧;
目标块存储步骤,存储包括在目标帧图像内的目标块;
参考块存储步骤,存储包括与所述目标块相对应的参考块在内的多个参考 块;
设置步骤,根据所述目标块在所述目标帧中的位置,在所述参考块存储单 元中设置检测区和预备区,所述检测区存储包括与所述目标块相对应的参考块 在内的多个参考块;
写入步骤,在包括与后继目标块相对应的参考块在内的多个参考块中读取 一个或多个未存储在所述检测区内的参考块,并将读取的参考块写入所述预备 区,所述后继目标块与所述目标块相邻,以及
检测步骤,根据存储在所述检测区内的参考块检测所述目标块的运动矢 量。
12、一种根据参考帧并利用运动补偿预测对包括在目标帧中的目标块进行 压缩的移动图像照相机,包括:
参考帧存储单元,用于存储由预定数量的参考块构成的参考帧;
目标块存储单元,用于存储包括在目标帧中的目标块;
参考块存储单元,用于存储包括与所述目标块相对应的参考块在内的多个 参考块;
设置单元,用于根据所述目标块在所述目标帧中的位置在所述参考块存储 单元中设置检测区和预备区,所述检测区存储包括与所述目标块相对应的所述 参考块在内的多个参考块;
写入单元,用于在包括与后继目标块相对应的参考块在内的多个参考块中 读取一个或多个未存储在所述检测区内的参考块,并将读取的参考块写入所述 预备区,所述后继目标块与所述目标块相邻,以及
检测单元,用于根据存储在所述检测区内的参考块检测所述目标块的运动 矢量。

说明书全文

申请以在日本递交的申请号为2004-017674的申请为基础,该申请的内 容在此引用以作参考。

技术领域

发明涉及一种在运动补偿预测编码过程中检测运动矢量的技术,该运动 补偿预测编码是移动图像的压缩方法之一。

背景技术

近年来,已经出现一种能够实现高压缩比的图像压缩技术。这项技术可以 用于数码相机和数码摄像机。
MPEG(移动图像专家组)是一种为人们所熟知的移动图像压缩方法。在 MPEG方法中,采用运动补偿预测对图像数据进行有效地压缩,通过这项技术 只需对目标图像的位移数据和差分数据进行编码。在这种运动补偿预测方法 中,可以采用多种方法,例如匹配法,计算表示目标图像位移的运动矢量。
专利文献1[早期公开号为3-85884(美国的专利申请号为5,173,771) 的日本专利]提供了一种参考图像数据缓冲器,其包括第一存储体和第二存储 体。将沿参考图像中的平方向设置并且作为一个处理单元的四十三块图像 写入第一存储体。每一块图像由16像素×8行组成。读取存储在第一存储体 中的图像数据以计算运动矢量。与此同时,将参考帧图像中紧随其后的处理单 元写入第二存储体,接下来将对这一单元进行处理。然后,第一存储体再接替 第二存储体的作用,反之亦然。读取存储在第二存储体中的数据,计算运动矢 量,与此同时将参考帧图像中接下来的处理单元写入第一存储体。这些操作将 按照上述规律重复进行。
下面将对专利文献1中给出的方法予以说明,这里假设参考图像数据缓冲 器的容量尽可能小。更确切地说,假设一帧图像由128像素×128行的图像数 据组成。将一帧图像平均分为六十四(8×8)个宏块。在该帧中,按照由左至 右、从上到下的顺序对宏块进行编号。一个宏块包括16像素×16行的图像数 据。在下文中,将宏块的编号称为“块编号”。而且,将包括在参考帧图像中 块编号为“n”的宏块称为“参考块n”,将包括在目标帧图像中编号为“n” 的宏块称为“目标块n”,其余依此类推。另外,构成参考帧图像的宏块称为 参考块,构成目标帧图像的宏块称为目标块。
如图25A所示,参考图像数据缓冲器200包括第一存储体50和第二存储 体51。各存储体由9个区组成,并且各区具有存储一个宏块的容量。
在一个目标块运动矢量的检测过程中,“参考区”是指位于包含3行×3 列参考块的参考帧图像中的区,使得与目标块具有相同编号的参考块位于这些 参考块的中心。参考帧图像存储在参考存储器中。
首先,如图25A所示,第一存储体50中编号为50e、50f、50h和50i的 区分别存储参考块“1”、参考块“2”、参考块“9”和参考块“10”。这些参考 块包括在目标块编号为“1”的参考区内。
接下来,如图25B所示,在存储在第一存储体的参考块中检测运动矢量。 与此同时,包括在目标块编号为“2”的参考区内的编号为“1”、“2”、“3”、 “9”、“10”和“11”的参考块从参考帧存储器中分别传输到第二存储体51 的区51e到区51i中。
接下来,第一存储体50将接替第二存储体的任务,反之亦然。然后,如 图25C所示,包括在目标块编号为“3”的参考区内的参考块“2”、“3”、“4”、 “10”、“11”和“12”从参考帧存储器分别传输到第一存储体的区50d到50i 中。与此同时,在存储在第二存储体51的参考块中检测运动矢量。
有关检测运动矢量的操作将按照上述描述重复进行。
这里,在图25B中,存储在第一存储体50的区50h内的参考块“2”和存 储在第二存储体51的区51e内的参考块“2”是冗余的。另外,存储在第一存 储体50的区50i中的参考块“10”和存储在第二存储体51的区51f内的参考 “10”也是冗余的。而且,在图25C中,参考块“2”、参考块“3”、参考块“10” 和参考块“11”既存储在第一存储体50中,又存储在第二存储体51中。
存储在参考图像数据缓冲器200中的参考块根据需要从参考帧存储器中 传输。因此,在上述情况中,会多次将相同的数据从参考帧存储器传输到参考 图像数据缓冲器中,这种做法会降低工作效率。

发明内容

因此,本发明的目的在于提供一种运动矢量检测装置、运动矢量检测方法 以及移动图像照相机,其能够减少从参考帧存储器到参考图像数据缓冲器的冗 余数据传输。
上述目的通过运动矢量检测装置实现,该装置参照参考帧以检测包括在目 标帧的目标块的运动矢量,该装置包括:参考帧存储单元,用于存储由预订数 目的参考块组成的参考帧;目标块存储单元,用于存储包括在目标帧中的目标 块;包含检测区和预备区的参考块存储单元,其中检测区存储多个参考块,其 中包括与所述目标块相对应的参考块;写入单元,用于在包括与后继目标块相 对应的参考块的多个参考块中读取一个或多个未存储在检测区内的参考块,并 将读取的参考块写入预备区中,后继目标块与所述目标块相邻;检测单元,根 据存储在检测区内的参考块检测目标块的运动矢量。
根据所述结构,参考块存储单元包括预备区,而且在包括与后继目标块相 对应的参考块在内的多个参考块中,写入单元只把未存储在检测区内的参考块 写入预备区。因此,按照本发明的运动矢量检测装置,在将检测后继目标块的 运动矢量所需的参考块从参考帧存储单元传输到参考块存储单元的过程中,可 以消除先前读取的用于检测目标块运动矢量的参考块和用于检测后继目标块 运动矢量的参考块之间的冗余。
检测单元可以在写入单元执行写入操作的同时检测目标块的运动矢量。
根据所述功能,可以提高运动矢量检测的处理速度。
上述目标是由一运动矢量检测装置完成的,该装置能够在参考帧的基础上 检测出包括在目标帧中的目标块的运动矢量,其包括:参考帧存储单元,用于 存储由预订数目的参考块组成的参考帧;目标块存储单元,用于存储包括在目 标帧中的目标块;参考块存储单元,用于存储多个参考块,其中包含与目标块 相对应的参考块;设置单元,用于在参考块存储单元中根据目标块在目标帧中 所处的位置设置检测区和预备区,在检测区中存储多个参考块,其中包括与目 标块相对应的参考块;写入单元,用于在多个参考块(包括与后继目标块相对 应的参考块)中读取一个或多个未存储在检测区内的参考块,并将所读取的参 考块写入预备区,所述后继目标块与该目标块相邻;检测单元,可以基于存储 在检测区中的参考块检测目标块的运动矢量。
根据所述结构,可以将参考块存储单元中的任一区设置为检测区。这意味 着,可以连续检测目标帧中相邻目标块的运动矢量。
检测单元可以在写入单元执行写入操作的同时检测目标块的运动矢量。
利用所述功能,可以提高运动矢量检测的处理速度。
设置单元可以通过对检测区的设置,将对应于目标块的参考块设置在检测 区的中央。
凭借所述功能,可以精确地检测到各目标块的运动矢量。
可以通过物理地址标识存储在参考块存储单元中的各参考块,这一物理地 址指示出存储在参考块存储单元中的参考块的位置,所述检测单元包括:指定 单元,用于指定一逻辑地址,这一逻辑地址可以标识参考块在检测区中所处的 位置;转换单元,用于将逻辑地址转换为物理地址;读取单元,用于从参考块 存储单元中逐像素地读取根据物理地址确定的参考块;重复控制单元,用于控 制指定单元、转换单元和读取单元,使之循环往复地完成检测区内所有参考块 的指定、转换和读取操作;计算单元,利用读取的参考块和目标块计算目标块 的运动矢量。
凭借所述功能,无论检测区在参考块存储单元中所处的位置如何,运动矢 量都可以得到检测。这是充分利用了参考块存储单元。
参考块存储单元可以存储多个参考块,其中包括与目标块相对应的参考 块,这里的目标块与目标帧的边缘相邻,设置单元把包括与目标块相对应的参 考块在内的多个参考块设置为检测区中的计算范围,检测单元会基于检测区内 包括在计算范围中的参考块检测运动矢量。
凭借所述结构,可以精确地检测到与目标帧边缘相邻的目标块图像的运动 矢量。
参考帧存储单元可以包含多个存储单元,这些存储单元按照矩阵形式排 列,可以通过一个行地址和一个列地址确定各存储单元的位置,构成参考帧的 各参考块存储在多个存储单元中,这些存储单元的位置由相同的行地址确定, 写入单元从多个存储单元(它们的位置由相同的行地址指定)中读取参考块。
根据所述结构,可以先固定一个行地址,然后,只需按顺序指定列地址就 可以高速读取参考帧图像。
参考块存储单元可以包含一存储3行×4列参考块的区域,设置单元可以 将检测区设置为一个存储3行×3行参考块的区域,预备区则可以存储3行× 1列参考块。
凭借所述结构,可以对构成目标帧图像某一行的目标块的运动矢量进行连 续检测。
参考块存储单元可以包含一个存储3行×5列参考块的区域,设置单元可 以将检测区设置成一个存储3行×3列的区域,预备区则可以存储3行×2列 参考块。
凭借所述结构,可以对构成一个目标帧的各目标块的运动矢量进行连续检 测。
附图说明
下述说明连同所附的体现本发明具体实施例的附图可以清晰地描述本发 明所具有的这些和其它目的、优点和特征。
图1示出了移动图像照相机100的结构框图
图2示出了移动图像照像机100所处理的帧图像的一个示例;
图3示出了运动检测装置130的结构框图;
图4示出了第一实施例中参考图像数据缓冲器134的结构;
图5示出了根据在目标帧上的位置对各目标块的分类;
图6示出了参考图像数据缓冲器134的物理地址和运动矢量计算单元所使 用的逻辑地址空间234之间的关系;
图7示出了运动检测单元130所执行的检测构成一帧的目标块的运动矢量 的操作流程图(接图8);
图8示出了运动检测单元130所执行的检测构成一帧的目标块的运动矢量 的操作流程图(接图7);
图9示出了参考帧存储器控制单元133所执行的选择参考块的操作流程 图;
图10示出了运动检测单元所执行的检测各目标块的运动矢量的操作流程 图;
图11示出了运动检测控制单元132所执行的选择写入目的地的操作流程 图;
图12示出了参考图像数据缓冲器134中的检测区的转换图;
图13示出了第一实施例的效果图;
图14示出了在第二实施例中运动检测单元130b的结构方框图;
图15示出了在第二种实施例中参考图像数据缓冲器134b的结构方框图;
图16示出了参考图像数据缓冲器134b的物理地址和运动矢量计算单元所 采用的逻辑地址空间234b之间的关系;
图17示出了运动检测单元130b所执行的检测构成一帧的目标块的运动矢 量的操作流程图(接图18);
图18示出了运动检测单元130b所执行的检测构成一帧的目标块的运动矢 量的操作流程图(接图17);
图19示出了运动检测单元130b所执行的检测一个目标块的运动矢量的操 作流程图;
图20示出了运动检测控制单元132b所执行的选择写入目的地的操作流程 图;
图21示出了参考图像数据缓冲器134b中检测区的转换图;
图22示出了在变型例(1)中参考帧存储器131所存储的参考帧的示例;
图23在时间行上示出了在存储页模式下进行参考帧存储器131的写入/ 读取操作时,输出到参考帧存储器的时钟信号、指令类型、地址类型以及输入 到参考帧存储器131或由其输出的像素数据示意图;
图24在时间行上示出了在脉冲模式下进行参考帧存储器131的写入/读取 操作时,输出到参考帧存储器的时钟信号、指令类型、地址类型以及输入到参 考帧存储器131或由其输出的像素数据的示意图;
图25示出了采用传统技术的参考图像数据缓冲器200的结构及其检测区 转换的示意图;

具体实施方式

1.第一实施例
下面按照本发明的优选实施例描述移动图像照像机100。
1.1移动图像照像机100的结构
如图1所示,移动图像照像机100包括照像机单元101、分类单元102、 开关103、减法单元104、DCT单元105、量化单元106、可变长度编码单元107、 缓冲存储器108、速率控制单元109、主存储器110、预测图像生成单元123、 加法单元124、反DCT单元125、反量化单元126、开关127、运动检测单元 130和参考帧存储器131。
照像机单元101在固定的时间间隔上由探测到的光生成由128像素×128 行组成的帧图像信号。基于所生成的帧图像信号,照像机单元101生成由量度 信号Y和色差信号Cr、Cb组成的帧图像。之后,照像机单元101将这一帧图 像输出到分类单元102。
分类单元102接收来自照像机单元101的帧图像,并确定该帧图像的类别, 即由帧内编码生成的I-图像(帧内编码图像)、由帧间编码生成的P-图像(预 测图像)或B-图像(双向图像)。首先,分类单元102将I-图像输出至减法单 元104,然后,将P-图像和B-图像输出至减法单元104和运动检测单元130。 如图2所示,由分类单元102处理的各帧图像都包括六十四个宏块,这些宏块 通过将帧图像300等分成8行8列生成。各宏块包括16像素×16行的像素数 据。这些宏块从1到64连续编码,具体的编码方式为:第一行的八个宏块从 左至右的编码为1到8,第二行的八个编码从左至右的编码为9到16,其余依 此类推。各块编号表示宏块在帧图像中所处的位置和编码的顺序。
当输出编码为“1”的P-图像或I-图像的宏块时,分类单元102将表示帧 图像开始的控制信号输出到运动检测单元130。
在分类单元102、减法单元104、DCT单元105、量化单元106、可变长度 编码单元107、预测图像生成单元123、加法单元124、反DCT单元125、反量 化单元126、运动检测单元130和参考帧存储器131中,以宏块为单元进行帧 图像的处理。
减法单元104接收到来自分类单元102的I-图像的宏块,并将接收到的 宏块原封不动地输出给DCT单元105。而且,减法单元104还接收来自分类单 元102的P-图像宏块或B-图像宏块,以及接收来自预测图像生成单元123的 P-图像或B-图像宏块的预测图像,并通过从接收来自分类单元102的宏块减 去预测图像而生成差分数据。减法单元104将生成的P-图像或B-图像宏块的 差分数据输出到DCT单元105。
DCT单元105接收来自减法单元104的I-图像宏块。而且,DCT单元105 还接收来自减法单元104的P-图像或B-图像宏块的差分数据。DCT单元105 对接收到的I-图像宏块,以及P-图像宏块的差分数据或B-图像宏块的差分数 据执行DCT变换(离散余弦变换),并由此生成DCT系数。然后,DCT单元105 将生成的DCT系数输出到量化单元106。
量化单元106接收来自DCT单元105的I-图像宏块的DCT系数、P-图像 宏块的差分数据的DCT系数以及B-图像宏块的差分数据的DCT系数。然后, 量化单元106对接收到的DCT系数执行量化操作,以生成量化DCT系数,并将 生成的I-图像宏块的量化DCT系数和P-图像宏块的差分数据的量化DCT系数 输出到可变长度编码单元107和反量化单元126。而且,量化单元106还将B- 图像宏块的差分数据的DCT系数输出到可变长度编码单元107。
可变长度编码单元107接收来自量化单元106的I-图像宏块的量化DCT 系数、或P-图像宏块的差分数据的量化DCT系数、或B-图像宏块的差分数据 的量化DCT系数。而且,可变长度编码单元107还接收来自运动检测单元130 的P-图像或B-图像的运动矢量。然后,可变长度编码单元107根据接收到的 各块数据的出现频率生成可变长度码,具体的方式是:可变编码单元107为出 现频率高的数据块分配短代码,为出现频率低的数据块分配长代码。然后,可 变长度编码单元107将生成的可变长度码输出到缓冲存储器108。
缓冲存储器108接收来自可变长度编码单元107的可变长度码,并将这些 代码存储起来。存储在缓冲存储器108中的可变长度码将被输出到主存储器 110。
速率控制单元109负责监测缓冲存储器108接收到的可变长度码中包含的 比特数量,并对量化单元106的量化位阶进行优化。
主存储器110接收来自缓冲存储器108的可变长度码,并将这些代码存储 起来。存储在主存储器110中的可变长度码将被输出到外部存储设备(CD-R、 存储卡等)。
反量化单元126接收I-图像宏块的量化DCT系数,或P-图像宏块的差分 数据的量化DCT系数。然后,反量化单元126对接收到的量化DCT系数执行反 量化操作,以生成DCT系数。之后,反量化单元126将生成的I-图像宏块的 DCT系数或P-图像宏块的差分数据的DCT系数输出到反DCT单元125。
反DCT单元125接收来自反量化单元126的I-图像宏块的DCT系数,或 P-图像宏块的差分数据的DCT系数,并对接收到的DCT系数执行反DCT变换, 进而生成I-图像的宏块或P-图像宏块的差分数据。之后,反DCT单元125将 生成的I-图像宏块或P-图像宏块的差分数据输出到加法单元124。
加法单元124接收来自反DCT单元125的I-图像宏块或P-图像宏块的差 分数据,以及来自预测图像生成单元123的P-图像宏块预测图像。之后,加 法单元124将接受到的I-图像宏块原封不动地输出到参考帧存储器131。此外, 加法单元124还将接收到的P-图像宏块的差分数据与P-图像宏块的预测图像 相加,生成P-图像宏块,并将生成的P-图像宏块输出到参考帧存储器131。
参考帧存储器131接收来自加法单元124的I-图像宏块和P-图像宏块, 并将接收到的这些宏块存储起来。
运动检测单元130接收来自分类单元102的P-图像宏块或B-图像宏块, 并基于存储在参考帧存储器131内的I-图像宏块或P-图像宏块检测接收到的 P-图像宏块或B-图像宏块的运动矢量,并将检测到的运动矢量输出到可变长 度编码单元107和预测图像生成单元123。在面将对运动检测单元130进行详 细说明。
预测图像生成单元123接收来自运动检测单元130的P-图像宏块或B-图 像宏块的运动矢量,并基于接收的运动矢量和存储在参考帧存储器131内的 I-图像或P-图像宏块生成P-图像或B-图像的预测图像。之后,预测图像生成 单元123将生成的P-图像宏块的预测图像输出到减法单元104和加法单元 124。另外,预测图像生成单元123还将B-图像宏块的预测图像输出到减法单 元104。
1.2参考帧存储器131
参考帧存储器131由RAM构成,用于存储I-图像和P-图像的帧图像,在 运动补偿预测编码中,运动矢量的检测和预测图像的生成都在这些帧图像的基 础上完成。将由加法单元124输出并存储在参考帧存储器131中的I-图像或 P-图像称为参考帧,并将构成各参考帧的宏块称为参考块。
1.3运动检测单元130
如图3所示,运动检测单元130包括运动检测控制单元132、参考帧存储 器控制单元133、参考图像数据缓冲器134、目标图像数据缓冲器135、运动 矢量计算单元136、输入单元137和输出单元138。
(1)输入单元137
输入单元137接收作为运动矢量检测目标的P-图像宏块或B-图像宏块(下 文称该宏块为目标块),并将接收到的目标块传输到目标图像数据缓冲器135。 与此同时,输入单元137将表示目标块接收的控制信号发送给运动检测控制单 元132。需特别指出的是,当输入单元137接收到表示来自分类单元102的添 加到目标块上的表示帧图像开始的控制信号时,输入单元137将接收到的表示 帧图像开始的控制信号输出到运动检测控制单元132。
(2)参考图像数据缓冲器134和目标图像数据缓冲器135
如图3所示,参考图像数据缓冲器134包括141到144四个存储器,各存 储器的容量为16像素×48行。存储器141到144分别由单独的总线146到149 连接到运动矢量计算单元136和参考帧存储器控制单元133。存储器141到144 还分别由单独的总线151到154连接到运动检测控制单元132。
各存储器有三个块区,各块区具有存储一个宏块的容量。图4示出了参考 图像数据缓冲器134中此类块区的示意图。
如图4所示,参考图像数据缓冲器134由1到12共十二个块区组成,这 些块区按照三行四列的矩阵形式排列。存储器141由第一列中的块区1、5和 9组成,存储器142由第二列中的块区2、6和10组成。存储器143由第三列 中的块区3、7和11组成,存储器144由第四列中的块区4、8和12组成。
第一行的块区1到4所分配的物理地址分别为“1”、“2”、“3”、“4”。第 二行的块区5到8所分配的物理地址分别为“5”、“6”、“7”、“8”。第三行块 区9到12所分配的物理地址分别为“9”、“10”、“11”、“12”。各物理地址表 示相应块区所处的位置。
各块区都由按16行16列的矩阵形式排列的存储单元组成。各存储单元会 分配一单元地址。更确切地说,物理地址为“1”的块区中第一行的十六个存 储单元所分配的单元地址分别为0到15。物理地址为“2”的块区中第一行的 存储单元所分配到的单元地址分别为16到31。物理地址为“3”的块区中第 一行的存储单元所分配到的单元地址分别为32到47。物理地址为“4”的块 区中第一行的存储单元所分配到的单元地址分别为48到63。另外,物理地址 为“1”的块区中第二行的十六个存储单元所分配到的单元地址分别为64到 79。物理地址为“2”的块区中第二行的存储单元所分配到的单元地址分别为 80到95。物理地址为“3”的块区中第二行的存储单元所分配到的单元地址分 别为96到111。物理地址为“4”的块区中第二行存储单元所分配到的单元地 址分别为112到127。这样,连续的单元地址就通过这种方式分配给每行的六 十四个存储单元,单元地址0到3071分别分配给参考图像数据缓冲器134中 的3072个存储单元。
参考图像数据缓冲器134接收来自参考帧存储器控制单元133的参考块, 并将接收到的参考块存储起来。
目标图像数据缓冲器135具有存储一个宏块的容量,其接收来自输入单元 137的目标块,并将接收到的目标块存储起来。
(3)运动检测控制单元132
运动检测控制单元132按如下方式控制检测运动矢量的整个操作。
在下面针对运动矢量检测的说明中,“参考区”是指参考帧图像中包含3 行×3列参考块的区域,使得与目标块具有相同编号的参考块包含在这些参考 块的中心。
一帧的运动矢量检测的控制
在下述说明中,将包括构成帧图像一行的区域称为宏块行。将块编号为“n” 的参考块称为参考块“n”,将块编号为“n”的目标块称为目标块“n”。
运动检测控制单元132通过下面的操作(i)到(iii)控制一帧图像的运 动矢量检测。
(i)初始化
运动检测控制单元132通过输入单元137接收来自分类单元102的表示帧 图像开始的控制信号。然后,运动检测控制单元132将块变量“n”的值设置 为“1”,并利用块变量“n=1”设置PAT标志。
运动检测控制单元132会将块变量“n”存储起来,它表示作为运动矢量 检测目标的目标块的块编号。在接收到来自输入单元137并表示已经接收到了 目标块的控制信号后,运动检测控制单元132使块变量“n”加“1”。 下面描述PAT标志。
(ii)各宏块行的重复操作
对目标帧中的各宏块行重复执行下述(A)到(C)操作。
(A)运动检测控制单元132将参考块写入参考图像数据缓冲器134。该 参考块用于检测位于宏块行起始处的目标块的运动矢量。
(B)运动检测控制单元132对构成一个宏块行的第一到第七个目标块重 复执行下面的操作(a)和操作(b)。
(a)运动检测控制单元132对各目标块并行执行下面的操作(a-1)和操 作(a-2)
(a-1)检测各目标块的运动矢量
(a-2)写入与后继目标块相对应的参考块
(b)运动检测控制单元132接收来自输入单元137并表示接收到了目标 块的控制信号。该目标块将成为运动矢量检测的下一目标。然后,运动检测控 制单元132使块变量“n”加“1”,并利用加和后产生的块变量设置PAT标志。
(C)运动检测控制单元132对宏块行中的第八个目标块执行运动矢量检 测。接下来,运动检测控制单元132接收来自输入单元137的表示已经接收到 了目标块的控制信号。该目标块成为运动矢量检测的下一个目标。然后,运动 检测控制单元132使块变量“n”加“1”,并利用加和后生成的块变量设置PAT 标志。
(iii)运动检测控制单元132检测目标块“64”的运动矢量,并结束一 帧的运动矢量检测。
下面将对上述的操作(i)到(iii)进行详细说明。
(i)初始化
运动检测控制单元132接收来自输入单元137并表示帧图像开始的控制信 号,并将块变量“n”的值设置为“1”。
然后,运动检测控制单元132设置一个四位的PAT标志。下面是对PAT 标志的详细说明。
如图5所示,目标帧310被划分成六十四个宏块。各宏块都被划分为如目 标帧320所示的9个区320a到320i中的一个。各宏块的划分是根据该宏块是 否靠近这一帧的上、下、左、右边缘完成的。区320a包括既邻接左边缘,又 邻接上边缘的目标块“1”。区320包括邻接上边缘的目标块“2”到“7”。区 320c包括邻接左边缘的目标块“9”、“17”……“49”。区320d包括不邻接任 一边缘的目标块“10”到“15”,“18”到“23”……“50”到“55”。区320e 包括既邻接下边缘,又邻接左边缘的目标块“57”。区320f包括邻接下边缘的 目标块“58”到“63”。区320g包括既邻接上边缘,又邻接右边缘的目标块“8”。 区320h包括邻接右边缘的目标块“16”、“24”……“56”。区320i包含既邻 接右边缘,又邻接下边缘的目标块“64”。
PAT标志由第一位、第二位、第三位和第四位组成。如果目标块邻接目标 帧的上边缘,那么第一位就被设置为“1”。如果目标块未与上边缘相邻接,那 么第一位就被设置为“0”。如果目标块邻接目标帧的下边缘,那么第二位就被 设置为“1”。如果目标块未与目标帧的下边缘相邻接,那么第二位将被设置为 “0”。如果目标块与目标帧的左边缘相邻接,那么第三位将被设置为“1”。如 果目标块未与目标帧的左边缘相邻接,那么第三位将被设置为“0”。如果目标 块与目标帧的右边缘相邻接,那么第四位将被设置为“1”。如果目标块未与目 标帧的右边缘相邻接,那么第四位将被设置为“0”。
包括在目标帧320的区320a内的目标块“1”既邻接上边缘,又邻接左边 缘。所以,第一位和第三位为“1”,第二位和第四位均为“0”。因此,其PAT 标志为“1010”。
包括在区320b中的目标块“2”到“7”邻接上边缘。因此,第一位为“1”, 第二位、第三位和第四位均为“0”。进而其PAT标志为“1000”。包括在区320c 中的目标块“9”、“17”……“49”邻接左边缘。因此,第三位为“1”,第一 位、第二位和第四位均为“0”。进而其PAT标志为“0010”。包括在区320d 中的目标块“10”到“15”,“18”到“23”……“50”到“55”未与任何边缘 相邻接。因此所有的位均为“0”。进而其PAT标志为“0000”。包括在区320e 中的目标块“57”既邻接下边缘,又邻接左边缘。因此,第二位和第三位为“1”, 第一位和第四位为“0”。进而其PAT标志为“0110”。包括在区320f中的目标 块“58”到“63”与下边缘相邻接。因此,第二位为“1”,第一位、第三位和 第四位为“0”。进而其PAT标志为“0100”。包括在区320g中的目标块“8” 既与上边缘相邻接,又与右边缘相邻接。因此第一位和第四位为“1”,第二位 和第三位为“0”。进而其PAT标志为“1001”。包括在区320h中的目标块“16”、 “24”……“56”与右边缘相邻接,因此,第四位为“1”,第一位、第二位和 第三位为“0”。进而其PAT标志为0001。包块在区320i中的目标块“64”既 邻接下边缘,又邻接右边缘。因此,第二位和第四位为“1”,第一位和第三位 为“0”。进而其PAT标志为“0101”。
运动检测控制单元132通过下述方式利用块变量“n”将PAT标志的各位 设置为“0”或“1”。
运动检测控制单元132判断是否满足n≤8这一条件,如果满足,将第一 位设置为“1”,如果不满足,将第一位设置为“0”。运动检验控制单元132 判断是否满足n≥57这一条件,如果满足,将第二位设置为“1”,否则设为“0”。 接下来,运动检测控制单元132计算n/8的余数。如果余数为“1”,运动检测 控制单元132会将第三位设置为“1”,如果余数不是“1”,就会将第三位设置 为“0”。运动检测控制单元132判断n/8的余数是否为“0”。如果n/8的余数 为“0”,运动检测控制单元会将第四位设置为“1”。如果n/8的余数不为“0”, 运动检测控制单元就会将第四位设置为“0”。
每次块变量“n”发生改变时,运动矢量控制单元132都会按照上述方式, 根据改变后的块变量“n”计算PAT标志。
(ii)各宏块行的重复操作
对目标帧中的各宏块行重复执行下面的操作(A)到(C)。
(A)运动检测控制单元132输出宏块行顶部目标块的块变量“n”,并将 PAT标志设置到参考帧存储器控制单元133。然后,运动检测控制单元132指 示参考帧存储器控制单元133读取检测目标块“n”的运动矢量所需的参考块, 并将读取的参考块输出到参考图像数据缓冲器134。
接下来,运动检测控制单元132将参考帧存储器控制单元133输出的参考 块存储到参考图像数据缓冲器134的一个块区中。这一块区已经被预先确定为 写入目的地。在下面有关参考帧存储器控制单元133的说明当中,会对参考帧 存储器控制单元133输出的参考块进行详细介绍。
而且,在被设置成与宏块行的顶端目标块相对应的参考块的写入目的地的 块区当中,运动检测控制单元132将右上方的块区的物理地址设置为参数“t”。 该参数“t”用于在参考图像数据缓冲器134中计算目的地块区的物理地址。 与后继目标块相对应的参考块将被写入该目的地块区。在下面的(a-2)中将 对参数“t”进行详细描述。
更确切地讲,运动检测控制单元132将四个参考块分别存储在参考图像数 据缓冲器134所包括的物理地址为“6”、“7”、“10”和“11”的块区中。这四 个参考块对应于包括在区320a中的目标块(PAT标志为1010)。然后,运动检 测控制单元132将参数“t”设置为“7”。
运动检测控制单元132将六个参考块分别存储到包括在参考图像数据缓 冲器134中的物理地址为“2”、“3”、“6”、“7”、“10”和“11”的块区中。这 六个参考块对应于区320c中包括的目标块(PAT标志为0010)。然后,运动检 测控制单元132将参数“t”设置为“3”。
运动检测控制单元132将四个参考块分别存储到包括在参考图像数据缓 冲器134中物理地址分别为“2”、“3”、“6”、“7”的块区中。这四个参考块对 应于包括在区320e中的目标块(PAT标志为0110)。然后,运动检测控制单元 132将参数“t”设置为“3”。
完成上述操作后,运动检测控制单元132为参数“k”设置初值,即“k=0”。 每次对运动矢量进行检测时,利用参数“k”读取参考块。在下面的操作(a-1) 中将对参数“k”进行详细的说明。
(B)接下来,如果PAT标志为“1010”、“1000”、“0010”,“0000”和“0100” (宏块行中第一到第七目标块)中的任一个时,运动检测控制单元132将根据 块编号“n”的PAT标志重复执行下面的操作(a)和操作(b)。如果PAT标志 为“1001”和“0001”(位于宏块行的末尾的目标块),运动检测控制单元132 执行操作(C)。如果PAT标志为“0101”(目标块“64”),运动检测控制单元 132将执行操作(iii)。
(a)运动检测控制单元对各目标块并行执行下面的(a-1)和(a-2)处 理。
注意,运动检测控制单元132可以单独控制存储器141到144,因为运动 检测控制单元132和参考图像数据缓冲器134中的存储器141到144是通过独 立的总线151到154相连接的。因此,运动检测控制单元132可以从包括指定 为检测区的块区的存储器中读取数据,与此同时向包括监测器以外的块区的存 储器中写入数据。这意味着运动检测控制单元132可以并行执行(a-1)操作 和(a-2)操作。
(a-1)各目标块的运动矢量检测
运动检测控制单元132通过下面的操作①到操作④控制各目标块的运动 矢量检测。
①首先,运动检测控制单元132将一个块区指定为检测区,该块区用来 存储检测目标块“n”的运动矢量所必需的参考块。该块区包括在参考图像数 据缓冲器134中。下面进行详细说明。
如图6所示,在运动矢量的检测过程中,运动矢量计算单元136所采用的 逻辑地址空间234由按照3行3列的矩阵形式排列的逻辑块区组成。逻辑地址 “1”、“2”、“3”分别分配给第一行从左至右的三个逻辑块区。逻辑地址“4”、 “5”、“6”分别分配给第二行从左至右的三个逻辑块区。逻辑地址“7”、“8”、 “9”分别分配给第三行从左至右的三个块区。
逻辑地址与物理地址不同。运动检测控制单元132通过公式“m=i+I+k” 计算逻辑地址“i”(i=1到9)对应的物理地址“m”(m=1到12)。这个包括了 9个块区,并且各块区都具有计算的物理地址“m”的区域就是目标块“n”的 检测区。检测区中的块区与逻辑地址空间中的逻辑块区相互对应,使得与目标 块具有相同块编号的参考块放置在逻辑地址空间的中心。参数“I”由逻辑地 址“i”确定,当i=1到3时,I=0。当i=4到6时,I=1。当i=7到9时,I=2。 注意,当i=1到3并且m>4时,m=m-4。当i=4到6并且m>8时,m=m-4。当 i=7到9并且m>12时,m=m-4。
参数“k”是一个取值范围为0到3的变量。每次执行目标块的运动矢量 检测时,参数“k”上就加1,同时参考图像数据缓冲器134中的检测区移至 下一列。
下面将参考图6描述检测区按照参数“k”的变化而转换。
当k=0时,逻辑地址“i”和物理地址“m”之间的关系为“m=i+I”。在这 种情况下,具体如图6A所示,包括分别具有物理地址为“1”、“2”、“3”、“5”、 “6”、“7”、“9”、“10”和“11”的块区的区30将成为检测区。当k=1时,逻 辑地址“i”和物理地址“m”之间的关系为“m=i+I+1”。在这种情况下,如图 6B所示,包括分别具有物理地址为“2”、“3”、“4”、“6”、“7”、“8”、“10”、 “11”和“12”的块区的区31将成为检测区。当k=2时,逻辑地址“i”和物 理地址“m”之间的关系为“m=i+I+2”。在这种情况下,如图6C所示,包括分 别具有物理地址为“3”、“4”、“7”、“8”、“11”和“12”的块区的区32a和包 括分别具有物理地址分别为“1”、“5”和“9”的块区的32b将成为检测区。 当k=3时,逻辑地址“i”与物理地址“m”之间的关系为“m=i+I+3”。在这种 情况下,如图6D所示,包括分别具有物理地址为“4”、“8”和“12”的块区 的区33a和包括分别具有物理地址为“1”、“2”、“5”、“6”、“9”和“10”的 块区的区33b将成为检测区。
②逻辑地址空间包含3×3个逻辑块区,其中对应于存储着与目标块“n” 具有相同块编号的参考块的逻辑块放置在中心。对于包括在区320a中的目标 块来讲,与存储着检测其运动矢量所需的参考块的块区相对应的逻辑块区只是 分别具有逻辑地址为“5”、“6”、“8”和“9”的逻辑块区。而且,对于包括在 区320b中的目标块来讲,与存储着检测其运动矢量所需的参考块的块区相对 应的逻辑块区只是分别具有逻辑地址为“4”、“5”、“6”、“7”、“8”、“9”的逻 辑块区。对于包括在区320c中的目标块来讲,与存储着检测其运动矢量所需 的参考块的块区相对应的逻辑块区只是分别具有逻辑地址为“2”、“3”、“5”、 “6”、“8”、和“9”的逻辑块区。对于包括在区320e中的目标块来讲,与存 储着检测其运动矢量所需的参考块的块区相对应的逻辑块区只是分别具有逻 辑地址为“2”、“3”、“5”、“6”的逻辑块区。对于包括在区320f中的目标块 来讲,与存储着检测其运动矢量所需的参考块的块区相对应的逻辑块区只是分 别具有逻辑地址为“1”、“2”、“3”、“4”、“5”和“6”的逻辑块区。对于包括 在区320g中的目标块来讲,与存储着检测其运动矢量所需的参考块的块区相 对应的逻辑块区只是分别具有逻辑地址为“4”、“5”、“7”、“8”的逻辑块区。 对于包括在区320h中的目标块来讲,与存储着检测其运动矢量所需的参考块 的块区相对应的逻辑块区只是分别具有逻辑地址为“1”、“2”、“4”、“5”、“7” 和“8”的逻辑块区。对于包括在区320i中的目标块来讲,与存储着检测其运 动矢量所需的参考块的块区相对应的逻辑块区只是分别具有逻辑地址为“1”、 “2”、“4”、“5”的逻辑块区。因此,运动检测控制单元132在检测区中指定 计算范围,避免在运动矢量检测的过程中使用上述范围之外的逻辑块区。更确 切地说,运动检测控制单元132通过使用块匹配法指定目标块位移(x,y)的 范围,进而确定下面给出的计算范围。在下文中将对块匹配法进行详细说明。
如果目标块位于区320a(PAT标志为“1010”)中,运动检测控制单元132 指定计算范围为0≤x≤16,0≤y≤16。如果目标块位于区320b(PAT标志为 “1000”)中,那么运动检测控制单元132指定计算范围为-16≤x≤16,0≤y ≤16。如果目标块位于区320c(PAT标志为“0010”)中,那么运动检测控制 单元132指定计算范围为0≤x≤16,-16≤y≤16。如果目标块位于区320d(PAT 标志为“0000”)中,那么运动检测控制单元132指定计算范围为-16≤x≤16, -16≤y≤16。如果目标块位于区320e(PAT标志为“0110”)中,那么运动检 测控制单元132指定计算范围为0≤x≤16,-16≤y≤0。如果目标块位于区320f (PAT标志为“0100”)中,那么运动检测控制单元132指定计算范围为-16≤ x≤16,-16≤y≤0。如果目标块位于区320g(PAT标志为“1001”)中,那么 运动检测控制单元132指定计算范围为-16≤x≤0,0≤y≤16。如果目标块位 于区320h(PAT标志为“0001”)中,那么运动检测控制单元132指定计算范 围为-16≤x≤0,-16≤y≤16。如果目标块位于区320i(PAT标志为“0101”) 中,那么运动检测控制单元指定计算范围为-16≤x≤0,-16≤y≤0。
③接下来,运动检测控制单元132将按照上述规律确定的计算范围和执 行运动矢量检测的指令输出到运动矢量计算单元136。
然后,运动检测控制单元132会反复执行下面的操作③-1到操作③-4,直 到从运动矢量计算单元136接收到表示运动矢量检测已经结束的控制信号为 止。当接收到表示运动矢量检测已经结束的控制信号时,运动检测控制单元 132会命令输出单元138将检测到的运动矢量输出到预测图像生成单元123和 可变长度编码单元107中。
③-1首先,运动检测控制单元132从运动矢量计算单元136接收在目标 块上的像素位置(p,j)和逻辑地址空间上的坐标(x’,y’)。(在下文中会 对像素位置(p,j)和坐标(x’,y’)进行详细说明)。
③-2运动检测控制单元132从目标图像数据缓冲器135中读取与接收到 的像素位置(p,j)相对应的图像数据,并将读取的图像数据输出到运动矢量 计算单元136。
③-3运动检测控制单元132通过下述计算将接收到的逻辑地址空间上的 坐标(x’,y’)转换成单元地址。
首先,运动检测控制单元132判断参数“k”的值。如果k=0,运动检测 控制单元132计算“X=x’+16”和“Y=y’+16”的值。如果k=1,运动检测控 制单元132计算“X=x’+32”和“Y=y’+16”的值。如果k=2,运动检测控制 单元1 32计算“X=x’+48”(x’≤15),“X=x’-16”(x’≥16)和“Y=y’+16” 的值。如果k=3,运动检测控制单元1 32计算“X=x’+64”(x’≤-1),“X=x’” (x’≥0)和“Y=y’+16”的值。
这里,X与构成参考图像数据缓冲器134的48行×64列存储器单元的各 列逐一对应,并且表示包括其单元地址将要进行计算的存储器单元的列。Y与 构成参考图像数据缓冲器134的48行×64列存储器单元的各行逐一对应,并 且表示包括其单元地址将要进行计算的存储器的行。(0≤x≤63,0≤y≤47) 然后,运动检测控制单元132计算单元地址“X+64Y”的值。
③-4运动检测控制单元132读取存储在具有计算的单元地址的存储单元 中的像素数据,并将读取的像素数据输出到运动矢量计算单元136。
④运动检测控制单元132向参数“k”加“1”,并判断参数“k”是否满 足k=4。如果k=4,运动检测控制单元将“k”设置为“0”。如果k≠4,运动 检测控制单元132执行下一步操作。
(a-2)写入与目标块“n+1”相对应的参考块
通过下述操作,将检测运动矢量检测的下一个目标块“n+1”的运动矢量 所需的参考块写入参考图像数据缓冲器134。
首先,运动检测控制单元132计算“n’=n+1”的值,该值通过向块变量 “n”加“1”得到。然后,运动检测控制单元132利用上面(i)中描述的方 法设定块变量“n’”的PAT标志。
运动检测控制单元132将块变量“n’”的值和设置完毕的块变量“n’” 的PAT标志输出到参考帧存储器控制单元133,并且控制参考块的读取并将读 取的参考块输出到参考图像数据缓冲器134。
然后,运动检测控制单元132选择参考图像数据缓冲器134内的写入目的 地,并按照块变量“n’”PAT标志将参数“t”写入参考块。
如果目标块所处的区为320a或320b,那么参数“t”的范围是4到7,如 果目标块所处的区为320c到320f,那么参数“t”的范围为0到3。每次向参 考图像数据缓冲器134中写入与目标块相对应的参考块时,参数“t”都会加 “1”,并且参考图像数据缓冲器134中准备写入参考块的写入目的地区移到下 一列。
如果块变量“n’”的PAT标志为“1000”,运动检测控制单元132判断参 数“t”是否满足t=8。如果t=8,运动检测控制单元132将“t”设置为“4”。 如果t≠8,运动检测控制单元执行下一步操作。然后,运动检测控制单元132 将物理地址分别为“t+1”和“t+5”的块区指定为写入目的地区,并使参数“t” 加“1”。
如果块变量“n’”的PAT标志为“0000”或“0100”,那么运动检测控制 单元132判断参数“t”是否满足t=4这一条件。如果t=4,运动检测控制单 元132将“t”设置为“0”。如果t≠4,运动检测控制单元132将执行下一步 操作。然后,运动检测控制单元132将物理地址分别为“t+1”、“t+5”和“t+9” 的块区指定为写入目的地区,并使参数“t”加“1”。
完成了加法操作后,运动检测控制单元132将参考帧存储器控制单元133输出 的参考块写入指定为写入目的地的块区。
(b)接下来,运动检测控制单元132接收到来自输入单元137并且表示 已经接收到目标块的控制信号,并向块变量加“1”。然后,运动检测控制单元 132利用相加后的块变量结果设置PAT标志。
(c)运动检测控制单元132按照(a-1)中描述的操作执行宏块行中第8 个目标块的运动矢量检测。然后,运动检测控制单元132利用执行完加法操作 后得到的块变量设置PAT标志。
(iii)运动检测控制单元132按照(a-1)中描述的操作检测目标块“64” 的运动矢量,并且完成了对一帧运动矢量的检测。
(4)参考帧存储器控制单元133
参考帧存储器控制单元133从运动检测控制单元132接收块变量“n”和 由块变量“n”计算的PAT标志。然后,参考帧存储器控制单元133接收读取 和输出参考块的指令。
参考帧存储器控制单元133根据接收到的PAT标志执行下述计算,并选择 下一次将要从参考帧存储器131传输到参考图像数据缓冲器134的参考块。执 行选择操作的目的在于防止存储在参考图像数据缓冲器134内的参考块产生 重复。
如果目标块位于区320a(PAT标志为“1010”),参考帧存储器控制单元 133选择块编号分别为“n”、“n+1”、“n+8”和“n+9”的参考块。
如果目标块位于区320b(PAT标志为“1000”),参考帧存储器控制单元 133选择块编号分别为“n+1”和“n+9”参考块。
如果目标块位于区320c(PAT标志为“0010”),参考帧存储器控制单元 133选择块编号分别为“n-8”、“n-7”、“n”、“n+1”、“n+8”和“n+9”的参考 块。
如果目标块位于区320d(PAT标志为“0000”),参考帧存储器控制单元 133选择块编号分别为“n-7”、“n+1”和“n+9”的参考块。
如果目标块位于区320e(PAT标志为“0110”),参考帧存储器控制单元 133选择块编号分别为“n-8”、“n-7”、“n”和“n+1”的参考块。
如果目标块位于区320f(PAT标志为“0100”),参考帧存储器控制单元 133选择块编号分别为“n-7”和“n+1”的参考块。
如果目标块位于区320g到320i(PAT标志为“1001”、“0001”或“0101”), 参考帧存储器控制单元133不选择任何参考块并且执行下一步操作。
然后,参考帧存储器控制单元133从参考帧存储器131中读取选定的参考块, 并将读取的参考块输出到参考图像数据缓冲器134。
(5)运动矢量计算单元136
对于运动矢量的计算,需要定义一坐标系。在该坐标系下,逻辑地址空间 中逻辑地址为“5”的逻辑块区的左上方像素所处的位置定义为原点(0,0)。 x’轴表示的值从左至右逐渐增加,y’轴表示的值从上至下增加。借助这一坐 标系,可以采用坐标的形式表示各像素。逻辑地址空间内的各像素都处于-16 ≤x’≤31和-16≤y’≤31所表示的范围内。
如果目标块的位置转换到了上面定义的逻辑地址空间中,那么将通过(x, y)表示这种转换的位移。如果目标块与逻辑地址为“5”的逻辑块区相同,那 么该位移由(0,0)表示。目标块将在-16≤x≤16和-16≤y≤16所表示的范 围内发生位移。
另外,坐标值“p”和坐标值“j”定义在目标块内的16行×16列像素上。 坐标值“p”按照按从左到右的顺序从0增加到15,坐标值“j”按照从上到 下的顺序从0增加到15。通过(p,j)表示各像素。像素位置为(p,j)的 像素数据由“初始(p,j)”表示。
如果目标块在逻辑空间内的位移为(x,y),那么,与目标块上的像素位 置(p,j)相对应的逻辑地址空间上的像素坐标为(p+x,j+y)。与逻辑空间 上的坐标(p+x,j+y)相对应的参考块上的像素数据由“当前(p+x,j+y)” 表示。
运动矢量计算单元136接收来自运动检测控制单元132的用于检测运动矢 量的计算范围和指令。运动矢量计算单元136通过执行操作(i)和操作(ii) 检测运动矢量。下面是对操作(i)和操作(ii)的说明。
(i)运动矢量检测
在运动检测控制单元132指定的检测区内,所有位移(x,y)的运动矢量 通过下面的操作(a)和操作(b)进行检测。
(a)误差值S(x,y)的计算
对各“p”和“j”(0≤p≤15,0≤j≤15)执行下面的操作(a-1)至操作 (a-3)计算位移(x,y)的误差值S(x,y)。利用公式1作为误差值的一个 例子,可以按照下述操作计算出绝对平均误差值。
(a-1)运动矢量计算单元136将目标块上的像素位置(p,j)和逻辑地 址空间上与像素位置(p,j)相对应的的坐标(p+x,j+y)输出到运动检测控 制单元132。(为简化起见,假设x’和y’分别满足x’=p+x和y’=j+y)。
(a-2)接下来,运动矢量计算单元136从运动检测控制单元132接收目 标块“n”上与像素位置(p,j)相对应的像素数据“初始(p,j)”和参考块 上与坐标(x’,y’)相对应的像素数据“当前(x’,y’)”。
(a-3)将接收到的像素数据分配给下面的公式1。
公式1
S ( x , y ) = Σ j = 0 15 Σ p = 0 15 | original ( p , j ) - previous ( p + x , j + y ) |
original:初始previous:当前
(b)运动矢量计算单元136比较各位移(x,y)计算出的误差值S(x, y),并确定最小位移(x,y)。
(ii)输出运动矢量
运动矢量计算单元136将操作(i)中确定的最小位移(x,y)作为目标 块“n”的运动矢量输出到输出单元138,并将表示检测已经结束的控制信号 输出到运动检测控制单元132。
通常将按照上述方法计算运动矢量的方法称为“块匹配法”。
(6)输出单元138
输出单元138按照来自运动检测控制单元132的指令接收由运动矢量计算 单元136计算的运动矢量,并将接收到的运动矢量输出到预测图像生成单元 123和可变长度编码单元107。
1.4运动检测单元130的操作
(1)检测一帧运动矢量的操作
下面参照图7和图8中的流程图对检测一帧运动矢量的操作进行说明。
输入单元137接收来自分类单元102的目标块“1”和表示帧图像开始的 控制信号,并将接收到的目标块“1”写入目标图像数据缓冲器135,并将表 示帧图像开始的控制信号传输到运动检测控制单元132。运动检测控制单元 132将块变量“n”设置为“n=1”并将PAT标志设置为由块变量计算出的“1010” (步骤S301)。
在步骤S302到S338中,对各宏块行重复执行步骤S303到S337的处理, 直到完成目标帧内所有宏块行的矢量检测为止。
运动检测控制单元132将设置好的PAT标志和块变量“n”输出到参考帧 存储器控制单元133,并命令参考帧存储器控制单元133输出参考块(步骤 S303)。
参考帧存储器控制单元133根据从运动检测控制单元132接收到的PAT 标志和块变量“n”选择需要读取的参考块(步骤S304)。然后,参考帧存储 器控制单元133从参考帧存储器131中读取选定的参考块,并将读取的参考块 输出到参考图像数据缓冲器134(步骤S305)。
接下来,运动检测控制单元132标识设定的的PAT标志(步骤S306)。
如果标识出的PAT标志为“1010”(步骤S306),那么运动检测控制单元 132在参考图像数据缓冲器134中将物理地址分别为“6”、“7”、“10”和“11” 的块区指定为步骤S305输出的参考块的写入目的地,并将该参考块写入指定 的块区(步骤S307)。
接下来,运动检测控制单元132将参数“t”设置为物理地址“7”的值(步 骤S308)。该地址所属的块区位于步骤S307中指定为写入目标的块区的右上 方。
如果标识出的PAT标志为“0010”(步骤S306),那么运动检测控制单元 132在参考图像数据缓冲器134中将物理地址分别为“2”、“3”、“6”、“7”、“10” 和“11”的块区指定为步骤S305输出的参考块的写入目的地,并将该参考块 写入指定的块区(步骤S310)。
接下来,运动检测控制单元132将参数“t”的值设置为物理地址“3”的 值(步骤S311)。该地址所属的块区位于步骤S310中指定为写入目的地的块 区的右上方。
如果标识出的PAT标志为“0110”(步骤S306),那么运动检测控制单元 132在参考图像数据缓冲器134中将物理地址分别为“2”、“3”、“6”和“7” 的块区指定为步骤S305输出的参考块的写入目的地,并将该参考块写入指定 的块区(步骤S312)。
接下来,运动检测控制单元132将参数“t”的值设置为物理地址“3”的 值(步骤S313)。该地址所属的块区位于步骤S312中指定为写入目的地的块 区的右上方。
然后,将参数“k”设置为k=0(步骤S315)。
接下来,运动检测控制单元132对PAT标志进行判断(步骤S321)。如果 PAT标志为“1010”、“1000”、“0010”、“0000”、“0110”和“0100”中的任何 一个(步骤S321),那么运动检测控制单元132从参考图像数据缓冲器134内 的检测区中读取参考块,从目标图像数据缓冲器135中读取目标块“n”,并将 读取的参考块和目标块“n”输出到运动矢量计算单元136。运动矢量计算单 元136计算运动矢量(步骤S322)。
步骤S324到S329与步骤S322并行进行。
运动检测控制单元132通过向块编号“n”加“1”的方式计算“n’”,并 在块变量“n’”的基础上设置PAT标志(步骤S324)。
然后,运动检测控制单元132将计算出的块变量“n’”和块变量“n’” 的PAT标志输出到参考帧存储器控制单元133,并控制与目标块“n’”相对 应的参考块的读取和输出(步骤S325)。
参考帧存储器控制单元133根据接收到的PAT标志和块变量“n’”选择 需要读取的参考块(步骤S326)。然后,参考帧存储器控制单元133从参考帧 存储器131中读取选定的参考块,并将读取的参考块输出到参考图像数据缓冲 器134(步骤S327)。
接下来,运动检测控制单元132根据块变量“n’”的PAT标志和参数“k” 选择参考图像数据缓冲器134中作为写入目的地的块区(步骤S328)。然后, 运动检测控制单元132将步骤S327输出的参考块写入选定的块区(步骤 S329)。
输入单元137接收来自分类单元102的目标块“n+1”,并将接受到的目标 块“n+1”写入目标图像数据缓冲器135,并将表示接收到了目标块的控制信 号输出到运动检测控制单元132。运动检测控制单元132使块变量“n”加“1”, 并利用块变量“n”设置PAT标志(步骤S330)。
如果判定的PAT标志为“1001”或“0001”(步骤S321),运动检测控制 单元132从参考图像数据缓冲器134的检测区中读取参考块,从目标图像数据 缓冲器135中读取目标块“n”,并将读取的参考块和目标块“n”输出到运动 矢量计算单元136。运动矢量计算单元136接收参考块和目标块“n”,并根据 接收到的参考块和目标块“n”计算运动矢量(步骤S335)。
接下来,输入单元137从分类单元102接收目标块,并将接收到的目标块 写入目标图像数据缓冲器135,并且将表示已经接收到目标块的控制信号输出 到运动检测控制单元132。运动检测控制单元132使块变量“n”加“1”,并 利用块变量设置PAT标志(步骤S336)。
如果判定的PAT标志为“0101”(步骤S321),运动检测控制单元132从 参考图像数据缓冲器134的检测区读取参考块,从目标图像数据缓冲器135 中读取目标块“n”,并将读取的参考块和目标块“n”输出到运动矢量计算单 元136。运动矢量计算单元136接收参考块和目标块“n”,并根据接收到的参 考块和目标块“n”计算运动矢量(步骤S337)。然后,运动检测控制单元132 完成一帧运动矢量检测的全部操作。
(2)参考帧存储器控制单元执行的参考块选择
下面参照图9所示的流程图描述从参考帧存储器131传输到参考图像数据 缓冲器134的参考块的选择操作。注意,下面对图7中的步骤S304和图8中 的步骤S326进行详细说明。
接收到来自运动检测控制单元132的块变量“n”和PAT标志后,参考帧 存储器控制单元133根据接收到的PAT标志执行下述操作(步骤S250)。
如果PAT标志为“1010”(步骤S250),那么参考帧存储器控制单元133 选择块编号分别为“n”、“n+1”、“n+8”和“n+9”的参考块(步骤S251)。
如果PAT标志为“1000”(步骤S250),那么参考帧存储器控制单元133 选择块编号分别为“n+1”和“n+9”的参考块(步骤S252)。
如果PAT标志为“0010”(步骤S250),那么参考帧存储器控制单元133 选择块编号分别为“n-8”、“n-7”、“n”、“n+1”、“n+8”和“n+9”的参考块(步 骤S253)。
如果PAT标志为“0000”(步骤S250),那么参考帧存储器控制单元133 选择块编号分别为“n-7”、“n+1”和“n+9”的参考块(步骤S254)。
如果PAT标志为“0110”(步骤S250),那么参考帧存储器控制单元133 选择块编号分别为“n-8”、“n-7”、“n”和“n+1”的参考块(步骤S255)。
如果PAT标志为“0100”(步骤S250),那么参考帧存储器控制单元133 选择块编号分别为“n-7”和“n+1”的参考块(步骤S256)。 如果PAT标志为“1001”、“0001”或“0101”,那么参考帧存储器控制单元133 将不会选择任何参考块,并执行下一步操作。
(3)各目标块的运动矢量检测
下面将参照图10所示的流程图详细描述检测各目标块的运动矢量的操 作。注意,下面对步骤S322、S335和S337进行详细说明。
可以通过公式“m=i+I+k”并利用参数“I”和“k”得出与逻辑地址“i” (i=1到9)相对应的物理地址“m”(步骤S341)。参数“I”随着逻辑地址“i” 的变化而发生变化。如果i=1到3,则I=0。如果i=4到6,则I=1。如果i=7 到9,则I=2。参数“k”的取值范围为0到3,其初始值为“0”。注意如果i=1 到3并且m>4,则m=m-4。如果i=4到6并且m>8,则m=m-4。如果i=7到9 并且m>12,则m=m-4。检测区就是由上面公式推导出的9个物理地址所代表的 区组成的区域。
接下来,运动检测控制单元132将设定好的与PAT标志相对应的计算范围 和运动矢量检测指令输出到运动矢量计算单元136(步骤S342)。
运动矢量计算单元136根据接收到的来自运动检测控制单元132的指令在 接收到的计算范围内检测运动矢量(步骤S343)。
运动矢量检测结束后,运动检测控制单元132通过输出单元138将检测到 的运动矢量输出到预测图像生成单元123和可变长度编码单元107(步骤 S344)。
接下来,运动检测控制单元132使参数“k”加“1”(步骤S345)。这时, 运动检测控制单元132会判断是否满足k=4(步骤S346)。如果k=4,运动检 测控制单元132将“k”设置为“0”。如果k≠4(步骤S346),运动检测控制 单元132跳开此步操作,并结束对各目标块的运动矢量检测。
(4)参考块写入目的地的选择
下面参照图11所示的流程图对选择参考图像数据缓冲器134中的块区的 操作进行说明,该块区将作为参考帧存储器控制单元133输出的参考块的写入 目的地。注意,下面对图8所示的流程图中的步骤S328进行详细说明。
运动检测控制单元132根据从块变量“n’”计算出的PAT标志执行下述 处理(步骤S351)。
如果PAT标志为“1000”(步骤S351),运动检测控制单元132判断是否 满足t=8(步骤S352)。如果t=8,运动检测控制单元132将“t”设置为“4” (步骤S353)。如果t≠8,运动检测控制单元132跳过该操作并执行步骤S354。
接下来,运动检测控制单元132在参考图像数据缓冲器134中将物理地址 分别为“t+1”和“t+5”的块区指定为参考块的写入目的地(步骤S354),并 执行步骤S363。
如果PAT标志为“0000”或“0100”(步骤S351),运动检测控制单元132 判断是否满足t=4(步骤S360)。如果t=4,运动检测控制单元将“t”设置为 “0”(步骤S361)。如果t≠4,运动检测控制单元跳开该操作并执行步骤S362。
然后,运动检测控制单元132将参考图像数据缓冲器134中物理地址分别 为“t+1”、“t+5”和“t+9”的块区指定为参考块的写入目的地(S362)。 然后,运动检测控制单元132使参数“t”加“1”(步骤S363),并执行步骤 S329。
(5)运动检测控制单元132执行的改变检测区的操作 在参考图像数据缓冲器134中,通过上述计算确定检测区和参考块的写入目的 地。每处理完一目标块后,检测区和参考块的写入目的地就向下一区域转换。 图12示出了在目标帧中位于第一行的宏块行中的目标块运动矢量的检测过程 中,检测区和参考块写入目的地的转换。图12中的编号代表存储在各块区内 的参考块的块编号。下面给出了在参考图像数据缓冲器134中改变参考块的写 入目的地和运动矢量检测区的操作说明。
首先,参考帧存储器控制单元133根据块变量“n=1”和PAT标志“1010” 输出检测目标块“1”的运动矢量所需的参考块。如图12A所示,输出的参考 块“1”、“2”、“9”和“10”将被分别写入物理地址为“6”、“7”、“10”和“11” 的块区。
接下来,如图12B所示,运动检测控制单元132将包含3行3列块区的区 域13设置为检测区。区域13的中央是存储目标块“1”的块区。然后,运动 矢量计算单元136对运动矢量进行计算。与此同时,如图12B所示,在检测目 标块“2”的运动矢量所需的参考块中,没有存储到参考图像数据缓冲器134 中的参考块“3”和参考块“11”被写入物理地址分别为“8”和“12”的块区。
目标块“1”的运动矢量检测完成后,如图12C所示,运动检测控制单元 132将包含3行3列块区的区域15设置为检测区。区域15的中央是存储参考 块“2”的块区。与此同时,在检测目标块“3”的运动矢量所需的参考块中, 没有存储到参考图像数据缓冲器134中的参考块“4”和参考块“12”被写入 物理地址分别为“5”和“9”的块区。
目标块“2”的运动矢量检测完成后,如图12D所示,运动检测控制单元 132将包含3行2列块区的区域17a和包含3行1列块区的区域17b设置为检 测区。区域17a包含存储参考块“3”的块区。然后,运动矢量计算单元136 对运动矢量进行计算。尽管检测区17a和17b彼此分隔开,但这样并不会产生 问题,因为下面还要按照上述的说明在逻辑地址空间中对它们进行重新定位。 与此同时,如图12D所示,在检测目标块“4”所需的参考块中,没有存储到 参考图像数据缓冲器134的参考块“5”和参考块“13”被写入物理地址分别 为“6”和“10”的块区。
目标块“3”的运动矢量检测完成后,如图12E所示,运动检测控制单元 1 32将包含3行1列块区的区域19a和包含3行2列块区的区域19b设置为检 测区。区域19b包含存储参考块“4”的块区。然后,运动矢量计算单元136 对运动矢量进行计算。与此同时,如图12E所示,在检测目标块“5”所需的 参考块中,未存储到参考图像数据缓冲器134的参考块“6”和参考块“14” 被写入物理地址分别为“7”和“11”的块区。
目标块“4”的运动矢量检测完成后,如图12F所示,运动检测控制单元 132将包含3行3列块区的区域21设置为检测区。在区域21的中央为存储参 考块“5”的块区。然后,运动矢量计算单元136对运动矢量进行计算。与此 同时,如图12F所示,在检测目标块“6”所需的参考块中,未存储到参考图 像数据缓冲器134的参考块“7”和参考块“15”被写入物理地址分别为“8” 和“12”的块区。
如上所述,通过逐行移动检测区可以重复将参考块写入检测区外的块区的 操作。
1.5效果/总结
如上所述,按照本发明,参考图像数据存储器134由四个存储器141到 144构成,这些存储器由运动检测控制单元132独立控制。
运动检测控制单元132在参考图像数据缓冲器134中指定检测区,并从检 测区中逐像素地读取参考块,然后将读取的参考块输出到运动矢量计算单元 136。与此同时,运动检测控制单元132将检测下一目标块的运动矢量所需的 参考块写入未指定为检测区的区域。这里,参考帧存储器控制单元133对参考 块进行选择,避免参考图像数据缓冲器134中的参考块发生重复。
图13示出了在检测到目标帧上的目标块的运动矢量的同时,从参考帧存 储器131新传输到参考图像数据缓冲器134的参考块的编号。如果采用传统技 术,由参考帧存储器131传输到参考图像数据缓冲器134的参考块总数为每目 标帧484个。相反,如果采用本发明,参考块的总数仅为每目标帧176个。可 见,本发明可以在参考图像数据缓冲器134容量较小的条件下,降低参考块的 冗余传输。因此,本发明可以显著降低总流量。
2.第二实施例
下面描述按照本发明另一优选实施例的移动图像照像机100。
2.1移动图像照像机100的结构
移动图像摄像机100包括照像机单元101、分类单元102、开关103、减 法单元104、DCT单元105、量化单元106、可变长度编码单元107、缓冲存储 器108、速率控制单元109、主存储器110、预测图像生成单元123、加法单元 124、反DCT单元125、反量化单元126、开关127、运动检测单元130b和参 考帧存储器131。照像机单元101、分类单元102、开关103、减法单元104、 DCT单元105、量化单元106、可变长度编码单元107、缓冲存储器108、速率 控制单元109、主存储器110、预测图像生成单元123、加法单元124、反DCT 单元125、反量化单元126、开关127和参考帧存储器131的结构和所执行的 操作与第一实施例中相同,所以这里省略了相关描述。
2.2运动检测单元130b
如图14所示,运动检测单元130b包括运动检测控制单元132b、参考帧 存储器控制单元133、参考图像数据缓冲器134b、目标图像数据缓冲器135、 运动矢量计算单元136、输入单元137和输出单元138。参考帧存储器控制单 元133、运动矢量计算单元136、输入单元137和输出单元138的结构和所执 行的操作与第一实施例中相同,目标图像数据缓冲器135的结构与第一实施例 中相同。因此,这里省略了相关说明。
(1)参考图像数据缓冲器134
如图14所示,参考图像数据缓冲器134b包括5个存储器,即存储器161 到165,各存储器都具有存储16像素×48行的容量。存储器161到165通过 独立的总线166到170分别连接到运动矢量计算单元136和参考帧存储器控制 单元133。存储器161到165还通过独立的总线171到175分别连接到运动检 测控制单元132b。
另外,如图15所示,参考图像数据缓冲器134b由15个块区构成,即按 照3行5列的矩阵形式排列的块区81到95。各块区都具有存储一个宏块的容 量。存储器161由第一列中的块区81、86和91组成。存储器162由第二列中 的块区82、87和92组成。存储器163由第三列中的块区83、88和93组成。 存储器164由第四列中的块区84、89和94组成。存储器165由第五列中的块 区85、90和95组成。
第一行中的块区81到块区85所分配到的物理地址分别为“1”、“2”、“3”、 “4”、“5”。第二行中的块区86到90所分配到的物理地址分别为“6”、“7”、 “8”、“9”、“10”。第三行中的块区91到95所分配到的物理地址分别为“11”、 “12”、“13”、“14”和“15”。各物理地址都可以表示块区所处的位置。
构成各块区的存储单元都按照16行16列的矩阵形式排列。单元地址分配 到各存储单元。更确切地说,物理地址为“1”的块区81中,第一行中的16 个存储单元所分配到的单元地址分别为0到15。物理地址为“2”的块区82 中,第一行的存储单元所分配到的单元地址分别为16到31。物理地址为“3” 的块区83中,第一行的存储单元所分配到的单元地址分别为32到47。物理 地址为“4”的块区84中,第一行的存储单元所分配到的单元地址分别为48 到63。物理地址为“5”的块区85中,第一行的存储单元所分配到的单元地 址分别为64到79。在物理地址为“1”的块区81中,第二行的16个存储单 元所分配到的单元地址分别为80到95。在物理地址为“2”的块区82中,第 二行的存储单元所分配到的单元地址分别为96到111。在物理地址为“3”的 块区83中,第二行的存储单元所分配到的单元地址分别为112到127。在物 理地址为“4”的块区84中,第二行的存储单元所分配到的单元地址分别为 128到143。物理地址为“5”的块区85中,第二行的存储单元所分配到的单 元地址分别为144到159。这样,连续的单元地址就分配给每行的八十个存储 单元,单元地址0到3839分别分配给构成参考图像数据缓冲器134b的3840 个存储单元。
参考图像数据缓冲器134b接收来自参考帧存储器控制单元133的参考块, 并将接收到的参考块存储起来。
(2)运动检测控制单元132b
一帧的运动矢量检测的控制
运动检测控制单元132b通过下面的操作(i)和操作(ii)对一帧图像的 运动矢量检测进行控制。
在下面对运动矢量检测的说明中,“参考区”表示参考帧图像中包括3行 3列参考块的区域,使得与目标块具有相同编号的参考块包含在这些参考块的 中央。
(i)初始化
运动检测控制单元132b接收来自输入单元137的表示帧图像开始的控制 信号,将块变量“n”设置为“1”,并控制检测目标块“1”的运动矢量所需的 “参考块”向参考图像数据缓冲器134b的写入过程。
运动检测控制单元132b将表示作为运动矢量检测目标的目标块的块编号 的块变量“n”存储起来。在接收到来自输入单元137的表示已经接收到了目 标块的控制信号后,运动检测控制单元132使块变量“n”加“1”。
需特别指出的是,在接收到来自输入单元137的表示帧图像开始的控制信 号时,运动检测控制单元132b将块变量“n”设置为“1”。
PAT的设置方式与第一实施例中相同,这里省略了相关说明。
(ii)对每个宏块行的重复操作
运动检测控制单元132b对目标块“1”到“64”同时执行操作(a)和操 作(b)。
(a)检测各目标块中的运动矢量
(b)写入与下一目标块相对应的参考块。
下面对上述的操作(i)和操作(ii)进行详细说明。
(i)初始化
在接收到来自输入单元137的表示帧图像开始的控制信号时,运动检测控 制单元132b将块变量“n”设置为“1”,并利用块编号“n=1”将PAT标志设 置为“1010”。
接下来,运动检测控制单元132b将PAT标志“1010”和块编号“n=1”输 出到参考帧存储器控制单元133,并命令参考帧存储器控制单元133读取和输 出该参考块。
运动检测控制单元132b将参考帧存储器133输出的参考块存储在参考图 像数据缓冲器134b的块区中。这些被预先确定为写入目的地的块区的物理地 址分别为“7”、“8”、“12”和“13”。然后,运动检测控制单元132b将参数“t” 设置为“8”。参数“t”的作用在于计算参考图像数据缓冲器134b中作为写入 目的地的块区的物理地址。该目的地块区位于与后继目标块相对应的参考块 内。参数“t”是取值范围为5到9的变量。运动检测控制单元132b每将一与 目标块相对应的参考块写入参考图像数据缓冲器134b,就会使“t”加“1” 或加“2”,这样,参考图像数据缓冲器134b内的参考块写入目的地区就会移 到下一列或下下一列。
(ii)运动检测控制单元132b对目标块“1”到“64”重复并且并行执行 下面的操作(a)和操作(b)。运动检测控制单元132b可以独立控制存储器 161到165,因为运动检测控制单元132b和参考图像数据缓冲器134b中的存 储器161到165是通过独立总线171到175分别连接的。因此,运动检测控制 单元132b可以在从指定为检测区的块区内读取数据的同时,向检测区以外的 块区内写入数据。
(a)各目标块的运动矢量检测
运动检测控制单元132b通过下面的操作①到操作③控制各目标块的运动 矢量检测。
①如图16所示,在运动矢量的检测过程中,运动矢量计算单元136所采 用的逻辑地址空间234b包括按照3行3列矩阵的形式排列的多个逻辑块区。 第一行从左至右的三个逻辑块区分配的逻辑地址分别为“1”、“2”、“3”。第二 行从左至右的三个逻辑块区分配的逻辑地址分别为“4”、“5”、“6”。第三行从 左至右的三个块区分配的逻辑地址分别为“7”、“8”、“9”。
逻辑地址与参考图像数据缓冲器134b中的物理地址不同。运动检测控制 单元132b通过公式“m=i+I+k”计算与逻辑地址“i”(i=1到12)相对应的物 理地址“m”(m=1到15)。目标块“n”的检测区是由九个块区组成的区域,其 中各块区都具有经计算得出的物理地址“m”。检测区内的块区与逻辑地址空间 内的逻辑块区相互对应,使得与目标块具有相同块编号的参考块放置在逻辑地 址空间的中央。参数“I”由逻辑地址“i”确定。如果i=1到3,则I=0。如 果i=4到6,则I=2。如果i=7到9,I=4。注意,如果i=1到3且m>5,则m=m-5。 另外,如果i=4到6且m>10,则m=m-5。如果i=7到9且m>15,则m=m-5。
如上所述,参数k是取值范围为0到4的变量。检测区根据参数“k”移 到下一列或下下一列。下面将参照图16描述检测区是如何根据参数“k”的变 化进行转换的。
当k=0时,逻辑地址“i”和物理地址“m”之间的关系为“m=i+I”,这时, 如图16A所示,由物理地址分别为“1”、“2”、“3”、“6”、“7”、“8”、“11”、 “12”和“13”的块区组成的区域70将成为检测区。
当k=1时,逻辑地址“i”和物理地址“m”之间的关系为“m=i+I+1”,这 时,如图16B所示,由物理地址分别为“2”、“3”、“4”、“7”、“8”、“9”、“12”、 “13”和“14”的块区组成的区域71将成为检测区。当k=2时,逻辑地址“i” 和物理地址“m”之间的关系为“m=i+I+2”,这时,如图16C所示,由物理地 址分别为“3”、“4”、“5”、“8”、“9”、“10”、“13”、“14”和“15”的块区组 成的区域72将成为检测区。当k=3时,逻辑地址“i”和物理地址“m”之间 的关系为“m=i+I+3”,这时,如图16D所示,由物理地址分别为“4”、“5”、 “9”、“10”、“14”和“15”的块区组成的区域73a和由逻辑地址分别为“1”、 “6”和“11”的块区组成的区域73b将成为检测区。当k=4时,逻辑地址“i” 和物理地址“m”之间的关系为“m=i+I+4”,这时,如图16E所示,由物理地 址分别为“5”、“10”和“15”的块区组成的区域74a和由物理地址分别为“1”、 “2”、“6”、“7”、“11”和“12”的块区组成的区域74b将成为检测区。
②接下来,运动检测控制单元132b会将计算范围和执行运动矢量计算的 指令输出到运动矢量计算单元136。这里的计算范围与第一实施例中相同,因 此省略了相关说明。
然后,运动检测控制单元132b将重复执行②-1到②-4直到从运动矢量计算 单元136接收到表示运动矢量检测已经结束的控制信号为止。接收到表示运动 矢量检测已经结束的控制信号后,运动检测控制单元132b命令输出单元将检 测到的运动矢量输出到预测图像生成单元123和可变长度编码单元107。
②-1运动检测控制单元132b从运动矢量计算单元136接收目标块上的像 素位置(p,j)和逻辑地址空间内的坐标(x’,y’)。目标块上的像素位置(p, j)和逻辑地址空间内的坐标(x’,y’)与第一实施例中相同,因此这里省 略了相关说明。
②-2运动检测控制单元132b从目标图像数据缓冲器135中读取与接收到 的像素位置(p,j)相对应的图像数据,并将读取的数据输出到运动矢量计算 单元136。
②-3运动检测控制单元132b将接收到的逻辑空间内的坐标(x’,y’) 转换成单元地址。
更确切地说,首先,运动检测控制单元132b判断参数“k”的值。如果 k=0,则运动检测控制单元132b计算X=x’+16和Y=y’+16的值。如果k=1, 则运动检测控制单元132b计算X=x’+32和Y=y’+16的值。如果k=2,则运 动检测控制单元132b计算X=x’+48和Y=y’+16的值。如果k=3,则运动检 测控制单元132b计算X=x’+64(x’≤15),X=x’-16(x’≥16)和Y=y’+16 的值。如果k=4,则运动检测控制单元132b计算X=x’+80(x’≤-1),X=x’ (x’≥0)和Y=y’+16的值。
这里,X与构成参考图像数据缓冲器134b的48行80列存储单元中的每 一列逐一对应,并且表示包括将要进行计算的单元地址所属的存储单元的列。 Y与构成参考图像数据缓冲器134b的48行80列存储单元中的每一行逐一对 应,并且表示包括将要进行计算的单元地址所属的存储单元的行。(0≤X≤79, 0≤Y≤47)
然后,运动检测控制单元132b计算单元地址“X+80Y”。
②-4运动检测控制单元132b读取存储在具有计算的单元地址的存储单元 中的图像数据,并将读取的像素数据输出到运动矢量计算单元136。
③运动检测控制单元132b判断PAT标志
如果PAT标志为“1001”或“0001”(表示位于宏块行中的最后一目标块), 运动检测控制单元132b使参数“k”加“2”。如果PAT标志为“1010”、“1000”、 “0000”、“0110”和“0100”中的任何一个,那么运动检测控制单元132b使 参数“k”加“1”。
执行完上述计算后,运动检测控制单元132b判断是否满足k≥5。如果k ≥5,运动检测控制单元132b就从参数“k”上减“5”。如果k<5,则运动检 测控制单元132b就跳过该步骤,并且执行下一步。
如果经判断,PAT标志为“0101”(目标块“64”),那么运动检测控制单 元132b跳过上述加法操作,并结束一帧的运动矢量检测。
(b)写入与下一目标块相对应的参考块
运动检测控制单元132b按照下述操作将与运动检测的下一目标相对应的 参考块写入参考图像数据缓冲器134b。
运动检测控制单元132b判断PAT标志是否为“0101”(目标块“64”)。如 果PAT标志为“0101”,结束操作(a),一帧的运动矢量检测结束。
如果PAT标志不是“0101”,那么运动检测控制单元132b使块编号“n” 加“1”,从而求得n’=n+1的值,并利用块变量“n’”设置PAT标志。
然后,运动检测控制单元132b将块变量“n’”的值和PAT标志输出到参 考帧存储器控制单元133,并且对参考块的读取以及将读取的参考块输出到参 考图像数据缓冲器134b进行控制。
接下来,运动检测控制单元132b根据下述操作在参考图像数据缓冲器 134b中选择参考块的写入目的地。
首先,运动检测控制单元132b判断参数“t”是否满足t≥10。如果t≥ 10,运动检测控制单元132b就从“t”上减“5”。如果t<10,运动检测控制 单元132b就会跳过这一减法操作,并且执行下一步操作。
接下来,运动检测控制单元132b采取下述方式,根据块变量“n’”的 PAT标志,在参考图像数据缓冲器134b中选择参考块的写入目的地。
如果块变量“n’”的PAT标志为“1000”,运动检测控制单元132b将物 理地址分别为“t+1”和“t+6”的块区指定为写入目的地区,并使参数“t” 加“1”。
如果块变量“n’”的PAT标志为“0010”,运动检测控制单元132b将物 理地址分别为“t-4”、“t-3”、“t+1”、“t+2”、“t+6”和“t+7”的块区指定为 写入目的地区。这时,运动检测控制单元132b判断是否满足“t+7≥16”。如 果t+7≥16,运动检测控制单元132b将物理地址为“t-8”的块区指定为写入 目的地区,而不是将物理地址为“t+7”的块区指定为写入目的地区。如果 t+7<16,运动检测控制单元132b就跳过这一操作,并使参数“t”加“2”。
如果块变量“n’”的PAT标志为“0000”,运动检测控制单元132b将物 理地址分别为“t-4”、“t+1”和“t+6”的块区指定为写入目的地区,并使参 数“t”加“1”。
如果块变量“n’”的PAT标志为“0110”,运动检测控制单元132b将物 理地址分别为“t-4”、“t-3”、“t+1”和“t+2”的块区指定为写入目的地区。 这时,运动检测控制单元1 32b判断是否满足“t+2≥11”。如果t+2≥11,运 动检测单元132b将物理地址为“t-8”的块区指定为写入目的地区,而不是将 物理地址为“t+2”的块区指定为写入目的地区。如果t+2<11,运动检测控制 单元132b就跳过该操作,并使参数“t”加“2”。
如果块变量“n’”的PAT标志为“0100”,运动检测控制单元132b将物 理地址分别为“t-4”和“t+1”的块区指定为写入目的地区,并使参数“t” 加“1”。
如果块变量“n’”的PAT标志为“1001”或“0001”,运动检测控制单元 132b将不选择任何块区作为写入目的地区,这时只需使参数“t”加“1”。
如上所述,运动检测控制单元132b根据“n’”的PAT标志将参考帧存储 器控制单元133输出的参考块写入指定为写入目的地的块区。
在接收到表示已经接收到了来自输入单元137的目标块的控制信号后,运 动检测控制单元132b使块变量“n”上加“1”,并根据加法运算得出的块变量 “n”设置PAT标志。
2.3运动检测单元130b的操作
(1)检测一帧运动矢量的操作
下面将参照图17和图18所示的流程图对一帧运动矢量检测的相关操作进 行说明。
输入单元137从分类单元102接收到目标块“1”和表示帧图像开始的控 制信号,将接收到的目标块“1”写入目标图像数据缓冲器135,并将表示帧 图像开始的控制信号输出到运动检测控制单元132b。运动检测控制单元132b 将块变量“n”设置为“n=1”并根据块变量将PAT标志设置为“1010”(步骤 S401)。
运动检测控制单元132b将设置好的PAT标志“1010”和块编号“n=1”输 出到参考帧存储器控制单元133,并控制参考块的读取并将读取的参考块输出 到参考图像数据缓冲器134b(步骤S402)。
参考帧存储器控制单元133根据PAT标志和从运动检测控制单元132b接 收到的块编号“n=1”选择将要读取的参考块(步骤S403)。然后,参考帧存 储器控制单元133读取选定的参考块,并将读取的参考块输出到参考图像数据 缓冲器134b(步骤S404)。由参考帧存储器控制单元133执行的选择参考块的 操作与第一实施例中的相同,因此,这里省略了相关说明。
接下来,参考帧存储器控制单元133将步骤S404中输出的参考块写入到 参考图像数据缓冲器134中物理地址分别为“7”、“8”、“12”和“13”的块区 中(步骤S405)。
然后,参考帧存储器控制单元133将参数“t”设为“8”,并将参数“k” 设为“0”(步骤S406)。
在步骤S407到S428中,步骤S410到S427中的操作反复执行,直到构成 一个目标帧的块编码分别为1到64的所有目标块都经过处理为止。
运动检测控制单元132b命令运动矢量计算单元136检测运动矢量,运动 矢量计算单元136计算运动矢量(步骤S410)。
步骤S420到S427与步骤S410同时进行。首先,运动检测控制单元132b 判断块变量“n”的PAT标志是否为“0101”(步骤S420)。如果PAT为“0101”, 运动检测控制单元132b结束步骤S410,同时也结束对各目标块运动矢量检测 的重复操作(步骤S428)。
如果PAT标志不是“0101”(步骤S420),运动检测控制单元132b计算块 变量n’=n+1的值,并根据块变量n’设置PAT标志(步骤S421)。
然后,运动检测控制单元1 32b将块变量“n’”和“n’”的PAT标志输 出到参考帧存储器控制单元133(步骤S422)。
参考帧存储器控制单元133根据接收到的PAT标志和块变量n’选择将要 读取的参考块(步骤S423),并将选定的参考块输出到参考图像数据缓冲器 134b(步骤S424)。
然后,运动检测控制单元132b在参考图像数据缓冲器134b中选择写入目 的地,步骤S424中输出的参考块将被写入选定的写入目的地区中(步骤S425)。
运动检测控制单元132b将步骤S424中输出的参考块存储到步骤S425指 定为写入目的地的块区内(步骤S426)。
输入单元137接收到来自分类单元102的目标块“n+1”,将接收到的目标 块“n+1”写入目标图像数据缓冲器135,并将表示已经接收到目标块的控制 信号输出到运动检测控制单元132b。接收到表示已经接收到了目标块的控制 信号后,运动检测控制单元132b使块变量“n”加“1”,并利用加法运算得出 的块变量“n”设置PAT标志(步骤S427)。
注意,在图17的步骤S403和图18的步骤S423中执行的有关参考块选择 的操作与第一实施例中相同,因此,这里省略了相关说明。
(2)一个目标块的运动矢量检测
下面将参照图19所示的流程图说明一个目标块的运动矢量检测的相关操 作。注意,下面对图18中的步骤S410进行详细描述。
运动检测控制单元132b利用参数“I”和参数“k”,通过公式“m=i+I+k” 计算与逻辑地址“i”相对应的物理地址“m”(步骤S440)。参数“I”随着逻 辑地址“i”的不同而变化。如果i=1到3,则I=0。如果i=4到6,则I=2。 如果i=7到9,则i=4。参数“k”的取值范围为0到4,并且随着一帧运动矢 量检测的进行而变化。注意,当i=1到3且m>5时,m=m-5。当i=4到6且m>10 时,m=m-5。当i=7到9且m>15时,m=m-5。检测区是由上面公式推导出的九 个物理地址所代表的块区。
接下来,运动矢量检测控制单元132b将计算范围和运动矢量检测的指令 输出到运动矢量计算单元136(步骤S441)。
运动矢量计算单元136接收来自运动检测控制单元132b的指令,并计算 包括在计算范围内的运动矢量(步骤S442)。
运动矢量计算结束后,运动检测控制单元132b通过输出单元138将计算 的运动矢量输出到预测图像生成单元123和可变长度编码单元107(步骤 S443)。
然后,运动检测控制单元132b判断块变量“n”的PAT标志。如果PAT 标志为“1001”或者“0001”,运动检测控制单元132b使参数“k”加“2”(步 骤S446)。如果PAT标志为“1010”、“1000”、“0010”、“0000”、“0110”和“0100” 中的任何一个,运动检测控制单元132b使参数“k”加“1”(步骤S447)。这 时,运动检测控制单元132b判断是否满足k≥5(步骤S450)。如果k≥5,运 动检测控制单元132b使“k”减“5”(步骤S451)。如果k<5(步骤S450), 运动检测控制单元132b结束目标块的运动矢量检测,并执行步骤S428。
如果经判断,PAT标志为“0101”(步骤S445),运动检测控制单元132b 跳过这一操作,并且执行步骤S428。
(3)参考块写入目的地的选择
下面将参照图20所示的流程图对参考图像数据缓冲器134中写入目的地 的块区选择进行说明。注意,下面是对图18中步骤S425的详细说明。
运动检测控制单元132b根据块变量“n’”的PAT标志和参数“t”选择 写入目的地。
首先,运动检测控制单元132b判断参数“t”是否满足t≥10(步骤S460)。 如果t≥10,运动检测控制单元使参数“t”减“5”,即“t=t-5”(步骤S461)。 如果t<10,运动检测控制单元132b跳过该操作,并执行步骤S462。
然后,运动检测控制单元132b判断块变量“n’”的PAT标志(步骤S462), 并根据PAT标志选择写入目的地。
如果PAT标志为“1000”(步骤S462),运动检测控制单元132b将物理地 址分别为“t+1”和“t+6”的块区指定为写入目的地区(步骤S463),使参数 “t”加“1”(步骤S464)并结束写入目的地的选择。这时,处理过程跳转至 步骤S426。
如果块变量“n’”的PAT标志为“0010”(步骤S462),运动检测控制单 元132b将物理地址分别为“t-4”、“t-3”、“t+1”、“t+2”、“t+6”和“t+7” 的块区指定为写入目的地区(步骤S465)。然后,运动检测控制单元132b判 断是否满足t+7≥16(步骤S466)。如果t+7≥16,运动检测控制单元132b指 定物理地址为“t-8”的块区为写入目的地,而不是指定物理地址为“t+7”的 块区为写入目的地(步骤S467)。如果t+7<16,运动检测控制单元132b就跳 过这一操作并执行步骤S468。然后,运动检测控制单元132b使参数“t”加 “2”(步骤S468),结束写入目的地的选择,并且执行步骤S426。
如果块变量“n’”的PAT标志为“0000”(步骤S462),运动检测控制单 元132b指定物理地址分别为“t-4”、“t+1”和“t+6”的块区为写入目的地区 (步骤S470),使参数“t”加“1”(步骤471),结束写入目的地的选择,并 执行步骤S426。
如果块变量“n’”的PAT标志为“0110”(步骤S462),运动检测控制单 元132b将物理地址分别为“t-4”、“t-3”、“t+1”和“t+2”的块区指定为写 入目的地区(步骤S475)。然后,运动检测控制单元132b判断是否满足t+2 ≥11(步骤S476)。如果t+2≥11,运动检测控制单元132b将物理地址为“t-8” 的块区指定为写入目的地,而不是将物理地址为“t+2”的块区指定为写入目 的地(步骤S477)。如果t+2<11,运动检测控制单元132b就跳过该操作,并 且执行步骤S478。然后,运动检测控制单元132b使参数“t”加“2”,结束 写入目的地的选择,并执行步骤S426。
如果块变量“n’”的PAT标志为“0100”(步骤S462),运动检测控制单 元132b将物理地址分别为“t-4”和“t+1”的块区指定为写入目的地区(步 骤S480),使参数“t”加“1”(步骤S481),结束写入目的地区的选择,并且 执行步骤S426。
如果块变量“n’”的PAT标志为“1001”或“0001”(步骤S462),运动 检测控制单元132b不将任何块区指定为写入目的地区,并将直接执行步骤 S481。
(4)由运动检测控制单元132b执行的改变检测区的操作
参考图像数据缓冲器134b中的检测区和参考块的写入目的地区通过上述 计算设定,每处理完一个目标块,参考块的写入目的地就移至下一区域。图 21示出了在对一目标帧的目标块进行运动矢量检测的过程中,检测区和参考 块写入目的地区域的转换。图21中的数字表示存储在各块区中的参考块的块 编码。下文对改变参考图像数据缓冲器134b中的写入目的地区和运动矢量检 测区的操作进行了说明。
目标块“1”到“6”的检测与第一实施例中执行的检测相同,在这一过程 中,检测区和目标块区每次移动一行。因此,这里省略了相关说明。下文对目 标块“7”和其后目标块的检测进行说明。
如图21A所示,运动检测控制单元132b将包括3行3列块区的区域40 设置为检测区,并检测目标块“6”的运动矢量。位于区域40中央的块区将存 储参考块“6”。与此同时,在检测目标块“7”的运动矢量所需的参考块当中, 将未存储在参考图像数据缓冲器134b内的参考块“8”和参考块“16”写入物 理地址分别为“9”和“14”的块区内。
如图21B所示,当目标块“6”的运动矢量检测结束后,运动检测控制单 元132b将包括3行3列块区的区域42设置为检测区,并检测目标块“7”的 运动矢量。位于区域42中央的块区将存储参考块“7”。这时,已经将检测目 标块“8”所需的参考块写入了参考图像数据缓冲器134b。因此,并为发生从 参考帧存储器131到参考图像数据缓冲器134b的数据转移。
如图21C所示,在结束对目标块“7”的运动矢量检测后,运动检测控制 单元132b将包括3行3列块区的区域43设置为检测区,并检测目标块“8” 的运动矢量。位于区域43中央的块区将存储目标块“8”。与此同时,检测目 标块“9”的运动矢量所需的参考块“1”、“2”、“9”、“10”、“17”和“18”将 被写入物理地址分别为“1”、“2”、“6”、“7”、“11”和“12”的块区。
如图21D所示,在结束对目标块“8”的运动矢量检测后,运动检测控制 单元132b将包括3行1列块区的区域45a和包含3行2列块区的区域45b设 置为检测区,并执行运动矢量检测。区域45b包括存储参考块“9”的块区。 与此同时,在检测目标块“10”的运动矢量所需的参考块中,将未存储在参考 图像数据缓冲器134b中的参考块“3”、“11”和“19”写入物理地址分别为“3”、 “8”和“13”的块区中。
按照这种方式,设置检测区和目的地块区的操作通过每次移动一行或两行 的方式重复执行,直到构成一帧的六十四个目标块的运动矢量检测全部结束为 止。
2.5第二实施例的效果
根据本发明,参考图像数据缓冲器134b包括5个存储器,即存储器161 到165。可以通过运动检测控制单元132b对它们进行独立控制。
运动检测控制单元132b在参考图像数据缓冲器134b中指定检测区,读取 存储在检测区中的参考块,并将读取的参考块输出到运动矢量计算单元136。 与此同时,运动检测控制单元132b将检测下一目标块的运动矢量所需的参考 块写入未被指定为检测区的区域内。这时,参考帧存储器控制单元133对参考 块进行选择,以确保在参考图像数据缓冲器134b中不会出现参考块重复的现 象。
借助这一结构,在每个目标帧的运动矢量检测过程中,由参考帧存储器 131向参考图像数据缓冲器134b转移的参考块的总数为176个,这意味着数 据流量的显著降低。
而且,凭借第二实施例中描述的结构,一帧图像的运动矢量检测速度要高 于第一实施例中的检测速度。
如图13所示,由参考帧存储器131最新转移到图像数据缓冲器134b的参 考块的数量应为位于宏块行顶部的四个或六个。但是,在第一实施例中,参考 图像数据缓冲器134包含3行4列的块区,而且未被指定为检测区的块区所具 有的容量只能存储3个宏块。因此,在检测宏块行最后一个目标块的运动矢量 时,不可能将对应于下一宏块行顶部的目标块的参考块写入参考图像数据缓冲 器134。这意味着在第一实施例中,在结束某一宏块行最后一目标块的运动矢 量检测之后,才能将对应于下一宏块行顶部目标块的参考块写入参考图像数据 缓冲器134。因此,需要等待周期。
在第二实施例中,参考图像数据缓冲器134b包括3行5列块区,总是有 六个宏块的块区未被指定为检测区。因此,可以在检测宏块行最后一个目标块 的运动矢量的过程中,将对应于下一宏块行顶部目标块的参考块写入参考图像 数据缓冲器134b。这表明在第一实施例中需要的等待周期在第二实施例中并 不存在。对于构成目标帧的六十四个目标块而言,运动矢量检测和对应于下一 个目标块的参考块的写入都同时进行。
上述方法实现了一帧运动矢量检测速度的提高。
3.变型
前面基于两个实施例对本发明进行了解释。但是,本发明肯定不局限于上 述实施例。下述内容也包含在本发明当中。
(1)可以按照下述说明对第一实施例和第二实施例中参考帧存储器131 的数据写入和数据读取进行改动。
(A)如图22所示,参考帧存储器131包含16384个存储单元,这些存储 单元按照64行256列的矩阵形式排列。存储单元的位置通过行地址1到64 和列地址1到256确定,各存储单元的容量为8字节。为简化起见,用“行r” 表示行地址“r”(r=1到64)并且用“列c”代表列地址“c”(c=1到256)。
在构成参考块“1”的16行16列像素数据中,第1行的16个像素将分别 存储在指定为行“1”,列“1”到列“16”的存储单元中。第2行的16个像素 将分别存储在由行“1”,列“17”到列“32”确定的存储单元中。依此类推, 第3行到第16行的像素数据将存储在由行“1”,列“33”到列“256”确定的 存储单元中。
和参考块“1”的分配方式相同,构成参考块“2”的像素数据将被存储到 由行“2”,列“1”到列“256”确定的存储单元内。
通过这种方式,参考帧中的参考块“3”到“64”将被存储到包括在一列 中的由行“3”到行“64”确定的存储单元中,其中每行包括256个存储单元。
(B)加法单元124
加法单元124按照第1行到第16行的顺序,将16行16列像素数据输出 到参考帧存储器131。
如图23所示,加法单元输出与时钟信号231保持同步的指令241、地址 251和数据261。
指令241a用于输出表示操作开始的指令“开始”。指令241b代表读取和 写入由参考帧存储器131输出的指令。如果该指令是针对读取的,就会输出“读 取”,如果是针对写入的,就会输出“写入”。
(i)存储页模式下的写入
下面将参照图23对存储页模式下的写入操作进行描述,在存储页模式下, 通过将行固定,只输出列的方式对一行中的存储单元进行访问
加法单元124在“t1”时刻将表示操作开始的指令241a(开始)输出到 参考帧存储器131。与此同时,加法单元124输出行地址251a(行“1”),即 数据将被写入的该存储单元的地址。
加法单元124在时刻“t3”输出指令241b(写入)。与此同时,加法单元 124输出列地址251b(列1),即数据将被写入的该存储单元的地址。
加法单元124在时刻“t5”输出像素数据261a。
加法单元124在时刻“t7”输出列地址251c(列“2”),即下一次输出的 存储单元的地址,并在时刻“t9”输出像素数据261b。
采用这种方式,不断重复与时钟信号231同步的列和像素数据的输出,就 可以将像素数据存储到由行“1”和列“3”到列“256”确定的存储单元中。 如果构成参考块“1”的256块像素数据分别存储到由行“1”和列“1”到列 “256”确定的存储单元中,加法单元124就会输出行“2”。然后,加法单元 124执行构成参考块“2”的像素数据的输出。
通过这种方式,参考块“3”到“64”将被输出到参考帧存储器131中行 “3”到行“64”的存储单元中,构成该参考帧的所有64个参考块都将被输出 到参考帧存储器131。
也可以采用下面的方法(ii)。
(ii)脉冲模式下的写入
下面将参照图24对脉冲模式下的写入进行说明,在这一模式下,只输出 位于访问起始处的存储单元的行和列,在所述输出结束后,会有多个后继存储 单元被访问。
如图24所示,加法单元在与时钟信号232保持同步的条件下,将地址252 和像素数据262输出到参考帧存储器131。
指令242a代表表示操作开始的指令“开始”的输出。指令242b代表输出 到参考帧存储器131的读取或写入指令。如果这一指令是针对读取的,指令 242b将为“读取”,如果这一指令是针对写入的,指令242b将为“写入”。
加法单元124在时刻“t1”输出指令242a(开始),与此同时输出写入目 的地存储单元的行地址252a(行1)。然后,加法单元124会在时刻“t3”输 出指令242b(写入),与此同时输出写入目的地存储单元的列地址252b(列 “1”)。
加法单元124在时刻“t5”输出像素数据262a,在时刻“t6”输出像素 数据262b。同样地,加法单元124按顺序输出与时钟信号232保持同步的像 素数据262c、262d、262e……。输出的像素数据262a、262b、262c……将被 分别存储在由行“1”和列“1”到列“256”确定的存储单元内。
如果构成参考块“1”的所有像素数据都被分别存储在由行“1”和列“1” 到列“256”确定的存储单元内,那么加法单元就输出行“2”,并且数据处理 移至对构成参考块“2”的像素数据的输出上。
同样地,参考块“3”到“64”将被输出到参考帧存储器131中行“3”到 行“64”的存储单元内,这样,构成参考帧的所有六十四个参考块都被写入参 考帧存储器131中。
(C)参考帧存储器控制单元133
如上所述,参考帧存储器控制单元133选择参考块,该参考块根据从运动 检测控制单元132接收到的块变量和PAT标志由参考帧存储器131输出至参考 图像数据缓冲器134。
然后,参考帧存储器控制单元133按照下述方式从参考帧存储器131中读 取选定的参考块。
例如,这里接收到了块变量“1”和PAT标志“1010”。在这种情况下,参 考帧存储器控制单元133选择参考块“1”、“2”、“9”和“10”,并从参考帧存 储器131中读取这些参考块。
(i)存储页模式下的读取
下面将参照图23描述由参考帧存储器控制单元133执行的从参考帧存储 器131中进行数据读取的操作。
参考帧存储器控制单元133在时刻“t1”将表示操作开始的指令251a(开 始)输出到参考帧存储器131,与此同时输出读取源单元的行地址251a(行 “1”)。
参考帧存储器控制单元133在时刻“t3”输出指令241b(读取),与此同 时输出读取源单元的列地址251b(列“1”)。
参考帧存储器控制单元133在时刻“t5”接收到像素数据261a。
参考帧存储器控制单元133在时刻“t7”输出下一次读取的存储单元的列 地址251c(列“2”),并在时刻“t9”接收像素数据261b。
采用这种方式,在与时钟信号231保持同步的情况下,重复列的输出和像 素数据的接收,参考帧存储器控制单元133接收到分别存储在由行“1”和列 “3”到列“256”确定的存储单元内的像素数据。
当构成参考块“1”的所有256块像素数据均从由行“1”和列“1”到列 “256”确定的存储单元输出后,参考帧存储器控制单元133就输出行“2”, 并且数据处理移至分别存储在由行“2”和列“1”到列“256”确定的存储单 元内的参考块“2”的读取上。
结束对参考块“2”的读取后,参考帧存储器控制单元133将采取同样的 方式读取参考块“9”和参考块“10”。
也可以采用下面的方法(ii)。
(ii)脉冲模式下的读取
下面将参照图24描述如何在脉冲模式下从参考帧存储器131中读取数据。
参考帧存储器控制单元133在时刻“t1”输出指令242a(开始),与此同 时,输出读取源存储单元的行地址252a(行“1”)。然后,参考帧存储器控制 单元133在时刻“t3”输出指令242b(读取),与此同时,输出读取源存储单 元的列地址252b(列“1”)。
参考帧存储器控制单元133在时刻“t5”接收到像素数据262a,并在时 刻“t6”接收到像素数据262b。同样地,参考帧存储控制单元133会在与时 钟信号232保持同步的情况下,接收像素数据262c、262d、262e……。当分 别存储在由行“1”和列“1”到列“256”确定的存储单元内的构成参考块“1” 的所有256块像素数据均输出后,参考帧存储器控制单元133就输出行“2”, 并且数据处理移至分别存储在由列“1”到列“256”确定的存储单元内的构成 参考块“2”的256块像素数据的读取上。
(D)变型(1)的效果
(i)就存储页模式下执行读取和写入操作而言,如果针对某一列进行数 据读取和写入,那么不要求加法单元124和参考帧存储器控制单元133分别输 出由列“2”到列“256”确定的存储单元的行。因此,省略了255个存储单元 的行输出。
(ii)就脉冲模式下执行读取和写入操作而言,在结束了确定某列存储单 元顶部存储单元位置的行地址的输出并输出列“1”后,不要求加法单元124 或参考帧存储器控制单元133输出后继的列“2”到列“256”的地址。因此, 省略了255个存储单元的行和列的输出。
通过省略地址的输出,可以降低数据读取和写入所需的时间。
(2)在上述第一实施例中,参考图像数据缓冲器134由四个存储器,即 存储器“141”到“144”构成,而且这些存储器通过独立的总线分别连接到参 考帧存储器131和运动检测控制单元132上。但是,这只是一个示例性结构, 还可以采用其他结构。
例如,参考图像数据缓冲器134可以包含12个块区,这些块区按照3行 4列的矩阵形式排列,而且可以具有用于读取的端口和用于写入的端口。参考 图像数据缓冲器134可以通过一条总线连接到运动检测控制单元132和参考帧 存储器单元131。如第一实施例中所述,数据从参考图像数据缓冲器134的检 测区内读取,并向检测区外的块区内写入。因此,数据的读取和写入不会在一 个块区内同时发生。
同样,在第二实施例中,参考图像数据缓冲器134可以包含15个块区, 这些块区按照3行5列的矩阵形式排列,并且可以具有用于读取的端口和用于 写入的端口。可以通过一条总线将参考图像数据缓冲器134b连接至运动检测 控制单元132b和参考帧存储器单元131。
(3)在上述实施例中,参考帧上的参考区由3行3列参考块组成,其中 与运动矢量检测目标块具有相同编号的参考块位于中央。但是,参考区也可以 由5行5列参考块组成。
在这种情况下,参考图像数据缓冲器134所包含的块区将按照5行6列的 矩阵形式排列。
运动矢量检测的执行方式与第一实施例中相同。
(4)本发明可以是上述方法。本发明也可以是上述实施例和上述变型的 结合。
尽管通过举例的形式参照附图对本发明进行了充分描述,但值得注意的 是,对于那些精通所属技术领域的人员来讲,显然存在着多种多样的改动和变 型。因此,除非此类改动和变型与本发明的范围相背离,否则这些改动和变型 将被划归到本发明的范围之内。
行业使用范围
本发明适用于下述行业:生产和销售带有移动图像照像机功能的设备,例 如数码摄像机和配有摄像头的便携式电话等;以经营、连续和重复的方式创建 和使用图像内容的行业,例如电影行业和媒体行业等。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈