首页> 中国专利> 基于图像像素块行/列流水线的快速模式判决装置和方法

基于图像像素块行/列流水线的快速模式判决装置和方法

摘要

本发明公开一种基于图像像素块行/列流水线的快速模式判决装置和方法,本发明采取了像元行/列的模块流水技术,即在处理一个宏块6个8x8块过程中,以8x8块为单位进行模式选择,采用像元行/列级流水处理方式,每级流水都只需要一个时钟。另外,本发明还可以选择同时或者单独采取候选模式轮询技术,或/和采取RDO和SAD判据相结合的模式判别方法对模式进行决策。本发明完成一个宏块的模式判决过程只需要不到400个时钟周期,能够以不到150MHz的系统频率满足每秒30帧1920x1080高清视频图像实时编码的需求。

著录项

  • 公开/公告号CN102595137A

    专利类型发明专利

  • 公开/公告日2012-07-18

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN201210046346.6

  • 发明设计人 高志勇;马赫;张小云;陈立;

    申请日2012-02-27

  • 分类号H04N7/26(20060101);H04N7/32(20060101);

  • 代理机构31236 上海汉声知识产权代理有限公司;

  • 代理人郭国中

  • 地址 200240 上海市闵行区东川路800号

  • 入库时间 2023-12-18 06:04:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-31

    专利权的转移 IPC(主分类):H04N19/137 登记生效日:20170509 变更前: 变更后: 申请日:20120227

    专利申请权、专利权的转移

  • 2014-08-27

    授权

    授权

  • 2012-09-19

    实质审查的生效 IPC(主分类):H04N7/26 申请日:20120227

    实质审查的生效

  • 2012-07-18

    公开

    公开

说明书

技术领域

本发明涉及一种适用于AVS实时编码技术的硬件实现装置和方法,尤其涉及一种基于 图像像素块行/列流水线的快速模式判决装置和方法。

背景技术

AVS是我国为了适应数字电视广播、数字存储媒体、网络流媒体、多媒体通信等应用 中对运动图像压缩技术的需要而自主制定的数字音视频编解码标准,它采用了一系列技术 来达到高效率的视频编码,包括帧内预测、帧间预测、变换、量化和熵编码等。帧间预测 使用基于块的运动预测来消除图像间时域冗余,帧内预测使用空间预测模式来消除图像内 空域冗余,再通过对预测残差进行变换和量化消除图像视觉冗余。最后,运动矢量、预测 模式、量化参数和变换系数经熵编码进行压缩形成比特流。

与MPEG-2,、MPEG-4及H.264视频压缩标准一样,AVS也以16x16宏块作为编码的 基本单元,每个宏块由6个8x8的块组成,其中4个亮度块,2个色度块。在编码器中编 码模式的选择是一个非常重要的环节,它直接影响到编码的性能和码率。所谓模式选择是 指当前宏块的编码有多种策略,根据视频内容及场景的变化,对每一个宏块选择一个最佳 的编码策略进行编码。如亮度突变,则应采用帧内预测编码,而当前、后帧有较强相关性 时可采取帧间编码模式。编码模式选择应该对视频内容及场景变化有很好的适应性,因此 在实时视频编码框架中要确定一种快速有效的模式决策方法。

而目前所研究的都是基于率失真优化(RDO)的模式判决策略,RDO能用于解决每种 模式编码所用的比特数与图像失真间的优化问题。虽然RDO技术能有效提高编码系统的 性能和图像质量,但是在实时编码的前提下,对所有编码模式都做RDO选择,其巨大的 数据吞吐量是无法让人接受的。因此如何合理有效的进行模式决策一直是国内外研究的热 点。

在高清视频越来越流行的今天,数字视频编码器的设计变得异常复杂:数据处理吞吐 量大,外部存储器访问带宽需求高,电路资源消耗大,实现复杂度高。同时,硬件编码器 对实时性的要求非常高,为了能够实现低成本和低功耗编码,往往需要其工作频率能够做 到150MHz甚至更低。目前相关硬件实现方法,都是基于16x16宏块级以及8x8块级流水 线。以公开号为CN 101394560A的专利为例,假设流水线共有3级,那么在当前时刻T, 流水线第一级处理N+1号块,第二级处理N号块,第三级处理N-1号块;到了下一流水 时刻T+1,则变成第一级处理N+2号块,第二级处理N+1号块,第三级处理N号块,具 体参见图1。但是对于高清视频处理,这种流水处理方式很难实现低系统时钟频率的编码 系统。如需要降低编码系统频率,则要对算法作较大简化,从而导致一定程度失真,无法 达到用户欣赏高质量视频画质的要求。

