【数据压缩】DPCM编解码

DPCM算法编码实现 阅读详情

一、DPCM编解码原理

DPCM是差分预测编码调制的缩写,是比较典型的预测编码系统。

需要注意的是,预测器的输入是已经解码以后的样本(即重构样本)。之所以不用原始样本来做预测,是因为在解码端无法得到原始样本,只能得到存在误差的样本。因此,在DPCM编码器中实际内嵌了一个解码器。

当采用左侧预测时,在第一个样本输入时,我们假定误差值第一列都为128(已量化),重构图像值为原始样本值。当第二个样本输入,此原始样本减去上一个重构样本,得到未经量化的误差值,经过量化后得到第二个的量化误差(第一个是128嘛,我们以行为单位看)。而此时我们将量化误差反量化得到误差,加上前一个重构样本得到此时的重构样本。这就得到了量化误差图像和重构图像(仅有y,我们也可以自己写入uv)。

二、主要代码分析

1、我们选择在yuv2rgb文件里面加入编码器,为了直接用新鲜出炉的y数据流

unsigned char *rexn,*en;//开的空间 rexn为重建值 en为量化误差值
unsigned char *rexnn,*enn;//指针
int p1,p2;//中间变量
float p3;//中间变量

2、给他们开辟空间

rexn=(unsigned char *)rex;//空间大小在main函数中定义
en=(unsigned char *)e;

