我正在为每一帧使用 JPEG 压缩技术编写视频编解码器。到目前为止,我已经对 YUV、DCT 和量化 DCT(编码和解码)进行了编码。我也已经编码了 YUV422 编码,但我不明白如何进行逆向(解码)。
为了计算每个像素的 YUV,我使用了以下等式:
编码:
Y = 0.299 * R + 0.587 * G + 0.114 * B
U = -0.1687 * R - 0.4187 * G + 0.5 * B + 128
V = 0.5 * R - 0.4187 * G - 0.0813 * B + 128
解码:
R = Y + 1.402 * (V - 128)
G = Y - 0.34414 * (U - 128) - 0.71414 * (V - 128)
B = Y + 1.772 * (U - 128)
这个方程做得很完美。
现在要进行子采样编码,我将图像编码为 YUV,计算 2 个相邻像素的总和,然后将结果除以 2。结果是为 2 个像素设置的。
前任 :
为简单起见,我将采用 0 到 255 之间的像素值(不使用 RGB 分量)。
就在下面:2个具有相同结果的示例。
Pixel_1 = 15, Pixel_2 = 5 -> (Pixel_1 + Pixel_2) / 2 = 10
Pixel_3 = 10, Pixel_4 = 10 -> (Pixel_3 + Pixel_4) / 2 = 10
如果我将这个方程应用于我的 YUV 图像的所有像素,我会得到一个新图像,但这次是在 YUV422 子采样中编码的。
所以我想知道如何从 YUV422 图像中取回 YUV 图像。我上面的例子表明,不可能取回原始的 YUV 图像,因为有很多组合会导致相同的结果(此处为 10)。但是,我认为有一种方法可以获得、给予或获取一些相同的原始 YUV 像素值。有人可以帮助我吗?我真的迷路了。非常感谢您的帮助。