离散余弦变换 实现了一维DCT、二维DCT及其反变换

void initDCTParam(int deg)

{

// deg 为DCT变换数据长度的幂

if(bHasInit)

{

return; //不用再计算查找表

}

int total, halftotal, i, group, endstart, factor;

total = 1 << deg;

if(C != NULL) delete []C;

C = (double *)new double[total];

halftotal = total >> 1;

for(i=0; i < halftotal; i++)

C[total-i-1]=(double)(2*i+1);

for(group=0; group < deg-1; group++)

{

endstart=1 << (deg-1-group);

int len = endstart >> 1;

factor=1 << (group+1);

for(int j = 0;j < len; j++)

C[endstart-j-1] = factor*C[total-j-1];

}

for(i=1; i < total; i++)

C[i] = 2.0*cos(C[i]*PI/(total << 1)); ///C[0]空着,没使用

bHasInit=true;

}

DCT变换过程可分为两部分:前向追底和后向回根

前向追底:

void dct_forward(double *f,int deg)

{

// f中存储DCT数据

int i_deg, i_halfwing, total, wing, wings, winglen, halfwing;

double temp1,temp2;

total = 1 << deg;

for(i_deg = 0; i_deg < deg; i_deg++)

{

wings = 1 << i_deg;

winglen = total >> i_deg;

halfwing = winglen >> 1;

for(wing = 0; wing < wings; wing++)

{

for(i_halfwing = 0; i_halfwing < halfwing; i_halfwing++)

{

temp1 = f[wing*winglen+i_halfwing];

temp2 = f[(wing+1)*winglen-1-i_halfwing];

if(wing%2)

swap(temp1,temp2); // 交换temp1与temp2的值

f[wing*winglen+i_halfwing] = temp1+temp2;

f[(wing+1)*winglen-1-i_halfwing] =

(temp1-temp2)*C[winglen-1-i_halfwing];

}

}

}

}

后向回根: void dct_backward(double *f,int deg)

