在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2598|回复: 3

[原创] AD公司BF DSP 算法包 与大家共享

[复制链接]
发表于 2006-10-31 14:57:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 cjsb37 于 2013-4-29 09:16 编辑

File Name:      dct_122700.zip
File Contents:  read_me.txt
                mds_def.h
                r8x8dct.asm
                tr8x8dct.c
                tr8x8dct.h
Module Name:    The implementation of forward DCT for 8x8 real data.
Label Name:     __r8x8dct
Description:    This is the implementation of Chen's algorithm of DCT.
                It is based on the separable nature of DCT for multi-
                dimension. The input matrix is 8x8 real data. First, one dime-
                sional 8-point DCT is calculated for each of the 8 rows. The
                output is stored in a separate matrix after transpose. Then again
                8-point DCT is calculated on each row of matrix. The output
                is again stored in a transpose matrix. This is final output.
                Chen's algorithm has 4 stages of implementation. In the first
                stage there are additions and subtractions only. In the second
                stage addition and subtraction is done with one multiplication.
                In the third and last (fourth) stages  more MAC operations are
                involved.
                This implementation works only for 8x8 input. The input data
                should be real. The range of input should be -256 to 255.
     
                The algorithm is in-placed.
                The prototype of the C callable is as follows:
                _r8x8dct(fract16 *in, fract16 *coeff, fract16 *temp);
                *in -> Pointer to Input vector.
                *coeff -> Pointer to coefficients.
                *temp -> Pointer to temproary data.
          Note: The algorithm reads the input data from the "in" matrix.  
                First 8-point DCT will be calculated for all the 8 rows.
                This output is stored in "temp" buffer in the transposed
                form at bit reversed locations.
                Again the 8-point DCT is applied on all the 8 rows of
                "temp" buffer. Final output computed is stored in "in"
                buffer in transposed form at bit reversed locations.
                The operation of transposing the matrix and calculation of
                bit reversed are carried out while writing the data without
                any explicit code.
      
                Output of function is provided "in" buffer in normal order.

Registers Used:      R0, R1, R2, R3, R4, R5, R6, R7, P0, P1, P2, P3, P4, P5, A0, A1.
Other Register Used: I0, I1, I2, I3, B0, B2, B3, M0, M1, L3 registers and LC0.
Performance: (Timer version 0.6.33)
                Code Size : 240 Bytes.
                Memory Required :
                  Input Matrix       : 8 * 8 * 2 Bytes.
                  Coefficients       : 16 Bytes
                  Temporary matrix   : 8 * 8 * 2 Bytes.
                Cycle Count :
                -----------------------------------------
                |  Size  |  Forward DCT  |  Inverse DCT |
                -----------------------------------------
                |  8x8   |   284 Cycles  |  311 Cycles  |
                -----------------------------------------







dct_122700.zip

7.58 KB, 下载次数: 13 , 下载积分: 资产 -2 信元, 下载支出 2 信元

发表于 2007-6-6 01:43:44 | 显示全部楼层
真是 太感谢了 要不然,我不知 要花躲大的功夫,写这个程序呢。
发表于 2007-8-25 20:22:49 | 显示全部楼层
我正需要呢,真是太感谢了!
发表于 2008-1-16 09:42:00 | 显示全部楼层
先了..........
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 10:22 , Processed in 0.022430 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表