声音是什么
人耳对3~4KHZ敏感
数字音频1秒采样44.1KHZ
音频编码:按照一定的格式记录采样和量化后的数字数据;
一般我们我们采集到的音频裸数据(pulse Code Modulation,PCM).
描述一段PCM数据需要的概念:量化格式(sampleFormat),采样率(sampleRate)、声道数(channel)
一秒钟比特率:sampleFormat * sampleRate * channel
压缩:有损压缩和无损压缩
1.WAV
就是在PCM数据格式前面加上44个字节来描述(保存音乐,音效素材)
2.MP3
使用LAME编码,适合高比特率
3.AAC
有损压缩,附加编码技术(PS,SBR),衍生了LC-ACC、HE-AAC、HE-AACV2
LC-ACC:编码》=80kb/s
HE-AAC:《=80kb/s
HE-AACV2:《=48kb/s
4.ogg
还不支持
图像的原理
三原色光:红,绿,蓝
RGB表示方式
浮点:0.0~1.0(OpenGL ES)也是
整数:0255或者0FF
一张图片占用内寸:分辨率 * 每个像素点大小 Android适用于不是res 下面的图片,BitmapFactory的decodeResource() 方法内部会根据 dpi 进行分辨率的转换
JPEG图像压缩
视频帧裸数据表示:YUV
Y:明亮度
UV:色度
Y,U,V都是用8个字节来表示(1B=8bit)
采样格式:YUV420(常用)
内存则是:yyyyyyyyuuvv
需要占用的内存:w * h * 3 / 2
YUV422:长x宽x2
UYUY422:长x宽x2
采样规律是:每个像素点都采样Y,奇数行采样1/2个U,不采样V,偶数行采样1/2个V,不采样U
一帧为1280720视频大小
12807201.5=1.3MB
按FPS最低24,电影时间90分钟
1.324*90=166.8G
YUV 转RGB (矩阵)
视频编码去除的具体信息包括下面
1.运动补偿
2.运动表示
3.运动估计
编码分为两个系列
MPEG 和H.26X
IPB帧
I帧:帧内编码帧
P帧:前向预测帧
B帧:双向预测帧
H264IDR帧与I帧理解
收到IDR帧就会把帧缓存区清空,将IDR帧作为参考帧
随机访问不能以I帧为参考条件P帧会以之前的I帧作为参考
DTS与PTS
DTS:主要用于标示读入内存中的比特流在什么时候开始送入解码器中进行解码
PTS:主要用于度量解码后的视频帧什么时候显示出来
网友评论