发明内容

针对上述问题,本发明目的是提供一种基于图像像素块行/列流水线的快速模式判决装 置和方法。它完成一个宏块的模式判决过程只需要不到400个时钟周期,能够以不到 150MHz的系统频率满足每秒30帧1920x1080高清视频图像实时编码的需求。

为实现上述目的,本发明采取以下技术方案:

本发明所述的一种基于图像像素块行/列流水线的快速模式判决装置,包括控制,帧内 预测,核心计算,SAD(绝对误差和)计算,重构以及数据传输等模块。其中:

控制模块,负责本模块整体控制,以及负责整个内部处理流程;

帧内预测模块,读取当前块周围数据,根据读取到的数据判断哪些模式可用,然后按 照AVS标准中所描述的方法,进行帧内预测,计算得到当前块的预测块,并把结果输出到 核心计算模块;

核心计算模块,实现基于RDO判据的模式决策,包括:计算帧内预测块和原始块之 间的残差;对残差块进行处理,先后进行DCT变换,量化,反量化,DCT反变换,熵编 码过程,得到失真SSD(差值的平方和)以及编码后的码流比特R;计算率失真代价 RDcost=SSD+λ×R,λ是拉格朗日乘子;

SAD计算模块,提取传输过来的SAD值,同时也要计算帧内模式的SAD值进行模式 预判决,并将选择出的模式反馈给控制模块;

重构模块,将核心计算模块中经过DCT反变换得到的残差块与原始块相加,计算重 构像素。同时,等最佳模式检测出来之后,保存最佳模式的重构像素,以供后面模块使用;

数据传输模块,当最佳模式生成之后,需要将mv、预测方向等信息传送给后续模块。

所述的适于AVS编码的模式判决装置,为保证像元行/列级流水,需要在各个模块每 一级之间加缓冲存储器,存储上一级得到的结果,并为下一级输送数据,控制流水的进行。

所述的适于AVS编码的模式判决装置,还包括一种块级的乒乓结构存储装置。具体来 说,是两个或多个相同容量和结构的存储器,由控制模块进行控制。先向存储器一输入数 据,当一个块数据输入完成之后,发出控制命令,改为向存储器二输入数据,同时存储器 一将刚刚输入的数据向下一级输出,输出完成之后再次更换,依此类推。块级乒乓结构存 储器的使用,有效地保证了像元行/列级流水线的流畅进行。

本发明所述的一种基于图像像素块行/列级流水的快速模式判别方法,用于完成每个宏 块及其子块的模式判别过程,具体可以采用以下三种技术中的一种或多种:

①采取了像元行/列的模块流水技术。在宏块级或块级流水的处理方案中,不可能做到 每级流水模块处理时间完全相等,必然会导致处理较快的模块要等待处理慢的模块处理完 成。因此在流水线处理过程中,一级流水所需的时钟数(timing)是由流水线上所需时间 最长的模块来决定,而其余模块就会有若干等待周期。本发明在处理一个宏块6个8x8块 过程中,虽然以8x8块为单位进行模式选择,但是采用了像元行/列级流水处理方式,每级 流水都只需要一个时钟,因此流水线可以做到每个时钟都输入和处理一个像元行/列,使得 流水线中所有处理模块的空转周期降到最低。

②采取了基于SAD判据的模式预选技术。由于数据吞吐量巨大,为了既能达到实时 处理的要求,又尽可能保证良好的视频编码效果,本发明采取了RDO和SAD判据相结合 的模式判别方法对模式进行决策。其中,在I帧中不作任何简化,一方面I帧是整个图像 组GOP的预测参考,对于编码性能影响很大;另一方面影响整个编码器实时编码的数据 吞吐瓶颈在于P/B帧,所以I帧每个宏块的模式决策都根据RDO判据来选择。在P/B帧中, 从16x8、8x16、8x8和16x16四种模式中通过SAD判据预选出三种候选模式canmode1、 canmode2和canmode3,同时也根据SAD判据为每个8X8块选择一种最优的intra模式, 再让三种候选模式和skip/direct模式以及intra模式依次进入流水,通过RDO判据,选择 RDcost最小的一种模式。

③采取了候选模式轮询技术。帧内模式亮度块之间存在着严重的数据依赖,如果还是 按照常规B00、B01、B10、B11、U、V的处理顺序来处理,就会造成每个亮度块在处理 之前都要等上一个块处理完成,白白浪费系统时钟周期。而在一个宏块内色度块U、V的 预测是不存在数据依赖的,因此本发明将U和V的处理过程间插在亮度块之间,按照B00、 U、B01、B10、V、B11的顺序来处理,实验证明可以节省约上百个时钟周期。

