c语言 dct变换,C语言实现DCT变换编码
内容
1.离散余弦变换编码
2.mpeg 4中的逆离散余弦变换
3.离散余弦变换研究
4.快速离散余弦变换
离散余弦变换编码
#包括
#包括
#包括
#包括
#定义PI 3。
#定义CLK_TCK时钟_每秒
整数;
无效离散余弦变换(双*f,双*F)
{
int n,m,x;
双*双脉冲=新双[N * N];//中间矩阵
双*科菲=新双[N * N];//变换系数
[系数0]=1/sqrt(N);
对于(m=1;m
2)电气和电子工程师协会规范第3.3小节中的文字替换为:
3)设F为[y][x] (i=0)的4096个块的集合.4095)定义如下:
a)Bi 0][0]=I-2048
b)如果Bi 0][0]为偶数,则Bi 7][7]=1;如果Bi 0][0]为奇数,则Bi 7][7]=0
c)除了Bi[0][0]和Bi[7][7]之外的所有其他系数Bi[y][x]等于0
对于属于上述定义的集合F的每个块Bi[y][x],声称符合的IDCT应输出块f[y][x],与参考饱和数学整数IDCT f(x,y)相比,其峰值误差为1或更小。换句话说,| f[y][x] - f(x,y)|对于所有x和y都应为=1
注1劳塞2.3标准1180-1990“指定IDCT失配误差的考虑”要求指定周期性的图像内编码,以便控制失配误差的累积。每个宏块在作为预测宏块被编码132次之前都需要被刷新。B图像中的m个宏块(以及P图像中的跳过宏块)被排除在计数之外,因为它们不会导致失配误差的累积。该要求与1180-1990中根据国际电联电信标准建议261对可视电话提出的要求相同
注2:虽然上面提到的美国电气和电子工程师协会IDCT标准是令人满意地实现IDCT函数的必要条件,但应该理解这是不够的。特别要注意子条款5.4:中的以下句子“如果没有规定算术精度,如IDCT的计算,精度应足够,以使最终整数值不会出现显著误差。”
这里将不详细描述逆DCT变换的过程。那些需要实现这个的人可以参考这个标准。
在实际应用中,二维IDCT变换通常通过两次一维IDCT变换来完成,这通常被称为行列法。
一般来说,后者在结构上具有较好的对称性,可以重用硬件资源。因此,我们在芯片设计中选择了行列法来进行IDCT电池的结构研究。
二维IDCT可以分解成二维IDCT运算,如下式所示。
在结构上,上述两个公式中定义的运算使用相同的运算“核心”(如下式所示),并且它们是相似的。因此,利用三角函数的各种关系,可以得到一种快速的“核”算法。
其中,
为了便于理解,快速算法可以表示为蝶形图,如下图所示。
模块的一维IDCT变换的结果被存储、转置和输出,然后执行另一个IDCT变换,这是相应的二维IDCT变换。
图4-8折叠结构的二维IDCT单元
该单元中一行数据(一行有8个像素数据)的处理流程为:1-2-3-4-5-6-7-8。
离散余弦变换研究
1前言
本文适用于对哈尔小波的DCT或Mallat算法有所了解的人。
由于我还是高一新生,我的文学基础很薄弱。我对一些技术知识不能说什么,也不能用语言来表达。因此,这里提供的知识仅仅是我所知道的1/4,还有3/4我不知道如何表达。尤其是在第三节“离散余弦变换的深入研究”中,我个人认为简直是肤浅的!
如果你只是一个新手,不仅想理解这篇文章,还想理解其他类似的文章,那么我会教你一个最快的学习方法:
让X={10,20}
分解方法:低频=10 20=30,高频=10-20=-10,
也就是说,Y={30,-10}
合并方法:X(0)=(低频和高频)/2=(30 (-10))/2=10,X(1)=X(0)-高频=10-(-10)=20
也就是说,X={10,20}
只要弄清楚低频和高频是如何产生的,以及它们是如何融合的。
Dct简介
离散余弦变换的全称是离散余弦变换,中文名称是离散余弦变换。在众所周知的JPEG编码中,DCT被用来压缩图像。为什么离散余弦变换可以压缩图像?我想很多人想知道这个问题,但事实上这是一个错误的陈述!由于离散余弦变换在图像压缩中只起辅助作用,所以在给定n个数据后,变换后仍会得到n个数据。离散余弦变换不仅消除了n个数据的冗余和相关性。
也就是说,这N个数据可以用少量的数据粗略地恢复,并且其它的离散余弦变换系数仅用于校正并且是可选的。
离散余弦变换有一个缺点,就是计算量很大!因为如果88点阵变换是根据标准的变换公式(2-D)来实现的,它将需要近万次计算!后来,提出了一种优化方法,即将二维离散余弦变换分解成两个一维离散余弦变换,使计算量减少到原来的1/4。
c语言 dct变换,C语言实现DCT变换编码相关推荐
- 二维dct变换例题_matlab进行二维DCT变换和二维DCT反变换
题目: matlab进行二维DCT变换和二维DCT反变换 在Matlab中,函数dct2 和函数idct2分别用于进行二维DCT变换和二维DCT反变换.下面以处理本次训练图像为例说明该余弦正反变换在M ...
- matlab 灰度图像dct变换,[Week2.4]图像DCT变换
均方差(Mean Square Error, MSE) 评价一幅图像压缩前和压缩还原后的差异,有两种常用方法: ①大家来找茬--进化程度高的人类可轻易识别: ②数学方法--压缩前和还原后的图像作均方差 ...
- java dct变换_Discrete Cosine Transform [DCT] (离散余弦变换)
Discrete Cosine Transform [DCT] (离散余弦变换) 描述:Binarizer是一个Transformer. 离散余弦变换是与傅里叶变换相关的一种变换,它类似于离散傅立叶变 ...
- dct图像压缩c语言实现,DCT变换在图像压缩中的实现
小白拙见,希望理解不对的地方大家多多指教! 对于各种信号,都可以说它是由多个振幅与频率不同的正弦或者余弦函数组成的.并且一个信号通常由一个直流信号DC(幅值保持不变的信号)和多个交流信号AC(幅值以某 ...
- 图像处理——DCT变换的学习笔记
1 DCT变换的学习笔记 DCT变换是一种可逆的变化,也就是说:DCT变换是一种一一映射:
- MATLAB中 DCT变换、DCT反变换、分块DCT变换
DCT变换.DCT反变换.分块DCT变换 欢迎转载,但请注明出处!转:http://www.tuicool.com/articles/nUfmAf2 一.引言 DCT变换的全称是离散余弦变换(Disc ...
- DCT变换在图像压缩中的实现
小白拙见,希望理解不对的地方大家多多指教!对于各种信号,都可以说它是由多个振幅与频率不同的正弦或者余弦函数组成的.并且一个信号通常由一个直流信号DC(幅值保持不变的信号)和多个交流信号AC(幅值以某种 ...
- python离散余弦变换_Python图像处理 —— DCT变换
图像的DCT变换 python实现 这里去除了图像的低频部分,进行dct变换后得到图像的骨架 import cv2 import numpy as np # 读取图像 img = cv2.imread ...
- DCT变换、DCT反变换、分块DCT变换
一.引言 DCT变换的全称是离散余弦变换(Discrete Cosine Transform),主要用于将数据或图像的压缩,能够将空域的信号转换到频域上,具有良好的去相关性的性能.DCT变换本身是无损 ...
最新文章
- JAVA之门面模式概述
- json 是个什么东西?
- 从dropbox的使用引申想到的系统集成
- 第一次使用Android Studio时你应该知道的一切配置(二):新建一个属于自己的工程并安装Genymotio...
- 8.1 A Bayesian Methodology for Systemic Risk Assessment in Financial Networks(2)
- 移动端自动化==什么是Appium
- 【渝粤教育】广东开放大学 软件工程 形成性考核 (50)
- 第二次作业 讲解及展示
- Android设计模式之——单例模式
- ipsec_profile
- cwRsyncServer 从 windows server 2008 同步到 CentOS
- 通过python实现同步修改本地电脑时间
- 无人机加速计、气压计、GPS数据融合
- 安捷伦数字万用表软件NS-Multimeter,实时数据采集数据自动保存
- 光缆定位仪光衰点定位光纤识别方法
- MT62F2G64DAFL-031 WT:C内存芯片D8BLT
- 扔硬币中的思考——隐含变量建模
- YouTube Video Download
- Between Worlds 3 太阳与地球
- python如何导出数据库数据库_python导出数据库数据的方法
热门文章
- hp1015驱动64位_hp laserJet 1015
- 软件提示应用程序无法启动,因为应用程序的并行配置不正确……
- justfont金萱
- 弘辽科技:店铺被判虚假交易?这样子申诉成功率百分之99
- Win10下使用Docker创建调试环境
- ring3层一种占用文件的方法(DuplicateHandle以后,把占用文件的句柄丢给系统进程,导致被占用)
- Python SQLite3 安装 OpenVP* Web管理后台
- 国家软考考出来的证书,到底有哪些帮助?
- springboot做系统所需的软硬件环境_最新Spring Boot实战文档推荐:项目搭建+配置+SSM整合...
- 计算机桌面进入安全模式,电脑只能进入安全模式咋办