一种参考像素调度的方法技术

技术编号:3584681 阅读:211 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种参考像素调度的方法,所述方法基于每次读取的参考像素有大部分都是重复的,因而采用三个内部存储器实现参考像素的缓存。即将前一宏块读入的参考像素中的有用信息放入缓存,作为当前宏块的参考像素的一部分,并且利用参考像素值预写入,使得帧与帧之间形成流水结构,能够连续进行,对于图像帧中不同位置的宏块分别实现参考像素的调度,节省了重复读取大量参考像素值的时间。本发明专利技术在节约硬件资源的基础上使得以较短的时钟周期完成整像素和分像素的运动估计成为可能,使其满足编码的实时处理要求。

【技术实现步骤摘要】

本专利技术涉及一种数字视频编码技术,特别涉及运动估计时参考像素的调度方法。
技术介绍
数字电视、高清晰度电视、可视电话、会议电视和多媒体等视频通信都可 通过一系列的视频序列图像来实现,视频序列图像在时间上有很强的相关性, 利用块运动估计和运动补偿技术可以比较有效地去除图像帧间冗余度,实现高 码率压缩比。视频系统编码器的复杂性最主要取决于运动估计,运动估计的复 杂度取决于运动搜索复杂度、数据读取复杂度和内存管理复杂度。运动估计是 整个视频编码中最耗时的部分,其原因不仅仅是,在运动估计过程中需要对每 一个搜索点做差值等运算,更主要的是因为随着运动估计精度的提高,运动搜 索范围的增大,在运动估计过程中需读入的参考像素迅速增加,从而使得参考 像素读取所需的时钟周期大大增加。一般来说,运动估计所需的参考像素范围可表示为16mxl6n(m, n为任意 自然数)。参考帧存储在片外的SDRAM中,如果每次都需要从片外的SDRAM 中取出运动搜索所需的参考像素值,则需要16mxl6n个时钟周期,由此可以看 出参考像素的读取占用了大量的时钟周期,随着m和n的增大,所用的时钟周 期会更多,满足编码的实时性要求将会越来越难。
技术实现思路
本专利技术所解决的技术问题是提供一种参考像素的调度方法,所述方法基于 每次读取的参考像素有大部分都是重复的,因而利用緩存技术将前一宏块读入 的参考像素中的有用信息放入緩存,作为当前宏块的参考像素的一部分,并且 利用参考像素值预写入,使得帧与帧之间形成流水结构,能够连续进行,节省了重复读取大量参考像素值的时间。本专利技术在节约硬件资源的基础上使得以较 短的时钟周期完成整像素和分像素的运动估计成为可能,使其满足编码的实时 处理要求。为了解决上述技术问题,本专利技术采用了如下技术手段 一种参考像素的调 度方法,在视频编码中,用于运动搜索时从片夕卜SDRAM中获取当前帧当前宏块 的参考像素,图像帧大小为16Sxl6T,运动搜索的范围为16mxl6n,所述方法还 需要三个内部存储器SRAM A、 SRAMB和SRAMC,所述存储器的大小分别为 16(m/2)xl6n、 16mxl6n和16(m/2)xl6(n/2), m, n为大于l的自然数;s,为一个4亍 标记,初始值为0;其像素调度的实现过程如下(1) 当当前宏块的行号s-l,列号t-l时,即当前宏块为首行首列宏块时,首先, 参考帧存储器SDRAM将先前参考帧的最左上16(m/2)xl6(n/2)位置的像素值预先 写入SRAM C,更新SRAM C;然后将SRAM C的数据写入SRAM A;接着将SRAM A中的数据直接写入SRAM B中,SRAM B中的像素即为当前宏块的参考像素; 其中,s为小于等于S的自然数,t为小于等于T的自然数;(2) 当s-l, 1>1时,即当前宏块为首行非首列宏块时,从t-l起每增加l,即每 右移一个宏块,只需从SDRAM中补充16xl6(n/2)个参考像素存入SRAM B中, SRAM B中的像素即为当前宏块的参考像素;(3) 当s二2, t-l时,即当前宏块为第二行首列宏块时,首先将SRAMA的大小 为16(m/2) xl6(n/2)的数据读入SRAM B中,从参考像素存放的SDRAM中读入 16(m/2)xl6个参考像素,同时存入SRAM A和SRAMB中,SRAMB中的像素即 为当前宏块的参考像素;(4) 当s-2, 1>1时,即当前宏块为第二行非首列宏块时,从t-l起每增加l,即 每右移一个宏块,只需从SDRAM中补充16x(16(n/2)+16(s-l))个参考像素存入 SRAMB中,SRAMB中的像素即为当前宏块的参考像素;设s,为一个行标记, 初始值为O,当16(n/2)+16(s-l)〈16n时,s'-0,否则令s,-s;(5) 判断s,是否为0,若不为0则执行(9);否则当s-3, t-l时,即当前宏块为 第三行首列宏块时,首先将SRAMA的大小为16(m/2)x(16(n/2)+16(s-2))的数据读 入SRAM B中,然后从参考像素存放的SDRAM中读入16(m/2)xl6个参考像素, 同时存入SRAM A和SRAM B中,SRAM B中的像素即为当前宏块的参考像素;(6) 判断s,是否为0,若不为0则执行(10);否则,当s-3, 1>1时,即当前宏块 为第三行非首列宏块时,从t-l起每增加l,即每右移一个宏块,只需从SDRAM 中补充16x(16(n/2)+16(s-l))个参考像素存入SRAM B中,SRAM B中的像素即为 当前宏块的参考像素;若16(n/2)+16(s-l)〈16n,则s,-0,否则令s,-s;(7) 判断s,是否为O,若不为0则执行(9);否则,以下每一行,当t-l时,即当 前宏块为首列宏块时,首先将SRAMA的大小为16(m/2)x(16(n/2)+16(s-2))的数据 读入SRAM B中;然后从参考像素存放的SDRAM中读入16(m/2)x 16个参考像素, 同时存入SRAM A和SRAM B中;SRAM B中的像素即为当前宏块的参考像素;(8) 判断s,是否为O,若不为0则执行(10);否则,当1>1时,即当前宏块为非首 列宏块时,从t-l起每增加l,即每右移一个宏块,只需从SDRAM中补充 16x(16(n/2)+16(s-l))个参考像素存入SRAM B中,SRAM B中的像素即为当前宏 块的参考像素;若16(n/2)+16(s-l)〈16n,贝,=0,否则令s,-s,(9) 当s〉s,, t-l时,即当前宏块为其它行的首列宏块时,首先将SRAMA的大 小为16(m/2)xl6n的数据读入SRAMB中,然后从参考像素存放的SDRAM中读入 16(m/2)xl6个参考像素,同时存入SRAM A和SRAMB中,SRAMB中的像素即 为当前宏块的参考像素;(10)当s〉s', 1>1时,即当前宏块为其它行非首列宏块时,从t-l起每增加l, 即每右移一个宏块,只需从SDRAM中补充16xl6n个参考像素存入SRAM B中, SRAM B中的像素即为当前宏块的参考像素。本专利技术所述的SRAMC的更新可以和其他过程并行实现,所述的宏块大小为 16xl6个像素。由于采用了以上参考像素的调度方法,对于搜索范围为16mxl6n来说,参 考像素读入所需的最大时钟周期仅为当s,-0时,将16(m/2)x(16(n/2)+16(s-2))个 参考像素从SRAMA中写入SRAMB中所需的时钟周期,再加上将16(m/2)xl6 个参考像素从SDRAM中同时写入SRAMA和SRAMB中所需的时钟周期,远 远小于采用常规方法所需要的16mxl6n个时钟周期;而且搜索范围越大,本发 明所提供的参考像素调度方法的优势越明显。附图说明本专利技术的参考像素的调度方法由以下的实施例及附图详细给出。图1为本专利技术实施例参考像素调度时数据的存取示意图; 图2为本专利技术实施例参考像素调度结果示意图。具体实施方式以下将对本专利技术的参考像素调度的方法作进一步的详细描述。 图l表示了片外SDRAM和内部存储器SRAM A、 SRAM B和SRAM C之间参 考像素调度时数据的存取关系。本实本文档来自技高网...

【技术保护点】
一种参考像素调度的方法,在视频编码中,用于运动搜索时从片外SDRAM中获取当前帧当前宏块的参考像素,图像帧大小为16S×16T,运动搜索的范围为16m×16n,其特征在于:所述方法还需要三个内部存储器SRAMA、SRAMB和SRAMC,所述存储器的大小分别为16(m/2)×16n、16m×16n和16(m/2)×16(n/2),m,n为大于1的自然数,s’为一个行标记,初始值为0,其像素调度的实现过程如下:(1)当当前宏块的行号s=1,列号t=1时,即当前宏块为首行首列宏块时,首先,参考帧存储器SDRAM将先前参考帧的最左上16(m/2)×16(n/2)位置的像素值预先写入SRAMC,更新SRAM C;然后将SRAMC的数据写入SRAMA;接着将SRAMA中的数据直接写入SRAMB中,SRAMB中的像素即为当前宏块的参考像素;其中,s为小于等于S的自然数,t为小于等于T的自然数;(2)当s=1,t>1时,即当前宏块为首行非首列宏块时,从t=1起每增加1,即每右移一个宏块,只需从SDRAM中补充16×16(n/2)个参考像素存入SRAMB中,SRAMB中的像素即为当前宏块的参考像素;(3)当s=2,t=1时,即当前宏块为第二行首列宏块时,首先将SRAMA的大小为16(m/2)×16(n/2)的数据读入SRAMB中,从参考像素存放的SDRAM中读入16(m/2)×16个参考像素,同时存入SRAMA和SRAMB中,SRAMB中的像素即为当前宏块的参考像素;(4)当s=2,t>1时,即当前宏块为第二行非首列宏块时,从t=1起每增加1,即每右移一个宏块,只需从SDRAM中补充16×(16(n/2)+16(s-1))个参考像素存入SRAMB中,SRAMB中的像素即为当前宏块的参考像素;设s’为一个行标记,初始值为0,若16(n/2)+16(s-1)<16n,则s′=0,否则令s’=s;(5)判断s’是否为0,若不为0则执行(9);否则当s=3,t=1时,即当前宏块为第三行首列宏块时,首先将SRAMA的大小为16(m/2)×(16(n/2)+16(s-2))的数据读入SRAMB中,然后从参考像素存放的SDRAM中读入16(m/2)×16个参考像素,同时存入SRAMA和SRAMB中,SRAMB中的像素即为当前宏块的参考像素;(6)判断s’是否为0,若不为0则执行(10);否则,当s=3,t>1时,即当前宏块为第三行非首列宏块时...