本发明采取以上基于像元行/列流水处理的技术方案,具有以下优点:

1.大大增加系统吞吐量,在系统频率较低的情况下仍然可以达到实时高清编码的要 求;

2.高效模式预选技术的使用,使得本方法PSNR和所有模式都采用基于RDO判据模 式决策的方法相比下降很小,基本没有损失系统性能;

3.最大限度的排满流水,减少处理模块等待周期,提高了硬件利用效率;

4.数据复用技术,只需要进行一遍模式判别过程,期间将结果保存起来。等决策出 最优模式之后,从保存的已编码数据中选出最优数据块及相应的码流,无需再做一遍编码, 节省了硬件资源。

附图说明

图1是常见的基于宏块级、块级的流水线过程;

图2是模式判别模块的结构示意图;

图3是乒乓缓存的结构示意图;

图4是模式判别模块的整个处理过程;

图5是I帧的模式判别流水过程;

图6是P/B帧的模式判别流水过程。

具体实施方式

下面对本发明的实施例作详细说明,本实施例以本发明技术方案为前提,给出了详细 的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

如图2所示,给出了本发明基于图像像素块行/列流水线的快速模式判决装置实施例的 结构示意图,其中:

控制模块,负责本模块整体控制,产生控制信号,实现模块的启动,产生发现错误以 后的中断信号以及运算结束之后的停止信号;除此之外,负责整个内部处理流程,包括读 数据、控制处理以及控制输出等。

帧内预测模块,读取当前块周围数据,根据读取到的数据判断哪些模式可用,然后按 照AVS标准中所描述的方法,进行帧内预测(亮度块模式可能包括水平、垂直、DC、左 下以及右下;色度块模式可能包括水平、垂直、DC以及Plane),计算得到当前块的预测 块,并把结果输出到核心计算模块。

核心计算模块,是整个设计的核心,实现基于RDO判据的模式决策。主要包括:① 计算帧内预测块同原始块之间的残差;②对残差块进行处理,先后进行DCT变换,量化, 反量化,DCT反变换,熵编码过程,得到失真SSD以及编码后的码流比特R;③计算率 失真代价RDcost=SSD+λ×R。

SAD计算模块,主要完成SAD值的提取和计算。提取是指提取前面模块(亚像素元 预测模块)传输过来的SAD值,同时也要计算帧内模式的SAD值进行模式的预判决,并 将选择出的模式反馈给控制模块。

重构模块,将核心计算模块中经过DCT反变换得到的残差块与原始块相加,计算重 构像素。同时等最佳模式检测出来之后,保存最佳模式的重构像素,以供后面模块使用。

数据传输模块,当最佳模式生成之后,需要将mv、预测方向等信息传送给后续模块, 如码流生产模块、环路滤波模块等。

所述的适于AVS的模式判别装置,为了保证像元行/列级流水,需要在各个模块每一 级之间加缓冲存储器,存储上一级得到的结果,并为下一级输送数据,控制流水的进行。

所述的适于AVS的模式判别装置,还包括一种块级的乒乓结构存储装置,如图3所示。 具体来说,是两个或多个相同容量和结构的存储器,由控制模块进行控制。先向存储器1 输入数据,当一个块的数据输入完成之后,发出控制命令,改为向存储器2输入数据,同 时存储器1将刚刚输入的数据输出到下一级,输出完成之后再次更换,依此类推。块级乒 乓结构存储器的使用,有效地保证了像元行/列级流水的流畅进行。

如图4所示,给出了本发明基于图像像素块行/列流水线的快速模式判决方法优选实施 例的整个处理过程。如图所示,整个流程首先对残差块进行变换和量化,量化后的结果分 两路并行处理:一路经过反量化、反变换、重建,得到失真distortion;另外一路经过zigzag 扫描以及指数哥伦布编码计算码率R。另外,帧内预测模块在满足预测条件的情况下,可 以和流水线并行处理。

所述的变换过程是一个二维变换,在本实施例中,将其拆开分成两个一维变换——水 平变换和垂直变换,分别是对像素按列和按行处理。因此需要在水平变换和垂直变换之间 增加一个转置模块,保证行列像素之间的转换顺利进行。

