APP下载

基于DSP Builder的快速整数离散余弦变换的实现

2019-01-18梁东云

系统仿真技术 2018年4期
关键词:蝶形信号处理整数

梁东云

(商洛学院 电子信息与电气工程学院,陕西 商洛 726000)

离散余弦变换(DCT)是一种常用的信号处理变换,具有很强的“能量集中”特性,而且当信号具有接近马尔科夫过程的统计特性时,DCT的去相关性接近K-L变换的性能,因此它被广泛应用于视频信号处理和音频信号处理等领域[1-3]。常见的H.264视频编码就利用了整数DCT[4-5]。实际应用中,相关算法的实现需要硬件的支撑。现代电子设计自动化(EDA)技术的迅速发展,使得常见算法可以通过硬件描述语言并利用现场可编程门阵列(FPGA)的逻辑资源实现,但代码编写、硬件调试比较复杂,开发周期长[6-8]。使用调试好的知识产权(IP)核可显著减小工作量,但许多IP核需要单独购买[9]。本文利用DSP Builder平台,在Simulink工作环境下采用图形模型构建整数DCT的蝶形运算模型,并对其进行仿真。由于该模型将多个EDA工具联合起来,避开了复杂的代码设计,因此降低了开发难度。

1 整数DCT变换

传统二维DCT及其逆变换如下所示[3]:

在H.264频频编码过程中,采用了4×4整数DCT,在不损害图像精度的前提下,减少了数据运算量,避免了传统浮点运算带来的数据失配问题。4×4整数DCT的基本变换如下所示[5]:

(1)

可等效为

(2)

(3)

可将式(3)的二维变换改造成2个一维变换。先对数据块矩阵每一行做一维整数DCT,然后再对结果的每一列进行一维整数DCT。每一次一维变换可以借助蝶形算法来快速完成,可减少运算量[10]。一维蝶形运算如图1所示。

图1 一维整数DCT蝶形运算Fig.1 One-dimensional integer DCT butterfly operation

图1中,x(0)~x(3)代表蝶形运算的输入数据,X(0)~X(3)代表蝶形运算的输出结果。相对于式(3),蝶形运算减少了计算量。然而,利用代码实现计算仍然比较复杂。借助DSP Builder平台,可以构建整数DCT运算的图形化模型,避免繁杂的代码编写。

2 模型设计

本文中搭建的一维整数DCT蝶形运算的DSP Builder模型如图2所示。图2中,In0~In3代表输入数据,Out0~Out3代表输出数据。将该模型封装为子系统,构建每一行(或列)的运算模型,然后将行、列运算模型级联,形成完整的二维整数DCT运算结构。该运算结构还不能直接用于测试,外加相应的数据输入及数据输出显示模块,才能形成顶层测试模型。

图2 一维整数DCT蝶形运算的图形模型Fig.2 Graphical model of one-dimensional integer DCT butterfly operation

3 仿真测试

含有输入输出数据的顶层测试模型如图3所示。

图3中x00~x33代表原始图像数据,Display模块显示输出结果,Subsystem和Subsystem1为一维整数DCT蝶形运算封装后的子系统。令4×4原始图像矩阵

仿真测试后从Display模块中显示变换后图像矩阵,如下所示:

经Simulink平台仿真后,运行“Signal Complier”可以将模型转换为硬件描述语言,并产生测试向量文件[10]。利用Modelsim平台对测试向量文件进行仿真,仿真输出数据如图4所示。

图5为直接在Matlab平台中运行代码的结果。通过对比可见,3种方法仿真结果一致,说明本文模型能够完成二维整数DCT的快速蝶形运算,并可通过后续硬件实现。综合后的硬件电路图较大,本文中略过。

4 结语

本文利用DSP Builder和Simulink平台,对H.264视频编码过程中常用的整数DCT进行了模型构建与仿真。本文以4×4整数DCT的快速蝶形运算为例,实际中可很容易地推广至8×8、16×16等分块情况。同时,整体设计是基于模型的方式,因此减少了代码编写的工作量。在实际的综合电子实训教学过程中,将数字信号处理等课程内容综合起来,逐步推广模型化电路设计方式,使学生能够快速地体会到信号处理相关理论的硬件模型实现。

图3 顶层测试模型Fig.3 Top-level test model

图4 Modelsim仿真结果Fig.4 Modelsim simulation results

图5 Matlab仿真结果Fig.5 Matlab simulation results

猜你喜欢

蝶形信号处理整数
在FPGA上实现FFT的高效串行流水线结构
蝶形引入光缆技术新进展
《信号处理》征稿简则
《信号处理》第九届编委会
《信号处理》征稿简则
《信号处理》第九届编委会
一类整数递推数列的周期性
聚焦不等式(组)的“整数解”
蝶形弹簧的受力分析及弹性拉压杆改造
答案