CN101345880B - 基于avs的环路滤波器的硬件实现方法 - Google Patents
基于avs的环路滤波器的硬件实现方法 Download PDFInfo
- Publication number
- CN101345880B CN101345880B CN 200810198170 CN200810198170A CN101345880B CN 101345880 B CN101345880 B CN 101345880B CN 200810198170 CN200810198170 CN 200810198170 CN 200810198170 A CN200810198170 A CN 200810198170A CN 101345880 B CN101345880 B CN 101345880B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- filtering
- ranks
- modular converter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种基于AVS的环路滤波器的硬件实现方法。它将传统行列转换结构中80个8位可控寄存器修改为80个8位纯寄存器。垂直滤波时数据不需要从最左端输入,只需从p2的左端输入即可,水平缓冲6个周期后即可再进行垂直缓冲。左右两边的寄存组还可以在一维滤波模块进行复用。行列转换将垂直数据转换成水平数据,使得一维滤波模块能统一处理水平和垂直数据,具有节约资源,减少了近一半的面积,同时也极大的减少时钟周期和降低了模块功耗的优点。环路滤波器中的时序控制模块中采用Mealy状态机来实现,根据不同的边界强度(BS)值,控制处理过程的状态转移,达到了对数据的合理处理和状态的自适应跳转,使***代码易于维护。
Description
技术领域
本发明为一种行列转换和时序控制模块的硬件实现方法,适用于AVS解码器的环路滤波器。支持AVS标准的高清晰的实时视频解码器芯片可用于数字电视、手机视讯会议以及手机彩信业务、视频PDA、PSP视频游戏机和MP4等。
背景技术
AVS(Audio Video coding Standard)标准是基于我国自主创新技术和国际公开技术所构建的视音频编解码压缩标准。AVS解码流程如图1所示,解码器的熵解码接收到一串压缩的数据流。数据流进行熵解码并重新排序产生了一系列的量化系数X,通过反DCT变换得到。从数据流中解码出头信息,解码器建立参考宏块P,此与编码器中原始预测宏块P相同。P与相加得,再进行滤波即可得到解码出的宏块。
AVS解码器解码可采用三级流水线的设计,以达到高速解码的目的,第一级流水线包括码流分割、熵解码、反量化和反DCT模块;第二级流水线是预测部分,包括帧内预测和帧间预测模块;第三级流水线为环路滤波和像素重建模块。总的来说,解码流水线的主要功能是完成码流数据的解码生成重构图像,包括变长熵解码器、反量化、反DCT变换、帧内预测、运动补偿、环路滤波、像素重建。
基于块的编码有—个显著的特点就是重建图像存在块效应。采用环路滤波去除块效应,可以提高图像的主观质量和压缩效率。AVS1-P2采用自适应环路滤波,即根据块边界两侧的块类型先确定块边界强度Bs值,然后对不同的Bs值采取不同的滤波策略。帧内块滤波最强,非连续运动补偿的帧间块滤波较弱,而连续性较好的块之间不滤波。由于AVS1-P2变换和最小预测块大小都是8×8,因此环路滤波的块大小也是8×8。与H.264的4×4相比,AVS块边界数量大大减少。另外,Bs值和改变的像素值的数量都有所减少。
环路滤波模块结构如图2。为了实现滤波模块的通用性,因此将其单纯设计成一个纯通用的处理模块,由***总线将预处理的数据预先存入RAM中,即滤波模块无需考虑数据在每帧图像中的位置,同时也无需存储当前宏块和左或上边的宏块,其位置由时序控制统一发出的地址信号决定,即简化了滤波器的设计,节约了部分存储资源。通过修改相关参数可使其适用于不同设计中。
为了使一维滤波模块能统一处理以上两种情形,需将水平和垂直转换为同一方式进行处理,即设计行列转换将垂直数据转换成水平数据。行列转置大小为8×16,如图3行列转换示意图,当水平数据到来时,由in1输入,经行列转置缓冲,由out1输出给一维滤波模块进行滤波。当垂直数据到来时,由in2输入,经行列转置进行转置,由out1输出给一维滤波模块进行滤波。由于对每位数据处理的过程相同,即本模块由8×16=128个相同的子模块组成,每个子模块如图4所示,其输入数据端口为In_Left、In_Up,控制端口为Data_Dir、Dir,输出数据端口为Data_Right、Data_Down。每个数据端口为八位,每个控制端口一位。Data_Dir表示输入数据的来向,本设计中Data_Dir为低电平时输入数据取左边输入数据,为高电平时输入数据取上边输入数据。Dir表示数据输出方向,低电平表示数据从右输出,高电平表示数据从下输出。得到行列转换的结构图图5。
该模块需要128个8位可控寄存器单元,由于寄存器面积通常比较大,且输入输出都有信号控制,因此占用了极多的资源,也占用了环路滤波器面积大部分。
时序控制模块是影响环路滤波器性能的关键模块,负责控制一维滤波模块配置参数的计算、RAM数据的读出写入、行列转换的方向控制和一维滤波模块的滤波周期控制。目前环路滤波器中时序控制模块对所有的边界强度情况实行相同的处理。BS=0时不需要对数据进行滤波处理,BS=2时数据处理仅需1个时钟周期,而BS=1时的数据滤波过程较为复杂,在保证比较高的***工作频率前提下,大约要八个周期左右,对BS=0,2情况和BS=1情况采用相同的控制流程,就会增加了不必要的时钟处理周期。
发明内容
本发明的目的在于克服现有技术存在的不足,提供一种基于AVS的环路滤波器的硬件实现方法,将传统行列转换结构中80个8位可控寄存器修改为80个8位纯寄存器。垂直滤波时数据不需要从最左端输入,只需从p2的左端输入即可,水平缓冲6个周期后即可再进行垂直缓冲。该方法还采用Mealy状态机来实现时序控制模块的控制,根据不同的边界强度(BS)值,控制处理过程的状态转移。本发明通过如下技术方案实现。
基于AVS的环路滤波器的硬件实现方法,该方法将所述环路滤波器设计成一个处理模块,所述处理模块包括行列转换模块、一维滤波模块、时序控制模块、参数计算模块和RAM,由***总线将预处理的数据预先存入RAM中,所述行列转换模块将垂直数据转换成水平数据,并将水平数据输出给所述一维滤波模块进行滤波,一维滤波模块无需考虑数据在每帧图像中的位置,同时也无需存储当前宏块和左或上边的宏块,位置信号由时序控制模块统一发出的地址信号决定,所述行列转换模块分为三大部分:p7~p3的5列寄存器缓冲、p2~q2的6列行列转换寄存器组和q3~q7的5列寄存器缓冲;水平滤波时,数据从第一行缓冲到最后一行,一共需要8个时钟周期;垂直滤波时,数据不需要从行列转换模块的最左端输入,只需从p2的左端输入,水平缓冲6个周期后再进行垂直缓冲。
上述方法中,所述行列转换模块由80个8位纯寄存器构成,所述纯寄存器中没有输入输出控制信号。
上述方法中,经一维滤波模块滤波后的数据继续在行列转换模块中进行转换并输出给RAM;所述行列转换模块左右两边的寄存组在一维滤波模块中进行复用。
上述方法中,所述时序控制模块采用Mealy状态机实现时序控制处理流程,根据不同的边界强度(BS)值,控制处理过程的状态转移。
所述时序控制处理流程包括:总线对环路滤波器发出En使能信号,高电平表示滤波开始,总线将宏块的各种参数输出给时序控制模块,所述参数包括Alpha和Beta的偏移量、宏块的量化步长;参数计算模块对所述参数进行计算,得出Alpha、Beta和C值,并同时从片内RAM中读出p和q宏块的值,结合参数,算出宏块边界的边界强度值Bs;若Bs为0,则***自动转入对下一宏块处理,若Bs不为0,则***将p和q值输出给行列转换模块,行列转换模块对p和q值进行水平滤波和垂直滤波;数据经过行列转换模块后进入一维滤波模块,参数计算模块计算出的配置参数同时输出给一维滤波模块,一维滤波模块根据这些参数值按照AVS标准规定的处理模式对数据进行一维滤波处理;处理结束后,若是水平滤波,直接将数据写回RAM中,若是垂直滤波,将数据输入给行列转换进行转换后再写回RAM中。
上述方法中,每一宏块的时序控制处理流程总共需要6个水平滤波和6个垂直滤波过程。
本发明与现有技术相比具有如下优点:通过改进行列转换模块,在不改变功能的前提下,改进结构节约资源,减少了近一半的面积,同时也极大的减少时钟周期和降低了模块功耗。与现有时序控制硬件实现方法相比,本发明中的时序控制采用了实用性很强的状态机进行控制,可以稳定了控制各个状态的输出和控制,达到了对数据的合理处理和状态的自适应跳转,从而简化了设计的难度,也使***代码易于维护。
附图说明
图1为AVS解码流程示意图;
图2为本发明的环路滤波模块框图;
图3为行列转换示意图;
图4为行列转换子模块图;
图5为传统的8×16行列转换模块结构图;
图6为本发明改进的行列转换模块结构示意图;
图7为本发明所设计的环路滤波的状态跳转图;
图8为本发明具体实施方式中的结果仿真图。
具体实施方式
下面再结合附图对本发明的具体实施作进一步描述,本发明的上述和其他目的和特点将会变得更加清楚。
如图2所示,本发明基于AVS的环路滤波器的硬件实现方法将所述环路滤波器设计成一个处理模块,所述处理模块包括行列转换模块、一维滤波模块、时序控制模块、参数计算模块和RAM,由***总线将预处理的数据预先存入RAM中,所述行列转换模块将垂直数据转换成水平数据,并将水平数据输出给所述一维滤波模块进行滤波,一维滤波模块无需考虑数据在每帧图像中的位置,同时也无需存储当前宏块和左或上边的宏块,位置信号由时序控制模块统一发出的地址信号决定。
如图6所示,行列转换模块分为三大部分,p7~p3的5列寄存器缓冲,p2~q2的6列行列转换寄存器组,q3~q7的5列寄存器缓冲。与原结构的128个8位可控寄存器相比,此结构将80个8位可控寄存器修进为80个8位纯寄存器,由于没有了输入输出控制信号,因此极大的减少了资源利用。分析本行列转换模块的时序,水平滤波时与原模块一样,从第一行缓冲到最后一行,一共需要8个时钟周期;垂直滤波时,对于原设计模块,数据从RAM中读出从行列转置的左输入端进入,经过11个周期水平缓冲后,6组数据到达p2~q2的左端,再进行垂直缓冲将8组(6组数据,每组8个,转置后为8组数据,每组6个)输出给滤波器进行滤波。在本改进模块中,数据不需要从最左端输入,只需从p2的左端输入即可,水平缓冲6个周期后即可再进行垂直缓冲,相比较而言,本改进设计节约了5个时钟周期,在数据滤波完继续在行列转换矩阵中进行相同的操作将数据输出给RAM,此过程同样可节约5个时钟周期。因此,一次完整的垂直滤波可节约10个时钟周期,整个环路滤波有6次垂直滤波,总共可以节约60个时钟周期。本模块左右两边的寄存组还可以在一维滤波模块中进行复用。
表1
对原结构和改进结构进行对比如表1。在不改变功能的前提下,改进结构节约资源,减少了近一半的面积,同时也极大的减少时钟周期和降低了模块功耗。
环路滤波的时序控制处理流程如下:总线对环路滤波发出En使能信号,高电平表示滤波开始,总线将宏块的各种参数如Alpha和Beta的偏移量、宏块的量化步长等输出给本模块***。***对参数进行计算,得出Alpha、Beta和C等值,并同时***从片内RAM中读出p和q宏块的值,结合参数,可以算出宏块边界的边界强度值Bs。具体的滤波过程如图7所示,其中H1-H6分别表示水平滤波方向的6个采样点,V1-V8表示垂直滤波方向的8个采样点。如果边界强度值Bs计算的结果为0,则***自动转入对下一宏块处理。若边界强度值Bs计算的结果不为0,则***将宏块中p和q值输出给行列转换,行列转换对宏块中p和q值进行缓冲(水平滤波)和转换(垂直滤波)。数据经过行列转换模块后进入一维滤波模块,***计算出的配置参数同时输入给一维滤波模块,一维滤波模块选择合适的处理模式对数据进行一维滤波处理。处理结束后,若是水平滤波,直接将数据写回RAM中,若是垂直滤波,对数据输入给行列转换进行转换后再写回RAM中。一个宏块的处理流程到此结束。总共需要6个水平滤波和6个垂直滤波过程,每一宏块处理流程与以上流程类似。
基于AVS的环路滤波器中行列转换和时序控制模块分别用来实现将垂直数据转换成水平数据和控制处理过程的状态转移。图8为本设计的仿真结果(以垂直滤波,Bs=2为例),根据图2的设计内容可知,p2~q2为经行列转移缓冲输出给滤波器的数据,P2~Q2为滤波后的数据,Bs=2表示此两个宏块间的边界强度为2,Mode表示了滤波模式选择。因为滤波只涉及左右(上下)各三个数据,如图8所示,仿真结果只显示处理的数据。与官方标准的C代码程序结果对比验证,本设计结果正确。
Claims (5)
1.基于AVS的环路滤波器的硬件实现方法,该方法将所述环路滤波器设计成一个处理模块,所述处理模块包括行列转换模块、一维滤波模块、时序控制模块、参数计算模块和RAM,由***总线将预处理的数据预先存入RAM中,所述行列转换模块将垂直数据转换成水平数据,并将水平数据输出给所述一维滤波模块进行滤波,一维滤波模块无需考虑数据在每帧图像中的位置,同时也无需存储当前宏块和左或上边的宏块,位置信号由时序控制模块统一发出的地址信号决定,其特征在于将所述行列转换模块分为三大部分:p7~p3的5列寄存器缓冲、p2~q2的6列行列转换寄存器组和q3~q7的5列寄存器缓冲;水平滤波时,数据从第一行缓冲到最后一行,一共需要8个时钟周期;垂直滤波时,数据不需要从行列转换模块的最左端输入,只需从p2的左端输入,水平缓冲6个周期后再进行垂直缓冲;所述行列转换模块包括48个8位可控寄存器和80个8位纯寄存器构成,所述纯寄存器中没有输入输出控制信号。
2.如权利要求1所述的方法,其特征在于经一维滤波模块滤波后的数据继续在行列转换模块中进行转换并输出给RAM。
3.如权利要求2所述的方法,其特征在于:所述行列转换模块左右两边的寄存组在一维滤波模块中进行复用。
4.如权利要求1~3任一项所述的方法,其特征在于所述时序控制模块采用Mealy状态机来实现时序控制处理流程。
5.如权利要求4所述的方法,其特征在于所述时序控制处理流程包括:总线对环路滤波器发出En使能信号,高电平表示滤波开始,总线将宏块的各种参数输出给时序控制模块,所述参数包括Alpha和Beta的偏移量、宏块的量化步长;参数计算模块对所述参数进行计算,得出Alpha、Beta和C值,并同时从片内RAM中读出p和q宏块的值,结合参数,算出宏块边界的边界强度值Bs;若Bs为0,则***自动转入对下一宏块处理,若Bs不为0,则***将p和q值输出给行列转换模块,行列转换模块对p和q值进行水平滤波和垂直滤波;数据经过行列转换模块后进入一维滤波模块,参数计算模块计算出的配置参数同时输出给一维滤波模块,一维滤波模块根据这些参数值按照AVS标准规定的处理模式对数据进行一维滤波处理;处理结束后,若是水平滤波,直接将数据写回RAM中,若是垂直滤波,将数据输入给行列转换进行转换后再写回RAM中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810198170 CN101345880B (zh) | 2008-08-29 | 2008-08-29 | 基于avs的环路滤波器的硬件实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810198170 CN101345880B (zh) | 2008-08-29 | 2008-08-29 | 基于avs的环路滤波器的硬件实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101345880A CN101345880A (zh) | 2009-01-14 |
CN101345880B true CN101345880B (zh) | 2010-09-01 |
Family
ID=40247749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810198170 Expired - Fee Related CN101345880B (zh) | 2008-08-29 | 2008-08-29 | 基于avs的环路滤波器的硬件实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101345880B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101106710A (zh) * | 2006-07-10 | 2008-01-16 | 上海杰得微电子有限公司 | 一种高效去方块效应滤波器电路及其方法 |
CN101170690A (zh) * | 2007-11-21 | 2008-04-30 | 上海广电(集团)有限公司中央研究院 | 基于avs的环路滤波器的硬件装置及硬件实现方法 |
-
2008
- 2008-08-29 CN CN 200810198170 patent/CN101345880B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101106710A (zh) * | 2006-07-10 | 2008-01-16 | 上海杰得微电子有限公司 | 一种高效去方块效应滤波器电路及其方法 |
CN101170690A (zh) * | 2007-11-21 | 2008-04-30 | 上海广电(集团)有限公司中央研究院 | 基于avs的环路滤波器的硬件装置及硬件实现方法 |
Non-Patent Citations (4)
Title |
---|
生滨.AVS视频编解码芯片关键部件的体系结构研究与设计.中国博士学位论文全文数据库 信息科技辑 2007/05.2007,(2007/05),I136-24. |
生滨.AVS视频编解码芯片关键部件的体系结构研究与设计.中国博士学位论文全文数据库 信息科技辑 2007/05.2007,(2007/05),I136-24. * |
黄中华,支琤.基于FPGA的AVS环路滤波器设计与实现.计算机工程33 6.2007,33(6),222-224. |
黄中华,支琤.基于FPGA的AVS环路滤波器设计与实现.计算机工程33 6.2007,33(6),222-224. * |
Also Published As
Publication number | Publication date |
---|---|
CN101345880A (zh) | 2009-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108449603B (zh) | 基于多核平台多层次任务级与数据级并行的hevc解码方法 | |
CN101252694B (zh) | 基于块的视频解码的帧存储压缩和地址映射*** | |
Shen et al. | Ultra fast H. 264/AVC to HEVC transcoder | |
CN110337002B (zh) | 一种在多核处理器平台上hevc多层次并行解码方法 | |
CN102647593B (zh) | 一种avs帧内模式决策方法和装置 | |
CN101646081A (zh) | 一种avs快速帧内预测方法及装置 | |
Zhu et al. | A combined SAO and de-blocking filter architecture for HEVC video decoder | |
CN101115207A (zh) | 基于预测点间相关性的帧内预测实现的方法及装置 | |
CN110351552B (zh) | 视频编码中一种快速编码方法 | |
CN101635849B (zh) | 一种环路滤波方法及环路滤波器 | |
CN108540797A (zh) | 基于多核平台的hevc帧内/帧间联合wpp编码方法 | |
CN100417227C (zh) | 用于avs视频解码器的高效流水线*** | |
CN101345880B (zh) | 基于avs的环路滤波器的硬件实现方法 | |
CN101867818A (zh) | 宏块模式的选择方法和装置 | |
CN101605263B (zh) | 帧内预测的方法和装置 | |
CN102595137A (zh) | 基于图像像素块行/列流水线的快速模式判决装置和方法 | |
CN201345710Y (zh) | 一种适用于视频解码的环路滤波器 | |
Jiang et al. | GPU-based intra decompression for 8K real-time AVS3 decoder | |
CN102801973B (zh) | 视频图像去块滤波方法及装置 | |
CN101340584B (zh) | 一种视频解码方法和装置 | |
Li et al. | Optimized reference frame selection for video coding by cloud | |
CN104754363A (zh) | 用于hevc的环路滤波方法及装置、编码器及解码器 | |
CN103826120A (zh) | 一种适用于hevc的码流解析器 | |
CN103237225B (zh) | 利用yuv与rgb空间联合修正视频编解码误差的方法 | |
CN102572416B (zh) | 视频滤波方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100901 Termination date: 20140829 |
|
EXPY | Termination of patent right or utility model |