




  ******
  exhale - ecodis extended high-efficiency and low-complexity encoder                 [exhale]

  Software Release Notes, Version History, Known Issues, Upcoming Feature Roadmap

   ******
  ****    The version of this distribution of the «exhale» software release is
  1.2.0 (official pub­lic major release) from December 2022. Please check
  www.ecodis.de regularly for new versions of this software. A summary of each
  version up to this release, a list of known issues with this release, and a
  roadmap of additional functionality are provided below. ****
  ****
  Chronological Version History ****
  ****    Version 1.2.0  Dec. 2022, this release ****
      * **** C API correction, some code sanitizing (issue 24, merge requests
        8&#x2013;11, J. Regan) ****
      * **** exhaleLib: code cleanup, very minor quality improvements in CVBR
        modes f and 5 ****
      * **** exhaleLib: 5% speedup of all modes, better target rate matching in
        CVBR mode g ****
      * **** exhaleLib: work around MinGW compilation hickup (issue 26; thanks, C.
        Degawa!) ****
  ****    Version 1.1.9  Dec. 2021 ****
      * **** exhaleApp: write encoder name and version as «udta» tool string into
        MP4 header ****
      * **** exhaleApp: optimize leading and trailing PCM read for gapless
        playback (issue 21) ****
  ****    Version 1.1.8  Oct. 2021 ****
      * **** some final code cleanup, small code corrections and editorial changes
        for this year ****
      * **** exhaleLib: minor stereo quality tuning for low rates, optional CBR
        mode via macro ****
  ****    Version 1.1.7  Aug. 2021 ****
      * **** minor tuning at low SBR rates, enabled SBR coding at 22050 Hz input
        sample rate ****
      * **** exhaleApp: added expert modes for loudness leveling, custom Intra
        frame interval ****
  ****    Version 1.1.6  May 2021 ****
      * **** minor quality tuning and support for delayless operation (media
        time=0) with SBR ****
      * **** exhaleApp: fixed very rare output file corruption after finishing
        encoding with SBR ****
      * **** exhaleApp: fixed compilation error under Fedora (issue 20) and stdin
        hickup issue ****
      * **** exhaleLib: fixed some quality issues in SBR modes, no changes in non-
        SBR modes ****
  ****    Version 1.1.5  Apr. 2021 ****
      * **** exhaleApp: correct print-out of Unicode file names and paths, minor
        code cleanup ****
      * **** exhaleLib: minor tuning of immediate playout frames, no changes to
        audio quality ****
      * **** makefile: support for compilation of Universal 2 binaries on MacOS™
        (C. Snowhill) ****
  ****    Version 1.1.4  Mar. 2021 ****
      * **** exhaleApp: removed LUFS/dBFS command arguments again, code now
        automatic ****
      * **** exhaleApp: consider the working instead of application path if no
        path is specified ****
      * **** exhaleLib: reduce enc. delay to closest integer multiple of frame
        length (issue 15) ****
      * **** exhaleLib: very minor tuning of transient coding especially on male
        speech signals ****
  ****    Version 1.1.3  Feb. 2021 ****
      * **** exhaleApp: allow specifying loudness (LUFS) and peak sample (dBFS)
        after preset ****
      * **** exhaleLib: write UsacConfig in immediate playout frames (increases
        compatibility) ****
  ****    Version 1.1.2  Jan. 2021 ****
      * **** further improved file interoperability and seekability with some
        playback software ****
      * **** exhaleLib: write all frames in «stss» data as immediate playout
        frames (issue 15) ****
  ****    Version 1.1.1  Dec. 2020 ****
      * **** slightly improved audio quality with SBR, better compatibility with
        some decoders ****
      * **** exhaleLib: increased frequency resolution of coded SBR envelopes,
        minor cleanup ****
      * **** exhaleLib: workaround for time differential coding bug in some xHE-
        AAC decoders ****
  ****    Version 1.1.0  Nov. 2020 ****
      * **** addition of basic SBR functionality for lower-rate coding down to 18
        kbps/channel ****
      * **** exhaleApp: add support for CVBR modes a&#x2014;g for encoding with
        SBR functionality ****
      * **** exhaleApp: show «ARM» in header and '-v' command on corresponding
        platforms ****
      * **** exhaleLib: basic 2:1 SBR encoding with ccfl = 2048, minor fixes and
        code cleanup ****
  ****    Version 1.0.8  Oct. 2020 ****
      * **** minor quality improvements at low and high rates, some license text
        clarifications ****
      * **** exhaleApp: slightly improved loudness calculation for low and high
        sampling rates ****
      * **** exhaleLib: improved audio quality a bit for the lower and higher-rate
        CVBR modes ****
      * **** License: removed references to BSD text, clarified disclaimer and
        contributor text ****
  ****    Version 1.0.7  Aug. 2020 ****
      * **** minor bugfixes in bit-rate control and higher-rate coding at 32 kHz
        sampling rate ****
      * **** exhaleApp: add support for CVBR mode 0 at codec sampling rates below
        44.1 kHz ****
      * **** exhaleApp: write complete MP4 «stss» data for improved compatibility
        (issue 13) ****
      * **** exhaleApp: higher accuracy of loudness estimation, better BS.1770-
        4 compliance ****
  ****    Version 1.0.6  July 2020 ****
      * **** bugfixes, improved quality on some transient signals, better decoder
        compatibility ****
      * **** exhaleApp: support for Extensible WAVE format, write MP4 «prol» data
        (issue 10) ****
      * **** exhaleApp: automatic downsampling of 48-kHz input to 32 kHz for CVBR
        mode 1 ****
      * **** exhaleLib: fine-tuning of psychoacoustic model for difficult
        transient input signals ****
  ****    Version 1.0.5  June 2020 ****
      * **** slightly reduced bit-rates with lower modes, better compatibility
        when using stdin ****
      * **** exhaleApp: support for Unicode text on Windows™, 44100 Hz with CVBR
        mode 1 ****
      * **** exhaleApp: automatic upsampling of low-sample-rate input, fixed
        reader (issue 9) ****
      * **** exhaleLib: optimized noise filling tool for slightly lower bit-rates
        at CVBR mode <4 ****
      * **** compilation: exhaleApp.exe -> exhale.exe (issue 8), support for Arm™,
        C header ****
  ****    Version 1.0.4  May 2020 ****
      * **** finalized basic joint-stereo and TNS coding functionality, quality
        and stability fixes ****
      * **** exhaleApp: support for 32000 Hz with CVBR mode 1, added '-v' version
        command ****
      * **** exhaleLib: completed audio quality fine-tuning for very tonal and
        transient signals ****
      * **** compilation: support for MinGW (issue 5) and cmake (via CMakeList
        files, issue 6) ****
  ****    Version 1.0.3  Apr. 2020 ****
      * **** extended basic joint-stereo coding functionality for mid/high rates,
        minor bugfixes ****
      * **** exhaleLib: band adaptive joint-stereo coding for all CVBR modes,
        fixed rare crash ****
      * **** exhaleLib: audio quality fine-tuning, especially for very tonal and
        transient signals ****
      * **** makefile: -std=c++11 to allow for compilation with older versions of
        gcc (issue 4) ****
  ****    Version 1.0.2  Mar. 2020 ****
      * **** added basic low/mid-rate joint-stereo coding functionality, bugfixes,
        and speedups ****
      * **** exhaleApp: support for input sampling rates of up to 48000 Hz with
        CVBR mode 2 ****
      * **** exhaleLib: frame adaptive joint-stereo preprocessing and coding (CVBR
        mode <5) ****
      * **** exhaleLib: accelerated R/D opt. coding, stability and quality fixes
        (issues 2 and 3) ****
  ****    Version 1.0.1  Feb. 2020 ****
      * **** improved low-bitrate coding efficiency and support for MPEG-
        D loudness metadata ****
      * **** exhaleApp: increased MP4 file versatility (issue 1) and calculation
        of loudness info ****
      * **** exhaleLib: backward compatible API extension to support writing of
        loudness info ****
      * **** exhaleLib: extended R/D optimized coding, improved short-transform
        quantization ****
  ****    Version 1.0.0  Jan. 2020 ****
      * **** compilation fixes and executable printout changes for Linux and
        MacOS™ platform ****
      * **** exhaleApp: fixed reading of WAVE files including metadata after the
        «data» chunk ****
      * **** exhaleLib: some tuning of transform and noise level detection for
        transient signals ****
      * **** exhaleLib: support for export as DLL on Microsoft Windows™ (not
        tested, though) ****
  ****    Version 1.0RC Dec. 2019 ****
      * **** initial release for testing with only basic channel-independent
        coding functionality ****
      * **** only support for Microsoft Windows™ (32-bit and 64-bit) platform
        provided so far. ****
  ****
  Known Issues with This Release ****
  ****    If you notice an issue with this release not mentioned below, please
  contact ecodis or a contributor with the details (configuration, input file)
  needed to reproduce the issue. ****
      * **** exhaleApp: At the end of each encoding run, the MPEG-4 file header
        with seeking information is written to the beginning of the output file to
        maximize compatibility in audio streaming applications. Since such a file
        operation is not supported with pipe based output, encoding to stdout
        instead of files is currently not supported. ****
      * **** exhaleApp: Only basic WAVE input file reading functionality has been
        implemen­ted. Specifically, 8-bit WAVE input is assumed to contain an even
        number of audio samples, and ITU-R BS.2088 (RF64, Broadcast WAVE) files
        are not supported. ****
  ****
  Roadmap of Upcoming Features ****
  ****    If you are in need of an additional library or application feature not
  mentioned below, please contact ecodis or a contributor with a request, and we
  will see what we can do. ****
      * **** exhaleLib: finalization of support for 5.1&#x2013;7.1 multichannel
        coding, no version plan ****
      * **** exhaleLib: speed-ups and further quality tuning for difficult
        signals, as necessary. ****
  ****
   ****
  *** Written by C. R. Helmrich for exhale 1.2.0, Dec. 2022. Available at
  www.ecodis.de/exhale/release.htm.

   ***
