Commit 873557f901b56f2451ff498774680aad98e39f52
1 parent
09268ae3
Exists in
master
staged.
Showing
8 changed files
with
40 additions
and
20 deletions
Show diff stats
mjpeg/__init__.py
@@ -56,7 +56,7 @@ class Jpeg(Jsteg): | @@ -56,7 +56,7 @@ class Jpeg(Jsteg): | ||
56 | Jsteg.__init__(self, file, **kw) | 56 | Jsteg.__init__(self, file, **kw) |
57 | self.verbosity = verbosity | 57 | self.verbosity = verbosity |
58 | if verbosity > 0: | 58 | if verbosity > 0: |
59 | - print "[Jpeg.__init__] Image size %ix%i" % (self.image_width, self.image_height) | 59 | + print "[Jpeg] %s (%ix%i)" % (self.filename, self.image_width, self.image_height) |
60 | if key != None: | 60 | if key != None: |
61 | self.key = key | 61 | self.key = key |
62 | elif rndkey: | 62 | elif rndkey: |
@@ -310,7 +310,8 @@ class Jpeg(Jsteg): | @@ -310,7 +310,8 @@ class Jpeg(Jsteg): | ||
310 | if sum0 != None: | 310 | if sum0 != None: |
311 | if sum1 != None: | 311 | if sum1 != None: |
312 | sum = sum0 + sum1 | 312 | sum = sum0 + sum1 |
313 | - 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] | 313 | + qvalue = self.quant_tables[0].ravel()[2] + self.quant_tables[0].ravel()[53] + \ |
314 | + self.quant_tables[1].ravel()[0] + self.quant_tables[1].ravel()[-1] | ||
314 | hashtable = bi_hash | 315 | hashtable = bi_hash |
315 | sumtable = bi_sum | 316 | sumtable = bi_sum |
316 | else: | 317 | else: |
mjpeg/__init__.pyc
No preview for this file type
msteg/__init__.py
@@ -72,12 +72,14 @@ class StegBase(object): | @@ -72,12 +72,14 @@ class StegBase(object): | ||
72 | self.cov_jpeg.setCoefBlocks(cov_data) | 72 | self.cov_jpeg.setCoefBlocks(cov_data) |
73 | self.cov_jpeg.Jwrite(tgt_stego) | 73 | self.cov_jpeg.Jwrite(tgt_stego) |
74 | 74 | ||
75 | - # size_cov = os.path.getsize(tgt_stego) | ||
76 | - size_cov = np.size(cov_data) / 8 | ||
77 | - size_embedded = np.size(hid_data) | 75 | + cov_bits = np.sum(cov_data != 0) - cov_data.size / 64 |
76 | + self._display_rate(cov_bits, bits_cnt) | ||
78 | 77 | ||
79 | - self._display_stats("embedded", size_cov, size_embedded, | ||
80 | - time.time() - self.t0) | 78 | + # # size_cov = os.path.getsize(tgt_stego) |
79 | + # size_cov = np.size(cov_data) / 8 | ||
80 | + # size_embedded = np.size(hid_data) | ||
81 | + # self._display_stats("embedded", size_cov, size_embedded, | ||
82 | + # time.time() - self.t0) | ||
81 | 83 | ||
82 | except TypeError as e: | 84 | except TypeError as e: |
83 | raise e | 85 | raise e |
@@ -140,27 +142,37 @@ class StegBase(object): | @@ -140,27 +142,37 @@ class StegBase(object): | ||
140 | 142 | ||
141 | def _display_stats(self, verb, cov_size, emb_size, duration): | 143 | def _display_stats(self, verb, cov_size, emb_size, duration): |
142 | print( | 144 | print( |
143 | - "%dB %s in %.2fs (%.2f kBps), embedding ratio: %.4f" % | 145 | + "%dB %s in %.2fs (%.2f kBps), embedding ratio: %.4f bpc" % |
144 | (emb_size, verb, duration, (emb_size / duration) / 1000., | 146 | (emb_size, verb, duration, (emb_size / duration) / 1000., |
145 | float(emb_size) / cov_size)) | 147 | float(emb_size) / cov_size)) |
146 | 148 | ||
147 | - # set & get | 149 | + def _display_rate(self, cov_bits, emb_bits): |
150 | + print "embedding rate: %.4f bpc" % (float(emb_bits) / cov_bits) | ||
151 | + | ||
152 | + # set & get | ||
153 | + | ||
154 | + | ||
148 | def set_key(self, key): | 155 | def set_key(self, key): |
149 | assert key != None | 156 | assert key != None |
150 | self.key = key | 157 | self.key = key |
151 | 158 | ||
159 | + | ||
152 | def get_key(self): | 160 | def get_key(self): |
153 | return self.key | 161 | return self.key |
154 | 162 | ||
163 | + | ||
155 | # dummy functions to please pylint | 164 | # dummy functions to please pylint |
156 | def _raw_embed(self, cov_data, hid_data): | 165 | def _raw_embed(self, cov_data, hid_data): |
157 | pass | 166 | pass |
158 | 167 | ||
168 | + | ||
159 | def _raw_extract(self, steg_data, num_bits): | 169 | def _raw_extract(self, steg_data, num_bits): |
160 | pass | 170 | pass |
161 | 171 | ||
172 | + | ||
162 | def _dummy_embed_hook(self, cov_data, hid_data): | 173 | def _dummy_embed_hook(self, cov_data, hid_data): |
163 | pass | 174 | pass |
164 | 175 | ||
176 | + | ||
165 | def _dummy_extract_hook(self, steg_data, num_bits): | 177 | def _dummy_extract_hook(self, steg_data, num_bits): |
166 | pass | 178 | pass |
msteg/__init__.pyc
No preview for this file type
msteg/steganography/F4.py
@@ -46,12 +46,15 @@ class F4(StegBase): | @@ -46,12 +46,15 @@ class F4(StegBase): | ||
46 | self.cov_jpeg.setsignal(cov_data, channel='Y') | 46 | self.cov_jpeg.setsignal(cov_data, channel='Y') |
47 | self.cov_jpeg.Jwrite(tgt_stego) | 47 | self.cov_jpeg.Jwrite(tgt_stego) |
48 | 48 | ||
49 | - # size_cov = os.path.getsize(tgt_stego) | ||
50 | - size_cov = np.size(cov_data) / 8 | ||
51 | - size_embedded = np.size(hid_data) | ||
52 | - | ||
53 | - self._display_stats("embedded", size_cov, size_embedded, | ||
54 | - time.time() - self.t0) | 49 | + cov_bits = np.sum(cov_data != 0) - cov_data.size / 64 |
50 | + self._display_rate(cov_bits, bits_cnt) | ||
51 | + | ||
52 | + # # size_cov = os.path.getsize(tgt_stego) | ||
53 | + # size_cov = np.size(cov_data) / 8 | ||
54 | + # size_embedded = np.size(hid_data) | ||
55 | + # | ||
56 | + # self._display_stats("embedded", size_cov, size_embedded, | ||
57 | + # time.time() - self.t0) | ||
55 | 58 | ||
56 | except TypeError as e: | 59 | except TypeError as e: |
57 | raise e | 60 | raise e |
msteg/steganography/F4.pyc
No preview for this file type
msteg/steganography/F5.py
@@ -96,12 +96,16 @@ class F5(StegBase): | @@ -96,12 +96,16 @@ class F5(StegBase): | ||
96 | self.cov_jpeg.setsignal(cov_data, channel='Y') | 96 | self.cov_jpeg.setsignal(cov_data, channel='Y') |
97 | self.cov_jpeg.Jwrite(tgt_stego) | 97 | self.cov_jpeg.Jwrite(tgt_stego) |
98 | 98 | ||
99 | - # size_cov = os.path.getsize(tgt_stego) | ||
100 | - size_cov = np.size(cov_data) / 8 | ||
101 | - size_embedded = np.size(hid_data) | 99 | + cov_bits = np.sum(cov_data != 0) - cov_data.size / 64 |
100 | + self._display_rate(cov_bits, bits_cnt) | ||
102 | 101 | ||
103 | - self._display_stats("embedded", size_cov, size_embedded, | ||
104 | - time.time() - self.t0) | 102 | + |
103 | + # # size_cov = os.path.getsize(tgt_stego) | ||
104 | + # size_cov = np.size(cov_data) / 8 | ||
105 | + # size_embedded = np.size(hid_data) | ||
106 | + # | ||
107 | + # self._display_stats("embedded", size_cov, size_embedded, | ||
108 | + # time.time() - self.t0) | ||
105 | 109 | ||
106 | except TypeError as e: | 110 | except TypeError as e: |
107 | raise e | 111 | raise e |
msteg/steganography/F5.pyc
No preview for this file type