H.264高速亮度插值装置与方法制造方法及图纸

技术编号:4117439 阅读:172 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供的H.264高速亮度插值装置包括参考缓存模块,寄存器输入控制模块,寄存器组,滤波器输入控制模块,N路6抽头滤波器,RAM缓存I/O控制模块,RAM缓存模块,参考缓存模块从外部读取当前亮度块插值处理所需参考像素矩阵,参考像素矩阵全部读入参考缓存模块后,将参考像素矩阵放入寄存器组中,N路6抽头滤波器通过滤波器输入控制模块从寄存器组中同时且分别获得6个参考像素作为输入,求取1/2像素点,并将1/2像素点缓存到RAM缓存模块中。本发明专利技术的整个插值过程由多路并行滤波器流水运行达到饱和状态,有效减少亮度插值处理时钟数,提高最大计算频率,满足多路高清数字视频信号实时编解码需求。

【技术实现步骤摘要】

本专利技术涉及H. 264数字视频编解码标准中的亮度插值技术,尤其是通过并行流水 方式实现的H. 264高速亮度插值的装置和方法,其可应用于H. 264编码和解码。
技术介绍
由国际电信联盟和国际标准化组织运动图像专家组组成的联合视频组制订的 H. 264/AVC标准是一种高效的第二代视频编码标准,已被广泛应用于安全监控、可视电话、 视频会议、DVD、字地面电视、卫星电视、终端数字视、数码摄像机、移动多媒体等领域。物 体运动具有连续性,而数字视频序列是离散采样信号,为了获取更优异的编码性能,H. 264 标准在运动估计中采用最高精度为1/4像素的亮度插值技术,其中1/2像素点通过系数为(1, _5,20,20,5,1)的6抽头滤波器计算得到,l/4像素点通过双线性插值计算得到。高精 度子像素插值算法能大幅提高编码性能,但同时也使得数字视频编解码技术的应用实现复 杂度增大。 如图1所示为H. 264标准中亮度插值示意图。其中A, B, C, D, E, F, G, H, I, J, K, L, M, N, P, Q, R, S, T, U为整像素点,b, s, h, m, j为1/2像素点,aa, bb, cc, dd, ee, ff, gg, hh为1/2像素点中间值,a, c, d, n, f , q, i, k, e, g, p, r为1/4像素点。对整像素点G插值, 按如下方法处理后即得到G, a, b, c, d, e, f, g, h, i, j, k, n, p, q, r16个像素点,完成插值 过程如下 (1)水平1/2像素点b按式(1) 、 (2)计算得到, 1/2像素点中间值aa, bb, gg, hh计算过程与bl类似; (2)垂直1/2像素点h按式(3) 、 (4)计算得到' 1/2像素点中间值cc, dd, ee, ff计算过程与hl类似; (3)对角线1/2像素点j按式(5) 、 (6)计算得到; (4) 1/4像素点a, c, d, n, f , q, i, k, e, g, p, r按式(9)至(20)计算得到' b = CliplY((bl+16) >> 5) (1) bl = (E-5*F+20*G+20*H_5*I+J) (2) h = CliplY((hl+16) >> 5) (3) hi = (A-5*C+20*G+20*M-5*R+T) (4) j = CliplY((jl+512) >> 10) jl = EiEi—5氺bb+20氺bl+20氺sl—5氺gg+hh CliplY(x) = Clip3(0, (1 << 8)-l, x)1/2像素点s计算过程与b类似, 1/2像素点m计算过程与h类似,(5)(6)(7)C7^3(3c,_y,zj =< x 、z; o^er (G+b+1) >> 1 (H+b+1) >> 1(8)(9)(10) d = (G+h+1) >> 1 (11) n = (M+h+1) >> 1 (12) f = (b+j+1) >> 1 (13) i = (h+j+1) >> 1 (14) k = (j+m+1) >> 1 (15) q= (j+s+1) >> 1 (16) e = (b+h+1) >> 1 (17) g= (b+m+1) >> 1 (18) p = (h+s+1) >> 1 (19) r= (m+s+1) >> 1 (20) 目前已有11.264亮度插值处理设计主要以单个像素点插值过程为出发点,在插值 算法内部进行优化实现,以减小芯片面积成本,但未考虑架构上的高并行流水,以满足越来 越快的编解码处理速度需求。
技术实现思路
本专利技术旨在解决现有技术的不足,提出一种H. 264高速亮度插值装置,在合理利 用硬件资源的前提下,有效减少亮度插值处理时钟数,提高编解码速度。 同时,本专利技术还提供一种H. 264高速亮度插值方法。 H. 264高速亮度插值装置包括参考缓存模块,寄存器输入控制模块,寄存器组,滤 波器输入控制模块,N路6抽头滤波器,RAM缓存I/O控制模块,RAM缓存模块 所述参考缓存模块以DMA模式从外部读取并保存当前亮度块插值处理所需参考 像素矩阵; 所述当前亮度块由4X4整像素点构成,参考像素矩阵基于当前4X4亮度块在参 考图像中对应位置,上边扩展两行像素点,下边扩展三行像素点,左边扩展两列像素点,右 边扩展三列像素点得到大小为9X9的参考像素矩阵; 所述寄存器输入控制模块连接参考缓存模块、RAM缓存模块及寄存器组,所述参考 缓存模块为寄存器输入控制模块提供整像素点,所述RAM缓存模块为寄存器输入控制模块 提供水平1/2像素点、垂直1/2像素点、对角线1/2像素点以及1/2像素中间点,寄存器输 入控制模块根据当前时钟数控制寄存器组选择存储整像素点、水平1/2像素点、垂直1/2像 素点、对角线1/2像素点或者1/2像素中间点; 所述滤波器输入控制模块根据当前时钟数控制N路6抽头滤波器进行下列操作 中从所述寄存器组提供的整像素点计算并输出水平l/2像素点、垂直l/2像素点以及水平 1/2像素中间点或垂直1/2像素中间点两种中的一种;从所述寄存器组提供的水平1/2像 素点中间值或垂直1/2像素中间点计算并输出对角线1/2像素点; 所述N路6抽头滤波器在RAM缓存I/O控制模块下将水平1/2像素点、垂直1/2 像素点、对角线1/2像素点或者1/2像素中间点保存在RAM缓存模块中。 进一步所述N等于4 ; 4X4亮度块所需参考整像素点为9X9,以字访问的数据对齐后需3X9word,本发 明中参考缓存采用乒乓读写,则需3 X 9 X 2word,其中一个3 X 9word用于当前4 X 4亮度块插值处理,另一 3 X 9word则通过DMA将下一个4X4亮度块插值处理所需的9 X 9参考整 像素矩阵读入。所述参考缓存模块由3块数据位宽为32bit,深度为18的1读1写双端口 RAM组成,分别为第一 RAM0,第二 RAMI及第三RAM2, 9 X 9参考整像素矩阵中第0,3,6行整 像素存放在第一 RAM0中,第1 , 4, 7行整像素存放在第二 RAMI中,第2, 5, 8行整像素存放在 第三RAM2中。从外部数据接口来看,所述参考缓存模块具有1个32bit宽度的写端口,3个 32bit宽度的读端口。 所述6抽头滤波器分解为以下3级流水第1级计算X = (G+H) < < 2+ (G+H) , Y = (F+I) << 2+(F+I)及Z = (E+J);第2级计算bl = Z+(X << 2-Y) ,bl—clip0 = (bl+16) >> 5及bl—clipl = (bl+512) >> 10 ;第3级计算b_clipO = CliplY(bl_clipO)及b_ clipl = CliplY(bl_clipl);其中G点为整像素待插本文档来自技高网
...

【技术保护点】
H.264高速亮度插值装置,其特征在于包括参考缓存模块,寄存器输入控制模块,寄存器组,滤波器输入控制模块,N路6抽头滤波器,RAM缓存I/O控制模块,RAM缓存模块:所述参考缓存模块以DMA模式从外部读取并保存当前亮度块插值处理所需参考像素矩阵;所述寄存器输入控制模块连接参考缓存模块,RAM缓存模块及寄存器组,所述参考缓存模块为寄存器输入控制模块提供整像素点,所述RAM缓存模块为寄存器输入控制模块提供水平1/2像素点、垂直1/2像素点、对角线1/2像素点以及1/2像素中间点,寄存器输入控制模块根据当前时钟数控制寄存器组选择存储整像素点、水平1/2像素点、垂直1/2像素点、对角线1/2像素点或者1/2像素中间点;所述寄存器组存储整像素点、1/2像素值及1/2像素中间值,为滤波器输入控制模块提供输入数据;所述滤波器输入控制模块根据当前时钟数控制N路6抽头滤波器进行下列操作中:从所述寄存器组提供的整像素点计算并输出水平1/2像素点、垂直1/2像素点以及水平1/2像素中间点或垂直1/2像素中间点两种中的一种;从所述寄存器组提供的水平1/2像素点中间值或垂直1/2像素中间点计算并输出对角线1/2像素点;所述N路6抽头滤波器在RAM缓存I/O控制模块下将水平1/2像素点、垂直1/2像素点、对角线1/2像素点或者1/2像素中间点保存在RAM缓存模块中。...

【技术特征摘要】
H.264高速亮度插值装置,其特征在于包括参考缓存模块,寄存器输入控制模块,寄存器组,滤波器输入控制模块,N路6抽头滤波器,RAM缓存I/O控制模块,RAM缓存模块所述参考缓存模块以DMA模式从外部读取并保存当前亮度块插值处理所需参考像素矩阵;所述寄存器输入控制模块连接参考缓存模块,RAM缓存模块及寄存器组,所述参考缓存模块为寄存器输入控制模块提供整像素点,所述RAM缓存模块为寄存器输入控制模块提供水平1/2像素点、垂直1/2像素点、对角线1/2像素点以及1/2像素中间点,寄存器输入控制模块根据当前时钟数控制寄存器组选择存储整像素点、水平1/2像素点、垂直1/2像素点、对角线1/2像素点或者1/2像素中间点;所述寄存器组存储整像素点、1/2像素值及1/2像素中间值,为滤波器输入控制模块提供输入数据;所述滤波器输入控制模块根据当前时钟数控制N路6抽头滤波器进行下列操作中从所述寄存器组提供的整像素点计算并输出水平1/2像素点、垂直1/2像素点以及水平1/2像素中间点或垂直1/2像素中间点两种中的一种;从所述寄存器组提供的水平1/2像素点中间值或垂直1/2像素中间点计算并输出对角线1/2像素点;所述N路6抽头滤波器在RAM缓存I/O控制模块下将水平1/2像素点、垂直1/2像素点、对角线1/2像素点或者1/2像素中间点保存在RAM缓存模块中。2. 如权利要求1所述H. 264高速亮度插值装置,其特征在于所述当前亮度块大小为 4X4,所述N等于4。3. 如权利要求1或2所述H. 264高速亮度插值装置,其特征在于所述参考缓存模块由 3块数据位宽为32bit,深度为18的1读1写双端口 RAM组成,分别为第一RAMO,第二 RAMI 及第三RAM2。其中,9X9参考整像素矩阵中第0,3,6行整像素存放在RAM0中,第1,4,7行 整像素存放在RAM1中,第2,5,8行整像素存放在RAM2中。从外部数据接口来看,所述参考 缓存模块具有1个32bit宽度的写端口,3个32bit宽度的读端口。4. 如权利要求1或2所述H. 264高速亮度插值装置,其特征在于所述6抽头滤波器 分解为以下3级流水第1级计算X = (G+H) << 2+(G+H) , Y = (F+I) << 2+(F+I)及Z =(E+J);第2级计算bl = Z+(X << 2-Y) , bl_clipO = (bl+16) >> 5及bl_clipl = (bl+512) > > 10 ;第3级计算b_clipO = CliplY(bl_clipO)及b_clipl = CliplY(bl_ clipl);其中G点为整像素待插值点,E、F为离G点最近的左边两个整像素点,H、 I、 J为离 G点最近的右边三个整像素点。5. 如权利要求1或2所述H. 264高速亮度插值装置,其特征在于所述RAM缓存模块包 括位宽为60bit,深度为9的1读1写第四RAM60X9和位宽32为bit深度为5的1读1写 第五RAM32 X 5,其中,第四RAM60 X 9缓存水平1/2像素点中间值,水平1/2像素点及对角线 1/2线像素点,第五RAM32X5缓存垂直1/2像素点6. 如权利要求1或2所述H. 264高速亮度插值装置,其特征在于还包括插值输入控制 模块和双向线性插值模块,所述插值输入控制模块根据当前时钟数从寄存器组中选取水平 1/2像素点、垂直1/2像素点、对角线1/2像素点,并提供给双向线性插值模块,所述双向线 性插值模块对进行双线性插值,计算得到1/4像素点。7. H. 264高速亮度插值方法,其特征在于包括如下步骤(1)参考缓存模块以DMA模式从外部读取当前亮度块插值处理所需参考像素矩阵;(2)参考像素矩阵全部读入参考缓存模块后,将参考像素矩阵放入寄存器组中,N路6 抽头滤波器通过滤波器输入控制模块从寄存器组中同时且分别获得6个参考像素作为输 入,求取1/2像素点,并将1/2像素点缓存到RAM缓存中。8. 如权利要求7所述H. 264高速亮度插值方法,其特征在于所述当前亮度块大小为 4X4 ;所述寄存器组由34个寄存器构成;所述6抽头滤波器为4路;所述RAM缓存包括存 储空间为60X9的第四RAM及存储空间为32X5的第五RAM,第四RAM及第五RAM按时钟将 1/2像素点缓存入寄存器组。9. 如权利要求7或8所述H. 264高速亮度插值方法,其特征在于还包括下列步骤通 过双向线性插值模块从寄存器组中获取参考整像素点及1/2像素点作为输入,求取1/4像 素点。10. 如权利要求7或8所述11.264高速亮度插值方法,其特征在于所述步骤(1)实现 的方法为将参考整像素矩阵中第0, 3, 6行整像素存放在RAM0中,第1 , 4, 7行整像素存放在 RAMI中,第2,5,8行整像素存放在RAM2中,从外部数据接口来看,所述参考缓存模块具有1 个32bit写位宽,3个32bit读位宽。11. 如权利要求8所述11.264高速亮度插值方法,其特征在于所述步骤(2)所述求取 4X4亮度块的1/2像素点的方法为(1) 参考像素矩阵的第0行至第8行逐行进行4路水平6抽头滤波,各路6抽头滤波器 从当前行分别获得参考像素点,逐行输出并保存第l行至第8行水平1/2像素中间值,构成 9行4列的水平1/2像素中间值阵列;在输出第2行至第6行水平1/2像素中间值时,同时 输出并保存第2行至第6行水平1/2像素值,构成5行4列的水平1/2像素阵列;(2) 参考像素矩阵的第2列至第6列逐列进行4路垂直6抽头滤波,各路6抽头滤波 器从当前列分别获得参考像素点,逐行输出第2列至第6列的垂直1/2像素值,构成5行4 列的垂直1/2像素阵列;(3) 将步骤(1)得到的4X9的水平1/2像素中间值阵列进行4路对角线6抽头滤波, 各路6抽头滤波器分别从水平1/2像素中间值阵列的各列获得像素点,逐行输出并保存对 角线1/2像素值,构成4行4列的对角线1/2像素阵列。12. 如权利要求11所述H. 264高速亮度插值方法,其特征在于其中4路6抽头滤波器 求取1/2像素点过程如下(1) 从寄存器组读取9X9参考整像素矩阵第0行9个数据(ref00, ref01, ref02, ref03,ref04,ref05,ref06,ref07,ref08),将该行第0, 1, 2, 3, 4, 5个参考整像素作为第一 6抽头滤波器0的输入数据;第1, 2, 3, 4, 5, 6个参考整像素作为第二 6抽头滤波器1的输 入数据;第2, 3, 4, 5, 6, 7个参考整像素作为第三6抽头滤波器2的输入数据;第3, 4, 5, 6, 7,8个参考整像素作为第四6抽头滤波器3的输入数据;(2) 从寄存器组读取9X9参考整像素矩阵第1行9个数据(refl0, refll, refl2, refl3,ren4,ren5,ren6,refl7,ren8),将该行第0, 1, 2, 3, 4, 5个参考整像素作为第一 6抽头滤波器0的输入数据;第1 , 2, 3, 4, 5, 6个参考整像素作为第二 6抽头滤波器1的输入 数据;第2,3,4,5,6,7个参考整像素作为第三6抽头滤波器2的输入数据;第3, 4, 5, 6, 7, 8 个参考整像素作为第四6头滤波器3的输入数据,同时将步骤(1)中产生的参考整像素矩 阵中第0行的1/2像素中间值bl00、bl01、bl02、bl03存入第五RAM 60X9的地址0中;(3) 从寄存器组读取9X9参考整像素矩阵第2行9个数据(refl0, refll, refl2, refl3,ren4,ren5,ren6,refl7,ren8),将该行第0, 1, 2, 3, 4, 5个参考整像素作为第一 6抽头滤波器0的输入数据;第1, 2, 3, 4, 5, 6个参考整像素作为第二 6抽头滤波器1的输 入数据;第2, 3, 4, 5, 6, 7个参考整像素作为第三6抽头滤波器2的输入数据;第3, 4, 5, 6, 7,8个参考整像素作为第四6抽头滤波器3的输入数据;同时将步骤(2)中产生的参考整 像素矩阵中第l行的1/2像素中间值bllO、blll、bll2、bll3存入RAM60X9的地址1中;(4) 从寄存器组读取9X9参考整像素矩阵第3行9个数据(ref20, ref21, ref22, ref23,ref24,ref25,ref26,ref27,ref28),将该行第0, 1, 2, 3, 4, 5个参考整像素作为第一 6抽头滤波器0的输入数据;第1 , 2, 3, 4, 5, 6个参考整像素作为第二 6抽头滤波器1的输入 数据;第2,3,4,5,6,7个参考整像素作为第三6抽头滤波器2的输入数据;第3, 4, 5, 6, 7, 8 个参考整像素作为第四6抽头滤波器3的输入数据;同时将步骤(3)中产生的参考整像素 矩阵中第2行的1/2像素中间值bl20、bl21、bl22、bl23存入RAM 60X9的地址2中;(5) 从寄存器组读取9X9参考整像素矩阵第4行9个数据(ref30, ref31, ref32, ref33,ref34,ref35,ref36,ref37,ref38),将该行第0, 1, 2, 3, 4, 5个参考整像素作为第一 6抽头滤波器0的输入数据;第1 , 2, 3, 4, 5, 6个参考整像素作为第二 6抽头滤波器1的输入 数据;第2,3,4,5,6,7个参考整像素作为第三6抽头滤波器2的输入数据;第3,4,5,6,7, 8个参考整像素作为第四6抽头滤波器3的输入数据;将步骤(3)产生的参考整像素矩阵 中第2行的1/2像素值b20、b21、b22、b23存入RAM 32X5的地址0中;同时将步骤(4)中 产生的参考整像素矩阵中第3行的1/2像素中间值bl30、bl31、bl32、bl33存入RAM 60X9 的地址3中;(6) 从寄存器组读取9X9参考整像素矩阵第5行9个数据(ref40, ref41, ref42, ref43,ref44,ref45,ref46,ref47,ref48),将该行第0, 1, 2, 3, 4, 5个参考整像素作为第一 6抽头滤波器0的输入数据;第1,2,3,4,5,6个参考整像素作为第二6抽头滤波器1的输 入数据;第2, 3, 4, 5, 6, 7个参考整像素作为第三6抽头滤波器2的输入数据;第3, 4, 5, 6, 7,8个参考整像素作为第四6抽头滤波器3的输入数据,将步骤(4)产生的参考整像素矩阵 中第3行的1/2像素值b30、b31、...

【专利技术属性】
技术研发人员:徐向阳汤博
申请(专利权)人:杭州士兰微电子股份有限公司
类型:发明
国别省市:86[中国|杭州]

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

1