一种匹配块高效取数的视频解码的方法及电路的制作方法

文档序号:7764498阅读:145来源:国知局
专利名称:一种匹配块高效取数的视频解码的方法及电路的制作方法
技术领域
本发明属于视频解码技术领域,具体是指一种匹配块高效取数的视频解码的方法 及电路。
背景技术
在视频解码过程中,使用帧间预测(inter)模式的宏块(macroblock)在运动补 偿(motion compensation)过程中,需要从已经解码好的图像中取出匹配块,作为预测 结果,然后在预测结果的基础上,叠加从码流中解析出的残差数据,得到还原的重构宏块 (macroblock) 0近年来视频的图像尺寸在飞速增大,几年间从174x144的QCIF,增加到了 1920x1080的1080p,不断增加的图像尺寸,使得解码器从外存中读取数据会产生巨大访问 带宽,以及为解决访问带宽问题而使用的高延迟DDR内存带来的高访问延迟,成为了很多 解码器的性能瓶颈。同时伴随着视频协议的不断发展,在H. 264协议中,为了提高压缩率,出现了一个 宏块使用不同参考帧的不同位置取出的不同形状匹配块进行预测的技术,加上不同位置 分数像素插值扩边所需的不同像素情况,这使得取数过程变得异常复杂,很容易产生极端 不规则访问外存的特性,加之目前芯片总线的位宽在不断提高,已经从16bit已经提高到 64bit甚至128bit,大量零散的Sbit级非对齐小数据量访问,会极大地浪费总线的宽带,导 致取数效率极其低下,也使得高性能解码器取数过程需要有完全不同的框架来解决这些问 题。基本的视频解码的流程,包括如下步骤解析宏块类型相关的语法元素;解析运 动补偿相关的语法元素,得到取数过程相关信息;解析残差系数相关的语法元素,经过反扫 描(Inverse Scan),反变换(Inverse Transform),反量化(Inverse Quantization),得到 残差像素数据;取数模块根据取数过程相关信息从外存取数;运动补偿模块根据取到的参 考块数据进行插值和加权预测,得到预测像素;叠加预测像素和残差像素得到重构像素,对 重构像素做去块滤波并输出。在一般的宏块硬件解码的流程中,如图1所示,会在type模 块解码宏块类型以及子块类型,判断为是帧间类型后,在Get_MV模块获取refjdx和mv, 得到取数的地址和大小,送给fetch模块进行取数,剩下的系数码流送入Get_ReSidUal模 块,解析出残差系数,进行反扫描(Inverse Scan),反变换(Inverse Transform),反量化 (Inverse Quantization),得到残差像素。与些同时,fetch模块从外存中取数,把取到的 数送入运动补偿(Motion Compensation)模块进行插值和加权,得到预测像素。残差像素 与预测像素叠加之后,得到重构像素,再送入最后的去块滤波(deblock)模块滤波并输出。在普通的解码流程中,从fetch模块开始的MC路径,由于存在低效率不规则的外 存访问,MC路径在速度上是远远慢于硬件内部高速的残差路径的,所以整个硬件的速度会 被访问外存的带宽给限制住。中国发明专利第20041009125. 4号公开了一种视频图像运动补偿装置,该方案在外存取数之后到存储的过程间加入插值计算,但是对取数过程的效率没有提高。中国发明专利第20051000487. 2号公开了一种用于压缩视频信号解码的图像存 储方法,该方案在外存中的参考图像使用特殊格式存储,存取过程复杂,在某些特殊情况下 还可能降低效率。中国发明专利第20051009873. 7号公开了一种运动补偿数据载入装置及方法,该 方案把二维取数归并为一维取数,部分提高了取数的效率,但是只针对单个宏块进行使用。中国发明专利第20071004671号公开了一种解码装置中控制片内存储器的数据 并行读写的方法及装置,该方案在宏块之下的分块尺度下进行取数并行,在DDR等高访问 延迟内存的场景下无法达到预期效果。中国发明专利第20071004692. 9号公开了一种视频处理中数据预取系统,该方案 适用于CPU或DSP等处理器类的非cache机制数据预取指令。中国发明专利第20081030211. 6号公开了一种基于H. 264标准运动补偿的数据快 速读取方法,该方案以9x9的细碎分块读取数据,在实际上会大大增加系数总线上额外的 换行和猝发间开销。

