1:常用的视频压缩算法:
MPEG2 ===>MPEG阵营
H264 ===>MPEG阵营
H265 ===>MPEG阵营
AVS ===>中国阵营
VP8 ===>Google阵营
VP9 ===>Google阵营
2:图像表示方法 :
2.1:RGB 红绿蓝
每个像素8bit 色彩:256256256=16,777,216
一个1280*720的照片,用RGB存储,大小:1280×720 * 3 = 2.637 MB
===》照片的大小x时间x帧率
2.2:数字图像 YUV格式 Y(明亮度) U,V(色度)
2.2.1:yuv两种存储方式
两种存储方式:先存储Y (planar)和 Y, U, V交替存储
libyuv :google开源的各种实现yuv和rgb,相互转换,缩放,旋转的库
2.2.2:yuv多种格式及大小计算
yuv存在多种格式:yuv420p, yuv420sp
===》 排列顺序不同。
===》解析不对会出现花屏,绿屏的现象
YUV420P格式表示1280*720的视频帧:
四个Y帧共用一个U,V,多了0.5的一个帧:1280 * 720 * 1 + 1280 * 720 * 0.5 = 1.318MB
3: 码率 帧率 分辨率:
3.1:视频码率,视频帧率,视频分辨率
视频码率:kb/s,是指视频文件在单位时间内使用的数据流量,也叫码流率。码率越大,说明单位时间内取样率越大,数据流精度就越高。
视频帧率:fps,通常说一个视频的25帧,指的就是这个视频帧率,即1秒中会显示25帧。帧率越高,给人的视觉就越流畅。
视频分辨率:分辨率就是我们常说的640x480分辨率、1920x1080分辨率,分辨率影响视频图像的大小。
3.2:I P B帧:
===》I 帧(Intra coded frames):帧数内编码 I帧不需要参考其他画面而生成,解码时仅靠自己就重构完整图像;
===》P 帧(Predicted frames):根据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据,同时利用了空间和时间上的相关性。
===》B 帧(Bi-directional predicted frames):B 帧图像采用双向时间预测,可以大大提高压缩倍数。
4:音频相关基础:
4.1:PCM
PCM(Pulse Code Modulation),脉冲编码调制:人耳听到的是模拟信号,PCM是把声音从模拟信号转化为数字信号的技术。
4.2:采样频率/采样精度
采样中完全恢复原始信号波形,采样频率必须至少是信号中最高频率的两倍,
人耳能听到的频率范围是[20H~20kHz],所以采样频率一般为44.1Khz
采样频率:每秒钟采样的点的个数。常用的采样频率有: 22000(22kHz): 无线广播。 44100(44.1kHz): CD音质。 48000(48kHz): 数字电视,DVD。 96000(96kHz): 蓝光,高清DVD。 192000(192kHz): 蓝光,高清DVD。 采样量化/精度:采样值的精度取决于它用多少位来表示: 例如:8位量化可以表示256个不同值,而CD质量的16位量化可以表示65 536个值,范围为[-32768, 32767]。
4.3:通道数,比特率,码率
通道数:单声道,双声道,四声道,5.1声道。 比特率:每秒传输的bit数,单位为:bps(Bit Per Second) 没有压缩的音频数据的比特率 = 采样频率 * 采样精度 * 通道数。 码率: 压缩后的音频数据的比特率。常见的码率: 96kbps: FM质量 128-160kbps:一般质量音频。 192kbps: CD质量。 256-320Kbps:高质量音频 码率越大,压缩效率越低,音质越好,压缩后数据越大。 码率 = 音频文件大小/时长。
4.4:帧,帧长
帧:每次编码的采样单元数, 比如MP3通常是1152个采样点作为一个编码单元,AAC通常是1024个采样点作为一个编码单元 帧长:每帧播放持续的时间:每帧持续时间(秒) = 每帧采样点数 / 采样频率(HZ) 比如:MP3 48k, 1152个采样点,每帧则为 24毫秒 1152/48000= 0.024 秒 = 24毫秒;
4.5:交错模式和非交错模式
交错模式:数字音频信号存储的方式。 ===》如:首先记录帧1的左声道样本和右声道样本,再开始帧2的记录... 非交错模式:首先记录的是一个周期内所有帧的左声道样本,再记录所有右声道样本
4.6:音频压缩原理
数字音频压缩编码:去除声音信号中冗余成分(不能被人耳感知到的信号)的方法,进行尽可能大的压缩,降低数据量20Hz~20KHz范围外的频率,人耳听觉的掩蔽效应中的弱音信号:频谱掩蔽效应和时域掩蔽效应
音频方向编码选型:OPUS,MP3,AAC,AC3和EAC3(杜比公司的方案)
5:音视频的封装:
封装格式(也叫容器): 就是将已经编码压缩好的视频流、音频流及字幕按照一定的方案放到一个文件中,便于播放软件播放 一般来说,视频文件的后缀名就是它的封装格式。 H264/AVC+AAC封装为FLV或MP4是最为流行的模式 常见的视频封装格式: AVI、MKV、MPE、MPG、MPEG MP4、WMV、MOV、3GP M2V、M1V、M4V、OGM RM、RMS、RMM、RMVB、IFO SWF、FLV、F4V、 ASF、PMF、XMB、DIVX、PART DAT、VOB、M2TS、TS、PS
6:DTS,PTS,同步方法:
DTS(Decoding Time Stamp):即解码时间戳, 告诉播放器该在什么时候解码这一帧的数据 PTS(Presentation Time Stamp):即显示时间戳, 告诉播放器该在什么时候显示这一帧的数据。 同步方法: Audio Master:同步视频到音频 Video Master:同步音频到视频 External Clock Master:同步音频和视频到外部时钟。