视频压缩IPcore设计
OMU1(
.address(adr),
.inclock(clk),
.q(dat));
defparaln
lpm_rom_component.lpm_width=16,
lpm_rom_component.lpm_widthad=4,
lpm_rom_component.1pm_address_control
="REGISTERED",
lpm_rom_component.ipm_outdata
="UNREGISTERED",
lpm_rom_component.1pm_file="romtable.mif";
这样,可以得到由这些基本单元构成与矩阵公式(4)相对的1D-DCT的FPGA设计,如图4所示。其中4RC单元表示图3的结构。
如前所述,2D-DCT需要两个1D-DCT共同完成,但是两个1D-DCT运算的中间变量并不是直接传递的,而需要一个矩阵转置模块进行耦合。
1.2转置RAM
2D-DCT单元由两个相同的1D-DCT和转置RAM等组成,如图5所示。根据公式(2),可以知道1D-DCT先对8x8单元的行进行累加操作,把得到的结果暂存到RAM中,直到8行都运算完成。RAM中的临时8x8矩阵要先转置,把列数据变成行数据,经并串转换后输入到第2个1D-DCT进行行累加。
转置RAM是一个8x8的RAM阵列。当数据完成1D-DCT变换后,即由xij到zjl变换,按行顺序输入到转置RAM,在读出时按列顺序读出,这样完成zil到zli的变换;然后将z9并串转换,输入到第二个1D-DCT,由zli运算得到ylk。这样就完成了公式(1)的2D-DCT整个变换,如图6所示。
1.32D-IDCT
2D-IDCT变换如公式(5)所示。
可见公式(5)与公式(1)相同,所以2D-IDCT可以用与2D-DCT的同样方法实现。
1.4量化,编码
量化算法包括一张量化表,它因人眼对各
种空间频率的灵敏度的不同而确定。在表中,较低空间频率的精度要高于较高频率的精度,这是由于人眼的低频分量比较敏感,而对高频分量不太敏感。
编码可以采用游程编码或熵编码。单元模块均可通过FPGA的片上RAM(满足双口RAM的特性)设计完成。
图6
2结论
整个视频压缩IPcore设计(第2页)可以在FPGA上实现,在27MHz的系统时钟下工作。根据具体芯片的不同,可以在更高的速率工作。压缩速率可以达到108Mbps。
实际应用中,数据字长对压缩效果和比率有较大影响,一般情况下系数Cm取12位,可以满足大部分的视频压缩要求。
整个视频压缩IPcore可以直接下载到FPGA上(例如EDIF格式),独立实现视频压缩功能,也可以通过软件设计与其他的IPcore协同工作。例如,在网络摄像机的应用上,可以把视频压缩IPcore、数字摄像头控制器、网络接口一起编译成新的核。这个核具有视频采
集、压缩、传输等一系列功能。把核的EDIF文件通过生产厂商的下载软件下载到FPGA上,就可以在一块芯片上实现所有网络摄像机的功能。实现了SoPC(SystemOnaProgrammableChip)的目标。
《视频压缩IPcore设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/165713.html
.address(adr),
.inclock(clk),
.q(dat));
defparaln
lpm_rom_component.lpm_width=16,
lpm_rom_component.lpm_widthad=4,
lpm_rom_component.1pm_address_control
="REGISTERED",
lpm_rom_component.ipm_outdata
="UNREGISTERED",
lpm_rom_component.1pm_file="romtable.mif";
这样,可以得到由这些基本单元构成与矩阵公式(4)相对的1D-DCT的FPGA设计,如图4所示。其中4RC单元表示图3的结构。
如前所述,2D-DCT需要两个1D-DCT共同完成,但是两个1D-DCT运算的中间变量并不是直接传递的,而需要一个矩阵转置模块进行耦合。
1.2转置RAM
2D-DCT单元由两个相同的1D-DCT和转置RAM等组成,如图5所示。根据公式(2),可以知道1D-DCT先对8x8单元的行进行累加操作,把得到的结果暂存到RAM中,直到8行都运算完成。RAM中的临时8x8矩阵要先转置,把列数据变成行数据,经并串转换后输入到第2个1D-DCT进行行累加。
转置RAM是一个8x8的RAM阵列。当数据完成1D-DCT变换后,即由xij到zjl变换,按行顺序输入到转置RAM,在读出时按列顺序读出,这样完成zil到zli的变换;然后将z9并串转换,输入到第二个1D-DCT,由zli运算得到ylk。这样就完成了公式(1)的2D-DCT整个变换,如图6所示。
1.32D-IDCT
2D-IDCT变换如公式(5)所示。
可见公式(5)与公式(1)相同,所以2D-IDCT可以用与2D-DCT的同样方法实现。
1.4量化,编码
量化算法包括一张量化表,它因人眼对各
种空间频率的灵敏度的不同而确定。在表中,较低空间频率的精度要高于较高频率的精度,这是由于人眼的低频分量比较敏感,而对高频分量不太敏感。
编码可以采用游程编码或熵编码。单元模块均可通过FPGA的片上RAM(满足双口RAM的特性)设计完成。
图6
2结论
整个视频压缩IPcore设计(第2页)可以在FPGA上实现,在27MHz的系统时钟下工作。根据具体芯片的不同,可以在更高的速率工作。压缩速率可以达到108Mbps。
实际应用中,数据字长对压缩效果和比率有较大影响,一般情况下系数Cm取12位,可以满足大部分的视频压缩要求。
整个视频压缩IPcore可以直接下载到FPGA上(例如EDIF格式),独立实现视频压缩功能,也可以通过软件设计与其他的IPcore协同工作。例如,在网络摄像机的应用上,可以把视频压缩IPcore、数字摄像头控制器、网络接口一起编译成新的核。这个核具有视频采
集、压缩、传输等一系列功能。把核的EDIF文件通过生产厂商的下载软件下载到FPGA上,就可以在一块芯片上实现所有网络摄像机的功能。实现了SoPC(SystemOnaProgrammableChip)的目标。
《视频压缩IPcore设计(第2页)》