AVFrame 数据格式

问题描述

我处理来自 AVFrame.data 的原始数据。此帧的像素格式为 AV_PIX_FMT_YUV420P。我想了解这些数据位于哪个值范围内。

似乎 UV(在 YUV 方案中)必须在 [-128,128] 范围内,CbCr(在 ycbcr 中)必须在 [0,255] 范围内。 FFmpeg 使用什么方案?

解决方法

FFmpeg 中 YUV 和 RGB 格式的所有像素分量值都是无符号的。根据特定的格式,类型可能不同(int、float),位深度也可能不同。

对于AV_PIX_FMT_YUV420P,Y 的严格范围是 16-235,U 和 V 的严格范围是 16-240,通常称为有限范围。 U 和 V 的中点通常为 128。

但是,也可以遇到全范围。