一种行缓冲器寻址方法及芯片的制作方法

文档序号:7764205阅读:399来源:国知局
专利名称:一种行缓冲器寻址方法及芯片的制作方法
技术领域
本发明涉及电子领域,尤其涉及一种Line Buffer (行缓冲器)寻址方法及芯片。
背景技术
在视频处理芯片中,经常会需要实现运动补偿或者其他类似的算法,这些算法有 个共同的操作就是根据计算得到的运动矢量在图像的当前行的前后若干行中,找到某一行 的图像数据来进行运算。假设当前行是图像的第N行,运动矢量的格式为(X,Y),由于采用Line Buffer (行 缓冲器),X取值范围只要在Line Buffer行内即可,而Y的范围决定了需要采用多少条Line Buffer。如果Y的取值范围是(_m,m,那么我们需要2m+l条Line Buffer来存储当前行上、 下m行的数据。传统的Line Buffer寻址方法是,设置一个1呢2 (2m+l)位的计数器(第一条Line Buffer的地址是0,第二条是1,...依次类推),同时,设置一个寄存器LineBuffer JndX_ Reg记下当前是在哪个Line Buffer进行操作。这样,如果计算得到运动矢量为(X,Y),可 以用LineBufferJndx_Reg+Y来得到要寻址的LineBuffer的地址。发明人发现,现有技术这个方法的一个缺点是,要用到加、减法,当LineBuffer较 多时,比如几十条时,会造成时序紧张。因为运动矢量经常要经过复杂的计算,如果加法花 费时间太多,则在当前时钟周期不能产生Line Buffer读信号,必须等到下个时钟周期。另一个缺点是,由于Line Buffer是循环移动的,现有技术采用固定地址编址还要 考虑地址越界问题,而判断地址越界非常麻烦,这将使得电路规模更大,时序更不好。

发明内容
本发明的实施例提供一种Line Buffer寻址方法及芯片,摒弃了现有技术中寻址 时的加、减法,能够实现快速寻址,还较好地解决了 Line Buffer寻址越界的问题。一方面,提供了一种Line Buffer寻址方法,设运动矢量Y的取值范围为(-m,m)m 为大于0的整数,则Line Buffer的行数为&1+1,所述Line Buffer寻址方法包括用第一循环移位寄存器中的指示位指示当前工作行的Line Buffer ;所述第一循 环移位寄存器包括2m+l位,且每一位分别对应一行Line Buffer ;得到运动矢量Y的结果为y,y e (-m,m)后,将所述第一循环移位寄存器中的指示 位循环移位y位得到第二循环移位寄存器中的指示位;所述第二循环移位寄存器中的指示位指示寻址行的Line Buffer ;所述第二循环 移位寄存器包括2m+l位,且每一位分别对应一行Line Buffer。另一方面,提供了一种Line Buffer寻址芯片,设运动矢量Y的取值范围为(_m, m)m为大于0的整数,则Line Buffer的行数为2m+l,所述芯片包括第一循环移位寄存器,包括2m+l位,且每一位分别对应一行Line Buffer,其指示 位用于指示当前工作行的Line Buffer ;
第二循环移位寄存器,包括2m+l位,且每一位分别对应一行Line Buffer,其指示 位用于指示寻址行的Line Buffer ;桶形移位器,得到运动矢量Y的结果为y,y e (-m, m)后,用于将所述第一循环移 位寄存器中的指示位循环移位y位得到所述第二循环移位寄存器中的指示位。本发明实施例提供的Line Buffer寻址方法及芯片,以第一循环移位寄存器中的 指示位指示当前工作行的Line Buffer,在得到运动矢量Y的结果为y后,将第一循环移位 寄存器的指示位循环移位y位得到第二循环移位寄存器的指示位,并以该第二循环移位寄 存器中的指示位指示寻址行的Line Buffer0从而摒弃了现有技术中寻址时的加、减法计 算,不会造成因加、减法计算导致的时序紧张。并且,由于采用了循环移位寄存器指示Line Buffer,能够更好地对应LineBuffer的循环移动,避免了现有技术中由于固定地址编址导 致的地址越界问题。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。图1为本发明实施例提供的Line Buffer寻址方法的流程框图;图2为本发明实施例提供的Line Buffer寻址方法的原理的结构示意图;图3为本发明实施例提供的Line Buffer寻址方法的另一原理的结构示意图;图4为本发明实施例提供的Line Buffer寻址芯片的结构示意框图;图5为本发明实施例提供的另一 Line Buffer寻址芯片的结构示意框图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。本发明实施例提供一种Line Buffer寻址方法,设运动矢量Y的取值范围为(_m, m)m为大于0的整数,则Line Buffer的行数为2m+l,如图1所示,该Line Buffer寻址方 法包括S101、用第一循环移位寄存器中的指示位指示当前工作行的Line Buffer,该第一 循环移位寄存器包括2m+l位,且每一位分别对应一行Line Buffer。S102、得到运动矢量Y的结果为y,y e (-m, m)后,将第一循环移位寄存器中的指 示位循环移位y位得到第二循环移位寄存器中的指示位。具体的,当得到的运动矢量Y的结果y为正值时,将第一循环移位寄存器中的指 示位向第一方向,例如右方向,循环移位y位得到第二循环移位寄存器中的指示位;当得到 的运动矢量Y的结果y为负值时,将第一循环移位寄存器中的指示位向第二方向,例如左方 向,循环移位ι位得到第二循环移位寄存器中的指示位。
S103、第二循环移位寄存器中的指示位指示寻址行的Line Buffer,该第二循环移 位寄存器包括2m+l位,且每一位分别对应一行Line Buffer。本发明实施例提供的Line Buffer寻址方法,以第一循环移位寄存器中的指示位 指示当前工作行的Line Buffer,在得到运动矢量Y的结果为y后,将第一循环移位寄存器 的指示位循环移位y位得到第二循环移位寄存器的指示位,并以该第二循环移位寄存器中 的指示位指示寻址行的Line Buffer0从而摒弃了现有技术中寻址时的加、减法计算,不会 造成因加、减法计算导致的时序紧张。并且,由于采用了循环移位寄存器指示Line Buffer, 能够更好地对应Line Buffer的循环移动,避免了现有技术中由于固定地址编址导致的地 址越界问题。本发明另一实施例提供的Line Buffer寻址方法,其原理的结构如图2所示。在图2中,假设运动矢量Y的取值范围为(_4,4),因此,Line Buffer的行数为 2X4+1 = 9,在图 2 中用 Line Buffer 0 Line Buffer 8 索引这 9 行 Line Buffer。本实 施例中还设置有第一循环移位寄存器10和第二循环移位寄存器11,以及桶形移位器12和 运动矢量计算单元13。其中,第一循环移位寄存器10对应Line Buffer的行数,共有2 X 4+1 = 9位,且每 一位分别对应一行Line Buffer.在本实施例中,该第一循环移位寄存器10的每一位可以 设为1比特,且用bit 0 bit 8索引这9位。优选地,第一循环移位寄存器10的各位可以 顺序对应各行 Line Buffer,即 bit 0 对应 Line Buffer 0,bitl 对应 Line Buffer 1, · · ·, bit 8 对应 Line Buffer 8。在第一循环移位寄存器10中,指示位可以用“真”指示当前工作行的Line Buffer,其余各位均为“假”。例如,在图2中,指示位可以“1”指示当前工作行的Line Buffer,其余各位均为“0”;当然也可以反过来,以“0”指示当前工作行的Line Buffer,其 余各位均为“1”,这并没有限制。第二循环移位寄存器11对应Line Buffer的行数,共有2 X 4+1 = 9位,且每一位 分别对应一行Line Buffer0在本实施例中,该第二循环移位寄存器11的每一位可以设为 1比特,且用bit 0 bit 8索引这9位。优选地,第二循环移位寄存器11的各位可以顺序 对应各行 Line Buffer,即 bit 0 对应 Line Buffer 0,bit 1 对应 Line Buffer 1,. . . , bit 8 对应 Line Buffer 8。在第二循环移位寄存器11中,指示位可以用“真”指示寻址行的Line Buffer,其 余各位均为“假”。例如,在图2中,指示位可以“1”指示寻址行的Line Buffer,其余各位 均为“0”;当然也可以反过来,以“0”指示寻址行的Line Buffer,其余各位均为“ 1”,这并 没有限制。运动矢量计算单元13用于计算运动矢量(X,Y),并将得到的运动矢量Y的结果 y(y e (-4,4))发送给桶形移位器12 ;桶形移位器12会根据该y的值调整第一循环移位寄 存器10以实现Line Buffer寻址。具体的Line Buffer寻址过程如下假设当前行是一帧数据图像的第N行,由于运动矢量Y的取值范围是(_4,4),所 以,必须有4行Line Buffer存储第N行的上面的4行N-4、N_3、N-2、N_1的图像数据。此 外,还必须有另外4行Line Buffer存储第N行的下面的4行Ν+1、Ν+2、Ν+3、Ν+4的图像数据。在图2 中,Line Buffer 4 表示当前工作行,Line Buffer 0 Line Buffer 3 表 示当前行的上面行,Line Buffer 5 Line Buffer 8表示当前行的下面行。根据上面说明的对应关系,在第一循环移位寄存器10中,bit 4为指示位,其值为 “1”,表示当前工作行存储在Line Buffer 4中,当前行是当前图像帧的第N行。当对当前行数据进行处理时,可能需要上下4行中任意行的图像数据。运动矢量 计算单元13计算得到运动矢量(X,Y),如果运动矢量Y的结果为3 (3 e (-4,4)),则意味着 要寻址的数据是当前行的下面第三行。在本实施例中,运动矢量Y的结果3会发送到桶形 移位器12,桶形移位器12将第一循环移位寄存器10的指示位向右移动3位,得到第二循 环移位寄存器11的指示位。在图2中,第一循环移位寄存器10的指示位bit 4向右移动 3位得到第二循环移位寄存器11的指示位bit 7。第二循环移位寄存器11的bit 7为指示位,其值为“1”,表示bit 7所对应的Line Buffer 7为要寻址的Line Buffer。从图2中可以明显看到,Line Buffer 7所指代的行 即是当前行下面的第三行。这样,本发明实施例以第一循环移位寄存器中的指示位指示当前工作行的Line Buffer,在得到运动矢量Y的结果为y后,将第一循环移位寄存器的指示位循环移位y位 得到第二循环移位寄存器的指示位,并以该第二循环移位寄存器中的指示位指示寻址行的 Line Buffer0从而摒弃了现有技术中寻址时的加、减法计算,不会造成因加、减法计算导致 的时序紧张,且可以使电路更快。当对地N行的所有数据都处理完成之后,接下来要处理第N+1行,这时,当前行即 为第N+1行,因此,第N行上面的第五行,即第N-4行的数据不需要了,可以从系统存储器 (memory)中预取出第N+5行数据放入原来的第N-4行所在的Line Buffer (Line Buffer 0) 中。参照图3进行说明,原第一循环移位寄存器10的bit 4指示的Line Buffer 4处 理结束后,指示位向右移动一位,即bit 5为新的指示位,其值为“1”,表示现在当前行即第 N+1行数据存储在Line Buffer 5中。假设在处理第N+1行时,计算得到的运动矢量Y的结 果为(_4,4)),则意味着要寻址的数据是当前行的下面第四行。在本实施例中,运动 矢量Y的结果4会发送到桶形移位器12,桶形移位器12将第一循环移位寄存器10的指示 位向右移动4位,得到第二循环移位寄存器11的指示位。在图3中,第一循环移位寄存器 10的指示位bit 5向右移动4位得到第二循环移位寄存器11的指示位bit 0。第二循环移位寄存器11的bit 0为指示位,其值为“1”,表示bit 0所对应的Line Buffer 0为要寻址的Line Buffer。从图3中可以明显看到,Line Buffer 0所指代的行 存储的数据即是当前行下面的第四行数据。对于现有技术来说,图3所表示的情况即是一种越界,因为要寻址的Line Buffer 的地址小于当前工作行的Line Buffer的地址。而在本实施例中,通过循环移位的方法规 避了对Line Buffer寻址越界的判断。从而使得电路逻辑简单,运算更快。另外,本实施例中,例举的运动矢量Y的结果都为正值,循环移位寄存器循环向右 移位;当运动矢量Y的结果为负值时,循环移位寄存器循环向左移位。本发明实施例提供的Line Buffer寻址芯片,设运动矢量Y的取值范围为(_m,m)m为大于0的整数,则Line Buffer的行数为2m+l,如图4所示,该芯片40包括第一循环移位寄存器10,包括2m+l位,且每一位分别对应一行Line Buffer,其指 示位用于指示当前工作行的Line Buffer.第二循环移位寄存器11,包括2m+l位,且每一位分别对应一行Line Buffer,其指 示位用于指示寻址行的Line Buffer。桶形移位器12,得到运动矢量Y的结果为y,y e (-m,m)后,用于将第一循环移位 寄存器10中的指示位循环移位y位得到第二循环移位寄存器11中的指示位。本发明实施例提供的Line Buffer寻址芯片,以第一循环移位寄存器中的指示位 指示当前工作行的Line Buffer,在得到运动矢量Y的结果为y后,将第一循环移位寄存器 的指示位循环移位y位得到第二循环移位寄存器的指示位,并以该第二循环移位寄存器中 的指示位指示寻址行的Line Buffer0从而摒弃了现有技术中寻址时的加、减法计算,不会 造成因加、减法计算导致的时序紧张。并且,由于采用了循环移位寄存器指示Line Buffer, 能够更好地对应Line Buffer的循环移动,避免了现有技术中由于固定地址编址导致的地 址越界问题。进一步地,如图5所示,该Line Buffer寻址芯片40还包括运动矢量计算单元13,用于计算运动矢量(X,Y),将运动矢量Y的结果y发送给 桶形移位器12。此外,第一循环移位寄存器10的各位顺序对应各行Line Buffer ;第二循环移位 寄存器11的各位顺序对应各行Line Buffer。第一循环移位寄存器10的每一位为1比特;第二循环移位寄存器11的每一位为 1比特。当得到的运动矢量Y的结果y为正值时,桶形移位器12将第一循环移位寄存器10 中的指示位向第一方向,例如右方向,循环移位y位得到第二循环移位寄存器11中的指示 位;当得到的运动矢量Y的结果y为负值时,桶形移位器12将第一循环移位寄存器10中的 指示位向第二方向,例如左方向,循环移位y位得到第二循环移位寄存器11中的指示位。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
权利要求
1.一种Line Buffer寻址方法,设运动矢量Y的取值范围为(-m,m)m为大于0的整数, 则Line Buffer的行数为2m+l,其特征在于,所述Line Buffer寻址方法包括用第一循环移位寄存器中的指示位指示当前工作行的Line Buffer ;所述第一循环移 位寄存器包括2m+l位,且每一位分别对应一行Line Buffer ;得到运动矢量Y的结果为y,y e (-m,m)后,将所述第一循环移位寄存器中的指示位循 环移位y位得到第二循环移位寄存器中的指示位;所述第二循环移位寄存器中的指示位指示寻址行的Line Buffer ;所述第二循环移位 寄存器包括2m+l位,且每一位分别对应一行Line Buffer。
2.根据权利要求1所述的LineBuffer寻址方法,其特征在于, 所述第一循环移位寄存器的各位顺序对应各行Line Buffer ; 所述第二循环移位寄存器的各位顺序对应各行Line Buffer0
3.根据权利要求1或2所述的LineBuffer寻址方法,其特征在于, 所述第一循环移位寄存器的每一位为1比特;所述第二循环移位寄存器的每一位为1比特。
4.根据权利要求3所述的LineBuffer寻址方法,其特征在于,所述第一循环移位寄存器的指示位以“真”指示当前工作行的Line Buffer,其余各位 均为“假”;所述第二循环移位寄存器的指示位以“真”指示寻址行的Line Buffer,其余各位均为 “假”。
5.根据权利要求2所述的LineBuffer寻址方法,其特征在于,当得到的运动矢量Y的结果y为正值时,将所述第一循环移位寄存器中的指示位向第 一方向循环移位y位得到所述第二循环移位寄存器中的指示位;当得到的运动矢量Y的结果y为负值时,将所述第一循环移位寄存器中的指示位向第 二方向循环移位y位得到所述第二循环移位寄存器中的指示位。
6.一种Line Buffer寻址芯片,设运动矢量Y的取值范围为(-m,m)m为大于0的整数, 则Line Buffer的行数为2m+l,其特征在于,所述芯片包括第一循环移位寄存器,包括2m+l位,且每一位分别对应一行Line Buffer,其指示位用 于指示当前工作行的Line Buffer ;第二循环移位寄存器,包括2m+l位,且每一位分别对应一行Line Buffer,其指示位用 于指示寻址行的Line Buffer ;桶形移位器,得到运动矢量Y的结果为1,y e (-m, m)后,用于将所述第一循环移位寄 存器中的指示位循环移位y位得到所述第二循环移位寄存器中的指示位。
7.根据权利要求6所述的LineBuffer寻址芯片,其特征在于,所述Line Buffer寻址 芯片还包括运动矢量计算单元,用于计算运动矢量(X,Y),将所述运动矢量Y的结果y发送给所述 桶形移位器。
8.根据权利要求6或7所述的LineBuffer寻址芯片,其特征在于, 所述第一循环移位寄存器的各位顺序对应各行Line Buffer ; 所述第二循环移位寄存器的各位顺序对应各行Line Buffer0
9.根据权利要求6或7所述的LineBuffer寻址芯片,其特征在于, 所述第一循环移位寄存器的每一位为1比特;所述第二循环移位寄存器的每一位为1比特。
10.根据权利要求6或7所述的LineBuffer寻址芯片,其特征在于,当得到的所述运动矢量Y的结果y为正值时,所述桶形移位器将所述第一循环移位寄 存器中的指示位向第一方向循环移位y位得到所述第二循环移位寄存器中的指示位;当得到的所述运动矢量Y的结果y为负值时,所述桶形移位器将所述第一循环移位寄 存器中的指示位向第二方向循环移位y位得到所述第二循环移位寄存器中的指示位。
全文摘要
本发明实施例提供一种Line Buffer寻址方法及芯片,涉及电子领域,摒弃了现有技术中寻址时的加、减法,能够实现快速寻址,还较好地解决了Line Buffer寻址越界的问题。其解决方法为用第一循环移位寄存器中的指示位指示当前工作行的Line Buffer;得到运动矢量Y的结果为y后,将第一循环移位寄存器中的指示位循环移位y位得到第二循环移位寄存器中的指示位;第二循环移位寄存器中的指示位指示寻址行的Line Buffer。本发明实施例用于Line Buffer寻址。
文档编号H04N5/14GK102137220SQ20101053175
公开日2011年7月27日 申请日期2010年11月4日 优先权日2010年11月4日
发明者聂中平 申请人:青岛海信信芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1