3rd-party/lc3-google: update codec
2
3rd-party/README.md
vendored
@ -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
@ -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
@ -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
@ -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
|
97
3rd-party/lc3-google/README.md
vendored
@ -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>
|
||||
```
|
||||
|
48
3rd-party/lc3-google/conformance/README.md
vendored
Normal 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)
|
||||
|
232
3rd-party/lc3-google/conformance/lc3plus_decode.html
vendored
Normal 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>
|
173
3rd-party/lc3-google/conformance/lc3plus_encdec.html
vendored
Normal 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>Δ<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>Δ<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>
|
173
3rd-party/lc3-google/conformance/lc3plus_encode.html
vendored
Normal 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>Δ<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>Δ<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>
|
107
3rd-party/lc3-google/conformance/lc3plus_hr_decode.html
vendored
Normal 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>
|
71
3rd-party/lc3-google/conformance/lc3plus_hr_encdec.html
vendored
Normal 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>
|
107
3rd-party/lc3-google/conformance/lc3plus_hr_encode.html
vendored
Normal 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>
|
338
3rd-party/lc3-google/conformance/lc3plus_hr_fallback.html
vendored
Normal 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>
|
6
3rd-party/lc3-google/conformance/lc3plus_hr_precision.html
vendored
Normal file
31
3rd-party/lc3-google/conformance/music_decode_10m.html
vendored
Normal 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>
|
31
3rd-party/lc3-google/conformance/music_decode_7m5.html
vendored
Normal 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>
|
42
3rd-party/lc3-google/conformance/music_encdec_10m.html
vendored
Normal 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>
|
42
3rd-party/lc3-google/conformance/music_encdec_7m5.html
vendored
Normal 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>
|
42
3rd-party/lc3-google/conformance/music_encode_10m.html
vendored
Normal 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>
|
42
3rd-party/lc3-google/conformance/music_encode_7m5.html
vendored
Normal 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>
|
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_decode_10.0ms_48kHz_300.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_decode_10.0ms_48kHz_500.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_decode_10.0ms_96kHz_300.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_decode_10.0ms_96kHz_500.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_decode_2.5ms_48kHz_400.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_decode_2.5ms_48kHz_672.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_decode_2.5ms_96kHz_400.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_decode_2.5ms_96kHz_672.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_decode_5.0ms_48kHz_400.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_decode_5.0ms_48kHz_600.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_decode_5.0ms_96kHz_400.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_decode_5.0ms_96kHz_600.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encdec_10.0ms_48kHz_300.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encdec_10.0ms_48kHz_500.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encdec_10.0ms_96kHz_300.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encdec_10.0ms_96kHz_500.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encdec_2.5ms_48kHz_400.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encdec_2.5ms_48kHz_672.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encdec_2.5ms_96kHz_400.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encdec_2.5ms_96kHz_672.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encdec_5.0ms_48kHz_400.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encdec_5.0ms_48kHz_600.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encdec_5.0ms_96kHz_400.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encdec_5.0ms_96kHz_600.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encode_10.0ms_48kHz_300.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encode_10.0ms_48kHz_500.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encode_10.0ms_96kHz_300.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encode_10.0ms_96kHz_500.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encode_2.5ms_48kHz_400.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encode_2.5ms_48kHz_672.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encode_2.5ms_96kHz_400.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encode_2.5ms_96kHz_672.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encode_5.0ms_48kHz_400.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encode_5.0ms_48kHz_600.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encode_5.0ms_96kHz_400.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
3rd-party/lc3-google/conformance/png_liblc3-hr-precision/thd+n_encode_5.0ms_96kHz_600.0kbps.png
vendored
Normal file
After Width: | Height: | Size: 41 KiB |
40
3rd-party/lc3-google/conformance/speech_decode_10m.html
vendored
Normal 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>
|
49
3rd-party/lc3-google/conformance/speech_decode_7m5.html
vendored
Normal 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>
|
49
3rd-party/lc3-google/conformance/speech_encdec_10m.html
vendored
Normal 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>
|
58
3rd-party/lc3-google/conformance/speech_encdec_7m5.html
vendored
Normal 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>
|
49
3rd-party/lc3-google/conformance/speech_encode_10m.html
vendored
Normal 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>
|
58
3rd-party/lc3-google/conformance/speech_encode_7m5.html
vendored
Normal 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
@ -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
@ -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
@ -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
|
238
3rd-party/lc3-google/include/lc3.h
vendored
@ -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
@ -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 */
|
79
3rd-party/lc3-google/include/lc3_private.h
vendored
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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)
|
3
3rd-party/lc3-google/python/meson.build
vendored
Normal 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
@ -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
@ -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
@ -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()
|
12
3rd-party/lc3-google/src/attdet.c
vendored
@ -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 --- */
|
||||
|
7
3rd-party/lc3-google/src/attdet.h
vendored
@ -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
|
||||
|
||||
|
2
3rd-party/lc3-google/src/bits.c
vendored
@ -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) {
|
||||
|
6
3rd-party/lc3-google/src/bits.h
vendored
@ -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
|
||||
|
65
3rd-party/lc3-google/src/bwdet.c
vendored
@ -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;
|
||||
}
|
||||
|
9
3rd-party/lc3-google/src/bwdet.h
vendored
@ -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
|
||||
|
72
3rd-party/lc3-google/src/common.h
vendored
@ -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,
|
||||
};
|
||||
|
||||
|
34
3rd-party/lc3-google/src/energy.c
vendored
@ -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];
|
||||
|
7
3rd-party/lc3-google/src/energy.h
vendored
@ -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
|
||||
|
||||
|
119
3rd-party/lc3-google/src/fastmath.h
vendored
@ -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 --- */
|
||||
|
||||
|
332
3rd-party/lc3-google/src/lc3.c
vendored
@ -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 --- */
|
||||
|
147
3rd-party/lc3-google/src/ltpf.c
vendored
@ -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](<pf->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);
|
||||
|
7
3rd-party/lc3-google/src/ltpf.h
vendored
@ -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
@ -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
|
93
3rd-party/lc3-google/src/mdct.c
vendored
@ -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);
|
||||
}
|
||||
|
17
3rd-party/lc3-google/src/mdct.h
vendored
@ -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
@ -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
|
3
3rd-party/lc3-google/src/plc.c
vendored
@ -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);
|
||||
|
7
3rd-party/lc3-google/src/plc.h
vendored
@ -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
|
||||
|
||||
|
281
3rd-party/lc3-google/src/sns.c
vendored
@ -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];
|
||||
|
11
3rd-party/lc3-google/src/sns.h
vendored
@ -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);
|
||||
|
||||
|
449
3rd-party/lc3-google/src/spec.c
vendored
@ -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);
|
||||
|
36
3rd-party/lc3-google/src/spec.h
vendored
@ -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 */
|
||||
|