def test_jpeg_inverse(self): settings.JPEG_BLOCK_SIZE = 2 compressed = model.CompressedImage( np.array([[1, 2, 11, 22], [3, 4, 33, 44]]), np.array([[5, 6, 55, 66], [7, 8, 77, 88]]), np.array([[9, 10, 99, 1010], [11, 12, 1111, 1212]])) hic = codec.jpeg_encode(compressed) inverse = codec.jpeg_decode(hic) self.assertEqual(compressed, inverse)
def test_jpeg_encode(self): compressed = model.CompressedImage(np.array([[1, 2], [3, 4]]), np.array([[5, 6], [7, 8]]), np.array([[9, 10], [11, 12]])) hic = codec.jpeg_encode(compressed) payloads = hic.payloads self.assertEqual(len(payloads), 20) self.assertEqual(hic.hic_type, model.Compression.JPEG) self.assertEqual(payloads[0].payloads[0].numbers, (1, '1'))
def test_zero_blocks(self): settings.JPEG_BLOCK_SIZE = 2 compressed = model.CompressedImage( np.array([[0, 0, 11, 0], [0, 0, 0, 0]]), np.array([[0, 0, 55, 0], [0, 0, 0, 0]]), np.array([[9, 10, 99, 1010], [11, 12, 1111, 1212]])) hic = codec.jpeg_encode(compressed) inverse = codec.jpeg_decode(hic) self.assertEqual(compressed, inverse)
def test_gh_jpg(self): rgb = cv2.imread("resources/gh.png") out = compression.jpeg_compression(rgb) h = codec.jpeg_encode(out) bites = h.byte_stream() retrieve = h.from_bytes(bites) loads = zip(h.payloads, retrieve.payloads) for (i, z) in enumerate(loads): self.assertEqual(z[0], z[1], msg="Case %d" % i)
def compress(path, output, c: model.Compression): rgb = cv2.imread(path) if c == model.Compression.JPEG: compressed = compression.jpeg_compression(rgb) hi = codec.jpeg_encode(compressed) elif c == model.Compression.HIC: compressed = compression.wavelet_compression(rgb) hi = codec.wavelet_encode(compressed) else: raise RuntimeError("Unknown compression type") output = os.path.join(output, img_name(path, c)) hi.write_file(output)
def f(): compressed = compression.jpeg_compression(i) codec.jpeg_encode(compressed)