jpeg_prog_decode_ac_refine treated ZRL (run=15, size=0) as run=16 and
reused the skip loop, which kept consuming correction bits for non-zero
coefficients after the 16th zero-history coefficient. Those bits belong
after the next Huffman symbol (ITU T.81 G.1.2.3, libjpeg
decode_mcu_AC_refine), so the bitstream desynchronised: many progressive
JPEGs, including plain `cjpeg -progressive` output, failed to load or
decoded with wrong pixels.
Skip `run` zeros while refining non-zeros on the way, write the new value
(0 for ZRL) at the next zero, and stop, matching libjpeg's structure.
Add tests/test_image_decode with two cjpeg-generated fixtures that fail
on the old decoder (wrong pixels for grayscale, NULL for 4:2:0) and are
bit-exact with djpeg after the fix. Wire it into `make test`.
(cherry picked from commit 50ed0a4c73)
90 lines
2.0 KiB
Plaintext
90 lines
2.0 KiB
Plaintext
/ds4
|
|
/ds4-server
|
|
/ds4-bench
|
|
/ds4-eval
|
|
/ds4-agent
|
|
/ds4_native
|
|
/ds4_agent_test
|
|
/ds4_server_test
|
|
/ds4_test
|
|
/ds4flash.gguf
|
|
/TODO.md
|
|
/gguf
|
|
/core
|
|
/core.*
|
|
/tests/test_engine_mgpu_placement
|
|
/tests/test_engine_mgpu_runtime
|
|
/tests/test_engine_mgpu_refusal
|
|
/tests/test_engine_correctness
|
|
/tests/test_gpu_args
|
|
/tests/test_gpu_lookup_cache_strict
|
|
/tests/test_gpu_model_cache
|
|
/tests/test_gpu_xdev
|
|
/tests/test_cuda_mixed_batch
|
|
/tests/test_cuda_session_batch
|
|
/tests/cuda_long_context_smoke
|
|
/tests/test_layer_pack
|
|
/tests/test_metal_session_batch
|
|
/tests/test_metal_tp_spec
|
|
/tests/test_metal_tp_cancel
|
|
/tests/test_metal_moe_prefill
|
|
/tests/test_metal_ssd_experts
|
|
/tests/test_metal_command_memory
|
|
/tests/test_metal_dense_mpp
|
|
/tests/test_mxfp4_cuda
|
|
/tests/test_mxfp4_dot
|
|
/tests/test_mxfp4_metal
|
|
/tests/test_q4k_dot
|
|
/tests/test_sampling
|
|
/tests/test_web_recovery
|
|
/tests/test_quality_api
|
|
/tests/test_cuda_q8_scratch
|
|
/tests/test_cuda_dspark_moe
|
|
/tests/test_session_state
|
|
/tests/test_session_state_gpu
|
|
/tests/test_tp_commands
|
|
/tests/test_tp_rdma
|
|
/tests/test_tp_tcp
|
|
/tests/test_tp_link
|
|
/tests/test_cuda_tp
|
|
/tests/test_cuda_tp_repack
|
|
/tests/test_metal_tp_bulk
|
|
/tests/test_glm53_kda
|
|
/tests/test_glm53_vision_engine
|
|
/tests/test_glm_attention
|
|
/tests/test_glm_attention_rocm
|
|
/tests/test_linux_memory
|
|
/tests/test_rocm_memory
|
|
/tests/test_qwen4_kernels
|
|
/tests/test_qwen4_moe_mm_specialize
|
|
/tests/test_qwen4_vision
|
|
/tests/test_deepseek4_vision_image
|
|
/tests/test_image_decode
|
|
/tests/test_deepseek41_metal
|
|
/tests/test_deepseek41_cuda
|
|
/tests/test_cuda_q8_rows
|
|
/tests/test_cuda_reductions
|
|
/tests/test_cuda_shared
|
|
/tests/test_cuda_ssd_cache
|
|
/tests/test_cuda_ssd_batch
|
|
/tests/test_cuda_ssd_repack
|
|
/tests/test_deepseek41_gguf
|
|
/tests/test_qwen4_ngrams
|
|
/tests/test_qwen4_ngram_state
|
|
/tests/test_deepseek41_graph
|
|
/tests/test_deepseek41_prefill
|
|
/tests/test_deepseek41_cli
|
|
/tests/test_engram
|
|
*.o
|
|
*.dSYM/
|
|
__pycache__/
|
|
*.pyc
|
|
/gguf-tools/libds4quants.dylib
|
|
/gguf-tools/libds4quants.so
|
|
/misc/
|
|
.*.swp
|
|
.DS_Store
|
|
|
|
/tests/test_qwen4_conv_parallel
|
|
/tests/test_q8_prefill_variants
|