【技术实现步骤摘要】
本专利技术涉及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) ...
【技术保护点】
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 ...
【技术特征摘要】
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[中国|杭州]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。