• Show log

    Commit

  • Hash : fa2b6ea0
    Author : DRC
    Date : 2024-01-12T18:21:41

    Eliminate duplicate copies of jpeg_nbits_table
    
    ef9a4e05ba919494cbebe50e15f332de5ab97e82 (libjpeg-turbo 1.4.x), which
    was based on
    https://bug815473.bmoattachments.org/attachment.cgi?id=692126
    (https://bugzilla.mozilla.org/show_bug.cgi?id=815473), modified the C
    baseline Huffman encoder so that it precomputes jpeg_nbits_table, in
    order to facilitate sharing the table among multiple processes.
    However, libjpeg-turbo never shared the table, and because the table was
    implemented as a static array, f3a8684cd1c28e557d394470962a7a224c76ddbc
    (libjpeg-turbo 1.5.x) and 37bae1a0e977ee1ba769e6f0aa27e519ab6e58c6
    (libjpeg-turbo 2.0.x) each introduced a duplicate copy of the table for
    (respectively) the SSE2 baseline Huffman encoder and the C progressive
    Huffman encoder.
    
    This commit does the following:
    - Move the duplicated code in jchuff.c and jcphuff.c, originally
      introduced in 0cfc4c17b740cb2cbb11f9d85c8ab3745d5b913a and
      37bae1a0e977ee1ba769e6f0aa27e519ab6e58c6, into a header
      (jpeg_nbits.h).
    - Credit the co-author of 0cfc4c17b740cb2cbb11f9d85c8ab3745d5b913a.
      (Refer to https://sourceforge.net/p/libjpeg-turbo/patches/57).
    - Modify the SSE2 baseline Huffman encoder so that the C Huffman
      encoders can share its definition of jpeg_nbits_table.
    - Move the definition of jpeg_nbits_table into a C source file
      (jpeg_nbits.c) rather than a header, and define the table only if
      USE_CLZ_INTRINSIC is undefined and the SSE2 baseline Huffman encoder
      will not be built.
    - Apply hidden symbol visibility to the shared definition of
      jpeg_nbits_table, if the compiler supports the necessary attribute.
      (In practice, only Visual C++ doesn't.)
    
    Closes #114
    
    See also:
    https://bugzilla.mozilla.org/show_bug.cgi?id=1501523
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/libjpeg-turbo.git
    Git SSH git@git.kmx.io:kc3-lang/libjpeg-turbo.git
    Public access ? public
    Description

    Fork of libjpeg with SIMD

    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg_l thodg
    Tags