FAQ | Points | Add... | Recent posts | Search | Register | Log in


VHDL schemat kompresora danych (Huffman)


Post new topic  This topic is locked      Main Page -> Forum Index -> Microcontrollers Generally -> Programmable Systems -> VHDL schemat kompresora danych (Huffman)
Author
Message
mogik
Poziom 4
Poziom 4


Joined: 10 May 2011
Posts: 10

Post#1 Post from the author of the topic 21 Jul 2011 12:54   

VHDL schemat kompresora danych (Huffman)


Czy wie może ktoś jak powinien wyglądać schemat kompresora danych (dynamiczne kodowanie Huffmana)
Wiem że układ powinien zawierać histogram,który zrobiłam
http://www.elektroda.pl/rtvforum/viewtopic.php?p=9528992#9528992
Ale schematu nie potrafię wymyślić.

Będę wdzięczna za pomoc
Pozdrawiam
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 21 Jul 2011 12:54   





Back to top
   
tymon_x
Poziom 20
Poziom 20


Joined: 17 Jun 2010
Posts: 814
Location: Gdańsk

Post#2 21 Jul 2011 21:04   

Re: VHDL schemat kompresora danych (Huffman)


Biednie to wygląda...
A internet taki bogaty w zasoby: XAPP616 - Huffman Coding
Back to top
   
mogik
Poziom 4
Poziom 4


Joined: 10 May 2011
Posts: 10

Post#3 Post from the author of the topic 22 Jul 2011 07:54   

Re: VHDL schemat kompresora danych (Huffman)


:) dzięki! to co mi podesłałeś chyba już znalazłam,tylko nie wiem jak wyglądać ma schemat do adaptacyjnego kodowania huffmana,to jest to ?
Back to top
   
tymon_x
Poziom 20
Poziom 20


Joined: 17 Jun 2010
Posts: 814
Location: Gdańsk

Post#4 22 Jul 2011 18:39   

Re: VHDL schemat kompresora danych (Huffman)


mogik wrote:
:) dzięki! to co mi podesłałeś chyba już znalazłam,tylko nie wiem jak wyglądać ma schemat do adaptacyjnego kodowania huffmana,to jest to ?

Powiedzmy, adaptacyjny bazuje na nim. W tym dokumencie masz wskazówkę, jak można zrobić adaptacyjny, Jeśli chcesz rozruszać szare komórki, dojdziesz do tego: Adaptive Huffman coding.
Back to top
   
mogik
Poziom 4
Poziom 4


Joined: 10 May 2011
Posts: 10

Post#5 Post from the author of the topic 29 Jul 2011 10:06   

Re: VHDL schemat kompresora danych (Huffman)


Chcę zeby funkcja posortowała mi w moim koderze huffmana prawdopodobieństwa od najmniejszego do największego tymczasem funkcja wyrzuca mi tylko największą wartość.Jakieś pomysły?

Code:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.MATH_REAL.ALL;
use ieee.numeric_std.all;
entity median_module is
  port(
     clk       : in std_logic ;
     rst_n     : in std_logic ;
     Mat0      : in std_logic_vector(7 downto 0);
     Mat1      : in std_logic_vector(7 downto 0);
     Mat2      : in std_logic_vector(7 downto 0);
     Mat3      : in std_logic_vector(7 downto 0);
     Mat4      : in std_logic_vector(7 downto 0);
     Mat5      : in std_logic_vector(7 downto 0);
     Mat6      : in std_logic_vector(7 downto 0);
     Mat7      : in std_logic_vector(7 downto 0);
     Mat8      : in std_logic_vector(7 downto 0);
     out_data : out std_logic_vector(7 downto 0)
    );
  end median_module;
architecture  behavioural of median_module is
 type matrix is array (0 to 8)    of  std_logic_vector (7 downto 0);
 signal mat_temp    : matrix;
   signal temp      : std_logic_vector(7 downto 0);
begin
  mat_temp(0) <= Mat0;
  mat_temp(1) <= Mat1;
  mat_temp(2) <= Mat2;
  mat_temp(3) <= Mat3;
  mat_temp(4) <= Mat4;
  mat_temp(5) <= Mat5;
  mat_temp(6) <= Mat6;
  mat_temp(7) <= Mat7;
  mat_temp(8) <= Mat8;

process(clk,rst_n)      
variable temp_mat    : matrix;
begin
 if(rst_n = '0')  then
--   temp_mat  <= "00000000";
--   temp      <= '0';
--   out_data <= '0';
 elsif (rising_edge(clk)) then 
     temp_mat :=  mat_temp;
   loop1:for i in 0 to 8 loop
   loop2:   for j in 0 to 8 loop
              if(temp_mat(i)<temp_mat(j)) then             
                temp        <= temp_mat(i);
                temp_mat(j) := temp_mat(i);
                temp_mat(i) := temp;               
              end if;
             end loop loop2;
   end loop loop1;
 
     out_data <=  temp;
   
end if;

end process;

end  behavioural;

Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 29 Jul 2011 10:06   





Back to top
   
tymon_x
Poziom 20
Poziom 20


Joined: 17 Jun 2010
Posts: 814
Location: Gdańsk

Post#6 29 Jul 2011 19:56   

Re: VHDL schemat kompresora danych (Huffman)


Użyj znacznika syntax, bo tego się czytać nie da i jakieś formatowanie wstępne ! (no cóż, z code jakąś żyłem, ale jak pojawia się takie udogodnienie, to trzeba korzystać ;) ).
mogik wrote:
Chcę zeby funkcja posortowała mi w moim koderze huffmana prawdopodobieństwa od najmniejszego do największego tymczasem funkcja wyrzuca mi tylko największą wartość.Jakieś pomysły?

