gpt4 book ai didi

image - 为什么 JPEG 编码 8x8 方格图像会产生伪影?

转载 作者:行者123 更新时间:2023-12-01 09:10:02 26 4
gpt4 key购买 nike

我有以下 64x64 图像,它由随机着色的 8x8 方 block 组成。

enter image description here

现在,我通过 PHP 的 imagejpg() 函数推送此图像,默认情况下质量为 75%,我收到了这个结果,带有可见的伪像:

enter image description here

enter image description here

据我了解 JPEG,DCT 应用于各个 8x8 正方形,它们都是纯色。色度二次采样也有足够的分辨率来提供准确的颜色,所以这也不应该有影响。

为什么我会在 8x8 方 block 内看到人工制品?是否有可能使用 16x16 DCT? 8x8 的方 block 是在随机位置选择的,而不是从角落里选择的吗?是否有其他一些可能的原因会导致我的方 block 无法与 8x8 DCT 分区完美对齐?

谢谢!

最佳答案

我相信我已经弄明白了。 DCT 不应用于原始图像上的 8x8 block ,而是分别应用于每个 Y-Cb-Cr 颜色 channel 。 Y channel 没有被二次采样,但是Cb和Cr被二次采样了一半(4:2:0)。

这意味着一个实心的 8x8 正方形将只有 4 个水平 Cb 样本和 4 个垂直 Cb 样本。这不是 8x8。因此,当 DCT 划分 Cr 和 Cb channel 时,一个 8x8 部分将采用属于相邻方 block 的 Cb 和 Cr 样本。

我已将每个正方形的大小增加到 16x16,伪影消失了。

我仍然看到小的差一值,但我猜这可能是由于算法或类似算法中的舍入误差造成的。

关于image - 为什么 JPEG 编码 8x8 方格图像会产生伪影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41369338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com