像素自适应滤波器及滤波方法、编码器及解码器的制造方法
【技术领域】
[0001]本发明涉及视频编码技术领域,尤其涉及一种像素自适应滤波器及滤波方法、编码器及解码器。
【背景技术】
[0002]高效率视频编码(High Efficiency Video Coding, HEVC)是由国际电信组织(Internat1nal Telecommunicat1n Un1n, ITU)和运动图像专家组(Moving PictureExperts Group, MPEG)联合制定的下一代国际视频编码标准。与现有的国际标准H.264/AVC相比,HEVC在保证图像质量的前提下,可以将视频的码率降低50%,也就是说,可以达到H.264两倍的编码效率。
[0003]HEVC作为新一代的视频压缩标准,因为其优越的压缩性能,被广泛地用于超高清视频中。HEVC在提高压缩率的同时,其运算复杂度也相应增加。并且,因为超高清视频图像具有4Kx2K像素的分辨率,是1080P的4倍像素,其需要处理的数据量很大,如此高的运算复杂度和数据量对HEVC各模块的性能提出了极高的要求。
[0004]由于HEVC采用了更大的变换大小(最大支持32x32)和更多的帧间插值抽头数,其中亮度采用8抽头(8-tap),色度采用4-tap,会引入更多的振铃效应(RingingArtifacts),为降低这种效应,提高图像质量,需要对其进行像素自适应滤波。
[0005]现有技术中采用了一种以8x8为基本单元的像素自适应滤波器架构,其采用大量的寄存器来存储8x8边界的像素,并采用64个像素自适应滤波运算单元并行计算,硬件开销很大。
【发明内容】
[0006]本发明实施例所解决的问题是在同等处理性能的情况下,如何降低像素自适应滤波器的硬件开销。
[0007]为解决上述问题,本发明实施例提供一种像素自适应滤波器,包括:
[0008]第一存储模块,适于存储待像素自适应滤波数据;
[0009]第二存储模块,适于存储当前编码树单元CTU上一个CTU行的倒数第5行数据;
[0010]第三存储模块,适于存储当前CTU左边CTU右数第5至12列共8列数据;
[0011]读取模块,适于从所述第一、第二、第三存储模块读取数据,形成一个像素自适应滤波行;
[0012]寄存模块,适于存储4个以上连续的像素自适应滤波行;
[0013]第一控制模块,适于控制所述寄存模块中的像素自适应滤波行的移位存储;
[0014]滤波运算模块,适于进行像素自适应滤波,包括至少两个并行处理的像素自适应滤波单元;
[0015]第二控制模块,适于调度和控制所述读取模块读取数据,调度和控制所述第一控制模块对所述第二寄存器中的像素自适应滤波行进行行移位存储操作,以及调度和控制所述滤波运算模块进行像素自适应滤波。
[0016]可选的,所述像素自适应滤波行包括10个像素,所述读取模块适于在所述像素自适应像素行是第O行时,从所述第二存储模块读取;在是非O行时,判断所读取的列数,如果是第O列,从所述第三存储模块读取,如果是第I列,前5个像素从所述第三存储模块,后5个像素点从所述第一存储模块读取;否则,从所述第一存储模块读取。
[0017]可选的,所述滤波运算模块包括4个并行处理的像素自适应滤波单元。
[0018]可选的,所述像素自适应滤波器还包括:配置模块,适于配置所述滤波运算模块的滤波参数。
[0019]可选的,所述像素自适应滤波器还包括:第四存储模块,适于存储所述滤波运算模块输出的滤波数据。
[0020]可选的,所述第一、第二、第三、第四存储模块为均为SRAM。
[0021]为解决上述问题,本发明实施例还提供了一种视频编码器,包括上述的像素自适应滤波器。
[0022]为解决上述问题,本发明实施例还提供了一种视频解码器,包括上述的像素自适应滤波器。
[0023]为解决上述问题,本发明实施例还提供了一种像素自适应滤波方法,所述方法包括:
[0024]分别从第一、第二、第三存储模块读取数据,形成一个像素自适应滤波行;
[0025]将所读取的像素自适应滤波行进行存储入寄存模块,形成至少4个连续的像素自适应滤波行;
[0026]采用滤波运算模块进行像素自适应滤波,所述滤波运算模块包括至少两个并行处理的像素自适应滤波运算单元。
[0027]可选的,所述分别从所述第一、第二、第三存储模块读取数据,形成一个像素自适应滤波行,包括:在所述像素自适应像素行是第O行时,从第二存储模块读取;在是非O行时,判断所读取的列数,如果是第O列,从第三存储模块读取,如果是第I列,前5个像素从第三存储模块,后5个像素点从第一存储模块读取;否则,从第一存储模块读取。
[0028]可选的,所述进行像素自适应滤波,包括:采用4个并行的像素自适应滤波单元对输入的数据进行像素自适应滤波并输出。
[0029]与现有技术相比,本发明的技术方案具有以下优点:
[0030]通过从第一、第二、第三存储模块读取数据,形成一个像素自适应滤波行存入寄存模块,并通过像素自适应滤波行的循环移位,使得读取模块的读取速度与滤波运算模块的滤波速度相一致,在采用同样频率的像素自适应滤波运算单元的情况下,仅需少量的像素自适应滤波单元进行并行处理,即可达到相同的帧速率,因此可以减少硬件开销。
[0031]在所述滤波运算模块中采用4个自适应滤波运算器进行并行处理时,可以使读取速度和滤波运算速度完全同步,在采用同样频率的像素自适应滤波运算器的情况下,以较小的硬件代价,可以使帧速率加倍。
【附图说明】
[0032]图1是本发明实施例中像素自适应滤波器的结构示意图;
[0033]图2是本发明实施例中像素自适应滤波方法的流程图;
[0034]图3是本发明实施例中像素自适应滤波顺序的示意图。
【具体实施方式】
[0035]为解决上述问题,本发明实施例提供一种像素自适应滤波器,采用基于行的像素自适应滤波器架构,在采用很少的像素自适应滤波运算单元并行的情况下,对于同样频率的像素自适应滤波器件,可以实现同样的帧速率。
[0036]参照图1所示的像素自适应滤波器的结构示意图,本发明实施例中像素自适应滤波器可包括如下组成部分:
[0037]第一存储模块11,适于存储像素自适应滤波的输入数据;
[0038]第二存储模块12,适于存储当前CTU上一个CTU行的倒数第5行数据;
[0039]第三存储模块13,适于存储当前CTU左边CTU右数第5至12列共8列数据;
[0040]读取单元14,适于从所述第一、第二、第三存储模块11、12、13读取数据,形成一个像素自适应滤波行;
[0041]寄存模块15,适于存储4个以上连续的像素自适应滤波行;
[0042]第一控制模块16,适于控制所述寄存模块15中的像素自适应滤波行进行像素自适应滤波行的移位存储;
[0043]滤波运算模块17,适于进行像素自适应滤波,包括至少两个并行处理的像素自适应滤波单元;
[0044]第二控制模块18,适于调度和控制所述读取模块14读取数据以及所述滤波运算模块进行像素自适应滤波。
[0045]所述滤波运算模块17包括至少2个并行处理的像素自适应滤波单元。
[0046]在具体实施中,第一存储模块11中存储的待像素自适应滤波数据可以来自去块效应滤波器的输出。
[0047]在具体实施中,读取模块14可以首先根据CTU的大小,计算出所需处理的列数,以及每列中待处理的行数,并可以根据所读取的行列数选择从相应的存储模块读取待滤波行,本实施例中每个像素自适应滤波行有10个像素,具体可以按照如下规则执行:如果是第O行,从第二存储模块12读取;如果是非O行,判断所读取的列数,如果是第O列,所有数据从第三存储模块13读取,如果是第I列,前5个像素从第三存储模块13,后5个像素点从第一存储模块11读取;否则,从第一存储模块11读取。
[0048]例如,寄存模块15可以采用一个4行寄存器,每行可以存放10个像素,读取模块14 一次读取一个像素行,并存储至寄存模块15中,当寄存模块15中存储的像素行有3行时,滤波运算模块17即可从寄存模块15中读取数据,进行像素自适应滤波。在具体实施中,可以采用第一控制模块16来控制这个4行寄存器中像素行循环移位存储操作,以使得滤波运算模块17的滤波运算操作和所述读取模块14的读取操作可以并行处理,提高数据处理效率。
[0049]滤波运算模块17可以按照从上到下的顺序,对所述寄存模块15中存储的至少I行数据进行逐行处理,处理完一列再进行下一列的滤波顺序进行像素自适应滤波并输出。
[0050]在本发明实施例中,为减少硬件开销,可以使用尽量少的像素自适应滤波单元的个数。例如,滤波运算模块17可以采用2个像素自适应滤波单元进行并行处理,也可以采用4个像素自适应滤波单元进行并行处理。
[0051]当采用2个像素自适应滤波单元进行并行处理时,由于每个像素行中实际有8个像素是需要滤波的数据,而每个像素自适应滤波单元一次只能处于一个像素,对于每个像素行,需要2个时钟周期才能处理完需要处理的8个像素,相应地,读取模块14可以每两个时钟周期读取一个像素行。
[0052]而如果采用4个像素自适应滤波单元进行并行处理,则只需要一个时钟周期即可处理完一个像素行需要处理的8个像素,相应地,读取模块14