所述的处理过程可继续拆分成行/列级流水,每级流水的周期为1个时钟。其中,水平 正变换需要5个时钟,第一次转置需要8个时钟,垂直正变换需要6个时钟,量化需要9 个时钟;在计算失真回路中,反量化需要3个时钟,水平反变换需要6个时钟,第二次转 置需要8个时钟,垂直反变换需要6个时钟,重建需要1个时钟,计算失真distortion需要 3个时钟,该回路总共需要27个时钟;在码流生成回路中,zigzag扫描和切换码表需要8 个时钟,拼接需要8个时钟,codenum查找需要1个时钟,指数哥伦布编码得到R需要4 个时钟,该回路总共需要21个时钟。由于两条回路并行处理,所以时钟数以较多的失真 计算回路为基准。因此,从残差数据输入到得到distortion和R,共需要55个时钟。同时, 流水完成之后还需要4个时钟计算RDcost,才能得到最优模式。

所述的像元行/列级流水机制,通过在每级流水间增加缓存以及使用乒乓结构存储器, 保证了每一个时钟数据都可由上一级输入到下一级,从流水线的开头到结束不会产生流水 阻塞。因此数据一旦进入流水就可以连续不绝的向下一级流去,直到该行/列数据从流水出 来。

所述的帧内预测过程,亮度块有5种模式:垂直、水平、DC、左下和右下;色度块有 四种模式:垂直、水平、DC和Plane。其中,对于亮度块来说,水平预测和垂直预测各需 要4个时钟,DC、左下和右下各需要6个时钟;对于色度块来说,垂直预测和水平预测各 需要4个时钟,DC需要6个时钟,Plane模式需要15个时钟。本实施例中,在帧内预测 周围所需数据已知的前提下,所有模式可以并行预测,不需要一种模式预测完成才能开始 下一种模式的预测。同时,在帧内预测内部也采用像元行/列级流水机制。

所述的帧内预测过程,由于预测当前块时需要用到左边块、上边块或者右上块最优模 式的重构像素,所以帧内预测存在块级数据依赖。如果按照正常B00、B01、B10、B11、 U、V的顺序进行预测,就会导致流水阻塞。例如,B01块的水平预测需要B00块最优模 式重构像素作为参考,而如果此时B00块仍在流水处理中,那么重构像素无法获取,流水 就不得不暂时处于等待状态。同理,B10和B11块的帧内预测也会遇到类似问题,这样将 会极大降低流水线效率。而分析可知,色度块预测在一个宏块内不存在数据依赖问题,因 此可以将色度块预测轮流间插在亮度块的预测之中,将大大减少流水阻塞的影响。

如图5所示,I帧的模式判别流水顺序步骤如下:

步骤1,当t=1时,开始B00块帧内预测,t=4时B00垂直模式第一列预测完成,t= 5时进入流水线,模式判别流水过程开始。

步骤2,由于帧内各种模式的预测可以并行进行,于是对于B00块来说,t=4时产 生垂直模式和水平模式第一列数据,t=12时最后一行数据预测完成;t=6时产生DC模 式、左下模式和右下模式第一列数据,t=14时最后一行数据预测完成,此时B00块所有 模式预测完成;同理,对于U块,考虑到最费时的Plane模式,当t=37时,U块预测完 成。

步骤3,t=100时,B00块流水完成,t=104时选出最优模式;t=108时B01水平预 测数据产生,因为B01垂直预测不需要用到B00的重构数据,因此在t=100时B01的垂 直预测模式列数据进入流水,t=108时垂直模式全部进入流水线,下一时钟正好可以开始 水平数据的输入。

步骤4,t=195时,B01块流水完成,t=199时选出最优模式;t=205时B10的DC 模式预测数据产生,因为B10的水平预测、垂直预测不需要用到B01块的重构数据,因此 在t=189时B10的水平预测数据进入流水,t=197时水平模式全部数据都进入流水线,t= 198时B10的垂直预测数据进入流水,t=205时垂直模式全部数据都进入流水线,t=206 时正好可以开始DC模式数据的输入。

步骤5,t=284时,B10块流水完成,t=288时B10选出最优模式;t=292时B11水 平预测数据产生,因为B11垂直预测不需要用到B10的重构数据,因此在t=284时B11 的垂直预测模式列数据进入流水,t=292时垂直模式全部进入流水线,下一时钟正好可以 开始水平数据的输入。

步骤6,t=378时,B11块流水完成。此时当前宏块的所有块都已经处理完成。再考 虑到后续的处理,例如数据的保存以及输出等过程,400个时钟之内一定可以完成一个宏 块的模式判别,大大节省系统资源。

所述的I帧流水顺序,在B00和B01块中间插入了色度块U的处理,在B10和B11 块的中间插入了色度块V的处理过程,最大限度排满模式判别内部流水,减少流水时钟等 待,提高系统运行效率。

