mirror of
https://github.com/JimmXinu/FanFicFare.git
synced 2025-12-06 08:52:55 +01:00
39 lines
1.7 KiB
Python
39 lines
1.7 KiB
Python
# Copyright 2021 Sidney Markowitz All Rights Reserved.
|
|
# Distributed under MIT license.
|
|
# See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
|
|
class Prefix:
|
|
"""Represents the range of values belonging to a prefix code: [offset, offset + 2^nbits)"""
|
|
def __init__(self, offset, nbits):
|
|
self.offset = offset
|
|
self.nbits = nbits
|
|
|
|
kInsertRangeLut = [0, 0, 8, 8, 0, 16, 8, 16, 16]
|
|
|
|
kCopyRangeLut = [0, 8, 0, 8, 16, 0, 16, 8, 16]
|
|
|
|
|
|
kBlockLengthPrefixCode = [
|
|
Prefix(1, 2), Prefix(5, 2), Prefix(9, 2), Prefix(13, 2),
|
|
Prefix(17, 3), Prefix(25, 3), Prefix(33, 3), Prefix(41, 3),
|
|
Prefix(49, 4), Prefix(65, 4), Prefix(81, 4), Prefix(97, 4),
|
|
Prefix(113, 5), Prefix(145, 5), Prefix(177, 5), Prefix(209, 5),
|
|
Prefix(241, 6), Prefix(305, 6), Prefix(369, 7), Prefix(497, 8),
|
|
Prefix(753, 9), Prefix(1265, 10), Prefix(2289, 11), Prefix(4337, 12),
|
|
Prefix(8433, 13), Prefix(16625, 24)]
|
|
|
|
kInsertLengthPrefixCode = [
|
|
Prefix(0, 0), Prefix(1, 0), Prefix(2, 0), Prefix(3, 0),
|
|
Prefix(4, 0), Prefix(5, 0), Prefix(6, 1), Prefix(8, 1),
|
|
Prefix(10, 2), Prefix(14, 2), Prefix(18, 3), Prefix(26, 3),
|
|
Prefix(34, 4), Prefix(50, 4), Prefix(66, 5), Prefix(98, 5),
|
|
Prefix(130, 6), Prefix(194, 7), Prefix(322, 8), Prefix(578, 9),
|
|
Prefix(1090, 10), Prefix(2114, 12), Prefix(6210, 14), Prefix(22594, 24)]
|
|
|
|
kCopyLengthPrefixCode = [
|
|
Prefix(2, 0), Prefix(3, 0), Prefix(4, 0), Prefix(5, 0),
|
|
Prefix(6, 0), Prefix(7, 0), Prefix(8, 0), Prefix(9, 0),
|
|
Prefix(10, 1), Prefix(12, 1), Prefix(14, 2), Prefix(18, 2),
|
|
Prefix(22, 3), Prefix(30, 3), Prefix(38, 4), Prefix(54, 4),
|
|
Prefix(70, 5), Prefix(102, 5), Prefix(134, 6), Prefix(198, 7),
|
|
Prefix(326, 8), Prefix(582, 9), Prefix(1094, 10), Prefix(2118, 24)]
|