From a43f9b31f7ccbefafc0219f2187e9d127e3fd09d Mon Sep 17 00:00:00 2001 From: "Christian R. Helmrich" Date: Fri, 23 Oct 2020 10:00:00 +0200 Subject: [PATCH] mode 0/9 tunings --- CMakeLists.txt | 20 ++++++++++---------- README.md | 2 +- include/License.htm | 23 ++++++++++++----------- include/Release.htm | 13 ++++++++++--- include/exhaleDecl.h | 2 +- include/version.h | 4 ++-- makefile | 2 +- src/app/exhaleApp.rc | 2 +- src/app/makefile | 2 +- src/lib/exhaleEnc.cpp | 13 ++++++++----- src/lib/makefile | 2 +- src/lib/tempAnalysis.cpp | 25 ++++++++++--------------- src/lib/tempAnalysis.h | 3 +-- src/makefile.base | 2 +- 14 files changed, 60 insertions(+), 55 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a7da822..9039ba3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,12 +1,12 @@ -# 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 2020 - see License.htm for legal notices -# -# The copyright in this software is being made available under a Modified BSD-Style 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-2020 Christian R. Helmrich, project ecodis. All rights reserved. -# +## 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 2020 - 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-2020 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.0.7 LANGUAGES CXX) +project(exhale VERSION 1.0.8 LANGUAGES CXX) if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) set(CMAKE_BUILD_TYPE Release diff --git a/README.md b/README.md index a94fab0..b7aebbe 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ exhale is being made available under an open-source license which is similar to the 3-clause BSD license but modified to address specific aspects dictated by the nature and the output of this application. -The license text and release notes for the current version 1.0.7 can +The license text and release notes for the current version 1.0.8 can be found in the `include` subdirectory of the exhale distribution. diff --git a/include/License.htm b/include/License.htm index 1804516..1efcfd8 100644 --- a/include/License.htm +++ b/include/License.htm @@ -24,22 +24,23 @@ -


exhale - ecodis extended high-efficiency and low-complexity encoder

referred to as «Software» below; additions to original BSD license text marked by [ ]


-

   This Software is being made available and/or distributed under the following Modified BSD-style 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.

+


exhale - ecodis extended high-efficiency and low-complexity encoder

referred to as «Software» below; clarifications introduced in October 2020 in italics


+

   This Software is being made available and/or distributed under the following exhale Copyright 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.


Licensor's Copyright Notice

   Copyright © 2018–2020 Christian R. Helmrich, ecodis (Licensor). All rights reserved.


List of License Conditions

-

   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:

+

   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:

-


Liability and Patent Disclaimer

-

   THIS SOFTWARE IS PROVIDED BY THE LICENSOR AND THE CONTRIBUTORS «AS IS» AND ANY EXPRESS OR IMPLIED WARRANTIES (INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PUR­POSE) ARE DISCLAIMED. IN NO EVENT SHALL THE LICENSOR OR ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-

  [This Software may be subject to other third-party and/or contributor rights, including patent rights. In particular, this Software may implement methods and/or technologies required to perform in compliance with certain specifications of the ISO/IEC (MPEG-D) international standard 23003-3, which may be subject to said other rights. NO express or implied licenses to any patent claims related to the use of this Software are granted under this license, and the Licensor provides NO WARRANTY of patent non-infringement with respect to this Software. Patent licenses required for the use of this Software to generate digital bit-streams according to any specifications of ISO/IEC 23003-3 may be obtained through Via Licensing and/or the corresponding patent holders individually.]

-

Written by C. R. Helmrich for exhale 1.0.0, Jan. 2020. Available at www.ecodis.de/exhale/license.htm.

+


No Patents Granted Disclaimer

+

   This Software may be subject to other third-party and/or contributor rights, including patent rights. In particular, this Software may implement methods and/or technologies required to perform in compliance with certain specifications of the ISO/IEC (MPEG-D) international standards 23003, which may be subject to said other rights. NO EXPRESS OR IMPLIED LICENSES TO ANY PATENT CLAIMS related to the use of this Software ARE GRANTED BY THIS SOFTWARE LICENSE, AND THE LICENSOR AND THE CONTRIBUTORS PROVIDE NO WARRANTY OF PATENT NON-INFRINGEMENT with respect to this Software. You may use this Software or modifications thereto only for purposes authorized by appropriate patent licenses. Patent licenses required for the use of this Software to generate digital bit-streams according to any specifications of ISO/IEC 23003 may be obtained through Via Licensing and/or the corresponding patent holders individually.

