新闻中心

EEPW首页 > 消费电子 > 设计应用 > 嵌入式视频图像系统压缩算法的实现和优化

嵌入式视频图像系统压缩算法的实现和优化

作者:张春光 吉林市人民广播电台 刘化彤 长春光学科技发展有限责任公司时间:2009-03-17来源:收藏

  为避免发生的Cache大量缺失,采取 3种方法[6] 。

本文引用地址:http://www.eepw.com.cn/article/92476.htm

  1.整个编码算法应该分成 3个模块: 宏块编码、运动估计、运动重建 , 这样使每个模块代码都适合 L1P。每次循环以宏块组为单位 , 宏块组的大小由 L1D大小决定。在宏块编码模块中, 当宏块组被传送到片内,他们一起经过 DCT Direct Cosine Transform 、量化、熵编码 , 直到宏块组编码模块结束为止,L1D才刷新这组宏块。同时对应的程序包括 DCT、量化、熵编码也被保存到 L1P。

  2.尽量减少数据类型的大小。可以用 8位数据就不用 16位数据 , 这样不但节省空间 ,而且能提高L1D的使用效率。因为 L1D行的大小是固定的, 在一行内如果采用 8位数据 比 16位数据可多放一倍 , 从而减少程序中 Cache缺失情况的发生。

  3.采用乒乓缓存结构, 提高 Cache命中率 , 减少 CPU等待时间。

  在视频编码模块中,当前帧和参考帧数据放在片外存储器,在编码过程中需要依次对图像帧中的每个宏块进行操作。但宏块直接从片外内存读取,这就会发生CPU等待。可以设置两对片上缓存,一对存放当前帧宏块,一对存放参考帧宏块,它们以乒乓方式工作。乒乓缓冲工作模式如图1所示。编码前E DMA将片外的当前帧中编码宏块数据和在搜索范围内的参考帧宏块数据搬移到片上内存。在用EDMA搬移数据到其中一块片内缓存的同时,,处理器可以对另一块缓存中的数据进行处理。经过这样的修改,CPU一直从片上读取存储器数据大大减少了CPU阻塞情况的发生,提高了编码速度。

 

  图2 乒乓缓冲存储器结构

  SAD和像素插值的

  SAD(Sum ofAbsolute Difference)是运动估计模块[7]关键模块 , 而 DM642提供了一套丰富的视频和图像专用指令可以高效实现运动估计算法。

  LDNDW (Load Non2alignedDoubleWord)指令,可以一次读取 64位无边界数据。这个指令可以从当前帧中和参考帧一次读取8个 8位像素数据。因此可以提高当前帧和参考帧宏块数据的搬移速度。

  SUBABS4(Subtractwith Absolute)指令,计算在两组 8位数据包之间的 4个绝对值之差。



评论


相关推荐

技术专区

关闭