Coding:简单介绍视音频采样和量化01.

本文简要介绍了视音频编码中的采样和量化过程,包括空间、时间和声音采样,以及奈奎斯特定理。内容涵盖采样率、量化、色彩深度和伽马校正等基础知识。

额..最近一段时间一直在学习视音频编码压缩采样这块…

此篇文章是来自我自己前段时间总结的OneNote部分学习笔记呢;

如果有写得不对的地方.还有望大家多多指教的说!!

本文主要简单介绍了空间.时间.声音采样的原理与流程.还有一些奈圭斯特频率的知识。


2.1采样和量化。

光和声音以连续不断的模拟志存在.这些值组成了无穷的颜色细节和响度频率。模拟转数字必须缩减到离散比特和字节有限范围内.就是采样量化。采样界定测量的点或区域.量化界定了实际记录的值。


2.1.1空间采样。 模拟照片用扫描仪扫需要用每英寸的点数指定一个分辨率。采样是把图像分解为离散的碎片pel。 网络编码器大多采用方形像素.DV和ITU-R BT.601是长方形的。


2.1.2时间采样。

单位 f/s和Hz

运动15f/s 声音同步24f/s


2.1.3声音采样。

音频数据率较低。响度本质是任一给定的时刻的空气压力。电线中电压变化影响响度.对响度变化进行采样的频率称为采样率。 44.1khz 每秒44110次。

22.05 32 48 96 192。


2.1.4奈圭斯特频率。

任意信号的采样率至少要两倍于该信号的频率才能准确地再现信号。频率信号可以是空间.时间.声音的。

如果你的屏幕是640像素宽屏.影像中最多只有320个变化量不会出错。低于频率会导致我们得到的影像和源影像不一样。缩放降低影像分辨率时可能会出现这种问题。


2.1.5量化。

量化就是把离散的数值指派给每个样本理论上无穷尽的可能值(分配)。可用数值范围较宽的量化更精细比特和文件大小就更大.范围较小的量化更粗糙比特和文件大小就更小。不同样本的量化标准不同.选择最理想的.就是最适合的。

量化后一切就都被转成数字了。每个字节有8比特.每个比特有0和1.这些字节是以2的乘方成组。每增加1bit就能把采样分辨率加倍。中间数可以节省存储空间.速度是一样的。

量化视频

样本单独一个方块的颜色只能是一个颜色。像素.色彩深度决定量化后的细节数量。大多数视频编解码器采用的是每通道8bit。8bit视频提供了256级的亮度(0-255).足可以提供非常高质量的视频呈现。YCrCb(YUV)色彩空间视频系统典型只采用了219级的亮度级别(16-235).而RGB采用的就是256个。两者都是8bit数字量化。 人眼感光大概有1%的差异。 量化的尺度采用固定比例而不是光线水平.我们把这称为视觉均匀。在视觉均匀的亮度尺度上.亮度百分比从20到21和200到201都是差不多的。 使尺度保持视觉均匀的指数增长称为伽马。如今的视频编解码器的名义值是统一的2.2。


2.1.6曲线和超8bit?。

主流位数有8bit 10bit和12bit。


嗯..这次就先搬运这么多吧…日后会慢慢整理好后更新的说~

博主正在慢慢消化中~~

PS:颜色色彩空间部分下次再慢慢详谈。


@本地磁盘姬 整理

ohayou.moeres.org

微博@萌萌的本地磁盘w

2016年11月13日

1.2、音频基础概念 声音由物体振动产生,音调、音量、音色是声音的三要素。振动频率决定音调高低,振动幅度决定音量大小,振动的物体决定音色。 当声音引起空气振动时,麦克风振膜(通常由弹性材料制成)随声波振动,将机械能转化为电路中的电压变化,这种电压变化即模拟信号,原始声波的波形完全对应。 声音可以用模拟信号来表示。模拟信号是连续的,传输的时候很容易受干扰,且需要的存储空间比较大。因此在传输时需要转化成不连续的数字信号。转化过程包括:采样量化、编码 采样:按照固定的时间间隔从连续的模拟音频信号中抽取离散的样本点 采样率:每秒对模拟音频信号进行采样的次数,通常用赫兹(Hz)表示 量化简单来说就是对采样后的数据做四舍五入的处理,否则太多浮点数也不好用二进制处理 采样精度(16bitInt等)决定了量化程度 编码:将量化后的离散样本值用特定的编码方式表示为二进制数据,方便存储传输 1.3、音频编码 音频编码是将音频采样数据(PCM等)压缩成音频码流,降低音频数据量 G711A/PCMA ITU-T 2009 通信/安防 G711U/PCMU ITU-T 2009 通信/安防 AAC MPEG 1997 各个领域 MP3 MPEG 1993 各个领域 AC-3 Dolby Inc. 1992 电影 WMA Microsoft Inc. 1999 微软平台 注:WAV是音频封装格式,即用来存储音频数据的文件格式,可以包含不同的编码格式,NVR就使用了WAV封装格式。数据本身只是在pcm数据前加了一个头,将头截取掉即可播放 二、arch-player中的音频处理 2.1、Web Audio API Web Audio API: https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Audio_API Web Audio API是一套在WEB中处理音频的强大接口。它允许开发者在浏览器环境下创建、控制操作音频,为网页带来丰富的音频体验。 AudioContext AudioContext 是 Web Audio API 的核心对象,它代表了一个音频处理环境,负责管理控制所有的音频节点音频处理流程。在使用 Web Audio API 时,首先需要创建一个 AudioContext 实例。 AudioContext const audioCtx = new (window.AudioContext || window.webkitAudioContext)() AudioNode AudioNode 是音频图中的基本单元,它可以接收、处理输出音频数据。常见的音频节点: AudioBufferSourceNode:用于播放存储在 AudioBuffer 中的音频数据。需要注意的是,它是一次性使用的节点,一旦调用start()方法开始播放,就不能再次使用该节点做播放了。如果需要再播,需要重新创建节点 GainNode:用于控制音频的音量 AudioBuffer AudioBuffer 是一个用于在内存中存储音频数据的对象,它包含了音频的采样数据、声道数、采样率等信息。可以通过 AudioContext 的 createBuffer() 方法创建一个空的 AudioBuffer,也可以通过 decodeAudioData() 方法从音频文件中解码得到 AudioBuffer。arch-player采用了前者 2.2、播放流程 Web Audio API不能直接播放PCMA或PCMU的数据,需要转换成PCM后再播放 data 去offset、去WAV头等 设置码率、采样精度等 转换为pcm数据 pcm数据归一化为WebAudioAPI可以用的浮点数格式 数据存到this.samples 初始化audioCtx、gainNode等 循环处理samples中的数据 createBufferSource createBuffer 设置数据片段启播时间(this.startTime) bufferSource.start()播放 拼接下一个片段 this.startTime += audioBuffer.duration 清空this.samples 三、音视频同步 3.1、同步问题分析 当前是针对具体的问题逐个优化,没有系统的同步方案 前端音频播放问题 3.2、音视频同步方案 时间戳同步、帧率同步 我们的音频处理相对简单,因此采用音频向视频同步的方案 音频向视频同步 总结以上内容
最新发布
11-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值