找回密码
 加入我们
搜索
      
查看: 8897|回复: 52

[显卡] chroma upscaling色度放大,放大色彩分辨率色彩不改变吗

[复制链接]
发表于 2022-10-11 13:24 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-10-13 01:41 | 显示全部楼层
本帖最后由 hsmms 于 2022-10-13 16:52 编辑

chroma upscaling过程在主观上是属于脑补过程,但客观上chroma upscaling过程并不无脑是有一定的公式存在的。

就拿最常见的yuv 420来说(红色表示有信息量,黑色色表示没有信息量)。

那么按照YUV420表示就是这样
Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3
Y4U4V4 Y5U5V5 Y6U6V6 Y7U7V7

chroma upscaling过程就是通过映射像素的方法通过相邻的有的信息量去弥补缺失的信息量

结果如下(弥补的信息用绿色表示)

Y0U0V4 Y1U0V4 Y2U2V6 Y3U2V6
Y4U0V4 Y5U0V4 Y6U2V6 Y7U2V6

通过以上内容会发现chroma upscaling过程实际上并不是无脑的去脑补。而是通过相邻的像素进行一定的像素映射。目前chroma upscaling算法采样精度已经非常高的了,即使是最差的算法准确率已经达到99.99%以上了,肉眼已经是很难看出差距来了。如果你肉眼能看出差距来,那么必定是其它方面造成的因为我们看到的图像早就不是chroma upscaling而是已经转换成RGB图像了。

关于基于AI的chroma upscaling算法对比传统算法的优势,就采样形式来说两者之间不存在什么差距。两者之间最大的差距在色度锯齿,锐度的控制上AI算法会比传统的会好。
所以只要你保证足够的采样精度那么就可以避免色彩上的出错。

ps:颜色是由色度跟亮度组成的,相同的色度通过亮度的改变实现颜色上的渐变。所以相同色度本身并不需要考虑两个像素之间颜色渐变问题。

评分

参与人数 1邪恶指数 +3 收起 理由
细雨清风 + 3

查看全部评分

发表于 2022-10-11 13:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-10-11 13:39 | 显示全部楼层
正常实现再次也是bilinear, 谁用nearest neighbor啊
发表于 2022-10-11 13:58 | 显示全部楼层
颜色<大概率>会变的(解释起来比较繁琐,LZ 可以尝试自己写一段简单的代码去做 420 -> 444 + 1080p -> 4k + YUV -> RGB,这样就很容易理解原因了),除非满足:
1. 亮度分量使用 1x1 -> 2x2 的直接上采样,不参考任何临近像素
2. 首先进行色度上的 1x1 -> 2x2 的上采样,之后处理 chroma offset(色度相对于亮度通常情况下会有一个 0.5 像素的 offset,如果把这一步放在之后处理,并且想要在观感上和 1080p 完全一致,会比较繁琐)
3. 上一步中处理结束的色度分量使用 1x1 -> 2x2 的直接上采样,不参考任何临近像素
理论上(假设到这一步,播放器会输出图像给显示器),这时候 4k 和 1080p 的观感是完全一致的。简单使用 nearest neighbouring 可能得不到完全一致的观感。当然如果不讲究的话,直接使用 nearest neighbouring 进行 upsampling,4k 和 1080p 的观感区别应该不会很大
另外如果在显示输出的时候,使用了类似 clear type 这样的 display subpixel rendering,那么 4k 几乎不可能得到和 1080p 一致的观感
发表于 2022-10-11 14:02 来自手机 | 显示全部楼层
zhuifeng88 发表于 2022-10-11 13:39
正常实现再次也是bilinear, 谁用nearest neighbor啊

印象裡在html5年代以前,flash player處理chroma就是nearest neighbor
发表于 2022-10-11 14:05 来自手机 | 显示全部楼层
理解得不对。
对于420色度降采样(chroma subsampling)的视频内容,降级的是色彩通道的实际分辨率,亮度(灰度、灰阶)通道的信号是跟视频本身分辨率一致的,没有降级。如果把色彩通道直接1:4放大,那数学意义上可以说“抹消”了空间分辨率更高的亮度信号。

也就是说,原始视频(420压缩前)的色彩信息分辨率是被降级了的,这个不是通过像素数量体现的,而是通过颜色失真体现的。色度降采样是一种从模拟信号时代的视频压缩传输(广播的电视信号)沿用下来的 有损压缩 模式,色彩信息是不可逆地丢失了的。