图6为P/B帧的模式判别流水顺序。P/B帧的模式比较多,包括可变大小块16x16、 16x8、8x16、8x8以及skip/direct和intra(帧内)模式。要从这些模式中选择一种最佳编 码模式,最优的方法是和I帧一样让所有模式都进入模式判别流水进行选择。然而在1080P 的高清视频编码中,数据吞吐量太大,要做到低系统频率下的30帧/秒高清实时编码是很 困难的。所以现在需要对这些模式做一些简化,目标是找出一种快速的模式决策算法,既 能和所有模式都进入RDO流水的方法性能相差不大,又可以大大减少系统的数据吞吐量 以满足高清视频实时编码的需求。经过统计发现,16x8、8x16、8x8、16x16四种模式被选 中的概率相对较小,而skip/direct和intra模式被选中的概率相对较大。因此从16x8、8x16、 8x8和16x16四种模式中通过SAD判据预选出三种候选模式canmode1、canmode2和 canmode3,同时也根据SAD判据为每个8X8块选择一种最优的intra模式,再让三种候选 模式和skip/direct模式以及intra模式依次进入流水,通过RDO判据,选择RDcost最小的 一种模式。

所述的流水过程,行/列数据流水周期T=55个时钟,帧内模式仍然要考虑到块级数据 依赖问题,帧间模式则无此担忧。对于帧内模式来说,因为其模式已经通过SAD预选出 来,那么在每个块的流水一结束即可得到最优模式重构块,可以开始下一个块的预测。因 此,P/B帧模式判别的流水顺序步骤如下:

步骤1,t=1时开始帧内模式预测,因为不同模式预测需要不同的时钟周期,所以这 里假设预选出占用时钟周期最多的帧内预测模式,那么对于U、V块就为Plane模式,需 要15个时钟才能预测完成,即t=15时得到U、V块的预测块。因此t=8时B00块的预 测数据开始进入流水,t=15时8列数据都进入,t=16时U块刚好可以开始向流水输入数 据。

步骤2,t=69时,B00块帧内模式选择流水完成,得到最优模式重构块,经过6个时 钟,t=75预测出B01的帧内预测数据。而此时skip/direct模式数据还未完全进入流水, 所以等到t=80skip/direct模式数据全部进入流水后,B01预测块可以立马进入流水,不需 要空转等待。

步骤3,t=141时,B01块帧内模式选择流水完成,得到最优模式的重构块,经过6 个时钟,t=147时预测出B10的帧内预测数据。而canmode1模式在t=135就已经全部输 入进流水,此时B10预测数据还未产生,因此要空转等待12个时钟,当t=148时B10块 进入流水。

步骤4,t=210时,B10块帧内模式选择流水完成,得到最优模式的重构块,经过6 个时钟,t=216时预测出B11的帧内预测数据。而在B10块全部进入流水之后,先后让 canmode2和canmode3模式进入流水,当canmode3数据全部进入流水时t=251,已经得 到了B11的预测数据,因此B11块可以在t=252顺利进入流水。

最后,在t=314时,帧内模式的B11块流水完成,此时当前宏块的所有模式已经处理 完成。再考虑到后续处理,如数据保存以及输出等过程,400个时钟之内一定可以完成一 个宏块的模式判别,大大节省系统资源。

所述的模式判别部分的流水,考虑I帧和P/B帧的流水占用时钟最多的部分,最后只 需要379个时钟,因此计算出处理高清视频(1080p30帧)所需的系统频率为:

1920x1088x30/256x379=92.8MHZ

它能够满足不高于100MHz系统频率的高清视频的实时编解码的要求。

上述实施例是本发明最优选实施例,即同时采用像元行/列的模块流水技术、基于SAD 判据的模式预选技术、采取了候选模式轮询技术,具有非常好的有益效果:它完成一个宏 块的模式判决过程只需要不到400个时钟周期,能够以不到150MHz的系统频率满足每秒 30帧1920x1080高清视频图像实时编码的需求。但应当理解的是,本发明也有其他的实施 方式,比如单独采用像元行/列的模块流水技术、基于SAD判据的模式预选技术、采取了 候选模式轮询技术中的一种技术,或者采用其中两种技术的组合,这些实施方式的过程和 原理与上述优选实施例中三种技术实施的过程和原理一致,所以在此不再多做说明,本领 域的技术人员在得知上述优选实施例的情况下,单独使用或者两种技术组合使用的实施对 他们来说是很容易实现的。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述 不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种 修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号