发明内容
本发明所要解决的技术问题在于提供一种匹配块高效取数的视频解码的方法及 电路,该方法优化总线上取数效率,提高外存访问速度的效果,整体提高了视频解码的效率。本发明采用以下技术方案解决上述技术问题提供一种匹配块高效取数的视频解码的方法,包括如下步骤步骤10 把数个宏块合并成一个宏块组;步骤20 解析宏块组中第一宏块宏块类型相关的语法元素;步骤30 解析第一宏块运动补偿相关的语法元素,得到第一宏块取数过程相关信 息;步骤40 解析第一宏块残差系数相关的语法元素,经过反扫描,反变换,反量化, 得到第一宏块残差像素数据;步骤50 解析宏块组中第二宏块宏块类型相关的语法元素;步骤60 解析第二宏块运动补偿相关的语法元素,得到第二宏块取数过程相关信 息;之后,同时进行步骤70、80、90 ;然后转入步骤100 ;步骤70 解析第二宏块残差系数相关的语法元素,经过反扫描,反变换,反量化, 得到第二宏块残差像素数据;步骤80 取数模块对第一宏块和第二宏块的取数过程相关信息进行合并优化,使 用优化过的取数信息从外存取数,所述步骤20、30、40、50、60不分先后;步骤90 运动补偿模块根据取到的参考块数据进行插值和加权预测,分别得到第 一宏块和第二宏块的预测像素,所述步骤80和本步骤不分先后;步骤100 分别叠加第一宏块和第二宏块的预测像素和残差像素得到重构像素, 对重构像素做去块滤波并输出。提供一种视频解码电路,包括
宏块合并单元,用于把数个宏块合并成一个宏块组;第一解析单元,用于解析宏块组中第一宏块宏块类型相关的语法元素;解析第一 宏块运动补偿相关的语法元素,得到第一宏块取数过程相关信息;解析第一宏块残差系数 相关的语法元素,经过反扫描、反变换、反量化,得到第一宏块残差像素数据;第二解析单元,用于解析宏块组中第二宏块宏块类型相关的语法元素;解析第二 宏块运动补偿相关的语法元素,得到第二宏块取数过程相关信息;解析第二宏块残差系数 相关的语法元素,经过反扫描、反变换、反量化,得到第二宏块残差像素数据;取数单元,用于对第一宏块和第二宏块的取数过程相关信息进行合并优化,使用 优化过的取数信息从外存取数;运动补偿单元,用于根据取到的参考块数据进行插值和加权预测,分别得到第一 宏块和第二宏块的预测像素;重构单元,用于分别叠加第一宏块和第二宏块的预测像素和残差像素得到重构像 素,对重构像素做去块滤波并输出。本发明的优点在于把数个宏块合并成一个宏块组,以一个宏块组为单位进行取 数,最大程度利用参考数据的空间局部性,优化合并一个宏块组内的访问,利用高位宽总线 的长猝发传输,提高总线利用率。


