温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
FPGA
HEVC
方块
滤波
硬件
设计
陈焯淼
48电视技术 第 47 卷第 1 期(总第 566 期)PARTS&DESIGN器件与设计文献引用格式:陈焯淼,陈志峰,陈建,等.基于 FPGA 的 HEVC 去方块滤波硬件设计 J.电视技术,2023,47(1):48-51,69.CHEN Z M,CHEN Z F,CHEN J,et al.Hardware design of HEVC deblocking filtering based on FPGAJ.Video Engineering,2023,47(1):48-51,69.中图分类号:TP311.5 文献标识码:A DOI:10.16280/j.videoe.2023.01.010基于 FPGA 的 HEVC 去方块滤波硬件设计陈焯淼,陈志峰,陈 建*,汪家华(福州大学 物理与信息工程学院,福建 福州 350108)摘要:去方块滤波(Deblocking Filtering,DBF)是高效视频编码(High Efficiency Video Coding,HEVC)的重要组成部分,能够有效地改善编码图像的主观质量,是提升视频整体编码性能的重要手段之一。但是去方块滤波技术复杂度较高。为解决该问题,设计一种 HEVC 去方块滤波器的硬件架构,在节省资源消耗的同时,减少处理周期并改善滤波效率。以 84 块为基本滤波单元,从输入像素到输出像素,采用四级流水线的形式进行处理,每处理一个基本滤波单元共花费 5 个周期。实验结果表明,所设计的去方块滤波器仅需 5 212 个查找表和 1 291 个寄存器的逻辑资源消耗,最高可达到 215 MHz 的工作频率,满足 1 080p60fps 的高清视频实时编码。关键词:去方块滤波(DBF);高效视频编码(HEVC);环路滤波Hardware Design of HEVC Deblocking Filtering Based on FPGACHEN Zhuomiao,CHEN Zhifeng,CHEN Jian*,WANG Jiahua(College of Physics and Information Engineering,Fuzhou University,Fuzhou 350108,China)Abstract:Deblocking Filtering(DBF)is an important part of High Efficiency Video Coding(HEVC),which can effectively improve the subjective quality of encoded images and it is one of the important means to improve overall video encoding performance.However,the complexity of deblocking filtering technology is relatively high.To solve this problem,this paper designs a HEVC deblocking filter hardware architecture,which not only saves resource consumption,but also reduces the processing cycle and improves the filtering efficiency.Taking 84 blocks as the basic filtering unit,from input pixels to output pixels,a four-stage pipeline is used for processing.Each basic filtering unit takes 5 cycles in total.The experimental results show that the deblocking filter only needs 5 212 lookup tables and 1 291 registers,and the operating frequency can reach up to 215 MHz,which meets the real-time coding of HD video at 1 080p60fps.Keywords:Deblocking Filtering(DBF);High Efficiency Video Coding(HEVC);loop filter0 引 言当前,基于超高清视频的多媒体娱乐需求快速增长,对视频编码技术提出了更高的要求。高效视频编码(High Efficiency Video Coding,HEVC)是视频编码专家组(Video Coding Experts Group,VCEG)和运动图像专家组(Moving Picture Expert Group,MPEG)组成的视频编码联合协作组(JCT-VC)共同开发的一种视频编码标准1。与现有的 H.264/AVC 标准相比,HEVC 标准在相同的视觉质量下,降低了 50%的比特率2。块效应是基于块的视频压缩存在的最为明显的伪影问题,这是因为图像块的变换和量化是相互独立的。为此,H.265/HEVC 标准沿用了 H.264/AVC 标准的环路滤波技术,采用去方 基金项目:国家自然科学基金(62001117)。通信作者:陈 建(1981),女,博士,副教授,硕士生导师,研究方向为视频压缩与传输、压缩感知、点云压缩。E-mail:chenjian-。电视技术 第 47 卷第 1 期(总第 566 期)49PARTS&DESIGN器件与设计块滤波器来改善主客观视频质量。由于必须对块边界附近的所有像素进行滤波,HEVC 标准中的去方块滤波算法仍然有很高的计算复杂度,约占 HEVC视频解码器计算复杂度的 20%3。因此,新的视频编码标准的硬件实现对于行业应用来说非常重要。文献 4文献 10 中,已有学者提出了一些关于去方块滤波硬件实现的研究工作。HSU 等人提出一种新颖的内存结构和数据访问形式,设计了一个双行 DBF 滤波器4。TANG 等人提出一种具有两个垂直和两个水平边界的 88 块的无 SRAM 去方块滤波架构5。CHRISTOPHER 等人提出一种用于去方块滤波器的高效资源共享硬件架构。该架构利用四个边缘滤波器并行过滤 88 块的两个边缘6。AYADI 等人针对亮度 3232 编码块内的所有块边界提出了一种新的 DBF 硬件架构7。SHEN 等人提出一种基于 1/4LCU 的隔行存储组织来解决 DF 垂直和水平过滤之间的数据依赖性,并实现了去方块滤波与 SAO 联调8。文献 9 设计了一个单边缘去方块滤波器,每帧视频被分成 3232 个块,通过流水线的方式再将其分割成 832 个像素的块来处理,但是大幅度增加了外部存储带宽。文献 10 提出一种高通量、低功耗的 DBF 架构。该架构每个时钟能够处理 64 个样本,在两条并行数据路径中处理亮度和色度分量。上述一些研究工作为了追求高并行、高效率而大大增加了面积。本文重点研究一种高效的去方块滤波器在现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)上的实现,它以极少的资源消耗,通过流水线的形式来提高工作效率;重复利用重构 RAM 来输入输出数据,按滤波顺序进行滤波。经计算,处理一个最大编码单元(Largest Coding Unit,LCU)共需要 907 个周期。1 算法原理去方块滤波过程共分为 4 个步骤,其流程如图1 所示,详细介绍如下。确定滤波边界计算边界强度滤波开关抉择及滤波强弱选择滤波图 1 去方块滤波流程(1)确定滤波边界。去方块滤波只对 88 的PU(Prediction Unit,预测单元)或 TU(Transform Unit,变换单元)块边界进行滤波,因此需遍历每个 CU(Coding Unit 编码单元),检查每个 CU 中的88 边界是否是 PU 或者 TU 的边界。每个边界都有一个滤波标志,根据 PU,TU 的划分模式,将需要滤波的边界置为 1。(2)计算边界强度(Boundary Strength,BS)。根据编码参数初步判断,边界强度有 0,1,2 三种。实际滤波垂直边界是以 84 为基本单位,水平以48 为基本单位。根据每 44 块的编码参数来确定边界的滤波强度。(3)滤波开关决策。根据边界两边像素值的变化程度判断边界是否需要滤波。若边界两边区域像素本身就不平坦,则在边界处像素的跳跃自然被认为正常的,因此不需要滤波。而滤波强弱选择则根据边界两边像素值的变化率来判断滤波强度。(4)滤波。滤波分为亮度分量的强滤波、亮度分量的弱滤波以及色度分量的滤波。亮度分量的强滤波,需对边界两边各 3 个像素进行修正;亮度分量的弱滤波,需对边界两边 1 2 个像素进行修正;色度分量的滤波是指,当获取边界强度模块判定BS=2 时,色度分量需要进行滤波操作,需对边界两边各 1 个像素进行修正。2 硬件设计2.1 去方块滤波硬件框架DBF 的总体架构如图 2 所示。整体可分为主控制模块、滤波模块及数据缓存模块。主控模块包括状态机控制和地址生成模块。其中,状态机协调整个 DBF 模块的工作过程,控制流水线的翻转信号(Is_ver)、亮度/色度转换信号(Is_luma)及空闲/工作状态信号,地址生成模块根据状态机状态以及计数器的计数值生成像素和编码参数在存储器中的地址。滤波模块包括编码参数计算、边界强度计算、滤波决策及选择性滤波等子模块。其中,滤波决策子模块根据编码参数计算出的边界处像素值差别的判决门限(tc)、滤波开关的判决门限()和边界强度计算出的BS,判断是否需要进行强、弱滤波,还是不滤波;选择性滤波子模块对来自输入缓存(buffer)的 P 和 Q 像素块,同时进行强滤波、弱滤波或不滤波操作。该设计的滤波顺序为:亮度垂直亮度水平色度垂直色度水平,并根据滤波决策结果选择对应的滤波种类或未滤波数据输出。50电视技术 第 47 卷第 1 期(总第 566 期)PARTS&DESIGN器件与设计数据缓存模块又可以分为像素缓存(data_ram)和编码参数(param_ram)缓存。其中,data_ram 用来存放像素,做完垂直滤波后的像素将重新写回data_ram 中,用于下一阶段的水平滤波;param_ram用来存放编码参数,在输入像素的同时输入编码参数,用于计算阈值和边界处像素值差别的判决门限以及边界强度 BS。2.2 边界判断与边界强度计算模块的硬件实现去方块滤波架构中,边界判断和边界强度计算模块是较复杂的计算单元,在滤波数据准备好前就需要得到边界强度的值。而由第 1 节内容可知,计算边界强度前还需要确定滤波边界,具体的电路结构如图 3 所示。首先,将 cu、tu 和 pu 的划分结构都整合到查找表中,然后根据输入的 cu_depth(cu 深度)、tu_depth(tu 深度)、pu_partition(pu 划分方式)和 Q块的地址来判断该 44 块是否有滤波边界。值得注意的是,Q块的边界情况与对应的P块是一致的,重构RAMdata_ram主控模块地址生成器param_ramP bufferQ buffer强滤波弱滤波不滤波MUXP bufferQ buffer边界判断&边界强度计算编码参数计算滤波决策开始读/写地址Is_verIs_luma输出读/写地址写使能写地址tc BStc滤波模块缓存模块图 2 去方块滤波硬件架构边界判断查找表is_tu_edgeis_pu_edge=0BS=0=1pred_mode_ppred_mode_qBS=2=1=0cbf_pcbf_qBS=1=1=001mv_pmv_q=1=0cu_depthtu_depthpu_partitionAddr_Q图