generated from mwc/lab_compression
33 lines
588 B
Python
33 lines
588 B
Python
"""
|
|
ascii6 codec
|
|
|
|
Compression idea:
|
|
Use only lower-case letters and spaces.
|
|
Everything else is removed.
|
|
|
|
Compression rate:
|
|
Better than ascii7 because fewer characters are stored.
|
|
|
|
Quality loss:
|
|
Uppercase letters, punctuation, and special characters are removed.
|
|
"""
|
|
|
|
from custom_codecs.register import register_codec
|
|
|
|
|
|
def encode(text):
|
|
cleaned = []
|
|
|
|
for c in text.lower():
|
|
if c.isalpha() or c == " ":
|
|
cleaned.append(c)
|
|
|
|
return "".join(cleaned).encode("ascii")
|
|
|
|
|
|
def decode(data):
|
|
return data.decode("ascii")
|
|
|
|
|
|
register_codec("ascii6", encode, decode)
|