mirror of
https://gitlab.com/ecodis/exhale.git
synced 2025-01-02 10:16:56 +01:00
finish 1.2.1 release
This commit is contained in:
parent
1ba38d5894
commit
6ba7b9f9dc
@ -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
|
||||
|
@ -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.
|
||||
|
||||
|
||||
|
@ -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 «Software» below; clarifications introduced in October 2020 in <i>italics</i></sup></span><br><br></h1>
|
||||
<h3> 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 «contributors» 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> Copyright © 2018–2022 Christian R. Helmrich, <a href="http://www.ecodis.de">ecodis</a> (Licensor). All rights reserved.</h3>
|
||||
<h3> Copyright © 2018–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> 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>
|
||||
|
@ -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> The version of this distribution of the «exhale» software release is <b>1.2.0</b> (official pub­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> The version of this distribution of the «exhale» software release is <b>1.2.1</b> (official pub­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> Version <b>1.2.0 <span class="gray"> Dec. 2022, this release</span></b></h3>
|
||||
<h3> Version <b>1.2.1 <span class="gray"> 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> Version <b>1.2.0 <span class="gray"> Dec. 2022</span></b></h3>
|
||||
<ul>
|
||||
<li><h3>C API correction, some code sanitizing (issue 24, merge requests 8–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">
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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_
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user