【技术特征摘要】
1、一种参考像素调度的方法,在视频编码中,用于运动搜索时从片外SDRAM中获取当前帧当前宏块的参考像素,图像帧大小为16S×16T,运动搜索的范围为16m×16n,其特征在于所述方法还需要三个内部存储器SRAM A、SRAM B和SRAM C,所述存储器的大小分别为16(m/2)×16n、16m×16n和16(m/2)×16(n/2),m,n为大于1的自然数,s’为一个行标记,初始值为0,其像素调度的实现过程如下(1)当当前宏块的行号s=1,列号t=1时,即当前宏块为首行首列宏块时,首先,参考帧存储器SDRAM将先前参考帧的最左上16(m/2)×16(n/2)位置的像素值预先写入SRAM C,更新SRAM C;然后将SRAM C的数据写入SRAM A;接着将SRAMA中的数据直接写入SRAM B中,SRAM B中的像素即为当前宏块的参考像素;其中,s为小于等于S的自然数,t为小于等于T的自然数;(2)当s=1,t>1时,即当前宏块为首行非首列宏块时,从t=1起每增加1,即每右移一个宏块,只需从SDRAM中补充16×16(n/2)个参考像素存入SRAM B中,SRAM B中的像素即为当前宏块的参考像素;(3)当s=2,t=1时,即当前宏块为第二行首列宏块时,首先将SRAMA的大小为16(m/2)×16(n/2)的数据读入SRAM B中,从参考像素存放的SDRAM中读入16(m/2)×16个参考像素,同时存入SRAM A和SRAM B中,SRAM B中的像素即为当前宏块的参考像素;(4)当s=2,t>1时,即当前宏块为第二行非首列宏块时,从t=1起每增加1,即每右移一个宏块,只需从SDRAM中补充16×(16(n/2)+16(s-1))个参考像素存入SRAM B中,SRAM B中的像素即为当前宏块的参考像素;设s’为一个行标记,初始值为0,若16(n/2)+16(s-1)<16n,则s′=0,否则令s’=s;(5)判断s’是否为0,若不为0则执行(9);否则当s=3,t=1时,即当前宏块为第三行首列宏块时,首先将SRAM A的大小为16(m/2)×(16(n/2)+...

【专利技术属性】
技术研发人员:王蕾睿许海峰滕国伟刘锦阳
申请(专利权)人:上海广电集团有限公司中央研究院
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1