那么,所谓的色度“提升”,实际上就是用算法反向补偿,试图降低因为原始色彩信息丢失带来的色彩乃至画面失真(现在的技术,尤其强调降低容易被人的视觉规律和认知特点感受到的失真),同时切记,因为原始信息量的损失,这种补偿的本质是脑补,甚至脑补都不是,而是裱糊。这里面最极端的就是PC上madvr渲染器的NGU模式,用神经网络模式的AI尽量“脑补”“假如没有经过色度降采样的原始画面应该是怎样的”,以及索尼带xr芯片的电视,也有这种AI补偿功能。
大多数色度提升算法不含AI元素,只是机械套用数学公式而已。

实际上,色度降采样是一个非常古老和某种意义上应该过时的有损压缩技术,基于数字编码解码的当代有损压缩技术,比它的压缩效率(同等视频文件体积下画质变差多少)要好很多。只不过因为视频行业的标准惯性,所以一直沿用。

评分

参与人数 1邪恶指数 +2 收起 理由
细雨清风 + 2

查看全部评分

发表于 2022-10-11 14:20 | 显示全部楼层
只能说,大尺度上不会有显著改变。

但因为重采样算法的不同,像素层次会有轻微差异,在色彩过渡剧烈的地方可能有显著差异。
发表于 2022-10-11 14:50 | 显示全部楼层
本帖最后由 hsmms 于 2022-10-11 14:58 编辑

说会变的,请你们先把抖动选项算法给关了

还有跟本不存在所谓的等比例放大,因为视频图像是复杂的跟本不存在可以等比例放大的场景。
发表于 2022-10-11 14:52 | 显示全部楼层
本帖最后由 hsmms 于 2022-10-11 15:00 编辑
zhuifeng88 发表于 2022-10-11 13:39
正常实现再次也是bilinear, 谁用nearest neighbor啊


有,OPPO 蓝光机


这是madshi对于oppo的输出源作出的测试结果


Tested with "Output Resoultion" set to "Source Direct".

1080p SDR Blu-Ray:

- 4:2:0 and 4:2:2 settings produce 4:2:2 output

- Auto and Auto-Safe settings produce 4:4:4 output

- with 4:2:2 output, output bitdepth is always 10/12 bit

- with 4:4:4 output, the bitdepth option is effective, with Auto producing 10/12 bit output

- the chroma channel is slightly blurred in X direction and shifted to the left (probably bilinear resampling)

- the chroma channel is upscaled from 4:2:0 to 4:2:2 using bilinear

- the chroma channel is upscaled from 4:2:2 to 4:4:4 using nearest neighbor

- with 4:4:4 8bit output, the luma channel is perfect, otherwise the most signifcant 8 bits are perfect, the other bits are a bit "weird"

4K HDR Blu-Ray 24fps:

- 4:2:0 and 4:2:2 settings produce 4:2:2 output

- Auto and Auto-Safe settings produce 4:4:4 output

- output bitdepth is always 10/12 bit

- the chroma channel is slightly blurred in X direction and shifted to the left (probably bilinear resampling)

- the chroma channel is upscaled from 4:2:0 to 4:2:2 using nearest neighbor

- the chroma channel is upscaled from 4:2:2 to 4:4:4 using nearest neighbor

- the luma channel is always perfect

4K HDR Blu-Ray 60fps:

- 4:2:0 and Auto-Safe settings produce 4:2:0 output

- 4:2:2, 4:4:4 and Auto settings produce 4:2:2 output

- output bitdepth is always 10/12 bit

- with 4:2:0 output, the chroma channel is blurred in X direction (probably bilinear resampling)

- with 4:2:2 output, the chroma channel is slightly blurred in X direction and shifted to the left (probably bilinear resampling)

- the chroma channel is upscaled from 4:2:0 to 4:2:2 using nearest neighbor

- the luma channel is always perfect
 楼主| 发表于 2022-10-11 15:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-10-11 15:42 | 显示全部楼层
本帖最后由 gartour 于 2022-10-11 15:46 编辑
ztwindwalker 发表于 2022-10-11 14:05
理解得不对。
对于420色度降采样(chroma subsampling)的视频内容,降级的是色彩通道的实际分辨率,亮度( ...


第二段说得有点绕。

实际就是一个重采样和降采样的区别。

通常人们接触理解的分辨率降低,4个像素合并为一个像素,合并前的每一个像素都对合并后的像素有权重影响,这是重采样。

yuv420的色彩降采样,色彩层4个像素丢弃3个,只留一个,丢弃的像素对保修的像素没有影响。

但不管是重采样还是降采样,失真都是存在的。



但是,大多数图像,尤其是色块内部,我认为不会出现可肉眼感知的颜色变化。边缘可能能看出来。

如果一个r255 g0 b0的红屏,有谁给我说他看出了不同升采样算法下的颜色差异,我只能说,可能是火电导致的。
 楼主| 发表于 2022-10-11 15:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2022-10-11 15:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2022-10-11 16:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-10-11 16:17 | 显示全部楼层
本帖最后由 hsmms 于 2022-10-11 16:21 编辑
白嫖圣王 发表于 2022-10-11 15:31
OPPO 蓝光机在1080P与4K下用nearest neighbor与bilinear处理色彩拉伸,为什么呢?说明这俩算法在1080P与4 ...


别想太多,就是技术太烂只能用芯片提供的算法。

还有别神话碟机,如今的碟机就是跟不上时代的产物罢了。你以为OPPO为什么会停产?就是没有什么技术无法跟其它产品拉开差距。
 楼主| 发表于 2022-10-11 16:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-10-11 16:22 | 显示全部楼层
白嫖圣王 发表于 2022-10-11 16:20
oppo蓝光机不是很受烧友追捧的吗?

追捧?那是因为大家都是半径八两罢了。而不是OPPO有多好。
 楼主| 发表于 2022-10-11 16:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-10-11 16:30 | 显示全部楼层
白嫖圣王 发表于 2022-10-11 16:28
所以,oppo用两个最“原始”最“简单”的算法就出来做碟机卖发烧友了?怪不得碟机部门都解散了。  ...

所以也就是为什么没有人拿碟机去做chroma upscaling以及RGB转换的原因。而是选择让电视机去做。
发表于 2022-10-11 17:00 | 显示全部楼层
白嫖圣王 发表于 2022-10-11 16:15
一个色彩像素的信息拉伸为四个再输出,如果颜色变了,这不就是出错了吗?
每四个Y,UV都只剩一个色彩信号 ...

但是那个“剩下的”一号红色,附近“剩下的”可能不是一号红色,那脑补一号红色那组被丢弃的三个的时候,是不是可以参考附近“剩下的”那些颜色呢?
不过实际肉眼看,应该很难看出区别
 楼主| 发表于 2022-10-11 18:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-10-11 18:40 | 显示全部楼层
白嫖圣王 发表于 2022-10-11 16:15
一个色彩像素的信息拉伸为四个再输出,如果颜色变了,这不就是出错了吗?
每四个Y,UV都只剩一个色彩信号 ...

是这样的,chroma 相对于 luma 一般来讲有一个 offset,通常是 +-0.5 pixel
这样导致某个位置上的 chroma 的 1x1 -> 2x2 和 luma 的 2x2 永远没办法对齐,就算是用 nearest neighbouring, 也要看 pixel 坐标的 rounding 是怎么做的,一般来讲总会有一些地方对不齐。此外,这个 +-0.5 pixel 的 offset 通常也不会用 nearest neighbouring,最常见的做法是用 >=2 taps 的 1D/2D filter 来得到
YUV420 这个 chroma format 不是为了让颜色正确,而是为了让颜色看起来差不多正确,所以引入一些误差是可以接受的。这里引入 +- 0.5 pixel 的 offset 是为了让绝大多数场景看起来更好,牺牲了小部分场景的准确度
 楼主| 发表于 2022-10-11 19:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-10-11 19:38 | 显示全部楼层
本帖最后由 hsmms 于 2022-10-11 19:39 编辑
白嫖圣王 发表于 2022-10-11 19:02
chroma 相对于 luma 一般来讲有一个 offset,通常是 +-0.5 pixel

意思是chroma和luma对不上吗?为什么会 ...


为了更好的压缩率表现。
chroma shift一般只会出现在图像处理当中,chroma upscaling下会有但是如今我们常见的chroma upscaling算法是基本上很难会碰到这问题。再加上好的chroma upscaling算法会做chroma shift的修复。

实际上上面很多问题跟chroma upscaling本身没有关系了,更多的是编码存储上的问题。
 楼主| 发表于 2022-10-11 20:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-10-11 20:10 | 显示全部楼层
白嫖圣王 发表于 2022-10-11 20:04
哦,所以chroma upscaling选择哪个算法“性价比”好点呢?

实际上人眼是很难看出区别来的,只有在某些特定的场景下你或许能看出细微的差距来。所以chroma upscaling的设置应该根据其它设置来考虑。在保证其它影响大的选项算法开高的前提下选择规格更高的chroma upscaling算法,但你也可以不开那么高。

哪个性价比最高?NGU low或者med就足够了。
发表于 2022-10-11 20:19 | 显示全部楼层
白嫖圣王 发表于 2022-10-11 20:04
哦,所以chroma upscaling选择哪个算法“性价比”好点呢?

说真的跟本没必要纠集chroma upscaling的问题,反正又看不出来。比如把心思放在其它方面
 楼主| 发表于 2022-10-11 20:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-10-11 20:28 | 显示全部楼层

不如研究这个

Snipaste_2022-10-11_20-24-55.jpg



 楼主| 发表于 2022-10-11 20:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2024-9-22 19:41 , Processed in 0.016111 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表