gpt4 book ai didi

ffmpeg - RTP/MJPEG 流的默认量化表是什么?

转载 作者:行者123 更新时间:2023-12-04 22:45:56 24 4
gpt4 key购买 nike

我在从 ip-camera 解码 RTP/MJPEG 流时遇到了问题。

如 rfc2435 所述,量化表(对于 Q 值 1 <= Q <= 99)应根据这些默认表计算:

/*
* Table K.1 from JPEG spec.
*/
static const int jpeg_luma_quantizer[64] = {
16, 11, 10, 16, 24, 40, 51, 61,
12, 12, 14, 19, 26, 58, 60, 55,
14, 13, 16, 24, 40, 57, 69, 56,
14, 17, 22, 29, 51, 87, 80, 62,
18, 22, 37, 56, 68, 109, 103, 77,
24, 35, 55, 64, 81, 104, 113, 92,
49, 64, 78, 87, 103, 121, 120, 101,
72, 92, 95, 98, 112, 100, 103, 99
};

/*
* Table K.2 from JPEG spec.
*/
static const int jpeg_chroma_quantizer[64] = {
17, 18, 24, 47, 99, 99, 99, 99,
18, 21, 26, 66, 99, 99, 99, 99,
24, 26, 56, 99, 99, 99, 99, 99,
47, 66, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99
};

该算法导致画质不佳(vlc显示效果更好)。我查看了 ffmpeg 源代码,发现了类似的算法但表格不同:

static const uint8_t default_quantizers[128] = {
/* luma table */
16, 11, 12, 14, 12, 10, 16, 14,
13, 14, 18, 17, 16, 19, 24, 40,
26, 24, 22, 22, 24, 49, 35, 37,
29, 40, 58, 51, 61, 60, 57, 51,
56, 55, 64, 72, 92, 78, 64, 68,
87, 69, 55, 56, 80, 109, 81, 87,
95, 98, 103, 104, 103, 62, 77, 113,
121, 112, 100, 120, 92, 101, 103, 99,

/* chroma table */
17, 18, 18, 24, 21, 24, 47, 26,
26, 47, 99, 66, 56, 66, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99
};

我已将表格更改为 ffmpeg 表格,现在图片看起来很完美。那么,为什么这些表与 rfc2435 不同?我错过了什么?

最佳答案

不同的表格适合不同的内容。随着时间的推移,还会发现更好的表格。找到最好的表格实际上是使用人工判断质量的反复试验,然后根据您希望优化的内容类型进行权衡。 ffmpeg 也可能产生更大的文件。在最初编写 jpeg 规范时,可能无法接受更大的文件。

关于ffmpeg - RTP/MJPEG 流的默认量化表是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22356935/

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