1) Próbujesz wszystko zrobić w jednym takcie zegara! Twoja funkcja poprawnie czy nie, wykona się rzeczywiście tak jak chcesz, ale na wyjściu przypisania pojawi się jeden ostatni wynik po wyjściu z procesu.
Code VHDL - [expand]
process
begin
a <= tmp_1;
a <= tmp_2;
end process;

W przykładzie powyżej, a zawsze będzie miało wartość sygnału tmp_2, i teraz dodaj do tego otoczkę w postaci Twojej pętli oraz że ten twór wykonana w pojedynczym cyklu. Zawsze otrzymasz ostatni wynik przed wyjściem z procesu. W dodatku masz jedno wyście, czyli dane powinny iść szeregowo co np. cykl. Jeśli taki był Twój zamiar.

2) Teraz uwagi sprzętowe. Chcesz zajechać logikę, karzesz syntezerowi rozpracować macierz 8x9, posortować i wykonać to w jednym cyklu zegara, o zgrozo pętlą loop ? Ani to szybkie, ani to mało logiki używa, podatne na hazardy. Rozpracuj ten algorytm na kilka cykli zegarowych, z sygnałami Valid (dane ważne), Ack (potwierdzenie), Ready (zakończono konwersję), Bo ten twór dla dużej macierzy nie będzie się nadawał.
Back to top
   
mogik
Poziom 4
Poziom 4


Joined: 10 May 2011
Posts: 10

Post#7 Post from the author of the topic 04 Aug 2011 08:55   

Re: VHDL schemat kompresora danych (Huffman)


a jak wyrzucić największą wartość ze zbioru wartości?
Back to top
   
tymon_x
Poziom 20
Poziom 20


Joined: 17 Jun 2010
Posts: 814
Location: Gdańsk

Post#8 05 Aug 2011 07:43   

Re: VHDL schemat kompresora danych (Huffman)


mogik wrote:
a jak wyrzucić największą wartość ze zbioru wartości?

Troszkę wyżej:
mogik wrote:
Chcę zeby funkcja posortowała mi w moim koderze huffmana prawdopodobieństwa od najmniejszego do największego tymczasem funkcja wyrzuca mi tylko największą wartość.

:P

1) Maszyna stanów, objeżdża całą pamięć lub grupę rejestrów. Z reguły pojedyncza dana na cykl. Mało logiki, relatywnie szybka, wymaga czasu na pracę (cykle zegara).

2) Układ kombinacyjny, asynchroniczny. Dwa rejestry na wejściu, komparator equal (A > B), na wyjściu sterowanie mux, czy ma przepuścić dalej A czy B. Za pomocą generate można zbudować pokaźne drzewo. Z równoleglenie zadań.

3) Wymieszanie techniki z pkt. 1 i 2 w celu uzyskania najbardziej efektywnego sposobu wyrzucenia wartości max. Do tego jeszcze pipeline i wio...
Back to top
   
mogik
Poziom 4
Poziom 4


Joined: 10 May 2011
Posts: 10

Post#9 Post from the author of the topic 09 Aug 2011 11:07   

Re: VHDL schemat kompresora danych (Huffman)


Chodziło mi o to że po posortowaniu już nie potrzebuje największej wartości tylko największą wartość ze zbioru bez największej poprzedniej wartości -czyli ta troszkę mniejszą:P
tak to napisałam że samą mnie zadziwiła moja logika,pozdrawiam i dzięki za podpowiedź!
Back to top
   
tymon_x
Poziom 20
Poziom 20


Joined: 17 Jun 2010
Posts: 814
Location: Gdańsk

Post#10 09 Aug 2011 21:05   

Re: VHDL schemat kompresora danych (Huffman)


mogik wrote:
Chodziło mi o to że po posortowaniu już nie potrzebuje największej wartości tylko największą wartość ze zbioru bez największej poprzedniej wartości -czyli ta troszkę mniejszą:P
tak to napisałam że samą mnie zadziwiła moja logika,pozdrawiam i dzięki za podpowiedź!

Nie wiem czy ambitna jesteś czy nie, pewnie korzystasz z gotowych wzorców, a idąc tym tropem możesz wykorzystać to powyższe cudo do takiej realizacji. Wystarczy oprócz wyniku, dodać zmienną wskazującą największą wartość i wyzerować ten rejestr wejściowy (definitywne zero), i tak dostaniesz w następnym cyklu największą wartość ciutkę mniejszą niż poprzednio (ale to zabrzmiało). Pasi takie rozwiązanie ?
Back to top
   
Google

Google Adsense


Post# 09 Aug 2011 21:05   





Back to top
   
mogik
Poziom 4
Poziom 4


Joined: 10 May 2011
Posts: 10

Post#11 Post from the author of the topic 25 Dec 2011 18:16   

Re: VHDL schemat kompresora danych (Huffman)


Dzięki,po wielomiesięcznej ciszy musze powiedzieć że sie udało:)
Back to top
   
Post new topic  This topic is locked      Main Page -> Forum Index -> Microcontrollers Generally -> Programmable Systems -> VHDL schemat kompresora danych (Huffman)
Page 1 of 1
Similar topics
[VHDL] zmienne w vhdl (2)
[VHDL] Suma szeregu w VHDL (15)
[vhdl składnia problem] Kruczki na instancje w VHDL? (2)
HUFFMAN - pilne (8)
VHDL. Czy istnieje jakiś typ lub podtyp danych? (6)
[FPGA] - Wymiana danych między NIOSem a VHDL (2)
Jak zrobić wewnętrzną magistralę danych?? VHDL (2)
Problem z fragmentem kodu VHDL kalkulator w VHDL (2)
c# i kompresja. Napisanie kompresora danych. (1)
C++ Builder Kompresja danych Huffman (1)

Page generation time: 0.194 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed