finish 1.2.1 release

This commit is contained in:
Christian R. Helmrich 2023-12-20 13:00:00 +01:00
parent 1ba38d5894
commit 6ba7b9f9dc
12 changed files with 45 additions and 41 deletions

View File

@ -1,11 +1,11 @@
## CMakeLists.txt - Main CMake file that defines how cmake should process and generate the necessary build files
# written by C. D. Degawa, last modified in 2022 - see License.htm for legal notices
# written by C. D. Degawa, last modified in 2023 - see License.htm for legal notices
#
# The copyright in this software is being made available under the exhale Copyright License
# and comes with ABSOLUTELY NO WARRANTY. This software may be subject to other third-
# party rights, including patent rights. No such rights are granted under this License.
#
# Copyright (c) 2018-2021 Christian R. Helmrich, project ecodis. All rights reserved.
# Copyright (c) 2018-2024 Christian R. Helmrich, project ecodis. All rights reserved.
##
cmake_minimum_required(VERSION 3.5) # Default version of cmake on Ubuntu 16.04
@ -16,7 +16,7 @@ if("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
endif()
project(exhale VERSION 1.2.0 LANGUAGES CXX)
project(exhale VERSION 1.2.1 LANGUAGES CXX)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE Release

View File

@ -31,7 +31,7 @@ ____________________________________________________________________
Copyright
---------
(c) 2023 Christian R. Helmrich, project ecodis. All rights reserved.
(c) 2024 Christian R. Helmrich, project ecodis. All rights reserved.
License
@ -41,7 +41,7 @@ exhale is being made available under an open-source license which is
based on the 3-clause BSD license but modified to address particular
aspects dictated by the nature and the output of this application.
The license text and release notes for the current version 1.2.0 can
The license text and release notes for the current version 1.2.1 can
be found in the `include` subdirectory of the exhale distribution.

View File

@ -1,4 +1,4 @@
<!-- www.ecodis.de/exhale/license.htm - created by Christian R. Helmrich - Copyright (c) 2018-2022 Christian R. Helmrich, project ecodis. All rights reserved. -->
<!-- www.ecodis.de/exhale/license.htm - created by Christian R. Helmrich - Copyright (c) 2018-2024 Christian R. Helmrich, project ecodis. All rights reserved. -->
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
@ -27,7 +27,7 @@
<h1><br><span class="pink">exhale</span> - <span class="pink">e</span>codis e<span class="pink">x</span>tended <span class="pink">h</span>igh-efficiency <span class="pink">a</span>nd <span class="pink">l</span>ow-complexity <span class="pink">e</span>ncoder<br><span class="gray"><sup><br>referred to as &laquo;Software&raquo; below; clarifications introduced in October 2020 in <i>italics</i></sup></span><br><br></h1>
<h3>&nbsp; &nbsp;This Software is being made available and/or distributed under the following <i>exhale Copyright</i> License. For a list of authors which have contributed to this Software, called &laquo;contributors&raquo; in the text below, please refer to the respective files provided with this distribution (source files or binary executable) to which modifications were contributed.</h3>
<h3><br><b>Licensor's Copyright Notice</b></h3>
<h3>&nbsp; &nbsp;Copyright &copy; 2018&#x2013;2022 Christian R. Helmrich, <a href="http://www.ecodis.de">ecodis</a> (Licensor). All rights reserved.</h3>
<h3>&nbsp; &nbsp;Copyright &copy; 2018&#x2013;2024 Christian R. Helmrich, <a href="http://www.ecodis.de">ecodis</a> (Licensor). All rights reserved.</h3>
<h3><br><b>List of License Conditions</b></h3>
<h3>&nbsp; &nbsp;Redistribution and use of this Software in source and binary forms, with or without modification, are permitted provided that all of the following four conditions are met:</h3>
<ul>

View File

@ -1,4 +1,4 @@
<!-- www.ecodis.de/exhale/release.htm - created by Christian R. Helmrich - Copyright (c) 2018-2022 Christian R. Helmrich, project ecodis. All rights reserved. -->
<!-- www.ecodis.de/exhale/release.htm - created by Christian R. Helmrich - Copyright (c) 2018-2024 Christian R. Helmrich, project ecodis. All rights reserved. -->
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
@ -25,9 +25,16 @@
<td valign="top">
<h1><br><span class="pink">exhale</span> - <span class="pink">e</span>codis e<span class="pink">x</span>tended <span class="pink">h</span>igh-efficiency <span class="pink">a</span>nd <span class="pink">l</span>ow-complexity <span class="pink">e</span>ncoder<br><span class="gray"><sup><br>Software Release Notes, Version History, Known Issues, Upcoming Feature Roadmap</sup></span><br><br></h1>
<h3>&nbsp; &nbsp;The version of this distribution of the &laquo;exhale&raquo; software release is <b>1.2.0</b> (official pub&shy;lic major release) from December 2022. Please check <a href="http://www.ecodis.de/audio.htm#mpeg">www.ecodis.de</a> 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.</h3>
<h3>&nbsp; &nbsp;The version of this distribution of the &laquo;exhale&raquo; software release is <b>1.2.1</b> (official pub&shy;lic major release) from December 2023. Please check <a href="http://www.ecodis.de/audio.htm#mpeg">www.ecodis.de</a> 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.</h3>
<h3><br><b>Chronological Version History</b></h3>
<h3>&nbsp; &nbsp;Version <b>1.2.0 <span class="gray">&nbsp;Dec. 2022, this release</span></b></h3>
<h3>&nbsp; &nbsp;Version <b>1.2.1 <span class="gray">&nbsp;Dec. 2023, this release</span></b></h3>
<ul>
<li><h3>exhaleApp: always determine MPEG-4 instantaneous bit-rate across 2048 samples</h3></li>
<li><h3>exhaleLib: added code for MSE optimized encoding (for tests, disabled by default)</h3></li>
<li><h3>exhaleLib: code cleanup in quantization.*, increase max. IPF AU size to 10 kbit/ch</h3></li>
<li><h3>exhaleLib: fix two rare high-rate quality issues (only affects CVBR modes above 5)</h3></li>
</ul>
<h3>&nbsp; &nbsp;Version <b>1.2.0 <span class="gray">&nbsp;Dec. 2022</span></b></h3>
<ul>
<li><h3>C API correction, some code sanitizing (issue 24, merge requests 8&#x2013;11, J. Regan)</h3></li>
<li><h3>exhaleLib: code cleanup, very minor quality improvements in CVBR modes f and 5</h3></li>
@ -174,7 +181,7 @@
<li><h3>exhaleLib: speed-ups and further quality tuning for difficult signals, as necessary.</h3></li>
</ul>
<h3><br></h3>
<h4><span class="gray">Written by C. R. Helmrich for exhale 1.2.0, Dec. 2022. Available at www.ecodis.de/exhale/release.htm.</span><br><br></h4>
<h4><span class="gray">Written by C. R. Helmrich for exhale 1.2.1, Dec. 2023. Available at www.ecodis.de/exhale/release.htm.</span><br><br></h4>
</td>
<td valign="top" colspan="2">

View File

@ -1,11 +1,11 @@
/* version.h - header file with major and minor library version numbers as characters
* written by C. R. Helmrich, last modified in 2022 - see License.htm for legal notices
* written by C. R. Helmrich, last modified in 2023 - see License.htm for legal notices
*
* The copyright in this software is being made available under the exhale Copyright License
* and comes with ABSOLUTELY NO WARRANTY. This software may be subject to other third-
* party rights, including patent rights. No such rights are granted under this License.
*
* Copyright (c) 2018-2021 Christian R. Helmrich, project ecodis. All rights reserved.
* Copyright (c) 2018-2024 Christian R. Helmrich, project ecodis. All rights reserved.
*/
#ifndef EXHALELIB_VERSION_MAJOR
@ -15,5 +15,5 @@
# define EXHALELIB_VERSION_MINOR "2"
#endif
#ifndef EXHALELIB_VERSION_BUGFIX
# define EXHALELIB_VERSION_BUGFIX ".0" // "RC" or ".0", ".1", ...
# define EXHALELIB_VERSION_BUGFIX ".1" // "RC" or ".0", ".1", ...
#endif

View File

@ -5,7 +5,7 @@
* and comes with ABSOLUTELY NO WARRANTY. This software may be subject to other third-
* party rights, including patent rights. No such rights are granted under this License.
*
* Copyright (c) 2018-2021 Christian R. Helmrich, project ecodis. All rights reserved.
* Copyright (c) 2018-2024 Christian R. Helmrich, project ecodis. All rights reserved.
*/
#include "exhaleAppPch.h"
@ -483,7 +483,7 @@ int main (const int argc, char* argv[])
// check arg. list, print usage if needed
if ((argc < 3) || (argc > 6) || (argc > 1 && argv[1][1] != 0))
{
fprintf_s (stdout, " Copyright 2018-2023 C.R.Helmrich, project ecodis. See License.htm for details.\n\n");
fprintf_s (stdout, " Copyright 2018-2024 C.R.Helmrich, project ecodis. See License.htm for details.\n\n");
fprintf_s (stdout, " This software is made available under the exhale Copyright License and comes\n");
fprintf_s (stdout, " with ABSOLUTELY NO WARRANTY. This software may be subject to other third-party\n");
@ -1024,7 +1024,7 @@ int main (const int argc, char* argv[])
goto mainFinish; // writeout error
}
}
#if EE_MORE_MSE
#if 0
std::cout << "\n" << "headerSizeBytes " << (headerRes - 34) << "\n";
#endif
i = 1; // for progress bar

View File

@ -5,7 +5,7 @@
* and comes with ABSOLUTELY NO WARRANTY. This software may be subject to other third-
* party rights, including patent rights. No such rights are granted under this License.
*
* Copyright (c) 2018-2021 Christian R. Helmrich, project ecodis. All rights reserved.
* Copyright (c) 2018-2024 Christian R. Helmrich, project ecodis. All rights reserved.
*/
#include "../../include/version.h" // for EXHALELIB_VERSION_... strings
@ -13,7 +13,7 @@
0 ICON "exhaleApp.ico"
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,2,0,1
FILEVERSION 1,2,1,0
BEGIN
BLOCK "StringFileInfo"
BEGIN
@ -22,7 +22,7 @@ BEGIN
VALUE "CompanyName", "ecodis"
VALUE "FileDescription", "exhale - ecodis extended high-efficiency and low-complexity encoder"
VALUE "InternalName", "exhaleApp.exe"
VALUE "LegalCopyright", "© 2018-2023 C. R. Helmrich, ecodis"
VALUE "LegalCopyright", "© 2018-2024 C. R. Helmrich, ecodis"
VALUE "OriginalFilename", "exhale.exe"
VALUE "ProductName", "exhaleApp"
VALUE "ProductVersion", EXHALELIB_VERSION_MAJOR "." EXHALELIB_VERSION_MINOR EXHALELIB_VERSION_BUGFIX

View File

@ -5,7 +5,7 @@
* and comes with ABSOLUTELY NO WARRANTY. This software may be subject to other third-
* party rights, including patent rights. No such rights are granted under this License.
*
* Copyright (c) 2018-2021 Christian R. Helmrich, project ecodis. All rights reserved.
* Copyright (c) 2018-2024 Christian R. Helmrich, project ecodis. All rights reserved.
*/
#include "exhaleLibPch.h"

View File

@ -6,7 +6,7 @@
* and comes with ABSOLUTELY NO WARRANTY. This software may be subject to other third-
* party rights, including patent rights. No such rights are granted under this License.
*
* Copyright (c) 2018-2021 Christian R. Helmrich, project ecodis. All rights reserved.
* Copyright (c) 2018-2024 Christian R. Helmrich, project ecodis. All rights reserved.
*/
#include "exhaleLibPch.h"
@ -965,9 +965,9 @@ unsigned ExhaleEncoder::psychBitAllocation () // perceptual bit-allocation via s
if (grpOff[maxSfbCh] > grpOff[0])
{
s = unsigned ((s * (eightShorts ? (24u + (grpData.windowGroupLength[gr] >> 2)) / grpData.windowGroupLength[gr] : 3u) + 4096u) >> 13);
#ifndef NO_PREROLL_DATA
if (((m_frameCount - 1u) % (m_indepPeriod << 1)) == 1 && nrChannels == 1 && !eightShorts) s = (4u + 9u * s) >> 3;
#endif
# ifndef NO_PREROLL_DATA
if (((m_frameCount - 1u) % (m_indepPeriod << 1)) == 1 && m_numElements == 1 && !eightShorts) s = (4u + 9u * s) >> 3;
# endif
}
s = __max (1u + ((UINT32_MAX / (eightShorts ? 3u : 8u)) >> ((2 + m_bitRateMode / 9) * m_bitRateMode)), s * s);
#endif
@ -1185,6 +1185,12 @@ unsigned ExhaleEncoder::quantizationCoding () // apply MDCT quantization and en
// correct entropy coding 2-tuples for the next window
memset (&arithTuples[lastSOff], 1, (swbM1Size >> 1) * sizeof (char));
}
// correct next scale factor if the reduction exceeds 60
if ((b + 1u < grpData.sfbsPerGroup) && (sfIdxPred < UCHAR_MAX) && (grpLength == 1) &&
(grpScaleFacs[b] > grpScaleFacs[b + 1] + INDEX_OFFSET))
{
grpScaleFacs[b + 1] = grpScaleFacs[b] - INDEX_OFFSET; // avoid preset-9 zero-out
}
if (b > 0)
{

View File

@ -5,7 +5,7 @@
* and comes with ABSOLUTELY NO WARRANTY. This software may be subject to other third-
* party rights, including patent rights. No such rights are granted under this License.
*
* Copyright (c) 2018-2021 Christian R. Helmrich, project ecodis. All rights reserved.
* Copyright (c) 2018-2024 Christian R. Helmrich, project ecodis. All rights reserved.
*/
#ifndef _EXHALE_ENC_H_

View File

@ -1,11 +1,11 @@
/* quantization.cpp - source file for class with nonuniform quantization functionality
* written by C. R. Helmrich, last modified in 2022 - see License.htm for legal notices
* written by C. R. Helmrich, last modified in 2023 - see License.htm for legal notices
*
* The copyright in this software is being made available under the exhale Copyright License
* and comes with ABSOLUTELY NO WARRANTY. This software may be subject to other third-
* party rights, including patent rights. No such rights are granted under this License.
*
* Copyright (c) 2018-2021 Christian R. Helmrich, project ecodis. All rights reserved.
* Copyright (c) 2018-2024 Christian R. Helmrich, project ecodis. All rights reserved.
*/
#include "exhaleLibPch.h"
@ -95,7 +95,6 @@ uint8_t SfbQuantizer::quantizeMagnSfb (const unsigned* const coeffMagn, const ui
for (int i = numCoeffs - 1; i >= 0; i--)
{
const double normalizedMagn = (double) coeffMagn[i] * stepSizeDiv;
#if SFB_QUANT_FAST_POW
short q;
if (normalizedMagn < 28.5) // fast approximate pow (d, 0.75)
@ -111,11 +110,8 @@ uint8_t SfbQuantizer::quantizeMagnSfb (const unsigned* const coeffMagn, const ui
}
else
{
q = short (SFB_QUANT_OFFSET + pow (normalizedMagn, 0.75));
q = short (SFB_QUANT_OFFSET + pow (__min (1048544.0, normalizedMagn), 0.75)); // min avoids rare preset-9 overflow
}
#else
short q = short (SFB_QUANT_OFFSET + pow (normalizedMagn, 0.75));
#endif
if (q > 0)
{

View File

@ -1,11 +1,11 @@
/* quantization.h - header file for class with nonuniform quantization functionality
* written by C. R. Helmrich, last modified in 2022 - see License.htm for legal notices
* written by C. R. Helmrich, last modified in 2023 - see License.htm for legal notices
*
* The copyright in this software is being made available under the exhale Copyright License
* and comes with ABSOLUTELY NO WARRANTY. This software may be subject to other third-
* party rights, including patent rights. No such rights are granted under this License.
*
* Copyright (c) 2018-2021 Christian R. Helmrich, project ecodis. All rights reserved.
* Copyright (c) 2018-2024 Christian R. Helmrich, project ecodis. All rights reserved.
*/
#ifndef _QUANTIZATION_H_
@ -19,13 +19,8 @@
#define SF_QUANT_OFFSET 0.4783662 // for scale fac
#define SF_THRESH_NEG 0.92044821 // round -1.5 dB
#define SF_THRESH_POS 1.09460356 // round +1.5 dB
#define SFB_QUANT_FAST_POW 1 // faster pow ()
#define SFB_QUANT_PERCEPT_OPT 1 // psych. quant.
#if SFB_QUANT_FAST_POW
#define SFB_QUANT_OFFSET 0.496094 // 13 - 29^(3/4)
#else
#define SFB_QUANT_OFFSET 0.405396 // 1 - 0.5^(3/4)
#endif
#define SFB_QUANT_PERCEPT_OPT 1 // psych. quant.
#define SFB_QUANT_SSE 0
// class for BL USAC quantization