基于FPGA的MPEG2视频硬件解码器的实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

硕士学位论文答辩基于FPGA的MPEG2视频硬件解码器的实现姓名:学号:专业:集成电路设计指导老师:2内容提纲课题背景与意义MPEG2视频编解码原理解码器架构与模块分析仿真与效果总结展望3背景及意义MPEG2压缩编码技术是多媒体计算机、多媒体通信、常规电视数字化、高清晰度电视(HDTV)以及交互式电视系统等的关键技术。美国的ATSC、欧洲的DVB、日本的ISDB数字电视广播系统都把MPEG2作为信源编码标准。而我国央视也将MPEG2作为数字高清的编解码标准。国内目前主要的视频解码方式仍然是软件,在硬件解码上进行研究与开发是很必要的。4MPEG2视频编解码原理压缩原始视频编码解码恢复视频编解码过程即是压缩与解压缩的过程视频文件5MPEG2视频编解码原理颜色空间转换:RGBYCbCr压缩方法:像素RGBYCbCrYCbCr差值编码(运动补偿)方式1:图1、图2、图3图1’、图2’、图3’方式2:图1、(图2-图1)、[图3-(图2-图1)]图1’、图2’、图3’表示为6时频域转换(离散余弦变换DCT)+量化MPEG2视频编解码原理xyuv很多0非0均匀分布DCT量化uv0非0变长编码:用较短的二进制串表示经常出现的图像数据模式,用较长的二进制串表示不经常出现的数据模式。量化:用一个数代表一个范围的数:0~10011~251526~10030…7差分运动补偿编码变长编码编码链解码链原始视频视频文件DCT量化差分运动补偿解码变长解码VLC恢复视频视频文件IDCT反量化8MPEG2视频硬件解码器构架数据提取(Head&VLC)反量化IQ反离散余弦变换IDCT运动补偿MotionCompensation图像数据存取FS_IF缓冲DDR显示DMAOPB桥VideoStreamClock&Reset…OPB协议RGB解码链预测基准值差值9解码链模块分析与设计[一]数据提取(Head&VLC)模块图像序列层序列起始码、图像大小、量化矩阵…GOP0GOP1……图1图组起始码、图像编码类型…图组层图2……Head码流层次VLC表020000010000001000000014002000000001000000000110解码链模块分析与设计[一]数据提取(Head&VLC)模块32bitsBuffer32bitsBuffer控制状态机移位控制Intput_MSBShift_intrDo_Shift码流数据缓冲读32bits32bits数据头存储(控制)数据头存储(数据)变长解码VLCOUTPUTControl_shiftVLC_Shift11解码链模块分析与设计[二]反量化(InverseQuantization)模块反量化即将量化后的数据逆运算回原来的数据,并且控制溢出和误差非内部块内部块[0][0]__*[0][0]FintradcmultQF[][]((2[][])**_)/32FvuQFvukWqscale2047[][]2047[][][][]-2048[][]2047-2048[][]2048FvuFuvFvuFvuFvu(饱和化)7700[][][][][][](u!=7)&&(v!=7)[][][7][7]=[][]1Even&&[][][][]1Odd&&[][]EvenuvsumFuvFuvFuvFuvsumisOddFFuvsumisFuvisOddFuvsumisFuvis(误配控制)12解码链模块分析与设计[二]反量化(InverseQuantization)模块缺省权值矩阵ROM用户权值矩阵RAMMUXLoad_Q_MDSP#4DSP#4q_scale译码q_scale_codeq_scale_type(IN1)+K内部DC系数log(intra_dc_mult)intra_dc_precision饱和化解谐(误配)非内部DC系数Delay2T5级规范流水13解码链模块分析与设计[三]二维反离散余弦变换(IDCT)模块频域到时域18X8二维IDCT表示为公式:77001(21)(21)(,)()()(,)coscos41616uvxuyvfxyCuCvFuv1(0123)Yyyyy2(7654)Yyyyy1(0246)Xxxxx2(1357)Xxxxx1122YXIDCTYX令一维IDCT:2设:可以将二维IDCT看作一维IDCT的串、并行运算则根据Chen算法,可以得到:112YPXQX212YPXQX其中:acafafacPafacacafbdegdgbeQebgbgedb13537()(coscoscoscoscoscoscos)241681616816abcdefg14112YPXQX解码链模块分析与设计[三]二维反离散余弦变换(IDCT)模块频域到时域3根据Chen算法,需要设计的功能单元为212YPXQX即:0--21--4--6acafxafacxPXafacxacafx'hA424'h9292'h817E'h25A4'hA05E'h3668'hC880'h0000OutputDFF1D0D2D4D6CLKWidthEcxtend15bits微结构15解码链模块分析与设计[三]二维反离散余弦变换(IDCT)一维运算单元微结构频域到时域ShiftControl8_data_doneRight_ShiftData0Data1Data2Data3Data4Data5Data6Data7F[11:0]DataInInput_DataStoreLUT0LUT6LUT4LUT2LUT1LUT7LUT5LUT3Shif&AddUnitX4Shif&AddUnitX4cCLKCombinef[7:0]DataOutcCompute_Done共消耗90T8T13T8T13T8T13T8T13T8T13T8T13T8T13T13T13T13T13T13T13T13T13T8T13TPhase18X8+13=77TPhase213T16解码链模块分析与设计[四]运动补偿运动补偿实质上是根据两幅图之间由运动向量所指的差值关系,根据参照图将目标图恢复。A116X16B17X17A16X16前一帧(X,Y)(X,Y)ab(X+a,Y+b)P帧I帧或P帧1234(加上解码出来的差值)(线性插值处理:17X1716X16)参考图被预测图17解码链模块分析与设计[四]运动补偿运动补偿中插值举例:17X1716X16宏块B宏块At0t1t2t3f0f1f2f3(f0+f1+f2+f3)/4=m[14][13]m[0][0]=(t0+t1+t2+t3)/4m[0][0]18解码链模块分析与设计[四]运动补偿运动向量相关参数存放控制类参数存放X_vecDecodeY_vecDecodeVec_paraDonePMV存储提供预测器提供预测器运动补偿数据读写控制RAM半精度插值IDCTFS_IF差分图像数据读入数据写回H&V19仿真与效果被测试模块DUT标准参照激励源标准数据与被测模块输出比较ClockReset标准输出数据被测输出数据VectorDone仿真模型仿真波形20仿真与效果21总结展望详细研究了MPEG2视频部分的协议基于XilinxFPGA设计了MPEG2视频硬件解码器ModelSim、ISE、EDK、Synplify、Matlab等整个设计中,在IDCT逻辑运算上使用更细分的流水线会使性能进一步提高可以进一步考虑解码链输入输出数据的DMA处理VLC表更为优化的构造22谢谢各位老师Q&A

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功