3rd-party/lc3-google: update codec

This commit is contained in:
Dirk Helbig 2024-09-10 15:10:21 +02:00 committed by Matthias Ringwald
parent 7fc0aea0ec
commit 6897da5c53
141 changed files with 12326 additions and 3313 deletions

2
3rd-party/README.md vendored
View File

@ -6,7 +6,7 @@ Library
----------------------------------------------------------------------------------------------------------------|----------|---------------|------------------|----------
[Android SBC Codec](https://android.googlesource.com/platform/external/bluetooth/bluedroid/+/master/embdrv/sbc) | e8c3d75b | Apache 2.0 | HFP WBS, A2DP | optimized audio codec
[hxcmod-player](https://github.com/jfdelnero/HxCModPlayer) | 03d495c8 | Public Domain | A2DP Source Demo | mod music player
[Google LC3 Codec](https://github.com/google/liblc3.git) | 311ca4c0 | Apache 2.0 | LE Audio | audio codec
[Google LC3 Codec](https://github.com/google/liblc3.git) | bb85f7dd | Apache 2.0 | LE Audio | audio codec
[lwIP](http://savannah.nongnu.org/projects/lwip/) | b3a93941 | BSD 3-Clause | PAN Demo | complete network stack
[md5](http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5) | 1.0 | Public Domain | PBAP | cryptographic hash function
[micro-ecc](https://github.com/kmackay/micro-ecc) | e4d264b5 | BSD 2-Clause | LE SC, Mesh | elliptic-curve library

28
3rd-party/lc3-google/CONTRIBUTING.md vendored Normal file
View File

@ -0,0 +1,28 @@
# How to Contribute
We'd love to accept your patches and contributions to this project. There are
just a few small guidelines you need to follow.
## Contributor License Agreement
Contributions to this project must be accompanied by a Contributor License
Agreement. You (or your employer) retain the copyright to your contribution;
this simply gives us permission to use and redistribute your contributions as
part of the project. Head over to <https://cla.developers.google.com/> to see
your current agreements on file or to sign a new one.
You generally only need to submit a CLA once, so if you've already submitted one
(even if it was for a different project), you probably don't need to do it
again.
## Code Reviews
All submissions, including submissions by project members, require review. We
use GitHub pull requests for this purpose. Consult
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
information on using pull requests.
## Community Guidelines
This project follows [Google's Open Source Community
Guidelines](https://opensource.google/conduct/).

202
3rd-party/lc3-google/LICENSE vendored Normal file
View File

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

173
3rd-party/lc3-google/Makefile vendored Normal file
View File

@ -0,0 +1,173 @@
#
# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
V ?= @
BUILD_DIR := build
BIN_DIR := bin
#
# Set `gcc` as default compiler
#
CC := $(if $(CC)=cc,gcc,$(CC))
AS := $(if $(AS)=as,$(CC),$(AS))
LD := $(if $(LD)=ld,$(CC),$(LD))
CFLAGS := $(if $(DEBUG),-O0 -g,-O3)
LDFLAGS := $(if $(DEBUG),-O0 -g,-O3)
CFLAGS += -std=c11 -Wall -Wextra -Wdouble-promotion -Wvla -pedantic
TARGET = $(lastword $(shell $(CC) -v 2>&1 | grep "Target: "))
LIB_SHARED := true
LIB_SUFFIX := so
ifeq ($(TARGET),wasm32)
LIB_SHARED := false
LIB_SUFFIX := wasm
CFLAGS += -Iwasm -mbulk-memory
LDFLAGS += -nostdlib -Wl,--no-entry -Wl,--export-dynamic
endif
ifneq ($(LC3_PLUS),)
DEFINE += LC3_PLUS=$(LC3_PLUS)
endif
ifneq ($(LC3_PLUS_HR),)
DEFINE += LC3_PLUS_HR=$(LC3_PLUS_HR)
endif
#
# Declarations
#
lib_list :=
bin_list :=
define add-lib
$(eval $(1)_bin ?= $(1).$(LIB_SUFFIX))
$(eval $(1)_bin := $(addprefix $(BIN_DIR)/,$($(1)_bin)))
lib_list += $(1)
LIB += $($(1)_bin)
endef
define add-bin
$(eval $(1)_bin ?= $(1))
$(eval $(1)_bin := $(addprefix $(BIN_DIR)/,$($(1)_bin)))
$($(1)_bin): LDLIBS += $(if $(filter $(LIBC),bionic),\
$(filter-out rt pthread,$($(1)_ldlibs)),$($(1)_ldlibs))
$($(1)_bin): LDFLAGS += $($(1)_ldflags)
bin_list += $(1)
BIN += $($(1)_bin)
endef
define set-target
$(eval $(1)_obj ?= $(patsubst %.c,%.o,$(filter %.c,$($(1)_src))) \
$(patsubst %.s,%.o,$(filter %.s,$($(1)_src))) \
$(patsubst %.cc,%.o,$(filter %.cc,$($(1)_src))))
$(eval $(1)_obj := $(addprefix $(BUILD_DIR)/,$($(1)_obj)))
$($(1)_obj): INCLUDE += $($(1)_include)
$($(1)_obj): DEFINE += $($(1)_define)
$($(1)_obj): CFLAGS += $($(1)_cflags)
$($(1)_obj): CXXFLAGS += $($(1)_cxxflags)
-include $($(1)_obj:.o=.d)
$($(1)_bin): $($(1)_obj)
$($(1)_bin): $($(1)_dependencies)
.PHONY: $(1)
$(1): $($(1)_bin)
endef
.PHONY: default
default:
INCLUDE += include
SRC_DIR = src
include $(SRC_DIR)/makefile.mk
TOOLS_DIR = tools
-include $(TOOLS_DIR)/makefile.mk
TEST_DIR := test
-include $(TEST_DIR)/makefile.mk
FUZZ_DIR := fuzz
-include $(FUZZ_DIR)/makefile.mk
#
# Rules
#
MAKEFILE_DEPS := $(MAKEFILE_LIST)
$(foreach lib, $(lib_list), $(eval $(call set-target,$(lib))))
$(foreach bin, $(bin_list), $(eval $(call set-target,$(bin))))
$(BUILD_DIR)/%.o: %.c $(MAKEFILE_DEPS)
@echo " CC $(notdir $<)"
$(V)mkdir -p $(dir $@)
$(V)$(CC) $< -c $(CFLAGS) \
$(addprefix -I,$(INCLUDE)) \
$(addprefix -D,$(DEFINE)) -MMD -MF $(@:.o=.d) -o $@
$(BUILD_DIR)/%.o: %.s $(MAKEFILE_DEPS)
@echo " AS $(notdir $<)"
$(V)mkdir -p $(dir $@)
$(V)$(AS) $< -c $(CFLAGS) \
$(addprefix -I,$(INCLUDE)) \
$(addprefix -D,$(DEFINE)) -MMD -MF $(@:.o=.d) -o $@
$(BUILD_DIR)/%.o: %.cc $(MAKEFILE_DEPS)
@echo " CXX $(notdir $<)"
$(V)mkdir -p $(dir $@)
$(V)$(CXX) $< -c $(CXXFLAGS) \
$(addprefix -I,$(INCLUDE)) \
$(addprefix -D,$(DEFINE)) -MMD -MF $(@:.o=.d) -o $@
ifeq ($(LIB_SHARED),true)
$(LIB): CFLAGS += -fvisibility=hidden -flto -fPIC
$(LIB): LDFLAGS += -flto -shared
endif
$(LIB): $(MAKEFILE_DEPS)
@echo " LD $(notdir $@)"
$(V)mkdir -p $(dir $@)
$(V)$(LD) $(filter %.o,$^) $(LDFLAGS) -o $@
$(BIN): $(MAKEFILE_DEPS)
@echo " LD $(notdir $@)"
$(V)mkdir -p $(dir $@)
$(V)$(LD) $(filter %.o,$^) \
$(LDFLAGS) -L $(BIN_DIR) $(addprefix -l,$(LDLIBS)) -o $@
clean:
$(V)rm -rf $(BUILD_DIR)
$(V)rm -rf $(BIN_DIR)
clean-all: clean

View File

@ -1,8 +1,15 @@
# Low Complexity Communication Codec (LC3)
The LC3 is an efficient low latency audio codec.
LC3 and LC3 Plus are audio codecs designed for low-latency audio transport.
[_Low Complexity Communication Codec_](https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=502107&vId=542963)
- LC3 is specified by [_the Bluetooth Special Interset Group for the LE Audio
protocol_](https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=502107&vId=542963)
- LC3 Plus is defined by [_ETSI TS 103 634_](https://www.etsi.org/deliver/etsi_ts/103600_103699/103634/01.04.01_60/ts_103634v010401p.pdf)
In addition to LC3, following features of LC3 Plus are proposed:
- Frame duration of 2.5 and 5ms.
- High-Resolution mode, 48 KHz, and 96 kHz sampling rates.
## Overview
@ -10,7 +17,9 @@ The directory layout is as follows :
- include: Library interface
- src: Source files
- tools: Standalone encoder/decoder tools
- test: Python implentation, used as reference for unit testing
- python: Python wrapper
- test: Unit testing framework
- fuzz: Roundtrip fuzz testing harness
- build: Building outputs
- bin: Compilation output
@ -22,7 +31,17 @@ The default toolchain used is GCC. Invoke `make` to build the library.
$ make -j
```
Compiled library `liblc3.a` will be found in `bin` directory.
Compiled library `liblc3.so` will be found in `bin` directory.
LC3 Plus features can be selectively disabled :
- `LC3_PLUS=0` disable the support of 2.5ms and 5ms frame durations.
- `LC3_PLUS_HR=0` turns off the support of the High-Resolution mode.
Only Bluetooth LC3 features will be included using the following command:
```sh
$ make LC3_PLUS=0 LC3_PLUS_HR=0 -j
```
#### Cross compilation
@ -42,9 +61,23 @@ $ make -j CC=path_to_android_ndk_prebuilt/toolchain-prefix-clang LIBC=bionic
Compiled library will be found in `bin` directory.
#### Web Assembly (WASM)
Web assembly compilation is supported using LLVM WebAssembly backend.
Installation of LLVM compiler and linker is needed:
```sh
# apt install clang lld
```
The webasm object is compiled using:
```sh
$ make CC="clang --target=wasm32"
```
## Tools
Tools can be all compiled, while involking `make` as follows :
Tools can be all compiled, while invoking `make` as follows :
```sh
$ make tools
@ -63,20 +96,24 @@ file are omitted.
In such way you can easly test encoding / decoding loop with :
```sh
$ ./elc3 <in.wav> -b <bitrate> | ./dlc3 > <out.wav>
$ alias elc3="LD_LIBRARY_PATH=`pwd`/bin `pwd`/bin/elc3"
$ alias dlc3="LD_LIBRARY_PATH=`pwd`/bin `pwd`/bin/dlc3"
$ elc3 <in.wav> -b <bitrate> | dlc3 > <out.wav>
```
Adding Linux `aplay` tools, you will be able to instant hear the result :
```sh
$ ./elc3 <in.wav> -b <bitrate> | ./dlc3 | aplay
$ alias elc3="LD_LIBRARY_PATH=`pwd`/bin `pwd`/bin/elc3"
$ alias dlc3="LD_LIBRARY_PATH=`pwd`/bin `pwd`/bin/dlc3"
$ elc3 <in.wav> -b <bitrate> | dlc3 | aplay -D pipewire
```
## Test
A python implementation of the encoder is provided in `test` diretory.
The C implementation is unitary validated against this implementation and
intermediate values given in Appendix C of the specification.
intermediate values given in Appendix C of the LC3 specification.
#### Prerequisite
@ -91,28 +128,54 @@ $ pip3 install scipy numpy
$ make test
```
## Conformance
## Fuzzing
The proposed encoder and decoder implementation have been fully tested and
validated.
Roundtrip fuzz testing harness is available in `fuzz` directory.
LLVM `clang` and `clang++` compilers are needed to run fuzzing.
For more detail on conformance, refer to [_Bluetooth Conformance
Documents and scripts_](https://www.bluetooth.com/specifications/specs/low-complexity-communication-codec-1-0/)
The encoder and decoder fuzzers can be run, for 1 million iterations, using
target respectively `dfuzz` and `efuzz`. The `fuzz` target runs both.
```sh
$ make efuzz # Run encoder fuzzer for 1M iteration
$ make dfuzz # Run decoder fuzzer for 1M iteration
$ make fuzz -j # Run encoder and decoder fuzzers in parallel
```
## Qualification / Conformance
The implementation is qualified under the [_QDID 194161_](https://launchstudio.bluetooth.com/ListingDetails/160904) as part of Google Fluoride 1.5.
The conformance reports can be found [here](conformance/README.md)
## Listening Test
The codec was [_here_](https://hydrogenaud.io/index.php/topic,122575.0.html)
subjectively evaluated in a blind listening test.
## Meson build system
Meson build system is also available to build and install lc3 codec in Linux
environment.
```sh
$ meson build
$ cd build
$ ninja
$ sudo ninja install
$ meson setup build
$ cd build && meson install
```
## Python wrapper
A python wrapper, installed as follows, is available in the `python` directory.
```sh
$ python3 -m pip install .
```
Decoding and encoding tools are provided in `python/tools`, like C tools,
you can easly test encoding / decoding loop with :
```sh
$ python3 ./python/tools/encoder.py <in.wav> --bitrate <bitrate> | \
python3 ./python/tools/decoder.py > <out.wav>
```

View File

@ -0,0 +1,48 @@
# Conformance test reports
For more details on conformance, refer to:
- [_Bluetooth Conformance Documents and scripts_](https://www.bluetooth.com/specifications/specs/low-complexity-communication-codec-1-0/)
- [_ETSI TS 103 634 V1.4.1 - Section 7_](https://www.etsi.org/deliver/etsi_ts/103600_103699/103634/01.04.01_60/ts_103634v010401p.pdf)
The test reports are generated by:
- [_LC3 Test Software V1.0.7_](https://www.bluetooth.com/specifications/specs/low-complexity-communication-codec-1-0/)
- [_LC3 Plus ETSI Conformance Software V1.6.4_](https://www.etsi.org/deliver/etsi_ts/103600_103699/103634/01.03.01_60/ts_103634v010301p0.zip)
## LC3 Speech
* [Encoding 10ms](https://raw.githack.com/google/liblc3/main/conformance/speech_encode_10m.html)
* [Decoding 10ms](https://raw.githack.com/google/liblc3/main/conformance/speech_decode_10m.html)
* [Encoding + Decoding 10ms](https://raw.githack.com/google/liblc3/main/conformance/speech_encdec_10m.html)
<!-- -->
* [Encoding 7.5ms](https://raw.githack.com/google/liblc3/main/conformance/speech_encode_7m5.html)
* [Decoding 7.5ms](https://raw.githack.com/google/liblc3/main/conformance/speech_decode_7m5.html)
* [Encoding + Decoding 7.5ms](https://raw.githack.com/google/liblc3/main/conformance/speech_encdec_7m5.html)
## LC3 Music
* [Encoding 10ms](https://raw.githack.com/google/liblc3/main/conformance/music_encode_10m.html)
* [Decoding 10ms](https://raw.githack.com/google/liblc3/main/conformance/music_decode_10m.html)
* [Encoding + Decoding 10ms](https://raw.githack.com/google/liblc3/main/conformance/music_encdec_10m.html)
<!-- -->
* [Encoding 7.5ms](https://raw.githack.com/google/liblc3/main/conformance/music_encode_7m5.html)
* [Decoding 7.5ms](https://raw.githack.com/google/liblc3/main/conformance/music_decode_7m5.html)
* [Encoding + Decoding 7.5ms](https://raw.githack.com/google/liblc3/main/conformance/music_encdec_7m5.html)
## LC3 Plus
* [Encoding](https://raw.githack.com/google/liblc3/main/conformance/lc3plus_encode.html)
* [Decoding](https://raw.githack.com/google/liblc3/main/conformance/lc3plus_decode.html)
* [Encoding + Decoding](https://raw.githack.com/google/liblc3/main/conformance/lc3plus_encdec.html)
## LC3 Plus High-Resolution
* [Encoding](https://raw.githack.com/google/liblc3/main/conformance/lc3plus_hr_encode.html)
* [Decoding](https://raw.githack.com/google/liblc3/main/conformance/lc3plus_hr_decode.html)
* [Encoding + Decoding](https://raw.githack.com/google/liblc3/main/conformance/lc3plus_hr_encdec.html)
* [Fallback mode](https://raw.githack.com/google/liblc3/main/conformance/lc3plus_hr_fallback.html)
* [Precision Requirements](https://raw.githack.com/google/liblc3/main/conformance/lc3plus_hr_precision.html)

View File

@ -0,0 +1,232 @@
<!DOCTYPE html><head><meta charset="UTF-8"><title>DECODE Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px; width:100%} th {padding:4px; border-top:1px solid #8f908a} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn{background-color:rgba(214,137,16,0.4)} a:link {color: white;text-decoration: none;} a:visited {color: white} a:hover {color: white;font-weight:bold;} a:active {color: rgb(155, 155, 155)}</style></head>
<body><h2>Conformance for "DECODE" passed!</h2>
<div><h3>SQAM - 100%</h3>
<table>
<tr><th>Mode</th><th>Item</th><th>Frame Size</th><th>Samplerate</th><th>Bitrate</th><th>Max. Abs. Diff</th><th>RMS [dB]</th><th>RMS Reached [bits]</th></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__10.0__8000__32000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>8000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-128 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__10.0__8000__32000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>8000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-134 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__8000__32000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>8000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__10.0__8000__32000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>8000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-128 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__10.0__8000__32000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>8000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__10.0__8000__32000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>8000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__10.0__8000__32000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>8000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__10.0__8000__32000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>8000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-133 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__10.0__8000__32000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>8000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__10.0__16000__32000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>16000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__10.0__16000__32000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>16000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__16000__32000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>16000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__10.0__16000__32000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>16000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__10.0__16000__32000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>16000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__10.0__16000__32000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>16000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__10.0__16000__32000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>16000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__10.0__16000__32000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>16000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__10.0__16000__32000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>16000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__10.0__32000__64000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>32000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-128 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__10.0__32000__128000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>32000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__10.0__32000__64000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>32000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__10.0__32000__128000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>32000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-132 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__32000__64000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>32000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__32000__128000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>32000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__10.0__32000__64000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__10.0__32000__128000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__10.0__32000__64000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>32000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-128 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__10.0__32000__128000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>32000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__10.0__32000__64000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>32000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__10.0__32000__128000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>32000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__10.0__32000__64000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>32000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__10.0__32000__128000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>32000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__10.0__32000__64000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>32000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__10.0__32000__128000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>32000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__10.0__32000__64000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>32000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__10.0__32000__128000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>32000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__10.0__48000__32000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__10.0__48000__64000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__10.0__48000__96000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>96000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__10.0__48000__128000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__10.0__48000__32000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-129 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__10.0__48000__64000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__10.0__48000__96000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>96000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-129 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__10.0__48000__128000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__48000__32000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__48000__64000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__48000__96000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>96000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__48000__128000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__10.0__48000__32000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__10.0__48000__64000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__10.0__48000__96000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>96000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__10.0__48000__128000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__10.0__48000__32000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__10.0__48000__64000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-128 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__10.0__48000__96000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>96000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__10.0__48000__128000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__10.0__48000__32000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__10.0__48000__64000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__10.0__48000__96000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>96000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__10.0__48000__128000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__10.0__48000__32000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__10.0__48000__64000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__10.0__48000__96000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>96000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__10.0__48000__128000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__10.0__48000__32000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__10.0__48000__64000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__10.0__48000__96000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>96000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__10.0__48000__128000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__10.0__48000__32000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__10.0__48000__64000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__10.0__48000__96000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>96000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__10.0__48000__128000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__5.0__48000__64000__0.txt">decode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__5.0__48000__128000__0.txt">decode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__5.0__48000__160000__0.txt">decode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>160000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__5.0__48000__192000__0.txt">decode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>192000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__5.0__48000__256000__0.txt">decode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__5.0__48000__64000__0.txt">decode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__5.0__48000__128000__0.txt">decode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__5.0__48000__160000__0.txt">decode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>160000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__5.0__48000__192000__0.txt">decode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>192000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__5.0__48000__256000__0.txt">decode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__5.0__48000__64000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__5.0__48000__128000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__5.0__48000__160000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>160000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__5.0__48000__192000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>192000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__5.0__48000__256000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__5.0__48000__64000__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__5.0__48000__128000__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__5.0__48000__160000__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>160000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__5.0__48000__192000__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>192000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__5.0__48000__256000__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__5.0__48000__64000__0.txt">decode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__5.0__48000__128000__0.txt">decode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-128 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__5.0__48000__160000__0.txt">decode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>160000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-128 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__5.0__48000__192000__0.txt">decode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>192000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__5.0__48000__256000__0.txt">decode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__5.0__48000__64000__0.txt">decode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__5.0__48000__128000__0.txt">decode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__5.0__48000__160000__0.txt">decode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>160000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__5.0__48000__192000__0.txt">decode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>192000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__5.0__48000__256000__0.txt">decode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__5.0__48000__64000__0.txt">decode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__5.0__48000__128000__0.txt">decode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__5.0__48000__160000__0.txt">decode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>160000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__5.0__48000__192000__0.txt">decode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>192000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__5.0__48000__256000__0.txt">decode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__5.0__48000__64000__0.txt">decode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__5.0__48000__128000__0.txt">decode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__5.0__48000__160000__0.txt">decode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>160000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__5.0__48000__192000__0.txt">decode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>192000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-132 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__5.0__48000__256000__0.txt">decode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-132 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__5.0__48000__64000__0.txt">decode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>64000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__5.0__48000__128000__0.txt">decode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__5.0__48000__160000__0.txt">decode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>160000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__5.0__48000__192000__0.txt">decode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>192000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__5.0__48000__256000__0.txt">decode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__2.5__48000__128000__0.txt">decode</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__2.5__48000__256000__0.txt">decode</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-128 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__ABBA__2.5__48000__320000__0.txt">decode</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__2.5__48000__128000__0.txt">decode</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__2.5__48000__256000__0.txt">decode</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Castanets__2.5__48000__320000__0.txt">decode</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__2.5__48000__128000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__2.5__48000__256000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Eddie_Rabbitt__2.5__48000__320000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__2.5__48000__128000__0.txt">decode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__2.5__48000__256000__0.txt">decode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Female_Speech_German__2.5__48000__320000__0.txt">decode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__2.5__48000__128000__0.txt">decode</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__2.5__48000__256000__0.txt">decode</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Glockenspiel__2.5__48000__320000__0.txt">decode</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__2.5__48000__128000__0.txt">decode</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__2.5__48000__256000__0.txt">decode</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Piano_Schubert__2.5__48000__320000__0.txt">decode</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__2.5__48000__128000__0.txt">decode</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__2.5__48000__256000__0.txt">decode</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Violoncello__2.5__48000__320000__0.txt">decode</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__2.5__48000__128000__0.txt">decode</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__2.5__48000__256000__0.txt">decode</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Harpsichord__2.5__48000__320000__0.txt">decode</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-132 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__2.5__48000__128000__0.txt">decode</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__2.5__48000__256000__0.txt">decode</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__sqam__decode__Male_Speech_English__2.5__48000__320000__0.txt">decode</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
</table>
</div>
<div><h3>Band Limitation - 100%</h3>
<table>
<tr><th>Mode</th><th>Item</th><th>Frame Size</th><th>Samplerate</th><th>Bitrate</th><th>Bandwidth</th><th>Max. Abs. Diff</th><th>RMS [dB]</th><th>RMS Reached [bits]</th></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__10.0__48000__92000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>92000</td><td>8000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__2.5__48000__320000__0.txt">decode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>4000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__10.0__16000__32000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>16000</td><td>32000</td><td>4000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__10.0__32000__64000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>64000</td><td>8000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__10.0__48000__92000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>92000</td><td>16000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__5.0__48000__184000__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>184000</td><td>8000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__5.0__48000__184000__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>184000</td><td>16000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__2.5__48000__320000__0.txt">decode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>8000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__2.5__48000__320000__0.txt">decode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>12000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__10.0__48000__92000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>92000</td><td>4000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__2.5__48000__320000__0.txt">decode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>16000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__10.0__32000__64000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>64000</td><td>4000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__5.0__48000__184000__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>184000</td><td>4000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__10.0__32000__64000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>64000</td><td>12000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__5.0__48000__184000__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>184000</td><td>12000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__band_limiting__decode__Female_Speech_German__10.0__48000__92000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>92000</td><td>12000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
</table>
</div>
<div><h3>Bitrate Switching - 100%</h3>
<table>
<tr><th>Mode</th><th>Item</th><th>Frame Size</th><th>Samplerate</th><th>Bitrate</th><th>Max. Abs. Diff</th><th>RMS [dB]</th><th>RMS Reached [bits]</th></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__ABBA__10.0__8000__(16000, 32000)__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>8000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-128 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Castanets__10.0__8000__(16000, 32000)__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>8000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Eddie_Rabbitt__10.0__8000__(16000, 32000)__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>8000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Female_Speech_German__10.0__8000__(16000, 32000)__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>8000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Glockenspiel__10.0__8000__(16000, 32000)__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>8000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-128 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Piano_Schubert__10.0__8000__(16000, 32000)__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>8000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Violoncello__10.0__8000__(16000, 32000)__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>8000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Harpsichord__10.0__8000__(16000, 32000)__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>8000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Male_Speech_English__10.0__8000__(16000, 32000)__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>8000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__ABBA__10.0__16000__(16000, 32000)__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>16000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Castanets__10.0__16000__(16000, 32000)__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>16000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Eddie_Rabbitt__10.0__16000__(16000, 32000)__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>16000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Female_Speech_German__10.0__16000__(16000, 32000)__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>16000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Glockenspiel__10.0__16000__(16000, 32000)__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>16000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-128 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Piano_Schubert__10.0__16000__(16000, 32000)__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>16000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Violoncello__10.0__16000__(16000, 32000)__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>16000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Harpsichord__10.0__16000__(16000, 32000)__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>16000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Male_Speech_English__10.0__16000__(16000, 32000)__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>16000</td><td>16000-32000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__ABBA__10.0__32000__(16000, 128000)__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>32000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Castanets__10.0__32000__(16000, 128000)__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>32000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-132 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Eddie_Rabbitt__10.0__32000__(16000, 128000)__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>32000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-123 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Female_Speech_German__10.0__32000__(16000, 128000)__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Glockenspiel__10.0__32000__(16000, 128000)__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>32000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Piano_Schubert__10.0__32000__(16000, 128000)__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>32000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Violoncello__10.0__32000__(16000, 128000)__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>32000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Harpsichord__10.0__32000__(16000, 128000)__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>32000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Male_Speech_English__10.0__32000__(16000, 128000)__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>32000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__ABBA__10.0__48000__(16000, 128000)__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Castanets__10.0__48000__(16000, 128000)__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Eddie_Rabbitt__10.0__48000__(16000, 128000)__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Female_Speech_German__10.0__48000__(16000, 128000)__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Glockenspiel__10.0__48000__(16000, 128000)__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Piano_Schubert__10.0__48000__(16000, 128000)__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Violoncello__10.0__48000__(16000, 128000)__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-122 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Harpsichord__10.0__48000__(16000, 128000)__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Male_Speech_English__10.0__48000__(16000, 128000)__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>16000-128000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__ABBA__5.0__48000__(32000, 256000)__0.txt">decode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>32000-256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Castanets__5.0__48000__(32000, 256000)__0.txt">decode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>32000-256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-129 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Eddie_Rabbitt__5.0__48000__(32000, 256000)__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>32000-256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Female_Speech_German__5.0__48000__(32000, 256000)__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>32000-256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Glockenspiel__5.0__48000__(32000, 256000)__0.txt">decode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>32000-256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-128 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Piano_Schubert__5.0__48000__(32000, 256000)__0.txt">decode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>32000-256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Violoncello__5.0__48000__(32000, 256000)__0.txt">decode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>32000-256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Harpsichord__5.0__48000__(32000, 256000)__0.txt">decode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>32000-256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-132 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Male_Speech_English__5.0__48000__(32000, 256000)__0.txt">decode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>32000-256000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__ABBA__2.5__48000__(64000, 320000)__0.txt">decode</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>64000-320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-128 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Castanets__2.5__48000__(64000, 320000)__0.txt">decode</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>64000-320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-130 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Eddie_Rabbitt__2.5__48000__(64000, 320000)__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>64000-320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Female_Speech_German__2.5__48000__(64000, 320000)__0.txt">decode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>64000-320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-125 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Glockenspiel__2.5__48000__(64000, 320000)__0.txt">decode</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>64000-320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-127 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Piano_Schubert__2.5__48000__(64000, 320000)__0.txt">decode</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>64000-320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-126 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Violoncello__2.5__48000__(64000, 320000)__0.txt">decode</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>64000-320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Harpsichord__2.5__48000__(64000, 320000)__0.txt">decode</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>64000-320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-131 (-89.1)</td><td class=none>16 (14)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/DECODE__bitrate_switching__decode__Male_Speech_English__2.5__48000__(64000, 320000)__0.txt">decode</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>64000-320000</td><td class=pass>3.05e-05 (0.00148)</td><td class=pass>-124 (-89.1)</td><td class=none>16 (14)</td></tr>
</table>
</div>
</body>

View File

@ -0,0 +1,173 @@
<!DOCTYPE html><head><meta charset="UTF-8"><title>ENCDEC Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px; width:100%} th {padding:4px; border-top:1px solid #8f908a} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn{background-color:rgba(214,137,16,0.4)} a:link {color: white;text-decoration: none;} a:visited {color: white} a:hover {color: white;font-weight:bold;} a:active {color: rgb(155, 155, 155)}</style></head>
<body><h2>Conformance for "ENCDEC" passed!</h2>
<div><h3>SQAM - 100%</h3>
<table>
<tr><th>Mode</th><th>Item</th><th>Frame Size</th><th>Samplerate</th><th>Bitrate</th><th>ODG<sub>ref</sub></th><th>&#916<sub>ODG</sub></th></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__10.0__8000__32000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.18</td><td class=pass>0.000782 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__10.0__8000__32000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.0965</td><td class=pass>3.3e-05 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__8000__32000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.165</td><td class=pass>0.00328 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__8000__32000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.241</td><td class=pass>0.000198 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__8000__32000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.937</td><td class=pass>0.0048 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__8000__32000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.381</td><td class=pass>5.9e-05 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__10.0__8000__32000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.544</td><td class=pass>0.00971 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__10.0__8000__32000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>8000</td><td>32000</td><td>-1.03</td><td class=pass>0.0182 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__8000__32000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.201</td><td class=pass>0.00165 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__10.0__16000__32000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>16000</td><td>32000</td><td>-1.38</td><td class=pass>0.00187 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__10.0__16000__32000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>16000</td><td>32000</td><td>-1.08</td><td class=pass>0.000114 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__16000__32000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>16000</td><td>32000</td><td>-1.11</td><td class=pass>0.00302 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__16000__32000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>16000</td><td>32000</td><td>-1.55</td><td class=pass>0.0141 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__16000__32000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>16000</td><td>32000</td><td>-2.66</td><td class=pass>0.00408 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__16000__32000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>16000</td><td>32000</td><td>-1.7</td><td class=pass>0.00881 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__10.0__16000__32000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>16000</td><td>32000</td><td>-2.01</td><td class=pass>0.0115 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__10.0__16000__32000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>16000</td><td>32000</td><td>-3.15</td><td class=pass>0.00222 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__16000__32000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>16000</td><td>32000</td><td>-1.42</td><td class=pass>0.00126 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__10.0__32000__64000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>32000</td><td>64000</td><td>-0.633</td><td class=pass>0.00141 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__10.0__32000__128000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>32000</td><td>128000</td><td>0.0127</td><td class=pass>0.00398 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__10.0__32000__64000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>32000</td><td>64000</td><td>-0.799</td><td class=pass>0.000342 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__10.0__32000__128000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>32000</td><td>128000</td><td>0.00203</td><td class=pass>0.000637 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__32000__64000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>32000</td><td>64000</td><td>-0.625</td><td class=pass>0.00434 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__32000__128000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>32000</td><td>128000</td><td>0.0102</td><td class=pass>0.00151 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__32000__64000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>64000</td><td>-0.762</td><td class=pass>0.00626 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__32000__128000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>128000</td><td>0.0184</td><td class=pass>0.00666 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__32000__64000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>32000</td><td>64000</td><td>-1.57</td><td class=pass>0.000125 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__32000__128000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>32000</td><td>128000</td><td>-0.014</td><td class=pass>0.00361 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__32000__64000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>32000</td><td>64000</td><td>-0.384</td><td class=pass>0.00184 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__32000__128000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>32000</td><td>128000</td><td>0.0254</td><td class=pass>0.000597 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__10.0__32000__64000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>32000</td><td>64000</td><td>-1.29</td><td class=pass>0.0055 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__10.0__32000__128000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>32000</td><td>128000</td><td>-0.0214</td><td class=pass>0.00084 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__10.0__32000__64000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>32000</td><td>64000</td><td>-1.7</td><td class=pass>0.00968 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__10.0__32000__128000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>32000</td><td>128000</td><td>-0.0732</td><td class=pass>0.00106 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__32000__64000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>32000</td><td>64000</td><td>-0.733</td><td class=pass>0.000193 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__32000__128000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>32000</td><td>128000</td><td>0.0186</td><td class=pass>0.00141 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__10.0__48000__32000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>32000</td><td>-2.98</td><td class=pass>0.077 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__10.0__48000__64000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>64000</td><td>-0.781</td><td class=pass>0.00257 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__10.0__48000__96000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.229</td><td class=pass>7.4e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__10.0__48000__128000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.0281</td><td class=pass>0.00212 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__10.0__48000__32000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>32000</td><td>-3.05</td><td class=pass>0.000126 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__10.0__48000__64000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>64000</td><td>-0.974</td><td class=pass>9.9e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__10.0__48000__96000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.246</td><td class=pass>0.000159 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__10.0__48000__128000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.0452</td><td class=pass>0.00272 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__48000__32000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>32000</td><td>-2.57</td><td class=pass>0.00808 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__48000__64000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>64000</td><td>-0.683</td><td class=pass>0.00496 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__48000__96000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.205</td><td class=pass>0.000209 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__48000__128000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.022</td><td class=pass>0.0029 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__48000__32000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>32000</td><td>-3.02</td><td class=pass>0.00892 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__48000__64000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>64000</td><td>-0.923</td><td class=pass>0.0185 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__48000__96000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.234</td><td class=pass>2.3e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__48000__128000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.0229</td><td class=pass>0.000146 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__48000__32000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>32000</td><td>-3.73</td><td class=pass>0.000191 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__48000__64000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>64000</td><td>-2.2</td><td class=pass>0.00224 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__48000__96000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.236</td><td class=pass>0.000317 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__48000__128000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.0421</td><td class=pass>0.00315 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__48000__32000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>32000</td><td>-2.15</td><td class=pass>0.00299 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__48000__64000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>64000</td><td>-0.443</td><td class=pass>0.000636 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__48000__96000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.0755</td><td class=pass>0.000142 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__48000__128000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>128000</td><td>0.017</td><td class=pass>1.7e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__10.0__48000__32000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>32000</td><td>-3.04</td><td class=pass>0.00503 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__10.0__48000__64000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>64000</td><td>-1.39</td><td class=pass>0.00924 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__10.0__48000__96000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.524</td><td class=pass>0.000131 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__10.0__48000__128000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.0917</td><td class=pass>0.00198 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__10.0__48000__32000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>32000</td><td>-3.71</td><td class=pass>0.00152 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__10.0__48000__64000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>64000</td><td>-1.87</td><td class=pass>0.0187 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__10.0__48000__96000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.639</td><td class=pass>0.000228 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__10.0__48000__128000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.155</td><td class=pass>0.0023 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__48000__32000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>32000</td><td>-2.71</td><td class=pass>0.00211 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__48000__64000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>64000</td><td>-0.763</td><td class=pass>5.9e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__48000__96000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.175</td><td class=pass>0.000235 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__48000__128000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.00993</td><td class=pass>0.00272 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__5.0__48000__64000__0.txt">encdec</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>64000</td><td>-0.912</td><td class=pass>0.00049 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__5.0__48000__128000__0.txt">encdec</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0877</td><td class=pass>0.000151 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__5.0__48000__160000__0.txt">encdec</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>160000</td><td>0.00468</td><td class=pass>1.6e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__5.0__48000__192000__0.txt">encdec</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0471</td><td class=pass>7.8e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__5.0__48000__256000__0.txt">encdec</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0567</td><td class=pass>0.00249 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__5.0__48000__64000__0.txt">encdec</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>64000</td><td>-1.1</td><td class=pass>0.00693 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__5.0__48000__128000__0.txt">encdec</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0906</td><td class=pass>6e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__5.0__48000__160000__0.txt">encdec</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>160000</td><td>-0.00657</td><td class=pass>0.000119 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__5.0__48000__192000__0.txt">encdec</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0352</td><td class=pass>0.00012 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__5.0__48000__256000__0.txt">encdec</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0467</td><td class=pass>6.8e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__5.0__48000__64000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>64000</td><td>-0.974</td><td class=pass>0.0357 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__5.0__48000__128000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0755</td><td class=pass>0.000439 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__5.0__48000__160000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>160000</td><td>0.00577</td><td class=pass>2.7e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__5.0__48000__192000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0438</td><td class=pass>0.000169 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__5.0__48000__256000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0567</td><td class=pass>0.00121 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__5.0__48000__64000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>64000</td><td>-1.33</td><td class=pass>0.0431 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__5.0__48000__128000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0895</td><td class=pass>0.000686 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__5.0__48000__160000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>160000</td><td>0.0083</td><td class=pass>2e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__5.0__48000__192000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>192000</td><td>0.045</td><td class=pass>0.000579 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__5.0__48000__256000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0547</td><td class=pass>4.8e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__5.0__48000__64000__0.txt">encdec</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>64000</td><td>-2.96</td><td class=pass>0.000932 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__5.0__48000__128000__0.txt">encdec</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0739</td><td class=pass>0.0011 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__5.0__48000__160000__0.txt">encdec</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>160000</td><td>0.00841</td><td class=pass>0.0025 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__5.0__48000__192000__0.txt">encdec</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0383</td><td class=pass>0.000107 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__5.0__48000__256000__0.txt">encdec</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0552</td><td class=pass>0.000562 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__5.0__48000__64000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>64000</td><td>-0.823</td><td class=pass>0.00564 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__5.0__48000__128000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0189</td><td class=pass>0.000517 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__5.0__48000__160000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>160000</td><td>0.031</td><td class=pass>0.000296 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__5.0__48000__192000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0519</td><td class=pass>0.000235 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__5.0__48000__256000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0536</td><td class=pass>0.000676 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__5.0__48000__64000__0.txt">encdec</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>64000</td><td>-1.99</td><td class=pass>0.0367 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__5.0__48000__128000__0.txt">encdec</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.259</td><td class=pass>0.00171 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__5.0__48000__160000__0.txt">encdec</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>160000</td><td>-0.0323</td><td class=pass>0.00034 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__5.0__48000__192000__0.txt">encdec</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0422</td><td class=pass>2.3e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__5.0__48000__256000__0.txt">encdec</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>256000</td><td>0.061</td><td class=pass>0.00047 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__5.0__48000__64000__0.txt">encdec</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>64000</td><td>-2.56</td><td class=pass>0.0218 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__5.0__48000__128000__0.txt">encdec</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.336</td><td class=pass>9.4e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__5.0__48000__160000__0.txt">encdec</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>160000</td><td>-0.0888</td><td class=pass>0.000809 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__5.0__48000__192000__0.txt">encdec</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0156</td><td class=pass>7.7e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__5.0__48000__256000__0.txt">encdec</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0582</td><td class=pass>0.000359 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__5.0__48000__64000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>64000</td><td>-1.14</td><td class=pass>0.0121 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__5.0__48000__128000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0558</td><td class=pass>0.00013 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__5.0__48000__160000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>160000</td><td>0.0131</td><td class=pass>0.000126 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__5.0__48000__192000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0492</td><td class=pass>0.0002 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__5.0__48000__256000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0579</td><td class=pass>0.00273 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__2.5__48000__128000__0.txt">encdec</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.174</td><td class=pass>0.00139 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__2.5__48000__256000__0.txt">encdec</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0473</td><td class=pass>1.1e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__ABBA__2.5__48000__320000__0.txt">encdec</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0574</td><td class=pass>6e-06 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__2.5__48000__128000__0.txt">encdec</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.169</td><td class=pass>0.000672 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__2.5__48000__256000__0.txt">encdec</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0323</td><td class=pass>3.3e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Castanets__2.5__48000__320000__0.txt">encdec</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0435</td><td class=pass>0.000197 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__2.5__48000__128000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.193</td><td class=pass>0.00732 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__2.5__48000__256000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0505</td><td class=pass>6.9e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__2.5__48000__320000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0574</td><td class=pass>0.000113 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__2.5__48000__128000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.292</td><td class=pass>0.0153 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__2.5__48000__256000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0512</td><td class=pass>0.000295 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Female_Speech_German__2.5__48000__320000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0552</td><td class=pass>0.000225 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__2.5__48000__128000__0.txt">encdec</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>128000</td><td>-1.69</td><td class=pass>0.014 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__2.5__48000__256000__0.txt">encdec</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>256000</td><td>0.05</td><td class=pass>5e-06 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Glockenspiel__2.5__48000__320000__0.txt">encdec</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0559</td><td class=pass>0.00022 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__2.5__48000__128000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.186</td><td class=pass>0.00412 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__2.5__48000__256000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0547</td><td class=pass>0.000468 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Piano_Schubert__2.5__48000__320000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0517</td><td class=pass>5.8e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__2.5__48000__128000__0.txt">encdec</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.605</td><td class=pass>0.0548 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__2.5__48000__256000__0.txt">encdec</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0559</td><td class=pass>4e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Violoncello__2.5__48000__320000__0.txt">encdec</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0615</td><td class=pass>9.6e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__2.5__48000__128000__0.txt">encdec</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.807</td><td class=pass>0.0387 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__2.5__48000__256000__0.txt">encdec</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0426</td><td class=pass>2.8e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Harpsichord__2.5__48000__320000__0.txt">encdec</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0598</td><td class=pass>0.000189 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__2.5__48000__128000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.253</td><td class=pass>0.000255 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__2.5__48000__256000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0547</td><td class=pass>6.5e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__sqam__encdec__Male_Speech_English__2.5__48000__320000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0585</td><td class=pass>0.000147 (0.06)</td></tr>
</table>
</div>
<div><h3>Band Limitation - 100%</h3>
<table>
<tr><th>Mode</th><th>Item</th><th>Frame Size</th><th>Samplerate</th><th>Bitrate</th><th>Bandwidth</th><th>ODG<sub>ref</sub></th><th>&#916<sub>ODG</sub></th></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__10.0__16000__32000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>16000</td><td>32000</td><td>4000</td><td>-0.616</td><td class=pass>0.015 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__10.0__32000__64000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>64000</td><td>8000</td><td>-0.217</td><td class=pass>0.0026 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__10.0__48000__92000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>92000</td><td>4000</td><td>-0.0226</td><td class=pass>0.000514 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__5.0__48000__184000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>184000</td><td>8000</td><td>0.033</td><td class=pass>0.000436 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__10.0__48000__92000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>92000</td><td>12000</td><td>-0.045</td><td class=pass>0.000354 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__2.5__48000__320000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>8000</td><td>0.0271</td><td class=pass>0.00204 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__5.0__48000__184000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>184000</td><td>16000</td><td>0.051</td><td class=pass>0.000448 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__2.5__48000__320000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>16000</td><td>0.0554</td><td class=pass>0.000527 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__2.5__48000__320000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>12000</td><td>0.0588</td><td class=pass>0.00069 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__10.0__32000__64000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>64000</td><td>4000</td><td>-0.229</td><td class=pass>0.00847 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__5.0__48000__184000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>184000</td><td>4000</td><td>0.0535</td><td class=pass>3.8e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__10.0__48000__92000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>92000</td><td>8000</td><td>0.00497</td><td class=pass>0.000406 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__10.0__48000__92000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>92000</td><td>16000</td><td>-0.191</td><td class=pass>0.000559 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__2.5__48000__320000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>4000</td><td>0.0543</td><td class=pass>0.000174 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__10.0__32000__64000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>64000</td><td>12000</td><td>-0.487</td><td class=pass>0.00685 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCDEC__band_limiting__encdec__Female_Speech_German__5.0__48000__184000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>184000</td><td>12000</td><td>0.0563</td><td class=pass>3.2e-05 (0.06)</td></tr>
</table>
</div>
</body>

View File

@ -0,0 +1,173 @@
<!DOCTYPE html><head><meta charset="UTF-8"><title>ENCODE Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px; width:100%} th {padding:4px; border-top:1px solid #8f908a} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn{background-color:rgba(214,137,16,0.4)} a:link {color: white;text-decoration: none;} a:visited {color: white} a:hover {color: white;font-weight:bold;} a:active {color: rgb(155, 155, 155)}</style></head>
<body><h2>Conformance for "ENCODE" passed!</h2>
<div><h3>SQAM - 100%</h3>
<table>
<tr><th>Mode</th><th>Item</th><th>Frame Size</th><th>Samplerate</th><th>Bitrate</th><th>ODG<sub>ref</sub></th><th>&#916<sub>ODG</sub></th></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__10.0__8000__32000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.18</td><td class=pass>0.000532 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__10.0__8000__32000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.0965</td><td class=pass>3.5e-05 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__8000__32000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.165</td><td class=pass>0.00319 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__10.0__8000__32000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.241</td><td class=pass>0.000313 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__10.0__8000__32000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.937</td><td class=pass>0.00545 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__10.0__8000__32000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.381</td><td class=pass>0.00113 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__10.0__8000__32000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.544</td><td class=pass>0.01 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__10.0__8000__32000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>8000</td><td>32000</td><td>-1.03</td><td class=pass>0.0191 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__10.0__8000__32000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>8000</td><td>32000</td><td>-0.201</td><td class=pass>0.00156 (0.15)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__10.0__16000__32000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>16000</td><td>32000</td><td>-1.38</td><td class=pass>0.00227 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__10.0__16000__32000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>16000</td><td>32000</td><td>-1.08</td><td class=pass>0.000102 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__16000__32000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>16000</td><td>32000</td><td>-1.11</td><td class=pass>0.00347 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__10.0__16000__32000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>16000</td><td>32000</td><td>-1.55</td><td class=pass>0.0141 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__10.0__16000__32000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>16000</td><td>32000</td><td>-2.66</td><td class=pass>0.00447 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__10.0__16000__32000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>16000</td><td>32000</td><td>-1.7</td><td class=pass>0.00709 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__10.0__16000__32000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>16000</td><td>32000</td><td>-2.01</td><td class=pass>0.0112 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__10.0__16000__32000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>16000</td><td>32000</td><td>-3.15</td><td class=pass>0.00225 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__10.0__16000__32000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>16000</td><td>32000</td><td>-1.42</td><td class=pass>0.00109 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__10.0__32000__64000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>32000</td><td>64000</td><td>-0.633</td><td class=pass>0.00141 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__10.0__32000__128000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>32000</td><td>128000</td><td>0.0127</td><td class=pass>0.00399 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__10.0__32000__64000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>32000</td><td>64000</td><td>-0.799</td><td class=pass>0.000333 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__10.0__32000__128000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>32000</td><td>128000</td><td>0.00203</td><td class=pass>0.00063 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__32000__64000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>32000</td><td>64000</td><td>-0.625</td><td class=pass>0.00438 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__32000__128000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>32000</td><td>128000</td><td>0.0102</td><td class=pass>0.00151 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__10.0__32000__64000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>64000</td><td>-0.762</td><td class=pass>0.00627 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__10.0__32000__128000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>128000</td><td>0.0184</td><td class=pass>0.00667 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__10.0__32000__64000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>32000</td><td>64000</td><td>-1.57</td><td class=pass>0.000545 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__10.0__32000__128000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>32000</td><td>128000</td><td>-0.014</td><td class=pass>0.00353 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__10.0__32000__64000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>32000</td><td>64000</td><td>-0.384</td><td class=pass>0.00204 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__10.0__32000__128000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>32000</td><td>128000</td><td>0.0254</td><td class=pass>0.000649 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__10.0__32000__64000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>32000</td><td>64000</td><td>-1.29</td><td class=pass>0.0055 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__10.0__32000__128000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>32000</td><td>128000</td><td>-0.0214</td><td class=pass>0.00088 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__10.0__32000__64000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>32000</td><td>64000</td><td>-1.7</td><td class=pass>0.00967 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__10.0__32000__128000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>32000</td><td>128000</td><td>-0.0732</td><td class=pass>0.00103 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__10.0__32000__64000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>32000</td><td>64000</td><td>-0.733</td><td class=pass>0.000152 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__10.0__32000__128000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>32000</td><td>128000</td><td>0.0186</td><td class=pass>0.00139 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__10.0__48000__32000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>32000</td><td>-2.98</td><td class=pass>0.077 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__10.0__48000__64000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>64000</td><td>-0.781</td><td class=pass>0.0026 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__10.0__48000__96000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.229</td><td class=pass>6.6e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__10.0__48000__128000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.0281</td><td class=pass>0.00211 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__10.0__48000__32000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>32000</td><td>-3.05</td><td class=pass>0.000102 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__10.0__48000__64000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>64000</td><td>-0.974</td><td class=pass>0.000117 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__10.0__48000__96000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.246</td><td class=pass>0.000171 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__10.0__48000__128000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.0452</td><td class=pass>0.00273 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__48000__32000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>32000</td><td>-2.57</td><td class=pass>0.00812 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__48000__64000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>64000</td><td>-0.683</td><td class=pass>0.00496 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__48000__96000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.205</td><td class=pass>0.000205 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__48000__128000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.022</td><td class=pass>0.0029 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__10.0__48000__32000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>32000</td><td>-3.02</td><td class=pass>0.00894 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__10.0__48000__64000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>64000</td><td>-0.923</td><td class=pass>0.0185 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__10.0__48000__96000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.234</td><td class=pass>1e-06 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__10.0__48000__128000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.0229</td><td class=pass>0.000141 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__10.0__48000__32000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>32000</td><td>-3.73</td><td class=pass>0.000115 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__10.0__48000__64000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>64000</td><td>-2.2</td><td class=pass>0.00226 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__10.0__48000__96000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.236</td><td class=pass>0.000353 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__10.0__48000__128000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.0421</td><td class=pass>0.00304 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__10.0__48000__32000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>32000</td><td>-2.15</td><td class=pass>0.00268 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__10.0__48000__64000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>64000</td><td>-0.443</td><td class=pass>0.000672 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__10.0__48000__96000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.0755</td><td class=pass>0.00012 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__10.0__48000__128000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>128000</td><td>0.017</td><td class=pass>1.9e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__10.0__48000__32000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>32000</td><td>-3.04</td><td class=pass>0.00505 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__10.0__48000__64000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>64000</td><td>-1.39</td><td class=pass>0.00916 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__10.0__48000__96000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.524</td><td class=pass>5.9e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__10.0__48000__128000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.0917</td><td class=pass>0.00203 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__10.0__48000__32000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>32000</td><td>-3.71</td><td class=pass>0.00152 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__10.0__48000__64000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>64000</td><td>-1.87</td><td class=pass>0.0187 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__10.0__48000__96000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.639</td><td class=pass>0.000228 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__10.0__48000__128000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.155</td><td class=pass>0.00227 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__10.0__48000__32000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>32000</td><td>-2.71</td><td class=pass>0.00214 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__10.0__48000__64000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>64000</td><td>-0.763</td><td class=pass>5.3e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__10.0__48000__96000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>96000</td><td>-0.175</td><td class=pass>0.000235 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__10.0__48000__128000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>128000</td><td>-0.00993</td><td class=pass>0.00273 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__5.0__48000__64000__0.txt">encode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>64000</td><td>-0.912</td><td class=pass>0.000479 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__5.0__48000__128000__0.txt">encode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0877</td><td class=pass>0.000148 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__5.0__48000__160000__0.txt">encode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>160000</td><td>0.00468</td><td class=pass>1.8e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__5.0__48000__192000__0.txt">encode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0471</td><td class=pass>7.7e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__5.0__48000__256000__0.txt">encode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0567</td><td class=pass>0.0025 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__5.0__48000__64000__0.txt">encode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>64000</td><td>-1.1</td><td class=pass>0.00693 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__5.0__48000__128000__0.txt">encode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0906</td><td class=pass>5.9e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__5.0__48000__160000__0.txt">encode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>160000</td><td>-0.00657</td><td class=pass>0.000131 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__5.0__48000__192000__0.txt">encode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0352</td><td class=pass>0.000122 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__5.0__48000__256000__0.txt">encode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0467</td><td class=pass>7e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__5.0__48000__64000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>64000</td><td>-0.974</td><td class=pass>0.0357 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__5.0__48000__128000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0755</td><td class=pass>0.000437 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__5.0__48000__160000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>160000</td><td>0.00577</td><td class=pass>1.5e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__5.0__48000__192000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0438</td><td class=pass>0.000157 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__5.0__48000__256000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0567</td><td class=pass>0.0012 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__5.0__48000__64000__0.txt">encode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>64000</td><td>-1.33</td><td class=pass>0.043 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__5.0__48000__128000__0.txt">encode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0895</td><td class=pass>0.00066 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__5.0__48000__160000__0.txt">encode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>160000</td><td>0.0083</td><td class=pass>1.8e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__5.0__48000__192000__0.txt">encode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>192000</td><td>0.045</td><td class=pass>0.000591 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__5.0__48000__256000__0.txt">encode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0547</td><td class=pass>3.4e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__5.0__48000__64000__0.txt">encode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>64000</td><td>-2.96</td><td class=pass>0.000489 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__5.0__48000__128000__0.txt">encode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0739</td><td class=pass>0.00126 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__5.0__48000__160000__0.txt">encode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>160000</td><td>0.00841</td><td class=pass>0.00259 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__5.0__48000__192000__0.txt">encode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0383</td><td class=pass>0.000237 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__5.0__48000__256000__0.txt">encode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0552</td><td class=pass>0.000583 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__5.0__48000__64000__0.txt">encode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>64000</td><td>-0.823</td><td class=pass>0.0056 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__5.0__48000__128000__0.txt">encode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0189</td><td class=pass>0.000541 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__5.0__48000__160000__0.txt">encode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>160000</td><td>0.031</td><td class=pass>0.000205 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__5.0__48000__192000__0.txt">encode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0519</td><td class=pass>0.00023 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__5.0__48000__256000__0.txt">encode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0536</td><td class=pass>0.000613 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__5.0__48000__64000__0.txt">encode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>64000</td><td>-1.99</td><td class=pass>0.0367 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__5.0__48000__128000__0.txt">encode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.259</td><td class=pass>0.00169 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__5.0__48000__160000__0.txt">encode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>160000</td><td>-0.0323</td><td class=pass>0.000338 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__5.0__48000__192000__0.txt">encode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0422</td><td class=pass>2.1e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__5.0__48000__256000__0.txt">encode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>256000</td><td>0.061</td><td class=pass>0.000428 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__5.0__48000__64000__0.txt">encode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>64000</td><td>-2.56</td><td class=pass>0.0219 (0.12)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__5.0__48000__128000__0.txt">encode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.336</td><td class=pass>0.0001 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__5.0__48000__160000__0.txt">encode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>160000</td><td>-0.0888</td><td class=pass>0.000801 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__5.0__48000__192000__0.txt">encode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0156</td><td class=pass>6e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__5.0__48000__256000__0.txt">encode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0582</td><td class=pass>0.000371 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__5.0__48000__64000__0.txt">encode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>64000</td><td>-1.14</td><td class=pass>0.0121 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__5.0__48000__128000__0.txt">encode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>128000</td><td>-0.0558</td><td class=pass>0.000112 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__5.0__48000__160000__0.txt">encode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>160000</td><td>0.0131</td><td class=pass>0.000132 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__5.0__48000__192000__0.txt">encode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>192000</td><td>0.0492</td><td class=pass>0.000216 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__5.0__48000__256000__0.txt">encode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>256000</td><td>0.0579</td><td class=pass>0.00275 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__2.5__48000__128000__0.txt">encode</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.174</td><td class=pass>0.00138 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__2.5__48000__256000__0.txt">encode</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0473</td><td class=pass>1.3e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__ABBA__2.5__48000__320000__0.txt">encode</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0574</td><td class=pass>2.2e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__2.5__48000__128000__0.txt">encode</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.169</td><td class=pass>0.000659 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__2.5__48000__256000__0.txt">encode</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0323</td><td class=pass>3.7e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Castanets__2.5__48000__320000__0.txt">encode</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0435</td><td class=pass>0.000226 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__2.5__48000__128000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.193</td><td class=pass>0.00731 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__2.5__48000__256000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0505</td><td class=pass>7.2e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Eddie_Rabbitt__2.5__48000__320000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0574</td><td class=pass>0.000112 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__2.5__48000__128000__0.txt">encode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.292</td><td class=pass>0.0153 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__2.5__48000__256000__0.txt">encode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0512</td><td class=pass>0.000298 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Female_Speech_German__2.5__48000__320000__0.txt">encode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0552</td><td class=pass>0.000231 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__2.5__48000__128000__0.txt">encode</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>128000</td><td>-1.69</td><td class=pass>0.0134 (0.08)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__2.5__48000__256000__0.txt">encode</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>256000</td><td>0.05</td><td class=pass>0.000125 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Glockenspiel__2.5__48000__320000__0.txt">encode</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0559</td><td class=pass>0.000257 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__2.5__48000__128000__0.txt">encode</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.186</td><td class=pass>0.00411 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__2.5__48000__256000__0.txt">encode</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0547</td><td class=pass>0.000496 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Piano_Schubert__2.5__48000__320000__0.txt">encode</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0517</td><td class=pass>0.000108 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__2.5__48000__128000__0.txt">encode</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.605</td><td class=pass>0.0549 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__2.5__48000__256000__0.txt">encode</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0559</td><td class=pass>2.1e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Violoncello__2.5__48000__320000__0.txt">encode</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0615</td><td class=pass>9.5e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__2.5__48000__128000__0.txt">encode</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.807</td><td class=pass>0.0387 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__2.5__48000__256000__0.txt">encode</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0426</td><td class=pass>3.2e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Harpsichord__2.5__48000__320000__0.txt">encode</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0598</td><td class=pass>0.000176 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__2.5__48000__128000__0.txt">encode</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>128000</td><td>-0.253</td><td class=pass>0.000217 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__2.5__48000__256000__0.txt">encode</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>256000</td><td>0.0547</td><td class=pass>6.2e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__sqam__encode__Male_Speech_English__2.5__48000__320000__0.txt">encode</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>320000</td><td>0.0585</td><td class=pass>0.000139 (0.06)</td></tr>
</table>
</div>
<div><h3>Band Limitation - 100%</h3>
<table>
<tr><th>Mode</th><th>Item</th><th>Frame Size</th><th>Samplerate</th><th>Bitrate</th><th>Bandwidth</th><th>ODG<sub>ref</sub></th><th>&#916<sub>ODG</sub></th></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__10.0__48000__92000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>92000</td><td>16000</td><td>-0.191</td><td class=pass>0.000576 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__10.0__16000__32000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>16000</td><td>32000</td><td>4000</td><td>-0.616</td><td class=pass>0.0152 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__2.5__48000__320000__0.txt">encode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>16000</td><td>0.0554</td><td class=pass>0.000477 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__10.0__48000__92000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>92000</td><td>4000</td><td>-0.0226</td><td class=pass>0.000864 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__5.0__48000__184000__0.txt">encode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>184000</td><td>4000</td><td>0.0535</td><td class=pass>0.000132 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__10.0__32000__64000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>64000</td><td>8000</td><td>-0.217</td><td class=pass>0.00258 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__5.0__48000__184000__0.txt">encode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>184000</td><td>12000</td><td>0.0563</td><td class=pass>2.8e-05 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__2.5__48000__320000__0.txt">encode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>4000</td><td>0.0543</td><td class=pass>0.000301 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__10.0__48000__92000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>92000</td><td>12000</td><td>-0.045</td><td class=pass>0.000333 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__2.5__48000__320000__0.txt">encode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>12000</td><td>0.0588</td><td class=pass>0.000664 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__10.0__32000__64000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>64000</td><td>4000</td><td>-0.229</td><td class=pass>0.00863 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__10.0__48000__92000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>92000</td><td>8000</td><td>0.00497</td><td class=pass>0.000274 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__5.0__48000__184000__0.txt">encode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>184000</td><td>8000</td><td>0.033</td><td class=pass>0.000545 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__10.0__32000__64000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>32000</td><td>64000</td><td>12000</td><td>-0.487</td><td class=pass>0.00644 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__5.0__48000__184000__0.txt">encode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>184000</td><td>16000</td><td>0.051</td><td class=pass>0.000454 (0.06)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-28_log/ENCODE__band_limiting__encode__Female_Speech_German__2.5__48000__320000__0.txt">encode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>320000</td><td>8000</td><td>0.0271</td><td class=pass>0.00186 (0.06)</td></tr>
</table>
</div>
</body>

View File

@ -0,0 +1,107 @@
<!DOCTYPE html><head><meta charset="UTF-8"><title>DECODE Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px; width:100%} th {padding:4px; border-top:1px solid #8f908a} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn{background-color:rgba(214,137,16,0.4)} a:link {color: white;text-decoration: none;} a:visited {color: white} a:hover {color: white;font-weight:bold;} a:active {color: rgb(155, 155, 155)}</style></head>
<body><h2>Conformance for "DECODE" passed!</h2>
<div><h3>SQAM - 100%</h3>
<table>
<tr><th>Mode</th><th>Item</th><th>Frame Size</th><th>Samplerate</th><th>Bitrate</th><th>Max. Abs. Diff</th><th>RMS [dB]</th><th>RMS Reached [bits]</th></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__ABBA__10.0__48000__124800__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__ABBA__10.0__48000__128000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__ABBA__10.0__48000__160000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__ABBA__10.0__48000__192000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__ABBA__10.0__48000__500000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Castanets__10.0__48000__124800__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>5.96e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Castanets__10.0__48000__128000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Castanets__10.0__48000__160000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Castanets__10.0__48000__192000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Castanets__10.0__48000__500000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__48000__124800__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__48000__128000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__48000__160000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__48000__192000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__48000__500000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Female_Speech_German__10.0__48000__124800__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Female_Speech_German__10.0__48000__128000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Female_Speech_German__10.0__48000__160000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Female_Speech_German__10.0__48000__192000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Female_Speech_German__10.0__48000__500000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Glockenspiel__10.0__48000__124800__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Glockenspiel__10.0__48000__128000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Glockenspiel__10.0__48000__160000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Glockenspiel__10.0__48000__192000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-152 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Glockenspiel__10.0__48000__500000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Piano_Schubert__10.0__48000__124800__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Piano_Schubert__10.0__48000__128000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Piano_Schubert__10.0__48000__160000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Piano_Schubert__10.0__48000__192000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Piano_Schubert__10.0__48000__500000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Violoncello__10.0__48000__124800__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Violoncello__10.0__48000__128000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Violoncello__10.0__48000__160000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Violoncello__10.0__48000__192000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Violoncello__10.0__48000__500000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Harpsichord__10.0__48000__124800__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Harpsichord__10.0__48000__128000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Harpsichord__10.0__48000__160000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Harpsichord__10.0__48000__192000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Harpsichord__10.0__48000__500000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Male_Speech_English__10.0__48000__124800__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Male_Speech_English__10.0__48000__128000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Male_Speech_English__10.0__48000__160000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Male_Speech_English__10.0__48000__192000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Male_Speech_English__10.0__48000__500000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__ABBA__10.0__96000__149600__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__ABBA__10.0__96000__160000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__ABBA__10.0__96000__192000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__ABBA__10.0__96000__256000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__ABBA__10.0__96000__320000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__ABBA__10.0__96000__500000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Castanets__10.0__96000__149600__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Castanets__10.0__96000__160000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>4.77e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Castanets__10.0__96000__192000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>4.77e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Castanets__10.0__96000__256000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>4.77e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Castanets__10.0__96000__320000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>4.77e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Castanets__10.0__96000__500000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__96000__149600__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>4.77e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__96000__160000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__96000__192000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__96000__256000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__96000__320000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Eddie_Rabbitt__10.0__96000__500000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Female_Speech_German__10.0__96000__149600__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Female_Speech_German__10.0__96000__160000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Female_Speech_German__10.0__96000__192000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Female_Speech_German__10.0__96000__256000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Female_Speech_German__10.0__96000__320000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Female_Speech_German__10.0__96000__500000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Glockenspiel__10.0__96000__149600__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Glockenspiel__10.0__96000__160000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Glockenspiel__10.0__96000__192000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Glockenspiel__10.0__96000__256000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-152 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Glockenspiel__10.0__96000__320000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-152 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Glockenspiel__10.0__96000__500000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Piano_Schubert__10.0__96000__149600__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Piano_Schubert__10.0__96000__160000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Piano_Schubert__10.0__96000__192000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Piano_Schubert__10.0__96000__256000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Piano_Schubert__10.0__96000__320000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Piano_Schubert__10.0__96000__500000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Violoncello__10.0__96000__149600__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Violoncello__10.0__96000__160000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Violoncello__10.0__96000__192000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Violoncello__10.0__96000__256000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Violoncello__10.0__96000__320000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Violoncello__10.0__96000__500000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Harpsichord__10.0__96000__149600__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Harpsichord__10.0__96000__160000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Harpsichord__10.0__96000__192000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Harpsichord__10.0__96000__256000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Harpsichord__10.0__96000__320000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Harpsichord__10.0__96000__500000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Male_Speech_English__10.0__96000__149600__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Male_Speech_English__10.0__96000__160000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Male_Speech_English__10.0__96000__192000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Male_Speech_English__10.0__96000__256000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Male_Speech_English__10.0__96000__320000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/DECODE__sqam__decode__Male_Speech_English__10.0__96000__500000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
</table>
</div>
</body>

View File

@ -0,0 +1,71 @@
<!DOCTYPE html><head><meta charset="UTF-8"><title>ENCDEC Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px; width:100%} th {padding:4px; border-top:1px solid #8f908a} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn{background-color:rgba(214,137,16,0.4)} a:link {color: white;text-decoration: none;} a:visited {color: white} a:hover {color: white;font-weight:bold;} a:active {color: rgb(155, 155, 155)}</style></head>
<body><h2>Conformance for "ENCDEC" passed!</h2>
<div><h3>SQAM - 100%</h3>
<table>
<tr><th>Mode</th><th>Item</th><th>Frame Size</th><th>Samplerate</th><th>Bitrate</th><th>MLD</th></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__ABBA__10.0__48000__128000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.372 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__ABBA__10.0__48000__160000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.221 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__ABBA__10.0__48000__192000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.191 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Castanets__10.0__48000__128000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>1.45 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Castanets__10.0__48000__160000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.538 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Castanets__10.0__48000__192000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.517 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__48000__128000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.63 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__48000__160000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.467 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__48000__192000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.278 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__48000__128000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.485 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__48000__160000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.249 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__48000__192000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.199 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__48000__128000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.428 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__48000__160000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.33 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__48000__192000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.171 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__48000__128000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.0963 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__48000__160000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.0339 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__48000__192000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.0256 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Violoncello__10.0__48000__128000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.171 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Violoncello__10.0__48000__160000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.0918 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Violoncello__10.0__48000__192000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.0543 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Harpsichord__10.0__48000__128000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.43 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Harpsichord__10.0__48000__160000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.273 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Harpsichord__10.0__48000__192000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.185 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__48000__128000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.348 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__48000__160000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.275 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__48000__192000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.127 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__ABBA__10.0__96000__160000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.000877 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__ABBA__10.0__96000__192000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.0106 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__ABBA__10.0__96000__256000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.00181 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__ABBA__10.0__96000__320000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.0354 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Castanets__10.0__96000__160000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0321 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Castanets__10.0__96000__192000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.00031 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Castanets__10.0__96000__256000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>2.05 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Castanets__10.0__96000__320000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>1.61 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__96000__160000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0124 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__96000__192000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.206 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__96000__256000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.000726 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Eddie_Rabbitt__10.0__96000__320000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.0234 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__96000__160000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0141 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__96000__192000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.00316 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__96000__256000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.0047 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Female_Speech_German__10.0__96000__320000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.00451 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__96000__160000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0114 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__96000__192000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.00835 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__96000__256000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.00222 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Glockenspiel__10.0__96000__320000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.00301 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__96000__160000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.012 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__96000__192000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.00901 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__96000__256000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.0072 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Piano_Schubert__10.0__96000__320000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.0077 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Violoncello__10.0__96000__160000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0421 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Violoncello__10.0__96000__192000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.0381 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Violoncello__10.0__96000__256000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.00161 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Violoncello__10.0__96000__320000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.00881 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Harpsichord__10.0__96000__160000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0231 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Harpsichord__10.0__96000__192000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.013 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Harpsichord__10.0__96000__256000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.0209 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Harpsichord__10.0__96000__320000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.00991 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__96000__160000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0351 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__96000__192000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.031 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__96000__256000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.00996 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCDEC__sqam__encdec__Male_Speech_English__10.0__96000__320000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.0174 (4)</td></tr>
</table>
</div>
</body>

View File

@ -0,0 +1,107 @@
<!DOCTYPE html><head><meta charset="UTF-8"><title>ENCODE Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px; width:100%} th {padding:4px; border-top:1px solid #8f908a} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn{background-color:rgba(214,137,16,0.4)} a:link {color: white;text-decoration: none;} a:visited {color: white} a:hover {color: white;font-weight:bold;} a:active {color: rgb(155, 155, 155)}</style></head>
<body><h2>Conformance for "ENCODE" passed!</h2>
<div><h3>SQAM - 100%</h3>
<table>
<tr><th>Mode</th><th>Item</th><th>Frame Size</th><th>Samplerate</th><th>Bitrate</th><th>MLD</th></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__ABBA__10.0__48000__124800__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>0.361 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__ABBA__10.0__48000__128000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.372 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__ABBA__10.0__48000__160000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.221 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__ABBA__10.0__48000__192000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.191 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__ABBA__10.0__48000__500000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>0.00442 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Castanets__10.0__48000__124800__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>0.851 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Castanets__10.0__48000__128000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>1.45 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Castanets__10.0__48000__160000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.538 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Castanets__10.0__48000__192000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.517 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Castanets__10.0__48000__500000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>0.0206 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__48000__124800__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>0.681 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__48000__128000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.63 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__48000__160000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.467 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__48000__192000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.278 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__48000__500000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>0.00581 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Female_Speech_German__10.0__48000__124800__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>0.493 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Female_Speech_German__10.0__48000__128000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.485 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Female_Speech_German__10.0__48000__160000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.249 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Female_Speech_German__10.0__48000__192000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.199 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Female_Speech_German__10.0__48000__500000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>0.00658 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Glockenspiel__10.0__48000__124800__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>0.355 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Glockenspiel__10.0__48000__128000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.428 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Glockenspiel__10.0__48000__160000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.33 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Glockenspiel__10.0__48000__192000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.171 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Glockenspiel__10.0__48000__500000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>0.00517 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Piano_Schubert__10.0__48000__124800__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>0.0715 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Piano_Schubert__10.0__48000__128000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.0963 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Piano_Schubert__10.0__48000__160000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.0339 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Piano_Schubert__10.0__48000__192000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.0256 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Piano_Schubert__10.0__48000__500000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>0.000423 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Violoncello__10.0__48000__124800__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>0.172 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Violoncello__10.0__48000__128000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.171 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Violoncello__10.0__48000__160000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.0918 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Violoncello__10.0__48000__192000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.0543 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Violoncello__10.0__48000__500000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>0.00104 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Harpsichord__10.0__48000__124800__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>0.368 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Harpsichord__10.0__48000__128000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.43 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Harpsichord__10.0__48000__160000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.273 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Harpsichord__10.0__48000__192000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.185 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Harpsichord__10.0__48000__500000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>0.00448 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Male_Speech_English__10.0__48000__124800__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>124800</td><td class=pass>0.438 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Male_Speech_English__10.0__48000__128000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>128000</td><td class=pass>0.348 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Male_Speech_English__10.0__48000__160000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>160000</td><td class=pass>0.275 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Male_Speech_English__10.0__48000__192000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>192000</td><td class=pass>0.127 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Male_Speech_English__10.0__48000__500000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>500000</td><td class=pass>0.00409 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__ABBA__10.0__96000__149600__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>0.0938 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__ABBA__10.0__96000__160000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.000877 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__ABBA__10.0__96000__192000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.0106 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__ABBA__10.0__96000__256000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.00181 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__ABBA__10.0__96000__320000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.0354 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__ABBA__10.0__96000__500000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>0.0138 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Castanets__10.0__96000__149600__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>0.0169 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Castanets__10.0__96000__160000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0321 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Castanets__10.0__96000__192000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.000309 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Castanets__10.0__96000__256000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>2.05 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Castanets__10.0__96000__320000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>1.61 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Castanets__10.0__96000__500000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>0.48 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__96000__149600__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>0.00727 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__96000__160000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0124 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__96000__192000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.206 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__96000__256000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.000724 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__96000__320000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.0234 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Eddie_Rabbitt__10.0__96000__500000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>0.012 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Female_Speech_German__10.0__96000__149600__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>0.021 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Female_Speech_German__10.0__96000__160000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0141 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Female_Speech_German__10.0__96000__192000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.00316 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Female_Speech_German__10.0__96000__256000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.0047 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Female_Speech_German__10.0__96000__320000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.00451 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Female_Speech_German__10.0__96000__500000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>0.0223 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Glockenspiel__10.0__96000__149600__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>0.00552 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Glockenspiel__10.0__96000__160000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0114 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Glockenspiel__10.0__96000__192000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.00835 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Glockenspiel__10.0__96000__256000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.00222 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Glockenspiel__10.0__96000__320000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.00301 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Glockenspiel__10.0__96000__500000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>0.0132 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Piano_Schubert__10.0__96000__149600__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>0.0154 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Piano_Schubert__10.0__96000__160000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.012 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Piano_Schubert__10.0__96000__192000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.00901 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Piano_Schubert__10.0__96000__256000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.0072 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Piano_Schubert__10.0__96000__320000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.0077 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Piano_Schubert__10.0__96000__500000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>0.00398 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Violoncello__10.0__96000__149600__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>0.00236 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Violoncello__10.0__96000__160000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0421 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Violoncello__10.0__96000__192000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.0381 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Violoncello__10.0__96000__256000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.00161 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Violoncello__10.0__96000__320000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.00881 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Violoncello__10.0__96000__500000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>0.00438 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Harpsichord__10.0__96000__149600__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>0.0259 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Harpsichord__10.0__96000__160000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0231 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Harpsichord__10.0__96000__192000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.013 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Harpsichord__10.0__96000__256000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.0209 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Harpsichord__10.0__96000__320000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.00991 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Harpsichord__10.0__96000__500000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>0.00929 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Male_Speech_English__10.0__96000__149600__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>149600</td><td class=pass>0.0164 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Male_Speech_English__10.0__96000__160000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>160000</td><td class=pass>0.0351 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Male_Speech_English__10.0__96000__192000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>192000</td><td class=pass>0.031 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Male_Speech_English__10.0__96000__256000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>256000</td><td class=pass>0.00995 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Male_Speech_English__10.0__96000__320000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>320000</td><td class=pass>0.0174 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/ENCODE__sqam__encode__Male_Speech_English__10.0__96000__500000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>500000</td><td class=pass>0.0232 (4)</td></tr>
</table>
</div>
</body>

View File

@ -0,0 +1,338 @@
<!DOCTYPE html><head><meta charset="UTF-8"><title>FALLBACK Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px; width:100%} th {padding:4px; border-top:1px solid #8f908a} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn{background-color:rgba(214,137,16,0.4)} a:link {color: white;text-decoration: none;} a:visited {color: white} a:hover {color: white;font-weight:bold;} a:active {color: rgb(155, 155, 155)}</style></head>
<body><h2>Conformance for "FALLBACK" passed!</h2>
<div><h3>SQAM - 100%</h3>
<table>
<tr><th>Mode</th><th>Item</th><th>Frame Size</th><th>Samplerate</th><th>Bitrate</th><th>MLD</th></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__ABBA__10.0__48000__62400__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.0045 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__ABBA__10.0__48000__93600__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.000274 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Castanets__10.0__48000__62400__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.0183 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Castanets__10.0__48000__93600__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.00211 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Eddie_Rabbitt__10.0__48000__62400__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.00947 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Eddie_Rabbitt__10.0__48000__93600__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.0514 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Female_Speech_German__10.0__48000__62400__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.469 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Female_Speech_German__10.0__48000__93600__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.385 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Glockenspiel__10.0__48000__62400__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.147 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Glockenspiel__10.0__48000__93600__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.00719 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Piano_Schubert__10.0__48000__62400__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.0788 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Piano_Schubert__10.0__48000__93600__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.00325 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Violoncello__10.0__48000__62400__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.0201 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Violoncello__10.0__48000__93600__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.0099 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Harpsichord__10.0__48000__62400__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.11 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Harpsichord__10.0__48000__93600__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.0867 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Male_Speech_English__10.0__48000__62400__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.179 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Male_Speech_English__10.0__48000__93600__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.0414 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__ABBA__5.0__48000__73600__0.txt">encode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>1.14 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__ABBA__5.0__48000__110400__0.txt">encode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.381 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Castanets__5.0__48000__73600__0.txt">encode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>0.682 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Castanets__5.0__48000__110400__0.txt">encode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.168 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Eddie_Rabbitt__5.0__48000__73600__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>0.141 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Eddie_Rabbitt__5.0__48000__110400__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.418 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Female_Speech_German__5.0__48000__73600__0.txt">encode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>1.15 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Female_Speech_German__5.0__48000__110400__0.txt">encode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.493 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Glockenspiel__5.0__48000__73600__0.txt">encode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>0.316 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Glockenspiel__5.0__48000__110400__0.txt">encode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.338 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Piano_Schubert__5.0__48000__73600__0.txt">encode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>0.22 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Piano_Schubert__5.0__48000__110400__0.txt">encode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.0768 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Violoncello__5.0__48000__73600__0.txt">encode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>0.26 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Violoncello__5.0__48000__110400__0.txt">encode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.167 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Harpsichord__5.0__48000__73600__0.txt">encode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>0.714 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Harpsichord__5.0__48000__110400__0.txt">encode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.0997 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Male_Speech_English__5.0__48000__73600__0.txt">encode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>1.26 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Male_Speech_English__5.0__48000__110400__0.txt">encode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.282 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__ABBA__2.5__48000__86400__0.txt">encode</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>0.525 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__ABBA__2.5__48000__128000__0.txt">encode</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.424 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Castanets__2.5__48000__86400__0.txt">encode</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>2.12 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Castanets__2.5__48000__128000__0.txt">encode</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.958 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Eddie_Rabbitt__2.5__48000__86400__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>1.62 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Eddie_Rabbitt__2.5__48000__128000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.608 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Female_Speech_German__2.5__48000__86400__0.txt">encode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>0.786 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Female_Speech_German__2.5__48000__128000__0.txt">encode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.655 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Glockenspiel__2.5__48000__86400__0.txt">encode</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>1.66 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Glockenspiel__2.5__48000__128000__0.txt">encode</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>1.11 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Piano_Schubert__2.5__48000__86400__0.txt">encode</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>0.154 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Piano_Schubert__2.5__48000__128000__0.txt">encode</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.116 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Violoncello__2.5__48000__86400__0.txt">encode</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>0.413 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Violoncello__2.5__48000__128000__0.txt">encode</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.151 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Harpsichord__2.5__48000__86400__0.txt">encode</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>0.905 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Harpsichord__2.5__48000__128000__0.txt">encode</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.887 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Male_Speech_English__2.5__48000__86400__0.txt">encode</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>0.986 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Male_Speech_English__2.5__48000__128000__0.txt">encode</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.366 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__ABBA__10.0__96000__74400__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.125 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__ABBA__10.0__96000__112000__0.txt">encode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.0109 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Castanets__10.0__96000__74400__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.112 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Castanets__10.0__96000__112000__0.txt">encode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.0592 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Eddie_Rabbitt__10.0__96000__74400__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.0464 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Eddie_Rabbitt__10.0__96000__112000__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.000146 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Female_Speech_German__10.0__96000__74400__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.379 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Female_Speech_German__10.0__96000__112000__0.txt">encode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.411 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Glockenspiel__10.0__96000__74400__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.633 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Glockenspiel__10.0__96000__112000__0.txt">encode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.0298 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Piano_Schubert__10.0__96000__74400__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.137 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Piano_Schubert__10.0__96000__112000__0.txt">encode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.0309 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Violoncello__10.0__96000__74400__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.203 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Violoncello__10.0__96000__112000__0.txt">encode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.12 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Harpsichord__10.0__96000__74400__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.132 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Harpsichord__10.0__96000__112000__0.txt">encode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.0699 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Male_Speech_English__10.0__96000__74400__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.336 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Male_Speech_English__10.0__96000__112000__0.txt">encode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.0223 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__ABBA__5.0__96000__86400__0.txt">encode</a></td><td>ABBA</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.443 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__ABBA__5.0__96000__129600__0.txt">encode</a></td><td>ABBA</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.196 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Castanets__5.0__96000__86400__0.txt">encode</a></td><td>Castanets</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.179 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Castanets__5.0__96000__129600__0.txt">encode</a></td><td>Castanets</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.0975 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Eddie_Rabbitt__5.0__96000__86400__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.133 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Eddie_Rabbitt__5.0__96000__129600__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.0992 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Female_Speech_German__5.0__96000__86400__0.txt">encode</a></td><td>Female_Speech_German</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.889 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Female_Speech_German__5.0__96000__129600__0.txt">encode</a></td><td>Female_Speech_German</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.277 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Glockenspiel__5.0__96000__86400__0.txt">encode</a></td><td>Glockenspiel</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.515 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Glockenspiel__5.0__96000__129600__0.txt">encode</a></td><td>Glockenspiel</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.212 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Piano_Schubert__5.0__96000__86400__0.txt">encode</a></td><td>Piano_Schubert</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.136 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Piano_Schubert__5.0__96000__129600__0.txt">encode</a></td><td>Piano_Schubert</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.0205 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Violoncello__5.0__96000__86400__0.txt">encode</a></td><td>Violoncello</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.211 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Violoncello__5.0__96000__129600__0.txt">encode</a></td><td>Violoncello</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.0675 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Harpsichord__5.0__96000__86400__0.txt">encode</a></td><td>Harpsichord</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>1.18 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Harpsichord__5.0__96000__129600__0.txt">encode</a></td><td>Harpsichord</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.0895 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Male_Speech_English__5.0__96000__86400__0.txt">encode</a></td><td>Male_Speech_English</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.523 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Male_Speech_English__5.0__96000__129600__0.txt">encode</a></td><td>Male_Speech_English</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.28 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__ABBA__2.5__96000__99200__0.txt">encode</a></td><td>ABBA</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>0.633 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__ABBA__2.5__96000__147200__0.txt">encode</a></td><td>ABBA</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.294 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Castanets__2.5__96000__99200__0.txt">encode</a></td><td>Castanets</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>2.82 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Castanets__2.5__96000__147200__0.txt">encode</a></td><td>Castanets</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.2 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Eddie_Rabbitt__2.5__96000__99200__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>1.13 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Eddie_Rabbitt__2.5__96000__147200__0.txt">encode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.43 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Female_Speech_German__2.5__96000__99200__0.txt">encode</a></td><td>Female_Speech_German</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>0.756 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Female_Speech_German__2.5__96000__147200__0.txt">encode</a></td><td>Female_Speech_German</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.394 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Glockenspiel__2.5__96000__99200__0.txt">encode</a></td><td>Glockenspiel</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>0.983 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Glockenspiel__2.5__96000__147200__0.txt">encode</a></td><td>Glockenspiel</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.763 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Piano_Schubert__2.5__96000__99200__0.txt">encode</a></td><td>Piano_Schubert</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>0.171 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Piano_Schubert__2.5__96000__147200__0.txt">encode</a></td><td>Piano_Schubert</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.0687 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Violoncello__2.5__96000__99200__0.txt">encode</a></td><td>Violoncello</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>0.257 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Violoncello__2.5__96000__147200__0.txt">encode</a></td><td>Violoncello</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.107 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Harpsichord__2.5__96000__99200__0.txt">encode</a></td><td>Harpsichord</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>1.13 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Harpsichord__2.5__96000__147200__0.txt">encode</a></td><td>Harpsichord</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.358 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Male_Speech_English__2.5__96000__99200__0.txt">encode</a></td><td>Male_Speech_English</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>0.628 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encode__Male_Speech_English__2.5__96000__147200__0.txt">encode</a></td><td>Male_Speech_English</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.403 (4)</td></tr>
</table>
<table>
<tr><th>Mode</th><th>Item</th><th>Frame Size</th><th>Samplerate</th><th>Bitrate</th><th>MLD</th></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__ABBA__10.0__48000__62400__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.0045 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__ABBA__10.0__48000__93600__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.000274 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Castanets__10.0__48000__62400__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.0183 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Castanets__10.0__48000__93600__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.00211 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Eddie_Rabbitt__10.0__48000__62400__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.00947 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Eddie_Rabbitt__10.0__48000__93600__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.0514 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Female_Speech_German__10.0__48000__62400__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.469 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Female_Speech_German__10.0__48000__93600__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.385 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Glockenspiel__10.0__48000__62400__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.147 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Glockenspiel__10.0__48000__93600__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.00719 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Piano_Schubert__10.0__48000__62400__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.0788 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Piano_Schubert__10.0__48000__93600__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.00325 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Violoncello__10.0__48000__62400__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.0201 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Violoncello__10.0__48000__93600__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.0099 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Harpsichord__10.0__48000__62400__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.11 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Harpsichord__10.0__48000__93600__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.0867 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Male_Speech_English__10.0__48000__62400__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>0.179 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Male_Speech_English__10.0__48000__93600__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>0.0414 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__ABBA__5.0__48000__73600__0.txt">encdec</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>1.14 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__ABBA__5.0__48000__110400__0.txt">encdec</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.381 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Castanets__5.0__48000__73600__0.txt">encdec</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>0.682 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Castanets__5.0__48000__110400__0.txt">encdec</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.168 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Eddie_Rabbitt__5.0__48000__73600__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>0.141 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Eddie_Rabbitt__5.0__48000__110400__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.418 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Female_Speech_German__5.0__48000__73600__0.txt">encdec</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>1.15 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Female_Speech_German__5.0__48000__110400__0.txt">encdec</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.493 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Glockenspiel__5.0__48000__73600__0.txt">encdec</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>0.316 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Glockenspiel__5.0__48000__110400__0.txt">encdec</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.338 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Piano_Schubert__5.0__48000__73600__0.txt">encdec</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>0.22 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Piano_Schubert__5.0__48000__110400__0.txt">encdec</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.0768 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Violoncello__5.0__48000__73600__0.txt">encdec</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>0.26 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Violoncello__5.0__48000__110400__0.txt">encdec</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.167 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Harpsichord__5.0__48000__73600__0.txt">encdec</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>0.714 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Harpsichord__5.0__48000__110400__0.txt">encdec</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.0997 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Male_Speech_English__5.0__48000__73600__0.txt">encdec</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>1.26 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Male_Speech_English__5.0__48000__110400__0.txt">encdec</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>0.282 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__ABBA__2.5__48000__86400__0.txt">encdec</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>0.525 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__ABBA__2.5__48000__128000__0.txt">encdec</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.424 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Castanets__2.5__48000__86400__0.txt">encdec</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>2.12 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Castanets__2.5__48000__128000__0.txt">encdec</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.958 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Eddie_Rabbitt__2.5__48000__86400__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>1.62 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Eddie_Rabbitt__2.5__48000__128000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.608 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Female_Speech_German__2.5__48000__86400__0.txt">encdec</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>0.786 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Female_Speech_German__2.5__48000__128000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.655 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Glockenspiel__2.5__48000__86400__0.txt">encdec</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>1.66 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Glockenspiel__2.5__48000__128000__0.txt">encdec</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>1.11 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Piano_Schubert__2.5__48000__86400__0.txt">encdec</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>0.154 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Piano_Schubert__2.5__48000__128000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.116 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Violoncello__2.5__48000__86400__0.txt">encdec</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>0.413 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Violoncello__2.5__48000__128000__0.txt">encdec</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.151 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Harpsichord__2.5__48000__86400__0.txt">encdec</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>0.905 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Harpsichord__2.5__48000__128000__0.txt">encdec</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.887 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Male_Speech_English__2.5__48000__86400__0.txt">encdec</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>0.986 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Male_Speech_English__2.5__48000__128000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>0.366 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__ABBA__10.0__96000__74400__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.125 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__ABBA__10.0__96000__112000__0.txt">encdec</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.0109 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Castanets__10.0__96000__74400__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.112 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Castanets__10.0__96000__112000__0.txt">encdec</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.0592 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Eddie_Rabbitt__10.0__96000__74400__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.0464 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Eddie_Rabbitt__10.0__96000__112000__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.000146 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Female_Speech_German__10.0__96000__74400__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.379 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Female_Speech_German__10.0__96000__112000__0.txt">encdec</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.411 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Glockenspiel__10.0__96000__74400__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.633 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Glockenspiel__10.0__96000__112000__0.txt">encdec</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.0298 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Piano_Schubert__10.0__96000__74400__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.137 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Piano_Schubert__10.0__96000__112000__0.txt">encdec</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.0309 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Violoncello__10.0__96000__74400__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.203 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Violoncello__10.0__96000__112000__0.txt">encdec</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.12 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Harpsichord__10.0__96000__74400__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.132 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Harpsichord__10.0__96000__112000__0.txt">encdec</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.0699 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Male_Speech_English__10.0__96000__74400__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>0.336 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Male_Speech_English__10.0__96000__112000__0.txt">encdec</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>0.0223 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__ABBA__5.0__96000__86400__0.txt">encdec</a></td><td>ABBA</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.443 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__ABBA__5.0__96000__129600__0.txt">encdec</a></td><td>ABBA</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.196 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Castanets__5.0__96000__86400__0.txt">encdec</a></td><td>Castanets</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.179 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Castanets__5.0__96000__129600__0.txt">encdec</a></td><td>Castanets</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.0975 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Eddie_Rabbitt__5.0__96000__86400__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.133 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Eddie_Rabbitt__5.0__96000__129600__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.0992 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Female_Speech_German__5.0__96000__86400__0.txt">encdec</a></td><td>Female_Speech_German</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.889 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Female_Speech_German__5.0__96000__129600__0.txt">encdec</a></td><td>Female_Speech_German</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.277 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Glockenspiel__5.0__96000__86400__0.txt">encdec</a></td><td>Glockenspiel</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.515 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Glockenspiel__5.0__96000__129600__0.txt">encdec</a></td><td>Glockenspiel</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.212 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Piano_Schubert__5.0__96000__86400__0.txt">encdec</a></td><td>Piano_Schubert</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.136 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Piano_Schubert__5.0__96000__129600__0.txt">encdec</a></td><td>Piano_Schubert</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.0205 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Violoncello__5.0__96000__86400__0.txt">encdec</a></td><td>Violoncello</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.211 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Violoncello__5.0__96000__129600__0.txt">encdec</a></td><td>Violoncello</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.0675 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Harpsichord__5.0__96000__86400__0.txt">encdec</a></td><td>Harpsichord</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>1.18 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Harpsichord__5.0__96000__129600__0.txt">encdec</a></td><td>Harpsichord</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.0895 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Male_Speech_English__5.0__96000__86400__0.txt">encdec</a></td><td>Male_Speech_English</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>0.523 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Male_Speech_English__5.0__96000__129600__0.txt">encdec</a></td><td>Male_Speech_English</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>0.28 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__ABBA__2.5__96000__99200__0.txt">encdec</a></td><td>ABBA</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>0.633 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__ABBA__2.5__96000__147200__0.txt">encdec</a></td><td>ABBA</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.294 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Castanets__2.5__96000__99200__0.txt">encdec</a></td><td>Castanets</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>2.82 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Castanets__2.5__96000__147200__0.txt">encdec</a></td><td>Castanets</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.2 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Eddie_Rabbitt__2.5__96000__99200__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>1.13 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Eddie_Rabbitt__2.5__96000__147200__0.txt">encdec</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.43 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Female_Speech_German__2.5__96000__99200__0.txt">encdec</a></td><td>Female_Speech_German</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>0.756 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Female_Speech_German__2.5__96000__147200__0.txt">encdec</a></td><td>Female_Speech_German</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.394 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Glockenspiel__2.5__96000__99200__0.txt">encdec</a></td><td>Glockenspiel</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>0.983 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Glockenspiel__2.5__96000__147200__0.txt">encdec</a></td><td>Glockenspiel</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.763 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Piano_Schubert__2.5__96000__99200__0.txt">encdec</a></td><td>Piano_Schubert</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>0.171 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Piano_Schubert__2.5__96000__147200__0.txt">encdec</a></td><td>Piano_Schubert</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.0687 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Violoncello__2.5__96000__99200__0.txt">encdec</a></td><td>Violoncello</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>0.257 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Violoncello__2.5__96000__147200__0.txt">encdec</a></td><td>Violoncello</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.107 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Harpsichord__2.5__96000__99200__0.txt">encdec</a></td><td>Harpsichord</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>1.13 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Harpsichord__2.5__96000__147200__0.txt">encdec</a></td><td>Harpsichord</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.358 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Male_Speech_English__2.5__96000__99200__0.txt">encdec</a></td><td>Male_Speech_English</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>0.628 (4)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__encdec__Male_Speech_English__2.5__96000__147200__0.txt">encdec</a></td><td>Male_Speech_English</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>0.403 (4)</td></tr>
</table>
<table>
<tr><th>Mode</th><th>Item</th><th>Frame Size</th><th>Samplerate</th><th>Bitrate</th><th>Max. Abs. Diff</th><th>RMS [dB]</th><th>RMS Reached [bits]</th></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__ABBA__10.0__48000__62400__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__ABBA__10.0__48000__93600__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Castanets__10.0__48000__62400__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Castanets__10.0__48000__93600__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>5.96e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Eddie_Rabbitt__10.0__48000__62400__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Eddie_Rabbitt__10.0__48000__93600__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Female_Speech_German__10.0__48000__62400__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Female_Speech_German__10.0__48000__93600__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Glockenspiel__10.0__48000__62400__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Glockenspiel__10.0__48000__93600__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Piano_Schubert__10.0__48000__62400__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Piano_Schubert__10.0__48000__93600__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Violoncello__10.0__48000__62400__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Violoncello__10.0__48000__93600__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Harpsichord__10.0__48000__62400__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Harpsichord__10.0__48000__93600__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Male_Speech_English__10.0__48000__62400__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>62400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Male_Speech_English__10.0__48000__93600__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>48000</td><td>93600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__ABBA__5.0__48000__73600__0.txt">decode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__ABBA__5.0__48000__110400__0.txt">decode</a></td><td>ABBA</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Castanets__5.0__48000__73600__0.txt">decode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Castanets__5.0__48000__110400__0.txt">decode</a></td><td>Castanets</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Eddie_Rabbitt__5.0__48000__73600__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Eddie_Rabbitt__5.0__48000__110400__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>4.77e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Female_Speech_German__5.0__48000__73600__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Female_Speech_German__5.0__48000__110400__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Glockenspiel__5.0__48000__73600__0.txt">decode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Glockenspiel__5.0__48000__110400__0.txt">decode</a></td><td>Glockenspiel</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-152 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Piano_Schubert__5.0__48000__73600__0.txt">decode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Piano_Schubert__5.0__48000__110400__0.txt">decode</a></td><td>Piano_Schubert</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Violoncello__5.0__48000__73600__0.txt">decode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Violoncello__5.0__48000__110400__0.txt">decode</a></td><td>Violoncello</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Harpsichord__5.0__48000__73600__0.txt">decode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Harpsichord__5.0__48000__110400__0.txt">decode</a></td><td>Harpsichord</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Male_Speech_English__5.0__48000__73600__0.txt">decode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>73600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Male_Speech_English__5.0__48000__110400__0.txt">decode</a></td><td>Male_Speech_English</td><td>5.0</td><td>48000</td><td>110400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__ABBA__2.5__48000__86400__0.txt">decode</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__ABBA__2.5__48000__128000__0.txt">decode</a></td><td>ABBA</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Castanets__2.5__48000__86400__0.txt">decode</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Castanets__2.5__48000__128000__0.txt">decode</a></td><td>Castanets</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>4.77e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Eddie_Rabbitt__2.5__48000__86400__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Eddie_Rabbitt__2.5__48000__128000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Female_Speech_German__2.5__48000__86400__0.txt">decode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Female_Speech_German__2.5__48000__128000__0.txt">decode</a></td><td>Female_Speech_German</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Glockenspiel__2.5__48000__86400__0.txt">decode</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Glockenspiel__2.5__48000__128000__0.txt">decode</a></td><td>Glockenspiel</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-152 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Piano_Schubert__2.5__48000__86400__0.txt">decode</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Piano_Schubert__2.5__48000__128000__0.txt">decode</a></td><td>Piano_Schubert</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Violoncello__2.5__48000__86400__0.txt">decode</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Violoncello__2.5__48000__128000__0.txt">decode</a></td><td>Violoncello</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Harpsichord__2.5__48000__86400__0.txt">decode</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Harpsichord__2.5__48000__128000__0.txt">decode</a></td><td>Harpsichord</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Male_Speech_English__2.5__48000__86400__0.txt">decode</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>86400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Male_Speech_English__2.5__48000__128000__0.txt">decode</a></td><td>Male_Speech_English</td><td>2.5</td><td>48000</td><td>128000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__ABBA__10.0__96000__74400__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__ABBA__10.0__96000__112000__0.txt">decode</a></td><td>ABBA</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Castanets__10.0__96000__74400__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>4.77e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Castanets__10.0__96000__112000__0.txt">decode</a></td><td>Castanets</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>4.77e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Eddie_Rabbitt__10.0__96000__74400__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Eddie_Rabbitt__10.0__96000__112000__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Female_Speech_German__10.0__96000__74400__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Female_Speech_German__10.0__96000__112000__0.txt">decode</a></td><td>Female_Speech_German</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Glockenspiel__10.0__96000__74400__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Glockenspiel__10.0__96000__112000__0.txt">decode</a></td><td>Glockenspiel</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Piano_Schubert__10.0__96000__74400__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Piano_Schubert__10.0__96000__112000__0.txt">decode</a></td><td>Piano_Schubert</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Violoncello__10.0__96000__74400__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Violoncello__10.0__96000__112000__0.txt">decode</a></td><td>Violoncello</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Harpsichord__10.0__96000__74400__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Harpsichord__10.0__96000__112000__0.txt">decode</a></td><td>Harpsichord</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Male_Speech_English__10.0__96000__74400__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>74400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Male_Speech_English__10.0__96000__112000__0.txt">decode</a></td><td>Male_Speech_English</td><td>10.0</td><td>96000</td><td>112000</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__ABBA__5.0__96000__86400__0.txt">decode</a></td><td>ABBA</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__ABBA__5.0__96000__129600__0.txt">decode</a></td><td>ABBA</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Castanets__5.0__96000__86400__0.txt">decode</a></td><td>Castanets</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>4.77e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Castanets__5.0__96000__129600__0.txt">decode</a></td><td>Castanets</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Eddie_Rabbitt__5.0__96000__86400__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Eddie_Rabbitt__5.0__96000__129600__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Female_Speech_German__5.0__96000__86400__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Female_Speech_German__5.0__96000__129600__0.txt">decode</a></td><td>Female_Speech_German</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Glockenspiel__5.0__96000__86400__0.txt">decode</a></td><td>Glockenspiel</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Glockenspiel__5.0__96000__129600__0.txt">decode</a></td><td>Glockenspiel</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Piano_Schubert__5.0__96000__86400__0.txt">decode</a></td><td>Piano_Schubert</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Piano_Schubert__5.0__96000__129600__0.txt">decode</a></td><td>Piano_Schubert</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Violoncello__5.0__96000__86400__0.txt">decode</a></td><td>Violoncello</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Violoncello__5.0__96000__129600__0.txt">decode</a></td><td>Violoncello</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Harpsichord__5.0__96000__86400__0.txt">decode</a></td><td>Harpsichord</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Harpsichord__5.0__96000__129600__0.txt">decode</a></td><td>Harpsichord</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-154 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Male_Speech_English__5.0__96000__86400__0.txt">decode</a></td><td>Male_Speech_English</td><td>5.0</td><td>96000</td><td>86400</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Male_Speech_English__5.0__96000__129600__0.txt">decode</a></td><td>Male_Speech_English</td><td>5.0</td><td>96000</td><td>129600</td><td class=pass>4.77e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__ABBA__2.5__96000__99200__0.txt">decode</a></td><td>ABBA</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__ABBA__2.5__96000__147200__0.txt">decode</a></td><td>ABBA</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Castanets__2.5__96000__99200__0.txt">decode</a></td><td>Castanets</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Castanets__2.5__96000__147200__0.txt">decode</a></td><td>Castanets</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-156 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Eddie_Rabbitt__2.5__96000__99200__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Eddie_Rabbitt__2.5__96000__147200__0.txt">decode</a></td><td>Eddie_Rabbitt</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Female_Speech_German__2.5__96000__99200__0.txt">decode</a></td><td>Female_Speech_German</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Female_Speech_German__2.5__96000__147200__0.txt">decode</a></td><td>Female_Speech_German</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-149 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Glockenspiel__2.5__96000__99200__0.txt">decode</a></td><td>Glockenspiel</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Glockenspiel__2.5__96000__147200__0.txt">decode</a></td><td>Glockenspiel</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-151 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Piano_Schubert__2.5__96000__99200__0.txt">decode</a></td><td>Piano_Schubert</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Piano_Schubert__2.5__96000__147200__0.txt">decode</a></td><td>Piano_Schubert</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-150 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Violoncello__2.5__96000__99200__0.txt">decode</a></td><td>Violoncello</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-147 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Violoncello__2.5__96000__147200__0.txt">decode</a></td><td>Violoncello</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>2.38e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Harpsichord__2.5__96000__99200__0.txt">decode</a></td><td>Harpsichord</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Harpsichord__2.5__96000__147200__0.txt">decode</a></td><td>Harpsichord</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>1.19e-07 (0.00148)</td><td class=pass>-155 (-137)</td><td class=none>24 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Male_Speech_English__2.5__96000__99200__0.txt">decode</a></td><td>Male_Speech_English</td><td>2.5</td><td>96000</td><td>99200</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
<tr><td><a href="lc3plus_conformance_2024-02-27_14-48_log/FALLBACK__sqam__decode__Male_Speech_English__2.5__96000__147200__0.txt">decode</a></td><td>Male_Speech_English</td><td>2.5</td><td>96000</td><td>147200</td><td class=pass>3.58e-07 (0.00148)</td><td class=pass>-148 (-137)</td><td class=none>23 (22)</td></tr>
</table>
</div>
</body>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,31 @@
<!DOCTYPE html><head><title>music_decode_10m Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px} th {padding:4px} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn {background-color:rgba(214,137,16,0.4)}</style></head><body><h2>Conformance test for "music_decode_10m" (Frame Size 10 ms) passed!</h2><div><table><tr><h3>SQAM items - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>Max. Abs. Diff (threshold)</th><th>RMS (threshold) [dB]</th><th>RMS reached (threshold) [bits]</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td>0.000305</td><td>-91.081</td><td>14</td></tr>
<tr><td>decode</td><td>ABBA</td><td>48000</td><td>80000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-95.243 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>ABBA</td><td>48000</td><td>96000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-95.229 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>ABBA</td><td>48000</td><td>124000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-95.312 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>48000</td><td>80000</td><td class=pass>0.000305 (0.00148)</td><td class=pass>-96.625 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>48000</td><td>96000</td><td class=pass>0.000275 (0.00148)</td><td class=pass>-96.779 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>48000</td><td>124000</td><td class=pass>0.000305 (0.00148)</td><td class=pass>-96.627 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>48000</td><td>80000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-91.876 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>48000</td><td>96000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-91.870 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>48000</td><td>124000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-91.952 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>48000</td><td>80000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-92.550 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>48000</td><td>96000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-92.651 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>48000</td><td>124000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-92.678 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>48000</td><td>80000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-94.290 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>48000</td><td>96000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-94.434 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>48000</td><td>124000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-94.411 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>48000</td><td>80000</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-99.407 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>48000</td><td>96000</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-99.130 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>48000</td><td>124000</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-99.154 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>48000</td><td>80000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-91.226 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>48000</td><td>96000</td><td class=pass>0.000275 (0.00148)</td><td class=pass>-91.118 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>48000</td><td>124000</td><td class=pass>0.000275 (0.00148)</td><td class=pass>-91.081 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>48000</td><td>80000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-94.613 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>48000</td><td>96000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-94.642 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>48000</td><td>124000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-94.628 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>48000</td><td>80000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-91.514 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>48000</td><td>96000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-91.497 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>48000</td><td>124000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-91.550 (-89.060)</td><td class=none>14 (14)</td></tr>
</table></div></body>

View File

@ -0,0 +1,31 @@
<!DOCTYPE html><head><title>music_decode_7m5 Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px} th {padding:4px} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn {background-color:rgba(214,137,16,0.4)}</style></head><body><h2>Conformance test for "music_decode_7m5" (Frame Size 7.5 ms) passed!</h2><div><table><tr><h3>SQAM items - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>Max. Abs. Diff (threshold)</th><th>RMS (threshold) [dB]</th><th>RMS reached (threshold) [bits]</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td>0.000427</td><td>-91.576</td><td>14</td></tr>
<tr><td>decode</td><td>ABBA</td><td>48000</td><td>80000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-95.411 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>ABBA</td><td>48000</td><td>96000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-95.366 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>ABBA</td><td>48000</td><td>124800</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-95.443 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>48000</td><td>80000</td><td class=pass>0.000336 (0.00148)</td><td class=pass>-97.539 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>48000</td><td>96000</td><td class=pass>0.000366 (0.00148)</td><td class=pass>-97.598 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>48000</td><td>124800</td><td class=pass>0.000336 (0.00148)</td><td class=pass>-97.507 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>48000</td><td>80000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-92.158 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>48000</td><td>96000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-92.181 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>48000</td><td>124800</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-92.207 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>48000</td><td>80000</td><td class=pass>0.000275 (0.00148)</td><td class=pass>-92.724 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>48000</td><td>96000</td><td class=pass>0.000305 (0.00148)</td><td class=pass>-92.892 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>48000</td><td>124800</td><td class=pass>0.000305 (0.00148)</td><td class=pass>-92.839 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>48000</td><td>80000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-95.027 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>48000</td><td>96000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-95.013 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>48000</td><td>124800</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-94.997 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>48000</td><td>80000</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-99.280 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>48000</td><td>96000</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-99.164 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>48000</td><td>124800</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-99.153 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>48000</td><td>80000</td><td class=pass>0.000366 (0.00148)</td><td class=pass>-91.761 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>48000</td><td>96000</td><td class=pass>0.000366 (0.00148)</td><td class=pass>-91.618 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>48000</td><td>124800</td><td class=pass>0.000427 (0.00148)</td><td class=pass>-91.595 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>48000</td><td>80000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-94.768 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>48000</td><td>96000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-94.831 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>48000</td><td>124800</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-94.834 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>48000</td><td>80000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-91.654 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>48000</td><td>96000</td><td class=pass>0.000275 (0.00148)</td><td class=pass>-91.576 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>48000</td><td>124800</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-91.643 (-89.060)</td><td class=none>14 (14)</td></tr>
</table></div></body>

View File

@ -0,0 +1,42 @@
<!DOCTYPE html><head><title>music_encdec_10m Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px} th {padding:4px} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn {background-color:rgba(214,137,16,0.4)}</style></head><body><h2>Conformance test for "music_encdec_10m" (Frame Size 10 ms) passed!</h2><div><table><tr><h3>Band-limited signals - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.00548</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_16000_wb</td><td>48000</td><td>96000</td><td class=>-0.00683</td><td class=pass>0.000525 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_24000_sswb</td><td>48000</td><td>96000</td><td class=>-0.0148</td><td class=pass>0.00246 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_32000_swb</td><td>48000</td><td>96000</td><td class=>-0.141</td><td class=pass>0.000126 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>48000</td><td>96000</td><td class=>-0.0253</td><td class=pass>0.00548 (0.06)</td></tr>
</table></div></body><div><table><tr><h3>Signals above 20kHz - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>Energy (threshold) [dB]</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td></tr>
<tr><td>encode</td><td>White_Noise_HP20</td><td>48000</td><td>96000</td><td class=pass>68.949 (70)</td></tr>
</table></div></body><div><table><tr><h3>SQAM items - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.0225</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>48000</td><td>80000</td><td class=>-0.425</td><td class=pass>0.00594 (0.06)</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>48000</td><td>96000</td><td class=>-0.238</td><td class=pass>0.00249 (0.06)</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>48000</td><td>124000</td><td class=>-0.0418</td><td class=pass>0.0038 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>48000</td><td>80000</td><td class=>-0.463</td><td class=pass>0.000316 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>48000</td><td>96000</td><td class=>-0.257</td><td class=pass>0.00687 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>48000</td><td>124000</td><td class=>-0.0561</td><td class=pass>0.00505 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>48000</td><td>80000</td><td class=>-0.386</td><td class=pass>0.00594 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>48000</td><td>96000</td><td class=>-0.199</td><td class=pass>0.00114 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>48000</td><td>124000</td><td class=>-0.0374</td><td class=pass>0.00132 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>48000</td><td>80000</td><td class=>-0.461</td><td class=pass>0.00133 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>48000</td><td>96000</td><td class=>-0.223</td><td class=pass>0.00355 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>48000</td><td>124000</td><td class=>-0.0325</td><td class=pass>0.00215 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>48000</td><td>80000</td><td class=>-1.236</td><td class=pass>0.0009 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>48000</td><td>96000</td><td class=>-0.278</td><td class=pass>0.0138 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>48000</td><td>124000</td><td class=>-0.0599</td><td class=pass>0.0031 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>48000</td><td>80000</td><td class=>-1.171</td><td class=pass>0.00618 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>48000</td><td>96000</td><td class=>-0.65</td><td class=pass>0.00135 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>48000</td><td>124000</td><td class=>-0.187</td><td class=pass>0.00303 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>48000</td><td>80000</td><td class=>-0.416</td><td class=pass>0.00385 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>48000</td><td>96000</td><td class=>-0.178</td><td class=pass>0.00265 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>48000</td><td>124000</td><td class=>-0.0361</td><td class=pass>0.00788 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>48000</td><td>80000</td><td class=>-0.258</td><td class=pass>0.000657 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>48000</td><td>96000</td><td class=>-0.108</td><td class=pass>0.000254 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>48000</td><td>124000</td><td class=>-0.00141</td><td class=pass>0.00173 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>48000</td><td>80000</td><td class=>-0.889</td><td class=pass>0.0225 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>48000</td><td>96000</td><td class=>-0.533</td><td class=pass>0.0128 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>48000</td><td>124000</td><td class=>-0.125</td><td class=pass>0.0038 (0.06)</td></tr>
</table></div></body>

View File

@ -0,0 +1,42 @@
<!DOCTYPE html><head><title>music_encdec_7m5 Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px} th {padding:4px} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn {background-color:rgba(214,137,16,0.4)}</style></head><body><h2>Conformance test for "music_encdec_7m5" (Frame Size 7.5 ms) passed!</h2><div><table><tr><h3>Band-limited signals - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.00687</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_16000_wb</td><td>48000</td><td>96000</td><td class=>-0.000429</td><td class=pass>0.00155 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_24000_sswb</td><td>48000</td><td>96000</td><td class=>-0.0542</td><td class=pass>0.00193 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_32000_swb</td><td>48000</td><td>96000</td><td class=>-0.202</td><td class=pass>0.00687 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>48000</td><td>96000</td><td class=>-0.00225</td><td class=pass>0.00105 (0.06)</td></tr>
</table></div></body><div><table><tr><h3>Signals above 20kHz - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>Energy (threshold) [dB]</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td></tr>
<tr><td>encode</td><td>White_Noise_HP20</td><td>48000</td><td>96000</td><td class=pass>69.594 (70)</td></tr>
</table></div></body><div><table><tr><h3>SQAM items - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.0339</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>48000</td><td>80000</td><td class=>-0.467</td><td class=pass>0.00588 (0.06)</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>48000</td><td>96000</td><td class=>-0.28</td><td class=pass>0.000468 (0.06)</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>48000</td><td>124800</td><td class=>-0.0612</td><td class=pass>0.000207 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>48000</td><td>80000</td><td class=>-0.549</td><td class=pass>0.00068 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>48000</td><td>96000</td><td class=>-0.28</td><td class=pass>0.00313 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>48000</td><td>124800</td><td class=>-0.063</td><td class=pass>0.00147 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>48000</td><td>80000</td><td class=>-0.465</td><td class=pass>0.000874 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>48000</td><td>96000</td><td class=>-0.251</td><td class=pass>0.00197 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>48000</td><td>124800</td><td class=>-0.0526</td><td class=pass>0.00153 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>48000</td><td>80000</td><td class=>-0.572</td><td class=pass>0.00368 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>48000</td><td>96000</td><td class=>-0.283</td><td class=pass>0.00587 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>48000</td><td>124800</td><td class=>-0.0581</td><td class=pass>0.00258 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>48000</td><td>80000</td><td class=>-1.067</td><td class=pass>0.0143 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>48000</td><td>96000</td><td class=>-0.148</td><td class=pass>0.00101 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>48000</td><td>124800</td><td class=>-0.0126</td><td class=pass>0.00288 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>48000</td><td>80000</td><td class=>-1.349</td><td class=pass>0.000708 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>48000</td><td>96000</td><td class=>-0.8</td><td class=pass>0.004 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>48000</td><td>124800</td><td class=>-0.238</td><td class=pass>0.00127 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>48000</td><td>80000</td><td class=>-0.512</td><td class=pass>0.00563 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>48000</td><td>96000</td><td class=>-0.233</td><td class=pass>0.00225 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>48000</td><td>124800</td><td class=>-0.0403</td><td class=pass>0.00311 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>48000</td><td>80000</td><td class=>-0.304</td><td class=pass>0.00182 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>48000</td><td>96000</td><td class=>-0.131</td><td class=pass>0.000234 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>48000</td><td>124800</td><td class=>-0.0129</td><td class=pass>0.000554 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>48000</td><td>80000</td><td class=>-1.039</td><td class=pass>0.0339 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>48000</td><td>96000</td><td class=>-0.661</td><td class=pass>0.0262 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>48000</td><td>124800</td><td class=>-0.169</td><td class=pass>0.00292 (0.06)</td></tr>
</table></div></body>

View File

@ -0,0 +1,42 @@
<!DOCTYPE html><head><title>music_encode_10m Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px} th {padding:4px} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn {background-color:rgba(214,137,16,0.4)}</style></head><body><h2>Conformance test for "music_encode_10m" (Frame Size 10 ms) passed!</h2><div><table><tr><h3>Band-limited signals - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.00548</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_16000_wb</td><td>48000</td><td>96000</td><td class=>-0.00683</td><td class=pass>0.000525 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_24000_sswb</td><td>48000</td><td>96000</td><td class=>-0.0148</td><td class=pass>0.00246 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_32000_swb</td><td>48000</td><td>96000</td><td class=>-0.141</td><td class=pass>0.000126 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>48000</td><td>96000</td><td class=>-0.0253</td><td class=pass>0.00548 (0.06)</td></tr>
</table></div></body><div><table><tr><h3>Signals above 20kHz - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>Energy (threshold) [dB]</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td></tr>
<tr><td>encode</td><td>White_Noise_HP20</td><td>48000</td><td>96000</td><td class=pass>68.949 (70)</td></tr>
</table></div></body><div><table><tr><h3>SQAM items - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.021</td></tr>
<tr><td>encode</td><td>ABBA</td><td>48000</td><td>80000</td><td class=>-0.425</td><td class=pass>0.00619 (0.06)</td></tr>
<tr><td>encode</td><td>ABBA</td><td>48000</td><td>96000</td><td class=>-0.238</td><td class=pass>0.00242 (0.06)</td></tr>
<tr><td>encode</td><td>ABBA</td><td>48000</td><td>124000</td><td class=>-0.0418</td><td class=pass>0.00373 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>48000</td><td>80000</td><td class=>-0.463</td><td class=pass>0.000311 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>48000</td><td>96000</td><td class=>-0.257</td><td class=pass>0.00634 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>48000</td><td>124000</td><td class=>-0.0561</td><td class=pass>0.005 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>48000</td><td>80000</td><td class=>-0.386</td><td class=pass>0.00559 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>48000</td><td>96000</td><td class=>-0.199</td><td class=pass>0.00136 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>48000</td><td>124000</td><td class=>-0.0374</td><td class=pass>0.000781 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>48000</td><td>80000</td><td class=>-0.461</td><td class=pass>0.00229 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>48000</td><td>96000</td><td class=>-0.223</td><td class=pass>0.00301 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>48000</td><td>124000</td><td class=>-0.0325</td><td class=pass>0.00136 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>48000</td><td>80000</td><td class=>-1.236</td><td class=pass>0.0143 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>48000</td><td>96000</td><td class=>-0.278</td><td class=pass>0.00424 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>48000</td><td>124000</td><td class=>-0.0599</td><td class=pass>0.00104 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>48000</td><td>80000</td><td class=>-1.171</td><td class=pass>0.00453 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>48000</td><td>96000</td><td class=>-0.65</td><td class=pass>0.000973 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>48000</td><td>124000</td><td class=>-0.187</td><td class=pass>0.00336 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>48000</td><td>80000</td><td class=>-0.416</td><td class=pass>0.00364 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>48000</td><td>96000</td><td class=>-0.178</td><td class=pass>0.00298 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>48000</td><td>124000</td><td class=>-0.0361</td><td class=pass>0.00714 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>48000</td><td>80000</td><td class=>-0.258</td><td class=pass>0.000973 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>48000</td><td>96000</td><td class=>-0.108</td><td class=pass>0.0008 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>48000</td><td>124000</td><td class=>-0.00141</td><td class=pass>0.00131 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>48000</td><td>80000</td><td class=>-0.889</td><td class=pass>0.021 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>48000</td><td>96000</td><td class=>-0.533</td><td class=pass>0.0118 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>48000</td><td>124000</td><td class=>-0.125</td><td class=pass>0.00334 (0.06)</td></tr>
</table></div></body>

View File

@ -0,0 +1,42 @@
<!DOCTYPE html><head><title>music_encode_7m5 Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px} th {padding:4px} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn {background-color:rgba(214,137,16,0.4)}</style></head><body><h2>Conformance test for "music_encode_7m5" (Frame Size 7.5 ms) passed!</h2><div><table><tr><h3>Band-limited signals - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.00687</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_16000_wb</td><td>48000</td><td>96000</td><td class=>-0.000429</td><td class=pass>0.00155 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_24000_sswb</td><td>48000</td><td>96000</td><td class=>-0.0542</td><td class=pass>0.00193 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_32000_swb</td><td>48000</td><td>96000</td><td class=>-0.202</td><td class=pass>0.00687 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>48000</td><td>96000</td><td class=>-0.00225</td><td class=pass>0.00105 (0.06)</td></tr>
</table></div></body><div><table><tr><h3>Signals above 20kHz - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>Energy (threshold) [dB]</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td></tr>
<tr><td>encode</td><td>White_Noise_HP20</td><td>48000</td><td>96000</td><td class=pass>69.594 (70)</td></tr>
</table></div></body><div><table><tr><h3>SQAM items - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.0305</td></tr>
<tr><td>encode</td><td>ABBA</td><td>48000</td><td>80000</td><td class=>-0.467</td><td class=pass>0.00547 (0.06)</td></tr>
<tr><td>encode</td><td>ABBA</td><td>48000</td><td>96000</td><td class=>-0.28</td><td class=pass>0.000128 (0.06)</td></tr>
<tr><td>encode</td><td>ABBA</td><td>48000</td><td>124800</td><td class=>-0.0612</td><td class=pass>0.000268 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>48000</td><td>80000</td><td class=>-0.549</td><td class=pass>0.000617 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>48000</td><td>96000</td><td class=>-0.28</td><td class=pass>0.00297 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>48000</td><td>124800</td><td class=>-0.063</td><td class=pass>0.00118 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>48000</td><td>80000</td><td class=>-0.465</td><td class=pass>0.000562 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>48000</td><td>96000</td><td class=>-0.251</td><td class=pass>0.00185 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>48000</td><td>124800</td><td class=>-0.0526</td><td class=pass>0.00153 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>48000</td><td>80000</td><td class=>-0.572</td><td class=pass>0.00108 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>48000</td><td>96000</td><td class=>-0.283</td><td class=pass>0.00547 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>48000</td><td>124800</td><td class=>-0.0581</td><td class=pass>0.00204 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>48000</td><td>80000</td><td class=>-1.067</td><td class=pass>0.0182 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>48000</td><td>96000</td><td class=>-0.148</td><td class=pass>0.00174 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>48000</td><td>124800</td><td class=>-0.0126</td><td class=pass>0.00155 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>48000</td><td>80000</td><td class=>-1.349</td><td class=pass>0.000076 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>48000</td><td>96000</td><td class=>-0.8</td><td class=pass>0.00349 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>48000</td><td>124800</td><td class=>-0.238</td><td class=pass>0.00115 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>48000</td><td>80000</td><td class=>-0.512</td><td class=pass>0.00593 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>48000</td><td>96000</td><td class=>-0.233</td><td class=pass>0.000789 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>48000</td><td>124800</td><td class=>-0.0403</td><td class=pass>0.00207 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>48000</td><td>80000</td><td class=>-0.304</td><td class=pass>0.00143 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>48000</td><td>96000</td><td class=>-0.131</td><td class=pass>0.00124 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>48000</td><td>124800</td><td class=>-0.0129</td><td class=pass>0.000591 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>48000</td><td>80000</td><td class=>-1.039</td><td class=pass>0.0305 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>48000</td><td>96000</td><td class=>-0.661</td><td class=pass>0.0247 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>48000</td><td>124800</td><td class=>-0.169</td><td class=pass>0.0022 (0.06)</td></tr>
</table></div></body>

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@ -0,0 +1,40 @@
<!DOCTYPE html><head><title>speech_decode_10m Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px} th {padding:4px} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn {background-color:rgba(214,137,16,0.4)}</style></head><body><h2>Conformance test for "speech_decode_10m" (Frame Size 10 ms) passed!</h2><div><table><tr><h3>SQAM items - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>Max. Abs. Diff (threshold)</th><th>RMS (threshold) [dB]</th><th>RMS reached (threshold) [bits]</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td>0.000305</td><td>-90.738</td><td>14</td></tr>
<tr><td>decode</td><td>ABBA</td><td>8000</td><td>24000</td><td class=pass>0.000122 (0.00148)</td><td class=pass>-95.673 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>ABBA</td><td>16000</td><td>32000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-95.876 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>ABBA</td><td>24000</td><td>48000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-95.672 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>ABBA</td><td>32000</td><td>64000</td><td class=pass>0.000122 (0.00148)</td><td class=pass>-95.694 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>8000</td><td>24000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-98.657 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>16000</td><td>32000</td><td class=pass>0.000305 (0.00148)</td><td class=pass>-97.770 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>24000</td><td>48000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-97.970 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>32000</td><td>64000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-97.406 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>8000</td><td>24000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-92.049 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>16000</td><td>32000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-92.538 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>24000</td><td>48000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-92.277 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>32000</td><td>64000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-92.062 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>8000</td><td>24000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-92.730 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>16000</td><td>32000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-92.809 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>24000</td><td>48000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-92.812 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>32000</td><td>64000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-92.670 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>8000</td><td>24000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-95.675 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>16000</td><td>32000</td><td class=pass>0.000122 (0.00148)</td><td class=pass>-95.785 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>24000</td><td>48000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-95.803 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>32000</td><td>64000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-93.617 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>8000</td><td>24000</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-100.095 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>16000</td><td>32000</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-100.365 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>24000</td><td>48000</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-100.086 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>32000</td><td>64000</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-99.716 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>8000</td><td>24000</td><td class=pass>0.000305 (0.00148)</td><td class=pass>-90.738 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>16000</td><td>32000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-91.434 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>24000</td><td>48000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-91.147 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>32000</td><td>64000</td><td class=pass>0.000305 (0.00148)</td><td class=pass>-91.259 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>8000</td><td>24000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-94.150 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>16000</td><td>32000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-94.523 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>24000</td><td>48000</td><td class=pass>0.000122 (0.00148)</td><td class=pass>-94.756 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>32000</td><td>64000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-94.785 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>8000</td><td>24000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-91.467 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>16000</td><td>32000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-91.686 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>24000</td><td>48000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-92.017 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>32000</td><td>64000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-92.142 (-89.060)</td><td class=none>14 (14)</td></tr>
</table></div></body>

View File

@ -0,0 +1,49 @@
<!DOCTYPE html><head><title>speech_decode_7m5 Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px} th {padding:4px} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn {background-color:rgba(214,137,16,0.4)}</style></head><body><h2>Conformance test for "speech_decode_7m5" (Frame Size 7.5 ms) passed!</h2><div><table><tr><h3>SQAM items - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>Max. Abs. Diff (threshold)</th><th>RMS (threshold) [dB]</th><th>RMS reached (threshold) [bits]</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td>0.000275</td><td>-90.321</td><td>14</td></tr>
<tr><td>decode</td><td>ABBA</td><td>8000</td><td>27734</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-94.923 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>ABBA</td><td>16000</td><td>32000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-95.386 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>ABBA</td><td>24000</td><td>48000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-95.897 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>ABBA</td><td>32000</td><td>61867</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-95.525 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>ABBA</td><td>32000</td><td>64000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-95.527 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>8000</td><td>27734</td><td class=pass>0.000122 (0.00148)</td><td class=pass>-98.854 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>16000</td><td>32000</td><td class=pass>0.000275 (0.00148)</td><td class=pass>-97.588 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>24000</td><td>48000</td><td class=pass>0.000275 (0.00148)</td><td class=pass>-98.077 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>32000</td><td>61867</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-97.819 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Castanets</td><td>32000</td><td>64000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-97.700 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>8000</td><td>27734</td><td class=pass>0.000275 (0.00148)</td><td class=pass>-90.990 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>16000</td><td>32000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-91.900 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>24000</td><td>48000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-92.421 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>32000</td><td>61867</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-92.467 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Eddie_Rabbitt</td><td>32000</td><td>64000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-92.463 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>8000</td><td>27734</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-92.928 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>16000</td><td>32000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-92.751 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>24000</td><td>48000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-93.275 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>32000</td><td>61867</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-92.956 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Female_Speech_German</td><td>32000</td><td>64000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-92.882 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>8000</td><td>27734</td><td class=pass>0.000122 (0.00148)</td><td class=pass>-96.711 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>16000</td><td>32000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-94.906 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>24000</td><td>48000</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-94.614 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>32000</td><td>61867</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-96.586 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Glockenspiel</td><td>32000</td><td>64000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-96.532 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>8000</td><td>27734</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-99.780 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>16000</td><td>32000</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-99.456 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>24000</td><td>48000</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-100.110 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>32000</td><td>61867</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-99.866 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Harpsichord</td><td>32000</td><td>64000</td><td class=pass>0.000061 (0.00148)</td><td class=pass>-99.788 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>8000</td><td>27734</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-90.321 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>16000</td><td>32000</td><td class=pass>0.000275 (0.00148)</td><td class=pass>-91.112 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>24000</td><td>48000</td><td class=pass>0.000244 (0.00148)</td><td class=pass>-92.109 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>32000</td><td>61867</td><td class=pass>0.000275 (0.00148)</td><td class=pass>-92.204 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Male_Speech_English</td><td>32000</td><td>64000</td><td class=pass>0.000275 (0.00148)</td><td class=pass>-92.221 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>8000</td><td>27734</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-94.187 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>16000</td><td>32000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-94.709 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>24000</td><td>48000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-94.818 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>32000</td><td>61867</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-95.065 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Piano_Schubert</td><td>32000</td><td>64000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-95.081 (-89.060)</td><td class=none>15 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>8000</td><td>27734</td><td class=pass>0.000214 (0.00148)</td><td class=pass>-90.548 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>16000</td><td>32000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-91.882 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>24000</td><td>48000</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-92.130 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>32000</td><td>61867</td><td class=pass>0.000153 (0.00148)</td><td class=pass>-92.261 (-89.060)</td><td class=none>14 (14)</td></tr>
<tr><td>decode</td><td>Violoncello</td><td>32000</td><td>64000</td><td class=pass>0.000183 (0.00148)</td><td class=pass>-92.090 (-89.060)</td><td class=none>14 (14)</td></tr>
</table></div></body>

View File

@ -0,0 +1,49 @@
<!DOCTYPE html><head><title>speech_encdec_10m Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px} th {padding:4px} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn {background-color:rgba(214,137,16,0.4)}</style></head><body><h2>Conformance test for "speech_encdec_10m" (Frame Size 10 ms) passed!</h2><div><table><tr><h3>Band-limited signals - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.00925</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_16000_wb</td><td>24000</td><td>48000</td><td class=>-0.572</td><td class=pass>0.00423 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_16000_wb</td><td>32000</td><td>64000</td><td class=>-0.227</td><td class=pass>0.00285 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_24000_sswb</td><td>32000</td><td>64000</td><td class=>-0.479</td><td class=pass>0.00243 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>16000</td><td>32000</td><td class=>-0.587</td><td class=pass>0.00925 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>24000</td><td>48000</td><td class=>-0.27</td><td class=pass>0.00607 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>32000</td><td>64000</td><td class=>-0.224</td><td class=pass>0.00449 (0.06)</td></tr>
</table></div></body><div><table><tr><h3>SQAM items - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.0507</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>8000</td><td>24000</td><td class=>-0.89</td><td class=pass>0.0157 (0.06)</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>16000</td><td>32000</td><td class=>-1.365</td><td class=pass>0.00264 (0.06)</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>24000</td><td>48000</td><td class=>-1.087</td><td class=pass>0.000918 (0.06)</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>32000</td><td>64000</td><td class=>-0.644</td><td class=pass>0.00012 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>8000</td><td>24000</td><td class=>-0.612</td><td class=pass>0.0138 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>16000</td><td>32000</td><td class=>-1.092</td><td class=pass>0.00691 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>24000</td><td>48000</td><td class=>-0.889</td><td class=pass>0.00613 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>32000</td><td>64000</td><td class=>-0.765</td><td class=pass>0.00183 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>8000</td><td>24000</td><td class=>-0.718</td><td class=pass>0.000303 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>16000</td><td>32000</td><td class=>-1.111</td><td class=pass>0.00375 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>24000</td><td>48000</td><td class=>-0.903</td><td class=pass>0.000221 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>32000</td><td>64000</td><td class=>-0.611</td><td class=pass>0.000326 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>8000</td><td>24000</td><td class=>-1.099</td><td class=pass>0.018 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>16000</td><td>32000</td><td class=>-1.572</td><td class=pass>0.00767 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>24000</td><td>48000</td><td class=>-1.056</td><td class=pass>0.00574 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>32000</td><td>64000</td><td class=>-0.766</td><td class=pass>0.00407 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>8000</td><td>24000</td><td class=>-1.911</td><td class=pass>0.0232 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>16000</td><td>32000</td><td class=>-2.539</td><td class=pass>0.00463 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>24000</td><td>48000</td><td class=>-2.143</td><td class=pass>0.00203 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>32000</td><td>64000</td><td class=>-1.542</td><td class=pass>0.0111 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>8000</td><td>24000</td><td class=>-2.918</td><td class=pass>0.0181 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>16000</td><td>32000</td><td class=>-3.166</td><td class=pass>0.00019 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>24000</td><td>48000</td><td class=>-2.405</td><td class=pass>0.00595 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>32000</td><td>64000</td><td class=>-1.710</td><td class=pass>0.00958 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>8000</td><td>24000</td><td class=>-0.781</td><td class=pass>0.000139 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>16000</td><td>32000</td><td class=>-1.385</td><td class=pass>0.0127 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>24000</td><td>48000</td><td class=>-1.019</td><td class=pass>0.0235 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>32000</td><td>64000</td><td class=>-0.749</td><td class=pass>0.017 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>8000</td><td>24000</td><td class=>-1.334</td><td class=pass>0.00231 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>16000</td><td>32000</td><td class=>-1.692</td><td class=pass>0.0507 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>24000</td><td>48000</td><td class=>-0.741</td><td class=pass>0.0123 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>32000</td><td>64000</td><td class=>-0.398</td><td class=pass>0.00485 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>8000</td><td>24000</td><td class=>-2.120</td><td class=pass>0.0108 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>16000</td><td>32000</td><td class=>-2.007</td><td class=pass>0.0124 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>24000</td><td>48000</td><td class=>-1.683</td><td class=pass>0.00884 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>32000</td><td>64000</td><td class=>-1.306</td><td class=pass>0.00174 (0.06)</td></tr>
</table></div></body>

View File

@ -0,0 +1,58 @@
<!DOCTYPE html><head><title>speech_encdec_7m5 Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px} th {padding:4px} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn {background-color:rgba(214,137,16,0.4)}</style></head><body><h2>Conformance test for "speech_encdec_7m5" (Frame Size 7.5 ms) passed!</h2><div><table><tr><h3>Band-limited signals - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.0136</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_16000_wb</td><td>24000</td><td>48000</td><td class=>-0.699</td><td class=pass>0.00167 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_16000_wb</td><td>32000</td><td>64000</td><td class=>-0.26</td><td class=pass>0.000658 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_24000_sswb</td><td>32000</td><td>64000</td><td class=>-0.609</td><td class=pass>0.00379 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>16000</td><td>32000</td><td class=>-0.727</td><td class=pass>0.0136 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>24000</td><td>48000</td><td class=>-0.281</td><td class=pass>0.00383 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>32000</td><td>64000</td><td class=>-0.172</td><td class=pass>0.00156 (0.06)</td></tr>
</table></div></body><div><table><tr><h3>SQAM items - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.0453</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>8000</td><td>27734</td><td class=>-0.795</td><td class=pass>0.00296 (0.06)</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>16000</td><td>32000</td><td class=>-1.604</td><td class=pass>0.000434 (0.06)</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>24000</td><td>48000</td><td class=>-1.177</td><td class=pass>0.00287 (0.06)</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>32000</td><td>61867</td><td class=>-0.743</td><td class=pass>0.0011 (0.06)</td></tr>
<tr><td>encdec</td><td>ABBA</td><td>32000</td><td>64000</td><td class=>-0.729</td><td class=pass>0.00274 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>8000</td><td>27734</td><td class=>-0.502</td><td class=pass>0.00306 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>16000</td><td>32000</td><td class=>-1.419</td><td class=pass>0.000897 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>24000</td><td>48000</td><td class=>-1.108</td><td class=pass>0.00855 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>32000</td><td>61867</td><td class=>-0.992</td><td class=pass>0.0123 (0.06)</td></tr>
<tr><td>encdec</td><td>Castanets</td><td>32000</td><td>64000</td><td class=>-0.937</td><td class=pass>0.000476 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>8000</td><td>27734</td><td class=>-0.617</td><td class=pass>0.00357 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>16000</td><td>32000</td><td class=>-1.360</td><td class=pass>0.024 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>24000</td><td>48000</td><td class=>-1.082</td><td class=pass>0.014 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>32000</td><td>61867</td><td class=>-0.825</td><td class=pass>0.00136 (0.06)</td></tr>
<tr><td>encdec</td><td>Eddie_Rabbitt</td><td>32000</td><td>64000</td><td class=>-0.742</td><td class=pass>0.000189 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>8000</td><td>27734</td><td class=>-0.84</td><td class=pass>0.0112 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>16000</td><td>32000</td><td class=>-1.939</td><td class=pass>0.013 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>24000</td><td>48000</td><td class=>-1.301</td><td class=pass>0.00176 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>32000</td><td>61867</td><td class=>-1.008</td><td class=pass>0.0152 (0.06)</td></tr>
<tr><td>encdec</td><td>Female_Speech_German</td><td>32000</td><td>64000</td><td class=>-0.914</td><td class=pass>0.00593 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>8000</td><td>27734</td><td class=>-0.665</td><td class=pass>0.00979 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>16000</td><td>32000</td><td class=>-2.271</td><td class=pass>0.00558 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>24000</td><td>48000</td><td class=>-1.960</td><td class=pass>0.00838 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>32000</td><td>61867</td><td class=>-1.892</td><td class=pass>0.0453 (0.06)</td></tr>
<tr><td>encdec</td><td>Glockenspiel</td><td>32000</td><td>64000</td><td class=>-1.316</td><td class=pass>0.00323 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>8000</td><td>27734</td><td class=>-2.684</td><td class=pass>0.00023 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>16000</td><td>32000</td><td class=>-3.504</td><td class=pass>0.00178 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>24000</td><td>48000</td><td class=>-2.647</td><td class=pass>0.00341 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>32000</td><td>61867</td><td class=>-2.140</td><td class=pass>0.0218 (0.06)</td></tr>
<tr><td>encdec</td><td>Harpsichord</td><td>32000</td><td>64000</td><td class=>-1.981</td><td class=pass>0.00839 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>8000</td><td>27734</td><td class=>-0.687</td><td class=pass>0.00917 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>16000</td><td>32000</td><td class=>-1.735</td><td class=pass>0.0026 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>24000</td><td>48000</td><td class=>-1.205</td><td class=pass>0.00963 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>32000</td><td>61867</td><td class=>-0.947</td><td class=pass>0.0101 (0.06)</td></tr>
<tr><td>encdec</td><td>Male_Speech_English</td><td>32000</td><td>64000</td><td class=>-0.819</td><td class=pass>0.0117 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>8000</td><td>27734</td><td class=>-1.198</td><td class=pass>0.00287 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>16000</td><td>32000</td><td class=>-2.080</td><td class=pass>0.0249 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>24000</td><td>48000</td><td class=>-0.852</td><td class=pass>0.00808 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>32000</td><td>61867</td><td class=>-0.551</td><td class=pass>0.00418 (0.06)</td></tr>
<tr><td>encdec</td><td>Piano_Schubert</td><td>32000</td><td>64000</td><td class=>-0.475</td><td class=pass>0.00103 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>8000</td><td>27734</td><td class=>-1.978</td><td class=pass>0.0126 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>16000</td><td>32000</td><td class=>-2.636</td><td class=pass>0.00599 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>24000</td><td>48000</td><td class=>-2.040</td><td class=pass>0.00462 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>32000</td><td>61867</td><td class=>-1.673</td><td class=pass>0.00293 (0.06)</td></tr>
<tr><td>encdec</td><td>Violoncello</td><td>32000</td><td>64000</td><td class=>-1.559</td><td class=pass>0.011 (0.06)</td></tr>
</table></div></body>

View File

@ -0,0 +1,49 @@
<!DOCTYPE html><head><title>speech_encode_10m Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px} th {padding:4px} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn {background-color:rgba(214,137,16,0.4)}</style></head><body><h2>Conformance test for "speech_encode_10m" (Frame Size 10 ms) passed!</h2><div><table><tr><h3>Band-limited signals - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.00925</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_16000_wb</td><td>24000</td><td>48000</td><td class=>-0.572</td><td class=pass>0.00423 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_16000_wb</td><td>32000</td><td>64000</td><td class=>-0.227</td><td class=pass>0.00285 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_24000_sswb</td><td>32000</td><td>64000</td><td class=>-0.479</td><td class=pass>0.00243 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>16000</td><td>32000</td><td class=>-0.587</td><td class=pass>0.00925 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>24000</td><td>48000</td><td class=>-0.27</td><td class=pass>0.00607 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>32000</td><td>64000</td><td class=>-0.224</td><td class=pass>0.00449 (0.06)</td></tr>
</table></div></body><div><table><tr><h3>SQAM items - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.0391</td></tr>
<tr><td>encode</td><td>ABBA</td><td>8000</td><td>24000</td><td class=>-0.89</td><td class=pass>0.0125 (0.06)</td></tr>
<tr><td>encode</td><td>ABBA</td><td>16000</td><td>32000</td><td class=>-1.365</td><td class=pass>0.00312 (0.06)</td></tr>
<tr><td>encode</td><td>ABBA</td><td>24000</td><td>48000</td><td class=>-1.087</td><td class=pass>0.000477 (0.06)</td></tr>
<tr><td>encode</td><td>ABBA</td><td>32000</td><td>64000</td><td class=>-0.644</td><td class=pass>0.000632 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>8000</td><td>24000</td><td class=>-0.612</td><td class=pass>0.00742 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>16000</td><td>32000</td><td class=>-1.092</td><td class=pass>0.00681 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>24000</td><td>48000</td><td class=>-0.889</td><td class=pass>0.00596 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>32000</td><td>64000</td><td class=>-0.765</td><td class=pass>0.00173 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>8000</td><td>24000</td><td class=>-0.718</td><td class=pass>0.00959 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>16000</td><td>32000</td><td class=>-1.111</td><td class=pass>0.00625 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>24000</td><td>48000</td><td class=>-0.903</td><td class=pass>0.000414 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>32000</td><td>64000</td><td class=>-0.611</td><td class=pass>0.00036 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>8000</td><td>24000</td><td class=>-1.099</td><td class=pass>0.0175 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>16000</td><td>32000</td><td class=>-1.572</td><td class=pass>0.00729 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>24000</td><td>48000</td><td class=>-1.056</td><td class=pass>0.00514 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>32000</td><td>64000</td><td class=>-0.766</td><td class=pass>0.00229 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>8000</td><td>24000</td><td class=>-1.911</td><td class=pass>0.0391 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>16000</td><td>32000</td><td class=>-2.539</td><td class=pass>0.00296 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>24000</td><td>48000</td><td class=>-2.143</td><td class=pass>0.00757 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>32000</td><td>64000</td><td class=>-1.542</td><td class=pass>0.0116 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>8000</td><td>24000</td><td class=>-2.918</td><td class=pass>0.00513 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>16000</td><td>32000</td><td class=>-3.166</td><td class=pass>0.00133 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>24000</td><td>48000</td><td class=>-2.405</td><td class=pass>0.00874 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>32000</td><td>64000</td><td class=>-1.710</td><td class=pass>0.00811 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>8000</td><td>24000</td><td class=>-0.781</td><td class=pass>0.00484 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>16000</td><td>32000</td><td class=>-1.385</td><td class=pass>0.0136 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>24000</td><td>48000</td><td class=>-1.019</td><td class=pass>0.0226 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>32000</td><td>64000</td><td class=>-0.749</td><td class=pass>0.0164 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>8000</td><td>24000</td><td class=>-1.334</td><td class=pass>0.00514 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>16000</td><td>32000</td><td class=>-1.692</td><td class=pass>0.0285 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>24000</td><td>48000</td><td class=>-0.741</td><td class=pass>0.0244 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>32000</td><td>64000</td><td class=>-0.398</td><td class=pass>0.000122 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>8000</td><td>24000</td><td class=>-2.120</td><td class=pass>0.0128 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>16000</td><td>32000</td><td class=>-2.007</td><td class=pass>0.0124 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>24000</td><td>48000</td><td class=>-1.683</td><td class=pass>0.00902 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>32000</td><td>64000</td><td class=>-1.306</td><td class=pass>0.000776 (0.06)</td></tr>
</table></div></body>

View File

@ -0,0 +1,58 @@
<!DOCTYPE html><head><title>speech_encode_7m5 Report</title><style>body {font-family:sans-serif; color:#f8f8f2; background-color:#272822; font-size:80%} div {border:1px solid #8f908a; border-radius:4px; overflow:hidden; display:table; margin-left:30px; margin-bottom:30px} h2 {text-align:left; margin-left:30px} h3 {text-align:left; margin:4px} table {border-spacing:0px} th {padding:4px} td {padding:4px} tr:nth-child(even) {background-color:rgba(255,255,255,0.1)} td.pass {background-color:rgba(0,192,255,0.4)} td.fail {background-color:rgba(255,0,0,0.4)} td.warn {background-color:rgba(214,137,16,0.4)}</style></head><body><h2>Conformance test for "speech_encode_7m5" (Frame Size 7.5 ms) passed!</h2><div><table><tr><h3>Band-limited signals - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.0136</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_16000_wb</td><td>24000</td><td>48000</td><td class=>-0.699</td><td class=pass>0.00167 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_16000_wb</td><td>32000</td><td>64000</td><td class=>-0.26</td><td class=pass>0.000658 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_24000_sswb</td><td>32000</td><td>64000</td><td class=>-0.609</td><td class=pass>0.00379 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>16000</td><td>32000</td><td class=>-0.727</td><td class=pass>0.0136 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>24000</td><td>48000</td><td class=>-0.281</td><td class=pass>0.00383 (0.06)</td></tr>
<tr><td>encoder</td><td>Female_Speech_German_8000_nb</td><td>32000</td><td>64000</td><td class=>-0.172</td><td class=pass>0.00156 (0.06)</td></tr>
</table></div></body><div><table><tr><h3>SQAM items - 100%</h3></tr>
<tr><th>Mode</th><th>Item</th><th>Samplingrate</th><th>Bitrate</th><th>ODG Ref</th><th>Delta ODG (threshold)</th></tr>
<tr><td>worst value</td><td></td><td></td><td></td><td></td><td>0.0497</td></tr>
<tr><td>encode</td><td>ABBA</td><td>8000</td><td>27734</td><td class=>-0.795</td><td class=pass>0.000584 (0.06)</td></tr>
<tr><td>encode</td><td>ABBA</td><td>16000</td><td>32000</td><td class=>-1.604</td><td class=pass>0.00188 (0.06)</td></tr>
<tr><td>encode</td><td>ABBA</td><td>24000</td><td>48000</td><td class=>-1.177</td><td class=pass>0.00197 (0.06)</td></tr>
<tr><td>encode</td><td>ABBA</td><td>32000</td><td>61867</td><td class=>-0.743</td><td class=pass>0.00187 (0.06)</td></tr>
<tr><td>encode</td><td>ABBA</td><td>32000</td><td>64000</td><td class=>-0.729</td><td class=pass>0.00146 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>8000</td><td>27734</td><td class=>-0.502</td><td class=pass>0.00539 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>16000</td><td>32000</td><td class=>-1.419</td><td class=pass>0.00164 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>24000</td><td>48000</td><td class=>-1.108</td><td class=pass>0.00932 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>32000</td><td>61867</td><td class=>-0.992</td><td class=pass>0.0122 (0.06)</td></tr>
<tr><td>encode</td><td>Castanets</td><td>32000</td><td>64000</td><td class=>-0.937</td><td class=pass>0.000407 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>8000</td><td>27734</td><td class=>-0.617</td><td class=pass>0.00155 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>16000</td><td>32000</td><td class=>-1.360</td><td class=pass>0.0128 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>24000</td><td>48000</td><td class=>-1.082</td><td class=pass>0.0138 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>32000</td><td>61867</td><td class=>-0.825</td><td class=pass>0.00131 (0.06)</td></tr>
<tr><td>encode</td><td>Eddie_Rabbitt</td><td>32000</td><td>64000</td><td class=>-0.742</td><td class=pass>0.000459 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>8000</td><td>27734</td><td class=>-0.84</td><td class=pass>0.00628 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>16000</td><td>32000</td><td class=>-1.939</td><td class=pass>0.00766 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>24000</td><td>48000</td><td class=>-1.301</td><td class=pass>0.000402 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>32000</td><td>61867</td><td class=>-1.008</td><td class=pass>0.016 (0.06)</td></tr>
<tr><td>encode</td><td>Female_Speech_German</td><td>32000</td><td>64000</td><td class=>-0.914</td><td class=pass>0.00396 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>8000</td><td>27734</td><td class=>-0.665</td><td class=pass>0.0171 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>16000</td><td>32000</td><td class=>-2.271</td><td class=pass>0.00345 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>24000</td><td>48000</td><td class=>-1.960</td><td class=pass>0.0119 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>32000</td><td>61867</td><td class=>-1.892</td><td class=pass>0.0497 (0.06)</td></tr>
<tr><td>encode</td><td>Glockenspiel</td><td>32000</td><td>64000</td><td class=>-1.316</td><td class=pass>0.00515 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>8000</td><td>27734</td><td class=>-2.684</td><td class=pass>0.00152 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>16000</td><td>32000</td><td class=>-3.504</td><td class=pass>0.00316 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>24000</td><td>48000</td><td class=>-2.647</td><td class=pass>0.00341 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>32000</td><td>61867</td><td class=>-2.140</td><td class=pass>0.0198 (0.06)</td></tr>
<tr><td>encode</td><td>Harpsichord</td><td>32000</td><td>64000</td><td class=>-1.981</td><td class=pass>0.0113 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>8000</td><td>27734</td><td class=>-0.687</td><td class=pass>0.0103 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>16000</td><td>32000</td><td class=>-1.735</td><td class=pass>0.00172 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>24000</td><td>48000</td><td class=>-1.205</td><td class=pass>0.0118 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>32000</td><td>61867</td><td class=>-0.947</td><td class=pass>0.0113 (0.06)</td></tr>
<tr><td>encode</td><td>Male_Speech_English</td><td>32000</td><td>64000</td><td class=>-0.819</td><td class=pass>0.0137 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>8000</td><td>27734</td><td class=>-1.198</td><td class=pass>0.00763 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>16000</td><td>32000</td><td class=>-2.080</td><td class=pass>0.0139 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>24000</td><td>48000</td><td class=>-0.852</td><td class=pass>0.00789 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>32000</td><td>61867</td><td class=>-0.551</td><td class=pass>0.00224 (0.06)</td></tr>
<tr><td>encode</td><td>Piano_Schubert</td><td>32000</td><td>64000</td><td class=>-0.475</td><td class=pass>0.00106 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>8000</td><td>27734</td><td class=>-1.978</td><td class=pass>0.0125 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>16000</td><td>32000</td><td class=>-2.636</td><td class=pass>0.00606 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>24000</td><td>48000</td><td class=>-2.040</td><td class=pass>0.00429 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>32000</td><td>61867</td><td class=>-1.673</td><td class=pass>0.00101 (0.06)</td></tr>
<tr><td>encode</td><td>Violoncello</td><td>32000</td><td>64000</td><td class=>-1.559</td><td class=pass>0.00863 (0.06)</td></tr>
</table></div></body>

67
3rd-party/lc3-google/fuzz/dfuzz.cc vendored Normal file
View File

@ -0,0 +1,67 @@
/******************************************************************************
*
* Copyright 2022 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************/
#include <lc3_cpp.h>
#include <fuzzer/FuzzedDataProvider.h>
using namespace lc3;
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
{
const int dt_list[] = { 2500, 5000, 7500, 10000 };
const int sr_list[] = { 8000, 16000, 24000, 32000, 48000, 96000 };
FuzzedDataProvider fdp(data, size);
int dt_us = fdp.PickValueInArray(dt_list);
int sr_hz = fdp.PickValueInArray(sr_list);
int nchannels =fdp.PickValueInArray({1, 2});
bool hrmode = fdp.ConsumeBool();
int sr_pcm_hz = fdp.PickValueInArray(sr_list);
if (sr_pcm_hz < sr_hz)
sr_pcm_hz = 0;
Decoder dec(dt_us, sr_hz, sr_pcm_hz, nchannels, hrmode);
int frame_size = fdp.ConsumeIntegralInRange(
LC3_MIN_FRAME_BYTES, LC3_MAX_FRAME_BYTES);
PcmFormat fmt = fdp.PickValueInArray(
{ PcmFormat::kS16, PcmFormat::kS24,
PcmFormat::kS24In3Le, PcmFormat::kF32 });
int frame_samples = dec.GetFrameSamples();
if (frame_samples < 0)
return -1;
int sample_bytes =
fmt == PcmFormat::kS16 ? sizeof(int16_t) :
fmt == PcmFormat::kS24 ? sizeof(int32_t) :
fmt == PcmFormat::kS24In3Le ? sizeof(uint8_t) * 3 :
fmt == PcmFormat::kF32 ? sizeof(float) : 0;
if (fdp.remaining_bytes() < frame_size * nchannels)
return -1;
dec.Decode(
fdp.ConsumeBytes<uint8_t>(nchannels * frame_size).data(), frame_size,
fmt, std::vector<uint8_t>(nchannels * frame_samples * sample_bytes).data());
return 0;
}

118
3rd-party/lc3-google/fuzz/efuzz.cc vendored Normal file
View File

@ -0,0 +1,118 @@
/******************************************************************************
*
* Copyright 2022 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************/
#include <lc3_cpp.h>
#include <fuzzer/FuzzedDataProvider.h>
using namespace lc3;
template <typename T>
T ConsumeInRange(FuzzedDataProvider &fdp, T min, T max) {
return fdp.ConsumeIntegralInRange<T>(min, max);
}
template <>
float ConsumeInRange(FuzzedDataProvider &fdp, float min, float max) {
return fdp.ConsumeFloatingPointInRange<float>(min, max);
}
template <typename T>
int encode(Encoder &e, int nchannels, int frame_size, FuzzedDataProvider &fdp,
T min = std::numeric_limits<T>::min(), T max = std::numeric_limits<T>::max())
{
int pcm_samples = nchannels * e.GetFrameSamples();
if (fdp.remaining_bytes() < pcm_samples * sizeof(T))
return -1;
std::vector<T> pcm(pcm_samples);
for (auto &s: pcm)
s = ConsumeInRange<T>(fdp, min, max);
e.Encode(pcm.data(),
frame_size, std::vector<uint8_t>(nchannels * frame_size).data());
return 0;
}
int encode(Encoder &e, int frame_size, int nchannels,
PcmFormat fmt, FuzzedDataProvider &fdp)
{
int sample_bytes =
fmt == PcmFormat::kS16 ? sizeof(int16_t) :
fmt == PcmFormat::kS24 ? sizeof(int32_t) :
fmt == PcmFormat::kS24In3Le ? sizeof(uint8_t) * 3 :
fmt == PcmFormat::kF32 ? sizeof(float) : 0;
int pcm_bytes = nchannels * e.GetFrameSamples() * sample_bytes;
if (fdp.remaining_bytes() < pcm_bytes)
return -1;
e.Encode(fmt, fdp.ConsumeBytes<uint8_t>(pcm_bytes).data(),
frame_size, std::vector<uint8_t>(nchannels * frame_size).data());
return 0;
}
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
{
const int dt_list[] = { 2500, 5000, 7500, 10000 };
const int sr_list[] = { 8000, 16000, 24000, 32000, 48000 };
FuzzedDataProvider fdp(data, size);
int dt_us = fdp.PickValueInArray(dt_list);
int sr_hz = fdp.PickValueInArray(sr_list);
int nchannels = fdp.PickValueInArray({1, 2});
bool hrmode = fdp.ConsumeBool();
int sr_pcm_hz = fdp.PickValueInArray(sr_list);
if (sr_pcm_hz < sr_hz)
sr_pcm_hz = 0;
Encoder enc(dt_us, sr_hz, sr_pcm_hz, nchannels, hrmode);
PcmFormat fmt = fdp.PickValueInArray(
{ PcmFormat::kS16, PcmFormat::kS24,
PcmFormat::kS24In3Le, PcmFormat::kF32 });
int frame_size = fdp.ConsumeIntegralInRange(
LC3_MIN_FRAME_BYTES, LC3_MAX_FRAME_BYTES);
switch (fmt) {
case PcmFormat::kS16:
return encode<int16_t>(enc, nchannels, frame_size, fdp);
case PcmFormat::kS24: {
const int32_t s24_min = -(1 << 23);
const int32_t s24_max = (1 << 23) - 1;
return encode<int32_t>(enc, nchannels, frame_size, fdp, s24_min, s24_max);
}
case PcmFormat::kF32: {
const float f32_min = -1.0;
const float f32_max = 1.0;
return encode<float>(enc, nchannels, frame_size, fdp, f32_min, f32_max);
}
case PcmFormat::kS24In3Le:
return encode(enc, nchannels, frame_size, fmt, fdp);
}
return 0;
}

52
3rd-party/lc3-google/fuzz/makefile.mk vendored Normal file
View File

@ -0,0 +1,52 @@
#
# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
efuzz_src += \
$(FUZZ_DIR)/efuzz.cc
efuzz_ldlibs += lc3 m
efuzz_dependencies += liblc3
$(eval $(call add-bin,efuzz))
dfuzz_src += \
$(FUZZ_DIR)/dfuzz.cc
dfuzz_ldlibs += lc3 m
dfuzz_dependencies += liblc3
$(eval $(call add-bin,dfuzz))
.PHONY: fuzz dfuzz efuzz
efuzz dfuzz: CC = clang
efuzz dfuzz: CXX = clang++
efuzz dfuzz: LD = clang
FUZZER_SANITIZE := -fsanitize=fuzzer,address
efuzz dfuzz: CFLAGS += $(FUZZER_SANITIZE)
efuzz dfuzz: CXXFLAGS += $(FUZZER_SANITIZE)
efuzz dfuzz: LDFLAGS += $(FUZZER_SANITIZE)
dfuzz:
$(V)LD_LIBRARY_PATH=$(BIN_DIR) $(dfuzz_bin) -runs=1000000
efuzz:
$(V)LD_LIBRARY_PATH=$(BIN_DIR) $(efuzz_bin) -runs=1000000
fuzz: efuzz dfuzz

View File

@ -20,11 +20,15 @@
* Low Complexity Communication Codec (LC3)
*
* This implementation conforms to :
* Low Complexity Communication Codec (LC3)
* Bluetooth Specification v1.0
*
* - Low Complexity Communication Codec (LC3)
* Bluetooth Specification v1.0
*
* The LC3 is an efficient low latency audio codec.
* - ETSI TS 103 634 v1.4.1
* Digital Enhanced Cordless Telecommunications (DECT)
* Low Complexity Communication Codec plus (LC3plus)
*
* LC3 and LC3 Plus are audio codecs designed for low-latency audio transport.
*
* - Unlike most other codecs, the LC3 codec is focused on audio streaming
* in constrained (on packet sizes and interval) tranport layer.
@ -40,19 +44,65 @@
*
* - Unlike classic codecs, the LC3 codecs does not run on fixed amount
* of samples as input. It operates only on fixed frame duration, for
* any supported samplerates (8 to 48 KHz). Two frames duration are
* any supported sample rates (8 to 48 KHz). Two frames duration are
* available 7.5ms and 10ms.
*
*
* --- About 44.1 KHz samplerate ---
* --- LC3 Plus features ---
*
* The Bluetooth specification reference the 44.1 KHz samplerate, although
* there is no support in the core algorithm of the codec of 44.1 KHz.
* We can summarize the 44.1 KHz support by "you can put any samplerate
* around the defined base samplerates". Please mind the following items :
* In addition to LC3, following features of LC3 Plus are proposed:
* - Frame duration of 2.5 and 5ms.
* - High-Resolution mode, 48 KHz, and 96 kHz sampling rates.
*
* 1. The frame size will not be 7.5 ms or 10 ms, but is scaled
* by 'supported samplerate' / 'input samplerate'
* The distinction between LC3 and LC3 plus is made according to :
*
* Frame Duration | 2.5ms | 5ms | 7.5ms | 10 ms |
* ---------------- | ----- | ----- | ----- | ----- |
* LC3 | | | X | X |
* LC3 Plus | X | X | | X |
*
* The 10 ms frame duration is available in LC3 and LC3 plus standard.
* In this mode, the produced bitstream can be referenced either
* as LC3 or LC3 plus.
*
* The LC3 Plus high-resolution mode should be preferred at high bitrates
* and larger audio bandwidth. In this mode, the audio bandwidth is always
* up to the Nyquist frequency, compared to LC3 at 48 KHz, which limits
* the bandwidth to 20 KHz.
*
*
* --- Bit rate ---
*
* The proposed implementation accepts any frame sizes between 20 and 400 Bytes
* for non-high-resolution mode. Mind that the LC3 Plus standard defines
* smaller sizes for frame durations shorter than 10 ms and/or sampling rates
* less than 48 kHz.
*
* In High-Resolution mode, the frame sizes (and bitrates) are restricted
* as follows:
*
* HR Configuration | Frame sizes | Bitrate (kbps) |
* ------------------ | ------------- | -------------- |
* 10 ms - 48 KHz | 156 to 625 | 124.8 - 500 |
* 10 ms - 96 KHz | 187 to 625 | 149.6 - 500 |
* ------------------ | ------------- | -------------- |
* 5 ms - 48 KHz | 93 to 375 | 148.8 - 600 |
* 5 ms - 96 KHz | 109 to 375 | 174.4 - 600 |
* ------------------ | ------------- | -------------- |
* 2.5 ms - 48 KHz | 54 to 210 | 172.8 - 672 |
* 2.5 ms - 96 KHz | 62 to 210 | 198.4 - 672 |
*
*
* --- About 44.1 KHz sample rate ---
*
* The Bluetooth specification and the ETSI TS 103 634 standard references
* the 44.1 KHz sample rate, although there is no support in the core algorithm
* of the codec.
* We can summarize the 44.1 KHz support by "You can put any sample rate around
* the defined base sample rates." Please mind the following items :
*
* 1. The frame size will not be 2.5ms, 5ms, 7.5 ms or 10 ms, but is scaled
* by 'supported sample rate' / 'input sample rate'
*
* 2. The bandwidth will be hard limited (to 20 KHz) if you select 48 KHz.
* The encoded bandwidth will also be affected by the above inverse
@ -84,8 +134,8 @@
* space must be aligned to a pointer size. As an example, you can setup
* encoder like this :
*
* | enc = lc3_setup_encoder(frame_us, samplerate,
* | malloc(lc3_encoder_size(frame_us, samplerate)));
* | enc = lc3_setup_encoder(frame_us, sample rate,
* | malloc(lc3_encoder_size(frame_us, sample rate)));
* | ...
* | free(enc);
*
@ -124,30 +174,45 @@ extern "C" {
/**
* Limitations
* - On the bitrate, in bps, of a stream
* - On the bitrate, in bps
* - On the size of the frames in bytes
* - On the number of samples by frames
*/
#define LC3_MIN_BITRATE 16000
#define LC3_MAX_BITRATE 320000
#define LC3_MIN_BITRATE 16000
#define LC3_MAX_BITRATE 320000
#define LC3_HR_MAX_BITRATE 672000
#define LC3_MIN_FRAME_BYTES 20
#define LC3_MAX_FRAME_BYTES 400
#define LC3_MIN_FRAME_BYTES 20
#define LC3_MAX_FRAME_BYTES 400
#define LC3_HR_MAX_FRAME_BYTES 625
#define LC3_MIN_FRAME_SAMPLES LC3_NS( 2500, 8000)
#define LC3_MAX_FRAME_SAMPLES LC3_NS(10000, 48000)
#define LC3_HR_MAX_FRAME_SAMPLES LC3_NS(10000, 96000)
/**
* Parameters check
* LC3_CHECK_DT_US(us) True when frame duration in us is suitable
* LC3_CHECK_SR_HZ(sr) True when samplerate in Hz is suitable
* LC3_CHECK_SR_HZ(sr) True when sample rate in Hz is suitable
*
* LC3_HR_CHECK_SR_HZ(hrmode, sr)
* True when sample rate in Hz is suitable, according to the
* selection of the high-resolution mode `hrmode`.
*/
#define LC3_CHECK_DT_US(us) \
( ((us) == 7500) || ((us) == 10000) )
( ((us) == 2500) || ((us) == 5000) || \
((us) == 7500) || ((us) == 10000) )
#define LC3_CHECK_SR_HZ(sr) \
( ((sr) == 8000) || ((sr) == 16000) || ((sr) == 24000) || \
((sr) == 32000) || ((sr) == 48000) )
#define LC3_HR_CHECK_SR_HZ(hrmode, sr) \
( (hrmode) ? ((sr) == 48000) || ((sr) == 96000) : LC3_CHECK_SR_HZ(sr) )
/**
* PCM Sample Format
@ -175,10 +240,10 @@ typedef struct lc3_decoder *lc3_decoder_t;
/**
* Static memory of encoder context
* Static memory of encoder/decoder contexts
*
* Propose types suitable for static memory allocation, supporting
* any frame duration, and maximum samplerates 16k and 48k respectively
* any frame duration, and maximum sample rates 16k and 48k respectively
* You can customize your type using the `LC3_ENCODER_MEM_T` or
* `LC3_DECODER_MEM_T` macro.
*/
@ -192,62 +257,102 @@ typedef LC3_DECODER_MEM_T(10000, 48000) lc3_decoder_mem_48k_t;
/**
* Return the number of PCM samples in a frame
* dt_us Frame duration in us, 7500 or 10000
* sr_hz Samplerate in Hz, 8000, 16000, 24000, 32000 or 48000
* hrmode Enable High-Resolution mode (48000 and 96000 sample rates)
* dt_us Frame duration in us, 2500, 5000, 7500 or 10000
* sr_hz Sample rate in Hz, 8000, 16000, 24000, 32000, 48000 or 96000
* return Number of PCM samples, -1 on bad parameters
*/
int lc3_frame_samples(int dt_us, int sr_hz);
LC3_EXPORT int lc3_hr_frame_samples(bool hrmode, int dt_us, int sr_hz);
LC3_EXPORT int lc3_frame_samples(int dt_us, int sr_hz);
/**
* Return the size of frames, from bitrate
* dt_us Frame duration in us, 7500 or 10000
* bitrate Target bitrate in bit per second
* hrmode Enable High-Resolution mode (48000 and 96000 sample rates)
* dt_us Frame duration in us, 2500, 5000, 7500 or 10000
* sr_hz Sample rate in Hz, 8000, 16000, 24000, 32000, 48000 or 96000
* bitrate Target bitrate in bit per second, 0 or `INT_MAX` returns
* respectively the minimum and maximum allowed size.
* return The floor size in bytes of the frames, -1 on bad parameters
*/
int lc3_frame_bytes(int dt_us, int bitrate);
LC3_EXPORT int lc3_hr_frame_bytes(
bool hrmode, int dt_us, int sr_hz, int bitrate);
LC3_EXPORT int lc3_frame_bytes(int dt_us, int bitrate);
/**
* Return the size of frame blocks, from bitrate
* A frame block contains the frame data from all channels.
* hrmode Enable High-Resolution mode (48000 and 96000 sample rates)
* dt_us Frame duration in us, 2500, 5000, 7500 or 10000
* sr_hz Sample rate in Hz, 8000, 16000, 24000, 32000, 48000 or 96000
* nchannels The number of channels (or frames) in the block (<= 8)
* bitrate Target bitrate in bit per second, 0 or `INT_MAX` returns
* respectively the minimum and maximum allowed size.
* return The floor size in bytes of the frames, -1 on bad parameters
*/
LC3_EXPORT int lc3_hr_frame_block_bytes(
bool hrmode, int dt_us, int sr_hz, int nchannels, int bitrate);
LC3_EXPORT int lc3_frame_block_bytes(int dt_us, int nframes, int bitrate);
/**
* Resolve the bitrate, from the size of frames
* dt_us Frame duration in us, 7500 or 10000
* nbytes Size in bytes of the frames
* return The according bitrate in bps, -1 on bad parameters
* hrmode Enable High-Resolution mode (48000 and 96000 sample rates)
* dt_us Frame duration in us, 2500, 5000, 7500 or 10000
* sr_hz Sample rate in Hz, 8000, 16000, 24000, 32000, 48000 or 96000
* nbytes Size in bytes of the frames or frame blocks
* return The ceiled bitrate in bps, -1 on bad parameters
*/
int lc3_resolve_bitrate(int dt_us, int nbytes);
LC3_EXPORT int lc3_hr_resolve_bitrate(
bool hrmode, int dt_us, int sr_hz, int nbytes);
LC3_EXPORT int lc3_resolve_bitrate(int dt_us, int nbytes);
/**
* Return algorithmic delay, as a number of samples
* dt_us Frame duration in us, 7500 or 10000
* sr_hz Samplerate in Hz, 8000, 16000, 24000, 32000 or 48000
* hrmode Enable High-Resolution mode (48000 and 96000 sample rates)
* dt_us Frame duration in us, 2500, 5000, 7500 or 10000
* sr_hz Sample rate in Hz, 8000, 16000, 24000, 32000, 48000 or 96000
* return Number of algorithmic delay samples, -1 on bad parameters
*/
int lc3_delay_samples(int dt_us, int sr_hz);
LC3_EXPORT int lc3_hr_delay_samples(bool hrmode, int dt_us, int sr_hz);
LC3_EXPORT int lc3_delay_samples(int dt_us, int sr_hz);
/**
* Return size needed for an encoder
* dt_us Frame duration in us, 7500 or 10000
* sr_hz Samplerate in Hz, 8000, 16000, 24000, 32000 or 48000
* hrmode Enable High-Resolution mode (48000 and 96000 sample rates)
* dt_us Frame duration in us, 2500, 5000, 7500 or 10000
* sr_hz Sample rate in Hz, 8000, 16000, 24000, 32000, 48000 or 96000
* return Size of then encoder in bytes, 0 on bad parameters
*
* The `sr_hz` parameter is the samplerate of the PCM input stream,
* and will match `sr_pcm_hz` of `lc3_setup_encoder()`.
* The `sr_hz` parameter is the sample rate of the PCM input stream,
* and will match `sr_pcm_hz` of `lc3_hr_setup_encoder()`.
*/
unsigned lc3_encoder_size(int dt_us, int sr_hz);
LC3_EXPORT unsigned lc3_hr_encoder_size(bool hrmode, int dt_us, int sr_hz);
LC3_EXPORT unsigned lc3_encoder_size(int dt_us, int sr_hz);
/**
* Setup encoder
* dt_us Frame duration in us, 7500 or 10000
* sr_hz Samplerate in Hz, 8000, 16000, 24000, 32000 or 48000
* sr_pcm_hz Input samplerate, downsampling option of input, or 0
* hrmode Enable High-Resolution mode (48000 and 96000 sample rates)
* dt_us Frame duration in us, 2500, 5000, 7500 or 10000
* sr_hz Sample rate in Hz, 8000, 16000, 24000, 32000, 48000 or 96000
* sr_pcm_hz Input sample rate, downsampling option of input, or 0
* mem Encoder memory space, aligned to pointer type
* return Encoder as an handle, NULL on bad parameters
*
* The `sr_pcm_hz` parameter is a downsampling option of PCM input,
* the value `0` fallback to the samplerate of the encoded stream `sr_hz`.
* the value `0` fallback to the sample rate of the encoded stream `sr_hz`.
* When used, `sr_pcm_hz` is intended to be higher or equal to the encoder
* samplerate `sr_hz`. The size of the context needed, given by
* `lc3_encoder_size()` will be set accordingly to `sr_pcm_hz`.
* sample rate `sr_hz`. The size of the context needed, given by
* `lc3_hr_encoder_size()` will be set accordingly to `sr_pcm_hz`.
*/
lc3_encoder_t lc3_setup_encoder(
LC3_EXPORT lc3_encoder_t lc3_hr_setup_encoder(
bool hrmode, int dt_us, int sr_hz, int sr_pcm_hz, void *mem);
LC3_EXPORT lc3_encoder_t lc3_setup_encoder(
int dt_us, int sr_hz, int sr_pcm_hz, void *mem);
/**
@ -255,39 +360,47 @@ lc3_encoder_t lc3_setup_encoder(
* encoder Handle of the encoder
* fmt PCM input format
* pcm, stride Input PCM samples, and count between two consecutives
* nbytes Target size, in bytes, of the frame (20 to 400)
* nbytes Target size, in bytes, of the frame
* out Output buffer of `nbytes` size
* return 0: On success -1: Wrong parameters
*/
int lc3_encode(lc3_encoder_t encoder, enum lc3_pcm_format fmt,
LC3_EXPORT int lc3_encode(
lc3_encoder_t encoder, enum lc3_pcm_format fmt,
const void *pcm, int stride, int nbytes, void *out);
/**
* Return size needed for an decoder
* dt_us Frame duration in us, 7500 or 10000
* sr_hz Samplerate in Hz, 8000, 16000, 24000, 32000 or 48000
* hrmode Enable High-Resolution mode (48000 and 96000 sample rates)
* dt_us Frame duration in us, 2500, 5000, 7500 or 10000
* sr_hz Sample rate in Hz, 8000, 16000, 24000, 32000, 48000 or 96000
* return Size of then decoder in bytes, 0 on bad parameters
*
* The `sr_hz` parameter is the samplerate of the PCM output stream,
* and will match `sr_pcm_hz` of `lc3_setup_decoder()`.
* The `sr_hz` parameter is the sample rate of the PCM output stream,
* and will match `sr_pcm_hz` of `lc3_hr_setup_decoder()`.
*/
unsigned lc3_decoder_size(int dt_us, int sr_hz);
LC3_EXPORT unsigned lc3_hr_decoder_size(bool hrmode, int dt_us, int sr_hz);
LC3_EXPORT unsigned lc3_decoder_size(int dt_us, int sr_hz);
/**
* Setup decoder
* dt_us Frame duration in us, 7500 or 10000
* sr_hz Samplerate in Hz, 8000, 16000, 24000, 32000 or 48000
* sr_pcm_hz Output samplerate, upsampling option of output (or 0)
* hrmode Enable High-Resolution mode (48000 and 96000 sample rates)
* dt_us Frame duration in us, 2500, 5000, 7500 or 10000
* sr_hz Sample rate in Hz, 8000, 16000, 24000, 32000, 48000 or 96000
* sr_pcm_hz Output sample rate, upsampling option of output (or 0)
* mem Decoder memory space, aligned to pointer type
* return Decoder as an handle, NULL on bad parameters
*
* The `sr_pcm_hz` parameter is an upsampling option of PCM output,
* the value `0` fallback to the samplerate of the decoded stream `sr_hz`.
* the value `0` fallback to the sample rate of the decoded stream `sr_hz`.
* When used, `sr_pcm_hz` is intended to be higher or equal to the decoder
* samplerate `sr_hz`. The size of the context needed, given by
* `lc3_decoder_size()` will be set accordingly to `sr_pcm_hz`.
* sample rate `sr_hz`. The size of the context needed, given by
* `lc3_hr_decoder_size()` will be set accordingly to `sr_pcm_hz`.
*/
lc3_decoder_t lc3_setup_decoder(
LC3_EXPORT lc3_decoder_t lc3_hr_setup_decoder(
bool hrmode, int dt_us, int sr_hz, int sr_pcm_hz, void *mem);
LC3_EXPORT lc3_decoder_t lc3_setup_decoder(
int dt_us, int sr_hz, int sr_pcm_hz, void *mem);
/**
@ -298,7 +411,8 @@ lc3_decoder_t lc3_setup_decoder(
* pcm, stride Output PCM samples, and count between two consecutives
* return 0: On success 1: PLC operated -1: Wrong parameters
*/
int lc3_decode(lc3_decoder_t decoder, const void *in, int nbytes,
LC3_EXPORT int lc3_decode(
lc3_decoder_t decoder, const void *in, int nbytes,
enum lc3_pcm_format fmt, void *pcm, int stride);

310
3rd-party/lc3-google/include/lc3_cpp.h vendored Normal file
View File

@ -0,0 +1,310 @@
/******************************************************************************
*
* Copyright 2022 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************/
/**
* Low Complexity Communication Codec (LC3) - C++ interface
*/
#ifndef __LC3_CPP_H
#define __LC3_CPP_H
#include <cassert>
#include <memory>
#include <vector>
#include <stdlib.h>
#include "lc3.h"
namespace lc3 {
// PCM Sample Format
// - Signed 16 bits, in 16 bits words (int16_t)
// - Signed 24 bits, using low three bytes of 32 bits words (int32_t)
// The high byte sign extends (bits 31..24 set to b23)
// - Signed 24 bits packed in 3 bytes little endian
// - Floating point 32 bits (float type), in range -1 to 1
enum class PcmFormat {
kS16 = LC3_PCM_FORMAT_S16,
kS24 = LC3_PCM_FORMAT_S24,
kS24In3Le = LC3_PCM_FORMAT_S24_3LE,
kF32 = LC3_PCM_FORMAT_FLOAT
};
// Base Encoder/Decoder Class
template <typename T>
class Base {
protected:
Base(int dt_us, int sr_hz, int sr_pcm_hz, size_t nchannels, bool hrmode)
: dt_us_(dt_us),
sr_hz_(sr_hz),
sr_pcm_hz_(sr_pcm_hz == 0 ? sr_hz : sr_pcm_hz),
nchannels_(nchannels),
hrmode_(hrmode) {
states.reserve(nchannels_);
}
virtual ~Base() = default;
int dt_us_, sr_hz_;
int sr_pcm_hz_;
size_t nchannels_;
bool hrmode_;
using state_ptr = std::unique_ptr<T, decltype(&free)>;
std::vector<state_ptr> states;
public:
// Return the number of PCM samples in a frame
int GetFrameSamples() {
return lc3_hr_frame_samples(hrmode_, dt_us_, sr_pcm_hz_); }
// Return the size of a frame block, from bitrate
int GetFrameBytes(int bitrate) {
return lc3_hr_frame_block_bytes(
hrmode_, dt_us_, sr_hz_, nchannels_, bitrate); }
// Resolve the bitrate, from the size of frame blocks
int ResolveBitrate(int nbytes) {
return lc3_hr_resolve_bitrate(hrmode_, dt_us_, sr_hz_, nbytes); }
// Return algorithmic delay, as a number of samples
int GetDelaySamples() {
return lc3_hr_delay_samples(hrmode_, dt_us_, sr_pcm_hz_); }
}; // class Base
// Encoder Class
class Encoder : public Base<struct lc3_encoder> {
template <typename T>
int EncodeImpl(PcmFormat fmt, const T *pcm, int block_size, uint8_t *out) {
if (states.size() != nchannels_) return -1;
enum lc3_pcm_format cfmt = static_cast<lc3_pcm_format>(fmt);
int ret = 0;
uint8_t *out_ptr = out;
for (size_t ich = 0; ich < nchannels_; ich++) {
int frame_size = block_size / nchannels_
+ (ich < block_size % nchannels_);
ret |= lc3_encode(states[ich].get(), cfmt, pcm + ich, nchannels_,
frame_size, out_ptr);
out_ptr += frame_size;
}
return ret;
}
public:
// Encoder construction / destruction
//
// The frame duration `dt_us` is 2500, 5000, 7500 or 10000 us.
// The sample rate `sr_hz` is 8000, 16000, 24000, 32000 or 48000 Hz.
// The `hrmode` flag enables the high-resolution mode, in which case
// the sample rate is 48000 or 96000 Hz.
//
// The `sr_pcm_hz` parameter is a downsampling option of PCM input,
// the value 0 fallback to the sample rate of the encoded stream `sr_hz`.
// When used, `sr_pcm_hz` is intended to be higher or equal to the encoder
// sample rate `sr_hz`.
Encoder(int dt_us, int sr_hz, int sr_pcm_hz = 0,
size_t nchannels = 1, bool hrmode = false)
: Base(dt_us, sr_hz, sr_pcm_hz, nchannels, hrmode) {
for (size_t ich = 0; ich < nchannels_; ich++) {
auto s = state_ptr((lc3_encoder_t)
malloc(lc3_hr_encoder_size(hrmode_, dt_us_, sr_pcm_hz_)), free);
if (lc3_hr_setup_encoder(hrmode_, dt_us_, sr_hz_, sr_pcm_hz_, s.get()))
states.push_back(std::move(s));
}
}
~Encoder() override = default;
// Reset encoder state
void Reset() {
for (auto &s : states)
lc3_hr_setup_encoder(hrmode_, dt_us_, sr_hz_, sr_pcm_hz_, s.get());
}
// Encode
//
// The input PCM samples are given in signed 16 bits, 24 bits, float,
// according the type of `pcm` input buffer, or by selecting a format.
//
// The PCM samples are read in interleaved way, and consecutive
// `nchannels` frames, are output in `out` buffer, of size `buffer_size`.
//
// The value returned is 0 on successs, -1 otherwise.
int Encode(const int16_t *pcm, int block_size, uint8_t *out) {
return EncodeImpl(PcmFormat::kS16, pcm, block_size, out);
}
int Encode(const int32_t *pcm, int block_size, uint8_t *out) {
return EncodeImpl(PcmFormat::kS24, pcm, block_size, out);
}
int Encode(const float *pcm, int block_size, uint8_t *out) {
return EncodeImpl(PcmFormat::kF32, pcm, block_size, out);
}
int Encode(PcmFormat fmt, const void *pcm, int block_size, uint8_t *out) {
uintptr_t pcm_ptr = reinterpret_cast<uintptr_t>(pcm);
switch (fmt) {
case PcmFormat::kS16:
assert(pcm_ptr % alignof(int16_t) == 0);
return EncodeImpl(fmt, reinterpret_cast<const int16_t *>(pcm),
block_size, out);
case PcmFormat::kS24:
assert(pcm_ptr % alignof(int32_t) == 0);
return EncodeImpl(fmt, reinterpret_cast<const int32_t *>(pcm),
block_size, out);
case PcmFormat::kS24In3Le:
return EncodeImpl(fmt, reinterpret_cast<const int8_t(*)[3]>(pcm),
block_size, out);
case PcmFormat::kF32:
assert(pcm_ptr % alignof(float) == 0);
return EncodeImpl(fmt, reinterpret_cast<const float *>(pcm), block_size,
out);
}
return -1;
}
}; // class Encoder
// Decoder Class
class Decoder : public Base<struct lc3_decoder> {
template <typename T>
int DecodeImpl(const uint8_t *in, int block_size, PcmFormat fmt, T *pcm) {
if (states.size() != nchannels_) return -1;
enum lc3_pcm_format cfmt = static_cast<enum lc3_pcm_format>(fmt);
int ret = 0;
const uint8_t *in_ptr = in;
for (size_t ich = 0; ich < nchannels_; ich++) {
int frame_size = block_size / nchannels_
+ (ich < block_size % nchannels_);
ret |= lc3_decode(states[ich].get(), in_ptr, frame_size,
cfmt, pcm + ich, nchannels_);
in_ptr += frame_size;
}
return ret;
}
public:
// Decoder construction / destruction
//
// The frame duration `dt_us` is 2500, 5000, 7500 or 10000 us.
// The sample rate `sr_hz` is 8000, 16000, 24000, 32000 or 48000 Hz.
// The `hrmode` flag enables the high-resolution mode, in which case
// the sample rate is 48000 or 96000 Hz.
//
// The `sr_pcm_hz` parameter is an downsampling option of PCM output,
// the value 0 fallback to the sample rate of the decoded stream `sr_hz`.
// When used, `sr_pcm_hz` is intended to be higher or equal to the decoder
// sample rate `sr_hz`.
Decoder(int dt_us, int sr_hz, int sr_pcm_hz = 0,
size_t nchannels = 1, bool hrmode = false)
: Base(dt_us, sr_hz, sr_pcm_hz, nchannels, hrmode) {
for (size_t i = 0; i < nchannels_; i++) {
auto s = state_ptr((lc3_decoder_t)
malloc(lc3_hr_decoder_size(hrmode_, dt_us_, sr_pcm_hz_)), free);
if (lc3_hr_setup_decoder(hrmode_, dt_us_, sr_hz_, sr_pcm_hz_, s.get()))
states.push_back(std::move(s));
}
}
~Decoder() override = default;
// Reset decoder state
void Reset() {
for (auto &s : states)
lc3_hr_setup_decoder(hrmode_, dt_us_, sr_hz_, sr_pcm_hz_, s.get());
}
// Decode
//
// Decode a frame block of size `block_size`,
// in the `pcm` buffer in interleaved way.
//
// The PCM samples are output in signed 16 bits, 24 bits, float,
// according the type of `pcm` output buffer, or by selecting a format.
//
// The value returned is 0 on successs, 1 when PLC has been performed,
// and -1 otherwise.
int Decode(const uint8_t *in, int block_size, int16_t *pcm) {
return DecodeImpl(in, block_size, PcmFormat::kS16, pcm);
}
int Decode(const uint8_t *in, int block_size, int32_t *pcm) {
return DecodeImpl(in, block_size, PcmFormat::kS24In3Le, pcm);
}
int Decode(const uint8_t *in, int block_size, float *pcm) {
return DecodeImpl(in, block_size, PcmFormat::kF32, pcm);
}
int Decode(const uint8_t *in, int block_size, PcmFormat fmt, void *pcm) {
uintptr_t pcm_ptr = reinterpret_cast<uintptr_t>(pcm);
switch (fmt) {
case PcmFormat::kS16:
assert(pcm_ptr % alignof(int16_t) == 0);
return DecodeImpl(in, block_size, fmt,
reinterpret_cast<int16_t *>(pcm));
case PcmFormat::kS24:
assert(pcm_ptr % alignof(int32_t) == 0);
return DecodeImpl(in, block_size, fmt,
reinterpret_cast<int32_t *>(pcm));
case PcmFormat::kS24In3Le:
return DecodeImpl(in, block_size, fmt,
reinterpret_cast<int8_t(*)[3]>(pcm));
case PcmFormat::kF32:
assert(pcm_ptr % alignof(float) == 0);
return DecodeImpl(in, block_size, fmt, reinterpret_cast<float *>(pcm));
}
return -1;
}
}; // class Decoder
} // namespace lc3
#endif /* __LC3_CPP_H */

View File

@ -24,39 +24,50 @@
/**
* Return number of samples, delayed samples and
* encoded spectrum coefficients within a frame
* - For encoding, keep 1.25 ms of temporal winodw
* - For decoding, keep 18 ms of history, aligned on frames, and a frame
* Characteristics
*
* - The number of samples within a frame
*
* - The number of MDCT delayed samples, sum of half a frame and
* an ovelap of future by 1.25 ms (2.5ms, 5ms and 10ms frame durations)
* or 2 ms (7.5ms frame duration).
*
* - For decoding, keep 18 ms of history, aligned on a frame
*
* - For encoding, keep 1.25 ms of temporal previous samples
*/
#define __LC3_NS(dt_us, sr_hz) \
( (dt_us * sr_hz) / 1000 / 1000 )
#define LC3_NS(dt_us, sr_hz) \
( (dt_us) * (sr_hz) / 1000 / 1000 )
#define __LC3_ND(dt_us, sr_hz) \
( (dt_us) == 7500 ? 23 * __LC3_NS(dt_us, sr_hz) / 30 \
: 5 * __LC3_NS(dt_us, sr_hz) / 8 )
#define LC3_ND(dt_us, sr_hz) \
( LC3_NS(dt_us, sr_hz) / 2 + \
LC3_NS((dt_us) == 7500 ? 2000 : 1250, sr_hz) )
#define __LC3_NT(sr_hz) \
( (5 * sr_hz) / 4000 )
#define LC3_NH(dt_us, sr_hz) \
( (sr_hz) > 48000 ? 0 : ( LC3_NS(18000, sr_hz) + \
LC3_NS(dt_us, sr_hz) - (LC3_NS(18000, sr_hz) % LC3_NS(dt_us, sr_hz)) ) )
#define __LC3_NH(dt_us, sr_hz) \
( ((3 - ((dt_us) >= 10000)) + 1) * __LC3_NS(dt_us, sr_hz) )
#define LC3_NT(sr_hz) \
( LC3_NS(1250, sr_hz) )
/**
* Frame duration 7.5ms or 10ms
* Frame duration
*/
enum lc3_dt {
LC3_DT_7M5,
LC3_DT_10M,
LC3_DT_2M5 = 0,
LC3_DT_5M = 1,
LC3_DT_7M5 = 2,
LC3_DT_10M = 3,
LC3_NUM_DT
};
/**
* Sampling frequency
* Sampling frequency and high-resolution mode
*/
enum lc3_srate {
@ -65,8 +76,10 @@ enum lc3_srate {
LC3_SRATE_24K,
LC3_SRATE_32K,
LC3_SRATE_48K,
LC3_SRATE_48K_HR,
LC3_SRATE_96K_HR,
LC3_NUM_SRATE,
LC3_NUM_SRATE
};
@ -107,18 +120,18 @@ struct lc3_encoder {
lc3_ltpf_analysis_t ltpf;
lc3_spec_analysis_t spec;
int16_t *xt;
float *xs, *xd, s[1];
int xt_off, xs_off, xd_off;
float x[1];
};
#define LC3_ENCODER_BUFFER_COUNT(dt_us, sr_hz) \
( ( __LC3_NS(dt_us, sr_hz) + __LC3_NT(sr_hz) ) / 2 + \
__LC3_NS(dt_us, sr_hz) + __LC3_ND(dt_us, sr_hz) )
( ( LC3_NS(dt_us, sr_hz) + LC3_NT(sr_hz) ) / 2 + \
LC3_NS(dt_us, sr_hz) + LC3_ND(dt_us, sr_hz) )
#define LC3_ENCODER_MEM_T(dt_us, sr_hz) \
struct { \
struct lc3_encoder __e; \
float __s[LC3_ENCODER_BUFFER_COUNT(dt_us, sr_hz)-1]; \
float __x[LC3_ENCODER_BUFFER_COUNT(dt_us, sr_hz)-1]; \
}
@ -145,18 +158,30 @@ struct lc3_decoder {
lc3_ltpf_synthesis_t ltpf;
lc3_plc_state_t plc;
float *xh, *xs, *xd, *xg, s[1];
int xh_off, xs_off, xd_off, xg_off;
float x[1];
};
#define LC3_DECODER_BUFFER_COUNT(dt_us, sr_hz) \
( __LC3_NH(dt_us, sr_hz) + __LC3_ND(dt_us, sr_hz) + \
__LC3_NS(dt_us, sr_hz) )
( LC3_NH(dt_us, sr_hz) + LC3_NS(dt_us, sr_hz) + \
LC3_ND(dt_us, sr_hz) + LC3_NS(dt_us, sr_hz) )
#define LC3_DECODER_MEM_T(dt_us, sr_hz) \
struct { \
struct lc3_decoder __d; \
float __s[LC3_DECODER_BUFFER_COUNT(dt_us, sr_hz)-1]; \
float __x[LC3_DECODER_BUFFER_COUNT(dt_us, sr_hz)-1]; \
}
/**
* Change the visibility of interface functions
*/
#ifdef _WIN32
#define LC3_EXPORT __declspec(dllexport)
#else
#define LC3_EXPORT __attribute__((visibility ("default")))
#endif
#endif /* __LC3_PRIVATE_H */

40
3rd-party/lc3-google/meson.build vendored Normal file
View File

@ -0,0 +1,40 @@
# Copyright © 2022 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
project('lc3', 'c',
version: '1.1.0',
license: 'Apache-2.0',
meson_version: '>= 0.48.0',
default_options: ['buildtype=release', 'b_lto=true'])
cc = meson.get_compiler('c')
if cc.get_id() == 'msvc'
add_project_arguments(['/wd4244', '/wd4305', '/fp:fast'], language: 'c')
else
add_project_arguments('-ffast-math', language: 'c')
endif
m_dep = cc.find_library('m', required: false)
subdir('src')
if get_option('tools')
subdir('tools')
endif
if get_option('python')
subdir('python')
endif

23
3rd-party/lc3-google/meson_options.txt vendored Normal file
View File

@ -0,0 +1,23 @@
# Copyright © 2022 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
option('tools',
type: 'boolean',
value: false,
description: 'Build tools')
option('python',
type: 'boolean',
value: false,
description: 'Build python bindings')

19
3rd-party/lc3-google/pyproject.toml vendored Normal file
View File

@ -0,0 +1,19 @@
[build-system]
requires = ["meson-python"]
build-backend = "mesonpy"
[project]
name = "lc3"
version = "0.0.1"
license = { text="Apache-2.0" }
authors = [
{ name="Antoine Soulier", email="asoulier@google.com" },
]
description = "LC3 Codec library wrapper"
requires-python = ">=3.10"
[project.urls]
Homepage = "https://github.com/google/liblc3"
[tool.meson-python.args]
setup = ['-Dpython=true']

202
3rd-party/lc3-google/python/LICENSE vendored Normal file
View File

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

400
3rd-party/lc3-google/python/lc3.py vendored Normal file
View File

@ -0,0 +1,400 @@
#
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
import array
import ctypes
import enum
import glob
import os
from ctypes import c_bool, c_byte, c_int, c_uint, c_size_t, c_void_p
from ctypes.util import find_library
class _Base:
def __init__(self, frame_duration, samplerate, nchannels, **kwargs):
self.hrmode = False
self.dt_us = int(frame_duration * 1000)
self.sr_hz = int(samplerate)
self.sr_pcm_hz = self.sr_hz
self.nchannels = nchannels
libpath = None
for k in kwargs.keys():
if k == 'hrmode':
self.hrmode = bool(kwargs[k])
elif k == 'pcm_samplerate':
self.sr_pcm_hz = int(kwargs[k])
elif k == 'libpath':
libpath = kwargs[k]
else:
raise ValueError("Invalid keyword argument: " + k)
if self.dt_us not in [2500, 5000, 7500, 10000]:
raise ValueError(
"Invalid frame duration: %.1f ms" % frame_duration)
allowed_samplerate = [8000, 16000, 24000, 32000, 48000] \
if not self.hrmode else [48000, 96000]
if self.sr_hz not in allowed_samplerate:
raise ValueError("Invalid sample rate: %d Hz" % samplerate)
if libpath is None:
mesonpy_lib = glob.glob(os.path.join(os.path.dirname(__file__), '.lc3.mesonpy.libs', '*lc3*'))
if mesonpy_lib:
libpath = mesonpy_lib[0]
else:
libpath = find_library("lc3")
if not libpath:
raise Exception("LC3 library not found")
lib = ctypes.cdll.LoadLibrary(libpath)
try:
lib.lc3_hr_frame_samples \
and lib.lc3_hr_frame_block_bytes \
and lib.lc3_hr_resolve_bitrate \
and lib.lc3_hr_delay_samples
except AttributeError:
if self.hrmode:
raise Exception('High-Resolution interface not available')
lib.lc3_hr_frame_samples = \
lambda hrmode, dt_us, sr_hz: \
lib.lc3_frame_samples(dt_us, sr_hz)
lib.lc3_hr_frame_block_bytes = \
lambda hrmode, dt_us, sr_hz, nchannels, bitrate: \
nchannels * lib.lc3_frame_bytes(dt_us, bitrate // 2)
lib.lc3_hr_resolve_bitrate = \
lambda hrmode, dt_us, sr_hz, nbytes: \
lib.lc3_resolve_bitrate(dt_us, nbytes)
lib.lc3_hr_delay_samples = \
lambda hrmode, dt_us, sr_hz: \
lib.lc3_delay_samples(dt_us, sr_hz)
lib.lc3_hr_frame_samples.argtypes = [c_bool, c_int, c_int]
lib.lc3_hr_frame_block_bytes.argtypes = \
[c_bool, c_int, c_int, c_int, c_int]
lib.lc3_hr_resolve_bitrate.argtypes = [c_bool, c_int, c_int, c_int]
lib.lc3_hr_delay_samples.argtypes = [c_bool, c_int, c_int]
self.lib = lib
libc = ctypes.cdll.LoadLibrary(find_library("c"))
self.malloc = libc.malloc
self.malloc.argtypes = [c_size_t]
self.malloc.restype = c_void_p
self.free = libc.free
self.free.argtypes = [c_void_p]
def get_frame_samples(self):
"""
Returns the number of PCM samples in an LC3 frame
"""
ret = self.lib.lc3_hr_frame_samples(
self.hrmode, self.dt_us, self.sr_pcm_hz)
if ret < 0:
raise ValueError("Bad parameters")
return ret
def get_frame_bytes(self, bitrate):
"""
Returns the size of LC3 frame blocks, from bitrate in bit per seconds.
A target `bitrate` equals 0 or `INT32_MAX` returns respectively
the minimum and maximum allowed size.
"""
ret = self.lib.lc3_hr_frame_block_bytes(
self.hrmode, self.dt_us, self.sr_hz, self.nchannels, bitrate)
if ret < 0:
raise ValueError("Bad parameters")
return ret
def resolve_bitrate(self, nbytes):
"""
Returns the bitrate in bits per seconds, from the size of LC3 frames.
"""
ret = self.lib.lc3_hr_resolve_bitrate(
self.hrmode, self.dt_us, self.sr_hz, nbytes)
if ret < 0:
raise ValueError("Bad parameters")
return ret
def get_delay_samples(self):
"""
Returns the algorithmic delay, as a number of samples.
"""
ret = self.lib.lc3_hr_delay_samples(
self.hrmode, self.dt_us, self.sr_pcm_hz)
if ret < 0:
raise ValueError("Bad parameters")
return ret
@staticmethod
def _resolve_pcm_format(bitdepth):
PCM_FORMAT_S16 = 0
PCM_FORMAT_S24 = 1
PCM_FORMAT_S24_3LE = 2
PCM_FORMAT_FLOAT = 3
match bitdepth:
case 16: return (PCM_FORMAT_S16, ctypes.c_int16)
case 24: return (PCM_FORMAT_S24_3LE, 3 * ctypes.c_byte)
case None: return (PCM_FORMAT_FLOAT, ctypes.c_float)
case _: raise ValueError("Could not interpret PCM bitdepth")
class Encoder(_Base):
"""
LC3 Encoder wrapper
The `frame_duration` expressed in milliseconds is any of 2.5, 5.0, 7.5
or 10.0. The `samplerate`, in Hertz, is any of 8000, 16000, 24000, 32000
or 48000, unless High-Resolution mode is enabled. In High-Resolution mode,
the `samplerate` is 48000 or 96000.
By default, one channel is processed. When `nchannels` is greater than one,
the PCM input stream is read interleaved and consecutives LC3 frames are
output, for each channel.
Keyword arguments:
hrmode : Enable High-Resolution mode, default is `False`.
sr_pcm_hz : Input PCM samplerate, enable downsampling of input.
libpath : LC3 library path and name
"""
class c_encoder_t(c_void_p):
pass
def __init__(self, frame_duration, samplerate, nchannels=1, **kwargs):
super().__init__(frame_duration, samplerate, nchannels, **kwargs)
lib = self.lib
try:
lib.lc3_hr_encoder_size \
and lib.lc3_hr_setup_encoder
except AttributeError:
assert not self.hrmode
lib.lc3_hr_encoder_size = \
lambda hrmode, dt_us, sr_hz: \
lib.lc3_encoder_size(dt_us, sr_hz)
lib.lc3_hr_setup_encoder = \
lambda hrmode, dt_us, sr_hz, sr_pcm_hz, mem: \
lib.lc3_setup_encoder(dt_us, sr_hz, sr_pcm_hz, mem)
lib.lc3_hr_encoder_size.argtypes = [c_bool, c_int, c_int]
lib.lc3_hr_encoder_size.restype = c_uint
lib.lc3_hr_setup_encoder.argtypes = \
[c_bool, c_int, c_int, c_int, c_void_p]
lib.lc3_hr_setup_encoder.restype = self.c_encoder_t
lib.lc3_encode.argtypes = \
[self.c_encoder_t, c_int, c_void_p, c_int, c_int, c_void_p]
def new_encoder(): return lib.lc3_hr_setup_encoder(
self.hrmode, self.dt_us, self.sr_hz, self.sr_pcm_hz,
self.malloc(lib.lc3_hr_encoder_size(
self.hrmode, self.dt_us, self.sr_pcm_hz)))
self.__encoders = [new_encoder() for i in range(nchannels)]
def __del__(self):
try:
(self.free(encoder) for encoder in self.__encoders)
finally:
return
def encode(self, pcm, nbytes, bitdepth=None):
"""
Encode LC3 frame(s), for each channel.
The `pcm` input is given in two ways. When no `bitdepth` is defined,
it's a vector of floating point values from -1 to 1, coding the sample
levels. When `bitdepth` is defined, `pcm` is interpreted as a byte-like
object, each sample coded on `bitdepth` bits (16 or 24).
The machine endianness, or little endian, is used for 16 or 24 bits
width, respectively.
In both cases, the `pcm` vector data is padded with zeros when
its length is less than the required input samples for the encoder.
Channels concatenation of encoded LC3 frames, of `nbytes`, is returned.
"""
nchannels = self.nchannels
frame_samples = self.get_frame_samples()
(pcm_fmt, pcm_t) = self._resolve_pcm_format(bitdepth)
pcm_len = nchannels * frame_samples
if bitdepth is None:
pcm_buffer = array.array('f', pcm)
# Invert test to catch NaN
if not abs(sum(pcm)) / frame_samples < 2:
raise ValueError("Out of range PCM input")
padding = max(pcm_len - frame_samples, 0)
pcm_buffer.extend(array.array('f', [0] * padding))
else:
padding = max(pcm_len * ctypes.sizeof(pcm_t) - len(pcm), 0)
pcm_buffer = bytearray(pcm) + bytearray(padding)
data_buffer = (c_byte * nbytes)()
data_offset = 0
for (ich, encoder) in enumerate(self.__encoders):
pcm_offset = ich * ctypes.sizeof(pcm_t)
pcm = (pcm_t * (pcm_len - ich)).from_buffer(pcm_buffer, pcm_offset)
data_size = nbytes // nchannels + int(ich < nbytes % nchannels)
data = (c_byte * data_size).from_buffer(data_buffer, data_offset)
data_offset += data_size
ret = self.lib.lc3_encode(
encoder, pcm_fmt, pcm, nchannels, len(data), data)
if ret < 0:
raise ValueError("Bad parameters")
return bytes(data_buffer)
class Decoder(_Base):
"""
LC3 Decoder wrapper
The `frame_duration` expressed in milliseconds is any of 2.5, 5.0, 7.5
or 10.0. The `samplerate`, in Hertz, is any of 8000, 16000, 24000, 32000
or 48000, unless High-Resolution mode is enabled. In High-Resolution
mode, the `samplerate` is 48000 or 96000.
By default, one channel is processed. When `nchannels` is greater than one,
the PCM input stream is read interleaved and consecutives LC3 frames are
output, for each channel.
Keyword arguments:
hrmode : Enable High-Resolution mode, default is `False`.
sr_pcm_hz : Output PCM samplerate, enable upsampling of output.
libpath : LC3 library path and name
"""
class c_decoder_t(c_void_p):
pass
def __init__(self, frame_duration, samplerate, nchannels=1, **kwargs):
super().__init__(frame_duration, samplerate, nchannels, **kwargs)
lib = self.lib
try:
lib.lc3_hr_decoder_size \
and lib.lc3_hr_setup_decoder
except AttributeError:
assert not self.hrmode
lib.lc3_hr_decoder_size = \
lambda hrmode, dt_us, sr_hz: \
lib.lc3_decoder_size(dt_us, sr_hz)
lib.lc3_hr_setup_decoder = \
lambda hrmode, dt_us, sr_hz, sr_pcm_hz, mem: \
lib.lc3_setup_decoder(dt_us, sr_hz, sr_pcm_hz, mem)
lib.lc3_hr_decoder_size.argtypes = [c_bool, c_int, c_int]
lib.lc3_hr_decoder_size.restype = c_uint
lib.lc3_hr_setup_decoder.argtypes = \
[c_bool, c_int, c_int, c_int, c_void_p]
lib.lc3_hr_setup_decoder.restype = self.c_decoder_t
lib.lc3_decode.argtypes = \
[self.c_decoder_t, c_void_p, c_int, c_int, c_void_p, c_int]
def new_decoder(): return lib.lc3_hr_setup_decoder(
self.hrmode, self.dt_us, self.sr_hz, self.sr_pcm_hz,
self.malloc(lib.lc3_hr_decoder_size(
self.hrmode, self.dt_us, self.sr_pcm_hz)))
self.__decoders = [new_decoder() for i in range(nchannels)]
def __del__(self):
try:
(self.free(decoder) for decoder in self.__decoders)
finally:
return
def decode(self, data, bitdepth=None):
"""
Decode an LC3 frame
The input `data` is the channels concatenation of LC3 frames in a
byte-like object. Interleaved PCM samples are returned according to
the `bitdepth` indication.
When no `bitdepth` is defined, it's a vector of floating point values
from -1 to 1, coding the sample levels. When `bitdepth` is defined,
it returns a byte array, each sample coded on `bitdepth` bits.
The machine endianness, or little endian, is used for 16 or 24 bits
width, respectively.
"""
nchannels = self.nchannels
frame_samples = self.get_frame_samples()
(pcm_fmt, pcm_t) = self._resolve_pcm_format(bitdepth)
pcm_len = nchannels * self.get_frame_samples()
pcm_buffer = (pcm_t * pcm_len)()
data_buffer = bytearray(data)
data_offset = 0
for (ich, decoder) in enumerate(self.__decoders):
pcm_offset = ich * ctypes.sizeof(pcm_t)
pcm = (pcm_t * (pcm_len - ich)).from_buffer(pcm_buffer, pcm_offset)
data_size = len(data_buffer) // nchannels + \
int(ich < len(data_buffer) % nchannels)
data = (c_byte * data_size).from_buffer(data_buffer, data_offset)
data_offset += data_size
ret = self.lib.lc3_decode(
decoder, data, len(data), pcm_fmt, pcm, self.nchannels)
if ret < 0:
raise ValueError("Bad parameters")
return array.array('f', pcm_buffer) \
if bitdepth is None else bytes(pcm_buffer)

View File

@ -0,0 +1,3 @@
py = import('python').find_installation()
py.install_sources('lc3.py')

96
3rd-party/lc3-google/python/tools/decoder.py vendored Executable file
View File

@ -0,0 +1,96 @@
#!/usr/bin/env python3
#
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
import argparse
import lc3
import struct
import sys
import wave
parser = argparse.ArgumentParser(description='LC3 Decoder')
parser.add_argument(
'lc3_file', nargs='?',
help='Input bitstream file, default is stdin',
type=argparse.FileType('rb'), default=sys.stdin.buffer)
parser.add_argument(
'wav_file', nargs='?',
help='Output wave file, default is stdout',
type=argparse.FileType('wb'), default=sys.stdout.buffer)
parser.add_argument(
'--bitdepth',
help='Output bitdepth, default is 16 bits',
type=int, choices=[16, 24], default=16)
parser.add_argument(
'--libpath', help='LC3 Library path')
args = parser.parse_args()
# --- LC3 File input ---
f_lc3 = args.lc3_file
header = struct.unpack('=HHHHHHHI', f_lc3.read(18))
if header[0] != 0xcc1c:
raise ValueError('Invalid bitstream file')
samplerate = header[2] * 100
nchannels = header[4]
frame_duration = header[5] / 100
stream_length = header[7]
# --- Setup output ---
bitdepth = args.bitdepth
pcm_size = nchannels * (bitdepth // 8)
f_wav = args.wav_file
wavfile = wave.open(f_wav)
wavfile.setnchannels(nchannels)
wavfile.setsampwidth(bitdepth // 8)
wavfile.setframerate(samplerate)
wavfile.setnframes(stream_length)
# --- Setup decoder ---
dec = lc3.Decoder(
frame_duration, samplerate, nchannels, libpath=args.libpath)
frame_length = dec.get_frame_samples()
encoded_length = stream_length + dec.get_delay_samples()
# --- Decoding loop ---
for i in range(0, encoded_length, frame_length):
lc3_frame_size = struct.unpack('=H', f_lc3.read(2))[0]
pcm = dec.decode(f_lc3.read(lc3_frame_size), bitdepth=bitdepth)
pcm = pcm[max(encoded_length - stream_length - i, 0) * pcm_size:
min(encoded_length - i, frame_length) * pcm_size]
wavfile.writeframesraw(pcm)
# --- Cleanup ---
wavfile.close()
for f in (f_lc3, f_wav):
if f is not sys.stdout.buffer:
f.close()

88
3rd-party/lc3-google/python/tools/encoder.py vendored Executable file
View File

@ -0,0 +1,88 @@
#!/usr/bin/env python3
#
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
import argparse
import lc3
import struct
import sys
import wave
parser = argparse.ArgumentParser(description='LC3 Encoder')
parser.add_argument(
'wav_file', nargs='?',
help='Input wave file, default is stdin',
type=argparse.FileType('rb'), default=sys.stdin.buffer)
parser.add_argument(
'lc3_file', nargs='?',
help='Output bitstream file, default is stdout',
type=argparse.FileType('wb'), default=sys.stdout.buffer)
parser.add_argument(
'--bitrate', help='Bitrate in bps', type=int, required=True)
parser.add_argument(
'--frame_duration', help='Frame duration in ms', type=float, default=10)
parser.add_argument(
'--libpath', help='LC3 Library path')
args = parser.parse_args()
# --- WAV File input ---
f_wav = args.wav_file
wavfile = wave.open(f_wav, 'rb')
samplerate = wavfile.getframerate()
nchannels = wavfile.getnchannels()
bitdepth = wavfile.getsampwidth() * 8
stream_length = wavfile.getnframes()
# --- Setup encoder ---
enc = lc3.Encoder(
args.frame_duration, samplerate, nchannels, libpath=args.libpath)
frame_size = enc.get_frame_bytes(args.bitrate)
frame_length = enc.get_frame_samples()
bitrate = enc.resolve_bitrate(frame_size)
# --- Setup output ---
f_lc3 = args.lc3_file
f_lc3.write(struct.pack(
'=HHHHHHHI', 0xcc1c, 18,
samplerate // 100, bitrate // 100, nchannels,
int(args.frame_duration * 100), 0, stream_length))
# --- Encoding loop ---
for i in range(0, stream_length, frame_length):
f_lc3.write(struct.pack('=H', frame_size))
pcm = wavfile.readframes(frame_length)
f_lc3.write(enc.encode(pcm, frame_size, bitdepth=bitdepth))
# --- Cleanup ---
wavfile.close()
for f in (f_wav, f_lc3):
if f is not sys.stdout.buffer:
f.close()

92
3rd-party/lc3-google/python/tools/specgram.py vendored Executable file
View File

@ -0,0 +1,92 @@
#!/usr/bin/env python3
#
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
import argparse
import lc3
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import scipy.signal as signal
matplotlib.use('QtAgg')
parser = argparse.ArgumentParser(description='LC3 Encoder')
parser.add_argument(
'--frame_duration', help='Frame duration (ms)', type=float, default=10)
parser.add_argument(
'--sample_rate', help='Sampling frequency (Hz)', type=float, default=48000)
parser.add_argument(
'--hrmode', help='Enable high-resolution mode', action='store_true')
parser.add_argument(
'--bitrate', help='Bitrate (bps)', type=int, default=96000)
parser.add_argument(
'--libpath', help='LC3 Library path')
args = parser.parse_args()
# --- Setup encoder + decoder ---
fs = args.sample_rate
enc = lc3.Encoder(
args.frame_duration, fs, hrmode=args.hrmode, libpath=args.libpath)
dec = lc3.Decoder(
args.frame_duration, fs, hrmode=args.hrmode, libpath=args.libpath)
frame_len = enc.get_frame_samples()
delay_len = enc.get_delay_samples()
# --- Generate 10 seconds chirp ---
n = 10 * int(fs)
t = np.arange(n - (n % frame_len)) / fs
s = signal.chirp(t, f0=10, f1=fs/2, t1=t[-1], phi=-90, method='linear')
# --- Encoding / decoding loop ---
frame_size = enc.get_frame_bytes(args.bitrate)
bitrate = enc.resolve_bitrate(frame_size)
y = np.empty(len(s) + frame_len)
for i in range(0, len(s), frame_len):
y[i:i+frame_len] = dec.decode(enc.encode(s[i:i+frame_len], frame_size))
y[len(s):] = dec.decode(enc.encode(np.zeros(frame_len), frame_size))
y = y[delay_len:len(s)+delay_len]
# --- Plot spectrograms ---
fig, (ax1, ax2) = plt.subplots(nrows=2, sharex=True)
NFFT = 512
for (ax, s) in [(ax1, s), (ax2, y)]:
ax.specgram(s, Fs=fs, NFFT=NFFT, pad_to=4*NFFT, noverlap=NFFT//2,
vmin=-160, vmax=0)
ax1.set_title('Input signal')
ax1.set_ylabel('Frequency (Hz)')
ax2.set_title(('Processed signal (%.1f kbps)' % (bitrate/1000)))
ax2.set_ylabel('Frequency (Hz)')
plt.show()

View File

@ -27,14 +27,14 @@ bool lc3_attdet_run(enum lc3_dt dt, enum lc3_srate sr,
{
/* --- Check enabling --- */
const int nbytes_ranges[LC3_NUM_DT][LC3_NUM_SRATE - LC3_SRATE_32K][2] = {
[LC3_DT_7M5] = { { 61, 149 }, { 75, 149 } },
[LC3_DT_10M] = { { 81, INT_MAX }, { 100, INT_MAX } },
const int nbytes_ranges[][LC3_NUM_SRATE - LC3_SRATE_32K][2] = {
[LC3_DT_7M5 - LC3_DT_7M5] = { { 61, 149 }, { 75, 149 } },
[LC3_DT_10M - LC3_DT_7M5] = { { 81, INT_MAX }, { 100, INT_MAX } },
};
if (sr < LC3_SRATE_32K ||
nbytes < nbytes_ranges[dt][sr - LC3_SRATE_32K][0] ||
nbytes > nbytes_ranges[dt][sr - LC3_SRATE_32K][1] )
if (dt < LC3_DT_7M5 || sr < LC3_SRATE_32K || lc3_hr(sr) ||
nbytes < nbytes_ranges[dt - LC3_DT_7M5][sr - LC3_SRATE_32K][0] ||
nbytes > nbytes_ranges[dt - LC3_DT_7M5][sr - LC3_SRATE_32K][1] )
return 0;
/* --- Filtering & Energy calculation --- */

View File

@ -16,13 +16,6 @@
*
******************************************************************************/
/**
* LC3 - Time domain attack detector
*
* Reference : Low Complexity Communication Codec (LC3)
* Bluetooth Specification v1.0
*/
#ifndef __LC3_ATTDET_H
#define __LC3_ATTDET_H

View File

@ -322,7 +322,7 @@ static inline void accu_load(struct lc3_bits_accu *accu,
for ( ; nbytes; nbytes--) {
accu->v >>= 8;
accu->v |= *(--buffer->p_bw) << (LC3_ACCU_BITS - 8);
accu->v |= (unsigned)*(--buffer->p_bw) << (LC3_ACCU_BITS - 8);
}
if (accu->n >= 8) {

View File

@ -17,8 +17,6 @@
******************************************************************************/
/**
* LC3 - Bitstream management
*
* The bitstream is written by the 2 ends of the buffer :
*
* - Arthmetic coder put bits while increasing memory addresses
@ -56,10 +54,6 @@
* - The procedure `lc3_check_bits()` returns indication that read has been
* made crossing the other bit plane.
*
*
* Reference : Low Complexity Communication Codec (LC3)
* Bluetooth Specification v1.0
*
*/
#ifndef __LC3_BITS_H

View File

@ -25,29 +25,52 @@
enum lc3_bandwidth lc3_bwdet_run(
enum lc3_dt dt, enum lc3_srate sr, const float *e)
{
/* Bandwidth regions (Table 3.6) */
/* Bandwidth regions */
struct region { int is : 8; int ie : 8; };
static const struct region bws_table[LC3_NUM_DT]
[LC3_NUM_BANDWIDTH-1][LC3_NUM_BANDWIDTH-1] = {
#if LC3_PLUS
[LC3_DT_7M5] = {
{ { 51, 63+1 } },
{ { 45, 55+1 }, { 58, 63+1 } },
{ { 42, 51+1 }, { 53, 58+1 }, { 60, 63+1 } },
{ { 40, 48+1 }, { 51, 55+1 }, { 57, 60+1 }, { 61, 63+1 } },
},
[LC3_DT_10M] = {
{ { 53, 63+1 } },
{ { 47, 56+1 }, { 59, 63+1 } },
{ { 44, 52+1 }, { 54, 59+1 }, { 60, 63+1 } },
{ { 41, 49+1 }, { 51, 55+1 }, { 57, 60+1 }, { 61, 63+1 } },
},
static const struct region bws_table_2m5[][LC3_BANDWIDTH_SWB+1] = {
{ { 24, 34+1 } },
{ { 24, 32+1 }, { 35, 39+1 } },
{ { 24, 31+1 }, { 33, 38+1 }, { 39, 42+1 } },
{ { 22, 29+1 }, { 31, 35+1 }, { 37, 40+1 }, { 41, 43+1 } },
};
static const int l_table[LC3_NUM_DT][LC3_NUM_BANDWIDTH-1] = {
static const struct region bws_table_5m[][LC3_BANDWIDTH_SWB+1] = {
{ { 39, 49+1 } },
{ { 35, 44+1 }, { 47, 51+1 } },
{ { 34, 42+1 }, { 44, 49+1 }, { 50, 53+1 } },
{ { 32, 40+1 }, { 42, 46+1 }, { 48, 51+1 }, { 52, 54+1 } },
};
#endif /* LC3_PLUS */
static const struct region bws_table_7m5[][LC3_BANDWIDTH_SWB+1] = {
{ { 51, 63+1 } },
{ { 45, 55+1 }, { 58, 63+1 } },
{ { 42, 51+1 }, { 53, 58+1 }, { 60, 63+1 } },
{ { 40, 48+1 }, { 51, 55+1 }, { 57, 60+1 }, { 61, 63+1 } },
};
static const struct region bws_table_10m[][LC3_BANDWIDTH_SWB+1] = {
{ { 53, 63+1 } },
{ { 47, 56+1 }, { 59, 63+1 } },
{ { 44, 52+1 }, { 54, 59+1 }, { 60, 63+1 } },
{ { 41, 49+1 }, { 51, 55+1 }, { 57, 60+1 }, { 61, 63+1 } },
};
static const struct region (*bws_table[])[LC3_BANDWIDTH_SWB+1] = {
[LC3_DT_2M5] = LC3_IF_PLUS(bws_table_2m5, NULL),
[LC3_DT_5M ] = LC3_IF_PLUS(bws_table_5m , NULL),
[LC3_DT_7M5] = bws_table_7m5,
[LC3_DT_10M] = bws_table_10m,
};
static const int l_table[LC3_NUM_DT][LC3_BANDWIDTH_SWB+1] = {
[LC3_DT_2M5] = { 4, 4, 3, 1 },
[LC3_DT_5M ] = { 4, 4, 3, 1 },
[LC3_DT_7M5] = { 4, 4, 3, 2 },
[LC3_DT_10M] = { 4, 4, 3, 1 },
};
@ -58,7 +81,7 @@ enum lc3_bandwidth lc3_bwdet_run(
enum lc3_bandwidth bw0 = LC3_BANDWIDTH_NB;
enum lc3_bandwidth bwn = (enum lc3_bandwidth)sr;
if (bwn <= bw0)
if (bwn <= bw0 || lc3_hr(sr))
return bwn;
const struct region *bwr = bws_table[dt][bwn-1];
@ -101,7 +124,7 @@ enum lc3_bandwidth lc3_bwdet_run(
*/
int lc3_bwdet_get_nbits(enum lc3_srate sr)
{
return (sr > 0) + (sr > 1) + (sr > 3);
return lc3_hr(sr) ? 0 : (sr > 0) + (sr > 1) + (sr > 3);
}
/**
@ -124,6 +147,8 @@ int lc3_bwdet_get_bw(lc3_bits_t *bits,
enum lc3_bandwidth max_bw = (enum lc3_bandwidth)sr;
int nbits_bw = lc3_bwdet_get_nbits(sr);
*bw = nbits_bw > 0 ? lc3_get_bits(bits, nbits_bw) : LC3_BANDWIDTH_NB;
*bw = nbits_bw <= 0 ? max_bw :
(enum lc3_bandwidth)lc3_get_bits(bits, nbits_bw);
return *bw > max_bw ? (*bw = max_bw), -1 : 0;
}

View File

@ -16,13 +16,6 @@
*
******************************************************************************/
/**
* LC3 - Bandwidth detector
*
* Reference : Low Complexity Communication Codec (LC3)
* Bluetooth Specification v1.0
*/
#ifndef __LC3_BWDET_H
#define __LC3_BWDET_H
@ -31,7 +24,7 @@
/**
* Bandwidth detector (cf. 3.3.5)
* Bandwidth detector
* dt, sr Duration and samplerate of the frame
* e Energy estimation per bands
* return Return detected bandwitdth

View File

@ -16,18 +16,14 @@
*
******************************************************************************/
/**
* LC3 - Common constants and types
*/
#ifndef __LC3_COMMON_H
#define __LC3_COMMON_H
#include <lc3.h>
#include "fastmath.h"
#include <stdalign.h>
#include <limits.h>
#include <stdalign.h>
#include <string.h>
#ifdef __ARM_ARCH
@ -35,6 +31,31 @@
#endif
/**
* Acivation flags for LC3-Plus and LC3-Plus HR features
*/
#ifndef LC3_PLUS
#define LC3_PLUS 1
#endif
#ifndef LC3_PLUS_HR
#define LC3_PLUS_HR 1
#endif
#if LC3_PLUS
#define LC3_IF_PLUS(a, b) (a)
#else
#define LC3_IF_PLUS(a, b) (b)
#endif
#if LC3_PLUS_HR
#define LC3_IF_PLUS_HR(a, b) (a)
#else
#define LC3_IF_PLUS_HR(a, b) (b)
#endif
/**
* Hot Function attribute
* Selectively disable sanitizer
@ -83,41 +104,11 @@
/**
* Convert `dt` in us and `sr` in KHz
* Return `true` when high-resolution mode
*/
#define LC3_DT_US(dt) \
( (3 + (dt)) * 2500 )
#define LC3_SRATE_KHZ(sr) \
( (1 + (sr) + ((sr) == LC3_SRATE_48K)) * 8 )
/**
* Return number of samples, delayed samples and
* encoded spectrum coefficients within a frame
* - For encoding, keep 1.25 ms for temporal window
* - For decoding, keep 18 ms of history, aligned on frames, and a frame
*/
#define LC3_NS(dt, sr) \
( 20 * (3 + (dt)) * (1 + (sr) + ((sr) == LC3_SRATE_48K)) )
#define LC3_ND(dt, sr) \
( (dt) == LC3_DT_7M5 ? 23 * LC3_NS(dt, sr) / 30 \
: 5 * LC3_NS(dt, sr) / 8 )
#define LC3_NE(dt, sr) \
( 20 * (3 + (dt)) * (1 + (sr)) )
#define LC3_MAX_NE \
LC3_NE(LC3_DT_10M, LC3_SRATE_48K)
#define LC3_NT(sr_hz) \
( (5 * LC3_SRATE_KHZ(sr)) / 4 )
#define LC3_NH(dt, sr) \
( ((3 - dt) + 1) * LC3_NS(dt, sr) )
static inline bool lc3_hr(enum lc3_srate sr) {
return LC3_PLUS_HR && (sr >= LC3_SRATE_48K_HR);
}
/**
@ -131,6 +122,9 @@ enum lc3_bandwidth {
LC3_BANDWIDTH_SWB = LC3_SRATE_32K,
LC3_BANDWIDTH_FB = LC3_SRATE_48K,
LC3_BANDWIDTH_FB_HR = LC3_SRATE_48K_HR,
LC3_BANDWIDTH_UB_HR = LC3_SRATE_96K_HR,
LC3_NUM_BANDWIDTH,
};

View File

@ -26,30 +26,17 @@
bool lc3_energy_compute(
enum lc3_dt dt, enum lc3_srate sr, const float *x, float *e)
{
static const int n1_table[LC3_NUM_DT][LC3_NUM_SRATE] = {
[LC3_DT_7M5] = { 56, 34, 27, 24, 22 },
[LC3_DT_10M] = { 49, 28, 23, 20, 18 },
};
/* First bands are 1 coefficient width */
int n1 = n1_table[dt][sr];
float e_sum[2] = { 0, 0 };
int iband;
for (iband = 0; iband < n1; iband++) {
*e = x[iband] * x[iband];
e_sum[0] += *(e++);
}
/* Mean the square of coefficients within each band,
* note that 7.5ms 8KHz frame has more bands than samples */
int nb = LC3_MIN(LC3_NUM_BANDS, LC3_NS(dt, sr));
int iband_h = nb - 2*(2 - dt);
int nb = lc3_num_bands[dt][sr];
const int *lim = lc3_band_lim[dt][sr];
for (int i = lim[iband]; iband < nb; iband++) {
/* Mean the square of coefficients within each band */
float e_sum[2] = { 0, 0 };
int iband_h = nb - (const int []){
[LC3_DT_2M5] = 2, [LC3_DT_5M ] = 3,
[LC3_DT_7M5] = 4, [LC3_DT_10M] = 2 }[dt];
for (int iband = 0, i = lim[iband]; iband < nb; iband++) {
int ie = lim[iband+1];
int n = ie - i;
@ -61,9 +48,6 @@ bool lc3_energy_compute(
e_sum[iband >= iband_h] += *(e++);
}
for (; iband < LC3_NUM_BANDS; iband++)
*(e++) = 0;
/* Return the near nyquist flag */
return e_sum[1] > 30 * e_sum[0];

View File

@ -16,13 +16,6 @@
*
******************************************************************************/
/**
* LC3 - Energy estimation per band
*
* Reference : Low Complexity Communication Codec (LC3)
* Bluetooth Specification v1.0
*/
#ifndef __LC3_ENERGY_H
#define __LC3_ENERGY_H

View File

@ -16,46 +16,107 @@
*
******************************************************************************/
/**
* LC3 - Mathematics function approximation
*/
#ifndef __LC3_FASTMATH_H
#define __LC3_FASTMATH_H
#include <stdint.h>
#include <float.h>
#include <math.h>
/**
* Fast 2^n approximation
* x Operand, range -8 to 8
* return 2^x approximation (max relative error ~ 7e-6)
* IEEE 754 Floating point representation
*/
static inline float fast_exp2f(float x)
#define LC3_IEEE754_SIGN_SHL (31)
#define LC3_IEEE754_SIGN_MASK (1 << LC3_IEEE754_SIGN_SHL)
#define LC3_IEEE754_EXP_SHL (23)
#define LC3_IEEE754_EXP_MASK (0xff << LC3_IEEE754_EXP_SHL)
#define LC3_IEEE754_EXP_BIAS (127)
/**
* Fast multiply floating-point number by integral power of 2
* x Operand, finite number
* exp Exponent such that 2^x is finite
* return 2^exp
*/
static inline float lc3_ldexpf(float _x, int exp) {
union { float f; int32_t s; } x = { .f = _x };
if (x.s & LC3_IEEE754_EXP_MASK)
x.s += exp << LC3_IEEE754_EXP_SHL;
return x.f;
}
/**
* Fast convert floating-point number to fractional and integral components
* x Operand, finite number
* exp Return the exponent part
* return The normalized fraction in [0.5:1[
*/
static inline float lc3_frexpf(float _x, int *exp) {
union { float f; uint32_t u; } x = { .f = _x };
int e = (x.u & LC3_IEEE754_EXP_MASK) >> LC3_IEEE754_EXP_SHL;
*exp = e - (LC3_IEEE754_EXP_BIAS - 1);
x.u = (x.u & ~LC3_IEEE754_EXP_MASK) |
((LC3_IEEE754_EXP_BIAS - 1) << LC3_IEEE754_EXP_SHL);
return x.f;
}
/**
* Fast 2^n approximation
* x Operand, range -100 to 100
* return 2^x approximation (max relative error ~ 4e-7)
*/
static inline float lc3_exp2f(float x)
{
float y;
/* --- 2^(i/8) for i from 0 to 7 --- */
/* --- Polynomial approx in range -0.5 to 0.5 --- */
static const float e[] = {
1.00000000e+00, 1.09050773e+00, 1.18920712e+00, 1.29683955e+00,
1.41421356e+00, 1.54221083e+00, 1.68179283e+00, 1.83400809e+00 };
static const float c[] = { 1.27191277e-09, 1.47415221e-07,
1.35510312e-05, 9.38375815e-04, 4.33216946e-02 };
/* --- Polynomial approx in range 0 to 1/8 --- */
y = ( c[0]) * x;
y = (y + c[1]) * x;
y = (y + c[2]) * x;
y = (y + c[3]) * x;
y = (y + c[4]) * x;
y = (y + 1.f);
static const float p[] = {
1.00448128e-02, 5.54563260e-02, 2.40228756e-01, 6.93147140e-01 };
/* --- Raise to the power of 16 --- */
/* --- Split the operand ---
*
* Such as x = k/8 + y, with k an integer, and |y| < 0.5/8
*
* Note that `fast-math` compiler option leads to rounding error,
* disable optimisation with `volatile`. */
y = y*y;
y = y*y;
y = y*y;
y = y*y;
volatile union { float f; int32_t s; } v;
return y;
v.f = x + 0x1.8p20f;
int k = v.s;
x -= v.f - 0x1.8p20f;
/* --- Compute 2^x, with |x| < 1 ---
* Perform polynomial approximation in range -0.5/8 to 0.5/8,
* and muplity by precomputed value of 2^(i/8), i in [0:7] */
union { float f; int32_t s; } y;
y.f = ( p[0]) * x;
y.f = (y.f + p[1]) * x;
y.f = (y.f + p[2]) * x;
y.f = (y.f + p[3]) * x;
y.f = (y.f + 1.f) * e[k & 7];
/* --- Add the exponent --- */
y.s += (k >> 3) << LC3_IEEE754_EXP_SHL;
return y.f;
}
/**
@ -63,7 +124,7 @@ static inline float fast_exp2f(float x)
* x Operand, greater than 0
* return log2(x) approximation (max absolute error ~ 1e-4)
*/
static inline float fast_log2f(float x)
static inline float lc3_log2f(float x)
{
float y;
int e;
@ -73,7 +134,7 @@ static inline float fast_log2f(float x)
static const float c[] = {
-1.29479677, 5.11769018, -8.42295281, 8.10557963, -3.50567360 };
x = frexpf(x, &e);
x = lc3_frexpf(x, &e);
y = ( c[0]) * x;
y = (y + c[1]) * x;
@ -91,9 +152,9 @@ static inline float fast_log2f(float x)
* x Operand, greater than 0
* return log10(x) approximation (max absolute error ~ 1e-4)
*/
static inline float fast_log10f(float x)
static inline float lc3_log10f(float x)
{
return log10f(2) * fast_log2f(x);
return log10f(2) * lc3_log2f(x);
}
/**
@ -104,7 +165,7 @@ static inline float fast_log10f(float x)
* - The 0 value is accepted and return the minimum value ~ -191dB
* - This function assumed that float 32 bits is coded IEEE 754
*/
static inline int32_t fast_db_q16(float x)
static inline int32_t lc3_db_q16(float x)
{
/* --- Table in Q15 --- */

View File

@ -53,90 +53,128 @@ struct side_data {
/**
* Resolve frame duration in us
* us Frame duration in us
* hrmode High-resolution mode indication
* return Frame duration identifier, or LC3_NUM_DT
*/
static enum lc3_dt resolve_dt(int us)
static enum lc3_dt resolve_dt(int us, bool hrmode)
{
return us == 7500 ? LC3_DT_7M5 :
us == 10000 ? LC3_DT_10M : LC3_NUM_DT;
return LC3_PLUS && us == 2500 ? LC3_DT_2M5 :
LC3_PLUS && us == 5000 ? LC3_DT_5M :
!hrmode && us == 7500 ? LC3_DT_7M5 :
us == 10000 ? LC3_DT_10M : LC3_NUM_DT;
}
/**
* Resolve samplerate in Hz
* hz Samplerate in Hz
* hrmode High-resolution mode indication
* return Sample rate identifier, or LC3_NUM_SRATE
*/
static enum lc3_srate resolve_sr(int hz)
static enum lc3_srate resolve_srate(int hz, bool hrmode)
{
return hz == 8000 ? LC3_SRATE_8K : hz == 16000 ? LC3_SRATE_16K :
hz == 24000 ? LC3_SRATE_24K : hz == 32000 ? LC3_SRATE_32K :
hz == 48000 ? LC3_SRATE_48K : LC3_NUM_SRATE;
hrmode = LC3_PLUS_HR && hrmode;
return !hrmode && hz == 8000 ? LC3_SRATE_8K :
!hrmode && hz == 16000 ? LC3_SRATE_16K :
!hrmode && hz == 24000 ? LC3_SRATE_24K :
!hrmode && hz == 32000 ? LC3_SRATE_32K :
!hrmode && hz == 48000 ? LC3_SRATE_48K :
hrmode && hz == 48000 ? LC3_SRATE_48K_HR :
hrmode && hz == 96000 ? LC3_SRATE_96K_HR : LC3_NUM_SRATE;
}
/**
* Return the number of PCM samples in a frame
*/
int lc3_frame_samples(int dt_us, int sr_hz)
LC3_EXPORT int lc3_hr_frame_samples(bool hrmode, int dt_us, int sr_hz)
{
enum lc3_dt dt = resolve_dt(dt_us);
enum lc3_srate sr = resolve_sr(sr_hz);
enum lc3_dt dt = resolve_dt(dt_us, hrmode);
enum lc3_srate sr = resolve_srate(sr_hz, hrmode);
if (dt >= LC3_NUM_DT || sr >= LC3_NUM_SRATE)
return -1;
return LC3_NS(dt, sr);
return lc3_ns(dt, sr);
}
LC3_EXPORT int lc3_frame_samples(int dt_us, int sr_hz)
{
return lc3_hr_frame_samples(false, dt_us, sr_hz);
}
/**
* Return the size of frames, from bitrate
* Return the size of frames or frame blocks, from bitrate
*/
int lc3_frame_bytes(int dt_us, int bitrate)
LC3_EXPORT int lc3_hr_frame_block_bytes(
bool hrmode, int dt_us, int sr_hz, int nchannels, int bitrate)
{
if (resolve_dt(dt_us) >= LC3_NUM_DT)
enum lc3_dt dt = resolve_dt(dt_us, hrmode);
enum lc3_srate sr = resolve_srate(sr_hz, hrmode);
if (dt >= LC3_NUM_DT || sr >= LC3_NUM_SRATE
|| nchannels < 1 || nchannels > 8 || bitrate < 0)
return -1;
if (bitrate < LC3_MIN_BITRATE)
return LC3_MIN_FRAME_BYTES;
bitrate = LC3_CLIP(bitrate, 0, 8*LC3_HR_MAX_BITRATE);
if (bitrate > LC3_MAX_BITRATE)
return LC3_MAX_FRAME_BYTES;
return LC3_CLIP((bitrate * (int)(1 + dt)) / 3200,
nchannels * lc3_min_frame_bytes(dt, sr),
nchannels * lc3_max_frame_bytes(dt, sr) );
}
int nbytes = ((unsigned)bitrate * dt_us) / (1000*1000*8);
LC3_EXPORT int lc3_frame_bock_bytes(int dt_us, int nchannels, int bitrate)
{
return lc3_hr_frame_block_bytes(false, dt_us, 8000, nchannels, bitrate);
}
return LC3_CLIP(nbytes, LC3_MIN_FRAME_BYTES, LC3_MAX_FRAME_BYTES);
LC3_EXPORT int lc3_hr_frame_bytes(
bool hrmode, int dt_us, int sr_hz, int bitrate)
{
return lc3_hr_frame_block_bytes(hrmode, dt_us, sr_hz, 1, bitrate);
}
LC3_EXPORT int lc3_frame_bytes(int dt_us, int bitrate)
{
return lc3_hr_frame_bytes(false, dt_us, 8000, bitrate);
}
/**
* Resolve the bitrate, from the size of frames
* Resolve the bitrate, from the size of frames or frame blocks
*/
int lc3_resolve_bitrate(int dt_us, int nbytes)
LC3_EXPORT int lc3_hr_resolve_bitrate(
bool hrmode, int dt_us, int sr_hz, int nbytes)
{
if (resolve_dt(dt_us) >= LC3_NUM_DT)
enum lc3_dt dt = resolve_dt(dt_us, hrmode);
enum lc3_srate sr = resolve_srate(sr_hz, hrmode);
if (dt >= LC3_NUM_DT || sr >= LC3_NUM_SRATE || nbytes < 0)
return -1;
if (nbytes < LC3_MIN_FRAME_BYTES)
return LC3_MIN_BITRATE;
return LC3_MIN(((int64_t)nbytes * 3200 + dt) / (1 + dt), INT_MAX);
}
if (nbytes > LC3_MAX_FRAME_BYTES)
return LC3_MAX_BITRATE;
int bitrate = ((unsigned)nbytes * (1000*1000*8) + dt_us/2) / dt_us;
return LC3_CLIP(bitrate, LC3_MIN_BITRATE, LC3_MAX_BITRATE);
LC3_EXPORT int lc3_resolve_bitrate(int dt_us, int nbytes)
{
return lc3_hr_resolve_bitrate(false, dt_us, 8000, nbytes);
}
/**
* Return algorithmic delay, as a number of samples
*/
int lc3_delay_samples(int dt_us, int sr_hz)
LC3_EXPORT int lc3_hr_delay_samples(bool hrmode, int dt_us, int sr_hz)
{
enum lc3_dt dt = resolve_dt(dt_us);
enum lc3_srate sr = resolve_sr(sr_hz);
enum lc3_dt dt = resolve_dt(dt_us, hrmode);
enum lc3_srate sr = resolve_srate(sr_hz, hrmode);
if (dt >= LC3_NUM_DT || sr >= LC3_NUM_SRATE)
return -1;
return (dt == LC3_DT_7M5 ? 8 : 5) * (LC3_SRATE_KHZ(sr) / 2);
return 2 * lc3_nd(dt, sr) - lc3_ns(dt, sr);
}
LC3_EXPORT int lc3_delay_samples(int dt_us, int sr_hz)
{
return lc3_hr_delay_samples(false, dt_us, sr_hz);
}
@ -157,9 +195,9 @@ static void load_s16(
enum lc3_dt dt = encoder->dt;
enum lc3_srate sr = encoder->sr_pcm;
int16_t *xt = encoder->xt;
float *xs = encoder->xs;
int ns = LC3_NS(dt, sr);
int16_t *xt = (int16_t *)encoder->x + encoder->xt_off;
float *xs = encoder->x + encoder->xs_off;
int ns = lc3_ns(dt, sr);
for (int i = 0; i < ns; i++, pcm += stride)
xt[i] = *pcm, xs[i] = *pcm;
@ -178,13 +216,13 @@ static void load_s24(
enum lc3_dt dt = encoder->dt;
enum lc3_srate sr = encoder->sr_pcm;
int16_t *xt = encoder->xt;
float *xs = encoder->xs;
int ns = LC3_NS(dt, sr);
int16_t *xt = (int16_t *)encoder->x + encoder->xt_off;
float *xs = encoder->x + encoder->xs_off;
int ns = lc3_ns(dt, sr);
for (int i = 0; i < ns; i++, pcm += stride) {
xt[i] = *pcm >> 8;
xs[i] = ldexpf(*pcm, -8);
xs[i] = lc3_ldexpf(*pcm, -8);
}
}
@ -201,9 +239,9 @@ static void load_s24_3le(
enum lc3_dt dt = encoder->dt;
enum lc3_srate sr = encoder->sr_pcm;
int16_t *xt = encoder->xt;
float *xs = encoder->xs;
int ns = LC3_NS(dt, sr);
int16_t *xt = (int16_t *)encoder->x + encoder->xt_off;
float *xs = encoder->x + encoder->xs_off;
int ns = lc3_ns(dt, sr);
for (int i = 0; i < ns; i++, pcm += 3*stride) {
int32_t in = ((uint32_t)pcm[0] << 8) |
@ -211,7 +249,7 @@ static void load_s24_3le(
((uint32_t)pcm[2] << 24) ;
xt[i] = in >> 16;
xs[i] = ldexpf(in, -16);
xs[i] = lc3_ldexpf(in, -16);
}
}
@ -228,12 +266,12 @@ static void load_float(
enum lc3_dt dt = encoder->dt;
enum lc3_srate sr = encoder->sr_pcm;
int16_t *xt = encoder->xt;
float *xs = encoder->xs;
int ns = LC3_NS(dt, sr);
int16_t *xt = (int16_t *)encoder->x + encoder->xt_off;
float *xs = encoder->x + encoder->xs_off;
int ns = lc3_ns(dt, sr);
for (int i = 0; i < ns; i++, pcm += stride) {
xs[i] = ldexpf(*pcm, 15);
xs[i] = lc3_ldexpf(*pcm, 15);
xt[i] = LC3_SAT16((int32_t)xs[i]);
}
}
@ -242,20 +280,21 @@ static void load_float(
* Frame Analysis
* encoder Encoder state
* nbytes Size in bytes of the frame
* side, xq Return frame data
* side Return frame data
*/
static void analyze(struct lc3_encoder *encoder,
int nbytes, struct side_data *side, uint16_t *xq)
int nbytes, struct side_data *side)
{
enum lc3_dt dt = encoder->dt;
enum lc3_srate sr = encoder->sr;
enum lc3_srate sr_pcm = encoder->sr_pcm;
int ns = LC3_NS(dt, sr_pcm);
int nt = LC3_NT(sr_pcm);
int16_t *xt = encoder->xt;
float *xs = encoder->xs;
float *xd = encoder->xd;
int16_t *xt = (int16_t *)encoder->x + encoder->xt_off;
float *xs = encoder->x + encoder->xs_off;
int ns = lc3_ns(dt, sr_pcm);
int nt = lc3_nt(sr_pcm);
float *xd = encoder->x + encoder->xd_off;
float *xf = xs;
/* --- Temporal --- */
@ -269,7 +308,7 @@ static void analyze(struct lc3_encoder *encoder,
/* --- Spectral --- */
float e[LC3_NUM_BANDS];
float e[LC3_MAX_BANDS];
lc3_mdct_forward(dt, sr_pcm, sr, xs, xd, xf);
@ -279,29 +318,30 @@ static void analyze(struct lc3_encoder *encoder,
side->bw = lc3_bwdet_run(dt, sr, e);
lc3_sns_analyze(dt, sr, e, att, &side->sns, xf, xf);
lc3_sns_analyze(dt, sr, nbytes, e, att, &side->sns, xf, xf);
lc3_tns_analyze(dt, side->bw, nn_flag, nbytes, &side->tns, xf);
lc3_spec_analyze(dt, sr,
nbytes, side->pitch_present, &side->tns,
&encoder->spec, xf, xq, &side->spec);
&encoder->spec, xf, &side->spec);
}
/**
* Encode bitstream
* encoder Encoder state
* side, xq The frame data
* side The frame data
* nbytes Target size of the frame (20 to 400)
* buffer Output bitstream buffer of `nbytes` size
*/
static void encode(struct lc3_encoder *encoder,
const struct side_data *side, uint16_t *xq, int nbytes, void *buffer)
const struct side_data *side, int nbytes, void *buffer)
{
enum lc3_dt dt = encoder->dt;
enum lc3_srate sr = encoder->sr;
float *xf = encoder->x + encoder->xs_off;
enum lc3_bandwidth bw = side->bw;
float *xf = encoder->xs;
lc3_bits_t bits;
@ -320,8 +360,7 @@ static void encode(struct lc3_encoder *encoder,
if (side->pitch_present)
lc3_ltpf_put_data(&bits, &side->ltpf);
lc3_spec_encode(&bits,
dt, sr, bw, nbytes, xq, &side->spec, xf);
lc3_spec_encode(&bits, dt, sr, bw, nbytes, &side->spec, xf);
lc3_flush_bits(&bits);
}
@ -329,56 +368,67 @@ static void encode(struct lc3_encoder *encoder,
/**
* Return size needed for an encoder
*/
unsigned lc3_encoder_size(int dt_us, int sr_hz)
LC3_EXPORT unsigned lc3_hr_encoder_size(bool hrmode, int dt_us, int sr_hz)
{
if (resolve_dt(dt_us) >= LC3_NUM_DT ||
resolve_sr(sr_hz) >= LC3_NUM_SRATE)
if (resolve_dt(dt_us, hrmode) >= LC3_NUM_DT ||
resolve_srate(sr_hz, hrmode) >= LC3_NUM_SRATE)
return 0;
return sizeof(struct lc3_encoder) +
(LC3_ENCODER_BUFFER_COUNT(dt_us, sr_hz)-1) * sizeof(float);
}
LC3_EXPORT unsigned lc3_encoder_size(int dt_us, int sr_hz)
{
return lc3_hr_encoder_size(false, dt_us, sr_hz);
}
/**
* Setup encoder
*/
struct lc3_encoder *lc3_setup_encoder(
int dt_us, int sr_hz, int sr_pcm_hz, void *mem)
LC3_EXPORT struct lc3_encoder *lc3_hr_setup_encoder(
bool hrmode, int dt_us, int sr_hz, int sr_pcm_hz, void *mem)
{
if (sr_pcm_hz <= 0)
sr_pcm_hz = sr_hz;
enum lc3_dt dt = resolve_dt(dt_us);
enum lc3_srate sr = resolve_sr(sr_hz);
enum lc3_srate sr_pcm = resolve_sr(sr_pcm_hz);
enum lc3_dt dt = resolve_dt(dt_us, hrmode);
enum lc3_srate sr = resolve_srate(sr_hz, hrmode);
enum lc3_srate sr_pcm = resolve_srate(sr_pcm_hz, hrmode);
if (dt >= LC3_NUM_DT || sr_pcm >= LC3_NUM_SRATE || sr > sr_pcm || !mem)
return NULL;
struct lc3_encoder *encoder = mem;
int ns = LC3_NS(dt, sr_pcm);
int nt = LC3_NT(sr_pcm);
int ns = lc3_ns(dt, sr_pcm);
int nt = lc3_nt(sr_pcm);
*encoder = (struct lc3_encoder){
.dt = dt, .sr = sr,
.sr_pcm = sr_pcm,
.xt = (int16_t *)encoder->s + nt,
.xs = encoder->s + (nt+ns)/2,
.xd = encoder->s + (nt+ns)/2 + ns,
.xt_off = nt,
.xs_off = (nt + ns) / 2,
.xd_off = (nt + ns) / 2 + ns,
};
memset(encoder->s, 0,
memset(encoder->x, 0,
LC3_ENCODER_BUFFER_COUNT(dt_us, sr_pcm_hz) * sizeof(float));
return encoder;
}
LC3_EXPORT struct lc3_encoder *lc3_setup_encoder(
int dt_us, int sr_hz, int sr_pcm_hz, void *mem)
{
return lc3_hr_setup_encoder(false, dt_us, sr_hz, sr_pcm_hz, mem);
}
/**
* Encode a frame
*/
int lc3_encode(struct lc3_encoder *encoder, enum lc3_pcm_format fmt,
const void *pcm, int stride, int nbytes, void *out)
LC3_EXPORT int lc3_encode(struct lc3_encoder *encoder,
enum lc3_pcm_format fmt, const void *pcm, int stride, int nbytes, void *out)
{
static void (* const load[])(struct lc3_encoder *, const void *, int) = {
[LC3_PCM_FORMAT_S16 ] = load_s16,
@ -389,20 +439,19 @@ int lc3_encode(struct lc3_encoder *encoder, enum lc3_pcm_format fmt,
/* --- Check parameters --- */
if (!encoder || nbytes < LC3_MIN_FRAME_BYTES
|| nbytes > LC3_MAX_FRAME_BYTES)
if (!encoder || nbytes < lc3_min_frame_bytes(encoder->dt, encoder->sr)
|| nbytes > lc3_max_frame_bytes(encoder->dt, encoder->sr))
return -1;
/* --- Processing --- */
struct side_data side;
uint16_t xq[LC3_NE(encoder->dt, encoder->sr)];
load[fmt](encoder, pcm, stride);
analyze(encoder, nbytes, &side, xq);
analyze(encoder, nbytes, &side);
encode(encoder, &side, xq, nbytes, out);
encode(encoder, &side, nbytes, out);
return 0;
}
@ -425,8 +474,8 @@ static void store_s16(
enum lc3_dt dt = decoder->dt;
enum lc3_srate sr = decoder->sr_pcm;
float *xs = decoder->xs;
int ns = LC3_NS(dt, sr);
float *xs = decoder->x + decoder->xs_off;
int ns = lc3_ns(dt, sr);
for ( ; ns > 0; ns--, xs++, pcm += stride) {
int32_t s = *xs >= 0 ? (int)(*xs + 0.5f) : (int)(*xs - 0.5f);
@ -447,12 +496,12 @@ static void store_s24(
enum lc3_dt dt = decoder->dt;
enum lc3_srate sr = decoder->sr_pcm;
float *xs = decoder->xs;
int ns = LC3_NS(dt, sr);
float *xs = decoder->x + decoder->xs_off;
int ns = lc3_ns(dt, sr);
for ( ; ns > 0; ns--, xs++, pcm += stride) {
int32_t s = *xs >= 0 ? (int32_t)(ldexpf(*xs, 8) + 0.5f)
: (int32_t)(ldexpf(*xs, 8) - 0.5f);
int32_t s = *xs >= 0 ? (int32_t)(lc3_ldexpf(*xs, 8) + 0.5f)
: (int32_t)(lc3_ldexpf(*xs, 8) - 0.5f);
*pcm = LC3_SAT24(s);
}
}
@ -470,12 +519,12 @@ static void store_s24_3le(
enum lc3_dt dt = decoder->dt;
enum lc3_srate sr = decoder->sr_pcm;
float *xs = decoder->xs;
int ns = LC3_NS(dt, sr);
float *xs = decoder->x + decoder->xs_off;
int ns = lc3_ns(dt, sr);
for ( ; ns > 0; ns--, xs++, pcm += 3*stride) {
int32_t s = *xs >= 0 ? (int32_t)(ldexpf(*xs, 8) + 0.5f)
: (int32_t)(ldexpf(*xs, 8) - 0.5f);
int32_t s = *xs >= 0 ? (int32_t)(lc3_ldexpf(*xs, 8) + 0.5f)
: (int32_t)(lc3_ldexpf(*xs, 8) - 0.5f);
s = LC3_SAT24(s);
pcm[0] = (s >> 0) & 0xff;
@ -497,11 +546,11 @@ static void store_float(
enum lc3_dt dt = decoder->dt;
enum lc3_srate sr = decoder->sr_pcm;
float *xs = decoder->xs;
int ns = LC3_NS(dt, sr);
float *xs = decoder->x + decoder->xs_off;
int ns = lc3_ns(dt, sr);
for ( ; ns > 0; ns--, xs++, pcm += stride) {
float s = ldexpf(*xs, -15);
float s = lc3_ldexpf(*xs, -15);
*pcm = fminf(fmaxf(s, -1.f), 1.f);
}
}
@ -519,9 +568,9 @@ static int decode(struct lc3_decoder *decoder,
enum lc3_dt dt = decoder->dt;
enum lc3_srate sr = decoder->sr;
float *xf = decoder->xs;
int ns = LC3_NS(dt, sr);
int ne = LC3_NE(dt, sr);
float *xf = decoder->x + decoder->xs_off;
int ns = lc3_ns(dt, sr);
int ne = lc3_ne(dt, sr);
lc3_bits_t bits;
int ret = 0;
@ -534,7 +583,8 @@ static int decode(struct lc3_decoder *decoder,
if ((ret = lc3_spec_get_side(&bits, dt, sr, &side->spec)) < 0)
return ret;
lc3_tns_get_data(&bits, dt, side->bw, nbytes, &side->tns);
if ((ret = lc3_tns_get_data(&bits, dt, side->bw, nbytes, &side->tns)) < 0)
return ret;
side->pitch_present = lc3_get_bit(&bits);
@ -542,7 +592,7 @@ static int decode(struct lc3_decoder *decoder,
return ret;
if (side->pitch_present)
lc3_ltpf_get_data(&bits, &side->ltpf);
lc3_ltpf_get_data(&bits, &side->ltpf);
if ((ret = lc3_spec_decode(&bits, dt, sr,
side->bw, nbytes, &side->spec, xf)) < 0)
@ -566,14 +616,16 @@ static void synthesize(struct lc3_decoder *decoder,
enum lc3_srate sr = decoder->sr;
enum lc3_srate sr_pcm = decoder->sr_pcm;
float *xf = decoder->xs;
int ns = LC3_NS(dt, sr_pcm);
int ne = LC3_NE(dt, sr);
float *xf = decoder->x + decoder->xs_off;
int ns = lc3_ns(dt, sr_pcm);
int ne = lc3_ne(dt, sr);
float *xg = decoder->xg;
float *xd = decoder->xd;
float *xg = decoder->x + decoder->xg_off;
float *xs = xf;
float *xd = decoder->x + decoder->xd_off;
float *xh = decoder->x + decoder->xh_off;
if (side) {
enum lc3_bandwidth bw = side->bw;
@ -593,8 +645,9 @@ static void synthesize(struct lc3_decoder *decoder,
lc3_mdct_inverse(dt, sr_pcm, sr, xf, xd, xs);
}
lc3_ltpf_synthesize(dt, sr_pcm, nbytes, &decoder->ltpf,
side && side->pitch_present ? &side->ltpf : NULL, decoder->xh, xs);
if (!lc3_hr(sr))
lc3_ltpf_synthesize(dt, sr_pcm, nbytes, &decoder->ltpf,
side && side->pitch_present ? &side->ltpf : NULL, xh, xs);
}
/**
@ -605,70 +658,81 @@ static void complete(struct lc3_decoder *decoder)
{
enum lc3_dt dt = decoder->dt;
enum lc3_srate sr_pcm = decoder->sr_pcm;
int nh = LC3_NH(dt, sr_pcm);
int ns = LC3_NS(dt, sr_pcm);
int nh = lc3_nh(dt, sr_pcm);
int ns = lc3_ns(dt, sr_pcm);
decoder->xs = decoder->xs - decoder->xh < nh - ns ?
decoder->xs + ns : decoder->xh;
decoder->xs_off = decoder->xs_off - decoder->xh_off < nh ?
decoder->xs_off + ns : decoder->xh_off;
}
/**
* Return size needed for a decoder
*/
unsigned lc3_decoder_size(int dt_us, int sr_hz)
LC3_EXPORT unsigned lc3_hr_decoder_size(bool hrmode, int dt_us, int sr_hz)
{
if (resolve_dt(dt_us) >= LC3_NUM_DT ||
resolve_sr(sr_hz) >= LC3_NUM_SRATE)
if (resolve_dt(dt_us, hrmode) >= LC3_NUM_DT ||
resolve_srate(sr_hz, hrmode) >= LC3_NUM_SRATE)
return 0;
return sizeof(struct lc3_decoder) +
(LC3_DECODER_BUFFER_COUNT(dt_us, sr_hz)-1) * sizeof(float);
}
LC3_EXPORT unsigned lc3_decoder_size(int dt_us, int sr_hz)
{
return lc3_hr_decoder_size(false, dt_us, sr_hz);
}
/**
* Setup decoder
*/
struct lc3_decoder *lc3_setup_decoder(
int dt_us, int sr_hz, int sr_pcm_hz, void *mem)
LC3_EXPORT struct lc3_decoder *lc3_hr_setup_decoder(
bool hrmode, int dt_us, int sr_hz, int sr_pcm_hz, void *mem)
{
if (sr_pcm_hz <= 0)
sr_pcm_hz = sr_hz;
enum lc3_dt dt = resolve_dt(dt_us);
enum lc3_srate sr = resolve_sr(sr_hz);
enum lc3_srate sr_pcm = resolve_sr(sr_pcm_hz);
enum lc3_dt dt = resolve_dt(dt_us, hrmode);
enum lc3_srate sr = resolve_srate(sr_hz, hrmode);
enum lc3_srate sr_pcm = resolve_srate(sr_pcm_hz, hrmode);
if (dt >= LC3_NUM_DT || sr_pcm >= LC3_NUM_SRATE || sr > sr_pcm || !mem)
return NULL;
struct lc3_decoder *decoder = mem;
int nh = LC3_NH(dt, sr_pcm);
int ns = LC3_NS(dt, sr_pcm);
int nd = LC3_ND(dt, sr_pcm);
int nh = lc3_nh(dt, sr_pcm);
int ns = lc3_ns(dt, sr_pcm);
int nd = lc3_nd(dt, sr_pcm);
*decoder = (struct lc3_decoder){
.dt = dt, .sr = sr,
.sr_pcm = sr_pcm,
.xh = decoder->s,
.xs = decoder->s + nh-ns,
.xd = decoder->s + nh,
.xg = decoder->s + nh+nd,
.xh_off = 0,
.xs_off = nh,
.xd_off = nh + ns,
.xg_off = nh + ns + nd,
};
lc3_plc_reset(&decoder->plc);
memset(decoder->s, 0,
memset(decoder->x, 0,
LC3_DECODER_BUFFER_COUNT(dt_us, sr_pcm_hz) * sizeof(float));
return decoder;
}
LC3_EXPORT struct lc3_decoder *lc3_setup_decoder(
int dt_us, int sr_hz, int sr_pcm_hz, void *mem)
{
return lc3_hr_setup_decoder(false, dt_us, sr_hz, sr_pcm_hz, mem);
}
/**
* Decode a frame
*/
int lc3_decode(struct lc3_decoder *decoder, const void *in, int nbytes,
enum lc3_pcm_format fmt, void *pcm, int stride)
LC3_EXPORT int lc3_decode(struct lc3_decoder *decoder,
const void *in, int nbytes, enum lc3_pcm_format fmt, void *pcm, int stride)
{
static void (* const store[])(struct lc3_decoder *, void *, int) = {
[LC3_PCM_FORMAT_S16 ] = store_s16,
@ -683,7 +747,7 @@ int lc3_decode(struct lc3_decoder *decoder, const void *in, int nbytes,
return -1;
if (in && (nbytes < LC3_MIN_FRAME_BYTES ||
nbytes > LC3_MAX_FRAME_BYTES ))
nbytes > lc3_max_frame_bytes(decoder->dt, decoder->sr) ))
return -1;
/* --- Processing --- */

View File

@ -144,6 +144,36 @@ static const int16_t h_48k_12k8_q15[4*60] = {
};
#endif /* resample_48k_12k8 */
#ifndef resample_96k_12k8
static const int16_t h_96k_12k8_q15[2*120] = {
-3, -7, -10, -13, -13, -10, -4, 5, 15, 26,
33, 36, 31, 19, 0, -23, -47, -66, -76, -73,
-54, -21, 23, 70, 111, 139, 143, 121, 72, 0,
-84, -165, -227, -256, -240, -175, -67, 72, 219, 349,
433, 448, 379, 225, 0, -268, -536, -755, -874, -848,
-648, -260, 301, 1000, 1780, 2569, 3290, 3869, 4243, 4372,
4243, 3869, 3290, 2569, 1780, 1000, 301, -260, -648, -848,
-874, -755, -536, -268, 0, 225, 379, 448, 433, 349,
219, 72, -67, -175, -240, -256, -227, -165, -84, 0,
72, 121, 143, 139, 111, 70, 23, -21, -54, -73,
-76, -66, -47, -23, 0, 19, 31, 36, 33, 26,
15, 5, -4, -10, -13, -13, -10, -7, -3, 0,
-1, -5, -8, -12, -13, -12, -8, 0, 10, 21,
30, 35, 34, 26, 10, -11, -35, -58, -73, -76,
-65, -39, 0, 46, 92, 127, 144, 136, 100, 38,
-41, -125, -199, -246, -254, -214, -126, 0, 146, 288,
398, 450, 424, 312, 120, -131, -405, -655, -830, -881,
-771, -477, 0, 636, 1384, 2178, 2943, 3601, 4084, 4340,
4340, 4084, 3601, 2943, 2178, 1384, 636, 0, -477, -771,
-881, -830, -655, -405, -131, 120, 312, 424, 450, 398,
288, 146, 0, -126, -214, -254, -246, -199, -125, -41,
38, 100, 136, 144, 127, 92, 46, 0, -39, -65,
-76, -73, -58, -35, -11, 10, 26, 34, 35, 30,
21, 10, 0, -8, -12, -13, -12, -8, -5, -1,
};
#endif /* resample_96k_12k8 */
/**
* High-pass 50Hz filtering, at 12.8 KHz samplerate
@ -223,7 +253,8 @@ LC3_HOT static inline void resample_x64k_12k8(const int p, const int16_t *h,
* The number of previous samples `d` accessed on `x` is :
* d: { 30, 60 } - 1 for resampling factors 8 and 4.
*/
#if !defined(resample_24k_12k8) || !defined(resample_48k_12k8)
#if !defined(resample_24k_12k8) || !defined(resample_48k_12k8) \
|| !defined(resample_96k_12k8)
LC3_HOT static inline void resample_x192k_12k8(const int p, const int16_t *h,
struct lc3_ltpf_hp50_state *hp50, const int16_t *x, int16_t *y, int n)
{
@ -340,6 +371,22 @@ LC3_HOT static void resample_48k_12k8(
}
#endif /* resample_48k_12k8 */
/**
* Resample from 96 Khz to 12.8 KHz
* hp50 High-Pass biquad filter state
* x [-120..-1] Previous, [0..ns-1] Current samples, in fixed Q15
* y, n [0..n-1] Output `n` processed samples, in fixed Q14
*
* The `x` vector is aligned on 32 bits
*/
#ifndef resample_96k_12k8
LC3_HOT static void resample_96k_12k8(
struct lc3_ltpf_hp50_state *hp50, const int16_t *x, int16_t *y, int n)
{
resample_x192k_12k8(2, h_96k_12k8_q15, hp50, x, y, n);
}
#endif /* resample_96k_12k8 */
/**
* Resample to 6.4 KHz
* x [-3..-1] Previous, [0..n-1] Current samples
@ -366,11 +413,13 @@ LC3_HOT static void resample_6k4(const int16_t *x, int16_t *y, int n)
static void (* const resample_12k8[])
(struct lc3_ltpf_hp50_state *, const int16_t *, int16_t *, int ) =
{
[LC3_SRATE_8K ] = resample_8k_12k8,
[LC3_SRATE_16K] = resample_16k_12k8,
[LC3_SRATE_24K] = resample_24k_12k8,
[LC3_SRATE_32K] = resample_32k_12k8,
[LC3_SRATE_48K] = resample_48k_12k8,
[LC3_SRATE_8K ] = resample_8k_12k8,
[LC3_SRATE_16K ] = resample_16k_12k8,
[LC3_SRATE_24K ] = resample_24k_12k8,
[LC3_SRATE_32K ] = resample_32k_12k8,
[LC3_SRATE_48K ] = resample_48k_12k8,
[LC3_SRATE_48K_HR] = resample_48k_12k8,
[LC3_SRATE_96K_HR] = resample_96k_12k8,
};
@ -457,7 +506,7 @@ LC3_HOT static int argmax_weighted(
}
/**
* Interpolate from pitch detected value (3.3.9.8)
* Interpolate from pitch detected value
* x, n [-2..-1] Previous, [0..n] Current input
* d The phase of interpolation (0 to 3)
* return The interpolated vector
@ -492,7 +541,7 @@ LC3_HOT static void interpolate(const int16_t *x, int n, int d, int16_t *y)
}
/**
* Interpolate autocorrelation (3.3.9.7)
* Interpolate autocorrelation
* x [-4..-1] Previous, [0..4] Current input
* d The phase of interpolation (-3 to 3)
* return The interpolated value
@ -522,7 +571,7 @@ LC3_HOT static float interpolate_corr(const float *x, int d)
}
/**
* Pitch detection algorithm (3.3.9.5-6)
* Pitch detection algorithm
* ltpf Context of analysis
* x, n [-114..-17] Previous, [0..n-1] Current 6.4KHz samples
* tc Return the pitch-lag estimation
@ -530,8 +579,8 @@ LC3_HOT static float interpolate_corr(const float *x, int d)
*
* The `x` vector is aligned on 32 bits
*/
static bool detect_pitch(
struct lc3_ltpf_analysis *ltpf, const int16_t *x, int n, int *tc)
static bool detect_pitch(struct lc3_ltpf_analysis *ltpf,
const int16_t *x, int n, int *tc)
{
float rm1, rm2;
float r[98];
@ -562,7 +611,7 @@ static bool detect_pitch(
}
/**
* Pitch-lag parameter (3.3.9.7)
* Pitch-lag parameter
* x, n [-232..-28] Previous, [0..n-1] Current 12.8KHz samples, Q14
* tc Pitch-lag estimation
* pitch The pitch value, in fixed .4
@ -615,7 +664,7 @@ bool lc3_ltpf_analyse(
/* --- Resampling to 12.8 KHz --- */
int z_12k8 = sizeof(ltpf->x_12k8) / sizeof(*ltpf->x_12k8);
int n_12k8 = dt == LC3_DT_7M5 ? 96 : 128;
int n_12k8 = (1 + dt) * 32;
memmove(ltpf->x_12k8, ltpf->x_12k8 + n_12k8,
(z_12k8 - n_12k8) * sizeof(*ltpf->x_12k8));
@ -624,7 +673,7 @@ bool lc3_ltpf_analyse(
resample_12k8[sr](&ltpf->hp50, x, x_12k8, n_12k8);
x_12k8 -= (dt == LC3_DT_7M5 ? 44 : 24);
x_12k8 -= (dt == LC3_DT_7M5 ? 44 : 24);
/* --- Resampling to 6.4 KHz --- */
@ -638,6 +687,13 @@ bool lc3_ltpf_analyse(
resample_6k4(x_12k8, x_6k4, n_6k4);
/* --- Enlarge for small frame size --- */
if (dt == LC3_DT_2M5) {
x_12k8 -= n_12k8, x_6k4 -= n_6k4;
n_12k8 += n_12k8; n_6k4 += n_6k4;
}
/* --- Pitch detection --- */
int tc, pitch = 0;
@ -646,7 +702,7 @@ bool lc3_ltpf_analyse(
bool pitch_present = detect_pitch(ltpf, x_6k4, n_6k4, &tc);
if (pitch_present) {
int16_t u[n_12k8], v[n_12k8];
int16_t u[128], v[128];
data->pitch_index = refine_pitch(x_12k8, n_12k8, tc, &pitch);
@ -663,11 +719,11 @@ bool lc3_ltpf_analyse(
LC3_MAX(pitch, ltpf->pitch) - LC3_MIN(pitch, ltpf->pitch);
float nc_diff = nc - ltpf->nc[0];
data->active = pitch_present &&
data->active = !lc3_hr(sr) && pitch_present &&
((nc > 0.9f) || (nc > 0.84f && pitch_diff < 8 && nc_diff > -0.1f));
} else {
data->active = pitch_present &&
data->active = !lc3_hr(sr) && pitch_present &&
( (dt == LC3_DT_10M || ltpf->nc[1] > 0.94f) &&
(ltpf->nc[0] > 0.94f && nc > 0.94f) );
}
@ -685,6 +741,14 @@ bool lc3_ltpf_analyse(
* Synthesis
* -------------------------------------------------------------------------- */
/**
* Width of synthesis filter
*/
#define MAX_FILTER_WIDTH \
(LC3_MAX_SRATE_HZ / 4000)
/**
* Synthesis filter template
* xh, nh History ring buffer of filtered samples
@ -701,7 +765,7 @@ LC3_HOT static inline void synthesize_template(
{
float g = (float)(fade <= 0);
float g_incr = (float)((fade > 0) - (fade < 0)) / n;
float u[w];
float u[MAX_FILTER_WIDTH];
/* --- Load previous samples --- */
@ -749,6 +813,7 @@ LC3_HOT static inline void synthesize_template(
* Synthesis filter for each samplerates (width of filter)
*/
LC3_HOT static void synthesize_4(const float *xh, int nh, int lag,
const float *x0, float *x, int n, const float *c, int fade)
{
@ -791,8 +856,7 @@ void lc3_ltpf_synthesize(enum lc3_dt dt, enum lc3_srate sr, int nbytes,
lc3_ltpf_synthesis_t *ltpf, const lc3_ltpf_data_t *data,
const float *xh, float *x)
{
int nh = LC3_NH(dt, sr);
int dt_us = LC3_DT_US(dt);
int nh = lc3_ns(dt, sr) + lc3_nh(dt, sr);
/* --- Filter parameters --- */
@ -802,14 +866,19 @@ void lc3_ltpf_synthesize(enum lc3_dt dt, enum lc3_srate sr, int nbytes,
p_idx >= 380 ? (((p_idx >> 1) - 63) << 2) + (((p_idx & 1)) << 1) :
(((p_idx >> 2) + 32) << 2) + (((p_idx & 3)) << 0) ;
pitch = (pitch * LC3_SRATE_KHZ(sr) * 10 + 64) / 128;
pitch = (pitch * lc3_ns(LC3_DT_10M, sr) + 64) / 128;
int nbits = (nbytes*8 * 10000 + (dt_us/2)) / dt_us;
int g_idx = LC3_MAX(nbits / 80, 3 + (int)sr) - (3 + sr);
int nbits = (nbytes*8 * (1 + LC3_DT_10M)) / (1 + dt);
if (dt == LC3_DT_2M5)
nbits = (6 * nbits + 5) / 10;
if (dt == LC3_DT_5M)
nbits -= 160;
int g_idx = LC3_MAX(nbits / 80, (int)(3 + sr)) - (3 + sr);
bool active = data && data->active && g_idx < 4;
int w = LC3_MAX(4, LC3_SRATE_KHZ(sr) / 4);
float c[2*w];
int w = LC3_MAX(4, lc3_ns_4m[sr] >> 4);
float c[2 * MAX_FILTER_WIDTH];
for (int i = 0; i < w; i++) {
float g = active ? 0.4f - 0.05f * g_idx : 0;
@ -819,31 +888,32 @@ void lc3_ltpf_synthesize(enum lc3_dt dt, enum lc3_srate sr, int nbytes,
/* --- Transition handling --- */
int ns = LC3_NS(dt, sr);
int nt = ns / (3 + dt);
float x0[w];
int ns = lc3_ns(dt, sr);
int nt = ns / (1 + dt);
float x0[2][MAX_FILTER_WIDTH];
memcpy(x0[0], ltpf->x, (w-1) * sizeof(float));
memcpy(ltpf->x, x + ns - (w-1), (w-1) * sizeof(float));
if (active)
memcpy(x0, x + nt-(w-1), (w-1) * sizeof(float));
memcpy(x0[1], x + nt-(w-1), (w-1) * sizeof(float));
if (!ltpf->active && active)
synthesize[sr](xh, nh, pitch/4, ltpf->x, x, nt, c, 1);
synthesize[sr](xh, nh, pitch/4, x0[0], x, nt, c, 1);
else if (ltpf->active && !active)
synthesize[sr](xh, nh, ltpf->pitch/4, ltpf->x, x, nt, ltpf->c, -1);
synthesize[sr](xh, nh, ltpf->pitch/4, x0[0], x, nt, ltpf->c, -1);
else if (ltpf->active && active && ltpf->pitch == pitch)
synthesize[sr](xh, nh, pitch/4, ltpf->x, x, nt, c, 0);
synthesize[sr](xh, nh, pitch/4, x0[0], x, nt, c, 0);
else if (ltpf->active && active) {
synthesize[sr](xh, nh, ltpf->pitch/4, ltpf->x, x, nt, ltpf->c, -1);
synthesize[sr](xh, nh, ltpf->pitch/4, x0[0], x, nt, ltpf->c, -1);
synthesize[sr](xh, nh, pitch/4,
(x <= xh ? x + nh : x) - (w-1), x, nt, c, 1);
}
/* --- Remainder --- */
memcpy(ltpf->x, x + ns - (w-1), (w-1) * sizeof(float));
if (active)
synthesize[sr](xh, nh, pitch/4, x0, x + nt, ns-nt, c, 0);
if (active && ns > nt)
synthesize[sr](xh, nh, pitch/4, x0[1], x + nt, ns-nt, c, 0);
/* --- Update state --- */
@ -886,7 +956,8 @@ void lc3_ltpf_put_data(lc3_bits_t *bits,
/**
* Get bitstream data
*/
void lc3_ltpf_get_data(lc3_bits_t *bits, struct lc3_ltpf_data *data)
void lc3_ltpf_get_data(lc3_bits_t *bits,
struct lc3_ltpf_data *data)
{
data->active = lc3_get_bit(bits);
data->pitch_index = lc3_get_bits(bits, 9);

View File

@ -16,13 +16,6 @@
*
******************************************************************************/
/**
* LC3 - Long Term Postfilter
*
* Reference : Low Complexity Communication Codec (LC3)
* Bluetooth Specification v1.0
*/
#ifndef __LC3_LTPF_H
#define __LC3_LTPF_H

35
3rd-party/lc3-google/src/makefile.mk vendored Normal file
View File

@ -0,0 +1,35 @@
#
# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
liblc3_src += \
$(SRC_DIR)/attdet.c \
$(SRC_DIR)/bits.c \
$(SRC_DIR)/bwdet.c \
$(SRC_DIR)/energy.c \
$(SRC_DIR)/lc3.c \
$(SRC_DIR)/ltpf.c \
$(SRC_DIR)/mdct.c \
$(SRC_DIR)/plc.c \
$(SRC_DIR)/sns.c \
$(SRC_DIR)/spec.c \
$(SRC_DIR)/tables.c \
$(SRC_DIR)/tns.c
liblc3_cflags += -ffast-math
$(eval $(call add-lib,liblc3))
default: liblc3

View File

@ -160,7 +160,7 @@ LC3_HOT static inline void fft_bf2(
/**
* Perform FFT
* x, y0, y1 Input, and 2 scratch buffers of size `n`
* n Number of points 30, 40, 60, 80, 90, 120, 160, 180, 240
* n Number of points 30, 40, 60, 80, 90, 120, 160, 180, 240, 480
* return The buffer `y0` or `y1` that hold the result
*
* Input `x` can be the same as the `y0` second scratch buffer
@ -175,9 +175,9 @@ static struct lc3_complex *fft(const struct lc3_complex *x, int n,
*
* n = 5^1 * 3^n3 * 2^n2
*
* for n = 40, 80, 160 n3 = 0, n2 = [3..5]
* n = 30, 60, 120, 240 n3 = 1, n2 = [1..4]
* n = 90, 180 n3 = 2, n2 = [1..2]
* for n = 10, 20, 40, 80, 160 n3 = 0, n2 = [1..5]
* n = 30, 60, 120, 240, 480 n3 = 1, n2 = [1..5]
* n = 90, 180 n3 = 2, n2 = [1..2]
*
* Note that the expression `n & (n-1) == 0` is equivalent
* to the check that `n` is a power of 2. */
@ -200,16 +200,18 @@ static struct lc3_complex *fft(const struct lc3_complex *x, int n,
/**
* Windowing of samples before MDCT
* dt, sr Duration and samplerate (size of the transform)
* dt, sr Duration and samplerate
* x, y Input current and delayed samples
* y, d Output windowed samples, and delayed ones
*/
LC3_HOT static void mdct_window(enum lc3_dt dt, enum lc3_srate sr,
LC3_HOT static void mdct_window(
enum lc3_dt dt, enum lc3_srate sr,
const float *x, float *d, float *y)
{
int ns = LC3_NS(dt, sr), nd = LC3_ND(dt, sr);
const float *win = lc3_mdct_win[dt][sr];
int ns = lc3_ns(dt, sr), nd = lc3_nd(dt, sr);
const float *w0 = lc3_mdct_win[dt][sr], *w1 = w0 + ns;
const float *w0 = win, *w1 = w0 + ns;
const float *w2 = w1, *w3 = w2 + nd;
const float *x0 = x + ns-nd, *x1 = x0;
@ -267,12 +269,11 @@ LC3_HOT static void mdct_pre_fft(const struct lc3_mdct_rot_def *def,
* Post-rotate FFT N/4 points coefficients, resulting MDCT N points
* def Size and twiddles factors
* x, y Input and output coefficients
* scale Scale on output coefficients
*
* `x` and y` can be the same buffer
*/
LC3_HOT static void mdct_post_fft(const struct lc3_mdct_rot_def *def,
const struct lc3_complex *x, float *y, float scale)
const struct lc3_complex *x, float *y)
{
int n4 = def->n4, n8 = n4 >> 1;
@ -283,11 +284,11 @@ LC3_HOT static void mdct_post_fft(const struct lc3_mdct_rot_def *def,
for ( ; y1 > y; x0++, x1--, w0++, w1--) {
float u0 = (x0->im * w0->im + x0->re * w0->re) * scale;
float u1 = (x1->re * w1->im - x1->im * w1->re) * scale;
float u0 = x0->im * w0->im + x0->re * w0->re;
float u1 = x1->re * w1->im - x1->im * w1->re;
float v0 = (x0->re * w0->im - x0->im * w0->re) * scale;
float v1 = (x1->im * w1->im + x1->re * w1->re) * scale;
float v0 = x0->re * w0->im - x0->im * w0->re;
float v1 = x1->im * w1->im + x1->re * w1->re;
*(y0++) = u0; *(y0++) = u1;
*(--y1) = v0; *(--y1) = v1;
@ -330,14 +331,13 @@ LC3_HOT static void imdct_pre_fft(const struct lc3_mdct_rot_def *def,
* Post-rotate FFT N/4 points coefficients, resulting IMDCT N points
* def Size and twiddles factors
* x, y Input and output coefficients
* scale Scale on output coefficients
*
* `x` and y` can be the same buffer
* The real and imaginary parts of `x` are swapped,
* to operate on FFT instead of IFFT
*/
LC3_HOT static void imdct_post_fft(const struct lc3_mdct_rot_def *def,
const struct lc3_complex *x, float *y, float scale)
const struct lc3_complex *x, float *y)
{
int n4 = def->n4;
@ -350,11 +350,11 @@ LC3_HOT static void imdct_post_fft(const struct lc3_mdct_rot_def *def,
struct lc3_complex uz = *(x0++), vz = *(--x1);
struct lc3_complex uw = *(w0++), vw = *(--w1);
*(y0++) = (uz.re * uw.im - uz.im * uw.re) * scale;
*(--y1) = (uz.re * uw.re + uz.im * uw.im) * scale;
*(y0++) = uz.re * uw.im - uz.im * uw.re;
*(--y1) = uz.re * uw.re + uz.im * uw.im;
*(--y1) = (vz.re * vw.im - vz.im * vw.re) * scale;
*(y0++) = (vz.re * vw.re + vz.im * vw.im) * scale;
*(--y1) = vz.re * vw.im - vz.im * vw.re;
*(y0++) = vz.re * vw.re + vz.im * vw.im;
}
}
@ -364,7 +364,8 @@ LC3_HOT static void imdct_post_fft(const struct lc3_mdct_rot_def *def,
* x, d Middle half of IMDCT coefficients and delayed samples
* y, d Output samples and delayed ones
*/
LC3_HOT static void imdct_window(enum lc3_dt dt, enum lc3_srate sr,
LC3_HOT static void imdct_window(
enum lc3_dt dt, enum lc3_srate sr,
const float *x, float *d, float *y)
{
/* The full MDCT coefficients is given by symmetry :
@ -373,8 +374,9 @@ LC3_HOT static void imdct_window(enum lc3_dt dt, enum lc3_srate sr,
* T[ n/2 .. 3n/4-1] = half[n/4 .. n/2-1]
* T[3n/4 .. n-1] = half[n/2-1 .. n/4 ] */
int n4 = LC3_NS(dt, sr) >> 1, nd = LC3_ND(dt, sr);
const float *w2 = lc3_mdct_win[dt][sr], *w0 = w2 + 3*n4, *w1 = w0;
const float *win = lc3_mdct_win[dt][sr];
int n4 = lc3_ns(dt, sr) >> 1, nd = lc3_nd(dt, sr);
const float *w2 = win, *w0 = w2 + 3*n4, *w1 = w0;
const float *x0 = d + nd-n4, *x1 = x0;
float *y0 = y + nd-n4, *y1 = y0, *y2 = d + nd, *y3 = d;
@ -409,17 +411,31 @@ LC3_HOT static void imdct_window(enum lc3_dt dt, enum lc3_srate sr,
}
}
/**
* Rescale samples
* x, n Input and count of samples, scaled as output
* scale Scale factor
*/
LC3_HOT static void rescale(float *x, int n, float f)
{
for (int i = 0; i < (n >> 2); i++) {
*(x++) *= f; *(x++) *= f;
*(x++) *= f; *(x++) *= f;
}
}
/**
* Forward MDCT transformation
*/
void lc3_mdct_forward(enum lc3_dt dt, enum lc3_srate sr,
enum lc3_srate sr_dst, const float *x, float *d, float *y)
void lc3_mdct_forward(
enum lc3_dt dt, enum lc3_srate sr, enum lc3_srate sr_dst,
const float *x, float *d, float *y)
{
const struct lc3_mdct_rot_def *rot = lc3_mdct_rot[dt][sr];
int nf = LC3_NS(dt, sr_dst);
int ns = LC3_NS(dt, sr);
int ns_dst = lc3_ns(dt, sr_dst);
int ns = lc3_ns(dt, sr);
struct lc3_complex buffer[ns/2];
struct lc3_complex buffer[LC3_MAX_NS / 2];
struct lc3_complex *z = (struct lc3_complex *)y;
union { float *f; struct lc3_complex *z; } u = { .z = buffer };
@ -427,26 +443,33 @@ void lc3_mdct_forward(enum lc3_dt dt, enum lc3_srate sr,
mdct_pre_fft(rot, u.f, u.z);
u.z = fft(u.z, ns/2, u.z, z);
mdct_post_fft(rot, u.z, y, sqrtf( (2.f*nf) / (ns*ns) ));
mdct_post_fft(rot, u.z, y);
if (ns != ns_dst)
rescale(y, ns_dst, sqrtf((float)ns_dst / ns));
}
/**
* Inverse MDCT transformation
*/
void lc3_mdct_inverse(enum lc3_dt dt, enum lc3_srate sr,
enum lc3_srate sr_src, const float *x, float *d, float *y)
void lc3_mdct_inverse(
enum lc3_dt dt, enum lc3_srate sr, enum lc3_srate sr_src,
const float *x, float *d, float *y)
{
const struct lc3_mdct_rot_def *rot = lc3_mdct_rot[dt][sr];
int nf = LC3_NS(dt, sr_src);
int ns = LC3_NS(dt, sr);
int ns_src = lc3_ns(dt, sr_src);
int ns = lc3_ns(dt, sr);
struct lc3_complex buffer[ns/2];
struct lc3_complex buffer[LC3_MAX_NS / 2];
struct lc3_complex *z = (struct lc3_complex *)y;
union { float *f; struct lc3_complex *z; } u = { .z = buffer };
imdct_pre_fft(rot, x, z);
z = fft(z, ns/2, z, u.z);
imdct_post_fft(rot, z, u.f, sqrtf(2.f / nf));
imdct_post_fft(rot, z, u.f);
if (ns != ns_src)
rescale(u.f, ns, sqrtf((float)ns / ns_src));
imdct_window(dt, sr, u.f, d, y);
}

View File

@ -16,13 +16,6 @@
*
******************************************************************************/
/**
* LC3 - Compute LD-MDCT (Low Delay Modified Discret Cosinus Transform)
*
* Reference : Low Complexity Communication Codec (LC3)
* Bluetooth Specification v1.0
*/
#ifndef __LC3_MDCT_H
#define __LC3_MDCT_H
@ -38,8 +31,9 @@
*
* `x` and `y` can be the same buffer
*/
void lc3_mdct_forward(enum lc3_dt dt, enum lc3_srate sr,
enum lc3_srate sr_dst, const float *x, float *d, float *y);
void lc3_mdct_forward(
enum lc3_dt dt, enum lc3_srate sr, enum lc3_srate sr_dst,
const float *x, float *d, float *y);
/**
* Inverse MDCT transformation
@ -50,8 +44,9 @@ void lc3_mdct_forward(enum lc3_dt dt, enum lc3_srate sr,
*
* `x` and `y` can be the same buffer
*/
void lc3_mdct_inverse(enum lc3_dt dt, enum lc3_srate sr,
enum lc3_srate sr_src, const float *x, float *d, float *y);
void lc3_mdct_inverse(
enum lc3_dt dt, enum lc3_srate sr, enum lc3_srate sr_src,
const float *x, float *d, float *y);
#endif /* __LC3_MDCT_H */

62
3rd-party/lc3-google/src/meson.build vendored Normal file
View File

@ -0,0 +1,62 @@
# Copyright © 2022 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
inc = include_directories('../include')
lc3_sources = [
'attdet.c',
'bits.c',
'bwdet.c',
'energy.c',
'lc3.c',
'ltpf.c',
'mdct.c',
'plc.c',
'sns.c',
'spec.c',
'tables.c',
'tns.c'
]
lc3lib = library('lc3',
lc3_sources,
dependencies: m_dep,
include_directories: inc,
gnu_symbol_visibility: 'hidden',
soversion: 1,
install: true)
lc3_install_headers = [
'../include/lc3_private.h',
'../include/lc3.h',
'../include/lc3_cpp.h'
]
install_headers(lc3_install_headers)
pkg_mod = import('pkgconfig')
pkg_mod.generate(libraries : lc3lib,
name : 'liblc3',
filebase : 'lc3',
description : 'LC3 codec library')
#Declare dependency
liblc3_dep = declare_dependency(
link_with : lc3lib,
include_directories : inc)
if meson.version().version_compare('>= 0.54.0')
meson.override_dependency('liblc3', liblc3_dep)
endif

View File

@ -17,6 +17,7 @@
******************************************************************************/
#include "plc.h"
#include "tables.h"
/**
@ -45,7 +46,7 @@ void lc3_plc_synthesize(enum lc3_dt dt, enum lc3_srate sr,
{
uint16_t seed = plc->seed;
float alpha = plc->alpha;
int ne = LC3_NE(dt, sr);
int ne = lc3_ne(dt, sr);
alpha *= (plc->count < 4 ? 1.0f :
plc->count < 8 ? 0.9f : 0.85f);

View File

@ -16,13 +16,6 @@
*
******************************************************************************/
/**
* LC3 - Packet Loss Concealment
*
* Reference : Low Complexity Communication Codec (LC3)
* Bluetooth Specification v1.0
*/
#ifndef __LC3_PLC_H
#define __LC3_PLC_H

View File

@ -146,121 +146,157 @@ LC3_HOT static void dct16_inverse(const float *x, float *y)
/**
* Scale factors
* dt, sr Duration and samplerate of the frame
* nbytes Size in bytes of the frame
* eb Energy estimation per bands
* att 1: Attack detected 0: Otherwise
* scf Output 16 scale factors
*/
LC3_HOT static void compute_scale_factors(
enum lc3_dt dt, enum lc3_srate sr,
enum lc3_dt dt, enum lc3_srate sr, int nbytes,
const float *eb, bool att, float *scf)
{
/* Pre-emphasis gain table :
* Ge[b] = 10 ^ (b * g_tilt) / 630 , b = [0..63] */
static const float ge_table[LC3_NUM_SRATE][LC3_NUM_BANDS] = {
static const float ge_14[LC3_MAX_BANDS] = { /* g_tilt = 14 */
1.00000000e+00, 1.05250029e+00, 1.10775685e+00, 1.16591440e+00,
1.22712524e+00, 1.29154967e+00, 1.35935639e+00, 1.43072299e+00,
1.50583635e+00, 1.58489319e+00, 1.66810054e+00, 1.75567629e+00,
1.84784980e+00, 1.94486244e+00, 2.04696827e+00, 2.15443469e+00,
2.26754313e+00, 2.38658979e+00, 2.51188643e+00, 2.64376119e+00,
2.78255940e+00, 2.92864456e+00, 3.08239924e+00, 3.24422608e+00,
3.41454887e+00, 3.59381366e+00, 3.78248991e+00, 3.98107171e+00,
4.19007911e+00, 4.41005945e+00, 4.64158883e+00, 4.88527357e+00,
5.14175183e+00, 5.41169527e+00, 5.69581081e+00, 5.99484250e+00,
6.30957344e+00, 6.64082785e+00, 6.98947321e+00, 7.35642254e+00,
7.74263683e+00, 8.14912747e+00, 8.57695899e+00, 9.02725178e+00,
9.50118507e+00, 1.00000000e+01, 1.05250029e+01, 1.10775685e+01,
1.16591440e+01, 1.22712524e+01, 1.29154967e+01, 1.35935639e+01,
1.43072299e+01, 1.50583635e+01, 1.58489319e+01, 1.66810054e+01,
1.75567629e+01, 1.84784980e+01, 1.94486244e+01, 2.04696827e+01,
2.15443469e+01, 2.26754313e+01, 2.38658979e+01, 2.51188643e+01 };
[LC3_SRATE_8K] = { /* g_tilt = 14 */
1.00000000e+00, 1.05250029e+00, 1.10775685e+00, 1.16591440e+00,
1.22712524e+00, 1.29154967e+00, 1.35935639e+00, 1.43072299e+00,
1.50583635e+00, 1.58489319e+00, 1.66810054e+00, 1.75567629e+00,
1.84784980e+00, 1.94486244e+00, 2.04696827e+00, 2.15443469e+00,
2.26754313e+00, 2.38658979e+00, 2.51188643e+00, 2.64376119e+00,
2.78255940e+00, 2.92864456e+00, 3.08239924e+00, 3.24422608e+00,
3.41454887e+00, 3.59381366e+00, 3.78248991e+00, 3.98107171e+00,
4.19007911e+00, 4.41005945e+00, 4.64158883e+00, 4.88527357e+00,
5.14175183e+00, 5.41169527e+00, 5.69581081e+00, 5.99484250e+00,
6.30957344e+00, 6.64082785e+00, 6.98947321e+00, 7.35642254e+00,
7.74263683e+00, 8.14912747e+00, 8.57695899e+00, 9.02725178e+00,
9.50118507e+00, 1.00000000e+01, 1.05250029e+01, 1.10775685e+01,
1.16591440e+01, 1.22712524e+01, 1.29154967e+01, 1.35935639e+01,
1.43072299e+01, 1.50583635e+01, 1.58489319e+01, 1.66810054e+01,
1.75567629e+01, 1.84784980e+01, 1.94486244e+01, 2.04696827e+01,
2.15443469e+01, 2.26754313e+01, 2.38658979e+01, 2.51188643e+01 },
static const float ge_18[LC3_MAX_BANDS] = { /* g_tilt = 18 */
1.00000000e+00, 1.06800043e+00, 1.14062492e+00, 1.21818791e+00,
1.30102522e+00, 1.38949549e+00, 1.48398179e+00, 1.58489319e+00,
1.69266662e+00, 1.80776868e+00, 1.93069773e+00, 2.06198601e+00,
2.20220195e+00, 2.35195264e+00, 2.51188643e+00, 2.68269580e+00,
2.86512027e+00, 3.05994969e+00, 3.26802759e+00, 3.49025488e+00,
3.72759372e+00, 3.98107171e+00, 4.25178630e+00, 4.54090961e+00,
4.84969343e+00, 5.17947468e+00, 5.53168120e+00, 5.90783791e+00,
6.30957344e+00, 6.73862717e+00, 7.19685673e+00, 7.68624610e+00,
8.20891416e+00, 8.76712387e+00, 9.36329209e+00, 1.00000000e+01,
1.06800043e+01, 1.14062492e+01, 1.21818791e+01, 1.30102522e+01,
1.38949549e+01, 1.48398179e+01, 1.58489319e+01, 1.69266662e+01,
1.80776868e+01, 1.93069773e+01, 2.06198601e+01, 2.20220195e+01,
2.35195264e+01, 2.51188643e+01, 2.68269580e+01, 2.86512027e+01,
3.05994969e+01, 3.26802759e+01, 3.49025488e+01, 3.72759372e+01,
3.98107171e+01, 4.25178630e+01, 4.54090961e+01, 4.84969343e+01,
5.17947468e+01, 5.53168120e+01, 5.90783791e+01, 6.30957344e+01 };
[LC3_SRATE_16K] = { /* g_tilt = 18 */
1.00000000e+00, 1.06800043e+00, 1.14062492e+00, 1.21818791e+00,
1.30102522e+00, 1.38949549e+00, 1.48398179e+00, 1.58489319e+00,
1.69266662e+00, 1.80776868e+00, 1.93069773e+00, 2.06198601e+00,
2.20220195e+00, 2.35195264e+00, 2.51188643e+00, 2.68269580e+00,
2.86512027e+00, 3.05994969e+00, 3.26802759e+00, 3.49025488e+00,
3.72759372e+00, 3.98107171e+00, 4.25178630e+00, 4.54090961e+00,
4.84969343e+00, 5.17947468e+00, 5.53168120e+00, 5.90783791e+00,
6.30957344e+00, 6.73862717e+00, 7.19685673e+00, 7.68624610e+00,
8.20891416e+00, 8.76712387e+00, 9.36329209e+00, 1.00000000e+01,
1.06800043e+01, 1.14062492e+01, 1.21818791e+01, 1.30102522e+01,
1.38949549e+01, 1.48398179e+01, 1.58489319e+01, 1.69266662e+01,
1.80776868e+01, 1.93069773e+01, 2.06198601e+01, 2.20220195e+01,
2.35195264e+01, 2.51188643e+01, 2.68269580e+01, 2.86512027e+01,
3.05994969e+01, 3.26802759e+01, 3.49025488e+01, 3.72759372e+01,
3.98107171e+01, 4.25178630e+01, 4.54090961e+01, 4.84969343e+01,
5.17947468e+01, 5.53168120e+01, 5.90783791e+01, 6.30957344e+01 },
static const float ge_22[LC3_MAX_BANDS] = { /* g_tilt = 22 */
1.00000000e+00, 1.08372885e+00, 1.17446822e+00, 1.27280509e+00,
1.37937560e+00, 1.49486913e+00, 1.62003281e+00, 1.75567629e+00,
1.90267705e+00, 2.06198601e+00, 2.23463373e+00, 2.42173704e+00,
2.62450630e+00, 2.84425319e+00, 3.08239924e+00, 3.34048498e+00,
3.62017995e+00, 3.92329345e+00, 4.25178630e+00, 4.60778348e+00,
4.99358789e+00, 5.41169527e+00, 5.86481029e+00, 6.35586411e+00,
6.88803330e+00, 7.46476041e+00, 8.08977621e+00, 8.76712387e+00,
9.50118507e+00, 1.02967084e+01, 1.11588399e+01, 1.20931568e+01,
1.31057029e+01, 1.42030283e+01, 1.53922315e+01, 1.66810054e+01,
1.80776868e+01, 1.95913107e+01, 2.12316686e+01, 2.30093718e+01,
2.49359200e+01, 2.70237760e+01, 2.92864456e+01, 3.17385661e+01,
3.43959997e+01, 3.72759372e+01, 4.03970086e+01, 4.37794036e+01,
4.74450028e+01, 5.14175183e+01, 5.57226480e+01, 6.03882412e+01,
6.54444792e+01, 7.09240702e+01, 7.68624610e+01, 8.32980665e+01,
9.02725178e+01, 9.78309319e+01, 1.06022203e+02, 1.14899320e+02,
1.24519708e+02, 1.34945600e+02, 1.46244440e+02, 1.58489319e+02 };
[LC3_SRATE_24K] = { /* g_tilt = 22 */
1.00000000e+00, 1.08372885e+00, 1.17446822e+00, 1.27280509e+00,
1.37937560e+00, 1.49486913e+00, 1.62003281e+00, 1.75567629e+00,
1.90267705e+00, 2.06198601e+00, 2.23463373e+00, 2.42173704e+00,
2.62450630e+00, 2.84425319e+00, 3.08239924e+00, 3.34048498e+00,
3.62017995e+00, 3.92329345e+00, 4.25178630e+00, 4.60778348e+00,
4.99358789e+00, 5.41169527e+00, 5.86481029e+00, 6.35586411e+00,
6.88803330e+00, 7.46476041e+00, 8.08977621e+00, 8.76712387e+00,
9.50118507e+00, 1.02967084e+01, 1.11588399e+01, 1.20931568e+01,
1.31057029e+01, 1.42030283e+01, 1.53922315e+01, 1.66810054e+01,
1.80776868e+01, 1.95913107e+01, 2.12316686e+01, 2.30093718e+01,
2.49359200e+01, 2.70237760e+01, 2.92864456e+01, 3.17385661e+01,
3.43959997e+01, 3.72759372e+01, 4.03970086e+01, 4.37794036e+01,
4.74450028e+01, 5.14175183e+01, 5.57226480e+01, 6.03882412e+01,
6.54444792e+01, 7.09240702e+01, 7.68624610e+01, 8.32980665e+01,
9.02725178e+01, 9.78309319e+01, 1.06022203e+02, 1.14899320e+02,
1.24519708e+02, 1.34945600e+02, 1.46244440e+02, 1.58489319e+02 },
static const float ge_26[LC3_MAX_BANDS] = { /* g_tilt = 26 */
1.00000000e+00, 1.09968890e+00, 1.20931568e+00, 1.32987103e+00,
1.46244440e+00, 1.60823388e+00, 1.76855694e+00, 1.94486244e+00,
2.13874364e+00, 2.35195264e+00, 2.58641621e+00, 2.84425319e+00,
3.12779366e+00, 3.43959997e+00, 3.78248991e+00, 4.15956216e+00,
4.57422434e+00, 5.03022373e+00, 5.53168120e+00, 6.08312841e+00,
6.68954879e+00, 7.35642254e+00, 8.08977621e+00, 8.89623710e+00,
9.78309319e+00, 1.07583590e+01, 1.18308480e+01, 1.30102522e+01,
1.43072299e+01, 1.57335019e+01, 1.73019574e+01, 1.90267705e+01,
2.09235283e+01, 2.30093718e+01, 2.53031508e+01, 2.78255940e+01,
3.05994969e+01, 3.36499270e+01, 3.70044512e+01, 4.06933843e+01,
4.47500630e+01, 4.92111475e+01, 5.41169527e+01, 5.95118121e+01,
6.54444792e+01, 7.19685673e+01, 7.91430346e+01, 8.70327166e+01,
9.57089124e+01, 1.05250029e+02, 1.15742288e+02, 1.27280509e+02,
1.39968963e+02, 1.53922315e+02, 1.69266662e+02, 1.86140669e+02,
2.04696827e+02, 2.25102829e+02, 2.47543082e+02, 2.72220379e+02,
2.99357729e+02, 3.29200372e+02, 3.62017995e+02, 3.98107171e+02 };
[LC3_SRATE_32K] = { /* g_tilt = 26 */
1.00000000e+00, 1.09968890e+00, 1.20931568e+00, 1.32987103e+00,
1.46244440e+00, 1.60823388e+00, 1.76855694e+00, 1.94486244e+00,
2.13874364e+00, 2.35195264e+00, 2.58641621e+00, 2.84425319e+00,
3.12779366e+00, 3.43959997e+00, 3.78248991e+00, 4.15956216e+00,
4.57422434e+00, 5.03022373e+00, 5.53168120e+00, 6.08312841e+00,
6.68954879e+00, 7.35642254e+00, 8.08977621e+00, 8.89623710e+00,
9.78309319e+00, 1.07583590e+01, 1.18308480e+01, 1.30102522e+01,
1.43072299e+01, 1.57335019e+01, 1.73019574e+01, 1.90267705e+01,
2.09235283e+01, 2.30093718e+01, 2.53031508e+01, 2.78255940e+01,
3.05994969e+01, 3.36499270e+01, 3.70044512e+01, 4.06933843e+01,
4.47500630e+01, 4.92111475e+01, 5.41169527e+01, 5.95118121e+01,
6.54444792e+01, 7.19685673e+01, 7.91430346e+01, 8.70327166e+01,
9.57089124e+01, 1.05250029e+02, 1.15742288e+02, 1.27280509e+02,
1.39968963e+02, 1.53922315e+02, 1.69266662e+02, 1.86140669e+02,
2.04696827e+02, 2.25102829e+02, 2.47543082e+02, 2.72220379e+02,
2.99357729e+02, 3.29200372e+02, 3.62017995e+02, 3.98107171e+02 },
static const float ge_30[LC3_MAX_BANDS] = { /* g_tilt = 30 */
1.00000000e+00, 1.11588399e+00, 1.24519708e+00, 1.38949549e+00,
1.55051578e+00, 1.73019574e+00, 1.93069773e+00, 2.15443469e+00,
2.40409918e+00, 2.68269580e+00, 2.99357729e+00, 3.34048498e+00,
3.72759372e+00, 4.15956216e+00, 4.64158883e+00, 5.17947468e+00,
5.77969288e+00, 6.44946677e+00, 7.19685673e+00, 8.03085722e+00,
8.96150502e+00, 1.00000000e+01, 1.11588399e+01, 1.24519708e+01,
1.38949549e+01, 1.55051578e+01, 1.73019574e+01, 1.93069773e+01,
2.15443469e+01, 2.40409918e+01, 2.68269580e+01, 2.99357729e+01,
3.34048498e+01, 3.72759372e+01, 4.15956216e+01, 4.64158883e+01,
5.17947468e+01, 5.77969288e+01, 6.44946677e+01, 7.19685673e+01,
8.03085722e+01, 8.96150502e+01, 1.00000000e+02, 1.11588399e+02,
1.24519708e+02, 1.38949549e+02, 1.55051578e+02, 1.73019574e+02,
1.93069773e+02, 2.15443469e+02, 2.40409918e+02, 2.68269580e+02,
2.99357729e+02, 3.34048498e+02, 3.72759372e+02, 4.15956216e+02,
4.64158883e+02, 5.17947468e+02, 5.77969288e+02, 6.44946677e+02,
7.19685673e+02, 8.03085722e+02, 8.96150502e+02, 1.00000000e+03 };
#if LC3_PLUS_HR
static const float ge_34[LC3_MAX_BANDS] = { /* g_tilt = 34 */
1.00000000e+00, 1.13231759e+00, 1.28214312e+00, 1.45179321e+00,
1.64389099e+00, 1.86140669e+00, 2.10770353e+00, 2.38658979e+00,
2.70237760e+00, 3.05994969e+00, 3.46483486e+00, 3.92329345e+00,
4.44241419e+00, 5.03022373e+00, 5.69581081e+00, 6.44946677e+00,
7.30284467e+00, 8.26913948e+00, 9.36329209e+00, 1.06022203e+01,
1.20050806e+01, 1.35935639e+01, 1.53922315e+01, 1.74288945e+01,
1.97350438e+01, 2.23463373e+01, 2.53031508e+01, 2.86512027e+01,
3.24422608e+01, 3.67349426e+01, 4.15956216e+01, 4.70994540e+01,
5.33315403e+01, 6.03882412e+01, 6.83786677e+01, 7.74263683e+01,
8.76712387e+01, 9.92716858e+01, 1.12407076e+02, 1.27280509e+02,
1.44121960e+02, 1.63191830e+02, 1.84784980e+02, 2.09235283e+02,
2.36920791e+02, 2.68269580e+02, 3.03766364e+02, 3.43959997e+02,
3.89471955e+02, 4.41005945e+02, 4.99358789e+02, 5.65432741e+02,
6.40249439e+02, 7.24965701e+02, 8.20891416e+02, 9.29509790e+02,
1.05250029e+03, 1.19176459e+03, 1.34945600e+03, 1.52801277e+03,
1.73019574e+03, 1.95913107e+03, 2.21835857e+03, 2.51188643e+03 };
#endif /* LC3_PLUS_HR */
static const float *ge_table[LC3_NUM_SRATE] = {
[LC3_SRATE_8K ] = ge_14, [LC3_SRATE_16K ] = ge_18,
[LC3_SRATE_24K ] = ge_22, [LC3_SRATE_32K ] = ge_26,
[LC3_SRATE_48K ] = ge_30,
#if LC3_PLUS_HR
[LC3_SRATE_48K_HR] = ge_30, [LC3_SRATE_96K_HR] = ge_34,
#endif /* LC3_PLUS_HR */
[LC3_SRATE_48K] = { /* g_tilt = 30 */
1.00000000e+00, 1.11588399e+00, 1.24519708e+00, 1.38949549e+00,
1.55051578e+00, 1.73019574e+00, 1.93069773e+00, 2.15443469e+00,
2.40409918e+00, 2.68269580e+00, 2.99357729e+00, 3.34048498e+00,
3.72759372e+00, 4.15956216e+00, 4.64158883e+00, 5.17947468e+00,
5.77969288e+00, 6.44946677e+00, 7.19685673e+00, 8.03085722e+00,
8.96150502e+00, 1.00000000e+01, 1.11588399e+01, 1.24519708e+01,
1.38949549e+01, 1.55051578e+01, 1.73019574e+01, 1.93069773e+01,
2.15443469e+01, 2.40409918e+01, 2.68269580e+01, 2.99357729e+01,
3.34048498e+01, 3.72759372e+01, 4.15956216e+01, 4.64158883e+01,
5.17947468e+01, 5.77969288e+01, 6.44946677e+01, 7.19685673e+01,
8.03085722e+01, 8.96150502e+01, 1.00000000e+02, 1.11588399e+02,
1.24519708e+02, 1.38949549e+02, 1.55051578e+02, 1.73019574e+02,
1.93069773e+02, 2.15443469e+02, 2.40409918e+02, 2.68269580e+02,
2.99357729e+02, 3.34048498e+02, 3.72759372e+02, 4.15956216e+02,
4.64158883e+02, 5.17947468e+02, 5.77969288e+02, 6.44946677e+02,
7.19685673e+02, 8.03085722e+02, 8.96150502e+02, 1.00000000e+03 },
};
float e[LC3_NUM_BANDS];
float e[LC3_MAX_BANDS];
/* --- Copy and padding --- */
int nb = LC3_MIN(lc3_band_lim[dt][sr][LC3_NUM_BANDS], LC3_NUM_BANDS);
int n2 = LC3_NUM_BANDS - nb;
int nb = lc3_num_bands[dt][sr];
int n4 = nb < 32 ? 32 % nb : 0;
int n2 = nb < 32 ? nb - n4 : LC3_MAX_BANDS - nb;
for (int i2 = 0; i2 < n2; i2++)
e[2*i2 + 0] = e[2*i2 + 1] = eb[i2];
for (int i4 = 0; i4 < n4; i4++)
e[4*i4 + 0] = e[4*i4 + 1] =
e[4*i4 + 2] = e[4*i4 + 3] = eb[i4];
memcpy(e + 2*n2, eb + n2, (nb - n2) * sizeof(float));
for (int i2 = n4; i2 < n4+n2; i2++)
e[2*(n4+i2) + 0] = e[2*(n4+i2) + 1] = eb[i2];
memcpy(e + 4*n4 + 2*n2, eb + n4 + n2, (nb - n4 - n2) * sizeof(float));
/* --- Smoothing, pre-emphasis and logarithm --- */
@ -269,7 +305,7 @@ LC3_HOT static void compute_scale_factors(
float e0 = e[0], e1 = e[0], e2;
float e_sum = 0;
for (int i = 0; i < LC3_NUM_BANDS-1; ) {
for (int i = 0; i < LC3_MAX_BANDS-1; ) {
e[i] = (e0 * 0.25f + e1 * 0.5f + (e2 = e[i+1]) * 0.25f) * ge[i];
e_sum += e[i++];
@ -280,13 +316,13 @@ LC3_HOT static void compute_scale_factors(
e_sum += e[i++];
}
e[LC3_NUM_BANDS-1] = (e0 * 0.25f + e1 * 0.75f) * ge[LC3_NUM_BANDS-1];
e_sum += e[LC3_NUM_BANDS-1];
e[LC3_MAX_BANDS-1] = (e0 * 0.25f + e1 * 0.75f) * ge[LC3_MAX_BANDS-1];
e_sum += e[LC3_MAX_BANDS-1];
float noise_floor = fmaxf(e_sum * (1e-4f / 64), 0x1p-32f);
for (int i = 0; i < LC3_NUM_BANDS; i++)
e[i] = fast_log2f(fmaxf(e[i], noise_floor)) * 0.5f;
for (int i = 0; i < LC3_MAX_BANDS; i++)
e[i] = lc3_log2f(fmaxf(e[i], noise_floor)) * 0.5f;
/* --- Grouping & scaling --- */
@ -309,8 +345,13 @@ LC3_HOT static void compute_scale_factors(
(e[61] + e[62]) * 3.f/12 ;
scf_sum += scf[15];
float cf = lc3_hr(sr) ? 0.6f : 0.85f;
if (lc3_hr(sr) && 8 * nbytes >
(dt < LC3_DT_10M ? 1150 * (int)(1 + dt) : 4400))
cf *= dt < LC3_DT_10M ? 0.25f : 0.35f;
for (int i = 0; i < 16; i++)
scf[i] = 0.85f * (scf[i] - scf_sum * 1.f/16);
scf[i] = cf * (scf[i] - scf_sum * 1.f/16);
/* --- Attack handling --- */
@ -506,12 +547,12 @@ LC3_HOT static void quantize(const float *scf, int lfcb_idx, int hfcb_idx,
/* --- Determe shape & gain index ---
* Search the Mean Square Error, within (shape, gain) combinations */
float mse_min = INFINITY;
float mse_min = FLT_MAX;
*shape_idx = *gain_idx = 0;
for (int ic = 0; ic < 4; ic++) {
const struct lc3_sns_vq_gains *cgains = lc3_sns_vq_gains + ic;
float cmse_min = INFINITY;
float cmse_min = FLT_MAX;
int cgain_idx = 0;
for (int ig = 0; ig < cgains->count; ig++) {
@ -564,25 +605,27 @@ LC3_HOT static void unquantize(int lfcb_idx, int hfcb_idx,
*/
static void enum_mvpq(const int *c, int n, int *idx, bool *ls)
{
int ci, i, j;
int ci, i;
/* --- Scan for 1st significant coeff --- */
for (i = 0, c += n; (ci = *(--c)) == 0 ; i++);
for (i = 0, c += n; (ci = *(--c)) == 0 && i < 15; i++);
*idx = 0;
*ls = ci < 0;
/* --- Scan remaining coefficients --- */
for (i++, j = LC3_ABS(ci); i < n; i++, j += LC3_ABS(ci)) {
unsigned j = LC3_ABS(ci);
for (i++; i < n; i++, j += LC3_ABS(ci)) {
if ((ci = *(--c)) != 0) {
*idx = (*idx << 1) | *ls;
*ls = ci < 0;
}
*idx += lc3_sns_mpvq_offsets[i][j];
*idx += lc3_sns_mpvq_offsets[i][LC3_MIN(j, 10)];
}
}
@ -680,7 +723,7 @@ LC3_HOT static void spectral_shaping(enum lc3_dt dt, enum lc3_srate sr,
{
/* --- Interpolate scale factors --- */
float scf[LC3_NUM_BANDS];
float scf[LC3_MAX_BANDS];
float s0, s1 = inv ? -scf_q[0] : scf_q[0];
scf[0] = scf[1] = s1;
@ -694,21 +737,25 @@ LC3_HOT static void spectral_shaping(enum lc3_dt dt, enum lc3_srate sr,
scf[62] = s1 + 0.125f * (s1 - s0);
scf[63] = s1 + 0.375f * (s1 - s0);
int nb = LC3_MIN(lc3_band_lim[dt][sr][LC3_NUM_BANDS], LC3_NUM_BANDS);
int n2 = LC3_NUM_BANDS - nb;
int nb = lc3_num_bands[dt][sr];
int n4 = nb < 32 ? 32 % nb : 0;
int n2 = nb < 32 ? nb - n4 : LC3_MAX_BANDS - nb;
for (int i2 = 0; i2 < n2; i2++)
scf[i2] = 0.5f * (scf[2*i2] + scf[2*i2+1]);
for (int i4 = 0; i4 < n4; i4++)
scf[i4] = 0.25f * (scf[4*i4+0] + scf[4*i4+1] +
scf[4*i4+2] + scf[4*i4+3]);
if (n2 > 0)
memmove(scf + n2, scf + 2*n2, (nb - n2) * sizeof(float));
for (int i2 = n4; i2 < n4+n2; i2++)
scf[i2] = 0.5f * (scf[2*(n4+i2)] + scf[2*(n4+i2)+1]);
memmove(scf + n4 + n2, scf + 4*n4 + 2*n2, (nb - n4 - n2) * sizeof(float));
/* --- Spectral shaping --- */
const int *lim = lc3_band_lim[dt][sr];
for (int i = 0, ib = 0; ib < nb; ib++) {
float g_sns = fast_exp2f(-scf[ib]);
float g_sns = lc3_exp2f(-scf[ib]);
for ( ; i < lim[ib+1]; i++)
y[i] = x[i] * g_sns;
@ -723,7 +770,8 @@ LC3_HOT static void spectral_shaping(enum lc3_dt dt, enum lc3_srate sr,
/**
* SNS analysis
*/
void lc3_sns_analyze(enum lc3_dt dt, enum lc3_srate sr,
void lc3_sns_analyze(
enum lc3_dt dt, enum lc3_srate sr, int nbytes,
const float *eb, bool att, struct lc3_sns_data *data,
const float *x, float *y)
{
@ -737,7 +785,7 @@ void lc3_sns_analyze(enum lc3_dt dt, enum lc3_srate sr,
float scf[16], cn[4][16];
int c[4][16];
compute_scale_factors(dt, sr, eb, att, scf);
compute_scale_factors(dt, sr, nbytes, eb, att, scf);
resolve_codebooks(scf, &data->lfcb, &data->hfcb);
@ -756,7 +804,8 @@ void lc3_sns_analyze(enum lc3_dt dt, enum lc3_srate sr,
/**
* SNS synthesis
*/
void lc3_sns_synthesize(enum lc3_dt dt, enum lc3_srate sr,
void lc3_sns_synthesize(
enum lc3_dt dt, enum lc3_srate sr,
const lc3_sns_data_t *data, const float *x, float *y)
{
float scf[16], cn[16];

View File

@ -16,13 +16,6 @@
*
******************************************************************************/
/**
* LC3 - Spectral Noise Shaping
*
* Reference : Low Complexity Communication Codec (LC3)
* Bluetooth Specification v1.0
*/
#ifndef __LC3_SNS_H
#define __LC3_SNS_H
@ -49,6 +42,7 @@ typedef struct lc3_sns_data {
/**
* SNS analysis
* dt, sr Duration and samplerate of the frame
* nbytes Size in bytes of the frame
* eb Energy estimation per bands, and count of bands
* att 1: Attack detected 0: Otherwise
* data Return bitstream data
@ -57,7 +51,8 @@ typedef struct lc3_sns_data {
*
* `x` and `y` can be the same buffer
*/
void lc3_sns_analyze(enum lc3_dt dt, enum lc3_srate sr,
void lc3_sns_analyze(
enum lc3_dt dt, enum lc3_srate sr, int nbytes,
const float *eb, bool att, lc3_sns_data_t *data,
const float *x, float *y);

View File

@ -32,45 +32,114 @@
*/
static int resolve_gain_offset(enum lc3_srate sr, int nbytes)
{
int g_off = (nbytes * 8) / (10 * (1 + sr));
return 105 + 5*(1 + sr) + LC3_MIN(g_off, 115);
int sr_ind = lc3_hr(sr) ? 4 + (sr - LC3_SRATE_48K_HR) : sr;
int g_off = (nbytes * 8) / (10 * (1 + sr_ind));
return LC3_MIN(sr >= LC3_SRATE_96K_HR ? 181 : 255,
105 + 5*(1 + sr_ind) + LC3_MIN(g_off, 115));
}
/**
* Unquantize gain
* g_int Quantization gain value
* return Unquantized gain value
*/
static float unquantize_gain(int g_int)
{
/* Unquantization gain table :
* G[i] = 10 ^ (i / 28) , i = [0..27] */
static const float iq_table[] = {
1.00000000e+00, 1.08571112e+00, 1.17876863e+00, 1.27980221e+00,
1.38949549e+00, 1.50859071e+00, 1.63789371e+00, 1.77827941e+00,
1.93069773e+00, 2.09617999e+00, 2.27584593e+00, 2.47091123e+00,
2.68269580e+00, 2.91263265e+00, 3.16227766e+00, 3.43332002e+00,
3.72759372e+00, 4.04708995e+00, 4.39397056e+00, 4.77058270e+00,
5.17947468e+00, 5.62341325e+00, 6.10540230e+00, 6.62870316e+00,
7.19685673e+00, 7.81370738e+00, 8.48342898e+00, 9.21055318e+00
};
float g = 1.f;
for ( ; g_int < 0; g_int += 28, g *= 0.1f);
for ( ; g_int >= 28; g_int -= 28, g *= 10.f);
return g * iq_table[g_int];
}
/**
* Global Gain Estimation
* dt, sr Duration and samplerate of the frame
* x Spectral coefficients
* nbytes Size of the frame
* nbits_budget Number of bits available coding the spectrum
* nbits_off Offset on the available bits, temporarily smoothed
* g_off Gain index offset
* reset_off Return True when the nbits_off must be reset
* g_min Return lower bound of quantized gain value
* return The quantized gain value
*/
LC3_HOT static int estimate_gain(
enum lc3_dt dt, enum lc3_srate sr, const float *x,
int nbits_budget, float nbits_off, int g_off, bool *reset_off)
int nbytes, int nbits_budget, float nbits_off, int g_off,
bool *reset_off, int *g_min)
{
int ne = LC3_NE(dt, sr) >> 2;
int e[ne];
int n4 = lc3_ne(dt, sr) / 4;
union { float f; int32_t q16; } e[LC3_MAX_NE / 4];
/* --- Signal adaptative noise floor --- */
int reg_bits = 0;
float low_bits = 0;
if (lc3_hr(sr)) {
int reg_c = (const int [LC3_NUM_DT][LC3_NUM_SRATE - LC3_SRATE_48K_HR]){
[LC3_DT_2M5] = { -6, -6 },
[LC3_DT_5M ] = { 0, 0 },
[LC3_DT_10M] = { 2, 5 }
}[dt][sr - LC3_SRATE_48K_HR];
reg_bits = (8*nbytes * 4) / (125 * (1 + dt));
reg_bits = LC3_CLIP(reg_bits + reg_c, 6, 23);
float m0 = 1e-5f, m1 = 1e-5f, k = 0;
for (int i = 0; i < n4; i++) {
m0 += fabsf(x[4*i + 0]), m1 += fabsf(x[4*i + 0]) * k++;
m0 += fabsf(x[4*i + 1]), m1 += fabsf(x[4*i + 1]) * k++;
m0 += fabsf(x[4*i + 2]), m1 += fabsf(x[4*i + 2]) * k++;
m0 += fabsf(x[4*i + 3]), m1 += fabsf(x[4*i + 3]) * k++;
}
int m = roundf((1.6f * m0) / ((1 + dt) * m1));
low_bits = 8 - LC3_MIN(m, 8);
}
/* --- Energy (dB) by 4 MDCT blocks --- */
float x2_max = 0;
for (int i = 0; i < ne; i++, x += 4) {
float x0 = x[0] * x[0];
float x1 = x[1] * x[1];
float x2 = x[2] * x[2];
float x3 = x[3] * x[3];
for (int i = 0; i < n4; i++) {
float x0 = x[4*i + 0] * x[4*i + 0];
float x1 = x[4*i + 1] * x[4*i + 1];
float x2 = x[4*i + 2] * x[4*i + 2];
float x3 = x[4*i + 3] * x[4*i + 3];
x2_max = fmaxf(x2_max, x0);
x2_max = fmaxf(x2_max, x1);
x2_max = fmaxf(x2_max, x2);
x2_max = fmaxf(x2_max, x3);
e[i] = fast_db_q16(fmaxf(x0 + x1 + x2 + x3, 1e-10f));
e[i].f = x0 + x1 + x2 + x3;
}
float x_max = sqrtf(x2_max);
float nf = lc3_hr(sr) ?
lc3_ldexpf(x_max, -reg_bits) * lc3_exp2f(-low_bits) : 0;
for (int i = 0; i < n4; i++)
e[i].q16 = lc3_db_q16(fmaxf(e[i].f + nf, 1e-10f));
/* --- Determine gain index --- */
int nbits = nbits_budget + nbits_off + 0.5f;
@ -80,14 +149,14 @@ LC3_HOT static int estimate_gain(
const int k_2u7 = 2.7f * 0x1p16f + 0.5f;
const int k_1u4 = 1.4f * 0x1p16f + 0.5f;
for (int i = 128, j, j0 = ne-1, j1 ; i > 0; i >>= 1) {
for (int i = 128, j, j0 = n4-1, j1 ; i > 0; i >>= 1) {
int gn = (g_int - i) * k_20_28;
int v = 0;
for (j = j0; j >= 0 && e[j] < gn; j--);
for (j = j0; j >= 0 && e[j].q16 < gn; j--);
for (j1 = j; j >= 0; j--) {
int e_diff = e[j] - gn;
int e_diff = e[j].q16 - gn;
v += e_diff < 0 ? k_2u7 :
e_diff < 43 << 16 ? e_diff + ( 7 << 16)
@ -102,32 +171,39 @@ LC3_HOT static int estimate_gain(
/* --- Limit gain index --- */
int g_min = x2_max == 0 ? -g_off :
ceilf(28 * log10f(sqrtf(x2_max) / (32768 - 0.375f)));
float x_lim = lc3_hr(sr) ? 0x7fffp8f : 0x7fffp0f;
*reset_off = g_int < g_min || x2_max == 0;
*g_min = 255 - g_off;
for (int i = 128 ; i > 0; i >>= 1)
if (x_lim * unquantize_gain(*g_min - i) > x_max)
*g_min -= i;
*reset_off = g_int < *g_min || x_max == 0;
if (*reset_off)
g_int = g_min;
g_int = *g_min;
return g_int;
}
/**
* Global Gain Adjustment
* sr Samplerate of the frame
* dt, sr Duration and samplerate of the frame
* g_idx The estimated quantized gain index
* nbits Computed number of bits coding the spectrum
* nbits_budget Number of bits available for coding the spectrum
* g_idx_min Minimum gain index value
* return Gain adjust value (-1 to 2)
*/
LC3_HOT static int adjust_gain(
enum lc3_srate sr, int g_idx, int nbits, int nbits_budget)
enum lc3_dt dt, enum lc3_srate sr,
int g_idx, int nbits, int nbits_budget, int g_idx_min)
{
/* --- Compute delta threshold --- */
const int *t = (const int [LC3_NUM_SRATE][3]){
{ 80, 500, 850 }, { 230, 1025, 1700 }, { 380, 1550, 2550 },
{ 530, 2075, 3400 }, { 680, 2600, 4250 }
{ 530, 2075, 3400 }, { 680, 2600, 4250 },
{ 680, 2600, 4250 }, { 830, 3125, 5100 }
}[sr];
int delta, den = 48;
@ -148,84 +224,46 @@ LC3_HOT static int adjust_gain(
/* --- Adjust gain --- */
if (nbits < nbits_budget - (delta + 2))
return -(g_idx > 0);
if (lc3_hr(sr) && nbits > nbits_budget) {
int factor = 1 + (dt <= LC3_DT_5M) +
(dt <= LC3_DT_2M5) * (1 + (nbits >= 520));
if (nbits > nbits_budget)
int g_incr = factor + (factor * (nbits - nbits_budget)) / delta;
return LC3_MIN(g_idx + g_incr, 255) - g_idx;
}
if (!lc3_hr(sr) && nbits < nbits_budget - (delta + 2))
return -(g_idx > g_idx_min);
if (!lc3_hr(sr) && nbits > nbits_budget)
return (g_idx < 255) + (g_idx < 254 && nbits >= nbits_budget + delta);
return 0;
}
/**
* Unquantize gain
* g_int Quantization gain value
* return Unquantized gain value
*/
static float unquantize_gain(int g_int)
{
/* Unquantization gain table :
* G[i] = 10 ^ (i / 28) , i = [0..64] */
static const float iq_table[] = {
1.00000000e+00, 1.08571112e+00, 1.17876863e+00, 1.27980221e+00,
1.38949549e+00, 1.50859071e+00, 1.63789371e+00, 1.77827941e+00,
1.93069773e+00, 2.09617999e+00, 2.27584593e+00, 2.47091123e+00,
2.68269580e+00, 2.91263265e+00, 3.16227766e+00, 3.43332002e+00,
3.72759372e+00, 4.04708995e+00, 4.39397056e+00, 4.77058270e+00,
5.17947468e+00, 5.62341325e+00, 6.10540230e+00, 6.62870316e+00,
7.19685673e+00, 7.81370738e+00, 8.48342898e+00, 9.21055318e+00,
1.00000000e+01, 1.08571112e+01, 1.17876863e+01, 1.27980221e+01,
1.38949549e+01, 1.50859071e+01, 1.63789371e+01, 1.77827941e+01,
1.93069773e+01, 2.09617999e+01, 2.27584593e+01, 2.47091123e+01,
2.68269580e+01, 2.91263265e+01, 3.16227766e+01, 3.43332002e+01,
3.72759372e+01, 4.04708995e+01, 4.39397056e+01, 4.77058270e+01,
5.17947468e+01, 5.62341325e+01, 6.10540230e+01, 6.62870316e+01,
7.19685673e+01, 7.81370738e+01, 8.48342898e+01, 9.21055318e+01,
1.00000000e+02, 1.08571112e+02, 1.17876863e+02, 1.27980221e+02,
1.38949549e+02, 1.50859071e+02, 1.63789371e+02, 1.77827941e+02,
1.93069773e+02
};
float g = iq_table[LC3_ABS(g_int) & 0x3f];
for(int n64 = LC3_ABS(g_int) >> 6; n64--; )
g *= iq_table[64];
return g_int >= 0 ? g : 1 / g;
}
/**
* Spectrum quantization
* dt, sr Duration and samplerate of the frame
* g_int Quantization gain value
* x Spectral coefficients, scaled as output
* xq, nq Output spectral quantized coefficients, and count
*
* The spectral coefficients `xq` are stored as :
* b0 0:positive or zero 1:negative
* b15..b1 Absolute value
* n Return count of significants
*/
LC3_HOT static void quantize(enum lc3_dt dt, enum lc3_srate sr,
int g_int, float *x, uint16_t *xq, int *nq)
LC3_HOT static void quantize(
enum lc3_dt dt, enum lc3_srate sr, int g_int, float *x, int *n)
{
float g_inv = 1 / unquantize_gain(g_int);
int ne = LC3_NE(dt, sr);
float g_inv = unquantize_gain(-g_int);
int ne = lc3_ne(dt, sr);
*nq = ne;
*n = ne;
for (int i = 0; i < ne; i += 2) {
uint16_t x0, x1;
float xq_min = lc3_hr(sr) ? 0.5f : 10.f/16;
x[i+0] *= g_inv;
x[i+1] *= g_inv;
x0 = fminf(fabsf(x[i+0]) + 6.f/16, INT16_MAX);
x1 = fminf(fabsf(x[i+1]) + 6.f/16, INT16_MAX);
xq[i+0] = (x0 << 1) + ((x0 > 0) & (x[i+0] < 0));
xq[i+1] = (x1 << 1) + ((x1 > 0) & (x[i+1] < 0));
*nq = x0 || x1 ? ne : *nq - 2;
*n = fabsf(x[i+0]) >= xq_min ||
fabsf(x[i+1]) >= xq_min ? ne : *n - 2;
}
}
@ -236,11 +274,12 @@ LC3_HOT static void quantize(enum lc3_dt dt, enum lc3_srate sr,
* x, nq Spectral quantized, and count of significants
* return Unquantized gain value
*/
LC3_HOT static float unquantize(enum lc3_dt dt, enum lc3_srate sr,
LC3_HOT static float unquantize(
enum lc3_dt dt, enum lc3_srate sr,
int g_int, float *x, int nq)
{
float g = unquantize_gain(g_int);
int i, ne = LC3_NE(dt, sr);
int i, ne = lc3_ne(dt, sr);
for (i = 0; i < nq; i++)
x[i] = x[i] * g;
@ -257,13 +296,19 @@ LC3_HOT static float unquantize(enum lc3_dt dt, enum lc3_srate sr,
* -------------------------------------------------------------------------- */
/**
* Resolve High-bitrate mode according size of the frame
* Resolve High-bitrate and LSB modes according size of the frame
* sr, nbytes Samplerate and size of the frame
* p_lsb_mode True when LSB mode allowed, when not NULL
* return True when High-Rate mode enabled
*/
static int resolve_high_rate(enum lc3_srate sr, int nbytes)
static bool resolve_modes(enum lc3_srate sr, int nbytes, bool *p_lsb_mode)
{
return nbytes > 20 * (1 + (int)sr);
int sr_ind = lc3_hr(sr) ? 4 + (sr - LC3_SRATE_48K_HR) : sr;
if (p_lsb_mode)
*p_lsb_mode = (nbytes >= 20 * (3 + sr_ind)) && (sr < LC3_SRATE_96K_HR);
return (nbytes > 20 * (1 + sr_ind)) && (sr < LC3_SRATE_96K_HR);
}
/**
@ -274,21 +319,13 @@ static int resolve_high_rate(enum lc3_srate sr, int nbytes)
* nbits_budget Truncate to stay in budget, when not zero
* p_lsb_mode Return True when LSB's are not AC coded, or NULL
* return The number of bits coding the spectrum
*
* The spectral coefficients `x` storage is :
* b0 0:positive or zero 1:negative
* b15..b1 Absolute value
*/
LC3_HOT static int compute_nbits(
enum lc3_dt dt, enum lc3_srate sr, int nbytes,
const uint16_t *x, int *n, int nbits_budget, bool *p_lsb_mode)
const float *x, int *n, int nbits_budget, bool *p_lsb_mode)
{
int ne = LC3_NE(dt, sr);
/* --- Mode and rate --- */
bool lsb_mode = nbytes >= 20 * (3 + (int)sr);
bool high_rate = resolve_high_rate(sr, nbytes);
bool lsb_mode, high_rate = resolve_modes(sr, nbytes, &lsb_mode);
int ne = lc3_ne(dt, sr);
/* --- Loop on quantized coefficients --- */
@ -306,12 +343,15 @@ LC3_HOT static int compute_nbits(
for ( ; i < LC3_MIN(*n, (ne + 2) >> (1 - h))
&& nbits <= nbits_budget; i += 2) {
float xq_off = lc3_hr(sr) ? 0.5f : 6.f/16;
uint32_t a = fabsf(x[i+0]) + xq_off;
uint32_t b = fabsf(x[i+1]) + xq_off;
const uint8_t *lut = lut_coeff[state];
uint16_t a = x[i] >> 1, b = x[i+1] >> 1;
/* --- Sign values --- */
int s = (a > 0) + (b > 0);
int s = (a != 0) + (b != 0);
nbits += s * 2048;
/* --- LSB values Reduce to 2*2 bits MSB values ---
@ -320,8 +360,8 @@ LC3_HOT static int compute_nbits(
* The LSB mode does not arthmetic code the first LSB,
* add the sign of the LSB when one of pair was at value 1 */
int k = 0;
int m = (a | b) >> 2;
uint32_t m = (a | b) >> 2;
unsigned k = 0;
if (m) {
@ -373,19 +413,15 @@ LC3_HOT static int compute_nbits(
* Put quantized spectrum
* bits Bitstream context
* dt, sr, nbytes Duration, samplerate and size of the frame
* x Spectral quantized
* x Spectral quantized coefficients
* nq, lsb_mode Count of significants, and LSB discard indication
*
* The spectral coefficients `x` storage is :
* b0 0:positive or zero 1:negative
* b15..b1 Absolute value
*/
LC3_HOT static void put_quantized(lc3_bits_t *bits,
enum lc3_dt dt, enum lc3_srate sr, int nbytes,
const uint16_t *x, int nq, bool lsb_mode)
const float *x, int nq, bool lsb_mode)
{
int ne = LC3_NE(dt, sr);
bool high_rate = resolve_high_rate(sr, nbytes);
bool high_rate = resolve_modes(sr, nbytes, NULL);
int ne = lc3_ne(dt, sr);
/* --- Loop on quantized coefficients --- */
@ -396,16 +432,19 @@ LC3_HOT static void put_quantized(lc3_bits_t *bits,
for ( ; i < LC3_MIN(nq, (ne + 2) >> (1 - h)); i += 2) {
float xq_off = lc3_hr(sr) ? 0.5f : 6.f/16;
uint32_t a = fabsf(x[i+0]) + xq_off;
uint32_t b = fabsf(x[i+1]) + xq_off;
const uint8_t *lut = lut_coeff[state];
uint16_t a = x[i] >> 1, b = x[i+1] >> 1;
/* --- LSB values Reduce to 2*2 bits MSB values ---
* Reduce to 2x2 bits MSB values. The LSB's pair are arithmetic
* coded with an escape code and 1 bits for each values.
* The LSB mode discard the first LSB (at this step) */
int m = (a | b) >> 2;
int k = 0, shr = 0;
uint32_t m = (a | b) >> 2;
unsigned k = 0, shr = 0;
if (m) {
@ -429,8 +468,8 @@ LC3_HOT static void put_quantized(lc3_bits_t *bits,
/* --- Sign values --- */
if (a) lc3_put_bit(bits, x[i+0] & 1);
if (b) lc3_put_bit(bits, x[i+1] & 1);
if (a) lc3_put_bit(bits, x[i+0] < 0);
if (b) lc3_put_bit(bits, x[i+1] < 0);
/* --- MSB values --- */
@ -451,18 +490,18 @@ LC3_HOT static void put_quantized(lc3_bits_t *bits,
* bits Bitstream context
* dt, sr, nbytes Duration, samplerate and size of the frame
* nq, lsb_mode Count of significants, and LSB discard indication
* xq Return `nq` spectral quantized coefficients
* x Return `nq` spectral quantized coefficients
* nf_seed Return the noise factor seed associated
* return 0: Ok -1: Invalid bitstream data
*/
LC3_HOT static int get_quantized(lc3_bits_t *bits,
enum lc3_dt dt, enum lc3_srate sr, int nbytes,
int nq, bool lsb_mode, float *xq, uint16_t *nf_seed)
int nq, bool lsb_mode, float *x, uint16_t *nf_seed)
{
int ne = LC3_NE(dt, sr);
bool high_rate = resolve_high_rate(sr, nbytes);
bool high_rate = resolve_modes(sr, nbytes, NULL);
int ne = lc3_ne(dt, sr);
*nf_seed = 0;
*nf_seed = 0;
/* --- Loop on quantized coefficients --- */
@ -474,6 +513,7 @@ LC3_HOT static int get_quantized(lc3_bits_t *bits,
for ( ; i < LC3_MIN(nq, (ne + 2) >> (1 - h)); i += 2) {
const uint8_t *lut = lut_coeff[state];
int max_shl = lc3_hr(sr) ? 22 : 14;
/* --- LSB values ---
* Until the symbol read indicates the escape value 16,
@ -490,7 +530,7 @@ LC3_HOT static int get_quantized(lc3_bits_t *bits,
shl++;
}
for ( ; s >= 16 && shl < 14; shl++) {
for ( ; s >= 16 && shl < max_shl; shl++) {
u |= lc3_get_bit(bits) << shl;
v |= lc3_get_bit(bits) << shl;
@ -509,10 +549,11 @@ LC3_HOT static int get_quantized(lc3_bits_t *bits,
u |= a << shl;
v |= b << shl;
xq[i ] = u && lc3_get_bit(bits) ? -u : u;
xq[i+1] = v && lc3_get_bit(bits) ? -v : v;
x[i+0] = u && lc3_get_bit(bits) ? -u : u;
x[i+1] = v && lc3_get_bit(bits) ? -v : v;
*nf_seed = (*nf_seed + u * i + v * (i+1)) & 0xffff;
*nf_seed = (*nf_seed + (u & 0x7fff) * (i )
+ (v & 0x7fff) * (i+1)) & 0xffff;
/* --- Update state --- */
@ -527,25 +568,30 @@ LC3_HOT static int get_quantized(lc3_bits_t *bits,
* Put residual bits of quantization
* bits Bitstream context
* nbits Maximum number of bits to output
* hrmode High-Resolution mode
* x, n Spectral quantized, and count of significants
* xf Scaled spectral coefficients
*
* The spectral coefficients `x` storage is :
* b0 0:positive or zero 1:negative
* b15..b1 Absolute value
*/
LC3_HOT static void put_residual(
lc3_bits_t *bits, int nbits, const uint16_t *x, int n, const float *xf)
LC3_HOT static void put_residual(lc3_bits_t *bits,
int nbits, bool hrmode, float *x, int n)
{
for (int i = 0; i < n && nbits > 0; i++) {
float xq_lim = hrmode ? 0.5f : 10.f/16;
float xq_off = xq_lim / 2;
if (x[i] == 0)
continue;
for (int iter = 0; iter < (hrmode ? 20 : 1) && nbits > 0; iter++) {
for (int i = 0; i < n && nbits > 0; i++) {
float xq = x[i] & 1 ? -(x[i] >> 1) : (x[i] >> 1);
float xr = fabsf(x[i]);
if (xr < xq_lim)
continue;
lc3_put_bit(bits, xf[i] >= xq);
nbits--;
bool b = (xr - truncf(xr) < xq_lim) ^ (x[i] < 0);
lc3_put_bit(bits, b);
nbits--;
x[i] += b ? -xq_off : xq_off;
}
xq_off *= xq_lim;
}
}
@ -553,22 +599,31 @@ LC3_HOT static void put_residual(
* Get residual bits of quantization
* bits Bitstream context
* nbits Maximum number of bits to output
* hrmode High-Resolution mode
* x, nq Spectral quantized, and count of significants
*/
LC3_HOT static void get_residual(
lc3_bits_t *bits, int nbits, float *x, int nq)
LC3_HOT static void get_residual(lc3_bits_t *bits,
int nbits, bool hrmode, float *x, int n)
{
for (int i = 0; i < nq && nbits > 0; i++) {
float xq_off_1 = hrmode ? 0.25f : 5.f/16;
float xq_off_2 = hrmode ? 0.25f : 3.f/16;
if (x[i] == 0)
continue;
for (int iter = 0; iter < (hrmode ? 20 : 1) && nbits > 0; iter++) {
for (int i = 0; i < n && nbits > 0; i++) {
if (lc3_get_bit(bits) == 0)
x[i] -= x[i] < 0 ? 5.f/16 : 3.f/16;
else
x[i] += x[i] > 0 ? 5.f/16 : 3.f/16;
if (x[i] == 0)
continue;
nbits--;
if (lc3_get_bit(bits) == 0)
x[i] -= x[i] < 0 ? xq_off_1 : xq_off_2;
else
x[i] += x[i] > 0 ? xq_off_1 : xq_off_2;
nbits--;
}
xq_off_1 *= 0.5f;
xq_off_2 *= 0.5f;
}
}
@ -576,18 +631,17 @@ LC3_HOT static void get_residual(
* Put LSB values of quantized spectrum values
* bits Bitstream context
* nbits Maximum number of bits to output
* hrmode High-Resolution mode
* x, n Spectral quantized, and count of significants
*
* The spectral coefficients `x` storage is :
* b0 0:positive or zero 1:negative
* b15..b1 Absolute value
*/
LC3_HOT static void put_lsb(
lc3_bits_t *bits, int nbits, const uint16_t *x, int n)
LC3_HOT static void put_lsb(lc3_bits_t *bits,
int nbits, bool hrmode, const float *x, int n)
{
for (int i = 0; i < n && nbits > 0; i += 2) {
uint16_t a = x[i] >> 1, b = x[i+1] >> 1;
int a_neg = x[i] & 1, b_neg = x[i+1] & 1;
float xq_off = hrmode ? 0.5f : 6.f/16;
uint32_t a = fabsf(x[i+0]) + xq_off;
uint32_t b = fabsf(x[i+1]) + xq_off;
if ((a | b) >> 2 == 0)
continue;
@ -596,13 +650,13 @@ LC3_HOT static void put_lsb(
lc3_put_bit(bits, a & 1);
if (a == 1 && nbits-- > 0)
lc3_put_bit(bits, a_neg);
lc3_put_bit(bits, x[i+0] < 0);
if (nbits-- > 0)
lc3_put_bit(bits, b & 1);
if (b == 1 && nbits-- > 0)
lc3_put_bit(bits, b_neg);
lc3_put_bit(bits, x[i+1] < 0);
}
}
@ -653,34 +707,31 @@ LC3_HOT static void get_lsb(lc3_bits_t *bits,
/**
* Estimate noise level
* dt, bw Duration and bandwidth of the frame
* xq, nq Quantized spectral coefficients
* x Quantization scaled spectrum coefficients
* hrmode High-Resolution mode
* x, n Spectral quantized, and count of significants
* return Noise factor (0 to 7)
*
* The spectral coefficients `x` storage is :
* b0 0:positive or zero 1:negative
* b15..b1 Absolute value
*/
LC3_HOT static int estimate_noise(enum lc3_dt dt, enum lc3_bandwidth bw,
const uint16_t *xq, int nq, const float *x)
LC3_HOT static int estimate_noise(
enum lc3_dt dt, enum lc3_bandwidth bw, bool hrmode, const float *x, int n)
{
int bw_stop = (dt == LC3_DT_7M5 ? 60 : 80) * (1 + bw);
int w = 2 + dt;
int bw_stop = lc3_ne(dt, (enum lc3_srate)LC3_MIN(bw, LC3_BANDWIDTH_FB));
int w = 1 + (dt >= LC3_DT_7M5) + (dt>= LC3_DT_10M);
float xq_lim = hrmode ? 0.5f : 10.f/16;
float sum = 0;
int i, n = 0, z = 0;
int i, ns = 0, z = 0;
for (i = 6*(3 + dt) - w; i < LC3_MIN(nq, bw_stop); i++) {
z = xq[i] ? 0 : z + 1;
for (i = 6 * (1 + dt) - w; i < LC3_MIN(n, bw_stop); i++) {
z = fabsf(x[i]) < xq_lim ? z + 1 : 0;
if (z > 2*w)
sum += fabsf(x[i - w]), n++;
sum += fabsf(x[i - w]), ns++;
}
for ( ; i < bw_stop + w; i++)
if (++z > 2*w)
sum += fabsf(x[i - w]), n++;
sum += fabsf(x[i - w]), ns++;
int nf = n ? 8 - (int)((16 * sum) / n + 0.5f) : 0;
int nf = ns ? 8 - (int)((16 * sum) / ns + 0.5f) : 8;
return LC3_CLIP(nf, 0, 7);
}
@ -695,13 +746,13 @@ LC3_HOT static int estimate_noise(enum lc3_dt dt, enum lc3_bandwidth bw,
LC3_HOT static void fill_noise(enum lc3_dt dt, enum lc3_bandwidth bw,
int nf, uint16_t nf_seed, float g, float *x, int nq)
{
int bw_stop = (dt == LC3_DT_7M5 ? 60 : 80) * (1 + bw);
int w = 2 + dt;
int bw_stop = lc3_ne(dt, (enum lc3_srate)LC3_MIN(bw, LC3_BANDWIDTH_FB));
int w = 1 + (dt >= LC3_DT_7M5) + (dt>= LC3_DT_10M);
float s = g * (float)(8 - nf) / 16;
int i, z = 0;
for (i = 6*(3 + dt) - w; i < LC3_MIN(nq, bw_stop); i++) {
for (i = 6 * (1 + dt) - w; i < LC3_MIN(nq, bw_stop); i++) {
z = x[i] ? 0 : z + 1;
if (z > 2*w) {
nf_seed = (13849 + nf_seed*31821) & 0xffff;
@ -743,13 +794,13 @@ static int get_noise_factor(lc3_bits_t *bits)
/**
* Bit consumption of the number of coded coefficients
* dt, sr Duration, samplerate of the frame
* dt, sr, nbytes Duration, samplerate and size of the frame
* return Bit consumpution of the number of coded coefficients
*/
static int get_nbits_nq(enum lc3_dt dt, enum lc3_srate sr)
{
int ne = LC3_NE(dt, sr);
return 4 + (ne > 32) + (ne > 64) + (ne > 128) + (ne > 256);
int ne = lc3_ne(dt, sr);
return 4 + (ne > 32) + (ne > 64) + (ne > 128) + (ne > 256) + (ne > 512);
}
/**
@ -759,16 +810,18 @@ static int get_nbits_nq(enum lc3_dt dt, enum lc3_srate sr)
*/
static int get_nbits_ac(enum lc3_dt dt, enum lc3_srate sr, int nbytes)
{
return get_nbits_nq(dt, sr) + 3 + LC3_MIN((nbytes-1) / 160, 2);
return get_nbits_nq(dt, sr) +
3 + lc3_hr(sr) + LC3_MIN((nbytes-1) / 160, 2);
}
/**
* Spectrum analysis
*/
void lc3_spec_analyze(enum lc3_dt dt, enum lc3_srate sr,
int nbytes, bool pitch, const lc3_tns_data_t *tns,
struct lc3_spec_analysis *spec, float *x,
uint16_t *xq, struct lc3_spec_side *side)
void lc3_spec_analyze(
enum lc3_dt dt, enum lc3_srate sr, int nbytes,
bool pitch, const lc3_tns_data_t *tns,
struct lc3_spec_analysis *spec,
float *x, struct lc3_spec_side *side)
{
bool reset_off;
@ -789,35 +842,37 @@ void lc3_spec_analyze(enum lc3_dt dt, enum lc3_srate sr,
int g_off = resolve_gain_offset(sr, nbytes);
int g_int = estimate_gain(dt, sr,
x, nbits_budget, nbits_off, g_off, &reset_off);
int g_min, g_int = estimate_gain(dt, sr,
x, nbytes, nbits_budget, nbits_off, g_off, &reset_off, &g_min);
/* --- Quantization --- */
quantize(dt, sr, g_int, x, xq, &side->nq);
quantize(dt, sr, g_int, x, &side->nq);
int nbits = compute_nbits(dt, sr, nbytes, xq, &side->nq, 0, NULL);
int nbits = compute_nbits(dt, sr, nbytes, x, &side->nq, 0, NULL);
spec->nbits_off = reset_off ? 0 : nbits_off;
spec->nbits_spare = reset_off ? 0 : nbits_budget - nbits;
/* --- Adjust gain and requantize --- */
int g_adj = adjust_gain(sr, g_int + g_off, nbits, nbits_budget);
int g_adj = adjust_gain(dt, sr,
g_off + g_int, nbits, nbits_budget, g_off + g_min);
if (g_adj)
quantize(dt, sr, g_adj, x, xq, &side->nq);
quantize(dt, sr, g_adj, x, &side->nq);
side->g_idx = g_int + g_adj + g_off;
nbits = compute_nbits(dt, sr, nbytes,
xq, &side->nq, nbits_budget, &side->lsb_mode);
x, &side->nq, nbits_budget, &side->lsb_mode);
}
/**
* Put spectral quantization side data
*/
void lc3_spec_put_side(lc3_bits_t *bits,
enum lc3_dt dt, enum lc3_srate sr, const struct lc3_spec_side *side)
enum lc3_dt dt, enum lc3_srate sr,
const struct lc3_spec_side *side)
{
int nbits_nq = get_nbits_nq(dt, sr);
@ -830,22 +885,22 @@ void lc3_spec_put_side(lc3_bits_t *bits,
* Encode spectral coefficients
*/
void lc3_spec_encode(lc3_bits_t *bits,
enum lc3_dt dt, enum lc3_srate sr, enum lc3_bandwidth bw, int nbytes,
const uint16_t *xq, const lc3_spec_side_t *side, const float *x)
enum lc3_dt dt, enum lc3_srate sr, enum lc3_bandwidth bw,
int nbytes, const lc3_spec_side_t *side, float *x)
{
bool lsb_mode = side->lsb_mode;
int nq = side->nq;
put_noise_factor(bits, estimate_noise(dt, bw, xq, nq, x));
put_noise_factor(bits, estimate_noise(dt, bw, lc3_hr(sr), x, nq));
put_quantized(bits, dt, sr, nbytes, xq, nq, lsb_mode);
put_quantized(bits, dt, sr, nbytes, x, nq, lsb_mode);
int nbits_left = lc3_get_bits_left(bits);
if (lsb_mode)
put_lsb(bits, nbits_left, xq, nq);
put_lsb(bits, nbits_left, lc3_hr(sr), x, nq);
else
put_residual(bits, nbits_left, xq, nq, x);
put_residual(bits, nbits_left, lc3_hr(sr), x, nq);
}
@ -860,7 +915,7 @@ int lc3_spec_get_side(lc3_bits_t *bits,
enum lc3_dt dt, enum lc3_srate sr, struct lc3_spec_side *side)
{
int nbits_nq = get_nbits_nq(dt, sr);
int ne = LC3_NE(dt, sr);
int ne = lc3_ne(dt, sr);
side->nq = (lc3_get_bits(bits, nbits_nq) + 1) << 1;
side->lsb_mode = lc3_get_bit(bits);
@ -892,7 +947,7 @@ int lc3_spec_decode(lc3_bits_t *bits,
if (lsb_mode)
get_lsb(bits, nbits_left, x, nq, &nf_seed);
else
get_residual(bits, nbits_left, x, nq);
get_residual(bits, nbits_left, lc3_hr(sr), x, nq);
int g_int = side->g_idx - resolve_gain_offset(sr, nbytes);
float g = unquantize(dt, sr, g_int, x, nq);

View File

@ -16,13 +16,6 @@
*
******************************************************************************/
/**
* LC3 - Spectral coefficients encoding/decoding
*
* Reference : Low Complexity Communication Codec (LC3)
* Bluetooth Specification v1.0
*/
#ifndef __LC3_SPEC_H
#define __LC3_SPEC_H
@ -53,15 +46,12 @@ typedef struct lc3_spec_side {
* pitch, tns Pitch present indication and TNS bistream data
* spec Context of analysis
* x Spectral coefficients, scaled as output
* xq, side Return quantization data
*
* The spectral coefficients `xq` storage is :
* b0 0:positive or zero 1:negative
* b15..b1 Absolute value
* side Return quantization data
*/
void lc3_spec_analyze(enum lc3_dt dt, enum lc3_srate sr,
int nbytes, bool pitch, const lc3_tns_data_t *tns,
lc3_spec_analysis_t *spec, float *x, uint16_t *xq, lc3_spec_side_t *side);
void lc3_spec_analyze(
enum lc3_dt dt, enum lc3_srate sr, int nbytes,
bool pitch, const lc3_tns_data_t *tns, lc3_spec_analysis_t *spec,
float *x, lc3_spec_side_t *side);
/**
* Put spectral quantization side data
@ -77,16 +67,11 @@ void lc3_spec_put_side(lc3_bits_t *bits,
* bits Bitstream context
* dt, sr, bw Duration, samplerate, bandwidth
* nbytes and size of the frame
* xq, side Quantization data
* x Scaled spectral coefficients
*
* The spectral coefficients `xq` storage is :
* b0 0:positive or zero 1:negative
* b15..b1 Absolute value
* side, x Quantization data, and scaled coefficients
*/
void lc3_spec_encode(lc3_bits_t *bits,
enum lc3_dt dt, enum lc3_srate sr, enum lc3_bandwidth bw, int nbytes,
const uint16_t *xq, const lc3_spec_side_t *side, const float *x);
enum lc3_dt dt, enum lc3_srate sr, enum lc3_bandwidth bw,
int nbytes, const lc3_spec_side_t *side, float *x);
/* ----------------------------------------------------------------------------
@ -112,8 +97,9 @@ int lc3_spec_get_side(lc3_bits_t *bits,
* x Spectral coefficients
* return 0: Ok -1: Invalid bitstream data
*/
int lc3_spec_decode(lc3_bits_t *bits, enum lc3_dt dt, enum lc3_srate sr,
enum lc3_bandwidth bw, int nbytes, const lc3_spec_side_t *side, float *x);
int lc3_spec_decode(lc3_bits_t *bits,
enum lc3_dt dt, enum lc3_srate sr, enum lc3_bandwidth bw,
int nbytes, const lc3_spec_side_t *side, float *x);
#endif /* __LC3_SPEC_H */

Some files were not shown because too many files have changed in this diff Show More