📄 huffman_types.vhd
字号:
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
package huffman_types is
type slen_type1 is array (0 to 1,0 to 15) of integer;
constant slen : slen_type1 := ((0,0,0,0,3,1,1,1,2,2,2,3,3,3,4,4),
(0,1,2,3,0,1,2,3,1,2,3,1,2,3,2,3));
type sfband_l_type is array(0 to 2,0 to 22) of integer;
constant sfBandIndex_l : sfband_l_type :=
((0,4,8,12,16,20,24,30,36,44,52,62,74,90,110,134,162,196,238,288,342,418,576 ),
(0,4,8,12,16,20,24,30,36,42,50,60,72,88,106,128,156,190,230,276,330,384,576 ),
(0,4,8,12,16,20,24,30,36,44,54,66,82,102,126,156,194,240,296,364,448,550,576 ));
type sfband_s_type is array(0 to 2,0 to 13) of integer;
constant sfBandIndex_s : sfband_s_type :=
((0,4,8,12,16,22,30,40,52,66,84,106,136,192),
(0,4,8,12,16,22,28,38,50,64,80,100,126,192),
(0,4,8,12,16,22,30,42,58,78,104,138,180,192));
type table_index_type is array (0 to 33,0 to 3) of integer;
constant table : table_index_type :=
((0,0,0,0),(7,2,2,0),(17,3,3,0),(17,3,3,0),(0,0,0,0),
(31,4,4,0),(31,4,4,0),(71,6,6,0),(71,6,6,0),(71,6,6,0),
(127,8,8,0),(127,8,8,0),(127,8,8,0),(511,16,16,0),(0,0,0,0),
(511,16,16,0),(511,16,16,1),(511,16,16,2),(511,16,16,3),(511,16,16,4),
(511,16,16,6),(511,16,16,8),(511,16,16,10),(511,16,16,13),(512,16,16,4),
(512,16,16,5),(512,16,16,6),(512,16,16,7),(512,16,16,8),(512,16,16,9),
(512,16,16,11),(512,16,16,13),(31,1,16,0),(31,1,16,0));
subtype table_type2 is std_logic_vector(7 downto 0);
type table_type1 is array(0 to 1) of table_type2;
type table1 is array (0 to 6) of table_type1;
constant HUFFTABLE1 : table1 :=
((X"02",X"01"),(X"00",X"00"),(X"02",X"01"),(X"00",X"10"),(X"02",X"01"),
(X"00",X"01"),(X"00",X"11"));
type table2 is array (0 to 16) of table_type1;
constant HUFFTABLE2 : table2 :=
((X"02",X"01"),(X"00",X"00"),(X"04",X"01"),(X"02",X"01"),(X"00",X"10"),
(X"00",X"01"),(X"02",X"01"),(X"00",X"11"),(X"04",X"01"),(X"02",X"01"),
(X"00",X"20"),(X"00",X"21"),(X"02",X"01"),(X"00",X"12"),(X"02",X"01"),
(X"00",X"02"),(X"00",X"22"));
type table3 is array (0 to 16) of table_type1;
constant HUFFTABLE3 : table3 :=
((X"04",X"01"),(X"02",X"01"),(X"00",X"00"),(X"00",X"01"),(X"02",X"01"),
(X"00",X"11"),(X"02",X"01"),(X"00",X"10"),(X"04",X"01"),(X"02",X"01"),
(X"00",X"20"),(X"00",X"21"),(X"02",X"01"),(X"00",X"12"),(X"02",X"01"),
(X"00",X"02"),(X"00",X"22"));
type table5 is array (0 to 30) of table_type1;
constant HUFFTABLE5 : table5 :=
((X"02",X"01"),(X"00",X"00"),(X"04",X"01"),(X"02",X"01"),(X"00",X"10"),
(X"00",X"01"),(X"02",X"01"),(X"00",X"11"),(X"08",X"01"),(X"04",X"01"),
(X"02",X"01"),(X"00",X"20"),(X"00",X"02"),(X"02",X"01"),(X"00",X"21"),
(X"00",X"12"),(X"08",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"22"),
(X"00",X"30"),(X"02",X"01"),(X"00",X"03"),(X"00",X"13"),(X"02",X"01"),
(X"00",X"31"),(X"02",X"01"),(X"00",X"32"),(X"02",X"01"),(X"00",X"23"),
(X"00",X"33"));
type table6 is array (0 to 30) of table_type1;
constant HUFFTABLE6 : table6 :=
((X"06",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"00"),(X"00",X"10"),
(X"00",X"11"),(X"06",X"01"),(X"02",X"01"),(X"00",X"01"),(X"02",X"01"),
(X"00",X"20"),(X"00",X"21"),(X"06",X"01"),(X"02",X"01"),(X"00",X"12"),
(X"02",X"01"),(X"00",X"02"),(X"00",X"22"),(X"04",X"01"),(X"02",X"01"),
(X"00",X"31"),(X"00",X"13"),(X"04",X"01"),(X"02",X"01"),(X"00",X"30"),
(X"00",X"32"),(X"02",X"01"),(X"00",X"23"),(X"02",X"01"),(X"00",X"03"),
(X"00",X"33"));
type table7 is array (0 to 70) of table_type1;
constant HUFFTABLE7 : table7 :=
((X"02",X"01"),(X"00",X"00"),(X"04",X"01"),(X"02",X"01"),(X"00",X"10"),
(X"00",X"01"),(X"08",X"01"),(X"02",X"01"),(X"00",X"11"),(X"04",X"01"),
(X"02",X"01"),(X"00",X"20"),(X"00",X"02"),(X"00",X"21"),(X"12",X"01"),
(X"06",X"01"),(X"02",X"01"),(X"00",X"12"),(X"02",X"01"),(X"00",X"22"),
(X"00",X"30"),(X"04",X"01"),(X"02",X"01"),(X"00",X"31"),(X"00",X"13"),
(X"04",X"01"),(X"02",X"01"),(X"00",X"03"),(X"00",X"32"),(X"02",X"01"),
(X"00",X"23"),(X"00",X"04"),(X"0a",X"01"),(X"04",X"01"),(X"02",X"01"),
(X"00",X"40"),(X"00",X"41"),(X"02",X"01"),(X"00",X"14"),(X"02",X"01"),
(X"00",X"42"),(X"00",X"24"),(X"0c",X"01"),(X"06",X"01"),(X"04",X"01"),
(X"02",X"01"),(X"00",X"33"),(X"00",X"43"),(X"00",X"50"),(X"04",X"01"),
(X"02",X"01"),(X"00",X"34"),(X"00",X"05"),(X"00",X"51"),(X"06",X"01"),
(X"02",X"01"),(X"00",X"15"),(X"02",X"01"),(X"00",X"52"),(X"00",X"25"),
(X"04",X"01"),(X"02",X"01"),(X"00",X"44"),(X"00",X"35"),(X"04",X"01"),
(X"02",X"01"),(X"00",X"53"),(X"00",X"54"),(X"02",X"01"),(X"00",X"45"),
(X"00",X"55"));
type table8 is array (0 to 70) of table_type1;
constant HUFFTABLE8 : table8 :=
((X"06",X"01"),(X"02",X"01"),(X"00",X"00"),(X"02",X"01"),(X"00",X"10"),
(X"00",X"01"),(X"02",X"01"),(X"00",X"11"),(X"04",X"01"),(X"02",X"01"),
(X"00",X"21"),(X"00",X"12"),(X"0e",X"01"),(X"04",X"01"),(X"02",X"01"),
(X"00",X"20"),(X"00",X"02"),(X"02",X"01"),(X"00",X"22"),(X"04",X"01"),
(X"02",X"01"),(X"00",X"30"),(X"00",X"03"),(X"02",X"01"),(X"00",X"31"),
(X"00",X"13"),(X"0e",X"01"),(X"08",X"01"),(X"04",X"01"),(X"02",X"01"),
(X"00",X"32"),(X"00",X"23"),(X"02",X"01"),(X"00",X"40"),(X"00",X"04"),
(X"02",X"01"),(X"00",X"41"),(X"02",X"01"),(X"00",X"14"),(X"00",X"42"),
(X"0c",X"01"),(X"06",X"01"),(X"02",X"01"),(X"00",X"24"),(X"02",X"01"),
(X"00",X"33"),(X"00",X"50"),(X"04",X"01"),(X"02",X"01"),(X"00",X"43"),
(X"00",X"34"),(X"00",X"51"),(X"06",X"01"),(X"02",X"01"),(X"00",X"15"),
(X"02",X"01"),(X"00",X"05"),(X"00",X"52"),(X"06",X"01"),(X"02",X"01"),
(X"00",X"25"),(X"02",X"01"),(X"00",X"44"),(X"00",X"35"),(X"02",X"01"),
(X"00",X"53"),(X"02",X"01"),(X"00",X"45"),(X"02",X"01"),(X"00",X"54"),
(X"00",X"55"));
type table9 is array (0 to 70) of table_type1;
constant HUFFTABLE9 : table9 :=
((X"08",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"00"),(X"00",X"10"),
(X"02",X"01"),(X"00",X"01"),(X"00",X"11"),(X"0a",X"01"),(X"04",X"01"),
(X"02",X"01"),(X"00",X"20"),(X"00",X"21"),(X"02",X"01"),(X"00",X"12"),
(X"02",X"01"),(X"00",X"02"),(X"00",X"22"),(X"0c",X"01"),(X"06",X"01"),
(X"04",X"01"),(X"02",X"01"),(X"00",X"30"),(X"00",X"03"),(X"00",X"31"),
(X"02",X"01"),(X"00",X"13"),(X"02",X"01"),(X"00",X"32"),(X"00",X"23"),
(X"0c",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"41"),(X"00",X"14"),
(X"04",X"01"),(X"02",X"01"),(X"00",X"40"),(X"00",X"33"),(X"02",X"01"),
(X"00",X"42"),(X"00",X"24"),(X"0a",X"01"),(X"06",X"01"),(X"04",X"01"),
(X"02",X"01"),(X"00",X"04"),(X"00",X"50"),(X"00",X"43"),(X"02",X"01"),
(X"00",X"34"),(X"00",X"51"),(X"08",X"01"),(X"04",X"01"),(X"02",X"01"),
(X"00",X"15"),(X"00",X"52"),(X"02",X"01"),(X"00",X"25"),(X"00",X"44"),
(X"06",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"05"),(X"00",X"54"),
(X"00",X"53"),(X"02",X"01"),(X"00",X"35"),(X"02",X"01"),(X"00",X"45"),
(X"00",X"55"));
type table10 is array (0 to 126) of table_type1;
constant HUFFTABLE10 : table10 :=
((X"02",X"01"),(X"00",X"00"),(X"04",X"01"),(X"02",X"01"),(X"00",X"10"),
(X"00",X"01"),(X"0a",X"01"),(X"02",X"01"),(X"00",X"11"),(X"04",X"01"),
(X"02",X"01"),(X"00",X"20"),(X"00",X"02"),(X"02",X"01"),(X"00",X"21"),
(X"00",X"12"),(X"1c",X"01"),(X"08",X"01"),(X"04",X"01"),(X"02",X"01"),
(X"00",X"22"),(X"00",X"30"),(X"02",X"01"),(X"00",X"31"),(X"00",X"13"),
(X"08",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"03"),(X"00",X"32"),
(X"02",X"01"),(X"00",X"23"),(X"00",X"40"),(X"04",X"01"),(X"02",X"01"),
(X"00",X"41"),(X"00",X"14"),(X"04",X"01"),(X"02",X"01"),(X"00",X"04"),
(X"00",X"33"),(X"02",X"01"),(X"00",X"42"),(X"00",X"24"),(X"1c",X"01"),
(X"0a",X"01"),(X"06",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"50"),
(X"00",X"05"),(X"00",X"60"),(X"02",X"01"),(X"00",X"61"),(X"00",X"16"),
(X"0c",X"01"),(X"06",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"43"),
(X"00",X"34"),(X"00",X"51"),(X"02",X"01"),(X"00",X"15"),(X"02",X"01"),
(X"00",X"52"),(X"00",X"25"),(X"04",X"01"),(X"02",X"01"),(X"00",X"26"),
(X"00",X"36"),(X"00",X"71"),(X"14",X"01"),(X"08",X"01"),(X"02",X"01"),
(X"00",X"17"),(X"04",X"01"),(X"02",X"01"),(X"00",X"44"),(X"00",X"53"),
(X"00",X"06"),(X"06",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"35"),
(X"00",X"45"),(X"00",X"62"),(X"02",X"01"),(X"00",X"70"),(X"02",X"01"),
(X"00",X"07"),(X"00",X"64"),(X"0e",X"01"),(X"04",X"01"),(X"02",X"01"),
(X"00",X"72"),(X"00",X"27"),(X"06",X"01"),(X"02",X"01"),(X"00",X"63"),
(X"02",X"01"),(X"00",X"54"),(X"00",X"55"),(X"02",X"01"),(X"00",X"46"),
(X"00",X"73"),(X"08",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"37"),
(X"00",X"65"),(X"02",X"01"),(X"00",X"56"),(X"00",X"74"),(X"06",X"01"),
(X"02",X"01"),(X"00",X"47"),(X"02",X"01"),(X"00",X"66"),(X"00",X"75"),
(X"04",X"01"),(X"02",X"01"),(X"00",X"57"),(X"00",X"76"),(X"02",X"01"),
(X"00",X"67"),(X"00",X"77"));
type table11 is array (0 to 126) of table_type1;
constant HUFFTABLE11 : table11 :=
((X"06",X"01"),(X"02",X"01"),(X"00",X"00"),(X"02",X"01"),(X"00",X"10"),
(X"00",X"01"),(X"08",X"01"),(X"02",X"01"),(X"00",X"11"),(X"04",X"01"),
(X"02",X"01"),(X"00",X"20"),(X"00",X"02"),(X"00",X"12"),(X"18",X"01"),
(X"08",X"01"),(X"02",X"01"),(X"00",X"21"),(X"02",X"01"),(X"00",X"22"),
(X"02",X"01"),(X"00",X"30"),(X"00",X"03"),(X"04",X"01"),(X"02",X"01"),
(X"00",X"31"),(X"00",X"13"),(X"04",X"01"),(X"02",X"01"),(X"00",X"32"),
(X"00",X"23"),(X"04",X"01"),(X"02",X"01"),(X"00",X"40"),(X"00",X"04"),
(X"02",X"01"),(X"00",X"41"),(X"00",X"14"),(X"1e",X"01"),(X"10",X"01"),
(X"0a",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"42"),(X"00",X"24"),
(X"04",X"01"),(X"02",X"01"),(X"00",X"33"),(X"00",X"43"),(X"00",X"50"),
(X"04",X"01"),(X"02",X"01"),(X"00",X"34"),(X"00",X"51"),(X"00",X"61"),
(X"06",X"01"),(X"02",X"01"),(X"00",X"16"),(X"02",X"01"),(X"00",X"06"),
(X"00",X"26"),(X"02",X"01"),(X"00",X"62"),(X"02",X"01"),(X"00",X"15"),
(X"02",X"01"),(X"00",X"05"),(X"00",X"52"),(X"10",X"01"),(X"0a",X"01"),
(X"06",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"25"),(X"00",X"44"),
(X"00",X"60"),(X"02",X"01"),(X"00",X"63"),(X"00",X"36"),(X"04",X"01"),
(X"02",X"01"),(X"00",X"70"),(X"00",X"17"),(X"00",X"71"),(X"10",X"01"),
(X"06",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"07"),(X"00",X"64"),
(X"00",X"72"),(X"02",X"01"),(X"00",X"27"),(X"04",X"01"),(X"02",X"01"),
(X"00",X"53"),(X"00",X"35"),(X"02",X"01"),(X"00",X"54"),(X"00",X"45"),
(X"0a",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"46"),(X"00",X"73"),
(X"02",X"01"),(X"00",X"37"),(X"02",X"01"),(X"00",X"65"),(X"00",X"56"),
(X"0a",X"01"),(X"06",X"01"),(X"04",X"01"),(X"02",X"01"),(X"00",X"55"),
(X"00",X"57"),(X"00",X"74"),(X"02",X"01"),(X"00",X"47"),(X"00",X"66"),
(X"04",X"01"),(X"02",X"01"),(X"00",X"75"),(X"00",X"76"),(X"02",X"01"),
(X"00",X"67"),(X"00",X"77"));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -