コード例 #1
0
ファイル: MPM.py プロジェクト: yifan-fanyi/myMCL-Realization
 def decode_one_idx(self, prev_idx):
     mode = bits2int(self.stream[self.ct:self.ct + 1], is_uint=True)
     self.ct += 1
     if mode == 1:
         idx = bits2int(self.stream[self.ct:self.ct + self.length],
                        is_uint=True)
         self.ct += self.length
         return idx
     else:
         pred = self.learner.predict(np.array(prev_idx).reshape(1, -1))
         return pred
コード例 #2
0
ファイル: MPM.py プロジェクト: yifan-fanyi/myMCL-Realization
 def decode_fail(self, idx):
     mode = bits2int(self.stream[self.ct:self.ct + 2], is_uint=True)
     self.ct += 2
     if mode < 3:
         a = idx[-4:-1]
         a.sort()
         return a[mode]
     else:
         b = idx[:-4]
         b.sort()
         val = bits2int(self.stream[self.ct:self.ct + self.length],
                        is_uint=True)
         self.ct += self.length
         return b[val]
コード例 #3
0
ファイル: MPM.py プロジェクト: yifan-fanyi/myMCL-Realization
 def decode_one_idx(self, prev_idx, mode):
     self.get_MPM(prev_idx)
     if mode == 3:
         idx = bits2int(self.stream[self.ct:self.ct + self.length],
                        is_uint=True)
         self.ct += self.length
         return self.codeword_list[idx]
     else:
         return self.MPM_list[mode]
コード例 #4
0
ファイル: MPM.py プロジェクト: yifan-fanyi/myMCL-Realization
 def decode_one_idx(self, prev_idx):
     mode = bits2int(self.stream[self.ct:self.ct + 2], is_uint=True)
     self.ct += 2
     prob = self.learner.predict_proba(np.array(prev_idx).reshape(
         1, -1)).reshape(-1)
     pred = np.argsort(prob)[-3:]
     pred.sort()
     if mode == 3:
         codeword = []
         for i in range(self.n_codeword):
             if i not in pred:
                 codeword.append(i)
         idx = bits2int(self.stream[self.ct:self.ct + self.length],
                        is_uint=True)
         self.ct += self.length
         return codeword[idx]
     else:
         return pred[mode]
コード例 #5
0
ファイル: MPM.py プロジェクト: yifan-fanyi/myMCL-Realization
 def decode_one_idx(self, prev_idx):
     mode = bits2int(self.stream[self.ct:self.ct + 1], is_uint=True)
     self.ct += 1
     prob = self.learner.predict_proba(np.array(prev_idx).reshape(
         1, -1)).reshape(-1)
     if mode == 1:
         idx = self.decode_fail(np.argsort(prob))
         return idx
     else:
         return np.argmax(prob)
コード例 #6
0
ファイル: MPM.py プロジェクト: yifan-fanyi/myMCL-Realization
 def decode(self, stream, H, W):
     self.stream = stream
     idx = np.zeros((H, W))
     self.ct = 0
     for i in range(idx.shape[0]):
         for j in range(idx.shape[1]):
             prev_idx = [
                 self.get_prev(idx, i - 1, j - 1),
                 self.get_prev(idx, i - 1, j),
                 self.get_prev(idx, i, j - 1)
             ]
             mode = bits2int(self.stream[self.ct:self.ct + 2], is_uint=True)
             self.ct += 2
             idx[i, j] = self.decode_one_idx(prev_idx, mode)
     return idx.astype('int16')