下面参照附图结合实施例对本发明作进一步的描述。图1是现有技术帧间宏块基本解码流程图。图2是本发明合并优化取数过程的一个宏块组的基本解码流程图。图3是本发明宏块组级并行过程示意图。
具体实施例方式在高性能解码器解码过程中,内存访问的延迟往往是远大于一个宏块码流的解析 时间的,而且高性能解码器设计中,性能是第一关注对象,资源使用不是首要问题,同时,外 存访问和码流解码过程是可以分离的,也就是说,可以提前很多时间解析得到当前要访问 的内存的位置。所以本发明提出,把数个宏块合并成一个宏块组,以一个宏块组为单位进行取数, 最大程度利用参考数据的空间局部性,优化合并一个宏块组内的访问,利用高位宽总线的 长猝发传输,提高总线利用率。本发明具体步骤详述如下步骤10 把数个宏块合并成一个宏块组;步骤20 解析宏块组中第一宏块宏块类型相关的语法元素;步骤30 解析第一宏块运动补偿相关的语法元素,得到第一宏块取数过程相关信 息;步骤40 解析第一宏块残差系数相关的语法元素,经过反扫描,反变换,反量化, 得到第一宏块残差像素数据;步骤50 解析宏块组中第二宏块宏块类型相关的语法元素;
步骤60 解析第二宏块运动补偿相关的语法元素,得到第二宏块取数过程相关信 息;之后,同时进行步骤70、80、90 ;然后转入步骤100 ;步骤70 解析第二宏块残差系数相关的语法元素,经过反扫描,反变换,反量化, 得到第二宏块残差像素数据;步骤80 取数模块对第一宏块和第二宏块的取数过程相关信息进行合并优化,使 用优化过的取数信息从外存取数。步骤90 运动补偿模块根据取到的参考块数据进行插值和加权预测,分别得到两 个宏块的预测像素;步骤100 分别叠加两个宏块的预测像素和残差像素得到重构像素,对重构像素 做去块滤波并输出。其中步骤80同时与下一次循环的第20至70步骤并行进行。请参阅图2和图3所示,本发明核心思路是取得多个宏块的取数信息之后,把这些 取数信息进行合并优化,达到优化总线上取数效率,提高外存访问速度的效果。同时,由于 使用两级宏块解码,在后一个宏块开始合并取数时,前一级宏块解码硬件可以为下一个宏 块解码进行服务,达到了更大程度上的宏块级并行效果。以静止场景情况下经常连续出现的P_skip宏块为例,如果是四分之一像素情况 下,正常情况的16x16宏块下,每个宏块需要取数23x23个点,每行取数23个像素,取23行, 在32位总线下,使用32位burst4传输两个宏块,需要每行使用两个burst4传输,共计92 次传输,总传输有效数据率为(2*23*23)/((4*4) *2*23*2) = 71. 9%。如果使用本发明多宏 块合并优化取数,就同样使用32位burst4传输,(2*23*23)/((4*4*3) *23) = 95. 8%,对总 线宽带的利用率大大提高。本发明还提供一种视频解码电路实施例,包括宏块合并单元,用于把数个宏块合并成一个宏块组;第一解析单元,用于解析宏块组中第一宏块宏块类型相关的语法元素;解析第一 宏块运动补偿相关的语法元素,得到第一宏块取数过程相关信息;解析第一宏块残差系数 相关的语法元素,经过反扫描、反变换、反量化,得到第一宏块残差像素数据;第二解析单元,用于解析宏块组中第二宏块宏块类型相关的语法元素;解析第二 宏块运动补偿相关的语法元素,得到第二宏块取数过程相关信息;解析第二宏块残差系数 相关的语法元素,经过反扫描、反变换、反量化,得到第二宏块残差像素数据;取数单元,用于对第一宏块和第二宏块的取数过程相关信息进行合并优化,使用 优化过的取数信息从外存取数;运动补偿单元,用于根据取到的参考块数据进行插值和加权预测,分别得到第一 宏块和第二宏块的预测像素;重构单元,用于分别叠加第一宏块和第二宏块的预测像素和残差像素得到重构像 素,对重构像素做去块滤波并输出。使用两宏块一组作为宏块组最小单元,使用上述框架进行解码,在不同片源情况 下,外存访问带宽比原解码器减少20 40%,整体解码速度平均提高了 10%以上。
权利要求
一种匹配块高效取数的视频解码的方法,其特征在于包括如下步骤步骤10把数个宏块合并成一个宏块组;步骤20解析宏块组中第一宏块宏块类型相关的语法元素;步骤30解析第一宏块运动补偿相关的语法元素,得到第一宏块取数过程相关信息;步骤40解析第一宏块残差系数相关的语法元素,经过反扫描、反变换、反量化,得到第一宏块残差像素数据;步骤50解析宏块组中第二宏块宏块类型相关的语法元素;步骤60解析第二宏块运动补偿相关的语法元素,得到第二宏块取数过程相关信息;之后,同时进行步骤70、80、90;然后转入步骤100;步骤70解析第二宏块残差系数相关的语法元素,经过反扫描,反变换,反量化,得到第二宏块残差像素数据;步骤80取数模块对第一宏块和第二宏块的取数过程相关信息进行合并优化,使用优化过的取数信息从外存取数,所述步骤20、30、40、50、60不分先后;步骤90运动补偿模块根据取到的参考块数据进行插值和加权预测,分别得到第一宏块和第二宏块的预测像素,所述步骤80和本步骤不分先后;步骤100分别叠加第一宏块和第二宏块的预测像素和残差像素得到重构像素,对重构像素做去块滤波并输出。
2.一种视频解码电路,其特征在于,包括宏块合并单元,用于把数个宏块合并成一个宏块组;第一解析单元,用于解析宏块组中第一宏块宏块类型相关的语法元素;解析第一宏块 运动补偿相关的语法元素,得到第一宏块取数过程相关信息;解析第一宏块残差系数相关 的语法元素,经过反扫描、反变换、反量化,得到第一宏块残差像素数据;第二解析单元,用于解析宏块组中第二宏块宏块类型相关的语法元素;解析第二宏块 运动补偿相关的语法元素,得到第二宏块取数过程相关信息;解析第二宏块残差系数相关 的语法元素,经过反扫描、反变换、反量化,得到第二宏块残差像素数据;取数单元,用于对第一宏块和第二宏块的取数过程相关信息进行合并优化,使用优化 过的取数信息从外存取数;运动补偿单元,用于根据取到的参考块数据进行插值和加权预测,分别得到第一宏块 和第二宏块的预测像素;重构单元,用于分别叠加第一宏块和第二宏块的预测像素和残差像素得到重构像素, 对重构像素做去块滤波并输出。
全文摘要
本发明公开一种匹配块高效取数的视频解码的方法及电路,所述方法把数个宏块合并成一个宏块组,以一个宏块组为单位进行取数,取得多个宏块的取数信息之后,把这些取数信息进行合并优化。同时,由于使用两级宏块解码,在后一个宏块开始合并取数时,前一级宏块解码硬件可以为下一个宏块解码进行服务,达到了更大程度上的宏块级并行效果。最大程度利用参考数据的空间局部性,优化合并一个宏块组内的访问,利用高位宽总线的长猝发传输,提高总线利用率。
文档编号H04N5/14GK101986709SQ201010534938
公开日2011年3月16日 申请日期2010年11月8日 优先权日2010年11月8日
发明者陈恒明 申请人:福州瑞芯微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1