package ua.stu.scplib.structure; /** * <p>A class for constructing the default Huffman Table specified in the SCP-ECG standard.</p> * * @see com.pixelmed.scpecg.HuffmanTable * @see com.pixelmed.scpecg.HuffmanDecoder * * @author stu */ public class DefaultHuffmanTable extends HuffmanTable { private static final String identString = "@(#) $Header: /userland/cvs/pixelmed/imgbook/com/pixelmed/scpecg/DefaultHuffmanTable.java,v 1.3 2004/01/25 03:47:19 dclunie Exp $"; // From prEN 1064:2002 C.2.7.4 ... private int defaultNumberOfCodeStructuresInTable = 19; private int[] defaultNumberOfBitsInPrefix = { 1, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 10, 10 }; private int[] defaultNumberOfBitsInEntireCode = { 1, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 18, 26 }; private int[] defaultTableModeSwitch = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; private int[] defaultBaseValueRepresentedByBaseCode = { 0, 1, -1, 2, -2, 3, -3, 4, -4, 5, -5, 6, -6, 7, -7, 8, -8, 0, 0 }; private long[] defaultBaseCode = { 0, 1, 5, 3, 11, 7, 23, 15, 47, 31, 95, 63, 191, 127, 383, 255, 767, 511, 1023 }; // 0x0, 0x1, 0x5, 0x3, 0xb, 0x7, 0x17, 0xf, 0x2f, 0x1f, 0x5f, 0x3f, 0xbf, 0x7f, 0x17f, 0xff, 0x2ff, 0x1ff, 0x3ff // 0x0, 0x4, 0x5, 0xc, 0xd, 0x1c, 0x1d, 0x3c, 0x3d, 0x7c, 0x7d, 0xfc, 0xfd, 0x1fc, 0x1fd, 0x3fc, 0x3fd, 0x3fe, 0x3ff // 0, 1, -1, 2, -2, 3, -3, 4, -4, 5, -5, 6, -6, 7, -7, 8, -8, 0, 0 /** * <p>Construct a default Huffman Table.</p> */ public DefaultHuffmanTable() { numberOfCodeStructuresInTable=defaultNumberOfCodeStructuresInTable; numberOfBitsInPrefix=defaultNumberOfBitsInPrefix; numberOfBitsInEntireCode=defaultNumberOfBitsInEntireCode; tableModeSwitch=defaultTableModeSwitch; baseValueRepresentedByBaseCode=defaultBaseValueRepresentedByBaseCode; baseCode=defaultBaseCode; } }