0.音视频编解码流程

一.图像基础概念

基础概念:分别率,像素,位深,码率(带宽),跨距Stride

一. 1920*1080 的分别率的 像素就是 1920 * 1080 = 200w多

二.每个色彩RGB   每个占8个bit 0-255 也可以为10bit比较贵

三.帧率越高  码率(带宽)越低

注:码率:视频文件在单位时间内使用的数据流量。比如1Mbps(bit/s)。

四. 三者不能同时兼顾

五.原始数据决定分辨率,ai是修复数据的,原始720p不能变为1080p

六.Stride跨距

■Stride:指在内存中每行像素所占的空间。为了实现内存对齐每行像素在内存中所占
的空间并不一定是图像的宽度。
■Stride就是这些扩展内容的名称,Stride也被称作Pitch,如果图像的每一行像素末尾拥
有扩展内容,Stride的值一定大于图像的宽度值,就像下图所示:
比如分辨率638x480的RGB24图像,我们在内存处理的时候如果要以16字节对齐,如果不够就补齐,但是他补全的padding的内容不会保存到本地

七.YUV

  • Y(亮度):负责形状和细节。灰值

  • U 和 V(色度):负责颜色本身。

■打包(packed)格式:将每个像素点的Y、U、V分量交叉排列并以像素点为单元连续的存放
在同一数组中,通常几个相邻的像素组成一个宏像素(macro-pixel)
■平面(planar)格式:使用三个数组分开连续的存放Y、U、V三个分量,即Y、U、V分别存
放在各自的数组中。

YUV420 是用的最多 (4+1 +1) / 4 = 1.5 字节 

YUV 4:2:0采样,每四个Y共用一组UV分量

YUV 4:4:4采样,每一个Y对应一组UV分量。

YUV 4:2:2采样,每两个Y共用一组UV分量。

YUV解码失败分量为000  转为RGB,可能会变成绿色

因为R 为 负数,G为整数 ,B也为负数

I P B帧的概念:

I帧(Intra coded frames):I帧不需要参考其他画面而生成,解码时仅靠自己就重构完整图像;

>I帧所占数据的信息量比较大;

>I帧是帧组GOP的基础帧(第一帧),在一组中只有一个I帧;

P 帧(Predicted frames根据本帧与相邻的前一帧(I帧或P帧)的不 同点来压缩本帧数据,同时利用了空间和时间上的相关性。 P帧属于前向预测的帧间编码。它需要参考前面最靠近它的I帧或P来解码。

B 帧(Bi-directional predicted framesB 帧图像采用双向时间预测, 可以大大提高压缩倍数。

二 音频基础概念:

没有经过压缩的 音频数据我们叫   PCM数据 
采样精度(采样深度):每个“样本点”的大小 常用的大小为8bit16bit24bit

■人耳能听见的声音 为 20Hz~20KHZ
但是计算机需要使用采样定理,两倍频率去采集,采集后可以再去还原出来的声音。

麦克风采集模拟世界20kh-》AD-》计算机采样2倍的20khz,48khz、44.1khz-》DA转换-》喇叭播放

音频每帧多少秒怎么算

2. 如果没有按照原本的 LR 或 LLLRRR 方式保存,会发生什么?

情况 1:声道错乱

  • 如果本来应该是 L R L R 交替的立体声,却变成了 L L R R 或其他顺序:

    • 声音会变"怪",左右声道的音频信息错位

    • 某些乐器的声音可能跑到错误的一边

    • 如果是人声,可能出现相位问题,听起来空洞或失真

情况 2:单声道变立体声

  • 如果本来是单声道(LLLLL),但强行按立体声(LR)保存:

    • 两个声道听到的是相同内容,但文件体积变大

    • 没有真正的立体声效果

下面这种就会和视频相差两秒就会出现,会出现画面和音频不一致的问题

常用音频编码:


MP3
AAC
AC3和EAC3杜比公司的方案

三.封装格式基础

封装格式(也叫容器)就是将已经编码压缩好的视频流、音频流及字幕按 照一定的方案放到一个文件中,便于播放软件播放。

比如:

视频Video:有H264/AVC压缩算法
音频Audio : 有AAC压缩算法
封装则使用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

为什么需要封装格式

1. 把不同的东西“装在一起”

视频、音频、字幕被整合在一个文件里
画面和声音完美同步
可以快速拖动到任何位置播放
播放器能识别格式,并正确解码播放
便于存储、分享和在网络上流式传输

H264+AAC封装为FLV或MP4是最为流行的模式

四. 音视频同步基础

DTS(Decoding Time Stamp)即解码时间戳,这个时间戳的 意义在于告诉播放器该在什么时候解码这一帧的数据。
PTS(Presentation Time Stamp)即显示时间戳,这个时间 戳用来告诉播放器该在什么时候显示这一帧的数据。
注: 当视频流中没有 B 帧时,通常 DTS PTS 的顺序是一致的。但存在B的时候两者的顺序就不一致了。
音视频同步方式:
Audio Master: 同步视频到音频
VideoMaster:同步音频到视频
ExternalClockMaster:同步音频和视频到外部时钟。
一般情况下 Audio Master  > External Clock Master  > Video Master
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