音视频笔记(一)

207 阅读2分钟
  • 编码的本质是压缩 音视频的编码是容器,装着视频流和音频流。

最普遍的编码方式是H264/MPEG-4 AVC,是H263(ITU-T)和Mpeg1(ISO)两者的基础上制作的,鼻祖是H261编码 有损编码:快结构编码,也就是划分块,找出渐变块,记录其起始和中止位置与颜色。以压缩其空间。 无损编码:jpeg2000,是以图片的方式一帧一帧的存储的,占用空间特别大,常用于影院

H264:专门去除冗余的编码算法

- 划分宏块:

保存宏块上边和左边的像素,中间去掉的部分就是被压缩的部分 默认是1616的大小作为一个宏块,不过会根据内容复杂度做调整,最小是44 像素变化大,宏块小,变化小,宏块大。

人眼对亮度比较敏感,对色度不敏感。

- 为什么视频编码使用YUV而不是rgb:

rgb原理: 有红绿蓝三色叠加显示颜色,r、g、b三个分量各占8位。

Yuv原理: Y表示明亮度,u、v表示色度,优点是占用极少带宽,因为可以分开传输,rgb三个需要同时传输。

比如一个像素3个字节,4个像素的情况下,rgb需要(3*4)=12个字节,yuv需要(4+1+1)=6

y:u:v一般比为4:1:1

为4:2:2的yuv大小=wh+wh/2+wh/2=wh*2,宽高以Y(亮度)为主.

4:1:1 = wh+wh/4+wh/4 = wh*3/2,4个y用一个uv,叫YUV420.

yuv根据排列分为nv21和nv12等。

android使用nv21(yuv 420SP)

其他一般使用nv12(yvu I420)