音视频基础概念

简介: 音视频基础概念


音视频录制过程



音视频播放过程


图像基础概念


  • 像素:像素是一个图片的基本单位,英文即 pixel。
  • 分辨率:是指图像的大小或尺寸。比如 1920x1080。
  • 位深:是指在记录数字图像的颜色时,计算机实际上是用每个像素需要的位深来表示的。比如红色分量用 8bit。
  • 帧率:在 1 秒钟时间里传输的图片的帧数,英文即 frames per second。
  • 码率:视频文件在单位时间内使用的数据流量,英文即 bits per second。
  • Stride:指在内存中每行像素所占的空间。为了实现内存对齐每行像素在内存中所占的空间并不一定是图像的宽度。比如分辨率 638x480 的 RGB24 图像,我们在内存处理的时候如果要以 16 字节对齐,则 6383/16=119.625 不能整除,因此不能 16 字节对齐,我们需要在每行尾部填充 6 个字节。就是(638+2->640), 6403/16=120。此时该图片的 stride 为 1920 字节。





RGB 格式

YUV 格式


与我们熟知 RGB 类似,YUV 也是一种颜色编码方法,它是指将亮度参量(Y:Luminance 或 Luma)和色度参量(UV:Chrominance 或 Chroma)分开进行表示的像素编码格式。这样分开的好处就是不但可以避免相互干扰,没有 UV 信息一样可以显示完整的图像,因而解决了彩色电视与黑白电视的兼容问题;还可以降低色度的采样率而不会对图像质量影响太大,降低了信号传输时对频宽(带宽)的要求。

YUV 分为两种格式,Packed 和 Planar。

Packed


Planar


YUV 采用 A:B:C 表示法来描述 Y,U,V 采样频率比例,下图中黑点表示采样像素点 Y 分量,空心圆表示采样像素点的 UV 分量。主要分为 YUV 4:4:4、YUV 4:2:2、YUV 4:2:0 这几种


YUV444P

YUV422P

YUV420P

YUV420SP


RGB 和 YUV 的转换-为什么解码出错显示绿屏?


R = Y + 1.402 (Y-128)
G = Y - 0.34414 (U-128) - 0.71414 (U-128)
B = Y + 1.772 (V-128)


解码失败时 YUV 三个分量都填 0 值,而有R=-126.598 G=135.45984 B=-126.228而 RGB 取值为[0,255],则有R=0 G=135 B=0,此时只有 G 分量有值,所以呈现为绿色。


YUV Stride 对齐问题


比如分辨率 638x480 的 YUV 图像,我们在内存处理的时候如果要以 16 字节对齐,则 638 不能被 16 整除,就需要在每行尾部填充 2 个字节,这就是 640,此时该图片的 Y stride 为 640 字节。


H264 编码

I 帧

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

  • I 帧图像采用帧内编码方式;
  • I 帧所占数据的信息量比较大;
  • I 帧图像是周期性出现在图像序列中的,出现频率可由编码器选择;
  • I 帧是 P 帧和 B 帧的参考帧(其质量直接影响到同组中以后各帧的质量);
  • I 帧是帧组 GOP 的基础帧(第一帧),在一组中只有一个 I 帧;
  • I 帧不需要考虑运动矢量;

PTS(Presentation Time Stamp)

PTS 主要用于表示解码后的视频帧什么时候被显示出来

DTS(Decode Time Stamp)

DTS 主要表示读入内存的 bit 流什么时候被送入解码器,也就是视频帧被解码的时间

相关文章
|
安全 网络安全 API
Apache虚拟主机的三种实现方式
Apache虚拟主机的三种实现方式
485 0
|
人工智能 Cloud Native 搜索推荐
【2025云栖大会】阿里云AI搜索年度发布:开启Agent时代,重构搜索新范式
2025云栖大会阿里云AI搜索专场上,发布了年度AI搜索技术与产品升级成果,推出Agentic Search架构创新与云原生引擎技术突破,实现从“信息匹配”到“智能问题解决”的跨越,支持多模态检索、百亿向量处理,助力企业降本增效,推动搜索迈向主动服务新时代。
397 0
|
9月前
|
SQL 存储 数据库
KingBase服务器优化:详解Kylin参数配置。
通过适当的调整和优化这些关键参数,你的Kylin可以运行得更加流畅和高效。就像一个经过精心调校的赛车,无论是在赛道的直道还是弯道上,都能展现出卓越的性能。希望这次深入参数“操控盘”的旅行,能让你更好地理解和优化你的Kylin配置。记住,优化是一个持续的过程,不断地试验和改进,你的Kylin才能越来越强大。
212 20
|
编解码 前端开发 JavaScript
前端移动端适配方案
【9月更文挑战第8天】前端移动端适配方案
697 0
|
存储 编解码 内存技术
RTMP协议详解及Wiresahrk抓包分析(二)
RTMP协议详解及Wiresahrk抓包分析
432 0
|
JavaScript Java 测试技术
基于Java的政府项目管理平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的政府项目管理平台的设计与实现(源码+lw+部署文档+讲解等)
165 0
|
芯片
第三章 作业(7BF)【计算机系统结构】
第三章 作业(7BF)【计算机系统结构】
410 0
|
存储 网络协议 网络安全
RTMP协议详解及Wiresahrk抓包分析(一)
RTMP协议详解及Wiresahrk抓包分析
1374 2
|
存储 编解码 缓存
音视频基础: I帧 P帧 B帧 GOP DIR PTS DTS 帧率 码率的介绍
音视频基础: I帧 P帧 B帧 GOP DIR PTS DTS 帧率 码率的介绍
1689 0
|
JSON 自然语言处理 网络协议
gRPC 接口调试利器,让你成为高效开发者
目前市面上能够兼容 gRPC 接口的接口调试与管理工具十分有限,而 gRPC 现已广泛应用于微服务架构中,并且可以预见的是,它会变得越来越流行。
gRPC 接口调试利器,让你成为高效开发者