├── .bazelrc ├── .bazelversion ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .pylintrc ├── .style.yapf ├── .vscode └── settings.json ├── BUILD ├── CONTRIBUTING.md ├── LICENSE ├── MANIFEST.in ├── README.md ├── WORKSPACE ├── _config.yml ├── models ├── bls2017.py ├── bmshj2018.py ├── hific │ ├── README.md │ ├── archs.py │ ├── colab.ipynb │ ├── configs.py │ ├── data.csv │ ├── evaluate.py │ ├── helpers.py │ ├── hific_test.py │ ├── model.py │ ├── requirements.txt │ └── train.py ├── lvac │ └── lvac.ipynb ├── ms2020.py ├── rdc │ └── README.md ├── tfci.py └── toy_sources │ ├── compression_model.py │ ├── ntc.py │ ├── ramp.py │ ├── sawbridge.py │ ├── sinusoid.py │ ├── sphere.py │ ├── toy_sources.ipynb │ └── vecvq.py ├── requirements.txt ├── results └── image_compression │ ├── README.md │ ├── kodak │ ├── MS-SSIM_sRGB_RGB │ │ ├── balle-2017-iclr-opt-mse.txt │ │ ├── balle-2017-iclr-opt-msssim.txt │ │ ├── balle-2017-iclr.txt │ │ ├── balle-2018-iclr-opt-mse.txt │ │ ├── balle-2018-iclr-opt-msssim.txt │ │ ├── balle-2018-iclr.txt │ │ ├── bpg420.txt │ │ ├── bpg444.txt │ │ ├── j2k-kdu5.txt │ │ ├── j2k-opj5.txt │ │ ├── johnston-2017-cvpr.txt │ │ ├── jpeg420.txt │ │ ├── klopp2018-bmvc.txt │ │ ├── minnen-2018-icip.txt │ │ ├── minnen-2018-neurips-opt-mse.txt │ │ ├── minnen-2018-neurips-opt-msssim.txt │ │ ├── rippel2017.txt │ │ ├── theis-2017-iclr.txt │ │ ├── toderici-2017-cvpr.txt │ │ └── webp.txt │ ├── MS-SSIM_sRGB_Y │ │ ├── balle-2017-iclr-opt-mse.txt │ │ ├── balle-2017-iclr-opt-msssim.txt │ │ ├── balle-2017-iclr.txt │ │ ├── balle-2018-iclr-opt-mse.txt │ │ ├── balle-2018-iclr-opt-msssim.txt │ │ ├── balle-2018-iclr.txt │ │ ├── bpg420.txt │ │ ├── bpg444.txt │ │ ├── j2k-kdu5.txt │ │ ├── j2k-opj5.txt │ │ ├── johnston-2017-cvpr.txt │ │ ├── jpeg420.txt │ │ ├── minnen-2018-icip.txt │ │ ├── minnen-2018-neurips-opt-mse.txt │ │ ├── minnen-2018-neurips-opt-msssim.txt │ │ └── webp.txt │ ├── PSNR_sRGB_RGB │ │ ├── balle-2017-iclr-opt-mse.txt │ │ ├── balle-2017-iclr-opt-msssim.txt │ │ ├── balle-2017-iclr.txt │ │ ├── balle-2018-iclr-opt-mse.txt │ │ ├── balle-2018-iclr-opt-msssim.txt │ │ ├── balle-2018-iclr.txt │ │ ├── bpg420.txt │ │ ├── bpg444.txt │ │ ├── j2k-kdu5.txt │ │ ├── j2k-opj5.txt │ │ ├── johnston-2017-cvpr.txt │ │ ├── jpeg420.txt │ │ ├── lee-2019-context-adaptive.txt │ │ ├── lee2019-iclr.txt │ │ ├── minnen-2017-icip.txt │ │ ├── minnen-2018-icip.txt │ │ ├── minnen-2018-neurips-no-context.txt │ │ ├── minnen-2018-neurips-opt-mse.txt │ │ ├── minnen-2018-neurips-opt-msssim.txt │ │ ├── minnen-2020-icip.txt │ │ ├── theis-2017-iclr.txt │ │ ├── toderici-2017-cvpr.txt │ │ └── webp.txt │ └── PSNR_sRGB_Y │ │ ├── balle-2017-iclr-opt-mse.txt │ │ ├── balle-2017-iclr-opt-msssim.txt │ │ ├── balle-2017-iclr.txt │ │ ├── balle-2018-iclr-opt-mse.txt │ │ ├── balle-2018-iclr-opt-msssim.txt │ │ ├── balle-2018-iclr.txt │ │ ├── bpg420.txt │ │ ├── bpg444.txt │ │ ├── j2k-kdu5.txt │ │ ├── j2k-opj5.txt │ │ ├── johnston-2017-cvpr.txt │ │ ├── jpeg420.txt │ │ ├── minnen-2018-icip.txt │ │ ├── minnen-2018-neurips-no-context.txt │ │ ├── minnen-2018-neurips-opt-mse.txt │ │ ├── minnen-2018-neurips-opt-msssim.txt │ │ ├── minnen-2020-icip.txt │ │ └── webp.txt │ └── tecnick │ ├── MS-SSIM_sRGB_RGB │ ├── balle-2017-iclr-opt-mse.txt │ ├── balle-2017-iclr-opt-msssim.txt │ ├── balle-2018-iclr-opt-mse.txt │ ├── balle-2018-iclr-opt-msssim.txt │ ├── bpg420.txt │ ├── bpg444.txt │ ├── j2k-kdu5.txt │ ├── j2k-opj5.txt │ ├── johnston-2017-cvpr.txt │ ├── jpeg420.txt │ ├── minnen-2018-icip.txt │ ├── minnen-2018-neurips-opt-mse.txt │ ├── minnen-2018-neurips-opt-msssim.txt │ ├── toderici-2017-cvpr.txt │ └── webp.txt │ ├── MS-SSIM_sRGB_Y │ ├── balle-2017-iclr-opt-mse.txt │ ├── balle-2017-iclr-opt-msssim.txt │ ├── balle-2018-iclr-opt-mse.txt │ ├── balle-2018-iclr-opt-msssim.txt │ ├── bpg420.txt │ ├── bpg444.txt │ ├── j2k-kdu5.txt │ ├── j2k-opj5.txt │ ├── johnston-2017-cvpr.txt │ ├── jpeg420.txt │ ├── minnen-2018-icip.txt │ ├── minnen-2018-neurips-opt-mse.txt │ ├── minnen-2018-neurips-opt-msssim.txt │ └── webp.txt │ ├── PSNR_sRGB_RGB │ ├── balle-2017-iclr-opt-mse.txt │ ├── balle-2017-iclr-opt-msssim.txt │ ├── balle-2018-iclr-opt-mse.txt │ ├── balle-2018-iclr-opt-msssim.txt │ ├── bpg420.txt │ ├── bpg444.txt │ ├── j2k-kdu5.txt │ ├── j2k-opj5.txt │ ├── johnston-2017-cvpr.txt │ ├── jpeg420.txt │ ├── minnen-2018-icip.txt │ ├── minnen-2018-neurips-no-context.txt │ ├── minnen-2018-neurips-opt-mse.txt │ ├── minnen-2018-neurips-opt-msssim.txt │ ├── minnen-2020-icip.txt │ ├── toderici-2017-cvpr.txt │ └── webp.txt │ └── PSNR_sRGB_Y │ ├── balle-2017-iclr-opt-mse.txt │ ├── balle-2017-iclr-opt-msssim.txt │ ├── balle-2018-iclr-opt-mse.txt │ ├── balle-2018-iclr-opt-msssim.txt │ ├── bpg420.txt │ ├── bpg444.txt │ ├── j2k-kdu5.txt │ ├── j2k-opj5.txt │ ├── johnston-2017-cvpr.txt │ ├── jpeg420.txt │ ├── minnen-2018-icip.txt │ ├── minnen-2018-neurips-no-context.txt │ ├── minnen-2018-neurips-opt-mse.txt │ ├── minnen-2018-neurips-opt-msssim.txt │ ├── minnen-2020-icip.txt │ └── webp.txt ├── tensorflow_compression ├── __init__.py ├── all_tests.py ├── cc │ ├── BUILD │ ├── kernels │ │ ├── pmf_to_cdf_kernels.cc │ │ ├── pmf_to_cdf_kernels_test.cc │ │ ├── quantization_kernels.cc │ │ ├── range_coder_kernels.cc │ │ ├── range_coder_kernels.h │ │ ├── range_coding_kernels.cc │ │ ├── range_coding_kernels_test.cc │ │ ├── range_coding_kernels_util.cc │ │ ├── range_coding_kernels_util.h │ │ ├── run_length_gamma_kernels.cc │ │ ├── run_length_gamma_kernels_test.cc │ │ ├── run_length_kernels.cc │ │ ├── run_length_kernels_test.cc │ │ ├── unbounded_index_range_coding_kernels.cc │ │ ├── unbounded_index_range_coding_kernels_test.cc │ │ └── y4m_dataset_kernels.cc │ ├── lib │ │ ├── bit_coder.cc │ │ ├── bit_coder.h │ │ ├── range_coder.cc │ │ └── range_coder.h │ ├── ops │ │ ├── pmf_to_cdf_ops.cc │ │ ├── quantization_ops.cc │ │ ├── range_coder_ops.cc │ │ ├── range_coding_ops.cc │ │ ├── run_length_gamma_ops.cc │ │ ├── run_length_ops.cc │ │ └── y4m_dataset_ops.cc │ └── tflite │ │ ├── range_coder_kernels.cc │ │ └── range_coder_kernels.h └── python │ ├── __init__.py │ ├── datasets │ ├── BUILD │ ├── __init__.py │ ├── y4m_dataset.py │ └── y4m_dataset_test.py │ ├── distributions │ ├── BUILD │ ├── __init__.py │ ├── deep_factorized.py │ ├── deep_factorized_test.py │ ├── helpers.py │ ├── helpers_test.py │ ├── round_adapters.py │ ├── round_adapters_test.py │ ├── uniform_noise.py │ └── uniform_noise_test.py │ ├── entropy_models │ ├── BUILD │ ├── __init__.py │ ├── continuous_base.py │ ├── continuous_batched.py │ ├── continuous_batched_test.py │ ├── continuous_indexed.py │ ├── continuous_indexed_test.py │ ├── laplace.py │ ├── laplace_test.py │ ├── power_law.py │ ├── power_law_test.py │ ├── universal.py │ └── universal_test.py │ ├── layers │ ├── BUILD │ ├── __init__.py │ ├── gdn.py │ ├── gdn_test.py │ ├── initializers.py │ ├── initializers_test.py │ ├── parameters.py │ ├── parameters_test.py │ ├── signal_conv.py │ ├── signal_conv_test.py │ ├── soft_round.py │ └── soft_round_test.py │ ├── ops │ ├── BUILD │ ├── __init__.py │ ├── gen_ops.py │ ├── math_ops.py │ ├── math_ops_test.py │ ├── padding_ops.py │ ├── padding_ops_test.py │ ├── quantization_ops_test.py │ ├── range_coding_ops_test.py │ ├── round_ops.py │ └── round_ops_test.py │ └── util │ ├── BUILD │ ├── __init__.py │ ├── packed_tensors.py │ └── packed_tensors_test.py ├── tensorflow_compression_ops ├── MANIFEST.in ├── README.md ├── __init__.py ├── build_pip_pkg.py ├── build_pip_pkg.sh ├── requirements.txt ├── test_pip_pkg.sh └── tests_all.py ├── tools ├── build_api_docs.py ├── build_pip_pkg.py ├── build_pip_pkg.sh └── test_pip_pkg.sh └── workspace.bzl /.bazelrc: -------------------------------------------------------------------------------- 1 | # This flag is required for CUDA repo that @org_tensorflow depends on. 2 | common --experimental_repo_remote_exec 3 | 4 | build:manylinux_2_17_x86_64 --host_crosstool_top="@local_config_cuda//crosstool:toolchain" 5 | build:manylinux_2_17_x86_64 --crosstool_top="@local_config_cuda//crosstool:toolchain" 6 | build:manylinux_2_17_x86_64 --extra_toolchains="@local_config_cuda//crosstool:toolchain-linux-x86_64" 7 | build:manylinux_2_17_x86_64 --repo_env=CC="/usr/lib/llvm-18/bin/clang" 8 | build:manylinux_2_17_x86_64 --repo_env=TF_SYSROOT="/dt9" 9 | build:manylinux_2_17_x86_64 --extra_execution_platforms="@sigbuild-r2.17-clang_config_platform//:platform" 10 | build:manylinux_2_17_x86_64 --host_platform="@sigbuild-r2.17-clang_config_platform//:platform" 11 | build:manylinux_2_17_x86_64 --platforms="@sigbuild-r2.17-clang_config_platform//:platform" 12 | -------------------------------------------------------------------------------- /.bazelversion: -------------------------------------------------------------------------------- 1 | 6.5.0 2 | # https://github.com/tensorflow/tensorflow/blob/master/.bazelversion 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Report a problem in tensorflow-compression. DO NOT create an issue to ask questions. Instead, ask them in the tensorflow-compression Google group. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '...' 17 | 3. Scroll down to '...' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **System (please complete the following information):** 24 | - OS 25 | - Python version [also include how installed: anaconda, apt-get, etc.] 26 | - TensorFlow version [also include how installed: pip, conda, Docker, etc.] 27 | - tensorflow-compression version 28 | 29 | **Additional context** 30 | Add any other context about the problem here. 31 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project. DO NOT create an issue to ask questions. Instead, ask them in the tensorflow-compression Google group. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # backup files 2 | *~ 3 | 4 | # Python byte code, etc. 5 | __pycache__/ 6 | *.py[cod] 7 | *$py.class 8 | 9 | # type checkers 10 | .pyre/ 11 | .pytype/ 12 | 13 | # C/C++ object files/libraries 14 | *.slo 15 | *.lo 16 | *.o 17 | *.obj 18 | *.so 19 | *.dylib 20 | *.dll 21 | *.lai 22 | *.la 23 | *.a 24 | *.lib 25 | 26 | # bazel symlinks 27 | /bazel-* 28 | 29 | # Jupyter notebook 30 | .ipynb_checkpoints 31 | profile_default/ 32 | ipython_config.py 33 | 34 | # macOS 35 | .DS_Store 36 | .AppleDouble 37 | .LSOverride 38 | ._* 39 | -------------------------------------------------------------------------------- /.style.yapf: -------------------------------------------------------------------------------- 1 | [style] 2 | based_on_style = google 3 | indent_width = 2 4 | dedent_closing_brackets = True 5 | split_before_dot = True 6 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.insertFinalNewline": true, 3 | "files.trimFinalNewlines": true, 4 | "files.trimTrailingWhitespace": true, 5 | "files.associations": { 6 | ".pylintrc": "ini", 7 | ".style.yapf": "ini" 8 | }, 9 | "python.testing.unittestEnabled": false, 10 | "python.testing.nosetestsEnabled": false, 11 | "python.testing.pytestEnabled": true, 12 | "python.linting.pylintUseMinimalCheckers": false, 13 | "[python]": { 14 | "editor.rulers": [ 15 | 80 16 | ], 17 | "editor.tabSize": 2, 18 | "editor.detectIndentation": false 19 | }, 20 | "python.formatting.provider": "yapf", 21 | "files.watcherExclude": { 22 | "**/.git/**": true 23 | }, 24 | "files.exclude": { 25 | "**/__pycache__": true, 26 | "**/.pytest_cache": true, 27 | "**/*.egg-info": true 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /BUILD: -------------------------------------------------------------------------------- 1 | package( 2 | default_visibility = ["//visibility:public"], 3 | ) 4 | 5 | licenses(["notice"]) 6 | 7 | exports_files(["LICENSE"]) 8 | 9 | py_library( 10 | name = "tensorflow_compression", 11 | srcs = ["tensorflow_compression/__init__.py"], 12 | visibility = ["//visibility:public"], 13 | deps = [ 14 | "//tensorflow_compression/python/datasets:y4m_dataset", 15 | "//tensorflow_compression/python/distributions", 16 | "//tensorflow_compression/python/distributions:deep_factorized", 17 | "//tensorflow_compression/python/distributions:helpers", 18 | "//tensorflow_compression/python/distributions:round_adapters", 19 | "//tensorflow_compression/python/distributions:uniform_noise", 20 | "//tensorflow_compression/python/entropy_models", 21 | "//tensorflow_compression/python/entropy_models:continuous_batched", 22 | "//tensorflow_compression/python/entropy_models:continuous_indexed", 23 | "//tensorflow_compression/python/entropy_models:power_law", 24 | "//tensorflow_compression/python/entropy_models:universal", 25 | "//tensorflow_compression/python/layers", 26 | "//tensorflow_compression/python/layers:gdn", 27 | "//tensorflow_compression/python/layers:initializers", 28 | "//tensorflow_compression/python/layers:parameters", 29 | "//tensorflow_compression/python/layers:signal_conv", 30 | "//tensorflow_compression/python/layers:soft_round", 31 | "//tensorflow_compression/python/ops", 32 | "//tensorflow_compression/python/ops:gen_ops", 33 | "//tensorflow_compression/python/ops:math_ops", 34 | "//tensorflow_compression/python/ops:padding_ops", 35 | "//tensorflow_compression/python/ops:round_ops", 36 | "//tensorflow_compression/python/util:packed_tensors", 37 | ], 38 | ) 39 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | We'd love to accept your patches and contributions to this project. There are 4 | just a few small guidelines you need to follow. 5 | 6 | ## Contributor License Agreement 7 | 8 | Contributions to this project must be accompanied by a Contributor License 9 | Agreement. You (or your employer) retain the copyright to your contribution, 10 | this simply gives us permission to use and redistribute your contributions as 11 | part of the project. Head over to to see 12 | your current agreements on file or to sign a new one. 13 | 14 | You generally only need to submit a CLA once, so if you've already submitted one 15 | (even if it was for a different project), you probably don't need to do it 16 | again. 17 | 18 | ## Code reviews 19 | 20 | All submissions, including submissions by project members, require review. We 21 | use GitHub pull requests for this purpose. Consult 22 | [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more 23 | information on using pull requests. 24 | 25 | ## Community Guidelines 26 | 27 | This project follows [Google's Open Source Community 28 | Guidelines](https://opensource.google.com/conduct/). 29 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | global-include LICENSE 2 | global-include *.md 3 | recursive-include tensorflow_compression/cc/ *.so 4 | -------------------------------------------------------------------------------- /WORKSPACE: -------------------------------------------------------------------------------- 1 | workspace(name = "tensorflow_compression") 2 | 3 | load("//:workspace.bzl", "tensorflow_compression_workspace") 4 | tensorflow_compression_workspace() 5 | 6 | load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") 7 | 8 | http_archive( 9 | name = "org_tensorflow", 10 | sha256 = "d7876f4bb0235cac60eb6316392a7c48676729860da1ab659fb440379ad5186d", 11 | strip_prefix = "tensorflow-2.18.0", 12 | urls = [ 13 | "https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.18.0.tar.gz", 14 | ], 15 | ) 16 | 17 | # Copied from `@org_tensorflow//:WORKSPACE`. 18 | load("@org_tensorflow//tensorflow:workspace3.bzl", "tf_workspace3") 19 | tf_workspace3() 20 | 21 | # Initialize hermetic Python 22 | load("@local_tsl//third_party/py:python_init_rules.bzl", "python_init_rules") 23 | python_init_rules() 24 | 25 | load("@local_tsl//third_party/py:python_init_repositories.bzl", "python_init_repositories") 26 | python_init_repositories( 27 | default_python_version = "system", 28 | requirements = { 29 | "3.9": "@org_tensorflow//:requirements_lock_3_9.txt", 30 | "3.10": "@org_tensorflow//:requirements_lock_3_10.txt", 31 | "3.11": "@org_tensorflow//:requirements_lock_3_11.txt", 32 | "3.12": "@org_tensorflow//:requirements_lock_3_12.txt", 33 | }, 34 | ) 35 | 36 | load("@local_tsl//third_party/py:python_init_toolchains.bzl", "python_init_toolchains") 37 | python_init_toolchains() 38 | 39 | load("@org_tensorflow//tensorflow:workspace2.bzl", "tf_workspace2") 40 | tf_workspace2() 41 | 42 | load("@org_tensorflow//tensorflow:workspace1.bzl", "tf_workspace1") 43 | tf_workspace1() 44 | 45 | load("@org_tensorflow//tensorflow:workspace0.bzl", "tf_workspace0") 46 | tf_workspace0() 47 | 48 | load( 49 | "@local_tsl//third_party/gpus/cuda/hermetic:cuda_configure.bzl", 50 | "cuda_configure", 51 | ) 52 | cuda_configure(name = "local_config_cuda") 53 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-primer 2 | title: TensorFlow Compression 3 | show_downloads: false 4 | -------------------------------------------------------------------------------- /models/hific/data.csv: -------------------------------------------------------------------------------- 1 | ,dataset,bpp,FID,KID,NIQE,LPIPS,MS-SSIM,PSNR 2 | 0,clic2020,0.12902283,4.19736528,0.00108268,9.38350187,0.05394955,0.9553839,30.86970338 3 | 1,clic2020,0.24981422,2.38322568,0.00053555,9.28048124,0.03485062,0.97377288,32.9375868 4 | 2,clic2020,0.37383949,1.66647744,0.00035608,8.6921952,0.02499845,0.98172444,34.59938206 5 | 3,div2k,0.17268653,9.96830177,0.00120337,9.47402614,0.06124068,0.95155809,28.49394484 6 | 4,div2k,0.32447103,5.84229946,0.00053627,9.36838145,0.0385301,0.97143019,30.59894682 7 | 5,div2k,0.489503,3.94786787,0.00024038,8.82207186,0.02592616,0.98089158,32.46940243 8 | 6,kodak,0.1825587,,,11.2748119,0.06864742,0.93721463,27.56470037 9 | 7,kodak,0.35108609,,,11.86824715,0.04278131,0.96430352,29.65373484 10 | 8,kodak,0.53773159,,,10.93795208,0.02784851,0.97751017,31.7428445 -------------------------------------------------------------------------------- /models/hific/requirements.txt: -------------------------------------------------------------------------------- 1 | git+https://github.com/google/compare_gan@19922d3004b675c1a49c4d7515c06f6f75acdcc8 2 | tensorflow-gpu~=1.15.2 3 | tensorflow-compression==1.3 4 | Pillow~=8.3.2 5 | -------------------------------------------------------------------------------- /models/rdc/README.md: -------------------------------------------------------------------------------- 1 | # Advancing the Rate-Distortion-Computation Frontier for Neural Image Compression 2 | 3 | As part of our work our paper (bibtex citation below), we have open-sourced our 4 | `Model B` for inference. 5 | 6 | Models and how to run them will appear here soon. 7 | 8 | To cite our models or our paper, please use: 9 | ``` 10 | @INPROCEEDINGS{10222381, 11 | author={Minnen, David and Johnston, Nick}, 12 | booktitle={2023 IEEE International Conference on Image Processing (ICIP)}, 13 | title={Advancing the Rate-Distortion-Computation Frontier for Neural Image Compression}, 14 | year={2023}, 15 | volume={}, 16 | number={}, 17 | pages={2940-2944}, 18 | doi={10.1109/ICIP49359.2023.10222381}} 19 | ``` 20 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | scipy ~= 1.11.0 2 | tensorflow ~= 2.14.0 3 | tensorflow-probability >= 0.15, < 0.23 4 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/balle-2017-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MSE)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.119752, 0.903700 15 | 0.194591, 0.931041 16 | 0.316000, 0.954783 17 | 0.481060, 0.969139 18 | 0.721303, 0.980815 19 | 1.060841, 0.986755 20 | 1.458681, 0.992090 21 | 1.957564, 0.994965 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/balle-2017-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MS-SSIM)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.088965, 0.911371 15 | 0.159174, 0.944562 16 | 0.274751, 0.966757 17 | 0.456740, 0.981293 18 | 0.657944, 0.988021 19 | 1.039564, 0.993110 20 | 1.519391, 0.996033 21 | 2.100730, 0.997772 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/balle-2017-iclr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.119752, 0.903700 15 | 0.194591, 0.931041 16 | 0.316000, 0.954783 17 | 0.481060, 0.969139 18 | 0.721303, 0.980815 19 | 1.060841, 0.986755 20 | 1.458681, 0.992090 21 | 1.957564, 0.994965 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/balle-2018-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MSE)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.115239, 0.907527 15 | 0.185698, 0.936307 16 | 0.301804, 0.958691 17 | 0.468972, 0.972416 18 | 0.686378, 0.982478 19 | 0.966864, 0.988344 20 | 1.307441, 0.992647 21 | 1.727503, 0.995267 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/balle-2018-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MS-SSIM)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.092031, 0.923012 15 | 0.166818, 0.953873 16 | 0.281376, 0.972845 17 | 0.398321, 0.981048 18 | 0.650651, 0.989613 19 | 0.996335, 0.994012 20 | 1.377538, 0.996171 21 | 2.030330, 0.998020 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/balle-2018-iclr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.115239, 0.907527 15 | 0.185698, 0.936307 16 | 0.301804, 0.958691 17 | 0.468972, 0.972416 18 | 0.686378, 0.982478 19 | 0.966864, 0.988344 20 | 1.307441, 0.992647 21 | 1.727503, 0.995267 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/bpg420.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:2:0)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.023778, 0.784989 14 | 0.028261, 0.800720 15 | 0.034131, 0.816491 16 | 0.041103, 0.832549 17 | 0.049042, 0.846330 18 | 0.058963, 0.860314 19 | 0.070547, 0.872750 20 | 0.083888, 0.885062 21 | 0.100428, 0.896837 22 | 0.117291, 0.906517 23 | 0.138370, 0.916372 24 | 0.161282, 0.924601 25 | 0.189494, 0.933334 26 | 0.219051, 0.939601 27 | 0.256016, 0.947138 28 | 0.294495, 0.952187 29 | 0.338370, 0.957859 30 | 0.385684, 0.961779 31 | 0.440687, 0.966350 32 | 0.500803, 0.970688 33 | 0.569223, 0.974397 34 | 0.642459, 0.977489 35 | 0.711308, 0.979273 36 | 0.795128, 0.981873 37 | 0.884535, 0.983938 38 | 0.977693, 0.985811 39 | 1.083310, 0.987469 40 | 1.193119, 0.989031 41 | 1.302428, 0.990242 42 | 1.425981, 0.991342 43 | 1.558065, 0.992281 44 | 1.699156, 0.993105 45 | 1.862072, 0.993914 46 | 2.036448, 0.994620 47 | 2.211966, 0.995205 48 | 2.412092, 0.995756 49 | 2.613790, 0.996303 50 | 2.838744, 0.996711 51 | 3.068833, 0.997057 52 | 3.303337, 0.997373 53 | 3.539684, 0.997648 54 | 3.787450, 0.997908 55 | 4.045572, 0.998128 56 | 4.317412, 0.998322 57 | 4.674708, 0.998600 58 | 4.988948, 0.998819 59 | 5.355372, 0.999060 60 | 5.604246, 0.999147 61 | 5.786789, 0.999190 62 | 5.974362, 0.999228 63 | 6.206643, 0.999251 64 | 6.442166, 0.999261 65 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/bpg444.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:4:4)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.023857, 0.783939 14 | 0.028540, 0.800621 15 | 0.034282, 0.815880 16 | 0.041183, 0.830978 17 | 0.049301, 0.845919 18 | 0.058861, 0.859465 19 | 0.070444, 0.871920 20 | 0.084175, 0.884832 21 | 0.100255, 0.896600 22 | 0.119211, 0.908020 23 | 0.140076, 0.917528 24 | 0.165529, 0.926932 25 | 0.193939, 0.935368 26 | 0.226882, 0.943184 27 | 0.264902, 0.950550 28 | 0.308004, 0.956814 29 | 0.353821, 0.962287 30 | 0.406663, 0.967124 31 | 0.465174, 0.971309 32 | 0.528513, 0.975060 33 | 0.602615, 0.978421 34 | 0.681227, 0.981216 35 | 0.763150, 0.983577 36 | 0.855122, 0.985761 37 | 0.954195, 0.987516 38 | 1.058729, 0.989023 39 | 1.178031, 0.990455 40 | 1.302895, 0.991701 41 | 1.427853, 0.992658 42 | 1.570484, 0.993543 43 | 1.724310, 0.994321 44 | 1.890798, 0.994994 45 | 2.085680, 0.995657 46 | 2.296926, 0.996264 47 | 2.513738, 0.996777 48 | 2.762745, 0.997260 49 | 3.021654, 0.997676 50 | 3.311613, 0.998029 51 | 3.616902, 0.998321 52 | 3.943210, 0.998584 53 | 4.282488, 0.998796 54 | 4.657569, 0.998987 55 | 5.069882, 0.999142 56 | 5.543335, 0.999276 57 | 6.176737, 0.999429 58 | 6.804908, 0.999547 59 | 7.545595, 0.999672 60 | 8.045927, 0.999713 61 | 8.453601, 0.999736 62 | 8.895050, 0.999755 63 | 9.349519, 0.999765 64 | 9.810592, 0.999770 65 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/j2k-kdu5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (Kakadu)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 3. These results are based on the Kakadu implementation of JPEG2000 10 | # More information here: https://kakadusoftware.com. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.100076, 0.877085 16 | 0.199880, 0.925683 17 | 0.249907, 0.938654 18 | 0.300371, 0.947145 19 | 0.399825, 0.959190 20 | 0.499945, 0.967042 21 | 0.600087, 0.972700 22 | 0.700465, 0.976717 23 | 0.750395, 0.978416 24 | 0.800270, 0.979887 25 | 0.900150, 0.982536 26 | 0.999644, 0.984557 27 | 1.099831, 0.986462 28 | 1.200267, 0.987915 29 | 1.250495, 0.988552 30 | 1.299869, 0.989130 31 | 1.399585, 0.990260 32 | 1.499995, 0.991159 33 | 1.600394, 0.991974 34 | 1.699370, 0.992619 35 | 1.750196, 0.992994 36 | 1.800260, 0.993307 37 | 1.899801, 0.993907 38 | 2.000136, 0.994370 39 | 2.250013, 0.995359 40 | 2.499570, 0.996123 41 | 2.749943, 0.996772 42 | 3.000182, 0.997255 43 | 3.249868, 0.997702 44 | 3.499243, 0.998047 45 | 3.750640, 0.998375 46 | 4.000155, 0.998643 47 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/j2k-opj5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (OpenJPEG)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 3. These results are based on the OpenJPEG implementation of JPEG2000 10 | # More information here: https://www.openjpeg.org. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.099912, 0.864516 16 | 0.200165, 0.912034 17 | 0.249945, 0.925119 18 | 0.300170, 0.934147 19 | 0.400012, 0.948107 20 | 0.499803, 0.957545 21 | 0.599782, 0.964332 22 | 0.700121, 0.969526 23 | 0.750070, 0.971646 24 | 0.799270, 0.973724 25 | 0.899998, 0.977021 26 | 0.999610, 0.979359 27 | 1.100226, 0.981689 28 | 1.200713, 0.983491 29 | 1.249957, 0.984231 30 | 1.300304, 0.984927 31 | 1.400688, 0.986307 32 | 1.499341, 0.987546 33 | 1.600190, 0.988540 34 | 1.699513, 0.989420 35 | 1.750212, 0.989828 36 | 1.800014, 0.990199 37 | 1.899858, 0.990912 38 | 1.999802, 0.991533 39 | 2.249946, 0.992760 40 | 2.500251, 0.993836 41 | 2.749595, 0.994614 42 | 3.000416, 0.995394 43 | 3.250183, 0.996125 44 | 3.498930, 0.996648 45 | 3.750190, 0.997062 46 | 3.999123, 0.997421 47 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/johnston-2017-cvpr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Johnston 2018 (CVPR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.098400, 0.891740 15 | 0.098502, 0.891740 16 | 0.123147, 0.906121 17 | 0.216631, 0.941519 18 | 0.216733, 0.941519 19 | 0.233175, 0.945224 20 | 0.243297, 0.947329 21 | 0.266381, 0.951293 22 | 0.316397, 0.958758 23 | 0.342072, 0.961867 24 | 0.359053, 0.963697 25 | 0.366377, 0.964417 26 | 0.369731, 0.964741 27 | 0.416378, 0.967792 28 | 0.466340, 0.971446 29 | 0.467073, 0.971504 30 | 0.482969, 0.972687 31 | 0.494033, 0.973290 32 | 0.514605, 0.974306 33 | 0.564585, 0.976936 34 | 0.590295, 0.978016 35 | 0.608254, 0.978668 36 | 0.614593, 0.978877 37 | 0.619498, 0.979037 38 | 0.664594, 0.980531 39 | 0.714583, 0.981985 40 | 0.715288, 0.982006 41 | 0.732207, 0.982611 42 | 0.743663, 0.982849 43 | 0.763244, 0.983211 44 | 0.813254, 0.984693 45 | 0.838921, 0.985243 46 | 0.857497, 0.985607 47 | 0.863241, 0.985715 48 | 0.869088, 0.985830 49 | 0.913244, 0.986412 50 | 0.963240, 0.987246 51 | 0.963946, 0.987257 52 | 0.982247, 0.987626 53 | 0.994077, 0.987790 54 | 1.012682, 0.988033 55 | 1.062672, 0.988744 56 | 1.088370, 0.989053 57 | 1.107454, 0.989272 58 | 1.112645, 0.989331 59 | 1.119378, 0.989407 60 | 1.162643, 0.989757 61 | 1.212635, 0.990265 62 | 1.213353, 0.990272 63 | 1.231904, 0.990516 64 | 1.243903, 0.990613 65 | 1.262037, 0.990759 66 | 1.312007, 0.991296 67 | 1.337708, 0.991490 68 | 1.357105, 0.991627 69 | 1.362025, 0.991660 70 | 1.369241, 0.991707 71 | 1.412006, 0.991990 72 | 1.461991, 0.992342 73 | 1.462680, 0.992347 74 | 1.481670, 0.992527 75 | 1.493911, 0.992600 76 | 1.511412, 0.992705 77 | 1.561425, 0.993049 78 | 1.587108, 0.993196 79 | 1.606839, 0.993302 80 | 1.611415, 0.993327 81 | 1.619153, 0.993369 82 | 1.661396, 0.993576 83 | 1.711365, 0.993800 84 | 1.712098, 0.993803 85 | 1.731499, 0.993898 86 | 1.743997, 0.993947 87 | 1.760764, 0.994009 88 | 1.810739, 0.994177 89 | 1.836470, 0.994256 90 | 1.856706, 0.994313 91 | 1.860740, 0.994324 92 | 1.869343, 0.994346 93 | 1.910750, 0.994446 94 | 1.957929, 0.994539 95 | 1.960025, 0.994538 96 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/klopp2018-bmvc.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Klopp 2018 (BMVC)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.095628, 0.923610 15 | 0.123170, 0.936850 16 | 0.142300, 0.945580 17 | 0.154540, 0.949920 18 | 0.175960, 0.956100 19 | 0.193550, 0.960180 20 | 0.220330, 0.965180 21 | 0.242510, 0.968420 22 | 0.276940, 0.972390 23 | 0.302950, 0.974770 24 | 0.354970, 0.978210 25 | 0.386340, 0.980090 26 | 0.437600, 0.982720 27 | 0.470490, 0.984170 28 | 0.530160, 0.986430 29 | 0.560770, 0.987420 30 | 0.599780, 0.988470 31 | 0.671690, 0.990020 32 | 0.725250, 0.990970 33 | 0.800220, 0.992030 34 | 0.899670, 0.993100 35 | 0.976170, 0.993710 36 | 1.045800, 0.994180 37 | 1.099300, 0.994480 38 | 1.199600, 0.995000 39 | 1.299000, 0.995430 40 | 1.399200, 0.995810 41 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/minnen-2018-icip.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (ICIP)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.113339, 0.902999 15 | 0.181917, 0.930619 16 | 0.290215, 0.954518 17 | 0.438877, 0.968735 18 | 0.653552, 0.980806 19 | 0.956121, 0.986722 20 | 1.309287, 0.991886 21 | 1.740850, 0.994879 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/minnen-2018-neurips-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 3. This model was optimized for RGB MSE. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.071997, 0.891185 16 | 0.153354, 0.936068 17 | 0.264381, 0.959227 18 | 0.428511, 0.974413 19 | 0.635404, 0.983432 20 | 0.904279, 0.989174 21 | 1.258828, 0.992907 22 | 1.982050, 0.996631 23 | 2.992778, 0.998687 24 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/minnen-2018-neurips-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 3. This model was optimized for RGB MS-SSIM. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.092495, 0.926154 16 | 0.196784, 0.963019 17 | 0.392549, 0.983832 18 | 0.580614, 0.989581 19 | 0.755953, 0.992419 20 | 0.945877, 0.994319 21 | 1.195109, 0.995809 22 | 1.425766, 0.996772 23 | 1.982975, 0.998191 24 | 2.641110, 0.999101 25 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/rippel2017.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Rippel 2017 (ICML)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.071600, 0.900150 15 | 0.082740, 0.908720 16 | 0.095470, 0.919570 17 | 0.116150, 0.929660 18 | 0.140020, 0.939600 19 | 0.171840, 0.949240 20 | 0.225930, 0.959630 21 | 0.273670, 0.966360 22 | 0.358000, 0.974460 23 | 0.437550, 0.979660 24 | 0.499600, 0.982260 25 | 0.596660, 0.985020 26 | 0.706440, 0.987310 27 | 0.830550, 0.989600 28 | 0.964200, 0.991440 29 | 1.059670, 0.992350 30 | 1.206050, 0.993430 31 | 1.326970, 0.994190 32 | 1.463800, 0.994800 33 | 1.621320, 0.995260 34 | 2.009550, 0.996330 35 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_RGB/toderici-2017-cvpr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Toderici 2017 (CVPR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.125000, 0.819100 15 | 0.250000, 0.903700 16 | 0.375000, 0.937470 17 | 0.500000, 0.953840 18 | 0.625000, 0.963570 19 | 0.750000, 0.971510 20 | 0.875000, 0.975780 21 | 1.000000, 0.979590 22 | 1.125000, 0.982190 23 | 1.250000, 0.983940 24 | 1.375000, 0.985840 25 | 1.500000, 0.986830 26 | 1.625000, 0.987820 27 | 1.750000, 0.988340 28 | 1.875000, 0.988490 29 | 2.000000, 0.988720 30 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/balle-2017-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MSE)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.119752, 0.912465 15 | 0.194591, 0.938222 16 | 0.316000, 0.960606 17 | 0.481060, 0.973768 18 | 0.721303, 0.984341 19 | 1.060841, 0.989370 20 | 1.458681, 0.994011 21 | 1.957564, 0.996310 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/balle-2017-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MS-SSIM)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.088965, 0.921848 15 | 0.159174, 0.952119 16 | 0.274751, 0.972189 17 | 0.456740, 0.984918 18 | 0.657944, 0.990717 19 | 1.039564, 0.994777 20 | 1.519391, 0.997142 21 | 2.100730, 0.998423 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/balle-2017-iclr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.119752, 0.912465 15 | 0.194591, 0.938222 16 | 0.316000, 0.960606 17 | 0.481060, 0.973768 18 | 0.721303, 0.984341 19 | 1.060841, 0.989370 20 | 1.458681, 0.994011 21 | 1.957564, 0.996310 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/balle-2018-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MSE)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.115239, 0.916089 15 | 0.185698, 0.943538 16 | 0.301804, 0.964504 17 | 0.468972, 0.976787 18 | 0.686378, 0.985790 19 | 0.966864, 0.991048 20 | 1.307441, 0.994607 21 | 1.727503, 0.996637 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/balle-2018-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MS-SSIM)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.092031, 0.932611 15 | 0.166818, 0.960943 16 | 0.281376, 0.977778 17 | 0.398321, 0.984935 18 | 0.650651, 0.992063 19 | 0.996335, 0.995652 20 | 1.377538, 0.997328 21 | 2.030330, 0.998616 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/balle-2018-iclr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.115239, 0.916089 15 | 0.185698, 0.943538 16 | 0.301804, 0.964504 17 | 0.468972, 0.976787 18 | 0.686378, 0.985790 19 | 0.966864, 0.991048 20 | 1.307441, 0.994607 21 | 1.727503, 0.996637 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/bpg420.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:2:0)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.023778, 0.801437 14 | 0.028261, 0.816676 15 | 0.034131, 0.832636 16 | 0.041103, 0.848050 17 | 0.049042, 0.861437 18 | 0.058963, 0.874804 19 | 0.070547, 0.886970 20 | 0.083888, 0.898412 21 | 0.100428, 0.909857 22 | 0.117291, 0.920351 23 | 0.138370, 0.929415 24 | 0.161282, 0.938282 25 | 0.189494, 0.946236 26 | 0.219051, 0.953092 27 | 0.256016, 0.959759 28 | 0.294495, 0.965247 29 | 0.338370, 0.970061 30 | 0.385684, 0.974306 31 | 0.440687, 0.977921 32 | 0.500803, 0.981279 33 | 0.569223, 0.984035 34 | 0.642459, 0.986370 35 | 0.711308, 0.988260 36 | 0.795128, 0.990052 37 | 0.884535, 0.991473 38 | 0.977693, 0.992653 39 | 1.083310, 0.993722 40 | 1.193119, 0.994682 41 | 1.302428, 0.995391 42 | 1.425981, 0.996031 43 | 1.558065, 0.996582 44 | 1.699156, 0.997063 45 | 1.862072, 0.997527 46 | 2.036448, 0.997929 47 | 2.211966, 0.998265 48 | 2.412092, 0.998565 49 | 2.613790, 0.998821 50 | 2.838744, 0.999026 51 | 3.068833, 0.999182 52 | 3.303337, 0.999303 53 | 3.539684, 0.999406 54 | 3.787450, 0.999488 55 | 4.045572, 0.999556 56 | 4.317412, 0.999617 57 | 4.674708, 0.999691 58 | 4.988948, 0.999738 59 | 5.355372, 0.999792 60 | 5.604246, 0.999814 61 | 5.786789, 0.999823 62 | 5.974362, 0.999826 63 | 6.206643, 0.999828 64 | 6.442166, 0.999829 65 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/bpg444.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:4:4)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.023857, 0.800592 14 | 0.028540, 0.817336 15 | 0.034282, 0.832740 16 | 0.041183, 0.847006 17 | 0.049301, 0.861064 18 | 0.058861, 0.874282 19 | 0.070444, 0.886427 20 | 0.084175, 0.898608 21 | 0.100255, 0.909863 22 | 0.119211, 0.920355 23 | 0.140076, 0.929200 24 | 0.165529, 0.938131 25 | 0.193939, 0.946047 26 | 0.226882, 0.953088 27 | 0.264902, 0.959696 28 | 0.308004, 0.965250 29 | 0.353821, 0.970114 30 | 0.406663, 0.974410 31 | 0.465174, 0.978037 32 | 0.528513, 0.981300 33 | 0.602615, 0.984115 34 | 0.681227, 0.986396 35 | 0.763150, 0.988345 36 | 0.855122, 0.990114 37 | 0.954195, 0.991523 38 | 1.058729, 0.992698 39 | 1.178031, 0.993780 40 | 1.302895, 0.994739 41 | 1.427853, 0.995430 42 | 1.570484, 0.996073 43 | 1.724310, 0.996613 44 | 1.890798, 0.997088 45 | 2.085680, 0.997556 46 | 2.296926, 0.997964 47 | 2.513738, 0.998297 48 | 2.762745, 0.998598 49 | 3.021654, 0.998856 50 | 3.311613, 0.999063 51 | 3.616902, 0.999222 52 | 3.943210, 0.999347 53 | 4.282488, 0.999450 54 | 4.657569, 0.999531 55 | 5.069882, 0.999601 56 | 5.543335, 0.999663 57 | 6.176737, 0.999735 58 | 6.804908, 0.999782 59 | 7.545595, 0.999836 60 | 8.045927, 0.999857 61 | 8.453601, 0.999865 62 | 8.895050, 0.999869 63 | 9.349519, 0.999871 64 | 9.810592, 0.999872 65 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/j2k-kdu5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (Kakadu)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 3. These results are based on the Kakadu implementation of JPEG2000 10 | # More information here: https://kakadusoftware.com. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.100076, 0.892994 16 | 0.199880, 0.938764 17 | 0.249907, 0.950581 18 | 0.300371, 0.958031 19 | 0.399825, 0.968464 20 | 0.499945, 0.975276 21 | 0.600087, 0.979861 22 | 0.700465, 0.982950 23 | 0.750395, 0.984371 24 | 0.800270, 0.985521 25 | 0.900150, 0.987603 26 | 0.999644, 0.989194 27 | 1.099831, 0.990733 28 | 1.200267, 0.991784 29 | 1.250495, 0.992260 30 | 1.299869, 0.992747 31 | 1.399585, 0.993611 32 | 1.499995, 0.994273 33 | 1.600394, 0.994853 34 | 1.699370, 0.995321 35 | 1.750196, 0.995611 36 | 1.800260, 0.995838 37 | 1.899801, 0.996209 38 | 2.000136, 0.996554 39 | 2.250013, 0.997204 40 | 2.499570, 0.997719 41 | 2.749943, 0.998122 42 | 3.000182, 0.998428 43 | 3.249868, 0.998682 44 | 3.499243, 0.998898 45 | 3.750640, 0.999077 46 | 4.000155, 0.999217 47 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/j2k-opj5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (OpenJPEG)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 3. These results are based on the OpenJPEG implementation of JPEG2000 10 | # More information here: https://www.openjpeg.org. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.099912, 0.876740 16 | 0.200165, 0.922618 17 | 0.249945, 0.935085 18 | 0.300170, 0.943349 19 | 0.400012, 0.956679 20 | 0.499803, 0.965157 21 | 0.599782, 0.971306 22 | 0.700121, 0.975934 23 | 0.750070, 0.977790 24 | 0.799270, 0.979680 25 | 0.899998, 0.982655 26 | 0.999610, 0.984547 27 | 1.100226, 0.986470 28 | 1.200713, 0.987983 29 | 1.249957, 0.988631 30 | 1.300304, 0.989213 31 | 1.400688, 0.990356 32 | 1.499341, 0.991407 33 | 1.600190, 0.992212 34 | 1.699513, 0.992869 35 | 1.750212, 0.993157 36 | 1.800014, 0.993418 37 | 1.899858, 0.993943 38 | 1.999802, 0.994414 39 | 2.249946, 0.995314 40 | 2.500251, 0.996121 41 | 2.749595, 0.996685 42 | 3.000416, 0.997228 43 | 3.250183, 0.997725 44 | 3.498930, 0.998020 45 | 3.750190, 0.998270 46 | 3.999123, 0.998495 47 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/johnston-2017-cvpr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Johnston 2018 (CVPR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.098400, 0.901050 15 | 0.098502, 0.901050 16 | 0.123147, 0.915008 17 | 0.216631, 0.948471 18 | 0.216733, 0.948471 19 | 0.233175, 0.952008 20 | 0.243297, 0.953995 21 | 0.266381, 0.957725 22 | 0.316397, 0.964575 23 | 0.342072, 0.967424 24 | 0.359053, 0.969079 25 | 0.366377, 0.969722 26 | 0.369731, 0.970013 27 | 0.416378, 0.972725 28 | 0.466340, 0.975970 29 | 0.467073, 0.976022 30 | 0.482969, 0.977019 31 | 0.494033, 0.977547 32 | 0.514605, 0.978425 33 | 0.564585, 0.980936 34 | 0.590295, 0.981890 35 | 0.608254, 0.982461 36 | 0.614593, 0.982642 37 | 0.619498, 0.982783 38 | 0.664594, 0.984052 39 | 0.714583, 0.985313 40 | 0.715288, 0.985331 41 | 0.732207, 0.985807 42 | 0.743663, 0.986010 43 | 0.763244, 0.986321 44 | 0.813254, 0.987769 45 | 0.838921, 0.988253 46 | 0.857497, 0.988571 47 | 0.863241, 0.988662 48 | 0.869088, 0.988761 49 | 0.913244, 0.989298 50 | 0.963240, 0.990016 51 | 0.963946, 0.990026 52 | 0.982247, 0.990307 53 | 0.994077, 0.990454 54 | 1.012682, 0.990664 55 | 1.062672, 0.991255 56 | 1.088370, 0.991519 57 | 1.107454, 0.991708 58 | 1.112645, 0.991758 59 | 1.119378, 0.991823 60 | 1.162643, 0.992127 61 | 1.212635, 0.992561 62 | 1.213353, 0.992568 63 | 1.231904, 0.992775 64 | 1.243903, 0.992856 65 | 1.262037, 0.992977 66 | 1.312007, 0.993490 67 | 1.337708, 0.993652 68 | 1.357105, 0.993766 69 | 1.362025, 0.993794 70 | 1.369241, 0.993834 71 | 1.412006, 0.994137 72 | 1.461991, 0.994435 73 | 1.462680, 0.994438 74 | 1.481670, 0.994570 75 | 1.493911, 0.994631 76 | 1.511412, 0.994722 77 | 1.561425, 0.994987 78 | 1.587108, 0.995112 79 | 1.606839, 0.995202 80 | 1.611415, 0.995223 81 | 1.619153, 0.995257 82 | 1.661396, 0.995428 83 | 1.711365, 0.995611 84 | 1.712098, 0.995614 85 | 1.731499, 0.995699 86 | 1.743997, 0.995737 87 | 1.760764, 0.995786 88 | 1.810739, 0.995916 89 | 1.836470, 0.995978 90 | 1.856706, 0.996023 91 | 1.860740, 0.996031 92 | 1.869343, 0.996048 93 | 1.910750, 0.996124 94 | 1.957929, 0.996190 95 | 1.960025, 0.996189 96 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/minnen-2018-icip.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (ICIP)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.113339, 0.911679 15 | 0.181917, 0.937792 16 | 0.290215, 0.960397 17 | 0.438877, 0.973381 18 | 0.653552, 0.984346 19 | 0.956121, 0.989364 20 | 1.309287, 0.993836 21 | 1.740850, 0.996263 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/minnen-2018-neurips-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 3. This model was optimized for RGB MSE. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.071997, 0.899092 16 | 0.153354, 0.943103 17 | 0.264381, 0.964792 18 | 0.428511, 0.978774 19 | 0.635404, 0.986799 20 | 0.904279, 0.991759 21 | 1.258828, 0.994815 22 | 1.982050, 0.997636 23 | 2.992778, 0.999108 24 | -------------------------------------------------------------------------------- /results/image_compression/kodak/MS-SSIM_sRGB_Y/minnen-2018-neurips-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 3. This model was optimized for RGB MS-SSIM. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.092495, 0.934947 16 | 0.196784, 0.968697 17 | 0.392549, 0.987169 18 | 0.580614, 0.992039 19 | 0.755953, 0.994383 20 | 0.945877, 0.995871 21 | 1.195109, 0.997060 22 | 1.425766, 0.997769 23 | 1.982975, 0.998721 24 | 2.641110, 0.999256 25 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/balle-2017-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MSE)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.119752, 26.775134 13 | 0.194591, 28.348719 14 | 0.316000, 30.020793 15 | 0.481060, 31.729556 16 | 0.721303, 33.685797 17 | 1.060841, 35.815864 18 | 1.458681, 38.019954 19 | 1.957564, 40.133996 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/balle-2017-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MS-SSIM)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.088965, 24.443779 13 | 0.159174, 25.961468 14 | 0.274751, 27.258965 15 | 0.456740, 28.997272 16 | 0.657944, 30.013783 17 | 1.039564, 32.090088 18 | 1.519391, 33.892938 19 | 2.100730, 35.333526 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/balle-2017-iclr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.119752, 26.775134 13 | 0.194591, 28.348719 14 | 0.316000, 30.020793 15 | 0.481060, 31.729556 16 | 0.721303, 33.685797 17 | 1.060841, 35.815864 18 | 1.458681, 38.019954 19 | 1.957564, 40.133996 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/balle-2018-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MSE)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.115239, 27.106351 13 | 0.185698, 28.679134 14 | 0.301804, 30.616753 15 | 0.468972, 32.554935 16 | 0.686378, 34.580960 17 | 0.966864, 36.720366 18 | 1.307441, 38.807960 19 | 1.727503, 40.794920 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/balle-2018-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MS-SSIM)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.092031, 24.725623 13 | 0.166818, 26.331231 14 | 0.281376, 27.836886 15 | 0.398321, 28.710904 16 | 0.650651, 30.425433 17 | 0.996335, 32.462500 18 | 1.377538, 33.546850 19 | 2.030330, 35.394737 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/balle-2018-iclr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.115239, 27.106351 13 | 0.185698, 28.679134 14 | 0.301804, 30.616753 15 | 0.468972, 32.554935 16 | 0.686378, 34.580960 17 | 0.966864, 36.720366 18 | 1.307441, 38.807960 19 | 1.727503, 40.794920 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/bpg420.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:2:0)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 8 | # If you have questions or corrections, please contact: 9 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 10 | 11 | 0.023778, 23.791201 12 | 0.028261, 24.170052 13 | 0.034131, 24.583564 14 | 0.041103, 25.022156 15 | 0.049042, 25.445649 16 | 0.058963, 25.910184 17 | 0.070547, 26.350063 18 | 0.083888, 26.822649 19 | 0.100428, 27.306609 20 | 0.117291, 27.732251 21 | 0.138370, 28.237878 22 | 0.161282, 28.676496 23 | 0.189494, 29.215355 24 | 0.219051, 29.671082 25 | 0.256016, 30.254687 26 | 0.294495, 30.730227 27 | 0.338370, 31.313155 28 | 0.385684, 31.792825 29 | 0.440687, 32.397932 30 | 0.500803, 33.028258 31 | 0.569223, 33.673742 32 | 0.642459, 34.307052 33 | 0.711308, 34.755805 34 | 0.795128, 35.401802 35 | 0.884535, 36.017190 36 | 0.977693, 36.620787 37 | 1.083310, 37.241529 38 | 1.193119, 37.858404 39 | 1.302428, 38.418848 40 | 1.425981, 38.988973 41 | 1.558065, 39.540628 42 | 1.699156, 40.065401 43 | 1.862072, 40.618115 44 | 2.036448, 41.155617 45 | 2.211966, 41.638891 46 | 2.412092, 42.137440 47 | 2.613790, 42.670036 48 | 2.838744, 43.122145 49 | 3.068833, 43.538615 50 | 3.303337, 43.918761 51 | 3.539684, 44.257987 52 | 3.787450, 44.565300 53 | 4.045572, 44.851237 54 | 4.317412, 45.123028 55 | 4.674708, 45.475263 56 | 4.988948, 45.777371 57 | 5.355372, 46.138732 58 | 5.604246, 46.341547 59 | 5.786789, 46.442053 60 | 5.974362, 46.512323 61 | 6.206643, 46.555544 62 | 6.442166, 46.571582 63 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/bpg444.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:4:4)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 8 | # If you have questions or corrections, please contact: 9 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 10 | 11 | 0.023857, 23.787652 12 | 0.028540, 24.169736 13 | 0.034282, 24.583862 14 | 0.041183, 25.005823 15 | 0.049301, 25.441511 16 | 0.058861, 25.892665 17 | 0.070444, 26.341951 18 | 0.084175, 26.815071 19 | 0.100255, 27.298468 20 | 0.119211, 27.803390 21 | 0.140076, 28.299163 22 | 0.165529, 28.836366 23 | 0.193939, 29.370955 24 | 0.226882, 29.927924 25 | 0.264902, 30.519758 26 | 0.308004, 31.114314 27 | 0.353821, 31.707365 28 | 0.406663, 32.333445 29 | 0.465174, 32.953625 30 | 0.528513, 33.589638 31 | 0.602615, 34.260077 32 | 0.681227, 34.921675 33 | 0.763150, 35.560822 34 | 0.855122, 36.239184 35 | 0.954195, 36.892823 36 | 1.058729, 37.539114 37 | 1.178031, 38.225035 38 | 1.302895, 38.892220 39 | 1.427853, 39.508856 40 | 1.570484, 40.150529 41 | 1.724310, 40.780304 42 | 1.890798, 41.391531 43 | 2.085680, 42.054650 44 | 2.296926, 42.720115 45 | 2.513738, 43.337300 46 | 2.762745, 43.993691 47 | 3.021654, 44.653016 48 | 3.311613, 45.301270 49 | 3.616902, 45.915667 50 | 3.943210, 46.518668 51 | 4.282488, 47.080322 52 | 4.657569, 47.624560 53 | 5.069882, 48.164119 54 | 5.543335, 48.722029 55 | 6.176737, 49.453080 56 | 6.804908, 50.169809 57 | 7.545595, 51.141528 58 | 8.045927, 51.834165 59 | 8.453601, 52.318361 60 | 8.895050, 52.695935 61 | 9.349519, 52.937088 62 | 9.810592, 53.030342 63 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/j2k-kdu5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (Kakadu)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. These results are based on the Kakadu implementation of JPEG2000 8 | # More information here: https://kakadusoftware.com. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.100076, 26.108197 14 | 0.199880, 27.890083 15 | 0.249907, 28.514038 16 | 0.300371, 29.036330 17 | 0.399825, 29.972677 18 | 0.499945, 30.872714 19 | 0.600087, 31.689686 20 | 0.700465, 32.449845 21 | 0.750395, 32.733477 22 | 0.800270, 33.095389 23 | 0.900150, 33.750919 24 | 0.999644, 34.291373 25 | 1.099831, 34.873324 26 | 1.200267, 35.306661 27 | 1.250495, 35.542922 28 | 1.299869, 35.781428 29 | 1.399585, 36.266006 30 | 1.499995, 36.645802 31 | 1.600394, 37.017544 32 | 1.699370, 37.389257 33 | 1.750196, 37.587105 34 | 1.800260, 37.769052 35 | 1.899801, 38.145486 36 | 2.000136, 38.465156 37 | 2.250013, 39.304257 38 | 2.499570, 40.026987 39 | 2.749943, 40.836265 40 | 3.000182, 41.620865 41 | 3.249868, 42.383456 42 | 3.499243, 43.056914 43 | 3.750640, 43.804852 44 | 4.000155, 44.620106 45 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/j2k-opj5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (OpenJPEG)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. These results are based on the OpenJPEG implementation of JPEG2000 8 | # More information here: https://www.openjpeg.org. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.099912, 25.982922 14 | 0.200165, 28.086964 15 | 0.249945, 28.857731 16 | 0.300170, 29.547604 17 | 0.400012, 30.704949 18 | 0.499803, 31.693025 19 | 0.599782, 32.555796 20 | 0.700121, 33.346483 21 | 0.750070, 33.700536 22 | 0.799270, 34.032933 23 | 0.899998, 34.667195 24 | 0.999610, 35.272757 25 | 1.100226, 35.842500 26 | 1.200713, 36.345132 27 | 1.249957, 36.583754 28 | 1.300304, 36.822312 29 | 1.400688, 37.281795 30 | 1.499341, 37.709303 31 | 1.600190, 38.126748 32 | 1.699513, 38.515899 33 | 1.750212, 38.709807 34 | 1.800014, 38.900367 35 | 1.899858, 39.247226 36 | 1.999802, 39.573599 37 | 2.249946, 40.342620 38 | 2.500251, 41.077143 39 | 2.749595, 41.762804 40 | 3.000416, 42.417536 41 | 3.250183, 43.053957 42 | 3.498930, 43.626583 43 | 3.750190, 44.164407 44 | 3.999123, 44.685958 45 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/johnston-2017-cvpr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Johnston 2018 (CVPR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.098400, 25.042694 13 | 0.098502, 25.042694 14 | 0.123147, 25.873829 15 | 0.216631, 27.263388 16 | 0.216733, 27.263388 17 | 0.233175, 27.744344 18 | 0.243297, 27.921630 19 | 0.266381, 28.221591 20 | 0.316397, 28.994437 21 | 0.342072, 29.224412 22 | 0.359053, 29.352130 23 | 0.366377, 29.404068 24 | 0.369731, 29.430324 25 | 0.416378, 30.037679 26 | 0.466340, 30.367370 27 | 0.467073, 30.371583 28 | 0.482969, 30.452516 29 | 0.494033, 30.510900 30 | 0.514605, 30.598548 31 | 0.564585, 31.228484 32 | 0.590295, 31.341569 33 | 0.608254, 31.408429 34 | 0.614593, 31.430022 35 | 0.619498, 31.444564 36 | 0.664594, 31.979668 37 | 0.714583, 32.151746 38 | 0.715288, 32.154511 39 | 0.732207, 32.212912 40 | 0.743663, 32.242123 41 | 0.763244, 32.287842 42 | 0.813254, 33.077149 43 | 0.838921, 33.178326 44 | 0.857497, 33.239064 45 | 0.863241, 33.257011 46 | 0.869088, 33.275594 47 | 0.913244, 33.666788 48 | 0.963240, 33.824353 49 | 0.963946, 33.826372 50 | 0.982247, 33.891988 51 | 0.994077, 33.925309 52 | 1.012682, 33.971809 53 | 1.062672, 34.365477 54 | 1.088370, 34.431439 55 | 1.107454, 34.477619 56 | 1.112645, 34.490851 57 | 1.119378, 34.505873 58 | 1.162643, 34.837930 59 | 1.212635, 34.957627 60 | 1.213353, 34.959745 61 | 1.231904, 35.008865 62 | 1.243903, 35.033539 63 | 1.262037, 35.067067 64 | 1.312007, 35.429446 65 | 1.337708, 35.480270 66 | 1.357105, 35.515472 67 | 1.362025, 35.524941 68 | 1.369241, 35.537135 69 | 1.412006, 36.023957 70 | 1.461991, 36.135518 71 | 1.462680, 36.136906 72 | 1.481670, 36.186340 73 | 1.493911, 36.210172 74 | 1.511412, 36.245657 75 | 1.561425, 36.504762 76 | 1.587108, 36.556663 77 | 1.606839, 36.593405 78 | 1.611415, 36.601528 79 | 1.619153, 36.614575 80 | 1.661396, 36.683846 81 | 1.711365, 36.758485 82 | 1.712098, 36.759500 83 | 1.731499, 36.789351 84 | 1.743997, 36.804867 85 | 1.760764, 36.823389 86 | 1.810739, 36.872300 87 | 1.836470, 36.894054 88 | 1.856706, 36.908329 89 | 1.860740, 36.911385 90 | 1.869343, 36.917674 91 | 1.910750, 36.946425 92 | 1.957929, 36.972226 93 | 1.960025, 36.972114 94 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/lee-2019-context-adaptive.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Lee 2019 (ICLR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.102128, 27.635956 13 | 0.147518, 28.801123 14 | 0.204255, 29.889887 15 | 0.299291, 31.265169 16 | 0.436879, 32.831459 17 | 0.692199, 35.161797 18 | 0.995745, 37.301125 19 | 1.272340, 38.924721 20 | 1.592908, 40.357304 21 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/lee2019-iclr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Lee 2019 (ICLR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 8 | # If you have questions or corrections, please contact: 9 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 10 | 11 | 0.102128, 27.635956 12 | 0.147518, 28.801123 13 | 0.204255, 29.889887 14 | 0.299291, 31.265169 15 | 0.436879, 32.831459 16 | 0.692199, 35.161797 17 | 0.995745, 37.301125 18 | 1.272340, 38.924721 19 | 1.592908, 40.357304 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/minnen-2017-icip.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2017 (ICIP)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.250000, 26.825000 13 | 0.375000, 29.041000 14 | 0.500000, 30.418000 15 | 0.625000, 31.495000 16 | 0.750000, 32.380000 17 | 0.875000, 33.136000 18 | 1.000000, 33.796000 19 | 1.125000, 34.304000 20 | 1.250000, 34.715000 21 | 1.375000, 35.054000 22 | 1.500000, 35.297000 23 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/minnen-2018-icip.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (ICIP)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.113339, 26.748077 13 | 0.181917, 28.307032 14 | 0.290215, 29.985855 15 | 0.438877, 31.677071 16 | 0.653552, 33.650509 17 | 0.956121, 35.779404 18 | 1.309287, 37.874735 19 | 1.740850, 39.877054 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/minnen-2018-neurips-no-context.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS - No Context)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # This is a hyperprior architecture that predicts mean & scale parameters for 6 | # the entropy model, unlike (Ballé 2018) that only predicts the scale 7 | # parameter. This model does NOT include context prediction, and it was 8 | # re-trained after the paper was published so the rate-distortion numbers do 9 | # not match the paper (they're slightly better). 10 | # 11 | # Notes: 12 | # 1. Aggregate values were calculated by averaging over a constant 13 | # lambda value. 14 | # 15 | # If you have questions or corrections, please contact: 16 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 17 | 18 | 0.116419, 27.869507 19 | 0.172233, 28.844869 20 | 0.289868, 31.025364 21 | 0.455688, 33.049656 22 | 0.664587, 34.991868 23 | 0.934780, 36.993942 24 | 1.272558, 39.038383 25 | 1.692898, 40.948441 26 | 2.222060, 42.859464 27 | 2.861839, 44.557811 28 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/minnen-2018-neurips-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. This model was optimized for RGB MSE. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.071997, 26.804116 14 | 0.153354, 28.880747 15 | 0.264381, 30.927089 16 | 0.428511, 33.028649 17 | 0.635404, 34.998064 18 | 0.904279, 37.053312 19 | 1.258828, 39.120817 20 | 1.982050, 42.165220 21 | 2.992778, 45.074915 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/minnen-2018-neurips-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. This model was optimized for RGB MS-SSIM. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.092495, 25.376121 14 | 0.196784, 27.127567 15 | 0.392549, 29.273395 16 | 0.580614, 30.408266 17 | 0.755953, 31.429707 18 | 0.945877, 32.262988 19 | 1.195109, 33.434059 20 | 1.425766, 34.352065 21 | 1.982975, 35.366026 22 | 2.641110, 36.833078 23 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/minnen-2020-icip.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2020 (ICIP)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.112942, 28.609292 13 | 0.189197, 30.246944 14 | 0.299300, 31.948906 15 | 0.459559, 33.802145 16 | 0.668633, 35.756475 17 | 0.941531, 37.712819 18 | 1.279007, 39.608699 19 | 1.704720, 41.445196 20 | 2.302723, 43.649106 21 | 3.018105, 45.644330 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_RGB/toderici-2017-cvpr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Toderici 2017 (CVPR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.125000, 23.014080 13 | 0.250000, 25.646310 14 | 0.375000, 27.144170 15 | 0.500000, 28.267100 16 | 0.625000, 29.281390 17 | 0.750000, 30.144410 18 | 0.875000, 30.941350 19 | 1.000000, 31.617940 20 | 1.125000, 32.224600 21 | 1.250000, 32.761690 22 | 1.375000, 33.215720 23 | 1.500000, 33.626640 24 | 1.625000, 33.955500 25 | 1.750000, 34.237280 26 | 1.875000, 34.467500 27 | 2.000000, 34.630040 28 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/balle-2017-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MSE)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.119752, 27.121149 13 | 0.194591, 28.713727 14 | 0.316000, 30.431627 15 | 0.481060, 32.190087 16 | 0.721303, 34.241010 17 | 1.060841, 36.496619 18 | 1.458681, 38.906598 19 | 1.957564, 41.240205 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/balle-2017-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MS-SSIM)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.088965, 24.943757 13 | 0.159174, 26.331073 14 | 0.274751, 27.551279 15 | 0.456740, 29.300307 16 | 0.657944, 30.306492 17 | 1.039564, 32.420533 18 | 1.519391, 34.220280 19 | 2.100730, 35.662792 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/balle-2017-iclr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.119752, 27.121149 13 | 0.194591, 28.713727 14 | 0.316000, 30.431627 15 | 0.481060, 32.190087 16 | 0.721303, 34.241010 17 | 1.060841, 36.496619 18 | 1.458681, 38.906598 19 | 1.957564, 41.240205 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/balle-2018-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MSE)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.115239, 27.504627 13 | 0.185698, 29.082609 14 | 0.301804, 31.061476 15 | 0.468972, 33.074653 16 | 0.686378, 35.214096 17 | 0.966864, 37.518340 18 | 1.307441, 39.815185 19 | 1.727503, 42.034352 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/balle-2018-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MS-SSIM)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.092031, 25.245428 13 | 0.166818, 26.737111 14 | 0.281376, 28.156662 15 | 0.398321, 28.989463 16 | 0.650651, 30.699881 17 | 0.996335, 32.787665 18 | 1.377538, 33.888382 19 | 2.030330, 35.765154 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/balle-2018-iclr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.115239, 27.504627 13 | 0.185698, 29.082609 14 | 0.301804, 31.061476 15 | 0.468972, 33.074653 16 | 0.686378, 35.214096 17 | 0.966864, 37.518340 18 | 1.307441, 39.815185 19 | 1.727503, 42.034352 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/bpg420.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:2:0)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 8 | # If you have questions or corrections, please contact: 9 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 10 | 11 | 0.023778, 24.287397 12 | 0.028261, 24.656549 13 | 0.034131, 25.081641 14 | 0.041103, 25.532309 15 | 0.049042, 25.959701 16 | 0.058963, 26.436699 17 | 0.070547, 26.888642 18 | 0.083888, 27.364920 19 | 0.100428, 27.863698 20 | 0.117291, 28.376307 21 | 0.138370, 28.896861 22 | 0.161282, 29.446395 23 | 0.189494, 30.006163 24 | 0.219051, 30.579280 25 | 0.256016, 31.202506 26 | 0.294495, 31.822498 27 | 0.338370, 32.446956 28 | 0.385684, 33.105627 29 | 0.440687, 33.765992 30 | 0.500803, 34.455874 31 | 0.569223, 35.174676 32 | 0.642459, 35.892505 33 | 0.711308, 36.574298 34 | 0.795128, 37.318759 35 | 0.884535, 38.043481 36 | 0.977693, 38.762396 37 | 1.083310, 39.525261 38 | 1.193119, 40.281401 39 | 1.302428, 40.980401 40 | 1.425981, 41.719674 41 | 1.558065, 42.455765 42 | 1.699156, 43.185852 43 | 1.862072, 43.985735 44 | 2.036448, 44.795614 45 | 2.211966, 45.562363 46 | 2.412092, 46.401347 47 | 2.613790, 47.236733 48 | 2.838744, 48.082587 49 | 3.068833, 48.883490 50 | 3.303337, 49.617310 51 | 3.539684, 50.316557 52 | 3.787450, 50.969575 53 | 4.045572, 51.578434 54 | 4.317412, 52.209164 55 | 4.674708, 53.044924 56 | 4.988948, 53.716035 57 | 5.355372, 54.560764 58 | 5.604246, 55.138053 59 | 5.786789, 55.387165 60 | 5.974362, 55.479543 61 | 6.206643, 55.541225 62 | 6.442166, 55.570424 63 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/bpg444.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:4:4)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 8 | # If you have questions or corrections, please contact: 9 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 10 | 11 | 0.023857, 24.282063 12 | 0.028540, 24.670929 13 | 0.034282, 25.084433 14 | 0.041183, 25.513338 15 | 0.049301, 25.959705 16 | 0.058861, 26.407214 17 | 0.070444, 26.874963 18 | 0.084175, 27.356762 19 | 0.100255, 27.848479 20 | 0.119211, 28.366194 21 | 0.140076, 28.875123 22 | 0.165529, 29.431678 23 | 0.193939, 29.992299 24 | 0.226882, 30.570405 25 | 0.264902, 31.191792 26 | 0.308004, 31.816254 27 | 0.353821, 32.442969 28 | 0.406663, 33.110749 29 | 0.465174, 33.770465 30 | 0.528513, 34.456644 31 | 0.602615, 35.183826 32 | 0.681227, 35.894508 33 | 0.763150, 36.589369 34 | 0.855122, 37.332427 35 | 0.954195, 38.055663 36 | 1.058729, 38.776342 37 | 1.178031, 39.543953 38 | 1.302895, 40.305646 39 | 1.427853, 41.009316 40 | 1.570484, 41.751139 41 | 1.724310, 42.486661 42 | 1.890798, 43.216988 43 | 2.085680, 44.034160 44 | 2.296926, 44.859987 45 | 2.513738, 45.640241 46 | 2.762745, 46.500506 47 | 3.021654, 47.360175 48 | 3.311613, 48.232553 49 | 3.616902, 49.064985 50 | 3.943210, 49.854869 51 | 4.282488, 50.601471 52 | 4.657569, 51.313983 53 | 5.069882, 52.005916 54 | 5.543335, 52.735905 55 | 6.176737, 53.706155 56 | 6.804908, 54.520587 57 | 7.545595, 55.583101 58 | 8.045927, 56.331668 59 | 8.453601, 56.689431 60 | 8.895050, 56.862146 61 | 9.349519, 56.962101 62 | 9.810592, 57.004717 63 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/j2k-kdu5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (Kakadu)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. These results are based on the Kakadu implementation of JPEG2000 8 | # More information here: https://kakadusoftware.com. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.100076, 26.645733 14 | 0.199880, 28.465018 15 | 0.249907, 29.093095 16 | 0.300371, 29.614011 17 | 0.399825, 30.546576 18 | 0.499945, 31.474227 19 | 0.600087, 32.309441 20 | 0.700465, 33.095831 21 | 0.750395, 33.384622 22 | 0.800270, 33.768200 23 | 0.900150, 34.462059 24 | 0.999644, 35.032021 25 | 1.099831, 35.650619 26 | 1.200267, 36.102002 27 | 1.250495, 36.354129 28 | 1.299869, 36.622274 29 | 1.399585, 37.142209 30 | 1.499995, 37.537797 31 | 1.600394, 37.937753 32 | 1.699370, 38.344062 33 | 1.750196, 38.559526 34 | 1.800260, 38.752105 35 | 1.899801, 39.148093 36 | 2.000136, 39.501382 37 | 2.250013, 40.420899 38 | 2.499570, 41.227321 39 | 2.749943, 42.142248 40 | 3.000182, 43.064286 41 | 3.249868, 43.943734 42 | 3.499243, 44.738712 43 | 3.750640, 45.651954 44 | 4.000155, 46.656420 45 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/j2k-opj5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (OpenJPEG)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. These results are based on the OpenJPEG implementation of JPEG2000 8 | # More information here: https://www.openjpeg.org. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.099912, 26.500143 14 | 0.200165, 28.665524 15 | 0.249945, 29.471546 16 | 0.300170, 30.188834 17 | 0.400012, 31.434453 18 | 0.499803, 32.489647 19 | 0.599782, 33.411953 20 | 0.700121, 34.264553 21 | 0.750070, 34.650467 22 | 0.799270, 35.012138 23 | 0.899998, 35.718922 24 | 0.999610, 36.382860 25 | 1.100226, 36.978301 26 | 1.200713, 37.525673 27 | 1.249957, 37.794954 28 | 1.300304, 38.061436 29 | 1.400688, 38.565675 30 | 1.499341, 39.037361 31 | 1.600190, 39.494327 32 | 1.699513, 39.931074 33 | 1.750212, 40.133757 34 | 1.800014, 40.334520 35 | 1.899858, 40.693007 36 | 1.999802, 41.041602 37 | 2.249946, 41.889833 38 | 2.500251, 42.727200 39 | 2.749595, 43.515910 40 | 3.000416, 44.234837 41 | 3.250183, 44.928415 42 | 3.498930, 45.515973 43 | 3.750190, 46.101650 44 | 3.999123, 46.694943 45 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/johnston-2017-cvpr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Johnston 2018 (CVPR)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.098400, 25.415076 13 | 0.098502, 25.415076 14 | 0.123147, 26.259974 15 | 0.216631, 27.538927 16 | 0.216733, 27.538927 17 | 0.233175, 28.040858 18 | 0.243297, 28.220575 19 | 0.266381, 28.524103 20 | 0.316397, 29.321688 21 | 0.342072, 29.552020 22 | 0.359053, 29.680888 23 | 0.366377, 29.732906 24 | 0.369731, 29.758764 25 | 0.416378, 30.393611 26 | 0.466340, 30.723822 27 | 0.467073, 30.728117 28 | 0.482969, 30.802674 29 | 0.494033, 30.860739 30 | 0.514605, 30.948459 31 | 0.564585, 31.619212 32 | 0.590295, 31.734110 33 | 0.608254, 31.801859 34 | 0.614593, 31.824312 35 | 0.619498, 31.839540 36 | 0.664594, 32.388509 37 | 0.714583, 32.563383 38 | 0.715288, 32.566207 39 | 0.732207, 32.623283 40 | 0.743663, 32.653052 41 | 0.763244, 32.699191 42 | 0.813254, 33.551550 43 | 0.838921, 33.655134 44 | 0.857497, 33.718116 45 | 0.863241, 33.736489 46 | 0.869088, 33.756010 47 | 0.913244, 34.181942 48 | 0.963240, 34.346009 49 | 0.963946, 34.348151 50 | 0.982247, 34.415754 51 | 0.994077, 34.450268 52 | 1.012682, 34.498722 53 | 1.062672, 34.917596 54 | 1.088370, 34.986763 55 | 1.107454, 35.034162 56 | 1.112645, 35.048008 57 | 1.119378, 35.063655 58 | 1.162643, 35.428111 59 | 1.212635, 35.552477 60 | 1.213353, 35.554671 61 | 1.231904, 35.606055 62 | 1.243903, 35.631168 63 | 1.262037, 35.665672 64 | 1.312007, 36.072622 65 | 1.337708, 36.125868 66 | 1.357105, 36.162059 67 | 1.362025, 36.171863 68 | 1.369241, 36.184520 69 | 1.412006, 36.742886 70 | 1.461991, 36.861454 71 | 1.462680, 36.862998 72 | 1.481670, 36.908726 73 | 1.493911, 36.934076 74 | 1.511412, 36.972569 75 | 1.561425, 37.249917 76 | 1.587108, 37.305758 77 | 1.606839, 37.345230 78 | 1.611415, 37.353874 79 | 1.619153, 37.367907 80 | 1.661396, 37.440820 81 | 1.711365, 37.519927 82 | 1.712098, 37.520973 83 | 1.731499, 37.551889 84 | 1.743997, 37.567976 85 | 1.760764, 37.587388 86 | 1.810739, 37.637901 87 | 1.836470, 37.660827 88 | 1.856706, 37.675826 89 | 1.860740, 37.678869 90 | 1.869343, 37.685433 91 | 1.910750, 37.714641 92 | 1.957929, 37.740055 93 | 1.960025, 37.739949 94 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/minnen-2018-icip.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (ICIP)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.113339, 27.092317 13 | 0.181917, 28.669314 14 | 0.290215, 30.400758 15 | 0.438877, 32.130327 16 | 0.653552, 34.207464 17 | 0.956121, 36.466578 18 | 1.309287, 38.746205 19 | 1.740850, 40.991984 20 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/minnen-2018-neurips-no-context.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS - No Context)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # This is a hyperprior architecture that predicts mean & scale parameters for 6 | # the entropy model, unlike (Ballé 2018) that only predicts the scale 7 | # parameter. This model does NOT include context prediction, and it was 8 | # re-trained after the paper was published so the rate-distortion numbers do 9 | # not match the paper (they're slightly better). 10 | # 11 | # Notes: 12 | # 1. Aggregate values were calculated by averaging over a constant 13 | # lambda value. 14 | # 15 | # If you have questions or corrections, please contact: 16 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 17 | 18 | 0.116419, 28.228030 19 | 0.172233, 29.198049 20 | 0.289868, 31.461504 21 | 0.455688, 33.583410 22 | 0.664587, 35.647254 23 | 0.934780, 37.796273 24 | 1.272558, 40.061438 25 | 1.692898, 42.210400 26 | 2.222060, 44.456109 27 | 2.861839, 46.584030 28 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/minnen-2018-neurips-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. This model was optimized for RGB MSE. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.071997, 27.110375 14 | 0.153354, 29.212094 15 | 0.264381, 31.346775 16 | 0.428511, 33.543478 17 | 0.635404, 35.637747 18 | 0.904279, 37.857125 19 | 1.258828, 40.122851 20 | 1.982050, 43.581031 21 | 2.992778, 47.253899 22 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/minnen-2018-neurips-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. This model was optimized for RGB MS-SSIM. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.092495, 25.649601 14 | 0.196784, 27.390140 15 | 0.392549, 29.542959 16 | 0.580614, 30.716348 17 | 0.755953, 31.758289 18 | 0.945877, 32.604129 19 | 1.195109, 33.786184 20 | 1.425766, 34.708266 21 | 1.982975, 35.722294 22 | 2.641110, 37.149169 23 | -------------------------------------------------------------------------------- /results/image_compression/kodak/PSNR_sRGB_Y/minnen-2020-icip.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2020 (ICIP)" on kodak. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.112942, 28.929526 13 | 0.189197, 30.615043 14 | 0.299300, 32.377681 15 | 0.459559, 34.332430 16 | 0.668633, 36.410187 17 | 0.941531, 38.535650 18 | 1.279007, 40.635977 19 | 1.704720, 42.738868 20 | 2.302723, 45.135623 21 | 3.018105, 47.452751 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_RGB/balle-2017-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MSE)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.115931, 0.937430 15 | 0.174513, 0.954175 16 | 0.261745, 0.968157 17 | 0.380673, 0.976136 18 | 0.550055, 0.983301 19 | 0.793547, 0.987275 20 | 1.111101, 0.991833 21 | 1.547634, 0.994729 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_RGB/balle-2017-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MS-SSIM)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.087993, 0.940364 15 | 0.143978, 0.961145 16 | 0.230788, 0.974824 17 | 0.366453, 0.984012 18 | 0.541671, 0.989719 19 | 0.835715, 0.993990 20 | 1.255564, 0.997091 21 | 1.806730, 0.998794 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_RGB/balle-2018-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MSE)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.105457, 0.940467 15 | 0.154802, 0.957177 16 | 0.228370, 0.969590 17 | 0.330983, 0.977247 18 | 0.471083, 0.983751 19 | 0.655272, 0.988089 20 | 0.905265, 0.991795 21 | 1.262145, 0.994664 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_RGB/balle-2018-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MS-SSIM)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.084147, 0.947396 15 | 0.136033, 0.966016 16 | 0.213825, 0.977739 17 | 0.310643, 0.984355 18 | 0.491282, 0.990337 19 | 0.748023, 0.994525 20 | 1.094067, 0.997132 21 | 1.659701, 0.998906 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_RGB/bpg420.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:2:0)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.025125, 0.850612 14 | 0.029395, 0.863097 15 | 0.034544, 0.874936 16 | 0.040463, 0.886590 17 | 0.047224, 0.896829 18 | 0.055196, 0.906690 19 | 0.064515, 0.915611 20 | 0.075126, 0.924174 21 | 0.087715, 0.931614 22 | 0.099400, 0.937232 23 | 0.114569, 0.943534 24 | 0.129411, 0.948008 25 | 0.148728, 0.953211 26 | 0.166732, 0.956568 27 | 0.191210, 0.961057 28 | 0.213960, 0.963741 29 | 0.241976, 0.967120 30 | 0.269519, 0.969227 31 | 0.303815, 0.972081 32 | 0.341726, 0.974823 33 | 0.385042, 0.977222 34 | 0.431623, 0.979312 35 | 0.472215, 0.980360 36 | 0.527420, 0.982246 37 | 0.587486, 0.983861 38 | 0.652251, 0.985312 39 | 0.727601, 0.986708 40 | 0.808301, 0.988046 41 | 0.891799, 0.989127 42 | 0.988839, 0.990197 43 | 1.095368, 0.991166 44 | 1.212718, 0.992034 45 | 1.350947, 0.992907 46 | 1.501673, 0.993717 47 | 1.659002, 0.994432 48 | 1.840322, 0.995127 49 | 2.032363, 0.995918 50 | 2.243398, 0.996452 51 | 2.469170, 0.996917 52 | 2.702498, 0.997333 53 | 2.939118, 0.997681 54 | 3.191646, 0.998003 55 | 3.457013, 0.998266 56 | 3.733283, 0.998481 57 | 4.132374, 0.998808 58 | 4.442658, 0.999029 59 | 4.800078, 0.999237 60 | 5.016470, 0.999287 61 | 5.185366, 0.999322 62 | 5.361169, 0.999352 63 | 5.578033, 0.999368 64 | 5.803359, 0.999373 65 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_RGB/bpg444.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:4:4)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.025060, 0.850755 14 | 0.029257, 0.863353 15 | 0.034290, 0.875257 16 | 0.040172, 0.886926 17 | 0.046863, 0.897174 18 | 0.054726, 0.907037 19 | 0.063846, 0.915959 20 | 0.074256, 0.924533 21 | 0.086615, 0.932054 22 | 0.100555, 0.939053 23 | 0.115887, 0.945234 24 | 0.133742, 0.950845 25 | 0.153843, 0.955770 26 | 0.176214, 0.960216 27 | 0.202363, 0.964608 28 | 0.231102, 0.968253 29 | 0.261737, 0.971382 30 | 0.297317, 0.974292 31 | 0.336615, 0.976833 32 | 0.379584, 0.979218 33 | 0.430032, 0.981374 34 | 0.484752, 0.983247 35 | 0.542243, 0.984915 36 | 0.609383, 0.986560 37 | 0.682778, 0.987960 38 | 0.762960, 0.989181 39 | 0.857307, 0.990378 40 | 0.959288, 0.991525 41 | 1.066873, 0.992467 42 | 1.193355, 0.993390 43 | 1.333717, 0.994264 44 | 1.489079, 0.995026 45 | 1.673540, 0.995760 46 | 1.874180, 0.996416 47 | 2.087761, 0.996981 48 | 2.337302, 0.997517 49 | 2.606474, 0.998034 50 | 2.907534, 0.998415 51 | 3.234008, 0.998734 52 | 3.588031, 0.998989 53 | 3.955821, 0.999182 54 | 4.367805, 0.999346 55 | 4.812334, 0.999472 56 | 5.304131, 0.999567 57 | 5.975183, 0.999688 58 | 6.606795, 0.999772 59 | 7.335155, 0.999842 60 | 7.786779, 0.999857 61 | 8.188528, 0.999869 62 | 8.606709, 0.999880 63 | 9.020080, 0.999885 64 | 9.455342, 0.999888 65 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_RGB/j2k-kdu5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (Kakadu)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 3. These results are based on the Kakadu implementation of JPEG2000 10 | # More information here: https://kakadusoftware.com. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.100015, 0.919569 16 | 0.199956, 0.952502 17 | 0.249913, 0.960754 18 | 0.299939, 0.966483 19 | 0.400036, 0.974299 20 | 0.500044, 0.979272 21 | 0.600090, 0.982731 22 | 0.699950, 0.985241 23 | 0.750074, 0.986270 24 | 0.800131, 0.987221 25 | 0.900073, 0.988816 26 | 1.000134, 0.990067 27 | 1.099905, 0.991148 28 | 1.200041, 0.992047 29 | 1.249973, 0.992450 30 | 1.300113, 0.992842 31 | 1.400004, 0.993557 32 | 1.499800, 0.994143 33 | 1.599939, 0.994671 34 | 1.699833, 0.995135 35 | 1.749930, 0.995351 36 | 1.799995, 0.995557 37 | 1.900088, 0.995924 38 | 1.999878, 0.996260 39 | 2.249196, 0.997004 40 | 2.494925, 0.997557 41 | 2.739606, 0.997983 42 | 2.983564, 0.998337 43 | 3.223385, 0.998629 44 | 3.454711, 0.998845 45 | 3.680060, 0.999024 46 | 3.894861, 0.999166 47 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_RGB/j2k-opj5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (OpenJPEG)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 3. These results are based on the OpenJPEG implementation of JPEG2000 10 | # More information here: https://www.openjpeg.org. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.099969, 0.912046 16 | 0.200004, 0.945751 17 | 0.249992, 0.954138 18 | 0.300019, 0.960287 19 | 0.399950, 0.968255 20 | 0.500007, 0.973846 21 | 0.600033, 0.977766 22 | 0.699955, 0.980633 23 | 0.750041, 0.981739 24 | 0.799970, 0.982803 25 | 0.900014, 0.984569 26 | 0.999968, 0.986157 27 | 1.099988, 0.987489 28 | 1.199965, 0.988566 29 | 1.249989, 0.989051 30 | 1.299971, 0.989465 31 | 1.400071, 0.990215 32 | 1.500056, 0.990900 33 | 1.599901, 0.991479 34 | 1.700024, 0.992036 35 | 1.749973, 0.992308 36 | 1.800033, 0.992579 37 | 1.899902, 0.993099 38 | 1.999978, 0.993576 39 | 2.250005, 0.994569 40 | 2.499955, 0.995316 41 | 2.749963, 0.995901 42 | 3.000062, 0.996456 43 | 3.249997, 0.996985 44 | 3.500019, 0.997430 45 | 3.749927, 0.997777 46 | 4.000197, 0.998081 47 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_RGB/johnston-2017-cvpr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Johnston 2018 (CVPR)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.085446, 0.921561 15 | 0.195974, 0.960133 16 | 0.321704, 0.974237 17 | 0.446534, 0.980585 18 | 0.567297, 0.985052 19 | 0.692207, 0.987644 20 | 0.813974, 0.989759 21 | 0.938960, 0.991152 22 | 1.061759, 0.992429 23 | 1.186988, 0.993343 24 | 1.310126, 0.994184 25 | 1.435111, 0.994730 26 | 1.558323, 0.995319 27 | 1.681771, 0.995786 28 | 1.803392, 0.996149 29 | 1.923209, 0.996373 30 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_RGB/minnen-2018-icip.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (ICIP)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.097065, 0.937015 15 | 0.147267, 0.953919 16 | 0.219246, 0.967876 17 | 0.319637, 0.975894 18 | 0.459729, 0.983235 19 | 0.666186, 0.987221 20 | 0.933576, 0.991627 21 | 1.298130, 0.994714 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_RGB/minnen-2018-neurips-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 3. This model was optimized for RGB MSE. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.066339, 0.929896 16 | 0.126793, 0.956899 17 | 0.198055, 0.969371 18 | 0.300435, 0.978856 19 | 0.433107, 0.984426 20 | 0.615165, 0.987542 21 | 0.891458, 0.992472 22 | 1.507765, 0.993967 23 | 2.425908, 0.998597 24 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_RGB/minnen-2018-neurips-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 3. This model was optimized for RGB MS-SSIM. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.080911, 0.951014 16 | 0.160159, 0.974363 17 | 0.306288, 0.986175 18 | 0.454266, 0.990466 19 | 0.603689, 0.991907 20 | 0.746582, 0.993437 21 | 0.933949, 0.996380 22 | 1.138409, 0.997145 23 | 1.642893, 0.998888 24 | 2.288673, 0.999601 25 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_RGB/toderici-2017-cvpr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Toderici 2017 (CVPR)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.125000, 0.846800 15 | 0.250000, 0.914520 16 | 0.375000, 0.946760 17 | 0.500000, 0.961180 18 | 0.625000, 0.969770 19 | 0.750000, 0.975420 20 | 0.875000, 0.978870 21 | 1.000000, 0.981090 22 | 1.125000, 0.983340 23 | 1.250000, 0.984590 24 | 1.375000, 0.985880 25 | 1.500000, 0.986580 26 | 1.625000, 0.987210 27 | 1.750000, 0.987620 28 | 1.875000, 0.987620 29 | 2.000000, 0.987800 30 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_Y/balle-2017-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MSE)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.115931, 0.948947 15 | 0.174513, 0.963567 16 | 0.261745, 0.975993 17 | 0.380673, 0.982649 18 | 0.550055, 0.988475 19 | 0.793547, 0.991225 20 | 1.111101, 0.994542 21 | 1.547634, 0.996354 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_Y/balle-2017-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MS-SSIM)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.087993, 0.952371 15 | 0.143978, 0.970455 16 | 0.230788, 0.981901 17 | 0.366453, 0.989047 18 | 0.541671, 0.993068 19 | 0.835715, 0.995640 20 | 1.255564, 0.997456 21 | 1.806730, 0.998554 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_Y/balle-2018-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MSE)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.105457, 0.951240 15 | 0.154802, 0.966343 16 | 0.228370, 0.977179 17 | 0.330983, 0.983507 18 | 0.471083, 0.988843 19 | 0.655272, 0.992183 20 | 0.905265, 0.994779 21 | 1.262145, 0.996459 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_Y/balle-2018-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MS-SSIM)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.084147, 0.958534 15 | 0.136033, 0.974825 16 | 0.213825, 0.984461 17 | 0.310643, 0.989543 18 | 0.491282, 0.993589 19 | 0.748023, 0.996073 20 | 1.094067, 0.997538 21 | 1.659701, 0.998623 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_Y/bpg420.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:2:0)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.025125, 0.870295 14 | 0.029395, 0.882477 15 | 0.034544, 0.894148 16 | 0.040463, 0.905154 17 | 0.047224, 0.914833 18 | 0.055196, 0.924043 19 | 0.064515, 0.932391 20 | 0.075126, 0.940104 21 | 0.087715, 0.946857 22 | 0.099400, 0.953037 23 | 0.114569, 0.958423 24 | 0.129411, 0.963337 25 | 0.148728, 0.967708 26 | 0.166732, 0.971403 27 | 0.191210, 0.975073 28 | 0.213960, 0.978027 29 | 0.241976, 0.980605 30 | 0.269519, 0.982907 31 | 0.303815, 0.984891 32 | 0.341726, 0.986730 33 | 0.385042, 0.988322 34 | 0.431623, 0.989675 35 | 0.472215, 0.990823 36 | 0.527420, 0.991940 37 | 0.587486, 0.992869 38 | 0.652251, 0.993666 39 | 0.727601, 0.994422 40 | 0.808301, 0.995135 41 | 0.891799, 0.995669 42 | 0.988839, 0.996181 43 | 1.095368, 0.996644 44 | 1.212718, 0.997055 45 | 1.350947, 0.997457 46 | 1.501673, 0.997816 47 | 1.659002, 0.998125 48 | 1.840322, 0.998413 49 | 2.032363, 0.998694 50 | 2.243398, 0.998904 51 | 2.469170, 0.999077 52 | 2.702498, 0.999221 53 | 2.939118, 0.999349 54 | 3.191646, 0.999457 55 | 3.457013, 0.999548 56 | 3.733283, 0.999623 57 | 4.132374, 0.999735 58 | 4.442658, 0.999789 59 | 4.800078, 0.999844 60 | 5.016470, 0.999858 61 | 5.185366, 0.999864 62 | 5.361169, 0.999868 63 | 5.578033, 0.999869 64 | 5.803359, 0.999870 65 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_Y/bpg444.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:4:4)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.025060, 0.870150 14 | 0.029257, 0.882381 15 | 0.034290, 0.894066 16 | 0.040172, 0.905037 17 | 0.046863, 0.914705 18 | 0.054726, 0.923956 19 | 0.063846, 0.932277 20 | 0.074256, 0.939948 21 | 0.086615, 0.946846 22 | 0.100555, 0.952943 23 | 0.115887, 0.958380 24 | 0.133742, 0.963374 25 | 0.153843, 0.967716 26 | 0.176214, 0.971472 27 | 0.202363, 0.975097 28 | 0.231102, 0.978112 29 | 0.261737, 0.980653 30 | 0.297317, 0.982987 31 | 0.336615, 0.984967 32 | 0.379584, 0.986800 33 | 0.430032, 0.988393 34 | 0.484752, 0.989746 35 | 0.542243, 0.990912 36 | 0.609383, 0.992025 37 | 0.682778, 0.992955 38 | 0.762960, 0.993746 39 | 0.857307, 0.994498 40 | 0.959288, 0.995200 41 | 1.066873, 0.995729 42 | 1.193355, 0.996233 43 | 1.333717, 0.996698 44 | 1.489079, 0.997108 45 | 1.673540, 0.997508 46 | 1.874180, 0.997863 47 | 2.087761, 0.998171 48 | 2.337302, 0.998461 49 | 2.606474, 0.998734 50 | 2.907534, 0.998945 51 | 3.234008, 0.999121 52 | 3.588031, 0.999272 53 | 3.955821, 0.999401 54 | 4.367805, 0.999511 55 | 4.812334, 0.999603 56 | 5.304131, 0.999679 57 | 5.975183, 0.999787 58 | 6.606795, 0.999842 59 | 7.335155, 0.999892 60 | 7.786779, 0.999903 61 | 8.188528, 0.999909 62 | 8.606709, 0.999913 63 | 9.020080, 0.999915 64 | 9.455342, 0.999916 65 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_Y/j2k-kdu5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (Kakadu)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 3. These results are based on the Kakadu implementation of JPEG2000 10 | # More information here: https://kakadusoftware.com. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.100015, 0.938319 16 | 0.199956, 0.967436 17 | 0.249913, 0.974216 18 | 0.299939, 0.978707 19 | 0.400036, 0.984543 20 | 0.500044, 0.988093 21 | 0.600090, 0.990410 22 | 0.699950, 0.992025 23 | 0.750074, 0.992708 24 | 0.800131, 0.993257 25 | 0.900073, 0.994214 26 | 1.000134, 0.994922 27 | 1.099905, 0.995467 28 | 1.200041, 0.995938 29 | 1.249973, 0.996150 30 | 1.300113, 0.996344 31 | 1.400004, 0.996695 32 | 1.499800, 0.996985 33 | 1.599939, 0.997253 34 | 1.699833, 0.997473 35 | 1.749930, 0.997569 36 | 1.799995, 0.997661 37 | 1.900088, 0.997846 38 | 1.999878, 0.998013 39 | 2.249196, 0.998367 40 | 2.494925, 0.998645 41 | 2.739606, 0.998854 42 | 2.983564, 0.999034 43 | 3.223385, 0.999189 44 | 3.454711, 0.999299 45 | 3.680060, 0.999389 46 | 3.894861, 0.999468 47 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_Y/j2k-opj5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (OpenJPEG)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 8 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 9 | # 3. These results are based on the OpenJPEG implementation of JPEG2000 10 | # More information here: https://www.openjpeg.org. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.099969, 0.927419 16 | 0.200004, 0.958373 17 | 0.249992, 0.965700 18 | 0.300019, 0.970829 19 | 0.399950, 0.977388 20 | 0.500007, 0.982052 21 | 0.600033, 0.985066 22 | 0.699955, 0.987170 23 | 0.750041, 0.987963 24 | 0.799970, 0.988739 25 | 0.900014, 0.990011 26 | 0.999968, 0.991172 27 | 1.099988, 0.992094 28 | 1.199965, 0.992794 29 | 1.249989, 0.993098 30 | 1.299971, 0.993357 31 | 1.400071, 0.993864 32 | 1.500056, 0.994308 33 | 1.599901, 0.994700 34 | 1.700024, 0.995069 35 | 1.749973, 0.995248 36 | 1.800033, 0.995408 37 | 1.899902, 0.995733 38 | 1.999978, 0.996030 39 | 2.250005, 0.996609 40 | 2.499955, 0.997007 41 | 2.749963, 0.997351 42 | 3.000062, 0.997708 43 | 3.249997, 0.998036 44 | 3.500019, 0.998285 45 | 3.749927, 0.998473 46 | 4.000197, 0.998657 47 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_Y/johnston-2017-cvpr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Johnston 2018 (CVPR)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.085446, 0.933694 15 | 0.195974, 0.969100 16 | 0.321704, 0.981298 17 | 0.446534, 0.986102 18 | 0.567297, 0.989599 19 | 0.692207, 0.991320 20 | 0.813974, 0.993026 21 | 0.938960, 0.993975 22 | 1.061759, 0.994791 23 | 1.186988, 0.995396 24 | 1.310126, 0.996006 25 | 1.435111, 0.996428 26 | 1.558323, 0.996775 27 | 1.681771, 0.997081 28 | 1.803392, 0.997329 29 | 1.923209, 0.997483 30 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_Y/minnen-2018-icip.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (ICIP)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 11 | # If you have questions or corrections, please contact: 12 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 13 | 14 | 0.097065, 0.948393 15 | 0.147267, 0.963287 16 | 0.219246, 0.975804 17 | 0.319637, 0.982425 18 | 0.459729, 0.988411 19 | 0.666186, 0.991190 20 | 0.933576, 0.994389 21 | 1.298130, 0.996377 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_Y/minnen-2018-neurips-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 3. This model was optimized for RGB MSE. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.066339, 0.940713 16 | 0.126793, 0.965870 17 | 0.198055, 0.976842 18 | 0.300435, 0.984967 19 | 0.433107, 0.989286 20 | 0.615165, 0.991224 21 | 0.891458, 0.995066 22 | 1.507765, 0.995029 23 | 2.425908, 0.998601 24 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/MS-SSIM_sRGB_Y/minnen-2018-neurips-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains MS-SSIM/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. We often graph MS-SSIM values in dB for visual clarity using: 9 | # ms_ssim_db = -10 * log10(1 - ms_ssim). 10 | # 3. This model was optimized for RGB MS-SSIM. 11 | # 12 | # If you have questions or corrections, please contact: 13 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 14 | 15 | 0.080911, 0.961266 16 | 0.160159, 0.981464 17 | 0.306288, 0.990734 18 | 0.454266, 0.993507 19 | 0.603689, 0.994009 20 | 0.746582, 0.994754 21 | 0.933949, 0.996996 22 | 1.138409, 0.997298 23 | 1.642893, 0.998564 24 | 2.288673, 0.999301 25 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/balle-2017-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MSE)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.115931, 28.814958 13 | 0.174513, 30.453974 14 | 0.261745, 32.072275 15 | 0.380673, 33.618755 16 | 0.550055, 35.302337 17 | 0.793547, 36.988602 18 | 1.111101, 38.836650 19 | 1.547634, 40.635048 20 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/balle-2017-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MS-SSIM)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.087993, 25.942792 13 | 0.143978, 28.362603 14 | 0.230788, 30.422225 15 | 0.366453, 32.402554 16 | 0.541671, 34.032366 17 | 0.835715, 36.012969 18 | 1.255564, 37.963265 19 | 1.806730, 40.005558 20 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/balle-2018-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MSE)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.105457, 29.234396 13 | 0.154802, 30.862438 14 | 0.228370, 32.571271 15 | 0.330983, 34.146224 16 | 0.471083, 35.867773 17 | 0.655272, 37.420290 18 | 0.905265, 39.192136 19 | 1.262145, 40.975431 20 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/balle-2018-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MS-SSIM)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.084147, 26.761386 13 | 0.136033, 29.009099 14 | 0.213825, 31.078285 15 | 0.310643, 32.614011 16 | 0.491282, 34.598202 17 | 0.748023, 36.514694 18 | 1.094067, 38.140798 19 | 1.659701, 40.371750 20 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/bpg420.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:2:0)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 8 | # If you have questions or corrections, please contact: 9 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 10 | 11 | 0.025125, 25.108440 12 | 0.029395, 25.560748 13 | 0.034544, 26.028843 14 | 0.040463, 26.503189 15 | 0.047224, 26.970709 16 | 0.055196, 27.473535 17 | 0.064515, 27.965753 18 | 0.075126, 28.477030 19 | 0.087715, 28.996063 20 | 0.099400, 29.402971 21 | 0.114569, 29.912971 22 | 0.129411, 30.314543 23 | 0.148728, 30.840700 24 | 0.166732, 31.210773 25 | 0.191210, 31.761939 26 | 0.213960, 32.124665 27 | 0.241976, 32.636821 28 | 0.269519, 32.980580 29 | 0.303815, 33.493056 30 | 0.341726, 34.020723 31 | 0.385042, 34.546957 32 | 0.431623, 35.054651 33 | 0.472215, 35.335158 34 | 0.527420, 35.853048 35 | 0.587486, 36.349041 36 | 0.652251, 36.828748 37 | 0.727601, 37.327521 38 | 0.808301, 37.842482 39 | 0.891799, 38.303157 40 | 0.988839, 38.779015 41 | 1.095368, 39.244605 42 | 1.212718, 39.694798 43 | 1.350947, 40.162840 44 | 1.501673, 40.621891 45 | 1.659002, 41.045862 46 | 1.840322, 41.480828 47 | 2.032363, 42.036192 48 | 2.243398, 42.457831 49 | 2.469170, 42.859149 50 | 2.702498, 43.222989 51 | 2.939118, 43.543549 52 | 3.191646, 43.835617 53 | 3.457013, 44.103594 54 | 3.733283, 44.351841 55 | 4.132374, 44.686507 56 | 4.442658, 44.949624 57 | 4.800078, 45.245237 58 | 5.016470, 45.392588 59 | 5.185366, 45.482200 60 | 5.361169, 45.541372 61 | 5.578033, 45.575426 62 | 5.803359, 45.586806 63 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/bpg444.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:4:4)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 8 | # If you have questions or corrections, please contact: 9 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 10 | 11 | 0.025060, 25.130159 12 | 0.029257, 25.592183 13 | 0.034290, 26.055216 14 | 0.040172, 26.531930 15 | 0.046863, 27.004273 16 | 0.054726, 27.499463 17 | 0.063846, 27.999492 18 | 0.074256, 28.508719 19 | 0.086615, 29.029134 20 | 0.100555, 29.554185 21 | 0.115887, 30.071480 22 | 0.133742, 30.613787 23 | 0.153843, 31.147454 24 | 0.176214, 31.679708 25 | 0.202363, 32.244413 26 | 0.231102, 32.792671 27 | 0.261737, 33.318580 28 | 0.297317, 33.871604 29 | 0.336615, 34.414892 30 | 0.379584, 34.959656 31 | 0.430032, 35.522459 32 | 0.484752, 36.070540 33 | 0.542243, 36.595498 34 | 0.609383, 37.152488 35 | 0.682778, 37.693324 36 | 0.762960, 38.224979 37 | 0.857307, 38.788265 38 | 0.959288, 39.354760 39 | 1.066873, 39.886785 40 | 1.193355, 40.448495 41 | 1.333717, 41.012807 42 | 1.489079, 41.565179 43 | 1.673540, 42.162286 44 | 1.874180, 42.760993 45 | 2.087761, 43.330331 46 | 2.337302, 43.941209 47 | 2.606474, 44.623969 48 | 2.907534, 45.263827 49 | 3.234008, 45.912547 50 | 3.588031, 46.544429 51 | 3.955821, 47.128919 52 | 4.367805, 47.715758 53 | 4.812334, 48.297504 54 | 5.304131, 48.883236 55 | 5.975183, 49.685870 56 | 6.606795, 50.438921 57 | 7.335155, 51.375012 58 | 7.786779, 51.986365 59 | 8.188528, 52.486404 60 | 8.606709, 52.848391 61 | 9.020080, 53.066389 62 | 9.455342, 53.148213 63 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/j2k-kdu5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (Kakadu)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. These results are based on the Kakadu implementation of JPEG2000 8 | # More information here: https://kakadusoftware.com. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.100015, 28.381789 14 | 0.199956, 30.656913 15 | 0.249913, 31.415383 16 | 0.299939, 32.055291 17 | 0.400036, 33.148778 18 | 0.500044, 34.050848 19 | 0.600090, 34.842159 20 | 0.699950, 35.538219 21 | 0.750074, 35.856300 22 | 0.800131, 36.165891 23 | 0.900073, 36.707290 24 | 1.000134, 37.209243 25 | 1.099905, 37.689631 26 | 1.200041, 38.105241 27 | 1.249973, 38.306999 28 | 1.300113, 38.520757 29 | 1.400004, 38.910118 30 | 1.499800, 39.251384 31 | 1.599939, 39.599373 32 | 1.699833, 39.947778 33 | 1.749930, 40.117957 34 | 1.799995, 40.278026 35 | 1.900088, 40.586184 36 | 1.999878, 40.889266 37 | 2.249196, 41.645567 38 | 2.494925, 42.316238 39 | 2.739606, 42.953000 40 | 2.983564, 43.592275 41 | 3.223385, 44.188093 42 | 3.454711, 44.764324 43 | 3.680060, 45.293391 44 | 3.894861, 45.818191 45 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/j2k-opj5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (OpenJPEG)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. These results are based on the OpenJPEG implementation of JPEG2000 8 | # More information here: https://www.openjpeg.org. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.099969, 28.022411 14 | 0.200004, 30.516548 15 | 0.249992, 31.381928 16 | 0.300019, 32.123074 17 | 0.399950, 33.318184 18 | 0.500007, 34.284718 19 | 0.600033, 35.112138 20 | 0.699955, 35.807793 21 | 0.750041, 36.122744 22 | 0.799970, 36.427874 23 | 0.900014, 36.983414 24 | 0.999968, 37.494165 25 | 1.099988, 37.963950 26 | 1.199965, 38.392578 27 | 1.249989, 38.594304 28 | 1.299971, 38.786563 29 | 1.400071, 39.156842 30 | 1.500056, 39.508511 31 | 1.599901, 39.834260 32 | 1.700024, 40.148578 33 | 1.749973, 40.298062 34 | 1.800033, 40.448041 35 | 1.899902, 40.735378 36 | 1.999978, 41.010618 37 | 2.250005, 41.662518 38 | 2.499955, 42.252436 39 | 2.749963, 42.791643 40 | 3.000062, 43.325837 41 | 3.249997, 43.862351 42 | 3.500019, 44.374120 43 | 3.749927, 44.865032 44 | 4.000197, 45.370750 45 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/johnston-2017-cvpr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Johnston 2018 (CVPR)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.085446, 26.314558 13 | 0.195974, 29.496233 14 | 0.321704, 31.824317 15 | 0.446534, 32.916187 16 | 0.567297, 33.869245 17 | 0.692207, 34.623349 18 | 0.813974, 35.609418 19 | 0.938960, 36.157846 20 | 1.061759, 36.704908 21 | 1.186988, 37.159970 22 | 1.310126, 37.610291 23 | 1.435111, 38.146013 24 | 1.558323, 38.496106 25 | 1.681771, 38.656697 26 | 1.803392, 38.787682 27 | 1.923209, 38.881638 28 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/minnen-2018-icip.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (ICIP)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.097065, 28.760826 13 | 0.147267, 30.423427 14 | 0.219246, 32.021212 15 | 0.319637, 33.567981 16 | 0.459729, 35.252944 17 | 0.666186, 36.945702 18 | 0.933576, 38.715524 19 | 1.298130, 40.425820 20 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/minnen-2018-neurips-no-context.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS - No Context)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # This is a hyperprior architecture that predicts mean & scale parameters for 6 | # the entropy model, unlike (Ballé 2018) that only predicts the scale 7 | # parameter. This model does NOT include context prediction, and it was 8 | # re-trained after the paper was published so the rate-distortion numbers do 9 | # not match the paper (they're slightly better). 10 | # 11 | # Notes: 12 | # 1. Aggregate values were calculated by averaging over a constant 13 | # lambda value. 14 | # 15 | # If you have questions or corrections, please contact: 16 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 17 | 18 | 0.097592, 29.825435 19 | 0.143705, 31.158879 20 | 0.217932, 32.901252 21 | 0.321835, 34.596166 22 | 0.454096, 36.206039 23 | 0.643380, 37.828745 24 | 0.894995, 39.536067 25 | 1.254544, 41.178960 26 | 1.721664, 42.878329 27 | 2.312102, 44.415901 28 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/minnen-2018-neurips-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. This model was optimized for RGB MSE. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.066339, 28.965528 14 | 0.126793, 31.079284 15 | 0.198055, 32.687878 16 | 0.300435, 34.398752 17 | 0.433107, 35.946612 18 | 0.615165, 37.722166 19 | 0.891458, 39.611830 20 | 1.507765, 41.990448 21 | 2.425908, 44.665837 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/minnen-2018-neurips-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. This model was optimized for RGB MS-SSIM. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.080911, 28.398745 14 | 0.160159, 30.914357 15 | 0.306288, 33.294199 16 | 0.454266, 34.433899 17 | 0.603689, 34.074921 18 | 0.746582, 35.197386 19 | 0.933949, 37.481802 20 | 1.138409, 37.472761 21 | 1.642893, 40.178975 22 | 2.288673, 42.459618 23 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/minnen-2020-icip.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2020 (ICIP)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.096514, 30.768091 13 | 0.148632, 32.286996 14 | 0.222172, 33.836108 15 | 0.329241, 35.420478 16 | 0.468026, 36.990152 17 | 0.660635, 38.564633 18 | 0.917032, 40.131405 19 | 1.285604, 41.741072 20 | 1.886344, 43.937265 21 | 2.613850, 45.914066 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_RGB/toderici-2017-cvpr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Toderici 2017 (CVPR)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/R'G'B' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.125000, 23.463810 13 | 0.250000, 26.873860 14 | 0.375000, 29.043220 15 | 0.500000, 30.441750 16 | 0.625000, 31.547990 17 | 0.750000, 32.386430 18 | 0.875000, 33.056510 19 | 1.000000, 33.660230 20 | 1.125000, 34.237530 21 | 1.250000, 34.690620 22 | 1.375000, 35.059770 23 | 1.500000, 35.378670 24 | 1.625000, 35.637260 25 | 1.750000, 35.849540 26 | 1.875000, 36.024020 27 | 2.000000, 36.152240 28 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/balle-2017-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MSE)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.115931, 29.729756 13 | 0.174513, 31.382661 14 | 0.261745, 33.087073 15 | 0.380673, 34.724334 16 | 0.550055, 36.551650 17 | 0.793547, 38.382768 18 | 1.111101, 40.405371 19 | 1.547634, 42.341405 20 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/balle-2017-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2017 (ICLR, opt. MS-SSIM)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.087993, 27.738999 13 | 0.143978, 29.607432 14 | 0.230788, 31.525699 15 | 0.366453, 33.474251 16 | 0.541671, 35.125768 17 | 0.835715, 37.098851 18 | 1.255564, 39.168705 19 | 1.806730, 41.328468 20 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/balle-2018-iclr-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MSE)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.105457, 30.155857 13 | 0.154802, 31.849943 14 | 0.228370, 33.628255 15 | 0.330983, 35.302455 16 | 0.471083, 37.204157 17 | 0.655272, 38.907667 18 | 0.905265, 40.880235 19 | 1.262145, 42.772581 20 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/balle-2018-iclr-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Ballé 2018 (ICLR, opt. MS-SSIM)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.084147, 28.323724 13 | 0.136033, 30.258354 14 | 0.213825, 32.146528 15 | 0.310643, 33.666585 16 | 0.491282, 35.673115 17 | 0.748023, 37.665572 18 | 1.094067, 39.375885 19 | 1.659701, 41.717402 20 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/bpg420.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:2:0)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 8 | # If you have questions or corrections, please contact: 9 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 10 | 11 | 0.025125, 26.063739 12 | 0.029395, 26.531558 13 | 0.034544, 27.026001 14 | 0.040463, 27.527222 15 | 0.047224, 28.023212 16 | 0.055196, 28.548342 17 | 0.064515, 29.078645 18 | 0.075126, 29.622084 19 | 0.087715, 30.180369 20 | 0.099400, 30.747134 21 | 0.114569, 31.297123 22 | 0.129411, 31.881074 23 | 0.148728, 32.464938 24 | 0.166732, 33.035111 25 | 0.191210, 33.656883 26 | 0.213960, 34.249673 27 | 0.241976, 34.833106 28 | 0.269519, 35.435336 29 | 0.303815, 36.034205 30 | 0.341726, 36.645439 31 | 0.385042, 37.272629 32 | 0.431623, 37.883622 33 | 0.472215, 38.457729 34 | 0.527420, 39.080175 35 | 0.587486, 39.685077 36 | 0.652251, 40.280246 37 | 0.727601, 40.911865 38 | 0.808301, 41.548875 39 | 0.891799, 42.136518 40 | 0.988839, 42.758578 41 | 1.095368, 43.382845 42 | 1.212718, 44.008223 43 | 1.350947, 44.692220 44 | 1.501673, 45.381934 45 | 1.659002, 46.049590 46 | 1.840322, 46.775838 47 | 2.032363, 47.545531 48 | 2.243398, 48.299913 49 | 2.469170, 49.041330 50 | 2.702498, 49.736465 51 | 2.939118, 50.392237 52 | 3.191646, 51.019688 53 | 3.457013, 51.622206 54 | 3.733283, 52.234705 55 | 4.132374, 53.169080 56 | 4.442658, 53.860895 57 | 4.800078, 54.713368 58 | 5.016470, 55.204155 59 | 5.185366, 55.458964 60 | 5.361169, 55.578423 61 | 5.578033, 55.651098 62 | 5.803359, 55.682254 63 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/bpg444.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "BPG (4:4:4)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 8 | # If you have questions or corrections, please contact: 9 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 10 | 11 | 0.025060, 26.053018 12 | 0.029257, 26.521267 13 | 0.034290, 27.016155 14 | 0.040172, 27.512002 15 | 0.046863, 28.010831 16 | 0.054726, 28.533471 17 | 0.063846, 29.060449 18 | 0.074256, 29.600721 19 | 0.086615, 30.161884 20 | 0.100555, 30.728172 21 | 0.115887, 31.281166 22 | 0.133742, 31.870902 23 | 0.153843, 32.454498 24 | 0.176214, 33.035863 25 | 0.202363, 33.652100 26 | 0.231102, 34.256875 27 | 0.261737, 34.834799 28 | 0.297317, 35.449313 29 | 0.336615, 36.051620 30 | 0.379584, 36.659828 31 | 0.430032, 37.291006 32 | 0.484752, 37.906066 33 | 0.542243, 38.493979 34 | 0.609383, 39.117432 35 | 0.682778, 39.725797 36 | 0.762960, 40.322179 37 | 0.857307, 40.960719 38 | 0.959288, 41.595546 39 | 1.066873, 42.185379 40 | 1.193355, 42.811519 41 | 1.333717, 43.439110 42 | 1.489079, 44.064543 43 | 1.673540, 44.752538 44 | 1.874180, 45.446415 45 | 2.087761, 46.120959 46 | 2.337302, 46.865570 47 | 2.606474, 47.646400 48 | 2.907534, 48.427630 49 | 3.234008, 49.203734 50 | 3.588031, 49.954878 51 | 3.955821, 50.662808 52 | 4.367805, 51.363380 53 | 4.812334, 52.052181 54 | 5.304131, 52.774506 55 | 5.975183, 53.864296 56 | 6.606795, 54.750551 57 | 7.335155, 55.875064 58 | 7.786779, 56.561614 59 | 8.188528, 56.973893 60 | 8.606709, 57.208744 61 | 9.020080, 57.337532 62 | 9.455342, 57.390481 63 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/j2k-kdu5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (Kakadu)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. These results are based on the Kakadu implementation of JPEG2000 8 | # More information here: https://kakadusoftware.com. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.100015, 29.646571 14 | 0.199956, 32.160222 15 | 0.249913, 32.972934 16 | 0.299939, 33.657760 17 | 0.400036, 34.829084 18 | 0.500044, 35.807521 19 | 0.600090, 36.679655 20 | 0.699950, 37.449276 21 | 0.750074, 37.799056 22 | 0.800131, 38.138767 23 | 0.900073, 38.739924 24 | 1.000134, 39.309618 25 | 1.099905, 39.833942 26 | 1.200041, 40.282046 27 | 1.249973, 40.506801 28 | 1.300113, 40.734842 29 | 1.400004, 41.157284 30 | 1.499800, 41.536154 31 | 1.599939, 41.925053 32 | 1.699833, 42.319257 33 | 1.749930, 42.516084 34 | 1.799995, 42.696508 35 | 1.900088, 43.055422 36 | 1.999878, 43.402542 37 | 2.249196, 44.298835 38 | 2.494925, 45.108174 39 | 2.739606, 45.898246 40 | 2.983564, 46.709848 41 | 3.223385, 47.433303 42 | 3.454711, 48.124132 43 | 3.680060, 48.754920 44 | 3.894861, 49.362663 45 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/j2k-opj5.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "JPEG 2000 (OpenJPEG)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant QP value. 7 | # 2. These results are based on the OpenJPEG implementation of JPEG2000 8 | # More information here: https://www.openjpeg.org. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.099969, 29.144394 14 | 0.200004, 31.876992 15 | 0.249992, 32.825504 16 | 0.300019, 33.622997 17 | 0.399950, 34.941919 18 | 0.500007, 36.025141 19 | 0.600033, 36.931834 20 | 0.699955, 37.685199 21 | 0.750041, 38.026245 22 | 0.799970, 38.362602 23 | 0.900014, 38.986494 24 | 0.999968, 39.550104 25 | 1.099988, 40.057687 26 | 1.199965, 40.510530 27 | 1.249989, 40.716915 28 | 1.299971, 40.919919 29 | 1.400071, 41.331853 30 | 1.500056, 41.719789 31 | 1.599901, 42.090191 32 | 1.700024, 42.455010 33 | 1.749973, 42.625877 34 | 1.800033, 42.786249 35 | 1.899902, 43.092900 36 | 1.999978, 43.388900 37 | 2.250005, 44.073021 38 | 2.499955, 44.689027 39 | 2.749963, 45.303648 40 | 3.000062, 45.964578 41 | 3.249997, 46.571148 42 | 3.500019, 47.124368 43 | 3.749927, 47.653310 44 | 4.000197, 48.226607 45 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/johnston-2017-cvpr.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Johnston 2018 (CVPR)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.085446, 27.198939 13 | 0.195974, 30.344659 14 | 0.321704, 32.838875 15 | 0.446534, 33.969977 16 | 0.567297, 35.011702 17 | 0.692207, 35.766204 18 | 0.813974, 36.900857 19 | 0.938960, 37.504545 20 | 1.061759, 38.080329 21 | 1.186988, 38.588004 22 | 1.310126, 39.104969 23 | 1.435111, 39.766297 24 | 1.558323, 40.146984 25 | 1.681771, 40.329530 26 | 1.803392, 40.482974 27 | 1.923209, 40.589689 28 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/minnen-2018-icip.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (ICIP)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.097065, 29.692244 13 | 0.147267, 31.352069 14 | 0.219246, 33.051261 15 | 0.319637, 34.651911 16 | 0.459729, 36.499783 17 | 0.666186, 38.338561 18 | 0.933576, 40.255791 19 | 1.298130, 42.151668 20 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/minnen-2018-neurips-no-context.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS - No Context)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # This is a hyperprior architecture that predicts mean & scale parameters for 6 | # the entropy model, unlike (Ballé 2018) that only predicts the scale 7 | # parameter. This model does NOT include context prediction, and it was 8 | # re-trained after the paper was published so the rate-distortion numbers do 9 | # not match the paper (they're slightly better). 10 | # 11 | # Notes: 12 | # 1. Aggregate values were calculated by averaging over a constant 13 | # lambda value. 14 | # 15 | # If you have questions or corrections, please contact: 16 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 17 | 18 | 0.097592, 30.684525 19 | 0.143705, 32.099845 20 | 0.217932, 33.959365 21 | 0.321835, 35.789408 22 | 0.454096, 37.561236 23 | 0.643380, 39.321207 24 | 0.894995, 41.189046 25 | 1.254544, 42.990344 26 | 1.721664, 44.851233 27 | 2.312102, 46.634363 28 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/minnen-2018-neurips-opt-mse.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. This model was optimized for RGB MSE. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.066339, 29.777202 14 | 0.126793, 32.033807 15 | 0.198055, 33.726933 16 | 0.300435, 35.537657 17 | 0.433107, 37.251376 18 | 0.615165, 39.197575 19 | 0.891458, 41.241810 20 | 1.507765, 43.867296 21 | 2.425908, 46.926605 22 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/minnen-2018-neurips-opt-msssim.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2018 (NeurIPS)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 2. This model was optimized for RGB MS-SSIM. 9 | # 10 | # If you have questions or corrections, please contact: 11 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 12 | 13 | 0.080911, 29.202483 14 | 0.160159, 31.800084 15 | 0.306288, 34.285628 16 | 0.454266, 35.484328 17 | 0.603689, 34.855820 18 | 0.746582, 36.111850 19 | 0.933949, 38.659114 20 | 1.138409, 38.393590 21 | 1.642893, 41.480828 22 | 2.288673, 43.954690 23 | -------------------------------------------------------------------------------- /results/image_compression/tecnick/PSNR_sRGB_Y/minnen-2020-icip.txt: -------------------------------------------------------------------------------- 1 | # Aggregate rate-distortion data for "Minnen 2020 (ICIP)" on tecnick. 2 | # The first column contains bits per pixel (bpp) values. 3 | # The second column contains PSNR/sRGB/Y' values. 4 | # 5 | # Notes: 6 | # 1. Aggregate values were calculated by averaging over a constant 7 | # lambda value. 8 | # 9 | # If you have questions or corrections, please contact: 10 | # David Minnen (dminnen@google.com) or George Toderici (gtoderici@google.com). 11 | 12 | 0.096514, 31.628286 13 | 0.148632, 33.265607 14 | 0.222172, 34.920533 15 | 0.329241, 36.627327 16 | 0.468026, 38.325688 17 | 0.660635, 40.057978 18 | 0.917032, 41.765257 19 | 1.285604, 43.542740 20 | 1.886344, 45.772857 21 | 2.613850, 47.924666 22 | -------------------------------------------------------------------------------- /tensorflow_compression/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2018 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Data compression in TensorFlow.""" 16 | 17 | from tensorflow_compression.python import distributions 18 | from tensorflow_compression.python import entropy_models 19 | from tensorflow_compression.python import layers 20 | from tensorflow_compression.python import ops 21 | 22 | # pylint: disable=wildcard-import 23 | from tensorflow_compression.python.datasets.y4m_dataset import * 24 | from tensorflow_compression.python.distributions.deep_factorized import * 25 | from tensorflow_compression.python.distributions.helpers import * 26 | from tensorflow_compression.python.distributions.round_adapters import * 27 | from tensorflow_compression.python.distributions.uniform_noise import * 28 | from tensorflow_compression.python.entropy_models.continuous_batched import * 29 | from tensorflow_compression.python.entropy_models.continuous_indexed import * 30 | from tensorflow_compression.python.entropy_models.power_law import * 31 | from tensorflow_compression.python.entropy_models.universal import * 32 | from tensorflow_compression.python.layers.gdn import * 33 | from tensorflow_compression.python.layers.initializers import * 34 | from tensorflow_compression.python.layers.parameters import * 35 | from tensorflow_compression.python.layers.signal_conv import * 36 | from tensorflow_compression.python.layers.soft_round import * 37 | from tensorflow_compression.python.ops.gen_ops import * 38 | from tensorflow_compression.python.ops.math_ops import * 39 | from tensorflow_compression.python.ops.padding_ops import * 40 | from tensorflow_compression.python.ops.round_ops import * 41 | from tensorflow_compression.python.util.packed_tensors import * 42 | # pylint: enable=wildcard-import 43 | -------------------------------------------------------------------------------- /tensorflow_compression/all_tests.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """All Python tests for tensorflow_compression. 16 | 17 | This is a convenience file to be included in the pip package. 18 | """ 19 | 20 | import tensorflow as tf 21 | 22 | # pylint: disable=wildcard-import 23 | from tensorflow_compression.python.datasets.y4m_dataset_test import * 24 | 25 | from tensorflow_compression.python.distributions.deep_factorized_test import * 26 | from tensorflow_compression.python.distributions.helpers_test import * 27 | from tensorflow_compression.python.distributions.round_adapters_test import * 28 | from tensorflow_compression.python.distributions.uniform_noise_test import * 29 | 30 | from tensorflow_compression.python.entropy_models.continuous_batched_test import * 31 | from tensorflow_compression.python.entropy_models.continuous_indexed_test import * 32 | from tensorflow_compression.python.entropy_models.power_law_test import * 33 | from tensorflow_compression.python.entropy_models.universal_test import * 34 | 35 | from tensorflow_compression.python.layers.gdn_test import * 36 | from tensorflow_compression.python.layers.initializers_test import * 37 | from tensorflow_compression.python.layers.parameters_test import * 38 | from tensorflow_compression.python.layers.signal_conv_test import * 39 | from tensorflow_compression.python.layers.soft_round_test import * 40 | 41 | from tensorflow_compression.python.ops.math_ops_test import * 42 | from tensorflow_compression.python.ops.padding_ops_test import * 43 | from tensorflow_compression.python.ops.range_coding_ops_test import * 44 | from tensorflow_compression.python.ops.round_ops_test import * 45 | 46 | from tensorflow_compression.python.util.packed_tensors_test import * 47 | # pylint: enable=wildcard-import 48 | 49 | 50 | if __name__ == "__main__": 51 | tf.test.main() 52 | -------------------------------------------------------------------------------- /tensorflow_compression/cc/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | licenses(["notice"]) # Apache 2.0 4 | 5 | cc_binary( 6 | name = "libtensorflow_compression.so", 7 | srcs = glob( 8 | include = [ 9 | "kernels/*.h", 10 | "kernels/*.cc", 11 | "lib/*.h", 12 | "lib/*.cc", 13 | "ops/*.cc", 14 | ], 15 | exclude = [ 16 | "**/*_test.cc", 17 | ], 18 | ), 19 | copts = [ 20 | "-pthread", 21 | "-std=c++17", 22 | ], 23 | linkshared = 1, 24 | visibility = ["//visibility:public"], 25 | deps = [ 26 | # When building this binary together with TensorFlow, i.e., when using 27 | # manually built TensorFlow, add the TensorFlow repo in WORKSPACE file 28 | # as, say "org_tensorflow" and replace the deps with 29 | # "@org_tensorflow//tensorflow/core:framework", 30 | # "@org_tensorflow//tensorflow/core:lib", 31 | "@tensorflow_pip//:libtensorflow_framework", 32 | ], 33 | ) 34 | 35 | cc_library( 36 | name = "bit_coder", 37 | srcs = ["lib/bit_coder.cc"], 38 | hdrs = ["lib/bit_coder.h"], 39 | deps = [ 40 | "@com_google_absl//absl/base:config", 41 | "@com_google_absl//absl/status", 42 | "@com_google_absl//absl/status:statusor", 43 | "@com_google_absl//absl/strings", 44 | ], 45 | ) 46 | 47 | cc_library( 48 | name = "run_length_gamma_kernels", 49 | srcs = [ 50 | "kernels/run_length_gamma_kernels.cc", 51 | "ops/run_length_gamma_ops.cc", 52 | ], 53 | linkstatic = 1, 54 | deps = [ 55 | ":bit_coder", 56 | "@com_google_absl//absl/types:span", 57 | "@org_tensorflow//tensorflow/core:framework", 58 | "@org_tensorflow//tensorflow/core:framework_lite", 59 | "@org_tensorflow//tensorflow/core:lib", 60 | "@org_tensorflow//tensorflow/core:tflite_portable_logging", 61 | "@org_tensorflow//tensorflow/core/platform:status", 62 | ], 63 | alwayslink = 1, 64 | ) 65 | -------------------------------------------------------------------------------- /tensorflow_compression/cc/kernels/range_coder_kernels.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2021 Google LLC. All Rights Reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | ==============================================================================*/ 15 | 16 | #ifndef TENSORFLOW_COMPRESSION_CC_KERNELS_RANGE_CODER_KERNELS_H_ 17 | #define TENSORFLOW_COMPRESSION_CC_KERNELS_RANGE_CODER_KERNELS_H_ 18 | 19 | #include 20 | #include 21 | 22 | #include "tensorflow/core/framework/tensor_types.h" 23 | #include "tensorflow/core/framework/op_kernel.h" 24 | #include "tensorflow/core/lib/core/status.h" 25 | 26 | namespace tensorflow_compression { 27 | 28 | class EntropyEncoderInterface { 29 | public: 30 | virtual ~EntropyEncoderInterface() = default; 31 | virtual tensorflow::Status Encode( 32 | tensorflow::OpKernelContext* context, 33 | tensorflow::TTypes::ConstMatrix index, 34 | tensorflow::TTypes::ConstMatrix value) = 0; 35 | virtual tensorflow::Status Finalize(tensorflow::OpKernelContext*) = 0; 36 | }; 37 | 38 | class EntropyDecoderInterface { 39 | public: 40 | virtual ~EntropyDecoderInterface() = default; 41 | virtual tensorflow::Status Decode( 42 | tensorflow::OpKernelContext* context, 43 | tensorflow::TTypes::ConstMatrix index, 44 | tensorflow::TTypes::Matrix output) = 0; 45 | virtual tensorflow::Status Finalize(tensorflow::OpKernelContext*) = 0; 46 | }; 47 | 48 | } // namespace tensorflow_compression 49 | 50 | #endif // TENSORFLOW_COMPRESSION_CC_KERNELS_RANGE_CODER_KERNELS_H_ 51 | -------------------------------------------------------------------------------- /tensorflow_compression/cc/kernels/range_coding_kernels_util.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2018 Google LLC. All Rights Reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | ==============================================================================*/ 15 | 16 | // DEPRECATED. Use new implementation of range coders in range_coder_kernels.cc. 17 | 18 | #ifndef TENSORFLOW_COMPRESSION_CC_KERNELS_RANGE_CODING_KERNELS_UTIL_H_ 19 | #define TENSORFLOW_COMPRESSION_CC_KERNELS_RANGE_CODING_KERNELS_UTIL_H_ 20 | 21 | #include 22 | #include 23 | 24 | #include "tensorflow/core/framework/tensor_shape.h" 25 | #include "tensorflow/core/lib/core/status.h" 26 | #include "tensorflow/core/platform/types.h" 27 | 28 | namespace tensorflow_compression { 29 | 30 | // The shapes are simplified to reduce indexing cost. 31 | tensorflow::Status MergeAxes( 32 | const tensorflow::TensorShape& broadcast_shape, 33 | const tensorflow::TensorShape& storage_shape, 34 | std::vector* merged_broadcast_shape_pointer, 35 | std::vector* merged_storage_shape_pointer); 36 | 37 | } // namespace tensorflow_compression 38 | 39 | #endif // TENSORFLOW_COMPRESSION_CC_KERNELS_RANGE_CODING_KERNELS_UTIL_H_ 40 | -------------------------------------------------------------------------------- /tensorflow_compression/cc/lib/bit_coder.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2022 Google LLC. All Rights Reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | ==============================================================================*/ 15 | #ifndef THIRD_PARTY_TENSORFLOW_COMPRESSION_CC_LIB_BIT_CODER_H_ 16 | #define THIRD_PARTY_TENSORFLOW_COMPRESSION_CC_LIB_BIT_CODER_H_ 17 | 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | #include "absl/status/statusor.h" 24 | #include "absl/strings/string_view.h" 25 | 26 | // TODO(nicolemitchell) inline commonly used methods for performance reasons. 27 | namespace tensorflow_compression { 28 | 29 | class BitWriter { 30 | public: 31 | BitWriter(); 32 | void WriteBits(uint32_t count, uint64_t bits); 33 | void WriteOneBit(uint64_t bit); 34 | void WriteGamma(int32_t value); 35 | void WriteRice(int32_t value, const int parameter); 36 | absl::string_view GetData(); 37 | 38 | // WriteGamma() encodes integers to 2n - 1 bits, where n is the bit width of 39 | // the integer. For int32_t (> 0), n <= 31. 40 | static constexpr size_t kMaxGammaBits = 61; 41 | // After each WriteBits(), the buffer contains a maximum of 7 bits. So we can 42 | // safely put 57 more bits to fill the buffer. 43 | static constexpr size_t kMaxBitsPerCall = 57; 44 | 45 | private: 46 | std::string data_; 47 | std::string::size_type next_index_; 48 | size_t bits_in_buffer_; 49 | uint64_t buffer_; 50 | }; 51 | 52 | class BitReader { 53 | public: 54 | BitReader(const absl::string_view data); 55 | absl::StatusOr ReadBits(size_t count); 56 | absl::StatusOr ReadOneBit(); 57 | absl::StatusOr ReadGamma(); 58 | absl::StatusOr ReadRice(const int parameter); 59 | 60 | private: 61 | void Refill(); 62 | 63 | const char* next_byte_; 64 | const char* end_byte_; 65 | size_t bits_in_buffer_; 66 | uint64_t buffer_; 67 | }; 68 | } // namespace tensorflow_compression 69 | 70 | #endif // THIRD_PARTY_TENSORFLOW_COMPRESSION_CC_LIB_BIT_CODER_H_ 71 | -------------------------------------------------------------------------------- /tensorflow_compression/cc/ops/pmf_to_cdf_ops.cc: -------------------------------------------------------------------------------- 1 | /* Copyright 2018 Google LLC. All Rights Reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | ==============================================================================*/ 15 | 16 | #include "tensorflow/core/framework/common_shape_fns.h" 17 | #include "tensorflow/core/framework/op.h" 18 | #include "tensorflow/core/framework/shape_inference.h" 19 | #include "tensorflow/core/lib/core/status.h" 20 | 21 | namespace tensorflow_compression { 22 | namespace { 23 | using tensorflow::Status; 24 | using tensorflow::shape_inference::DimensionHandle; 25 | using tensorflow::shape_inference::InferenceContext; 26 | using tensorflow::shape_inference::ShapeHandle; 27 | 28 | REGISTER_OP("PmfToQuantizedCdf") 29 | .Input("pmf: float") 30 | .Output("cdf: int32") 31 | .Attr("precision: int >= 1") 32 | .SetShapeFn([](InferenceContext* c) { 33 | ShapeHandle in; 34 | TF_RETURN_IF_ERROR(c->WithRankAtLeast(c->input(0), 1, &in)); 35 | DimensionHandle last; 36 | TF_RETURN_IF_ERROR(c->Add(c->Dim(in, -1), 1, &last)); 37 | ShapeHandle out; 38 | TF_RETURN_IF_ERROR(c->ReplaceDim(in, -1, last, &out)); 39 | c->set_output(0, out); 40 | return absl::OkStatus(); 41 | }) 42 | .Doc(R"doc( 43 | Converts a PMF into a quantized CDF for range coding. 44 | 45 | This op uses floating-point operations internally. Therefore the quantized 46 | output may not be consistent across multiple platforms. For entropy encoders and 47 | decoders to have the same quantized CDF on different platforms, the quantized 48 | CDF should be produced once and saved, then the saved quantized CDF should be 49 | used everywhere. 50 | 51 | After quantization, if PMF does not sum to 2^precision, then some values of PMF 52 | are increased or decreased to adjust the sum to equal to 2^precision. 53 | 54 | Note that the input PMF is pre-quantization. The input PMF is not normalized 55 | by this op prior to quantization. Therefore the user is responsible for 56 | normalizing PMF if necessary. 57 | )doc"); 58 | 59 | } // namespace 60 | } // namespace tensorflow_compression 61 | -------------------------------------------------------------------------------- /tensorflow_compression/cc/ops/quantization_ops.cc: -------------------------------------------------------------------------------- 1 | /* Copyright 2022 Google LLC. All Rights Reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | ==============================================================================*/ 15 | #include "tensorflow/core/framework/common_shape_fns.h" 16 | #include "tensorflow/core/framework/op.h" 17 | 18 | namespace tensorflow_compression { 19 | namespace { 20 | 21 | REGISTER_OP("StochasticRound") 22 | .Attr("T: {bfloat16, float16, float32}") 23 | .Input("inputs: T") 24 | .Input("step_size: float32") 25 | .Input("seed: int32") 26 | .Output("outputs: int32") 27 | .SetShapeFn(tensorflow::shape_inference::UnchangedShape) 28 | .Doc(R"doc( 29 | Rounds `inputs / step_size` stochastically. 30 | 31 | This op computes the elementwise function: 32 | 33 | output = { 34 | floor(x) with prob. p = x - floor(x) 35 | floor(x) + 1 with prob. 1 - p 36 | } 37 | where x = input / step_size. 38 | 39 | inputs: Floating point tensor to be rounded. 40 | step_size: Scalar tensor. Step size for rounding. 41 | seed: Arbitrary shape tensor. Seed for random number generator. If it has no 42 | elements, seeding is attempted from system time. 43 | outputs: Integer tensor of same shape as `inputs`, containing rounded values. 44 | )doc"); 45 | 46 | } // namespace 47 | } // namespace tensorflow_compression 48 | -------------------------------------------------------------------------------- /tensorflow_compression/cc/ops/run_length_gamma_ops.cc: -------------------------------------------------------------------------------- 1 | /* Copyright 2022 Google LLC. All Rights Reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | ==============================================================================*/ 15 | #include "tensorflow/core/framework/common_shape_fns.h" 16 | #include "tensorflow/core/framework/op.h" 17 | #include "tensorflow/core/framework/shape_inference.h" 18 | #include "tensorflow/core/lib/core/status.h" 19 | 20 | namespace tensorflow_compression { 21 | namespace { 22 | namespace shape_inference = tensorflow::shape_inference; 23 | using tensorflow::shape_inference::InferenceContext; 24 | using tensorflow::shape_inference::ShapeHandle; 25 | 26 | REGISTER_OP("RunLengthGammaEncode") 27 | .Input("data: int32") 28 | .Output("code: string") 29 | .SetShapeFn(shape_inference::ScalarShape) 30 | .Doc(R"doc( 31 | Encodes `data` using run-length and Elias gamma coding. 32 | 33 | data: An int32 tensor of values to be encoded. 34 | code: An encoded scalar string. 35 | )doc"); 36 | 37 | REGISTER_OP("RunLengthGammaDecode") 38 | .Input("code: string") 39 | .Input("shape: int32") 40 | .Output("data: int32") 41 | .SetShapeFn([](InferenceContext* c) { 42 | ShapeHandle out; 43 | TF_RETURN_IF_ERROR(c->MakeShapeFromShapeTensor(1, &out)); 44 | c->set_output(0, out); 45 | return absl::OkStatus(); 46 | }) 47 | .Doc(R"doc( 48 | Decodes `data` using run-length and Elias gamma coding. 49 | 50 | This is the inverse operation to `RunLengthGammaEncode`. The shape of the tensor 51 | that was encoded must be known by the caller. 52 | 53 | code: An encoded scalar string as returned by `RunLengthGammaEncode`. 54 | shape: An int32 vector giving the shape of the encoded data. 55 | data: An int32 tensor of decoded values, with shape `shape`. 56 | )doc"); 57 | 58 | } // namespace 59 | } // namespace tensorflow_compression 60 | -------------------------------------------------------------------------------- /tensorflow_compression/cc/tflite/range_coder_kernels.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2022 Google LLC. All Rights Reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | ==============================================================================*/ 15 | 16 | #ifndef TENSORFLOW_COMPRESSION_CC_KERNELS_TFLITE_KERNELS_H_ 17 | #define TENSORFLOW_COMPRESSION_CC_KERNELS_TFLITE_KERNELS_H_ 18 | 19 | #include "tensorflow/lite/kernels/register.h" 20 | 21 | namespace tensorflow_compression { 22 | 23 | void RegisterRangeCoderOps(tflite::ops::builtin::BuiltinOpResolver* resolver); 24 | 25 | } // namespace tensorflow_compression 26 | 27 | #endif // TENSORFLOW_COMPRESSION_CC_KERNELS_TFLITE_KERNELS_H_ 28 | -------------------------------------------------------------------------------- /tensorflow_compression/python/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2023 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | 16 | -------------------------------------------------------------------------------- /tensorflow_compression/python/datasets/BUILD: -------------------------------------------------------------------------------- 1 | package( 2 | default_visibility = ["//visibility:public"], 3 | ) 4 | 5 | licenses(["notice"]) 6 | 7 | py_library( 8 | name = "datasets", 9 | srcs = ["__init__.py"], 10 | deps = [ 11 | ":y4m_dataset", 12 | ], 13 | ) 14 | 15 | py_library( 16 | name = "y4m_dataset", 17 | srcs = ["y4m_dataset.py"], 18 | deps = ["//tensorflow_compression/python/ops:gen_ops"], 19 | ) 20 | 21 | py_test( 22 | name = "y4m_dataset_test", 23 | srcs = ["y4m_dataset_test.py"], 24 | deps = [":y4m_dataset"], 25 | ) 26 | -------------------------------------------------------------------------------- /tensorflow_compression/python/datasets/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Data loaders, based on `tf.data.Dataset`.""" 16 | 17 | from tensorflow_compression.python.datasets.y4m_dataset import * 18 | -------------------------------------------------------------------------------- /tensorflow_compression/python/datasets/y4m_dataset_test.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Tests of Y4MDataset class.""" 16 | 17 | import tensorflow as tf 18 | from tensorflow_compression.python.datasets import y4m_dataset 19 | 20 | 21 | def shaped_uint8(string, shape): 22 | vector = tf.constant([int(c) for c in string], dtype=tf.uint8) 23 | return tf.reshape(vector, shape) 24 | 25 | 26 | class Y4MDatasetTest(tf.test.TestCase): 27 | 28 | def setUp(self): 29 | super().setUp() 30 | self.tempfile_1 = self.create_tempfile( 31 | content=b"YUV4MPEG2 W4 H2 F30:1 Ip A0:0 C420jpeg\nFRAME\nABCDEFGHIJKL") 32 | self.tempfile_2 = self.create_tempfile( 33 | content=b"YUV4MPEG2 C444 W1 H1\nFRAME\nabcFRAME\ndef") 34 | 35 | def test_dataset_yields_correct_sequence(self): 36 | ds = y4m_dataset.Y4MDataset( 37 | [self.tempfile_1.full_path, self.tempfile_2.full_path]) 38 | it = iter(ds) 39 | 40 | y, cbcr = next(it) 41 | self.assertEqual(tf.uint8, y.dtype) 42 | self.assertEqual(tf.uint8, cbcr.dtype) 43 | cb, cr = tf.unstack(cbcr, axis=-1) 44 | self.assertAllEqual(shaped_uint8(b"ABCDEFGH", (2, 4, 1)), y) 45 | self.assertAllEqual(shaped_uint8(b"IJ", (1, 2)), cb) 46 | self.assertAllEqual(shaped_uint8(b"KL", (1, 2)), cr) 47 | 48 | y, cbcr = next(it) 49 | self.assertEqual(tf.uint8, y.dtype) 50 | self.assertEqual(tf.uint8, cbcr.dtype) 51 | self.assertAllEqual(shaped_uint8(b"a", (1, 1, 1)), y) 52 | self.assertAllEqual(shaped_uint8(b"bc", (1, 1, 2)), cbcr) 53 | 54 | y, cbcr = next(it) 55 | self.assertEqual(tf.uint8, y.dtype) 56 | self.assertEqual(tf.uint8, cbcr.dtype) 57 | self.assertAllEqual(shaped_uint8(b"d", (1, 1, 1)), y) 58 | self.assertAllEqual(shaped_uint8(b"ef", (1, 1, 2)), cbcr) 59 | 60 | with self.assertRaises(StopIteration): 61 | next(it) 62 | 63 | 64 | if __name__ == "__main__": 65 | tf.test.main() 66 | -------------------------------------------------------------------------------- /tensorflow_compression/python/distributions/BUILD: -------------------------------------------------------------------------------- 1 | package( 2 | default_visibility = ["//visibility:public"], 3 | ) 4 | 5 | licenses(["notice"]) 6 | 7 | py_library( 8 | name = "distributions", 9 | srcs = ["__init__.py"], 10 | deps = [ 11 | ":deep_factorized", 12 | ":helpers", 13 | ":round_adapters", 14 | ":uniform_noise", 15 | ], 16 | ) 17 | 18 | py_library( 19 | name = "deep_factorized", 20 | srcs = ["deep_factorized.py"], 21 | deps = [ 22 | ":helpers", 23 | ":uniform_noise", 24 | ], 25 | ) 26 | 27 | py_test( 28 | name = "deep_factorized_test", 29 | srcs = ["deep_factorized_test.py"], 30 | deps = [ 31 | ":deep_factorized", 32 | ":helpers", 33 | ], 34 | ) 35 | 36 | py_library( 37 | name = "helpers", 38 | srcs = ["helpers.py"], 39 | ) 40 | 41 | py_test( 42 | name = "helpers_test", 43 | srcs = ["helpers_test.py"], 44 | deps = [ 45 | ":deep_factorized", 46 | ":helpers", 47 | ], 48 | ) 49 | 50 | py_library( 51 | name = "uniform_noise", 52 | srcs = ["uniform_noise.py"], 53 | deps = [":helpers"], 54 | ) 55 | 56 | py_test( 57 | name = "uniform_noise_test", 58 | srcs = ["uniform_noise_test.py"], 59 | deps = [ 60 | ":helpers", 61 | ":uniform_noise", 62 | ], 63 | ) 64 | 65 | py_library( 66 | name = "round_adapters", 67 | srcs = ["round_adapters.py"], 68 | deps = [ 69 | ":deep_factorized", 70 | ":helpers", 71 | ":uniform_noise", 72 | "//tensorflow_compression/python/ops:round_ops", 73 | ], 74 | ) 75 | 76 | py_test( 77 | name = "round_adapters_test", 78 | srcs = ["round_adapters_test.py"], 79 | deps = [ 80 | ":deep_factorized", 81 | ":round_adapters", 82 | ], 83 | ) 84 | -------------------------------------------------------------------------------- /tensorflow_compression/python/distributions/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Distributions, based on `tfp.distributions.Distribution`.""" 16 | 17 | from tensorflow_compression.python.distributions.deep_factorized import * 18 | from tensorflow_compression.python.distributions.helpers import * 19 | from tensorflow_compression.python.distributions.round_adapters import * 20 | from tensorflow_compression.python.distributions.uniform_noise import * 21 | -------------------------------------------------------------------------------- /tensorflow_compression/python/entropy_models/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Entropy models.""" 16 | 17 | from tensorflow_compression.python.entropy_models.continuous_batched import * 18 | from tensorflow_compression.python.entropy_models.continuous_indexed import * 19 | from tensorflow_compression.python.entropy_models.laplace import * 20 | from tensorflow_compression.python.entropy_models.power_law import * 21 | from tensorflow_compression.python.entropy_models.universal import * 22 | -------------------------------------------------------------------------------- /tensorflow_compression/python/layers/BUILD: -------------------------------------------------------------------------------- 1 | package( 2 | default_visibility = ["//visibility:public"], 3 | ) 4 | 5 | licenses(["notice"]) 6 | 7 | py_library( 8 | name = "layers", 9 | srcs = ["__init__.py"], 10 | deps = [ 11 | ":gdn", 12 | ":initializers", 13 | ":parameters", 14 | ":signal_conv", 15 | ":soft_round", 16 | ], 17 | ) 18 | 19 | py_library( 20 | name = "gdn", 21 | srcs = ["gdn.py"], 22 | deps = [":parameters"], 23 | ) 24 | 25 | py_test( 26 | name = "gdn_test", 27 | srcs = ["gdn_test.py"], 28 | deps = [ 29 | ":gdn", 30 | ":parameters", 31 | ], 32 | ) 33 | 34 | py_library( 35 | name = "initializers", 36 | srcs = ["initializers.py"], 37 | ) 38 | 39 | py_test( 40 | name = "initializers_test", 41 | srcs = ["initializers_test.py"], 42 | deps = [":initializers"], 43 | ) 44 | 45 | py_library( 46 | name = "parameters", 47 | srcs = ["parameters.py"], 48 | deps = ["//tensorflow_compression/python/ops:math_ops"], 49 | ) 50 | 51 | py_test( 52 | name = "parameters_test", 53 | srcs = ["parameters_test.py"], 54 | deps = [":parameters"], 55 | ) 56 | 57 | py_library( 58 | name = "signal_conv", 59 | srcs = ["signal_conv.py"], 60 | deps = [ 61 | ":parameters", 62 | "//tensorflow_compression/python/ops:padding_ops", 63 | ], 64 | ) 65 | 66 | py_test( 67 | name = "signal_conv_test", 68 | timeout = "long", 69 | srcs = ["signal_conv_test.py"], 70 | shard_count = 3, 71 | deps = [ 72 | ":initializers", 73 | ":parameters", 74 | ":signal_conv", 75 | ], 76 | ) 77 | 78 | py_library( 79 | name = "soft_round", 80 | srcs = ["soft_round.py"], 81 | deps = ["//tensorflow_compression/python/ops:round_ops"], 82 | ) 83 | 84 | py_test( 85 | name = "soft_round_test", 86 | srcs = ["soft_round_test.py"], 87 | deps = [ 88 | ":soft_round", 89 | "//tensorflow_compression/python/ops:round_ops", 90 | ], 91 | ) 92 | -------------------------------------------------------------------------------- /tensorflow_compression/python/layers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Layers, based on `tf.keras.layers.Layer`.""" 16 | 17 | from tensorflow_compression.python.layers.gdn import * 18 | from tensorflow_compression.python.layers.initializers import * 19 | from tensorflow_compression.python.layers.parameters import * 20 | from tensorflow_compression.python.layers.signal_conv import * 21 | from tensorflow_compression.python.layers.soft_round import * 22 | -------------------------------------------------------------------------------- /tensorflow_compression/python/layers/initializers.py: -------------------------------------------------------------------------------- 1 | # Copyright 2018 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Initializers for layer classes.""" 16 | 17 | import tensorflow as tf 18 | 19 | 20 | __all__ = [ 21 | "IdentityInitializer", 22 | ] 23 | 24 | 25 | class IdentityInitializer(tf.keras.initializers.Initializer): 26 | """Initialize to the identity kernel with the given shape. 27 | 28 | This creates an n-D kernel suitable for `SignalConv*` with the requested 29 | support that produces an output identical to its input (except possibly at the 30 | signal boundaries). 31 | 32 | Note: The identity initializer in `tf.keras.initializers` is only suitable for 33 | matrices, not for n-D convolution kernels (i.e., no spatial support). 34 | """ 35 | 36 | def __init__(self, gain=1): 37 | super().__init__() 38 | self.gain = gain 39 | 40 | def __call__(self, shape, dtype=None, **kwargs): 41 | del kwargs # unused 42 | shape = tf.TensorShape(shape) 43 | if shape.rank <= 2: 44 | raise ValueError(f"shape must be at least rank 3, got {shape}.") 45 | 46 | support = shape[:-2] + (1, 1) 47 | indices = [[s // 2 for s in support]] 48 | updates = tf.constant([self.gain], dtype=dtype) 49 | spatial_kernel = tf.scatter_nd(indices, updates, support) 50 | return spatial_kernel * tf.eye(shape[-2], shape[-1], dtype=dtype) 51 | 52 | def get_config(self): 53 | config = super().get_config() 54 | config.update(gain=self.gain) 55 | return config 56 | -------------------------------------------------------------------------------- /tensorflow_compression/python/layers/initializers_test.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Tests of initializers.""" 16 | 17 | import tensorflow as tf 18 | from tensorflow_compression.python.layers import initializers 19 | 20 | 21 | class InitializerTest(tf.test.TestCase): 22 | 23 | def test_creates_1d_kernel(self): 24 | expected_kernel = tf.transpose([ 25 | [[0, 3, 0], [0, 0, 0], [0, 0, 0]], 26 | [[0, 0, 0], [0, 3, 0], [0, 0, 0]], 27 | [[0, 0, 0], [0, 0, 0], [0, 3, 0]], 28 | [[0, 0, 0], [0, 0, 0], [0, 0, 0]], 29 | ], (2, 0, 1)) 30 | kernel = initializers.IdentityInitializer(gain=3)((3, 4, 3), dtype=tf.int32) 31 | self.assertAllEqual(expected_kernel, kernel) 32 | 33 | def test_creates_2d_kernel(self): 34 | expected_kernel = tf.constant([ 35 | [0, 0, 0, 0, 0], 36 | [0, 0, 0, 0, 0], 37 | [0, 0, 1, 0, 0], 38 | [0, 0, 0, 0, 0], 39 | ])[:, :, None, None] 40 | kernel = initializers.IdentityInitializer()((4, 5, 1, 1), dtype=tf.float32) 41 | self.assertAllEqual(expected_kernel, kernel) 42 | 43 | def test_fails_for_invalid_shape(self): 44 | with self.assertRaises(ValueError): 45 | initializers.IdentityInitializer()((2, 3), dtype=tf.float32) 46 | 47 | 48 | if __name__ == "__main__": 49 | tf.test.main() 50 | -------------------------------------------------------------------------------- /tensorflow_compression/python/layers/soft_round.py: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Layers for soft rounding.""" 16 | 17 | import tensorflow as tf 18 | from tensorflow_compression.python.ops import round_ops 19 | 20 | 21 | __all__ = [ 22 | "SoftRound", 23 | "SoftRoundConditionalMean", 24 | ] 25 | 26 | 27 | class SoftRound(tf.keras.layers.Layer): 28 | """Applies a differentiable approximation of rounding.""" 29 | 30 | def __init__(self, alpha=5.0, inverse=False, **kwargs): 31 | super().__init__(**kwargs) 32 | self._alpha = alpha 33 | if inverse: 34 | self._transform = round_ops.soft_round_inverse 35 | else: 36 | self._transform = round_ops.soft_round 37 | 38 | def call(self, inputs): 39 | return self._transform(inputs, self._alpha) 40 | 41 | def compute_output_shape(self, input_shape): 42 | return input_shape 43 | 44 | 45 | class SoftRoundConditionalMean(tf.keras.layers.Layer): 46 | """Conditional mean of inputs given noisy soft rounded values.""" 47 | 48 | def __init__(self, alpha=5.0, **kwargs): 49 | super().__init__(**kwargs) 50 | self._alpha = alpha 51 | 52 | def call(self, inputs): 53 | return round_ops.soft_round_conditional_mean(inputs, alpha=self._alpha) 54 | 55 | def compute_output_shape(self, input_shape): 56 | return input_shape 57 | -------------------------------------------------------------------------------- /tensorflow_compression/python/layers/soft_round_test.py: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Tests for soft round layers.""" 16 | 17 | import tensorflow as tf 18 | from tensorflow_compression.python.layers import soft_round 19 | from tensorflow_compression.python.ops import round_ops 20 | 21 | 22 | class SoftRoundTest(tf.test.TestCase): 23 | 24 | def test_soft_round_layer_soft_rounds(self): 25 | alpha = 5.0 26 | layer = soft_round.SoftRound(alpha=alpha) 27 | x = tf.linspace(-5.0, 5.0, num=50) 28 | y = layer(x) 29 | self.assertAllClose(y, round_ops.soft_round(x, alpha=alpha)) 30 | 31 | def test_soft_round_layer_inverse_inverse_soft_rounds(self): 32 | alpha = 5.0 33 | layer = soft_round.SoftRound(alpha=alpha, inverse=True) 34 | x = tf.linspace(-5.0, 5.0, num=50) 35 | y = layer(x) 36 | self.assertAllClose(y, round_ops.soft_round_inverse(x, alpha=alpha)) 37 | 38 | def test_conditional_mean_takes_conditional_mean(self): 39 | alpha = 5.0 40 | layer = soft_round.SoftRoundConditionalMean(alpha=alpha) 41 | x = tf.linspace(-5.0, 5.0, num=50) 42 | y = layer(x) 43 | self.assertAllClose( 44 | y, round_ops.soft_round_conditional_mean(x, alpha=alpha)) 45 | 46 | 47 | if __name__ == "__main__": 48 | tf.test.main() 49 | -------------------------------------------------------------------------------- /tensorflow_compression/python/ops/BUILD: -------------------------------------------------------------------------------- 1 | package( 2 | default_visibility = ["//visibility:public"], 3 | ) 4 | 5 | licenses(["notice"]) 6 | 7 | py_library( 8 | name = "ops", 9 | srcs = ["__init__.py"], 10 | deps = [ 11 | ":gen_ops", 12 | ":math_ops", 13 | ":padding_ops", 14 | ":round_ops", 15 | ], 16 | ) 17 | 18 | py_library( 19 | name = "gen_ops", 20 | srcs = ["gen_ops.py"], 21 | data = ["//tensorflow_compression/cc:libtensorflow_compression.so"], 22 | ) 23 | 24 | py_library( 25 | name = "math_ops", 26 | srcs = ["math_ops.py"], 27 | ) 28 | 29 | py_test( 30 | name = "math_ops_test", 31 | srcs = ["math_ops_test.py"], 32 | deps = [ 33 | ":math_ops", 34 | ":round_ops", 35 | ], 36 | ) 37 | 38 | py_library( 39 | name = "padding_ops", 40 | srcs = ["padding_ops.py"], 41 | ) 42 | 43 | py_test( 44 | name = "padding_ops_test", 45 | srcs = ["padding_ops_test.py"], 46 | deps = [":padding_ops"], 47 | ) 48 | 49 | py_test( 50 | name = "range_coding_ops_test", 51 | srcs = ["range_coding_ops_test.py"], 52 | deps = [":gen_ops"], 53 | ) 54 | 55 | py_library( 56 | name = "round_ops", 57 | srcs = ["round_ops.py"], 58 | ) 59 | 60 | py_test( 61 | name = "round_ops_test", 62 | srcs = ["round_ops_test.py"], 63 | deps = [":round_ops"], 64 | ) 65 | 66 | py_test( 67 | name = "quantization_ops_test", 68 | srcs = ["quantization_ops_test.py"], 69 | deps = [":gen_ops"], 70 | ) 71 | -------------------------------------------------------------------------------- /tensorflow_compression/python/ops/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """TensorFlow operations and functions.""" 16 | 17 | from tensorflow_compression.python.ops.gen_ops import * 18 | from tensorflow_compression.python.ops.math_ops import * 19 | from tensorflow_compression.python.ops.padding_ops import * 20 | from tensorflow_compression.python.ops.round_ops import * 21 | -------------------------------------------------------------------------------- /tensorflow_compression/python/ops/gen_ops.py: -------------------------------------------------------------------------------- 1 | # Copyright 2018 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Generated operations from C++.""" 16 | 17 | from tensorflow.python.framework import load_library 18 | from tensorflow.python.platform import resource_loader 19 | 20 | ops = load_library.load_op_library(resource_loader.get_path_to_datafile( 21 | "../../cc/libtensorflow_compression.so")) 22 | globals().update({n: getattr(ops, n) for n in dir(ops)}) 23 | 24 | # pylint:disable=undefined-all-variable 25 | __all__ = [ 26 | "create_range_encoder", 27 | "create_range_decoder", 28 | "entropy_decode_channel", 29 | "entropy_decode_finalize", 30 | "entropy_decode_index", 31 | "entropy_encode_channel", 32 | "entropy_encode_finalize", 33 | "entropy_encode_index", 34 | "pmf_to_quantized_cdf", 35 | "run_length_decode", 36 | "run_length_encode", 37 | "run_length_gamma_decode", # Deprecated. 38 | "run_length_gamma_encode", # Deprecated. 39 | "stochastic_round", 40 | ] 41 | # pylint:enable=undefined-all-variable 42 | -------------------------------------------------------------------------------- /tensorflow_compression/python/ops/padding_ops.py: -------------------------------------------------------------------------------- 1 | # Copyright 2018 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Padding ops.""" 16 | 17 | __all__ = [ 18 | "same_padding_for_kernel", 19 | ] 20 | 21 | 22 | def same_padding_for_kernel(shape, corr, strides_up=None): 23 | """Determine correct amount of padding for `same` convolution. 24 | 25 | To implement `'same'` convolutions, we first pad the image, and then perform a 26 | `'valid'` convolution or correlation. Given the kernel shape, this function 27 | determines the correct amount of padding so that the output of the convolution 28 | or correlation is the same size as the pre-padded input. 29 | 30 | Args: 31 | shape: Shape of the convolution kernel (without the channel dimensions). 32 | corr: Boolean. If `True`, assume cross correlation, if `False`, convolution. 33 | strides_up: If this is used for an upsampled convolution, specify the 34 | strides here. (For downsampled convolutions, specify `(1, 1)`: in that 35 | case, the strides don't matter.) 36 | 37 | Returns: 38 | The amount of padding at the beginning and end for each dimension. 39 | """ 40 | rank = len(shape) 41 | if strides_up is None: 42 | strides_up = rank * (1,) 43 | 44 | if corr: 45 | padding = [(s // 2, (s - 1) // 2) for s in shape] 46 | else: 47 | padding = [((s - 1) // 2, s // 2) for s in shape] 48 | 49 | padding = [((padding[i][0] - 1) // strides_up[i] + 1, 50 | (padding[i][1] - 1) // strides_up[i] + 1) for i in range(rank)] 51 | return padding 52 | -------------------------------------------------------------------------------- /tensorflow_compression/python/ops/range_coding_ops_test.py: -------------------------------------------------------------------------------- 1 | # Copyright 2018 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Range coding tests.""" 16 | 17 | import tensorflow as tf 18 | from tensorflow_compression.python.ops import gen_ops 19 | 20 | 21 | class RangeCodingOpsTest(tf.test.TestCase): 22 | """Python test for range coding ops. 23 | 24 | Coding ops have C++ tests. This Python test just ensures that the Python 25 | binding is not broken. 26 | """ 27 | 28 | def test_readme_example(self): 29 | data = tf.random.uniform((128, 128), 0, 10, dtype=tf.int32) 30 | histogram = tf.math.bincount(data, minlength=10, maxlength=10) 31 | cdf = tf.cumsum(histogram, exclusive=False) 32 | cdf = tf.pad(cdf, [[1, 0]]) 33 | cdf = tf.reshape(cdf, [1, 1, -1]) 34 | 35 | data = tf.cast(data, tf.int16) 36 | encoded = gen_ops.range_encode(data, cdf, precision=14) 37 | decoded = gen_ops.range_decode(encoded, tf.shape(data), cdf, precision=14) 38 | 39 | self.assertAllEqual(data, decoded) 40 | 41 | 42 | if __name__ == "__main__": 43 | tf.test.main() 44 | -------------------------------------------------------------------------------- /tensorflow_compression/python/util/BUILD: -------------------------------------------------------------------------------- 1 | package( 2 | default_visibility = ["//visibility:public"], 3 | ) 4 | 5 | licenses(["notice"]) 6 | 7 | py_library( 8 | name = "util", 9 | srcs = ["__init__.py"], 10 | deps = [ 11 | ":packed_tensors", 12 | ], 13 | ) 14 | 15 | py_library( 16 | name = "packed_tensors", 17 | srcs = ["packed_tensors.py"], 18 | ) 19 | 20 | py_test( 21 | name = "packed_tensors_test", 22 | srcs = ["packed_tensors_test.py"], 23 | deps = [":packed_tensors"], 24 | ) 25 | -------------------------------------------------------------------------------- /tensorflow_compression/python/util/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Utils.""" 16 | 17 | from tensorflow_compression.python.util.packed_tensors import * 18 | -------------------------------------------------------------------------------- /tensorflow_compression/python/util/packed_tensors_test.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Tests of PackedTensors class.""" 16 | 17 | import tensorflow as tf 18 | from tensorflow_compression.python.util import packed_tensors 19 | 20 | 21 | class PackedTensorsTest(tf.test.TestCase): 22 | 23 | def test_pack_unpack_identity(self): 24 | """Tests packing and unpacking tensors returns the same values.""" 25 | string = tf.constant(["xyz"], dtype=tf.string) 26 | shape = tf.constant([1, 3], dtype=tf.int32) 27 | packed = packed_tensors.PackedTensors() 28 | packed.pack([string, shape]) 29 | packed = packed_tensors.PackedTensors(packed.string) 30 | string_unpacked, shape_unpacked = packed.unpack([tf.string, tf.int32]) 31 | self.assertAllEqual(string_unpacked, string) 32 | self.assertAllEqual(shape_unpacked, shape) 33 | 34 | def test_set_get_model_identity(self): 35 | """Tests setting and getting model returns the same value.""" 36 | packed = packed_tensors.PackedTensors() 37 | packed.model = "xyz" 38 | packed = packed_tensors.PackedTensors(packed.string) 39 | self.assertEqual(packed.model, "xyz") 40 | del packed.model 41 | 42 | 43 | if __name__ == "__main__": 44 | tf.test.main() 45 | -------------------------------------------------------------------------------- /tensorflow_compression_ops/MANIFEST.in: -------------------------------------------------------------------------------- 1 | global-include LICENSE 2 | global-include *.md 3 | recursive-include tensorflow_compression_ops/cc/ *.so 4 | -------------------------------------------------------------------------------- /tensorflow_compression_ops/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Data compression ops in TensorFlow.""" 16 | 17 | from tensorflow.python.framework import load_library 18 | from tensorflow.python.platform import resource_loader 19 | 20 | ops = load_library.load_op_library(resource_loader.get_path_to_datafile( 21 | "cc/libtensorflow_compression.so")) 22 | 23 | globals().update({n: getattr(ops, n) for n in [ 24 | "create_range_encoder", 25 | "create_range_decoder", 26 | "entropy_decode_channel", 27 | "entropy_decode_finalize", 28 | "entropy_decode_index", 29 | "entropy_encode_channel", 30 | "entropy_encode_finalize", 31 | "entropy_encode_index", 32 | "pmf_to_quantized_cdf", 33 | "range_decode", # Deprecated. 34 | "range_encode", # Deprecated. 35 | "run_length_decode", 36 | "run_length_encode", 37 | "run_length_gamma_decode", # Deprecated. 38 | "run_length_gamma_encode", # Deprecated. 39 | "stochastic_round", 40 | ]}) 41 | 42 | -------------------------------------------------------------------------------- /tensorflow_compression_ops/requirements.txt: -------------------------------------------------------------------------------- 1 | tensorflow ~= 2.18.0 2 | -------------------------------------------------------------------------------- /tensorflow_compression_ops/test_pip_pkg.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright 2024 Google LLC. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # ============================================================================== 16 | 17 | set -ex # Fail if any command fails, echo commands. 18 | 19 | WHEEL="${1}" 20 | 21 | # `import tensorflow_compression` in the bazel root directory produces cryptic 22 | # error messages, because Python ends up looking for .so files under the 23 | # subdirectories in the src repo instead of Python module libraries. Changing 24 | # the current directory helps avoid running tests inside the bazel root 25 | # direcotory by accident. 26 | pushd /tmp 27 | 28 | python -m pip install -U pip setuptools wheel 29 | python -m pip install "${WHEEL}" 30 | python -m pip list -v 31 | 32 | # Logs elements of tfc namespace and runs unit tests. 33 | python -c "import tensorflow_compression_ops as tfc; print('\n'.join(sorted(dir(tfc))))" 34 | python -m tensorflow_compression_ops.tests.all 35 | 36 | popd # /tmp 37 | -------------------------------------------------------------------------------- /tensorflow_compression_ops/tests_all.py: -------------------------------------------------------------------------------- 1 | # Copyright 2024 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """All Python tests for tensorflow_compression_ops. 16 | 17 | This is a convenience file to be included in the pip package. 18 | """ 19 | 20 | import tensorflow as tf 21 | 22 | # pylint: disable=wildcard-import 23 | from tensorflow_compression_ops.tests.quantization_ops_test import * 24 | from tensorflow_compression_ops.tests.range_coding_ops_test import * 25 | # pylint: enable=wildcard-import 26 | 27 | 28 | if __name__ == "__main__": 29 | tf.test.main() 30 | -------------------------------------------------------------------------------- /tools/build_api_docs.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 Google LLC. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # ============================================================================== 15 | """Generates API docs for the TensorFlow Compression library.""" 16 | 17 | import os 18 | 19 | from absl import app 20 | from absl import flags 21 | 22 | from tensorflow_docs.api_generator import generate_lib 23 | from tensorflow_docs.api_generator import public_api 24 | 25 | import tensorflow_compression as tfc 26 | 27 | 28 | _OUTPUT_DIR = flags.DEFINE_string( 29 | "output_dir", "/tmp/generated_docs", 30 | "Where to write the resulting docs.") 31 | _CODE_URL_PREFIX = flags.DEFINE_string( 32 | "code_url_prefix", 33 | "https://github.com/tensorflow/compression/tree/master/tensorflow_compression", 34 | "The URL prefix for links to code.") 35 | _SEARCH_HINTS = flags.DEFINE_bool( 36 | "search_hints", True, 37 | "Whether to include metadata search hints in the generated files.") 38 | _SITE_PATH = flags.DEFINE_string( 39 | "site_path", "/api_docs/python", 40 | "Path prefix in _toc.yaml.") 41 | 42 | 43 | def gen_api_docs(): 44 | """Generates API docs for the TensorFlow Compression library.""" 45 | doc_generator = generate_lib.DocGenerator( 46 | root_title="TensorFlow Compression", 47 | py_modules=[("tfc", tfc)], 48 | base_dir=os.path.dirname(tfc.__file__), 49 | code_url_prefix=_CODE_URL_PREFIX.value, 50 | search_hints=_SEARCH_HINTS.value, 51 | site_path=_SITE_PATH.value, 52 | callbacks=[public_api.explicit_package_contents_filter]) 53 | doc_generator.build(_OUTPUT_DIR.value) 54 | print("Output docs to: ", _OUTPUT_DIR.value) 55 | 56 | 57 | def main(_): 58 | gen_api_docs() 59 | 60 | 61 | if __name__ == "__main__": 62 | app.run(main) 63 | -------------------------------------------------------------------------------- /tools/build_pip_pkg.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright 2023 Google LLC. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # ============================================================================== 16 | 17 | # This script must run at the workspace root directory. 18 | 19 | set -ex # Fail if any command fails, echo commands. 20 | 21 | # Script configuration -------------------------------------------------------- 22 | OUTPUT_DIR="${1-/tmp/tensorflow_compression}" 23 | WHEEL_VERSION=${2-0.dev0} 24 | 25 | # Optionally exported environment variables. 26 | : ${BAZEL_OPT:=} 27 | # ----------------------------------------------------------------------------- 28 | 29 | python -m pip install -U pip setuptools wheel 30 | python -m pip install -r requirements.txt 31 | bazel build ${BAZEL_OPT} -c opt --copt=-mavx tensorflow_compression/cc:libtensorflow_compression.so 32 | 33 | SRCDIR="$(mktemp -d)" 34 | trap 'rm -r -- "${SRCDIR}"' EXIT 35 | 36 | cp LICENSE README.md MANIFEST.in requirements.txt "${SRCDIR}" 37 | 38 | mkdir -p "${SRCDIR}/tensorflow_compression/cc" 39 | cp "$(bazel info -c opt bazel-genfiles)/tensorflow_compression/cc/libtensorflow_compression.so" \ 40 | "${SRCDIR}/tensorflow_compression/cc" 41 | 42 | 43 | copy_file() { 44 | local FILENAME="${1#./}" 45 | local DST="${SRCDIR%/}/$(dirname "${FILENAME}")" 46 | mkdir -p "${DST}" 47 | cp "${FILENAME}" "${DST}" 48 | } 49 | 50 | copy_file "tensorflow_compression/__init__.py" 51 | copy_file "tensorflow_compression/all_tests.py" 52 | 53 | # Assumes no irregular characters in the filenames. 54 | find tensorflow_compression/python -name "*.py" \ 55 | | while read filename; do copy_file "${filename}"; done 56 | 57 | python tools/build_pip_pkg.py "${SRCDIR}" "${OUTPUT_DIR}" "${WHEEL_VERSION}" 58 | -------------------------------------------------------------------------------- /tools/test_pip_pkg.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright 2023 Google LLC. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # ============================================================================== 16 | 17 | set -ex # Fail if any command fails, echo commands. 18 | 19 | WHEEL="${1}" 20 | 21 | # `import tensorflow_compression` in the bazel root directory produces cryptic 22 | # error messages, because Python ends up looking for .so files under the 23 | # subdirectories in the src repo instead of Python module libraries. Changing 24 | # the current directory helps avoid running tests inside the bazel root 25 | # direcotory by accident. 26 | pushd /tmp 27 | 28 | python -m pip install -U pip setuptools wheel 29 | python -m pip install "${WHEEL}" 30 | python -m pip list -v 31 | 32 | # Logs elements of tfc namespace and runs unit tests. 33 | python -c "import tensorflow_compression as tfc; print('\n'.join(sorted(dir(tfc))))" 34 | python -m tensorflow_compression.all_tests 35 | 36 | popd # /tmp 37 | -------------------------------------------------------------------------------- /workspace.bzl: -------------------------------------------------------------------------------- 1 | """WORKSPACE setup functions.""" 2 | 3 | def _tensorflow_pip_impl(ctx): 4 | python_program = ctx.which(ctx.attr.python_program) 5 | 6 | library_path = ctx.execute([ 7 | python_program, 8 | "-c", 9 | "import tensorflow; print(tensorflow.sysconfig.get_lib())", 10 | ]) 11 | include_path = ctx.execute([ 12 | python_program, 13 | "-c", 14 | "import tensorflow; print(tensorflow.sysconfig.get_include())", 15 | ]) 16 | 17 | if library_path.return_code != 0: 18 | fail("Failed to find library path. Did you remember to pip install " + 19 | "tensorflow?: %s" % library_path.stderr) 20 | if include_path.return_code != 0: 21 | fail("Failed to find include path. Did you remember to pip install " + 22 | "tensorflow?: %s" % include_path.stderr) 23 | 24 | if "linux" in ctx.os.name: 25 | library_filename = "libtensorflow_framework.so.2" 26 | elif "mac" in ctx.os.name: 27 | library_filename = "libtensorflow_framework.2.dylib" 28 | 29 | ctx.symlink("/".join([library_path.stdout.strip(), library_filename]), 30 | library_filename) 31 | ctx.symlink(include_path.stdout.strip(), "include") 32 | ctx.file("BUILD", """ 33 | cc_library( 34 | name = "libtensorflow_framework", 35 | srcs = ["{0}"], 36 | hdrs = glob(["include/**"]), 37 | includes = ["include"], 38 | visibility = ["//visibility:public"], 39 | ) 40 | """.format(library_filename)) 41 | 42 | tensorflow_pip = repository_rule( 43 | implementation = _tensorflow_pip_impl, 44 | attrs = { 45 | "python_program": attr.string(default = "python3"), 46 | }, 47 | ) 48 | 49 | def tensorflow_compression_workspace(): 50 | tensorflow_pip( 51 | name = "tensorflow_pip", 52 | python_program = "python3", 53 | ) 54 | --------------------------------------------------------------------------------