SYMBOL INDEX (101 symbols across 7 files) FILE: bloom_compress.py class BloomFilterCompressor (line 13) | class BloomFilterCompressor: method __init__ (line 25) | def __init__(self): method _calculate_optimal_params (line 30) | def _calculate_optimal_params(n: int, p: float) -> Tuple[float, int]: method _binarize_image (line 67) | def _binarize_image(image: np.ndarray, threshold: int = 127) -> np.nda... method _binarize_text (line 90) | def _binarize_text(text: str, bit_depth: int = 8) -> np.ndarray: method _debinarize_text (line 115) | def _debinarize_text(binary_array: np.ndarray, bit_depth: int = 8) -> ... class RationalBloomFilter (line 144) | class RationalBloomFilter: method __init__ (line 148) | def __init__(self, size: int, k_star: float): method _get_hash_indices (line 166) | def _get_hash_indices(self, item: int, i: int) -> int: method _determine_activation (line 184) | def _determine_activation(self, item: int) -> bool: method add_index (line 200) | def add_index(self, index: int) -> None: method check_index (line 217) | def check_index(self, index: int) -> bool: method compress (line 241) | def compress(self, binary_input: np.ndarray) -> Tuple[np.ndarray, list... method decompress (line 307) | def decompress(self, bloom_bitmap: np.ndarray, witness: list, n: int, ... method compress_image (line 348) | def compress_image(self, image_path: str, threshold: int = 127, method decompress_image (line 385) | def decompress_image(self, compressed_data: bytes, method _pack_compressed_data (line 418) | def _pack_compressed_data(self, bloom_bitmap: np.ndarray, witness: list, method _unpack_compressed_data (line 454) | def _unpack_compressed_data(self, data: bytes) -> Tuple: method compress_text (line 490) | def compress_text(self, text: str, bit_depth: int = 8, method decompress_text (line 526) | def decompress_text(self, compressed_data: bytes, method _pack_text_data (line 557) | def _pack_text_data(self, bloom_bitmap: np.ndarray, witness: list, method _unpack_text_data (line 589) | def _unpack_text_data(self, data: bytes) -> Tuple: function run_compression_tests (line 621) | def run_compression_tests(): FILE: fixed_video_compressor.py class FixedVideoCompressor (line 15) | class FixedVideoCompressor: method __init__ (line 23) | def __init__(self, verbose=True): method compress_frame (line 27) | def compress_frame(self, frame: np.ndarray) -> bytes: method decompress_frame (line 76) | def decompress_frame(self, compressed_data: bytes) -> np.ndarray: method compress_video (line 183) | def compress_video(self, frames: List[np.ndarray]) -> List[bytes]: method decompress_video (line 200) | def decompress_video(self, compressed_frames: List[bytes]) -> List[np.... method verify_lossless (line 217) | def verify_lossless(self, original_frames: List[np.ndarray], method add_yuv_info_to_frame (line 287) | def add_yuv_info_to_frame(self, yuv_frame): function test_lossless (line 336) | def test_lossless(): FILE: improved_video_compressor.py class RationalBloomFilter (line 39) | class RationalBloomFilter: method __init__ (line 47) | def __init__(self, size: int, k_star: float): method _get_hash_indices (line 65) | def _get_hash_indices(self, item: int, i: int) -> int: method _determine_activation (line 83) | def _determine_activation(self, item: int) -> bool: method add_index (line 99) | def add_index(self, index: int) -> None: method check_index (line 116) | def check_index(self, index: int) -> bool: class BloomFilterCompressor (line 140) | class BloomFilterCompressor: method __init__ (line 152) | def __init__(self, verbose: bool = False): method _calculate_optimal_params (line 161) | def _calculate_optimal_params(self, n: int, p: float) -> Tuple[float, ... method compress (line 198) | def compress(self, binary_input: np.ndarray) -> Tuple[np.ndarray, list... method decompress (line 268) | def decompress(self, bloom_bitmap: np.ndarray, witness: list, n: int, ... class ImprovedVideoCompressor (line 309) | class ImprovedVideoCompressor: method __init__ (line 318) | def __init__(self, method compress_video (line 358) | def compress_video(self, frames: List[np.ndarray], method decompress_video (line 452) | def decompress_video(self, input_path: str = None, method verify_lossless (line 506) | def verify_lossless(self, original_frames: List[np.ndarray], method save_frames_as_video (line 525) | def save_frames_as_video(self, frames: List[np.ndarray], output_path: ... method extract_frames_from_video (line 583) | def extract_frames_from_video(self, video_path: str, max_frames: int = 0, class VideoFrameCompressor (line 671) | class VideoFrameCompressor: method __init__ (line 683) | def __init__(self, method _estimate_noise_level (line 727) | def _estimate_noise_level(self, frame: np.ndarray) -> float: method _adaptive_diff_threshold (line 748) | def _adaptive_diff_threshold(self, frame: np.ndarray) -> float: method _calculate_frame_diff (line 768) | def _calculate_frame_diff(self, prev_frame: np.ndarray, curr_frame: np... method _apply_frame_diff (line 849) | def _apply_frame_diff(self, base_frame: np.ndarray, diff_mask: np.ndar... method _compress_frame_differences (line 911) | def _compress_frame_differences(self, binary_diff: np.ndarray, method _decompress_frame_differences (line 969) | def _decompress_frame_differences(self, compressed_data: bytes, method compress_frame (line 1029) | def compress_frame(self, frame: np.ndarray, is_keyframe: bool = True) ... method decompress_frame (line 1106) | def decompress_frame(self, compressed_data: bytes) -> np.ndarray: method compress_video (line 1236) | def compress_video(self, frames: List[np.ndarray], method decompress_video (line 1330) | def decompress_video(self, input_path: str = None, method verify_lossless (line 1384) | def verify_lossless(self, original_frames: List[np.ndarray], method save_frames_as_video (line 1403) | def save_frames_as_video(self, frames: List[np.ndarray], output_path: ... method extract_frames_from_video (line 1461) | def extract_frames_from_video(self, video_path: str, max_frames: int = 0, function main (line 1549) | def main(): FILE: rational_bloom_filter.py class StandardBloomFilter (line 9) | class StandardBloomFilter: method __init__ (line 13) | def __init__(self, m: int, k: int): method _hash (line 25) | def _hash(self, item: str, seed: int) -> int: method add (line 29) | def add(self, item: str) -> None: method contains (line 35) | def contains(self, item: str) -> bool: method get_optimal_size (line 44) | def get_optimal_size(n: int, p: float) -> int: method get_optimal_hash_count (line 59) | def get_optimal_hash_count(m: int, n: int) -> int: class RationalBloomFilter (line 74) | class RationalBloomFilter: method __init__ (line 84) | def __init__(self, m: int, k_star: float): method _get_hash_indices (line 103) | def _get_hash_indices(self, item: str, i: int) -> int: method _determine_activation (line 121) | def _determine_activation(self, item: str) -> bool: method add (line 139) | def add(self, item: str) -> None: method contains (line 158) | def contains(self, item: str) -> bool: method get_optimal_size (line 185) | def get_optimal_size(n: int, p: float) -> int: method get_optimal_hash_count (line 200) | def get_optimal_hash_count(m: int, n: int) -> float: function generate_random_strings (line 217) | def generate_random_strings(n: int, length: int = 10) -> List[str]: function measure_false_positive_rate (line 222) | def measure_false_positive_rate(bloom_filter: Union[StandardBloomFilter,... function compare_filters (line 244) | def compare_filters(m: int, n: int, num_test_elements: int = 10000) -> T... function run_experiment_varying_k (line 286) | def run_experiment_varying_k(m: int, n: int, k_values: List[float], num_... function run_theoretical_comparison (line 332) | def run_theoretical_comparison(m: int, n: int, k_values: List[float]) ->... function main (line 371) | def main(): FILE: test_bloom_filters.py function generate_random_strings (line 8) | def generate_random_strings(n, length=10): function test_small_example (line 12) | def test_small_example(): function compare_varying_m_n (line 69) | def compare_varying_m_n(): function test_theoretical_vs_empirical (line 139) | def test_theoretical_vs_empirical(): FILE: test_lossless.py function convert_frames_to_yuv (line 14) | def convert_frames_to_yuv(frames): function test_lossless_reconstruction (line 42) | def test_lossless_reconstruction(video_path, max_frames=30, color_space=... function analyze_channel_differences (line 193) | def analyze_channel_differences(original_frames, decompressed_frames, co... FILE: verify_true_lossless.py function test_true_lossless (line 18) | def test_true_lossless(video_path, max_frames=30, color_spaces=None, function extract_frames (line 98) | def extract_frames(video_path, max_frames): function convert_to_color_space (line 133) | def convert_to_color_space(frames, color_space): function add_yuv_info_to_frame (line 162) | def add_yuv_info_to_frame(yuv_frame): function test_color_space (line 222) | def test_color_space(frames, color_space, keyframe_interval=10, function verify_bit_exact (line 338) | def verify_bit_exact(original_frames, decompressed_frames, color_space="... function main (line 494) | def main():