DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

定义
下面是两者在ffmpeg中的定义

AV_PIX_FMT_YUV420P,   ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)

AV_PIX_FMT_YUVJ420P,  ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range
注:这里不讨论相同点。

区别
区别的表现
两者的不同在于,颜色空间不同。
AVCOL_RANGE_JPEG

/**
* MPEG vs JPEG YUV range.
*/
enum AVColorRange {
 AVCOL_RANGE_UNSPECIFIED = 0,
 AVCOL_RANGE_MPEG        = 1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges
 AVCOL_RANGE_JPEG        = 2, ///< the normal     2^n-1   "JPEG" YUV ranges
 AVCOL_RANGE_NB,              ///< Not part of ABI
};

YUVJ420P的字面含义是“使用了JPEG颜色范围的YUV420P,像素使用表示颜色的数值范围发生了变化。
YUV420p的像素颜色范围是[16,235],16表示黑色,235表示白色
YUVJ420P的像素颜色范围是[0,255]。0表示黑色,255表示白色

从这里来看,貌似是YUVJ420P表示的更准确一下。

区别的缘由
YUV420p对应的是电视。
YUVJ420P对应的是显示器。

灰阶
何谓灰阶?通常来说,液晶屏幕上人们肉眼所见的一个点,即一个像素,它是由红、绿、蓝(RGB)三个子像素组成的。每一个子像素,其背后的光源都可以显现出不同的亮度级别。而灰阶代表了由最暗到最亮之间不同亮度的层次级别。这中间层级越多,所能够呈现的画面效果也就越细腻。以8bit面板为例,能表现2的8次方,等于256个亮度层次,我们就称之为256灰阶。LCD屏幕上每个像素,均由不同亮度层次的红、绿、蓝组合起来,最终形成不同的色彩点。也就是说,屏幕上每一个点的色彩变化,其实都是由构成这个点的三个RGB子像素的灰阶变化所带来的。

电脑如果想显示准确的色彩,那么必须要0-255灰阶全部齐全。灰阶的损失,就意味着色彩的损失。 对于PC主机,灰阶的输出是0-255。灰阶输出为0的情况下,显示全黑画面;灰阶为255的情况下,显示全白画面。液晶显示器为了适应PC主机,所可接受的灰阶信号范围同样是0-255。

256个灰阶输出图,如果PC接电视,必然会有13%的灰阶损失 而液晶电视是不同的,它的灰阶范围是16-235,当接收到信号16时,液晶电视将其还原成白色;当接收到信号235时,显示全白画面。电视的输入设备,比如说有线电视信号、DVD影碟机等输出的也是16-235的灰阶信号。 液晶电视如果接收到了低于16的信号,会被认为是干挠,将不被显示;如果接收到了高于235的信号,大部分液晶电视只能做削波处理,即仍当做235信号来处理。简单点说,就是0-15全部显示纯黑,236-255全部显示纯白,中间的过渡全部损失。

(上面这一段是从“液晶电视与液晶显示器的区别”中截取的一段)

总结
没啥太大的区别。
如果偏色不严重,你也可以对客户解释说是显示器的色差,而不是你的程序的问题。

posted on   DoubleLi  阅读(1516)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2015-01-05 Darwin Streaming Server Relay Setting
2015-01-05 Darwin Streaming Server 6.0.3安装、订制、插件或模块
2015-01-05 shell脚本中常见的一些特殊符号和作用详解
2012-01-05 JavaScript:prototype属性使用方法
2012-01-05 关于JavaScript中apply与call的用法意义及区别
2012-01-05 Javascript的this用法总结
点击右上角即可分享
微信分享提示