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、MPEGMP4、WMV、MOV、3GPM2V、M1V、M4V、OGMRM、RMS、RMM、RMVB、IFOSWF、FLV、F4V、ASF、PMF、XMB、DIVX、PARTDAT、VOB、M2TS、TS、PS

6:DTS,PTS,同步方法:

DTS(Decoding Time Stamp):即解码时间戳,告诉播放器该在什么时候解码这一帧的数据
PTS(Presentation Time Stamp):即显示时间戳,告诉播放器该在什么时候显示这一帧的数据。
同步方法:Audio Master:同步视频到音频Video Master:同步音频到视频External Clock Master:同步音频和视频到外部时钟。

参考免费课程链接:https://ke.qq.com/course/417774?flowToken=1040954

音视频学习之基础概念整理(rgb/yuv,pcm,采样频率,帧率,码率,i帧p帧b帧,dts/pts)相关推荐

  1. 音视频学习之时间戳相关整理(时间基tbr,tbn,tbc)

    1: I帧/P帧/B帧 I帧:I帧(Intra-coded picture, 帧内编码帧,常称为关键帧)包含⼀幅完整的图像信息,属于帧内编码图像,不含运动⽮量,在解码时不需要参考其他帧图像.因此在I帧 ...

  2. 音视频测试的基础概念

    ​1 SDK SDK,全称Software Development Kit,即软件开发工具包,研发工程师为辅助开发某类软件的相关范例和工具的集合,使用SDK可提高开发效率,更方便简单的接入某个功能,避 ...

  3. 音视频学习之ffmpeg时间戳相关整理(时间基tbr,tbn,tbc)

    1: I帧/P帧/B帧 I帧:I帧(Intra-coded picture, 帧内编码帧,常称为关键帧)包含⼀幅完整的图像信息,属于帧内编码图像,不含运动⽮量,在解码时不需要参考其他帧图像.因此在I帧 ...

  4. Android音视频开发---0基础入门准备篇

    文章目录 0,题记 1,学习路线 2,学习目标 任务列表 基础知识 FFmpeg 3,开始音视频开发必备的技能 1,C语言. 2,Linux. 3,基本的Linux编译执行命令,以及vim操作. 4, ...

  5. Android音视频学习系列(六) — 掌握视频基础知识并使用OpenGL ES 2.0渲染YUV数据

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

  6. Android音视频学习系列(五) — 掌握音频基础知识并使用AudioTrack、OpenSL ES渲染PCM数据

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

  7. 音视频学习笔记1--音视频基础知识(1)

    音视频基础知识 1 音视频开发是什么? 2 音视频数据处理流程 2.1 音视频数据采集 2.2 封装与解封装 2.3 音视频输出 2.4 音视频同步 3 视频中的基础概念 3.1 视频码率 3.2 视 ...

  8. Android音视频 - 学习路线概览

    PS 我们上一个系列 - OpenGL ES 暂告一段落,如果你对相机滤镜感兴趣,可以参看之前的文章. 从本篇开始呢,开始记录Android音视频的相关知识. 学习路线概览 Android音视频的基础 ...

  9. android 键编译,Android 音视频学习系列 (四) 一键编译 32/64 位 FFmpeg 4.2.2

    前言 2020/5/20 增加了硬件解码编译脚本 编译环境 Centos + NDK20b + FFmpeg4.2.2 + Android-21/16 2020/4/26 更新了编译 64 位脚本 编 ...

  10. Android音视频学习系列(七) — 从0~1开发一款Android端播放器(支持多协议网络拉流本地文件)

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

最新文章

  1. C言语教程第五章:函数(1)
  2. Spring MVC全局异常后返回JSON异常数据
  3. jdbc mysql 字符集_JDBC对Mysql utf8mb4字符集的处理
  4. VTK:Utilities之ArrayWriter
  5. ChaiNext:大盘调整,主流币种还未稳住阻力位
  6. php和python-PHP和Python如何选择?或许可以考虑这三个问题
  7. hdu3394--Railway(点的双连通分量)
  8. Laravel 跨域问题解决
  9. DocsBuilderGUI 工具使用介绍
  10. java对接快递单号查询自动识别api接口,调用代码示例
  11. 2021中国机器人操作系统(ROS)暑期学校-转载
  12. thinkphp使用ajax、jquery、Mysql实现了简单的客户端通信功能
  13. UGUI_03_补充之_Image的属性(image type这个属性simple、Sliced、tiled、filled样式详解)
  14. 冰山理论(理解笔记)
  15. 观察 :人工智能与伦理道德
  16. 基于FPGA的电子计算器设计(下)
  17. NitroSense无法打开(ACER)
  18. 官方消息:即将开始退钱
  19. 测试岗/测试开发岗面试真题及参考答案
  20. IDEA启动Nacos配置SOCKS代理

热门文章

  1. python中的pandas库如何读数据_Python之Pandas库学习(二):数据读写
  2. c语言打印long double,C/C++printf输出int、long、longlong、double、longdouble、string等
  3. android 实现男女按钮选择
  4. Chrome和edge浏览器书签本地路径以及批量修改书签
  5. 3dmax 模型导出单位设置问题
  6. 不确定性管理,更需要领导力
  7. 【总结】1147- 一文吃透 Webpack 核心原理
  8. 中兴新支点操作系统上两个方便的小工具
  9. java suprious wakeup_Java生产消费问题与虚假唤醒(spurious wakeup)
  10. 树莓派能做什么?如何使用树莓派