Skip to main content

A range coding lib implemented in Cython

Project description

range_coding_cython

A range coding lib implemented in Cython.

Install

pip install range_coding_cython

Usage

import numpy as np
from range_coding_cython import encode_nxk, decode_nxk

# Example usage
syms = np.array([0, 1, 2, 3, 3, 3], dtype=np.uint32)

cdf = [0.0, 0.1, 0.3, 0.6, 1.0]
PRECISION = 16
cdf_table = np.array([cdf]) * (1 << PRECISION) # (1, alphabet_size + 1)
cdf_table = cdf_table.astype(np.uint32)

cdf_indices = np.array([0, 0, 0, 0, 0, 0], dtype=np.uint32)

# Encode
data = bytearray()
data = encode_nxk(syms, cdf_table, cdf_indices, data)

# Decode
buff = np.zeros_like(symbols)
dec_syms = decode_nxk(buff, cdf_table, cdf_indices, data)

# Check if the decoded symbols match the original symbols
assert np.array_equal(dec_syms, syms)

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

range_coding_cython-0.1.0.tar.gz (4.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

range_coding_cython-0.1.0-cp312-cp312-musllinux_1_1_x86_64.whl (527.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

range_coding_cython-0.1.0-cp312-cp312-musllinux_1_1_i686.whl (504.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ i686

range_coding_cython-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (489.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

range_coding_cython-0.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (484.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

File details

Details for the file range_coding_cython-0.1.0.tar.gz.

File metadata

  • Download URL: range_coding_cython-0.1.0.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.9

File hashes

Hashes for range_coding_cython-0.1.0.tar.gz
Algorithm Hash digest
SHA256 11bad71cb6220a96a9d76596cf5cab4510ffb975c1d09a5d56414e734f03752c
MD5 a272a5beb95fbb03e4f692b86a8da5b2
BLAKE2b-256 576c13b415d5afa0539d43c858d28339bc2ccc69563857b59231bea44d0169e4

See more details on using hashes here.

File details

Details for the file range_coding_cython-0.1.0-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for range_coding_cython-0.1.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4909027c0d06df3be87766c4d2f1b5784827ec5698c79ecc5f3e37157aa685ce
MD5 7f19e7209142cd62f5865d9974f6b75c
BLAKE2b-256 da8f673a17bc437be73e5c75d415107321f0c7be16aab064fb2ce12d9e0e4275

See more details on using hashes here.

File details

Details for the file range_coding_cython-0.1.0-cp312-cp312-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for range_coding_cython-0.1.0-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 9a2b1580dc153dc07bed983eaa1e7090a7426a86b7032569222f886052f07712
MD5 f9df6bc933790a0a2eb814d23dfba591
BLAKE2b-256 d532a1df88f6f333f18bede7c248d925562e3fe17ef365e376ae2b60e5f20e9e

See more details on using hashes here.

File details

Details for the file range_coding_cython-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for range_coding_cython-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 da6ac594c8b2178cc41dc75c16913a0a5c5623a57b970be02c386d8697742e0d
MD5 0f2ef8260e025bad1f8fbc287c4b3452
BLAKE2b-256 1cdbaeef996256b48d2a1b6fdddeb6ba63a7ed7053b9e29bb47b41caee134f23

See more details on using hashes here.

File details

Details for the file range_coding_cython-0.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for range_coding_cython-0.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ad12cdf04d887c6749585ae02b74d6d59fa733a463cd772a9853532902a6bdf8
MD5 021086e3cfd081c599c395d4829015dc
BLAKE2b-256 07e2a1af91d4e0ccfc4d8ffc5fdec02a9398439b7de3ef6546df9ed643f01a00

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page