Czy ma ktos z was jakies pojecia w temacie kodowania MP3.
o co chodzi z kompresji Huffmana i linbits-ach? Co do Huffmana to co nieco rozumiem ale znalazlem dwa podejscia ogolne i takie dotyczace samych mp3 i jakos jedno mi z drugim nie pasuje
MP3 Huffman linbits
- santana.uk
- Posty:71
- Rejestracja:poniedziałek 14 paź 2002, 00:00
Rezyseria dzwieku - Poznań
Re: MP3 Huffman linbits
postaraj się zadać precyzyjne pytanie, niestety z tego co powyżej trudno wywnioskować z czym masz problem
- santana.uk
- Posty:71
- Rejestracja:poniedziałek 14 paź 2002, 00:00
Re: MP3 Huffman linbits
Mysle ze to zbyt powazny temat jak na to forum.
Męczę sie nad prezentacją na temat kodowania mp3 i dodawania do niej znaku wodnego z użyciem tzw. "linbits characterisic". Cały proces kodowaania mniej więcej mam ale kodowanie Huffmana i w nim "linbits" to dla mnie czarna magia. Wiec może ktos ma o tym wieksze pojęcie ode mnie i mogłby to jakos "na chłopski rozum" wytłumaczyć.Bo w necie tylko ogólniki albo gotowe kody wzglednie naukowe wypociny z których za dużo nie rozumiem.
Męczę sie nad prezentacją na temat kodowania mp3 i dodawania do niej znaku wodnego z użyciem tzw. "linbits characterisic". Cały proces kodowaania mniej więcej mam ale kodowanie Huffmana i w nim "linbits" to dla mnie czarna magia. Wiec może ktos ma o tym wieksze pojęcie ode mnie i mogłby to jakos "na chłopski rozum" wytłumaczyć.Bo w necie tylko ogólniki albo gotowe kody wzglednie naukowe wypociny z których za dużo nie rozumiem.
Rezyseria dzwieku - Poznań
Re: MP3 Huffman linbits
...Mysle ze to zbyt powazny temat jak na to forum.
**********************
a może jednak
Męczę sie nad prezentacją na temat kodowania mp3 i dodawania do niej znaku wodnego z użyciem tzw. "linbits characterisic". Cały proces kodowaania mniej więcej mam ale kodowanie Huffmana i w nim "linbits" to dla mnie czarna magia. Wiec może ktos ma o tym wieksze pojęcie ode mnie i mogłby to jakos "na chłopski rozum" wytłumaczyć.Bo w necie tylko ogólniki albo gotowe kody wzglednie naukowe wypociny z których za dużo nie rozumiem.
...
**********************
kodowanie Huffmana to kodowanie kodami o zmiennej długości bitowej. Kody Huffmana są tak skonstruowane, że są symbolami zerojedynkowymi o długości odwrotnie proporcjonalnej do prawdopodobieństwa wystąpienia kodu. Innym słowy, te wartości próbek widma (MDCT), które są najbardziej prawdopodobne kodowane są bardzo krótkimi kodami (2 lub 3 bity), a za to te które są bardzo mało prawdopodobne kodowane są na długich słowach bitowych (nawet kilkanaście bitów). Dzięki temu statystycznie osiągamy kompresję ilości danych. Bardzo dobre wyjaśnienie mechanizmu kodów Huffmana jest na http://pl.wikipedia.org/wiki/Huffman
obawiam się, że prościej już się nie da.
Co do linbits - w koderze mp3 pojedynczym symbolem (kombinacją bitów) kodu Huffmana koduje się zazwyczaj pary sąsiednich próbek (współczynników MDCT), ponieważ dzięki temu wykorzystuje się również łączne prawdopodobieństwo współwystępowania symboli (czyli korelację sąsiednich próbek). W normie ISO/IEC 1172-3 jest zaszytych kilkanaście tablic predefiniowanych kodów dla takich par. Dobrze napisany koder powinien dokonać próbnego zakodowania wszystkimi tablicami i wybrać tę jedną, która daje najsilniejszą kompresję. Ze względu na oszczędność miejsca, kody Huffmana nie są zdefiniowane dla wszystkich możliwych kombinacji współczynników, a jedynie dla takich, których wartości nie przekraczają 15. Jeśli pojawi się próbka o większej wartości, to od niej odejmuje się 15 i koduje tylko różnicę, za to przesyłana jest sygnalizacja tego zabiegu (żeby dekoder mógł go odwrócić). Ponieważ takie odjęcie 15 zmienia rozkład statystyczny, zatem trzeba zastosować inną tablicę kodu Huffmana, powiązaną z daną różnicą od 15. Linbits to ilość bitów skojarzona z daną tablicą Huffmana, która pozwala zakodować różnicę pomiędzy rzeczywistą próbką a 15 po to, żeby zmieścić się w tablicy (tzn. żeby był dla niej zdefiniowany kod Huffmana).
**********************
a może jednak
Męczę sie nad prezentacją na temat kodowania mp3 i dodawania do niej znaku wodnego z użyciem tzw. "linbits characterisic". Cały proces kodowaania mniej więcej mam ale kodowanie Huffmana i w nim "linbits" to dla mnie czarna magia. Wiec może ktos ma o tym wieksze pojęcie ode mnie i mogłby to jakos "na chłopski rozum" wytłumaczyć.Bo w necie tylko ogólniki albo gotowe kody wzglednie naukowe wypociny z których za dużo nie rozumiem.
...
**********************
kodowanie Huffmana to kodowanie kodami o zmiennej długości bitowej. Kody Huffmana są tak skonstruowane, że są symbolami zerojedynkowymi o długości odwrotnie proporcjonalnej do prawdopodobieństwa wystąpienia kodu. Innym słowy, te wartości próbek widma (MDCT), które są najbardziej prawdopodobne kodowane są bardzo krótkimi kodami (2 lub 3 bity), a za to te które są bardzo mało prawdopodobne kodowane są na długich słowach bitowych (nawet kilkanaście bitów). Dzięki temu statystycznie osiągamy kompresję ilości danych. Bardzo dobre wyjaśnienie mechanizmu kodów Huffmana jest na http://pl.wikipedia.org/wiki/Huffman
obawiam się, że prościej już się nie da.
Co do linbits - w koderze mp3 pojedynczym symbolem (kombinacją bitów) kodu Huffmana koduje się zazwyczaj pary sąsiednich próbek (współczynników MDCT), ponieważ dzięki temu wykorzystuje się również łączne prawdopodobieństwo współwystępowania symboli (czyli korelację sąsiednich próbek). W normie ISO/IEC 1172-3 jest zaszytych kilkanaście tablic predefiniowanych kodów dla takich par. Dobrze napisany koder powinien dokonać próbnego zakodowania wszystkimi tablicami i wybrać tę jedną, która daje najsilniejszą kompresję. Ze względu na oszczędność miejsca, kody Huffmana nie są zdefiniowane dla wszystkich możliwych kombinacji współczynników, a jedynie dla takich, których wartości nie przekraczają 15. Jeśli pojawi się próbka o większej wartości, to od niej odejmuje się 15 i koduje tylko różnicę, za to przesyłana jest sygnalizacja tego zabiegu (żeby dekoder mógł go odwrócić). Ponieważ takie odjęcie 15 zmienia rozkład statystyczny, zatem trzeba zastosować inną tablicę kodu Huffmana, powiązaną z daną różnicą od 15. Linbits to ilość bitów skojarzona z daną tablicą Huffmana, która pozwala zakodować różnicę pomiędzy rzeczywistą próbką a 15 po to, żeby zmieścić się w tablicy (tzn. żeby był dla niej zdefiniowany kod Huffmana).