新闻中心

EEPW首页>嵌入式系统>设计应用> 基于FPGA NiosII的MPEG-4视频播放器设计

基于FPGA NiosII的MPEG-4视频播放器设计

作者: 时间:2012-05-17 来源:网络 收藏

AC系数的反量化要用到两个加权矩阵,分别用于内部子块和非内部子块。用户也可以使用自定义的量化矩阵。如果用QDCT表示输入已量化的AC系数,用DCT表示反量化后的AC系数,那么AC系数的IQ变换公式如下:

式中,quantiser_scale为0~112之间的两组数值,分别对应不同的比特流控制状态。但是在本系统采用的XviDCodec版本中,比特流控制功能并没有得到实现,所以这里quantiser_scale的取值固定。

反量化得到的结果通过饱和化,使其限制在[-2048,+2047]之间。

IQ在FPGA上按照图3的框图进行硬件实现。



2.1.2 反离散余弦变换

IDCT是DCT的逆过程,用于还原DCT系数矩阵。

IDCT过程可由下面的公式描述:

将8元的输入向量[X0,X1,X2,X3,X4,X5,X6,X7]分成奇元素[X1,X3,X5,X7]和偶元素[Xo,X2,X4,X6],8×8矩阵则用2个4×4矩阵来代替,奇元素和偶元素分别与这2个矩阵v和u相乘,生成2个4×4向量p和q,通过加减向量p和q,可得到输出向量x。

算法可以表示成下面的公式:

基于8×8矩阵的IDCT算法,在FPGA上按照图4所示的结构加以硬件实现。

2.1.3 运动补偿

运动补偿是一种大量、单调的运算。为了能实现运动补偿,采用了多级、多个运算单元并行流水运算的方式,如图5所示。



评论


技术专区

关闭