FDCT变换 公式法
// 对亮度信号进行FDCT变换
// @param data 亮度信号的存储数组
void CompressEncode::standardFDCT(BYTE data[MATRIXSIZE][MATRIXSIZE])
{
BYTE output[MATRIXSIZE][MATRIXSIZE];
double alpha, beta;
short u = 0, v = 0;
short x = 0, y = 0;
for (v = 0; v < MATRIXSIZE; ++v) { // 垂直
for (u = 0; u < MATRIXSIZE; ++u) { // 水平
// 设定C(u),C(v)系数
alpha = 1;
if (u == 0) alpha = sqrt(1.0 / 2.0);
beta = 1;
if (v == 0) beta = sqrt(1.0 / 2.0);
double tmp = 0.0;
for (x = 0; x < MATRIXSIZE; ++x) {
for (y = 0; y < MATRIXSIZE; ++y) {
// DCT接收的自变量值域为[-128,127], 所以各变量要减128
tmp += (data[x][y] - 128)
*cos((2 * x + 1)*u*M_PI / (2.0*MATRIXSIZE))
*cos((2 * y + 1)*v*M_PI / (2.0*MATRIXSIZE));
}
}
output[u][v] = round_double((alpha*beta / 4) *tmp);
}
// 把变换结果写回到原缓冲区
memset(data, 0, MATRIXSIZE*MATRIXSIZE * sizeof(BYTE));
memcpy(data, output, MATRIXSIZE*MATRIXSIZE * sizeof(BYTE));
}
}
FDCT变换 公式法的更多相关文章
- [问题2014A02] 解答三(降阶公式法)
[问题2014A02] 解答三(降阶公式法) 将矩阵 \(A\) 写成如下形式: \[A=\begin{pmatrix} -2a_1 & 0 & \cdots & 0 & ...
- C语言复习---获取最小公倍数(公式法:两个数相乘等于最小公倍数乘以最大公约数)
公式法:两个数相乘等于最小公倍数乘以最大公约数 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib ...
- Maths | 离散K-L变换/ 主成分分析法
目录 1. 概述 2. K-L变换方法和原理推导 2.1. 向量分解 2.2. 向量估计及其误差 2.3. 寻找最小误差对应的正交向量系 3. K-L变换高效率的本质 4. PCA在编.解码应用上的进 ...
- - > 最大公约数(辗转相除法)和最小公倍数(公式法)
最大公约数 #include<iostream> using namespace std; int a,b; int gcd(int x,int y){ return x==0?y:gcd ...
- 51nod 1073约瑟夫环 递归公式法
约瑟夫环问题的原来描述为,设有编号为1,2,--,n的n(n>0)个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈,再从他的下一个人起重新报数,报到m时停止报数,报m的出圈,- ...
- 【Unity3d游戏开发】Unity3D中常用的物理学公式
马三最近在一直负责Unity中的物理引擎这一块,众所周知,Unity内置了NVIDIA公司PhysX物理引擎.然而,马三一直觉得只会使用引擎而不去了解原理的程序猿不是一位老司机.所以对一些常用的物理学 ...
- OpenGL变换
概述 OpenGL变换矩阵 实例:GL_MODELVIEW矩阵 实例:GL_PROJECTION矩阵 概述 OpenGL管线中,在光栅化操作之前,包括顶点位置与法线向量的几何数据经顶点操作与图元装配操 ...
- opengl视图变换 投影变换推导
视图变换在opengl中,视图变换的输入是:(1)眼睛位置(或者说相机位置)eys:(2)眼睛朝向的中心center,(就是眼睛朝哪里看);(3)头的方向up.任何一点经过视图变换后都会转化到眼睛坐标 ...
- H.264编码之DCT变换原理
DCT变换是一种与FFT变换紧密相连的数学运算,当函数为偶函数是,其傅立叶展开式只有余弦项,因些称为余弦变换,其离散化的过程称为DCT(离散余弦)变换.下面我们就推导下H.264的4x4整数DCT公式 ...
随机推荐
- android BitMap回收
第一种方法--及时回收bitmap内存: 一般而言,回收bitmap内存可以用到以下代码 if(bitmap != null && !bitmap.isRecycled()){ bit ...
- linq 的switch实现
List<RemindSend> lrs = (from a in db.Remind join b in db.Certified on a.certifiedId equals b.C ...
- apache自带的web监控器配置
第一:将mod_status模块放开,即去掉httpd.conf中的# 第二:在httpd.conf后面添加下面内容 <Location /server-status> SetHandle ...
- C#回顾 –6.特性
1.特性是什么? Attribute 用来对类.属性.方法等标注额外的信息,贴一个标签(附着物) 通俗:给 类 或 类成员 贴一个标签,就像航空部为你的行李贴一个标签一样 个人理解,特性就是修饰 ...
- PHP的命名空间 与类是自动加载
namespace 假设如果不使用namespace,那么每个类在一个项目中的名字就必须是固定的.因为php在new的时候不管是调用autoload还是调用已加载过的类,都存在一个类名对应的文件.所以 ...
- sqlmap和burpsuite绕过csrf token进行SQL注入检测
利用sqlmap和burpsuite绕过csrf token进行SQL注入 转载请注明来源:http://www.cnblogs.com/phoenix--/archive/2013/04/12/30 ...
- IntelliJ IDEA 14 注册码
IntelliJ IDEA 14 下载地址: IntelliJ IDEA 14 下载 分享几个license: (1) key:IDEA value:61156-YRN2M-5MNCN-NZ8D2-7 ...
- 通过TStringList保存csv文件,只要循环.Add表格里面的每行记录进去,保存即可
dlgSave := TSaveDialog.Create(nil); dlgSave.filter := 'CSV文件|*.CSV'; dlgSave.DefaultExt := '*.CSV'; ...
- three.js自定义形状
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- windows pip安装 更新
升级: http://blog.csdn.net/liuchunming033/article/details/39578019 pip坏了如何重新安装: https://github.com/pyp ...