gpt4 book ai didi

c++ - libjpeg 是否支持解码中断?

转载 作者:行者123 更新时间:2023-11-28 01:12:40 25 4
gpt4 key购买 nike

我正在使用 libjpeg 解码 jpeg 文件。在解码大图像时,用户可能会切换到另一个 jpeg 文件,那么 libjpeg 是否支持解码中断?非常感谢!

最佳答案

Libjpeg 有一个 I/O suspension feature .所以是的,您可以暂停编码/解码过程(并稍后恢复),或者只是中断它(不希望以后继续)。

您可以为 libjpeg 提供自定义的输入例程(通过设置一个 jpeg_source_mgr 结构),然后使用 I/O Suspension由 libjpeg 提供。

引用 libjpeg 文档,暂停非常简单:

For decompression suspension, use a fill_input_buffer() routine that simply returns FALSE (except perhaps during error recovery, as discussed below). This will cause the decompressor to return to its caller with an indication that suspension has occurred.

暂停可能发生在早期阶段(比如调用 jpeg_read_header 时)。也来自文档:

This can happen at four places :

jpeg_read_header(): will return JPEG_SUSPENDED.
jpeg_start_decompress(): will return FALSE, rather than its usual TRUE.
jpeg_read_scanlines(): will return the number of scanlines already completed (possibly 0).
jpeg_finish_decompress(): will return FALSE, rather than its usual TRUE.

暂停实现了一些回溯,以提供一种“恢复”编码/解码过程的方法。它可能很昂贵(我对此一无所知),因此您可以对其进行测试,看看它是否符合您的需求。

关于c++ - libjpeg 是否支持解码中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1598413/

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