01 音视频知识学习(视频)


  • 图像基础概念
csharp 复制代码
◼像素:像素是一个图片的基本单位,pix是英语单词picture的简写,加上英
语单词"元素element",就得到了"pixel",简称px,所以"像素"有"图像元素"
之意。
◼ 分辨率:是指图像的大小或尺寸。比如1920x1080。
◼ 位深:是指在记录数字图像的颜色时,计算机实际上是用每个像素需要的
位深来表示的。比如红色分量用8bit。
◼ 帧率:在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟
能够刷新几次。比如25fps表示一秒有25张图片。
◼ 码率:视频文件在单位时间内使用的数据流量。比如1Mbps。
◼ Stride:指在内存中每行像素所占的空间。为了实现内存对齐每行像素在
内存中所占的空间并不一定是图像的宽度
  • 1.1 像素
csharp 复制代码
像素是一个图片的基本单位,例如2500×2000的照片就是指横向有2500个像素点,竖向有2000个像素点,总共是500万
个像素,也俗称500万像素照片
  • 1.2 分辨率
csharp 复制代码
图像(或视频)的分辨率是指图像的大小或尺寸。我们通常用像素表示图像的尺寸。
例如2500×2000的照片就是指横向(宽)有2500个像素点,竖向(高)有2000个像素点。
常见的分辨率:
360P(640x360)、720P(1280x720)、1080P(1920x1080)、4K(3840x2160)、8K(7680x4320)
  • 1.3 位深
csharp 复制代码
我们看到的彩色图片,都有三个通道,分别为红(R)、绿(G)、蓝(B)通道。(如果需
要透明度则还有alpha分量)
通常每个通道用8bit表示,8bit能表示256种颜色,所以可以组成
256*256*256=16,777,216 = 1677万种颜色。
这里的8bit就是我们讲的位深。
每个通道的位深越大,能够表示的颜色值就越大,比如现在高端电视说的10bit色
彩,即是每个通道用10bit表示,每个通道有1024种颜色。1024*1024*1024约为
10,7374万色=10亿色, 是8bit的64倍。
常见的颜色还是8bit居多。
  • 1.4 帧率
csharp 复制代码
帧率即 FPS(每秒有多少帧画面),经常玩游戏的同学应该会对这个词很熟悉。我们玩游
戏时,FPS 帧率越高就代表游戏画面越流畅,越低则越卡顿。视频也是如此。
由于视觉图像在视网膜的暂时停留,一般图像帧率能达到24帧,我们就认为图像是连续
动态的。
电影帧率一般是 24fps(帧每秒);
电视剧一般是25fps;
监控行业常用 25fps;
音视频通话常用15fps;
帧率越高,画面越流畅,需要的设备性能也越高。
  • 1.5 码率
csharp 复制代码
◼ 视频文件在单位时间内使用的数据流量。比如1Mbps。
◼ 大多数情况下码率越高 分辨率越高,也就越清晰。但模糊的视频文件大小(码率)也
可以很大,分辨率小的视频文件可能也比分辨率大的视频文件清晰。
◼ 对于同一个原始图像源的时候,同样的编码算法,则码率越高,图像的失真就会越小,
视频画面就会越清晰
  • 2.1 YUV
csharp 复制代码
YUV也是一种颜色编码方法,它是指将亮度参量(Y:Luminance
或Luma)和色度参量(UV:Chrominance或Chroma)分开进行表示的像素编码格式。
◼ 这样分开的好处就是不但可以避免相互干扰,没有UV信息一样可以显示完整的图像,
因而解决了彩色电视与黑白电视的兼容问题;还可以降低色度的采样率而不会对图像
质量影响太大,降低了视屏信号传输时对频宽(带宽)的要求。
◼ Y Y共用一组UV分量
◼ 打包(packed)格式:将每个像素点的Y、U、V分量交叉排列并以像素点为单元连续的存放
在同一数组中,通常几个相邻的像素组成一个宏像素(macro-pixel)
◼ 平面(planar)格式:使用三个数组分开连续的存放Y、U、V三个分量,即Y、U、V分别存
放在各自的数组中


  • 2.2.1 YUV采样表示法
csharp 复制代码
◼ YUV采用A:B:C表示法来描述Y,U,V采样频率比例,下图中黑点表示采样像素点Y分量,
空心圆表示采样像素点的UV分量。主要分为 YUV 4:4:4、YUV 4:2:2、YUV 4:2:0 这几种
常用的类型
相关推荐
blasit8 小时前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
肆忆_1 天前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++
不想写代码的星星2 天前
虚函数表:C++ 多态背后的那个男人
c++
端平入洛3 天前
delete又未完全delete
c++
端平入洛4 天前
auto有时不auto
c++
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
哇哈哈20215 天前
信号量和信号
linux·c++
多恩Stone5 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
REDcker5 天前
WebCodecs VideoDecoder 的 hardwareAcceleration 使用
前端·音视频·实时音视频·直播·webcodecs·videodecoder
gihigo19985 天前
基于TCP协议实现视频采集与通信
网络协议·tcp/ip·音视频