查看完整版本: 数字图像倍焦系统设计与实现综合实例之:系统工作原理分析

admin 发表于 2014-10-12 16:31:17

数字图像倍焦系统设计与实现综合实例之:系统工作原理分析

        12.2系统工作原理分析

        如前所述,本系统主要完成对输入视频图像的两倍放大。图像的放大主要是通过插值算法来实现的,下面详细分析如何应用双线性插值算法来实现倍焦功能。
       
        1.符号约定

        首先对系统工作原理分析中用到的符号做一个约定:
        表示像素点坐标,在本系统中。
        表示原始图像,其宽度为,高度为。
        表示倍焦后图像,其宽度为,高度为。
       
        通过双线性插值完成数字倍焦功能,即将原始图像插值为原来2倍大小,仍然以原来的分辨率输出,即http://upload.semidata.info/new.eefocus.com/article/image/2013/08/24/521832d0062db-thumb.png?xhttp://upload.semidata.info/new.eefocus.com/article/image/2013/08/24/521832d00d7e7-thumb.png。
       
        2.双线性插值原理描述

        对新图像中每一点为http://upload.semidata.info/new.eefocus.com/article/image/2013/08/24/521832d034c25-thumb.png,在本系统中,查找其在原图像中的相邻位置。
       
        http://upload.semidata.info/new.eefocus.com/article/image/2013/08/24/521832d04dc46-thumb.png点的灰度值的计算公式为(12-1)。
                 (12.1)
       
        公式(12-1)中需要计算的数值为,如公式(12-2)~(12-5)所示。
                                              (12.2)
                                           (12.3)
        (12.4)
        (12.5)
       
        3.硬件实现的简化

        为减少硬件计算的复杂性,对的算法做如下处理。
       
        (1)硬件乘法器是必须的,用以完成和的计算,但由于:
           
       
        所以可以考虑只用8bit?8bit硬件乘法器(而不是16bit?8bit硬件乘法器),即如公式(12-6)所示。
           公式(12-6)
       
        (2)求权重的公式已经写成关于、的函数的形式,该函数可以通过离线计算并存储一张表格(“权重表”)的方法实现。该表的大小为256?8bit。注意求http://upload.semidata.info/new.eefocus.com/article/image/2013/08/24/521832d1d2c8f-thumb.png查询的是同样的表格。
       
        4.算法优化

        (1)乘法器设计的简化。
        在的计算过程中,需要一个常数乘法器(?181),通过查表完成。而http://upload.semidata.info/new.eefocus.com/article/image/2013/08/24/521832d2065be-thumb.png也需要查表,查表也需要一个周期来完成。如果用同一个表,那么http://upload.semidata.info/new.eefocus.com/article/image/2013/08/24/521834cbaf58a-thumb.png需要串行查出,速度太慢。如果要同时查出来,需要多个表,片内存储器太大。
       
        因此,在计算过程中需要使用移位和加法进行配合,来提高运算速度。
       
        基于这个考虑,将放到2倍的条件放宽到2.25倍,即用1.5?1.5来替代1.414?1.414。这样,公式(12-2)~(12-5)就简化为公式(12-7)~(12-10)的形式。
               公式(12-7)
              公式(12-8)
               公式(12-9)
              公式(12-10)
        这样,http://upload.semidata.info/new.eefocus.com/article/image/2013/08/24/521832d2b7c7d-thumb.png不必查表产生,而是1/3和2/3交替。关于除3的操作,可以通过一个256?8bit的查找表来完成。
       
        需要说明的是,经过上面的调整,放大的倍数为2.25倍,而不是2倍。
       
        (2)行列的处理顺序的优化。
        原算法中水平和垂直方向同时插值,需要4个像素类计算。但是,实际硬件实现过程中如果读取4个数据来计算一个像素点,那么输出很难保证连续,而且速度太慢。因此,实现过程中,对整场图像先做行插值,再做列插值。即将二维线性插值转为两个一维线性插值,如公式(12-11)所示。
              公式(12-11)
       
        其中依次取1/3和2/3。这样每次插值操作只与两个像素值有关,一个是前一个像素(寄存器中),另一个是当前读出的像素。
       
        当接收原始帧时,在裁剪后写入SRAM过程中完成行插值;从SRAM读出过程完成列插值,并输出。
       
        考虑到视频信号是按行扫描的,而且是隔行扫描,因此处理过程以场为单位。
       
        (3)硬件实现简化前后的结果对比。
        从图12.1和12.2的对比图中可以看出,放大2.25倍的图像视野上要比放大2倍的图像小一些,但是图像质量并没有明显降低。
           
        图12.1放大2倍后的图像             图12.2放大2.25倍后的图像
页: [1]
查看完整版本: 数字图像倍焦系统设计与实现综合实例之:系统工作原理分析