MPEG-2压缩原理简介

MPEG-1音频算法 作为数字音频领域的里程碑之一,MPEG-1音频算法为音频信号的压缩和传输奠定了基础,也为后续的音频标准铺平了道路。算法的设计考虑了人耳对音频信号的感知特性,通过合理的量化策略和编码方法,尽可能地保留了人耳对音频质量的要求。例如,MPEG-1音频算法衍生出的MP3格式成为最受欢迎的音频压缩格式之一,在互联网上的音乐传播中起到了重要的作用。精细声音采样基于人对音频信号感知的特性,对于对感知影响较小的信号部分进行较强的量化,而对感知影响较大的信号部分进行较弱的量化。MPEG-1音频算法的基本原理是有损压缩。 阅读详情

 

为什么能进行压缩

  1. 人眼不能识别很细微的颜色变化
  2. 帧和帧之间以及帧内有很多冗余信息

 

压缩过程

1. 色彩空间转换(RGB –> YUV)

2. 宏块划分(划分成16x16像素的宏块)

3. 冗余信息去除

时间冗余(IPB帧,帧间预测,运动估计)

空间冗余(DCT, Quantization, Zig Zag Scan, Huffman Coding)

 

采用I帧(intra frame) P帧(predictive,前向预测) B帧(bidirection predictive,双向预测)技术可以去除时间上的冗余性,换句话说时间上邻近的帧的内容有很大的相似性。对于和之前帧中相似的宏块就可以不编码,但副作用是需要大量的运算来查找邻近帧内相似的宏块,用大量的运算来得到更少的bits.

使用DCT把16x16的像素块转换成16x16的系数块,通过Quantization和缩放可以忽略一些高频颜色信息(即细微的色彩变化),还可以把比较大的系数变成比较小的系数,编码时可以节省很多bits. Zig Zag Scan技术可以跳过量化后一些为0的系数,最后通过Huffman Coding还能进一步节省bits.

 

DCT – Discrete Cosine Transform离散余弦变换

Quantization - 量化

Zig Zag Scan - Z行扫描

Huffman Coding - 霍夫曼编码

数据压缩(十三)——MPEG音频编码原理及编码器调试 文章目录MPEG音频编码原理基本思想心理声学模型(Psychoacoustic model)听觉阈值频域掩蔽临界频带(Critical Band)人耳听觉系统掩蔽效果的加和MPEG音频压缩编码器多相滤波器组用来分割子带量化和编码比例因子的取值和编码比特分配及编码数据帧包装 MPEG音频编码原理 基本思想   分析信号,去掉不能被感知的部分【声音压缩算法可以确立这种特性的模型来取消更多的冗余数据】 子带分析滤波器组:使信号具有高的时间分辨率【短暂冲击信号情况下,编码的声音信号具有足够高的质量】 FFT运 阅读详情

相关推荐

深入理解MPEG音频编码与实践

MPEG音频编码是一种高效的音频数据压缩技术,广泛应用于数字音频存储和传输。它由多个层次组成,其中最著名的便是MP3,即MPEG-1 Audio Layer 3。本章将介绍MPEG音频编码的基本概念和其在不同层中的应用。

weixin_32480007的博客 855

MPEG2标准的压缩分层和编码原理

mpeg2编码器可以分为两层:压缩层和复用层。压缩层出来的是ES流。     ES--PES,然后的复用可以是PS流也可以TS流,PS用于存储(如DVD)TS用于传输(如电视台播放用)。  在多媒体信号传输中,只有对音频和视频信号进行有效的编码,才能最后解析出高质量的声音和图像。本文介绍了MPEG2标准的压缩分层和编码原理,并说明了如何在芯片上实现MPEG2音频编码。MPEG2编码器进

aaaaatiger--寻路 3282

lammps建模(电解液)opls-aa力场的基本流程

lammps建模(电解液)opls-aa力场的基本流程

syj0922的博客 2134

MPEG2相关原理概述

MPEG是运动图像专家组(Moving Picture Experts Group)的简称,其实质上的名称为国际标准化组织(ISO)和国际电工委员会(IEC)联合技术委员会(JTC)1的第29 分委员会的第11工作组,即ISO/IEC JTC1/SC29/WG11,成立于1988年。其任务是制定世界通用的视音频编码标准。因为,广播电视数字化所产生的海量数据对存储容量、传输带宽、 处理能力及频谱资源

Linux知识积累 1546

IEPE加速度同步采集卡、振动信号同步模块、温震一体八路高速采集

WJ288产品是一种物联网和工业以太网采集模块,实现了传感器数据采集并发送到网络。IEPE是“Integrated Electronics Piezo-Electric”的缩写,即集成电路型压电式传感器。这种带内置电子器件的压电传感器已成为工业应用领域的标准。半导体电路将压电传感器的高阻抗信号转换为更容易传输的低阻抗电压信号。借助IEPE,只需一根任意长度的标准电缆即可实现电源供给和信号传输,不会因电缆移动而产生测量误差。