+


Software Liability Disclaimer

+

   THIS SOFTWARE IS PROVIDED BY THE LICENSOR AND THE CONTRIBUTORS «AS IS» AND ANY EXPRESS OR IMPLIED WARRANTIES (INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PUR­POSE) ARE DISCLAIMED. IN NO EVENT SHALL THE LICENSOR OR ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+

Written by C. R. Helmrich for exhale 1.0.8, Oct. 2020. Available at www.ecodis.de/exhale/license.htm.

diff --git a/include/Release.htm b/include/Release.htm index 2917b65..1f8a684 100644 --- a/include/Release.htm +++ b/include/Release.htm @@ -25,9 +25,16 @@


exhale - ecodis extended high-efficiency and low-complexity encoder

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


-

   The version of this distribution of the «exhale» software release is 1.0.7 (official pub­lic minor release) from August 2020. 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.

+

   The version of this distribution of the «exhale» software release is 1.0.8 (official pub­lic minor release) from October 2020. 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.0.7  Aug. 2020, this release

+

   Version 1.0.8  Oct. 2020, this release

+ +

   Version 1.0.7  Aug. 2020


-

Written by C. R. Helmrich for exhale 1.0.7, August 2020. Available at www.ecodis.de/exhale/release.htm.

+

Written by C. R. Helmrich for exhale 1.0.8, October 2020. Available at www.ecodis.de/exhale/release.htm.

