Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(118)

Side by Side Diff: third_party/lzma/v4_65/files/Java/SevenZip/Compression/RangeCoder/BitTreeEncoder.java

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 package SevenZip.Compression.RangeCoder;
2 import java.io.IOException;
3
4 public class BitTreeEncoder
5 {
6 short[] Models;
7 int NumBitLevels;
8
9 public BitTreeEncoder(int numBitLevels)
10 {
11 NumBitLevels = numBitLevels;
12 Models = new short[1 << numBitLevels];
13 }
14
15 public void Init()
16 {
17 Decoder.InitBitModels(Models);
18 }
19
20 public void Encode(Encoder rangeEncoder, int symbol) throws IOException
21 {
22 int m = 1;
23 for (int bitIndex = NumBitLevels; bitIndex != 0; )
24 {
25 bitIndex--;
26 int bit = (symbol >>> bitIndex) & 1;
27 rangeEncoder.Encode(Models, m, bit);
28 m = (m << 1) | bit;
29 }
30 }
31
32 public void ReverseEncode(Encoder rangeEncoder, int symbol) throws IOExc eption
33 {
34 int m = 1;
35 for (int i = 0; i < NumBitLevels; i++)
36 {
37 int bit = symbol & 1;
38 rangeEncoder.Encode(Models, m, bit);
39 m = (m << 1) | bit;
40 symbol >>= 1;
41 }
42 }
43
44 public int GetPrice(int symbol)
45 {
46 int price = 0;
47 int m = 1;
48 for (int bitIndex = NumBitLevels; bitIndex != 0; )
49 {
50 bitIndex--;
51 int bit = (symbol >>> bitIndex) & 1;
52 price += Encoder.GetPrice(Models[m], bit);
53 m = (m << 1) + bit;
54 }
55 return price;
56 }
57
58 public int ReverseGetPrice(int symbol)
59 {
60 int price = 0;
61 int m = 1;
62 for (int i = NumBitLevels; i != 0; i--)
63 {
64 int bit = symbol & 1;
65 symbol >>>= 1;
66 price += Encoder.GetPrice(Models[m], bit);
67 m = (m << 1) | bit;
68 }
69 return price;
70 }
71
72 public static int ReverseGetPrice(short[] Models, int startIndex,
73 int NumBitLevels, int symbol)
74 {
75 int price = 0;
76 int m = 1;
77 for (int i = NumBitLevels; i != 0; i--)
78 {
79 int bit = symbol & 1;
80 symbol >>>= 1;
81 price += Encoder.GetPrice(Models[startIndex + m], bit);
82 m = (m << 1) | bit;
83 }
84 return price;
85 }
86
87 public static void ReverseEncode(short[] Models, int startIndex,
88 Encoder rangeEncoder, int NumBitLevels, int symbol) thro ws IOException
89 {
90 int m = 1;
91 for (int i = 0; i < NumBitLevels; i++)
92 {
93 int bit = symbol & 1;
94 rangeEncoder.Encode(Models, startIndex + m, bit);
95 m = (m << 1) | bit;
96 symbol >>= 1;
97 }
98 }
99 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698