{

// f中存储DCT数据

int total,i_deg,wing,wings,halfwing,winglen,i_halfwing,temp1,temp2;

total = 1 << deg;

for(i_deg = deg-1; i_deg >= 0; i_deg--)

{

wings = 1 << i_deg;

winglen = 1 << (deg-i_deg);

halfwing = winglen >> 1;

for(wing = 0; wing < wings; wing++)

{

for(i_halfwing = 0; i_halfwing < halfwing; i_halfwing++)

{

//f[i_halfwing+wing*winglen] = f[i_halfwing+wing*winglen];

if(i_halfwing == 0)

{

f[halfwing+wing*winglen+i_halfwing] =

0.5*f[halfwing+wing*winglen+i_halfwing];

}

else

{

dct余弦离散c语言,离散余弦变换C语言实现(DCT)相关推荐

  1. 图形基本变换c语言代码,图形变换-C语言课程设计.doc

    学号 <> 课程设计报告 图形变换网络工程班级:16(3)姓名:指导教师:成绩: 计算机学院 2017 年 5月 10日 目录- 1 - 1 设计要求- 2 - 2 程序功能- 2 - 3 ...

  2. R语言进行Box-Cox变换

    @R语言进行Box-Cox变换 R语言进行Box-Cox变换 Box-Cox变换是Box和Cox在1964年提出的一种广义幂变换方法,是统计建模中常用的一种数据变换,用于连续的响应变量不满足正态分布的 ...

  3. 二维离散余弦变换(DCT)与二维离散反余弦变换(IDCT)C语言实现

    二维离散余弦变换(DCT)与二维离散反余弦变换(IDCT)C语言实现 实验目标 对一个8x8的矩阵进行DCT和IDCT然后在观察前者和后者的变化 实验准备 理论基础 二维离散余弦变换 F ( u , ...

  4. 升余弦滤波器与根升余弦滤波器

    1 升余弦滚降滤波器有啥用? 1, 升余弦滚降滤波器本质上只是一个低通滤波器,只不过它的滚降因子(rolloff effect)会对波形的幅度产生一定影响,一般是降低了波形的幅度并且低通,2. 升余弦 ...

  5. 变换域信息隐藏--DCT

    思想提出背景–空间域隐藏 空间域隐藏是基于位图分解的思想产生的,其主要方法是将秘密信息存储到载体不那么重要的部分中,这样即使改变了载体的部分信息后,载体从肉眼来看也不会有太大区别.这种隐藏方法的优点是 ...

  6. 二维dct变换例题_matlab进行二维DCT变换和二维DCT反变换

    题目: matlab进行二维DCT变换和二维DCT反变换 在Matlab中,函数dct2 和函数idct2分别用于进行二维DCT变换和二维DCT反变换.下面以处理本次训练图像为例说明该余弦正反变换在M ...

  7. PFC离散元+3DEC离散元技术与应用学习

    "离散元数值模拟仿真技术与应用"系列专题 专题一:PFC离散元仿真核心技术与应用 ①.理论基础及PFC入门②.FISH.PYTHON语言及COMMAND命令 ③.离散元模拟方法 ④ ...

  8. PFC离散元+3DEC离散元专题

    "离散元数值模拟仿真技术与应用"系列专题 专题一:PFC离散元仿真核心技术与应用 ①.理论基础及PFC入门 ②.FISH.PYTHON语言及COMMAND命令 ③.离散元模拟方法  ...

  9. 基础004:R语言数据处理和变换——dplyr

    dplyr 背景简介 安装和数据准备 常用函数 变量筛选select 数据筛选filter 排序arrange 创建新变量mutate 本文"植物微生物组"公众号原创,ID: pl ...

  10. 数据预处理(part1)--单个预测变量数据变换R语言

    学习笔记,仅供参考,有错必纠 文章目录 单个预测变量数据变换 中心化与标准化 知识补充 R语言实现 数据变换解决偏度问题 R语言实现 单个预测变量数据变换 中心化与标准化 中心化是将所有变量减去其均值 ...

最新文章

  1. php 尾递归,关于尾递归的使用详解
  2. 如何限制用户的内存使用量
  3. Hive 常见问题与技巧【Updating】
  4. [react] 受控组件和非受控组件有什么区别?
  5. 0010服务器无对应信息,服务器版本对应的内存
  6. LeetCode 374. Guess Number Higher or Lower
  7. 字符串拼接与打印相关2
  8. css3 animation动画事件
  9. ExtJs十(ExtJs Mvc用户管理之二)
  10. idea设置主题路径
  11. mysql.sock.lock的作用_mysql.sock的作用
  12. 关于go module
  13. VO的实际应用;后端接收前端传入的值;实体类转化VO;PO,VO,DTO,BO,DAO,POJO区别
  14. 淘宝开店首页装修教程分享
  15. trash-1000
  16. linux认证在哪考试,2017年Linux认证考试练习题
  17. HUAWEI华为荣耀MagicBook V14 I5 集显 16GB+512GB (HGE-W56)原装出厂WIN11系统恢复原厂oem系统
  18. IIS SSL客户端证书(忽略/接受/必须)之三——思考验证(3)
  19. matlab 莫比乌斯曲面,『Rhino实例.2』莫比乌斯曲面
  20. 【服务器数据恢复】服务器5盘RAID5重建为4盘RAID5后的数据恢复案例

热门文章

  1. Java Web学习(22): 阶段小项目实现商品浏览记录
  2. 北京朝阳区电子眼查询
  3. PostgreSQL 计算逾期率
  4. 产生RUNT和Giants的原因
  5. 数据处理项目Postmortem
  6. springAOP失效场景
  7. 牛客---疯狂过山车
  8. ashx返回图片_显示ashx图片
  9. 蒙特卡洛树搜索的主要流程有哪些_蒙特卡洛树搜索简介
  10. 中国剩余定理(孙子定理) 原理及模板代码