ffmpeg(1)-图片相关知识

发布于:2025-03-30 ⋅ 阅读:(38) ⋅ 点赞:(0)

1 图片格式

1.1 RGB(红、绿、蓝)

描述:通过红(R)、绿(G)、蓝(B)三个颜色通道组合表示颜色,是最常见的屏幕显示格式。

位数:通常每个通道占8位(0-255),共24位(如RGB24),可表示约1677万种颜色。

变体
RGB565:16位格式(R占5位,G占6位,B占5位),用于低带宽场景。
RGB888:24位标准格式(每个通道8位)。
RGBX:类似RGB,但包含一个未使用的填充字节(例如32位存储中的空位)。

应用场景:显示器、摄像头、网页图像(如JPEG、PNG)。

常见格式:JPEG、BMP、PNG(支持RGB)。

排列方式
rgb rgb rgb rgb
rgb rgb rgb rgb ;
rgb三个是连续的,每个分量占一个字节,也就是说每个像素是3个字节

1.2 RGBA(红、绿、蓝、透明度)

描述:在RGB基础上增加Alpha通道(A),表示透明度(0为完全透明,255为不透明)。

位数:32位(每个通道8位)。

应用场景:需要透明或半透明效果的图像(如UI图标、网页设计)。

常见格式:PNG、WebP、TIFF。

1.3 CMYK(青、品红、黄、黑)

描述:通过减法混色原理表示颜色,用于印刷领域。

位数:通常每个通道占8位,共32位。

特点:与RGB不同,CMYK颜色范围更小,不适合直接用于屏幕显示。

应用场景:印刷品(如海报、书籍)、专业设计软件(如Photoshop)。

常见格式:PDF、TIFF。

1.4 灰度(Grayscale)

描述:仅用单通道表示亮度,从黑到白(0为黑,255为白)。

位数:通常8位(256级灰度),也有更高位深(如12/16位)。
文件格式支持
PNG:支持 8/16 位灰度,支持无损压缩。
JPEG:支持 8 位灰度,有损压缩。
TIFF:支持 8/16/32 位灰度,支持无损压缩。
PGM(Portable Gray Map):专为灰度设计的简单格式。

Grayscale8是一个像素8位占一个字节(0-255,值越大越亮),Grayscale16是一个像素占16位占2个字节,Grayscale12是每个像素1.5个字节(内存不对齐)

1.5 二值图像(Binary/Bitmap)

描述:每个像素仅1位(0或1),表示纯黑或纯白。

应用场景:文字扫描(OCR)、简单图标、传真。

常见格式:TIFF(支持1位深度)、BMP。

1.6 YUV(亮度与色度分离)

描述:将亮度(Y)和色度(U/V)分离,广泛用于视频压缩。

变体
YUV420:色度通道采样率降低(节省带宽),用于H.264/HEVC视频编码。每个像素1.5个字节
YUV444:全色度采样,质量更高。每个像素3个字节

应用场景:视频流(如MPEG、H.265)、电视信号(NTSC/PAL)。

常见格式:视频文件(MP4、AVI)、摄像头原始数据。

排列方式如果是yuv420p,前面wh是Y,紧跟着后面的(w/2)(h/2)是u,紧跟着的是(w/2)*(h/2)是v.

Y(亮度)
在广播标准(如 ITU-R BT.601)中,Y 的取值范围是 16 到 235,而不是 0 到 255。
Y = 16 表示黑色,Y = 235 表示白色。
这种范围设计是为了避免信号过载或欠载,预留了“头尾”空间。

U 和 V(色度):
U 和 V 的取值范围是 16 到 240,但它们的中心点是 128。
当 U = 128 和 V = 128 时,表示无色差(灰色)。[-128,128]
U 和 V 偏离 128 时,分别表示蓝色和红色的色度偏移。

1.7.索引颜色(Indexed Color)

描述:使用调色板(Palette)存储有限颜色,每个像素保存调色板索引值。

位数:通常8位(最多256色),也可更少(如4位16色)。

应用场景:低颜色复杂度的图像(如卡通、老式游戏)。

常见格式:GIF、PNG(支持索引颜色)。

1.8 高位深度格式

描述:每个通道使用更多位数存储,提升颜色精度。

变体
16位/通道:如RGB48(16位x3通道),用于专业摄影和医学成像。
浮点格式:如RGB32F(32位浮点数/通道),用于HDR(高动态范围)图像。

应用场景:HDR渲染、科学成像(如天文摄影)、电影后期制作。

常见格式:EXR、TIFF、RAW。

2 PSNR 的核心原理

2.1 信号与噪声的定义:

信号:原始图像或视频的像素值。
噪声:处理后信号与原始信号之间的差异(即失真)。

2.2 数学公式:

在这里插入图片描述

2.3 物理意义:

PSNR 值越高,表示处理后的信号质量越好(失真越小)。
典型范围:

>30 dB:质量较好(人眼难以察觉明显失真)。
20~30 dB:质量一般(可见失真但可接受)。
<20 dB:质量较差(明显失真)。

PSNR 的替代方法
SSIM(结构相似性):考虑亮度、对比度、结构相似性,更贴近人眼感知。
VMAF(Netflix 视频多方法评估融合):结合多种指标,适用于流媒体质量评估。
无参考指标(如 NIQE、BRISQUE):无需原始信号,直接评估处理后的质量。

3 代码使用

3.1 源码

电梯:源码
白嫖:https://gitee.com/mqinglang/qtopen-source

3.2 功能

以下功能是使用QT实现的:

  • rgb/yuv/r/g/b等格式文件或数据,qt没法直接加载和现实,需要转换成rgb格式数据使用QImage进行包装和现实。
  1. 显示纯原始数据图像(RGB,yuv420p)或者jpg等常见的格式
  2. rgb24分离r/g/b
  3. yuvp420 分割 yuv
  4. yuvp420转RGB24
  5. rgb24转yuvp420
  6. yuv420p转灰度
  7. yuv420亮度减半
  8. PSNR-质量评价
  9. 支持直接将文件拖拽到软件上显示

注意:如果是原始数据比如.rgb等,需要在名称上加上分辨率比如img_256x256.rgb。如果没加上需要手动指定分辨率*
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到