一种hevc sao硬件计算装置及方法
【技术领域】
[0001 ]本发明涉及视频解码技术领域,尤其涉及一种HEVC SAO硬件计算装置及方法。
【背景技术】
[0002]HEVC(High Efficiency Video Coding)是由国际电信组织(ITU)和运动图像专家组(MPEG)联合成立的组织JCTVC提出的下一代视频编解码标准。目标是在相同的视觉效果的前提下,相比于上一代标准H.264/AVC,压缩率提高一倍。
[0003]基于HEVC的视频编码器,其结构图如图1所示,主要由以下几个模块组成:帧内预测、帧间预测、变换、量化、反量化、反变换、重建、去方块滤波器、自适应样点补偿等模块组成。视频压缩编码的基本过程可以概括如下:1.利用帧内预测或帧间预测方式对当前原始视频流像素进行预测;2.将原始的像素值与预测出来的像素值相减得到残差值;3.将残差进行变换及量化处理,得到输出的残差系数再进过CABAC(Context-based Adaptive
[0004]Binary Arithmetic Coding)熵编码形成最后的压缩输出码流;4.残差系数经过反量化及反变换处理,再与之前得到的预测像素相加得到重建像素,存储作为预测的参考帧像素。
[0005]SAO(SampIe Adaptive Offset)模块即为图1中的自适应样点补偿模块,该模块主要通过原始像素值与经过去方块滤波器以后像素值的比较获得偏移量的值,再将偏移量的值加到经过去方块滤波器以后像素值上,减少图像的失真,使重建图像具有更好的质量和PSNR值(峰值信噪比)。
[0006]在HEVC的官方参考软件中,该模块是基于一个LClKlargest coding unit,Y分量为64x64大小的像素点块,Cb和Cr分量为32x32大小的像素点块)大小进行运算的,这种处理方式的话,硬件实现中会导致片上需要大量的存储单元,消耗过多的硬件资源。
【发明内容】
[0007]为此,需要提供一种ffivcSAO硬件计算装置及方法,解决现有硬件解码
[0008]为实现上述目的,发明人提供了一种HEVCSAO硬件计算装置,包括去方块效应模块、SAO参数生成模块、状态机控制模块、存储模块、轮转模块、寄存器控制模块、SAO计算模块、输出控制模块;
[0009]所述去方块效应模块与SAO参数生成模块连接,所述去方块效应模块与轮转模块连接;所述SAO参数生成模块与状态机控制模块连接,状态机控制模块与存储模块和寄存器控制模块连接,存储模块与寄存器控制模块连接,轮转模块与存储模块连接,轮转模块还与寄存器控制模块连接,寄存器控制模块与SAO计算模块连接,所述SAO计算模块与输出控制模块连接;
[0010]所述去方块效应模块用于向SAO参数生成模块传输SAO解码参数,还用于将去方块效应以后的像素传送给轮转模块;
[0011 ]所述SAO参数生成模块用于根据SAO解码参数生成SAO参数;
[0012]所述状态机控制模块用于根据SAO参数生成控制信号,将所述控制信号传输给存储模块或寄存器控制模块;
[0013]所述轮转模块用于将所述去方块效应以后的像素传输到存储模块;
[0014]所述存储模块用于存储所述去方块效应以后的像素,接收控制信号;
[0015]所述寄存器控制模块用于接收控制信号,根据控制信号从存储模块中读取接收所述去方块效应以后的像素,将去方块效应以后的像素与SAO参数传输到SAO计算模块;
[0016]所述SAO计算模块用于根据去方块效应以后的像素和SAO参数进行计算,将计算结果传输给输出控制模块;
[0017]所述输出控制模块用于输出计算结果。
[0018]进一步地,所述计算结果包括计算后的像素buffer。
[0019]具体地,所述SAO计算模块中包括Y计算单元、U计算单元、V计算单元。
[0020]一种HEVC SAO硬件计算方法,包括步骤:
[0021 ]所述去方块效应模块向SAO参数生成模块传输SAO解码参数,将去方块效应以后的像素传送给轮转模块;
[0022]所述SAO参数生成模块根据SAO解码参数生成SAO参数;
[0023]所述状态机控制模块用于根据SAO参数生成控制信号,将所述控制信号传输给存储模块或寄存器控制模块;
[0024]所述轮转模块将所述去方块效应以后的像素传输到存储模块或寄存器控制模块;
[0025]所述存储模块存储所述去方块效应以后的像素,接收控制信号;
[0026]所述寄存器控制模块接收控制信号,根据控制信号从存储模块中读取接收所述去方块效应以后的像素,将去方块效应以后的像素与SAO参数传输到SAO计算模块;
[0027]所述SAO计算模块根据去方块效应以后的像素和SAO参数进行计算,将计算结果传输给输出控制模块;
[0028]所述输出控制模块输出计算结果。
[0029 ] 进一步地,所述计算结果包括计算后的像素buf f er。
[0030]具体地,所述SAO计算模块中包括Y计算单元、U计算单元、V计算单元。
[0031]区别于现有技术,上述技术方案在硬件中配合运行,可以YUVSAO计算同时进行,实际应用中能够实现HEVC 4K 60Hz的解码,实现了 SAO解码的完全流水,还对不同位置的像素实现了优化设计,使得基于该架构的HEVC硬件解码具有高性能,低功耗,面积优化的特点。
【附图说明】
[0032]图1为本发明【具体实施方式】所述的装置模块图;
[0033]图2为本发明【具体实施方式】所述的方法流程图;
[0034]图3为本发明【具体实施方式】所述的SAO计算模块。
[0035]附图标记说明:
[0036]100、去方块效应模块;
[0037]102、SAO参数生成模块;
[0038]104、状态机控制模块;
[0039]丨06、存储模块;
[0040]108、轮转模块;
[0041]110、寄存器控制模块;
[0042]112、SA0 计算模块;
[0043]114、输出控制模块。
【具体实施方式】
[0044]为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
[0045]请参阅图1,为本发明一种HEVCSAO硬件计算装置模块示意图,包括去方块效应模块100、SA0参数生成模块102、状态机控制模块104、存储模块106、轮转模块108、寄存器控制模块110、SAO计算模块112、输出控制模块114;
[0046]所述去方块效应模块100与SAO参数生成模块102连接,所述去方块效应模块100与轮转模块108连接;所述SAO参数生成模块102与状态机控制模块104连接,状态机控制模块104与存储模块106和寄存器控制模块110连接,轮转模块108与存储模块106连接,存储模块与寄存器控制模块连接,轮转模块108还与寄存器控制模块110连接,寄存器控制模块110与SAO计算模块112连接,所述SAO计算模块112与输出控制模块114连接;
[0047]所述去方块效应模块100用于向SAO参数生成模块传输SAO解码参数,还用于将去方块效应以后的像素传送给轮转模块;
[0048]所述SAO参数生成模块用于根据SAO解码参数生成SAO参数;
[0049]其中,SAO解码参数是前级去方块效应模块读取参数命令FIFO解析出来,包括slice级别,CTU级别关于当前SAO解码所需要的参数,可以由系统生成,直接应用于本装置。SAO参数是根据当前解码CTU的状态将前级传过来的SAO解码参数和之前计算存储的SAO解码参数进行再分析得出当前解码CTU(coding tree unit,编码树单元,图像划分的一种)SAO计算所需要的参数。SAO参数生成模块是从前级的参数FIFO读取SAO解码参数,根据读取到的解码参数重组更新当前CTU SAO控制与计算所需要的所有SAO参数,包括之前计算保存的SAO参数和保存下次计算所需要的SAO参数。
[0050]所述状态机控制模块用于根据SAO参数生成控制信号,将所述控制信号传输给存储模块或寄存器控制模块;状态控制模块是整个模块的核心控制模块,生成各种控制信号来控制下述模块进行SAO计算与输出的。
[0051]所述轮转模块用于将所述去方块效应以后的像素传输到存储模块;其中,去方块效应模块将像素处理为去方块效应以后的像素后将所述去方块效应以后的像素存储到轮转模块,当存储模块调用时传输到存储模块。轮转模块是将CTU buffer轮转于deblocking,recon与SAO计算模块,前级的计算结果需要经过recon,deb locking模块处理之后才能用于SAO计算,所述recon是预测数据与残差数据相加得到重构数据,所述deblocking是块效应环内滤波。
[0052]所述存储模块用于存储所述去方块效应以后的像素,接收控制信号;
[0053]所述寄存器控制模块用于接收控制信号,根据控制信号从存储模块中读取接收所述去方块效应以后的像素,将去方块效应以后的像素与SAO参数传输到SAO计算模块;
[0054]所述SAO计算模块用于根据去方块效应以后的像素和SAO参数进行计算,将计算结果传输给输出控制模块;所述输出控制模块用于输出计算结果。进一步地,在图3所示的实施例中,SAO计算模块有以下3个计算部分组成,分别是Y,U,V三个分量的计算逻辑单元,在这里所述YUV是图像格式,Y表示亮度,UV色度其中Y有8个子计算单元,U和V各用4个子计算单元。每个分量的计算