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 | 56 | Jsteg.__init__(self, file, **kw) |
57 | 57 | self.verbosity = verbosity |
58 | 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 | 60 | if key != None: |
61 | 61 | self.key = key |
62 | 62 | elif rndkey: |
... | ... | @@ -310,7 +310,8 @@ class Jpeg(Jsteg): |
310 | 310 | if sum0 != None: |
311 | 311 | if sum1 != None: |
312 | 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 | 315 | hashtable = bi_hash |
315 | 316 | sumtable = bi_sum |
316 | 317 | else: | ... | ... |
mjpeg/__init__.pyc
No preview for this file type
msteg/__init__.py
... | ... | @@ -72,12 +72,14 @@ class StegBase(object): |
72 | 72 | self.cov_jpeg.setCoefBlocks(cov_data) |
73 | 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 | 84 | except TypeError as e: |
83 | 85 | raise e |
... | ... | @@ -140,27 +142,37 @@ class StegBase(object): |
140 | 142 | |
141 | 143 | def _display_stats(self, verb, cov_size, emb_size, duration): |
142 | 144 | print( |
143 | - "%dB %s in %.2fs (%.2f kBps), embedding ratio: %.4f" % | |
145 | + "%dB %s in %.2fs (%.2f kBps), embedding ratio: %.4f bpc" % | |
144 | 146 | (emb_size, verb, duration, (emb_size / duration) / 1000., |
145 | 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 | 155 | def set_key(self, key): |
149 | 156 | assert key != None |
150 | 157 | self.key = key |
151 | 158 | |
159 | + | |
152 | 160 | def get_key(self): |
153 | 161 | return self.key |
154 | 162 | |
163 | + | |
155 | 164 | # dummy functions to please pylint |
156 | 165 | def _raw_embed(self, cov_data, hid_data): |
157 | 166 | pass |
158 | 167 | |
168 | + | |
159 | 169 | def _raw_extract(self, steg_data, num_bits): |
160 | 170 | pass |
161 | 171 | |
172 | + | |
162 | 173 | def _dummy_embed_hook(self, cov_data, hid_data): |
163 | 174 | pass |
164 | 175 | |
176 | + | |
165 | 177 | def _dummy_extract_hook(self, steg_data, num_bits): |
166 | 178 | pass | ... | ... |
msteg/__init__.pyc
No preview for this file type
msteg/steganography/F4.py
... | ... | @@ -46,12 +46,15 @@ class F4(StegBase): |
46 | 46 | self.cov_jpeg.setsignal(cov_data, channel='Y') |
47 | 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 | 59 | except TypeError as e: |
57 | 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 | 96 | self.cov_jpeg.setsignal(cov_data, channel='Y') |
97 | 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 | 110 | except TypeError as e: |
107 | 111 | raise e | ... | ... |
msteg/steganography/F5.pyc
No preview for this file type