wayjun0903的博客 733

基于单片机直流电机调速控制系统设计

*单片机设计介绍,基于单片机直流电机调速控制系统设计。

2201_75940997的博客 2781

数据压缩实验:MPEG原理

MPEG分析MPEG原理介绍:编码流程框架:临界频带的概念代码实现噪声帧分析音乐帧分析 MPEG原理 介绍: MPEG标准主要有以下五个,MPEG-1、MPEG-2、MPEG-4、MPEG-7及MPEG-21等。该专家组建于1988年,专门负责为CD建立视频和音频标准,而成员都是为视频、音频及系统领域的技术专家。及后,他们成功将声音和影像的记录脱离了传统的模拟方式,建立了ISO/IEC11172压缩编码标准,并制定出MPEG-格式,令视听传播方面进入了数码化时代。因此,大家现时泛指的MPEG-X版本,就是

sendhoh的博客 1157

Fastjson2 2.0.26反序列化漏洞深度剖析:从原理到PoC构造

本文深度剖析了Fastjson2在2.0.26及之前版本中存在的反序列化漏洞。该漏洞允许攻击者通过构造包含恶意TemplatesImpl对象的JSONArray,并利用BadAttributeValueExpException触发,在反序列化过程中实现远程代码执行。文章从漏洞原理、PoC构造、利用链分析到防御建议,提供了全面的技术解读,帮助开发者和安全人员理解其危害并采取应对措施。

d3e4f的博客 1052

MPEG-2 数字视频技术参考指南 (3)—— MPEG-2视频压缩

转载请注明出处: http://blog.youkuaiyun.com/zhubin215130/article/details/8931501         压缩一个视频流就好比是冷冻干燥一碗速溶汤,汤被包装后,所有的水分都被挤出,携带和储藏也变得更方便。当包装的汤到了消费者手中后,会重新加入水来恢复汤的本来面目。通过从视频或音频流中提取出多余的信息,MPEG-2能将信号流压缩至原先大小的180分之一。

zbryan的专栏 2409

植物叶绿体基因组分析全攻略:从共线性到密码子偏好性

本文全面解析植物叶绿体基因组分析流程,从共线性分析到密码子偏好性研究。详细介绍了叶绿体基因组结构特征、测序数据获取与质量控制、基因组组装与注释方法,以及比较基因组学和进化分析技术。特别关注IR区边界变异分析和选择压力评估,为植物系统发育研究和物种鉴定提供实用指南。

weixin_28475533的博客 222

fastbin attack快速入门

0x01 fastbin简介 Fastbin包含0x20~0x80大小bin的数组指针,用于快速分配小堆块。fastbin按照单链表结构进行组织,相同大小的bin在同一个链表中,fd指向下一个bin,采用LIFO(Last In First Out)机制。在fastbin中,堆块的inuse标志都为1,处于占用状态,防止chunk释放时进行合并,加快小堆块的分配。 正常fastbin的使用 通过这个简单的案例来了解fastbin的单链表结构,malloc和free的过程。 #include<stdio

abelxu 1571

MPEG-Encode

MPEG-EncodeMPEG-1压缩编码算法一、视频压缩:MPEG 视频压缩编码后包括三种元素:I帧(I-frames)、P帧(P-frames)和B帧(B-frames)。在MPEG编码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。I帧法是帧内压缩法,也称为“关键帧”压缩法。I帧法是基于离散余弦变换DCT( Discrete Cosine Transform )的压

移动互联网改变生活,高效配对交易创造财富 1165

【信息系统项目管理师】第18章:项目绩效域详解

(3)度量绩效域与规划绩效域、项目工作绩效域和交付绩效域的相互作用:1规划构成了 交付和规划比较的基础;项目绩效域共同构成了一个统一的整体,作为一个完整系统,在项目生命周期过程中运行,系统内的每个绩效域相互作用、相互关联和相互依赖,并协调一致、共同运作,支撑项目目标和价值 的实现。(5)开发方法和生命周期绩效域与其他绩效域的相互作用:开发方法和生命周期绩效域与干系人绩效域、规划绩效域、不确定性绩效域、交付绩效域、项目工作绩效域和团队绩效域相互作用。(2)项目工作绩效域的绩效要点包括:项目过程;

数据知道的博客 7805

浅析MPEG-1音视频标准,带你深入浅出理解MPEG-1压缩原理

MPEG-1编解码标准是MPEG专家组,在1992年发布的第一个音视频编码标准。标准分为了五部分:(第一部分Part1)系统(将视音频数据和其他数据同步存储到一起);(第二部分Part2)视频(压缩视频内容);(第三部分Part3)音频(压缩音频内容);(第四部分Part4)一次性测试(测试标准实现的正确性);(第五部分Part5)参考软件(举例说明如何根据标准来编解码)

