From 873557f901b56f2451ff498774680aad98e39f52 Mon Sep 17 00:00:00 2001 From: Chunk Date: Thu, 2 Apr 2015 17:33:52 +0800 Subject: [PATCH] staged. --- mjpeg/__init__.py | 5 +++-- mjpeg/__init__.pyc | Bin 15812 -> 0 bytes msteg/__init__.py | 26 +++++++++++++++++++------- msteg/__init__.pyc | Bin 6079 -> 0 bytes msteg/steganography/F4.py | 15 +++++++++------ msteg/steganography/F4.pyc | Bin 4722 -> 0 bytes msteg/steganography/F5.py | 14 +++++++++----- msteg/steganography/F5.pyc | Bin 9402 -> 0 bytes 8 files changed, 40 insertions(+), 20 deletions(-) diff --git a/mjpeg/__init__.py b/mjpeg/__init__.py index f56ee4f..ea481f2 100644 --- a/mjpeg/__init__.py +++ b/mjpeg/__init__.py @@ -56,7 +56,7 @@ class Jpeg(Jsteg): Jsteg.__init__(self, file, **kw) self.verbosity = verbosity if verbosity > 0: - print "[Jpeg.__init__] Image size %ix%i" % (self.image_width, self.image_height) + print "[Jpeg] %s (%ix%i)" % (self.filename, self.image_width, self.image_height) if key != None: self.key = key elif rndkey: @@ -310,7 +310,8 @@ class Jpeg(Jsteg): if sum0 != None: if sum1 != None: sum = sum0 + sum1 - qvalue = self.quant_tables[0].ravel()[2] + self.quant_tables[0].ravel()[53] + self.quant_tables[1].ravel()[0] + self.quant_tables[1].ravel()[-1] + qvalue = self.quant_tables[0].ravel()[2] + self.quant_tables[0].ravel()[53] + \ + self.quant_tables[1].ravel()[0] + self.quant_tables[1].ravel()[-1] hashtable = bi_hash sumtable = bi_sum else: diff --git a/mjpeg/__init__.pyc b/mjpeg/__init__.pyc index 9f7e0ca..55cb514 100644 Binary files a/mjpeg/__init__.pyc and b/mjpeg/__init__.pyc differ diff --git a/msteg/__init__.py b/msteg/__init__.py index 70ee204..2ffd9cb 100644 --- a/msteg/__init__.py +++ b/msteg/__init__.py @@ -72,12 +72,14 @@ class StegBase(object): self.cov_jpeg.setCoefBlocks(cov_data) self.cov_jpeg.Jwrite(tgt_stego) - # size_cov = os.path.getsize(tgt_stego) - size_cov = np.size(cov_data) / 8 - size_embedded = np.size(hid_data) + cov_bits = np.sum(cov_data != 0) - cov_data.size / 64 + self._display_rate(cov_bits, bits_cnt) - self._display_stats("embedded", size_cov, size_embedded, - time.time() - self.t0) + # # size_cov = os.path.getsize(tgt_stego) + # size_cov = np.size(cov_data) / 8 + # size_embedded = np.size(hid_data) + # self._display_stats("embedded", size_cov, size_embedded, + # time.time() - self.t0) except TypeError as e: raise e @@ -140,27 +142,37 @@ class StegBase(object): def _display_stats(self, verb, cov_size, emb_size, duration): print( - "%dB %s in %.2fs (%.2f kBps), embedding ratio: %.4f" % + "%dB %s in %.2fs (%.2f kBps), embedding ratio: %.4f bpc" % (emb_size, verb, duration, (emb_size / duration) / 1000., float(emb_size) / cov_size)) - # set & get + def _display_rate(self, cov_bits, emb_bits): + print "embedding rate: %.4f bpc" % (float(emb_bits) / cov_bits) + + # set & get + + def set_key(self, key): assert key != None self.key = key + def get_key(self): return self.key + # dummy functions to please pylint def _raw_embed(self, cov_data, hid_data): pass + def _raw_extract(self, steg_data, num_bits): pass + def _dummy_embed_hook(self, cov_data, hid_data): pass + def _dummy_extract_hook(self, steg_data, num_bits): pass diff --git a/msteg/__init__.pyc b/msteg/__init__.pyc index a997d19..24cf1a7 100644 Binary files a/msteg/__init__.pyc and b/msteg/__init__.pyc differ diff --git a/msteg/steganography/F4.py b/msteg/steganography/F4.py index 2690307..948a6b3 100644 --- a/msteg/steganography/F4.py +++ b/msteg/steganography/F4.py @@ -46,12 +46,15 @@ class F4(StegBase): self.cov_jpeg.setsignal(cov_data, channel='Y') self.cov_jpeg.Jwrite(tgt_stego) - # size_cov = os.path.getsize(tgt_stego) - size_cov = np.size(cov_data) / 8 - size_embedded = np.size(hid_data) - - self._display_stats("embedded", size_cov, size_embedded, - time.time() - self.t0) + cov_bits = np.sum(cov_data != 0) - cov_data.size / 64 + self._display_rate(cov_bits, bits_cnt) + + # # size_cov = os.path.getsize(tgt_stego) + # size_cov = np.size(cov_data) / 8 + # size_embedded = np.size(hid_data) + # + # self._display_stats("embedded", size_cov, size_embedded, + # time.time() - self.t0) except TypeError as e: raise e diff --git a/msteg/steganography/F4.pyc b/msteg/steganography/F4.pyc index 380c741..78c5bfd 100644 Binary files a/msteg/steganography/F4.pyc and b/msteg/steganography/F4.pyc differ diff --git a/msteg/steganography/F5.py b/msteg/steganography/F5.py index ffc71ae..7cc9fda 100644 --- a/msteg/steganography/F5.py +++ b/msteg/steganography/F5.py @@ -96,12 +96,16 @@ class F5(StegBase): self.cov_jpeg.setsignal(cov_data, channel='Y') self.cov_jpeg.Jwrite(tgt_stego) - # size_cov = os.path.getsize(tgt_stego) - size_cov = np.size(cov_data) / 8 - size_embedded = np.size(hid_data) + cov_bits = np.sum(cov_data != 0) - cov_data.size / 64 + self._display_rate(cov_bits, bits_cnt) - self._display_stats("embedded", size_cov, size_embedded, - time.time() - self.t0) + + # # size_cov = os.path.getsize(tgt_stego) + # size_cov = np.size(cov_data) / 8 + # size_embedded = np.size(hid_data) + # + # self._display_stats("embedded", size_cov, size_embedded, + # time.time() - self.t0) except TypeError as e: raise e diff --git a/msteg/steganography/F5.pyc b/msteg/steganography/F5.pyc index 0a56160..31bb405 100644 Binary files a/msteg/steganography/F5.pyc and b/msteg/steganography/F5.pyc differ -- libgit2 0.21.2