gpt4 book ai didi

c - 一次对多个扫描线使用 jpeg_write_scanlines 是否更好?

转载 作者:太空狗 更新时间:2023-10-29 15:36:00 25 4
gpt4 key购买 nike

使用 libjpeg(或 libjpeg-turbo)进行 JPEG 编码,我想知道是否有任何改进可以同时向 jpeg_write_scanlines 函数提供多个扫描线。我对 720x288 图像进行了一些测试,但一次处理整个图像时我只增加了 0.5%。

我猜这种增加只是由于调用堆栈开销的移除,但我期待更多,至少对于 libjpeg-turbo。

性能测试是使用 Callgrind(在 Valgrind 中)运行的,所以我可能遗漏了什么。或者我真的误解了 JPEG 编码器的工作原理。

最佳答案

JPEG 有一个行的最小高度,称为 MCU 高度。在没有二次采样(4:4:4 模式)的图像中为 8 行,如果对色度进行二次采样(4:2:0 模式)则为 16 行。

如果您向 libjpeg 提供这 8 或 16 行,它将能够一次处理整行。否则它需要做额外的簿记或缓冲。

一次写入多个 MCU 高度或整个图像,不会有什么坏处。

关于c - 一次对多个扫描线使用 jpeg_write_scanlines 是否更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18630717/

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