diff --git a/include/exhaleDecl.h b/include/exhaleDecl.h index 095b3b8..dafee88 100644 --- a/include/exhaleDecl.h +++ b/include/exhaleDecl.h @@ -1,7 +1,7 @@ /* exhaleDecl.h - header file with declarations for exhale DLL ex-/import under Windows * written by C. R. Helmrich, last modified in 2020 - see License.htm for legal notices * - * The copyright in this software is being made available under a Modified BSD-Style License + * 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. * diff --git a/include/version.h b/include/version.h index a935836..b002be7 100644 --- a/include/version.h +++ b/include/version.h @@ -1,7 +1,7 @@ /* version.h - header file with major and minor library version numbers as characters * written by C. R. Helmrich, last modified in 2020 - see License.htm for legal notices * - * The copyright in this software is being made available under a Modified BSD-Style License + * 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. * @@ -15,5 +15,5 @@ # define EXHALELIB_VERSION_MINOR "0" #endif #ifndef EXHALELIB_VERSION_BUGFIX -# define EXHALELIB_VERSION_BUGFIX ".7" // "RC" or ".0", ".1", ... +# define EXHALELIB_VERSION_BUGFIX ".8" // "RC" or ".0", ".1", ... #endif diff --git a/makefile b/makefile index af5f42c..924d4f3 100644 --- a/makefile +++ b/makefile @@ -1,7 +1,7 @@ ## makefile - master user make-file for compiling exhale on Linux and MacOS platforms # written by C. R. Helmrich, last modified in 2020 - see License.htm for legal notices # - # The copyright in this software is being made available under a Modified BSD-Style License + # 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. # diff --git a/src/app/exhaleApp.rc b/src/app/exhaleApp.rc index b2c0497..54a4d32 100644 --- a/src/app/exhaleApp.rc +++ b/src/app/exhaleApp.rc @@ -13,7 +13,7 @@ 0 ICON "exhaleApp.ico" VS_VERSION_INFO VERSIONINFO -FILEVERSION 1,0,7 +FILEVERSION 1,0,8 BEGIN BLOCK "StringFileInfo" BEGIN diff --git a/src/app/makefile b/src/app/makefile index 18f2d8c..1806c85 100644 --- a/src/app/makefile +++ b/src/app/makefile @@ -1,7 +1,7 @@ ## makefile - application make-file for compiling exhale on Linux and MacOS platforms # written by C. R. Helmrich, last modified in 2020 - see License.htm for legal notices # - # The copyright in this software is being made available under a Modified BSD-Style License + # 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. # diff --git a/src/lib/exhaleEnc.cpp b/src/lib/exhaleEnc.cpp index 82b1b8c..84c10a7 100644 --- a/src/lib/exhaleEnc.cpp +++ b/src/lib/exhaleEnc.cpp @@ -1605,14 +1605,14 @@ unsigned ExhaleEncoder::temporalProcessing () // determine time-domain aspects o // get temporal channel statistics for this frame, used for spectral grouping/quantization m_tempAnalyzer.getTempAnalysisStats (m_tempAnaCurr, nChannels); - m_tempAnalyzer.getTransientLocation (m_tranLocCurr, nChannels); + m_tempAnalyzer.getTransientAndPitch (m_tranLocCurr, nChannels); // temporal analysis for look-ahead signal (central nSamplesInFrame samples of next frame) errorValue |= m_tempAnalyzer.temporalAnalysis (m_timeSignals, nChannels, nSamplesInFrame, nSamplesTempAna, lfeChannelIndex); // get temporal channel statistics for next frame, used for window length/overlap decision m_tempAnalyzer.getTempAnalysisStats (m_tempAnaNext, nChannels); - m_tempAnalyzer.getTransientLocation (m_tranLocNext, nChannels); + m_tempAnalyzer.getTransientAndPitch (m_tranLocNext, nChannels); #ifndef NO_FIX_FOR_ISSUE_1 m_indepFlag = (((m_frameCount++) % m_indepPeriod) <= 1); // configure usacIndependencyFlag @@ -1654,10 +1654,13 @@ unsigned ExhaleEncoder::temporalProcessing () // determine time-domain aspects o const USAC_WSEQ wsPrev = icsPrev.windowSequence; USAC_WSEQ& wsCurr = icsCurr.windowSequence; // get temporal signal statistics, then determine overlap config. for the next frame + const unsigned plCurr = abs (m_tranLocCurr[ci]) & 1023; const unsigned sfCurr = (m_tempAnaCurr[ci] >> 24) & UCHAR_MAX; const unsigned tfCurr = (m_tempAnaCurr[ci] >> 16) & UCHAR_MAX; + const unsigned plNext = abs (m_tranLocNext[ci]) & 1023; const unsigned sfNext = (m_tempAnaNext[ci] >> 24) & UCHAR_MAX; const unsigned tfNext = (m_tempAnaNext[ci] >> 16) & UCHAR_MAX; + const unsigned tThresh = UCHAR_MAX * (__max (plCurr, plNext) < 614 /*0.6 * 1024*/ ? 16 : 15 - (m_bitRateMode >> 2)); tsCurr[ch] = (m_tempAnaCurr[ci] /*R*/) & UCHAR_MAX; tsNext[ch] = (m_tempAnaNext[ci] >> 8) & UCHAR_MAX; @@ -1677,7 +1680,7 @@ unsigned ExhaleEncoder::temporalProcessing () // determine time-domain aspects o } else // LONG_START_SEQUENCE, STOP_START_SEQUENCE, EIGHT_SHORT_SEQUENCE - min overlap { - wsCurr = (m_tranLocCurr[ci] >= 0) || (tsCurr[ch] > (UCHAR_MAX * 5) / 8) || (tfCurr > (UCHAR_MAX * 15) / 16) ? EIGHT_SHORT : + wsCurr = (m_tranLocCurr[ci] >= 0) || (tsCurr[ch] > (UCHAR_MAX * 5) / 8) || (tfCurr > tThresh / 16) ? EIGHT_SHORT : #if RESTRICT_TO_AAC (lowOlapNext ? EIGHT_SHORT : LONG_STOP); #else @@ -1697,7 +1700,7 @@ unsigned ExhaleEncoder::temporalProcessing () // determine time-domain aspects o } // set scale_factor_grouping - icsCurr.windowGrouping = (wsCurr == EIGHT_SHORT ? (m_tranLocCurr[ci] * 8) / (int16_t) nSamplesInFrame : 0); + icsCurr.windowGrouping = (wsCurr == EIGHT_SHORT ? __max (0, m_tranLocCurr[ci]) / (2 * nSamplesInFrame) : 0); ci++; } // for ch @@ -1743,7 +1746,7 @@ unsigned ExhaleEncoder::temporalProcessing () // determine time-domain aspects o { const int16_t tranLocSynch = __min (m_tranLocCurr[ci - 2], m_tranLocCurr[ci - 1]); - icsInfo0.windowGrouping = icsInfo1.windowGrouping = (tranLocSynch * 8) / (int16_t) nSamplesInFrame; + icsInfo0.windowGrouping = icsInfo1.windowGrouping = __max (0, tranLocSynch) / (2 * nSamplesInFrame); } if ((icsInfo0.windowShape != WINDOW_SINE) || (icsInfo1.windowShape != WINDOW_SINE)) diff --git a/src/lib/makefile b/src/lib/makefile index d78a66b..2e7c78a 100644 --- a/src/lib/makefile +++ b/src/lib/makefile @@ -1,7 +1,7 @@ ## makefile - code library make-file for compiling exhale on Linux and MacOS platforms # written by C. R. Helmrich, last modified in 2020 - see License.htm for legal notices # - # The copyright in this software is being made available under a Modified BSD-Style License + # 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. # diff --git a/src/lib/tempAnalysis.cpp b/src/lib/tempAnalysis.cpp index 96f9954..753a075 100644 --- a/src/lib/tempAnalysis.cpp +++ b/src/lib/tempAnalysis.cpp @@ -61,14 +61,14 @@ static inline uint32_t packAvgTempAnalysisStats (const unsigned avgAbsHpL, cons return (CLIP_UCHAR (flatSpec) << 24) | (CLIP_UCHAR (flatTemp) << 16) | (CLIP_UCHAR (statTmpL) << 8) | CLIP_UCHAR (statTmpR); } -static inline int16_t getMaxAbsHpValueLocation (const unsigned maxAbsValL, const unsigned maxAbsValR, const unsigned maxAbsValP, - const int16_t maxAbsIdxL, const int16_t maxAbsIdxR) +static inline int16_t packTransLocWithPitchLag (const unsigned maxAbsValL, const unsigned maxAbsValR, const unsigned maxAbsValP, + const int16_t maxAbsIdxL, const int16_t maxAbsIdxR, const int16_t optPitchLag) { if ((maxAbsValP * 5 < maxAbsValL * 2) || (maxAbsValL * 5 < maxAbsValR * 2)) // has transient { - return maxAbsValR > maxAbsValL ? maxAbsIdxR : maxAbsIdxL; + return (((maxAbsValR > maxAbsValL ? maxAbsIdxR : maxAbsIdxL) << 4) & 0xF800) | __min (2047, optPitchLag); } - return -1; // no transient + return -1 * optPitchLag; // has no transient } // constructor @@ -95,13 +95,13 @@ void TempAnalyzer::getTempAnalysisStats (uint32_t avgTempAnaStats[USAC_MAX_NUM_C memcpy (avgTempAnaStats, m_tempAnaStats, nChannels * sizeof (uint32_t)); } -void TempAnalyzer::getTransientLocation (int16_t maxHighPassValueLocation[USAC_MAX_NUM_CHANNELS], const unsigned nChannels) +void TempAnalyzer::getTransientAndPitch (int16_t transIdxAndPitch[USAC_MAX_NUM_CHANNELS], const unsigned nChannels) { - if ((maxHighPassValueLocation == nullptr) || (nChannels > USAC_MAX_NUM_CHANNELS)) + if ((transIdxAndPitch == nullptr) || (nChannels > USAC_MAX_NUM_CHANNELS)) { return; } - memcpy (maxHighPassValueLocation, m_transientLoc, nChannels * sizeof (int16_t)); + memcpy (transIdxAndPitch, m_transientLoc, nChannels * sizeof (int16_t)); } unsigned TempAnalyzer::temporalAnalysis (const int32_t* const timeSignals[USAC_MAX_NUM_CHANNELS], const unsigned nChannels, @@ -213,23 +213,19 @@ unsigned TempAnalyzer::temporalAnalysis (const int32_t* const timeSignals[USAC_M { sumAbsPpL = sumAbsValL; // left side } -#if TA_MORE_PITCH_TESTS if ((sumAbsValR = applyPitchPred (chSigPH, halfFrameOffset, pLag, pSgn)) < sumAbsPpR) { sumAbsPpR = sumAbsValR; // right side pLagBestR = pLag; } -#endif // test right-side pitch lag on the frame pLag = __min (maxAbsIdxR - maxAbsIdxL, (int) lookaheadOffset - 1); pSgn = (((chSig[maxAbsIdxR] - chSigM1[maxAbsIdxR] > 0) && (chSig[maxAbsIdxL] - chSigM1[maxAbsIdxL] < 0)) || ((chSig[maxAbsIdxR] - chSigM1[maxAbsIdxR] < 0) && (chSig[maxAbsIdxL] - chSigM1[maxAbsIdxL] > 0)) ? -1 : 1); -#if TA_MORE_PITCH_TESTS if ((sumAbsValL = applyPitchPred (chSig, halfFrameOffset, pLag, pSgn)) < sumAbsPpL) { sumAbsPpL = sumAbsValL; // left side } -#endif if ((sumAbsValR = applyPitchPred (chSigPH, halfFrameOffset, pLag, pSgn)) < sumAbsPpR) { sumAbsPpR = sumAbsValR; // right side @@ -248,7 +244,6 @@ unsigned TempAnalyzer::temporalAnalysis (const int32_t* const timeSignals[USAC_M sumAbsPpR = sumAbsValR; // right side pLagBestR = pLag; } -#if TA_MORE_PITCH_TESTS if (pLagBestR >= halfFrameOffset) // half { pLag = pLagBestR >> 1; @@ -264,7 +259,7 @@ unsigned TempAnalyzer::temporalAnalysis (const int32_t* const timeSignals[USAC_M pLagBestR = pLag; } } -#endif + // convert L1 norms into average values sumAbsHpL = (sumAbsHpL + unsigned (halfFrameOffset >> 1)) / unsigned (halfFrameOffset); sumAbsHpR = (sumAbsHpR + unsigned (halfFrameOffset >> 1)) / unsigned (halfFrameOffset); @@ -273,8 +268,8 @@ unsigned TempAnalyzer::temporalAnalysis (const int32_t* const timeSignals[USAC_M // --- temporal analysis statistics for frame m_tempAnaStats[ch] = packAvgTempAnalysisStats (sumAbsHpL, sumAbsHpR, m_avgAbsHpPrev[ch], sumAbsPpL + sumAbsPpR, maxAbsValL + maxAbsValR); - m_transientLoc[ch] = getMaxAbsHpValueLocation (maxAbsValL, maxAbsValR, m_maxAbsHpPrev[ch], - maxAbsIdxL, maxAbsIdxR); + m_transientLoc[ch] = packTransLocWithPitchLag (maxAbsValL, maxAbsValR, m_maxAbsHpPrev[ch], + maxAbsIdxL, maxAbsIdxR, __max (1, pLagBestR)); // update stats history for this channel m_avgAbsHpPrev[ch] = sumAbsHpR; m_maxAbsHpPrev[ch] = maxAbsValR; diff --git a/src/lib/tempAnalysis.h b/src/lib/tempAnalysis.h index 5fa86b5..17b86a6 100644 --- a/src/lib/tempAnalysis.h +++ b/src/lib/tempAnalysis.h @@ -15,7 +15,6 @@ // constants, experimental macros #define TA_EPS 4096 -#define TA_MORE_PITCH_TESTS 1 // temporal signal analysis class class TempAnalyzer @@ -38,7 +37,7 @@ public: ~TempAnalyzer () { } // public functions void getTempAnalysisStats (uint32_t avgTempAnaStats[USAC_MAX_NUM_CHANNELS], const unsigned nChannels); - void getTransientLocation (int16_t maxHighPassValueLocation[USAC_MAX_NUM_CHANNELS], const unsigned nChannels); + void getTransientAndPitch (int16_t transIdxAndPitch[USAC_MAX_NUM_CHANNELS], const unsigned nChannels); unsigned temporalAnalysis (const int32_t* const timeSignals[USAC_MAX_NUM_CHANNELS], const unsigned nChannels, const int nSamplesInFrame, const unsigned lookaheadOffset, const unsigned lfeChannelIndex = USAC_MAX_NUM_CHANNELS); // to skip an LFE channel diff --git a/src/makefile.base b/src/makefile.base index 7ee5828..5a60ab5 100644 --- a/src/makefile.base +++ b/src/makefile.base @@ -1,7 +1,7 @@ ## makefile.base - common make-file for compiling exhale on Linux and MacOS platforms # written by C. R. Helmrich, last modified in 2020 - see License.htm for legal notices # - # The copyright in this software is being made available under a Modified BSD-Style License + # 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. #