当前位置:首页 > 电源 > 数字电源
[导读]  第一节 系统设计  本项目基于FPGA平台完成CIF分辨率图像的实时采集、AVS全I帧压缩编码,和网络传输。本项目主要由视频采集系统,数据调度系统,I帧编码系统和以太网传

  第一节 系统设计

  本项目基于FPGA平台完成CIF分辨率图像的实时采集、AVS全I帧压缩编码,和网络传输。本项目主要由视频采集系统,数据调度系统,I帧编码系统和以太网传输系统构成,其实现框图如图1-1所示。

  视频采集系统主要完成将复合视频解码成YUV(4:2:0)数字视频,为AVS 全I帧编码准备好视频数据。

  数据调度系统主要完成向I帧编码系统提供原始数据,同时将编码后的码流传输到以太网传输系统。视频数据吞吐量大,带宽高,涉及到低速存储器(如DDR)和高速存储器(如FPGA内部RAM)之间大量的数据交换,成功的数据调度策略是实时实现编码的关键技术之一。本系统包含实验室设计的DDR控制器IP核和数据调度IP核。

 

  I帧编码系统主要完成AVS视频I帧实时编码,整个系统包括帧内预测模块,变换量化熵编码模块和控制模块。整个系统使用硬件描述语言独立设计完成。

  以太网传输系统主要完成对AVS码流的打包,传输到PC机。本系统包含实验室设计的以太网控制器IP核和网络传输协议IP核。

  PC机上的AVS播放器采用DirectShow架构,基于本实验室完成的AVS解码器设计了AVS实时播放器,用来验证AVS编码系统的实时编码能力。

  第二节 数据采集与数据交换

  前端视频采集模块采用TVP5150PBS视频解码器将输入的PAL视频信号进行转换成数字YUV(4:2:2)信号,输出格式为ITU-R BT.656。

  系统上电后,FPGA通过IIC总线对TVP5150解码器进行初始化配置,接通复合视频信号后,TVP5150即可正确输出8位数字YUV视频信号至FPGA。由于接收的视频信号为ITU565格式,视频信息仅由8位视频信号组成,没有独立的行、场同步信息,所以,FPGA需要从接收的8位视频信号中提取行场同步信号,并将相邻8位数据(亮度、色差信号)转换成16位视频信号。

  转换后的16位视频信号经DDR SDRAM控制器写入到外部DDR SDRAM存储器中,系统采用的DDR SDRAM存储器容量为16M*16bit,利用迸发模式,将接收的一行视频信号存储到DDR SDRM的一行,则一帧视频信号可存储器在DDR 的一个Bank空间。

  视频编码时,按照宏块顺序从DDR 中读取数据,即第一个宏块数据为DDR SDRAM中的第1行至第16行、列地址0至15的前16个地址数据,第二个宏块为DDR SDRAM第1行至第16行、列地址16至23的数据内容,其余宏块读取地址依次类推。

  第三节 模块设计

  3.1 帧内预测模块

  帧内预测模块从功能上可以分为参考样本获取模块和像素值预测模块两部分。

  3.1.1 参考样本获取模块

  1. 功能描述:

  参考样本获取模块主要是将重构数据按子块进行保存,暂存到双端口RAM中,并从重构子块中提取相应的边界数据,即当前子块的右列、下行和右下像素值,并将其存储在寄存器中,作为下一子块的参考数据;保存的当前块边界进行重组得到参考样本,该参考样本作为像素值预测模块的边界参考数据。

  由图1-1可知,子块0需要保存右列像素用于子块1预测时的左边参考样本,下行像素保存用于子块2的上边参考样本,右下像素点保存用于子块3的左上参考样本点;子块1的下行保存作为子块3的上边参考样本,右下像素点保存作为相邻的下一个宏块的子块2的左上参考像素点,右列保存和子块3的右列一起作为下一相邻宏块的左边参考样本;子块2的右列保存作为子块3的左边参考样本;子块2和3的下行保存一起作为下一宏块行的相邻宏块上边参考样本。一个宏块的子块1和3的右列在宏块级更新,子块2和3的下行在宏块行级更新。

  2. 实现该功能的状态转移图如下:

 

   stidle为空闲状态,streceive 为数据接收状态,stm 为中间的判断状态,根据count值,分别执行不同的指令。st0 st1 st2 st3产生用于各个子宏块预测的边界参考数据, strans 状态时输出边界参考数据,stwait 状态等待下一个子宏块的重构数据。

  仿真结果如图所示:

 

    datain为输入的16x16宏块参考数据,dataout为用于子宏块0预测的参考数据。

  该部分综合后的使用资源如下图所示:

 

  3.1.2像素值预测模块

  1. 功能描述:

  帧内预测模式有亮度和色度之分,亮度有5种预测模式,分别是V(垂直)、H(水平)、DC、DDL(左下)和DDR(右下);色度有4种预测模式V(垂直)、H(水平)、DC和P(Plane)。像素值预测模块主要完成的是在参考样本获取模块之后得到当前块的左边、左上和上边参考样本数据和当前块数据,数据流遍历各种模式,多种模式并行挂起,得到各种模式的预测值并存储到对应的双端口RAM中,同时将预测值与当前块像素值进行SAD和值计算,通过冒泡排序法得到最小SAD值对应的模式值作为最佳预测模式,选择输出最佳模式对应的最佳预测值。最佳模式值输出供熵编码使用,最佳预测值与当前块数据做残差供DCT变换使用。[!--empirenews.page--]

  2. 实现该功能的状态转移图如下:

  Idle为空闲状态,streceive状态完成数据接收(当前8x8块64个数据,33个边界参考数据),当接受完数据后状态机进入stcalculate状态,将相邻的三个数进行低通滤波((a+2b+c+2)>>2),而后进入stm4状态,保存各个模式下的预测数据,预测完成后进入stcompare状态,比较各种模式下的代价值,并且选出最佳预测模式。sttrans为输出最佳模式和预测数据的过程。

  仿真结果如图所示:

 

  datain为输入的宏块数据,datain_edge为宏块边界数据,dataout为输出的预测数据。

  综合后资源占用如下图所示:

 

  3.2 RDQIIR模块

  功能描述

  本设计中将残差—DCT变换—量化—反量化—逆DCT变换—重构(简称为RDQIIR模块)作为一个整体实现。残差数据经DCT变换、量化后,数据送到熵编码模块;同时将量化后的数据再进行反量化和反DCT,得到8x8子宏块的重构数据,重构的数据反馈给帧内预测模块,进行下一个8x8子宏块的预测。

  2.整个模块由一个状态机实现,状态转移图如下所示:

 

 stidle为复位时的空闲状态,等待使能信号有效。streceive是数据接收状态,当使能信号有效时接收8*8块的残差数据。stread、stline和stdefer状态时,读取8*8块的一行数据,进行DCT水平变换,并将变换后的数据存入ram中。stread1、stvertical和stdefer1状态读取8*8块的一列数据,进行DCT垂直变换,并将变换后数据存入ram。stread2、stquant和stdefer2状态开始对数据量化,量化后的数据通过dataout信号输出。stread3、stvertical1和stdefer3状态对数据进行反DCT垂直变换的状态。sttransmit状态下输出量化后的数据。

  仿真结果如下图所示:

  图3-9中是xAVS算法中某一8×8子块的重构数据,图3-10是在ModelSim SE 6.2b环境下RDQIIR模块的仿真结果,重构数据从端口dina_sun_top_o输出。二者结果完全一致,说明RDQIIR模块符合算法要求。

  综合后资源占用如下图所示:

  3.3 熵编码模块

  1. 功能描述

  熵编码主要分为zig-zag扫描、游程编码、码字计算、码表切换、指数哥伦布编码和码流输出共6个子模块。整个熵编码部分需要3块RAM,2块ROM存储器。RAM1接收量化系数矩阵,经zig-zag扫描后的(run,level)对存储在RAM2中,RAM3暂存指数哥伦布编码后数据;ROM1用于存放优化后的码表,ROM2用于存放逃逸事件中用到的RefAbsLevel_T。

  stidle表示状态机处于空闲状态。streceive状态按照zig_zag扫描顺序接收8×8块亮度系数。strle完成游程编码得到( run , level )对。sttable状态利用run和level联合查表得到码字,并完成指数哥伦布编码。ststream对码字进行整理并输出。

 

 对一个8×8子宏块熵编码进行验证,图3-14内存1中自地址0x00E90068起存放的是由参考软件xAVS编码得到的码流,图3-15 ModelSim SE 6.2b仿真得到的码流由端口dataout输出。经过比较,二者输出结果一致,说明本设计功能符合标准算法要求。

   通过输入不同的量化系数矩阵观察仿真波形,输出的码流信息与AVS参考软件输出的结果一致。经仿真验证,本设计正确且资源利用效率高。时钟最高频率达到130MHz,可用于高分辨率实时AVS编码器中。

  第四节 综合验证

  本设计使用VHDL 硬件描述语言进行实现,Xilinx ISE 进行综合,Modelsim仿真,器件选用Xilinx 公司的xc2vp30-6ff896,最高工作频率110MHZ 情况下,使用的资源如下图所示。

 

  利用编解码软件截取一个宏块的数据作为参考数据输入,使用ISE综合,Modelsim进行仿真, 对一个宏块的验证如下图所示:

 

  datain_mb为输入的一个宏块数据, datain_u5_top_o的输出是一个宏块编码后的码流。从图中数据可以看出,输出结果一致,说明本设计符合编码器标准要求。

  CIF分辨率,4:2:0图像格式,若达到25帧/s实时图像播放的要求,100MHz的频率下,处理一个宏块所需要的周期限定在N= =10101内,本设计在100MHz的频率下,用Modelsim仿真一个宏块的周期大约为7000,完全满足实时要求。

 

  第五节 展望

  本设计实现了AVS全I帧的编码器,CIF分辨率,4:2:0图像格式下能达到实时处理的要求。进一步的工作可以对程序优化,提高处理速度,同时还可以加入P帧和B帧的编码,从而进一步提高编码效率。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