3、编码过程

	rexnn = rexn;
	enn = en;
        y=y_buffer;
	for(i=0;i<y_dim;i++)
	{
		for(j=0;j<x_dim;j++)
		{
			if(j==0)//第一列特殊
			{
				*(enn+i*x_dim)=128;//量化误差给128
				*(rexnn+i*x_dim)=*(y+i*x_dim);//重建值给原值
			}
			else
			{
				p1=0;
				p1=*(y+j+i*x_dim)-*(rexnn+j-1+i*x_dim);//误差值
				//p2=quantizier(p1,enn+i*x_dim+j,8);//8bit量化
				p3=p1/2+128;//8bit量化
				*(enn+i*x_dim+
实验(四)DPCM编码的实现和分析 DPCM编码原理简介 DPCM全称差分脉冲编码调制(Differential Pulse Code Modulation),是一种利用相邻像素的相关性去除空间冗余信息达到压缩目的的算法。 其中xn为输入信号,Q为量化器,dn=pn+xn为预测误差,P为延时器。 本实验采用前向预测,即每个像素左边的像素,大致算法如下: 以8bit图像为例,收到的灰度取值为[0,255],与前一个像素作差和得到误差... 阅读详情

相关推荐

通信工程学习:什么是PCM脉冲编码调制、DPCM差分脉冲编码调制、ADPCM自适应差分脉冲编码调制

PCM、DPCM和ADPCM是三种主流的音频编码技术。PCM通过抽样、量化和编码实现无损数字化,数据量大但音质高;DPCM采用差分编码记录样本间差值,压缩数据但可能产生误差累积;ADPCM在DPCM基础上引入自适应量化,动态调整量化阶大小,实现更高压缩比同时保持音质。三者各具特点,适用于不同场景:PCM适合高质量音频存储,DPCM和ADPCM则更适用于需要数据压缩的传输应用。

limengshi138392的博客 2612

数据压缩原理实验4_DPCM编解码

一、实验原理DPCM编解码原理DPCM是差分预测编码调制的缩写,是比较典型的预测编码系统。而预测编码就是根据过去的信号样值来预测下一个信号样值,并将预测值与现实样值得差值进行量化、编码后进行数字信号传送。在DPCM系统中,需要注意的是预测器的输入是己经解码以后的样本。之所以不用原始样本来做预测,是因为在解码端无法得到原始样本,只能得到存在误差的样本。因此,在DPCM编码器中实际内嵌了一个解码器,如下

cherry_holmes的博客 1024

【数据压缩】实验:DPCM压缩系统的实现与分析

预测编码指根据某一模型利用旧的样本值对新样本值进行预测,然后将样本的实际值与其预测值相减得到误差值,对于这一误差值进行编码。如果模型足够好且样本序列在时间上相关性较强,那么误差信号的幅度将远远小于原始信号,从而得到较大的数据压缩结果。预测编码方法分线性预测和非线性预测编码方法。线性预测编码方法也称差值脉冲编码调制法,简称DPCM。DPCM编解码过程如下图:编码器(Encoder)中Q是量化器,P是预测器。输入信号Xn是某一像素点的实际灰度值,Pn是对该像素点的预测值,dn 是预测误差,^(dn)是量化预测误

weixin_48946798的博客 586

ADPCM语音编解码电路设计及FPGA实现

 ADPCM算法及其编解码器原理    ADPCM(Adaptive Differential Pulse Code Modulation,自适应差分脉冲编码调制)综合了APCM的自适应特性和DPCM系统的差分特性,是一种性能较好的波形编码。它的核心思想是:利用自适应改变量化阶的大小,即使用小的量化阶去编码小的差值,使用大的量化阶去编码大的差值;使用过去的样本值估算下一个输入样本的预测值,使实

qidifeng的专栏 2643

ADPCM音频编解码

前言 参考 所谓ADPCM编码是一种自适应差分脉码调制技术。它可以对音频数据在毫无损失的前提下,将数据量压缩为原来的1/4,这对于音频来说,意义是重大的. ADPCM源于微软的Windows,一般的WAV文件就是使用它来编码的,WAV是Windows上的标准音频格式。ADPCM算法已经被标准化了,现行使用的是IMA-ADPCM,即IMA组织制订的ADPCM算法。这种算法比较简单,但却有较高的压缩比...

u014742281的专栏 2140

数据压缩实验五|JPEG原理分析及JPEG解码器的调试

JPEG原理分析及JPEG解码器的调试 实验目的 掌握JPEG编解码系统的基本原理。初步掌握复杂的数据压缩算法实现,并能根据理论分析需要实现所对应数据的输出。 实验设备 安装Windows和Visual Studio软件的个人计算机 实验内容 1.JPEG编解码原理 JPEG编码的过程如上图所示。解码是编码的逆过程。 2.JPEG文件格式 见附件:JPEG解码调试报告。 实验步骤 1.逐步调试JPEG解码器程序。将输入的JPG文件进行解码,将输出文件保存为可供YUVViewer观看的YUV文件。 2.

m0_55764256的博客 275

数据压缩实验4-DPCM编码

一、实验原理 1.      预测编码 预测编码是根据离散信号之间存在着一定关联性的特点,利用前面一个或多个信号预测下一个信号进行,然后对实际值和预测值的差(预测误差)进行编码。如果预测比较准确,误差就会很小。在同等精度要求的条件下,就可以用比较少的比特进行编码,达到压缩数据的目的。 2.      DPCM编解码原理 DPCM(Differential Pluse Code

fang_na的博客 903

[数据压缩]实验四 DPCM编码

三、DPCM编码系统设计 具体步骤: 四:主要函数实现和量化效率分析 附具体分析 预测误差(8,4,2bit下)原图和重建图像(8,4,2bit下) 预测误差和其分布概率(原始图像) (8bit) (4bit)......

alexgcz的博客 341

数据压缩试验四:DPCM编码

一、实验目的 1.学会从计算和程序的角度分析问题,通过完成本实验,理解计算思维,即从问题出发,通过逐步分析和分解,把原问题转化 为可用程序方式解决的问题。在此过程中设计出一个解决方案。 2.进一步理解彩色空间的概念并掌握不同彩色空间转换的基本方程。 3.通过逐步设计程序,掌握编程细节:如查找表的设计,内存分配,对 U 和 V 信号进 行下采样,文件读写过程等。掌握程序调试的基本方法。 ———————————————— 实验内容 1.DPCM编解码原理 DPCM是差分预测编码调制的缩写,是比较典型的预测编码

weixin_55750410的博客 370

数据压缩_作业八_DPCM编码

一、实验内容 1、DPCM编解码原理 DPCM是差分预测编码调制的缩写,是比较典型的预测编码系统。在DPCM系统中,需要注意的是预测器的输入是已经解码以后的样本。之所以不用原始样本来做预测,是因为在解码端无法得到原始样本,只能得到存在误差的样本。因此,在DPCM编码器中实际内嵌了一个解码器,如编码器中虚线框中所示。 在一个DPCM系统中,有两个因素需要设计:预测器和量化器。理想情况下,预测器和量化器应进行联合优化。实际中,采用一种次优的设计方法:分别进行线性预测器和量化器的优化设计。 2.DPCM编码系统

syf3032的博客 646

共享单车需求预测问题:建模篇

机器学习训练营——机器学习爱好者的自由交流空间(qq群号:696721295) 在上一篇里,我们使用可视化的方法分析了“共享单车”的数据集,理解了特征(变量)之间的关系。我们将在本篇建立几个模型预测单车的需求量,并比较它们的预测效果。 随机森林填充法 首先,导入必需的库、训练集和检验集。 import pylab import calendar import numpy as np impor...

wong2016的博客 1万+

ArchLinux下用Wine运行钉钉全攻略:从字体配置到中文输入法避坑

本文详细介绍了在ArchLinux系统上使用Wine运行钉钉的完整配置流程。从最新的WoW64架构环境准备、中文字体配置与DPI优化,到钉钉安装、关键系统库替换,再到解决中文输入法失效等核心难题,提供了实战避坑指南。旨在帮助Linux用户在企业办公场景下,获得接近原生的稳定使用体验。

alice7model的博客 588

无人机精准降落辅助系统核心技术解析

接近地面时(<10米)切换至基于图像的视觉伺服(IBVS),依据图像特征点偏移(如靶标图案、LED标记)微调姿态,消除位置累积误差。通过SRUKF(平方根无迹卡尔曼滤波) 算法融合三类数据,输出6自由度位姿估计(精度达厘米级),抑制单一传感器噪声。权值根据信噪比动态调整。模型预测控制(MPC):针对斜坡降落,构建包含平台倾角、风扰的动力学方程,滚动求解最优油门序列。动态照明适配:针对夜间或低光照场景,系统向降落平台发送亮度调节指令,如增强红外信标强度或调整可见光LED阵列,确保特征识别鲁棒性。

YUNZHUO666的博客 1696

EEGLAB合辑 | 第一节 往EEGLAB导入数据

1、学习Matlab EEGLAB图形界面建立在强大的Matlab脚本语言之上。要使用EEGLAB构建宏命令和执行自定义和自动化处理的全部功能,就需要能够在Matlab中操纵EEGLAB数据结构。由于时间限制,这个wiki没有提供关于Matlab脚本语言的介绍。相反,用户需要在开始研究之前熟悉Matlab。 2、安装EEGLAB和教程文件 首先下载包含教程数据集的EEGLAB(30MB),附下载地址。 (https://sccn.ucsd.edu/eeglab/downloadtoolbox.php) 解压

nvsirgn的博客 5134

⑨【从0制作自己的ros导航小车:上位机篇】04、使用gmapping建图

前面的文章已经能够实现在odom坐标系下显示小车模型和里程计数据了,本文加上激光slam必不可少的传感器雷达,先进行测试,然后直接开始建图!

海风的博客 2916

S7-1200 数据日志

数据日志文件按照标准 CSV 格式存储在 S7-1200 CPU 装载存储器或 S7-1200 SIMATIC 存储卡中。分别可通过 PLC Web 服务器或将数据文件传送到 PC 进行管理、查看。 一、测试目的: 下面以数据日志文件存储在 S7-1200 CPU 装载存储器中,使用PLC Web 服务器进行管理为例,实现下述功能: (1)执行“DataLogging”指令将产品型号“Type”,长度“Length”,宽度“Width”三个变量值写入到数据日志文件; (2)当写入的条数达到设定的3条

qq_43029096的博客 2541

ESM2蛋白预训练模型 蛋白质、氨基酸向量表示

参考: https://github.com/facebookresearch/esm https://huggingface.co/facebook/esm2_t33_650M_UR50D https://esmatlas.com/resources?action=fold tokenizer_对输入蛋白会头尾添加cls、eos特殊字符,占两个字符长度 参考:https://github.com/facebookresearch/esm 直接clone下来代码

weixin_42357472的博客 1万+

使用mindie:2.0.RC2-800I-A2-py311-openeuler24.03-lts制作一个通用的模型推理性能测试的镜像

本文详细介绍了在NPU环境下进行模型推理性能测试的完整流程。首先配置了测试所需的环境和设备信息,包括Python 3.10.9和3.11.6版本、测试脚本和镜像文件。然后分步骤说明了镜像制作过程:创建特权容器、安装Python 3.10.9、配置VLLM环境,并详细描述了测试容器的启动方法。最后提供了镜像打包和使用指南,包括如何加载镜像、启动容器、运行测试脚本(以DeepSeek-32B模型为例)以及更换测试模型的步骤。整个过程涉及环境变量配置、权限设置和服务启动等关键操作。

m0_50105717的博客 1015

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 【数据压缩】Huffman编解码
下一篇: 【数据压缩】JPEG编解码
cimoaa
博客等级 码龄10年 2粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值