qq_52127343的博客 3333

基于MATLAB的导弹轨迹和撞击位置仿真

本文将介绍如何使用MATLAB进行导弹轨迹和撞击位置的仿真,提高导弹的精确打击能力。首先,我们需要确定导弹的初始位置和速度,以及导弹所受到的外部环境因素如重力、空气阻力等。在MATLAB中,可以通过ODE求解器来模拟导弹的运动轨迹。最后,我们通过控制器输出的控制信号来控制导弹的姿态。通过对导弹的运动轨迹和姿态进行仿真,可以更好地预测和规划导弹的运动轨迹,提高其精确打击能力。在实际作战中,为了提高导弹精确打击能力,需要对导弹的撞击位置进行预测和规划。我们可以通过控制导弹的姿态来实现撞击目标的精确命中。

CyberLynxO的博客 1982

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

MPEG音频文件格式(包括MP3文件格式)详解

  最近又在做MP3相关的程序,需要了解mp3的文件格式,于是就从网上找了一些资料,并将内容整理如下,加入了自己的一些理解。  MP3 文件是由帧(frame)构成的,帧是MP3 文件最小的组成单位。MP3 的全称应为MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG 音频文件是M

xiaoyao888的专栏 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

MPEG原理简介

本文章来自网络 1.前言 这一两年来市面上多了许多VideoCD player,很多人都搞不清楚它是用何原理制做的,或者知道MPEG却又不知道这MPEG是什么东东。更恐怖的是连我国的HDTV也要用MPEG,这对Audiophile或Videophile来说技术的演进实在太快了,学生时代读书也没那么累。其实MPEG跟AC-3一样也是一种压缩方法,只不过它不是只有音讯,它连视讯都压,而且最高可

探索。。。发现。。。 3069

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

MPEG简介

1.MPEG的相关知识 想要了解如何计算VBR的MP3的播放时间之前,要简单了解一些MP3相关的一些基本概 念,主要是MPEG的相关知识和编解码的一些知识: 1.1 MPEG是啥 MPEG全名Moving Pictures Experts Group,动态图像专家组,简单说就是一个专家组,专门研究一些音视频规范的,所以才叫专家,不是我们国家的“砖家”哦。这个专家组是在ISO/IEC(Inte

re3f45q7的专栏 1073

MP3就是MPEG-3吗

转载自http://www.eefocus.com/zouyitao/blog/07-05/2144_9f3b0.html 一、MP3就是MPEG-3吗? 许多学视频压缩的人都知道MPEG,可往往参考书里总提及MPEG-1、MPEG-2、和MPEG-4却没有MPEG-3?MPEG-3跑到哪里去了?MP3就是MPEG-3吗? MPEG-3 是MPEG组织制定的视频和音频压缩标准。本来的目标

scusyq的专栏 4900

几种视频压缩标准简介

1)MJPEG   MJPEG 是指 Motion JPEG,即动态JPEG,按照25帧/秒速度使用JPEG 算法压缩视频信号,完成动态视频的压缩。是由JPEG专家组制订的,其图像格式是对每一帧进行压缩,通常可达到6:1的压缩率,但这个比率相对来说仍然不足。就像每一帧都是独立的图像一样。MJPEG图象流的单元就是一帧一帧的JPEG画片。因为每帧都可任意存取,所以MJPEG常被用于视频编辑系统。动态

小米mm修仙路 6226

压缩包的压缩原理

压缩包究竟是通过什么手段对数据进行压缩的呢

m0_73376392的博客 1456

MPEG4视频压缩编码技术详解

MPEG全称是Moving Pictures Experts Group,它是"动态图象专家组"的英文缩写,该专家组成立于1988年,致力于运动图像及其伴音的压缩编码标准化工作,原先他们打算开发MPEG1、 MPEG2、MPEG3和MPEG4四个版本,以适用于不同带宽和数字影像质量的要求。    目前,MPEG1技术被广泛的应用于VCD,而 MPEG2标准则用于广播电视和DVD等。MPEG3最初是

静水深流 2586

MPEG音频文件格式(包括MP3文件格式)详解 (一)

      MP3 文件是由帧(frame)构成的,帧是MP3 文件最小的组成单位。MP3 的全称应为MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG 音频文件是MPEG1 标准中的声音部分,也叫MPEG 音频层,它根据压缩质量和编码复杂程度划分为三层,即 Layer-1、Layer

Tunix126的专栏 2179
上一篇: OpenProcess使用PROCESS_ALL_ACCESS返回ERROR_ACCESS_DENIED
下一篇: linux下安装QtCreator
glcdw
博客等级 码龄18年 8粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值