⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 huffman_en_full.vhd

📁 huffman code vhdl program
💻 VHD
📖 第 1 页 / 共 5 页
字号:
                                 WHEN "000000011010" => --26
                                          vlcode_ac1 <= "00000000000010101" & rl_in(11);    
                                          codelength_ac1 <= "01111";    
                                 WHEN "000000011011" => --27
                                          vlcode_ac1 <= "00000000000010100" & rl_in(11);    
                                          codelength_ac1 <= "01111";    
                                 WHEN "000000011100" => --28
                                          vlcode_ac1 <= "00000000000010011" & rl_in(11);    
                                          codelength_ac1 <= "01111";    
                                 WHEN "000000011101" => --29
                                          vlcode_ac1 <= "00000000000010010" & rl_in(11);    
                                          codelength_ac1 <= "01111";    
                                 WHEN "000000011110" => --30
                                          vlcode_ac1 <= "00000000000010001" & rl_in(11);    
                                          codelength_ac1 <= "01111";    
                                 WHEN "000000011111" => --31
                                          vlcode_ac1 <= "00000000000010000" & rl_in(11);    
                                          codelength_ac1 <= "01111";    
                                 WHEN "000000100000" => --32
                                          vlcode_ac1 <= "00000000000011000" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000100001" => --33
                                          vlcode_ac1 <= "00000000000010111" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000100010" => --34
                                          vlcode_ac1 <= "00000000000010110" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000100011" => --35
                                          vlcode_ac1 <= "00000000000010101" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000100100" => --36
                                          vlcode_ac1 <= "00000000000010100" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000100101" => --37
                                          vlcode_ac1 <= "00000000000010011" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000100110" => --38
                                          vlcode_ac1 <= "00000000000010010" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000100111" => --39
                                          vlcode_ac1 <= "00000000000010001" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000101000" => --40
                                          vlcode_ac1 <= "00000000000010000" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN OTHERS => NULL;
                              END CASE;
                     WHEN 'X' & "000001" &  "XXXXXXXXXXX" => -- run = 1
                              CASE temp5 IS --(level)
                                 WHEN "000000000110" => --6
                                          vlcode_ac1 <= "00000000000010110" & rl_in(11);    
                                          codelength_ac1 <= "01110";    
                                 WHEN "000000000111" => --7
                                          vlcode_ac1 <= "00000000000010101" & rl_in(11);    
                                          codelength_ac1 <= "01110";    
                                 WHEN "000000001000" => --8
                                          vlcode_ac1 <= "00000000000011111" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000001001" => --9
                                          vlcode_ac1 <= "00000000000011110" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000001010" => --10
                                          vlcode_ac1 <= "00000000000011101" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000001011" => --11
                                          vlcode_ac1 <= "00000000000011100" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000001100" => --12
                                          vlcode_ac1 <= "00000000000011011" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000001101" => --13
                                          vlcode_ac1 <= "00000000000011010" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000001110" => --14
                                          vlcode_ac1 <= "00000000000011001" & rl_in(11);    
                                          codelength_ac1 <= "10000";    
                                 WHEN "000000001111" => --15
                                          vlcode_ac1 <= "00000000000010011" & rl_in(11);    
                                          codelength_ac1 <= "10001";    
                                 WHEN "000000010000" => --16
                                          vlcode_ac1 <= "00000000000010010" & rl_in(11);    
                                          codelength_ac1 <= "10001";    
                                 WHEN "000000010001" => --17
                                          vlcode_ac1 <= "00000000000010001" & rl_in(11);    
                                          codelength_ac1 <= "10001";    
                                 WHEN "000000010010" => --18
                                          vlcode_ac1 <= "00000000000010000" & rl_in(11);    
                                          codelength_ac1 <= "10001";    
                                 WHEN OTHERS => NULL;
                              END CASE;
                     WHEN 'X' & "000010" & "00000000101" =>  -- scan type = x, run = 2, level = 5
                              vlcode_ac1 <= "00000000000010100" & rl_in(11);    
                              codelength_ac1 <= "01110";    
                     WHEN 'X' & "000011" & "00000000011" => -- scan type = x, run = 3, level = 4
                              vlcode_ac1 <= "00000000000010011" & rl_in(11);    
                              codelength_ac1 <= "01110";    
                     WHEN '0' & "XXXXXX" & "00000000001" =>  -- scan type = 0, run = x, level = 1
                              CASE rl_in(17 DOWNTO 12) IS --(run)
                                 WHEN "000001" => --1
                                          vlcode_ac1 <= "00000000000000011" & rl_in(11);    
                                          codelength_ac1 <= "00100";    
                                 WHEN "000010" => --2
                                          vlcode_ac1 <= "00000000000000101" & rl_in(11);    
                                          codelength_ac1 <= "00101";    
                                 WHEN "000011" => --3
                                          vlcode_ac1 <= "00000000000000111" & rl_in(11);    
                                          codelength_ac1 <= "00110";    
                                 WHEN "000100" =>  --4
                                          vlcode_ac1 <= "00000000000000110" & rl_in(11);    
                                          codelength_ac1 <= "00110";    
                                 WHEN "000101" =>  --5
                                          vlcode_ac1 <= "00000000000000111" & rl_in(11);    
                                          codelength_ac1 <= "00111";    
                                 WHEN "000110" => --6
                                          vlcode_ac1 <= "00000000000000101" & rl_in(11);    
                                          codelength_ac1 <= "00111";    
                                 WHEN "000111" =>  --7
                                          vlcode_ac1 <= "00000000000000100" & rl_in(11);    
                                          codelength_ac1 <= "00111";    
                                 WHEN "001000" =>  --8
                                          vlcode_ac1 <= "00000000000000111" & rl_in(11);    
                                          codelength_ac1 <= "01000";    
                                 WHEN "001001" => --9
                                          vlcode_ac1 <= "00000000000000101" & rl_in(11);    
                                          codelength_ac1 <= "01000";    
                                 WHEN "001010" => --10
                                          vlcode_ac1 <= "00000000000100111" & rl_in(11);    
                                          codelength_ac1 <= "01001";    
                                 WHEN "001011" => --11
                                          vlcode_ac1 <= "00000000000100011" & rl_in(11);    
                                          codelength_ac1 <= "01001";    
                                 WHEN "001100" => --12
                                          vlcode_ac1 <= "00000000000100010" & rl_in(11);    
                                          codelength_ac1 <= "01001";    
                                 WHEN "001101" =>  --13
                                          vlcode_ac1 <= "00000000000100000" & rl_in(11);    
                                          codelength_ac1 <= "01001";    
                                 WHEN "001110" => --14
                                          vlcode_ac1 <= "00000000000001110" & rl_in(11);    
                                          codelength_ac1 <= "01011";    
                                 WHEN "001111" => --15
                                          vlcode_ac1 <= "00000000000001101" & rl_in(11);    
                                          codelength_ac1 <= "01011";    
                                 WHEN "010000" => --16
                                          vlcode_ac1 <= "00000000000001000" & rl_in(11);    
                                          codelength_ac1 <= "01011";    
                                 WHEN OTHERS =>  NULL;
                              END CASE;
                     WHEN '1' & "XXXXXX" & "00000000001" => -- scan type = 1, run = x, level = 1
                              CASE rl_in(17 DOWNTO 12) IS --(run)
                                 WHEN "000001" => --1
                                          vlcode_ac1 <= "00000000000000010" & rl_in(11);    
                                          codelength_ac1 <= "00100";    
                                 WHEN "000010" => --2
                                          vlcode_ac1 <= "00000000000000101" & rl_in(11);    
                                          codelength_ac1 <= "00110";    
                                 WHEN "000011" =>  --3
                                          vlcode_ac1 <= "00000000000000111" & rl_in(11);    
                                          codelength_ac1 <= "00110";    
                                 WHEN "000100" =>  --4
                                          vlcode_ac1 <= "00000000000000110" & rl_in(11);    
                                          codelength_ac1 <= "00111";    
                                 WHEN "000101" =>  --5
                                          vlcode_ac1 <= "00000000000000111" & rl_in(11);    
                                          codelength_ac1 <= "00111";    
                                 WHEN "000110" => --6
                                          vlcode_ac1 <= "00000000000000110" & rl_in(11);    
                                          codelength_ac1 <= "01000";    
                                 WHEN "000111" => --7
                                          vlcode_ac1 <= "00000000000000100" & rl_in(11);    
                                          codelength_ac1 <= "01000";    
                                 WHEN "001000" => --8
                                          vlcode_ac1 <= "00000000000000101" & rl_in(11);    
                                          codelength_ac1 <= "01000";    
                                 WHEN "001001" => --9
                                          vlcode_ac1 <= "00000000001111000" & rl_in(11);    
                                          codelength_ac1 <= "01000";    
                                 WHEN "001010" => --10
                                          vlcode_ac1 <= "00000000001111010" & rl_in(11);    
                                          codelength_ac1 <= "01000";    
                                 WHEN "001011" => --11
                                          vlcode_ac1 <= "00000000000100001" & rl_in(11);    
                                          codelength_ac1 <= "01001";    
                                 WHEN "001100" => --12
                                          vlcode_ac1 <= "00000000000100101" & rl_in(11);    
                                          codelength_ac1 <= "01001";    
                                 WHEN "001101" => --13
                                          vlcode_ac1 <= "00000000000100100" & rl_in(11);    
                                          codelength_ac1 <= "01001";    
                                 WHEN "001110" => --14
                                          vlcode_ac1 <= "00000000000000101" & rl_in(11);    
                                          codelength_ac1 <= "01010";    
                                 WHEN "001111" => --15
                                          vlcode_ac1 <= "00000000000000111" & rl_in(11);    
                                          codelength_ac1 <= "01010";    
                                 WHEN "010000" => --16
                                          vlcode_ac1 <= "00000000000001101" & rl_in(11);    
                                          codelength_ac1 <= "01011";    
                                 WHEN OTHERS => NULL;
                              END CASE;
                     WHEN '0' & "000000" & "XXXXXXXXXXX" => -- scan type = 0, run = 0, level = x
                              CASE temp6 IS --(level)
                                 WHEN "000000000010" => --2
                                          vlcode_ac1 <= "00000000000000100" & rl_in(11);    
                                          codelength_ac1 <= "00101";    
                                 WHEN "000000000011" => --3
                                          vlcode_ac1 <= "00000000000000101" & rl_in(11);    
                                          codelength_ac1 <= "00110";    
                                 WHEN "000000000100" => --4
                                          vlcode_ac1 <= "00000000000000110" & rl_in(11);    
                                          codelength_ac1 <= "01000";    
                                 WHEN "000000000101" => --5
                                          vlcode_ac1 <= "00000000000100110" & rl_in(11);    
                                          codelength_ac1 <= "01001";    
                                 WHEN "000000000110" => --6

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -