Realizacja kodeka LD-CELP w strukturze FPGA w oparciu o

Transkrypt

Realizacja kodeka LD-CELP w strukturze FPGA w oparciu o
Realizacja kodeka LD-CELP w
strukturze FPGA w oparciu o
standard ITU-T G.728
Praca dyplomowa magisterska
Michał Okularczyk
Warszawa, 2007
Motywacja
Technika VoIP
Projekt bramki VoIP w FPGA (Xilinx)
Kodery mowy – software oraz DSP
P. Kłoszewski „Real time implementation of the
ITU-T G.723.1 encoder-decoder based on the
TMS320C6711 Digital Signal Processor”
„Realizacja kodeka LD-CELP w strukturze FPGA
w oparciu o standard ITU-T G.728”
2
Plan prezentacji
Kodowanie mowy
Kodek LD-CELP
Realizacja w FPGA
Wybór kodeka
Koder
Dekoder
Pseudokod DSP
Projekt i optymalizacja
Zestaw testowy
Otrzymane wyniki
Problemy podczas realizacji
Podsumowanie
3
Kodowanie mowy
Podział kodeków mowy na:
PCM - Pulse Code Modulation
DPCM - Differential PCM
ADPCM - Adaptive DPCM
Wokodery
CELP – Code Excited Linear Prediction
4
Kodek LD-CELP
Wybór kodeka
LD-CELP – Low Delay CELP
Małe opóźnienie algorytmiczne (0.625 ms)
Specyfikacja zmiennoprzecinkowa z 1992 roku,
stałoprzecinkowa z 1994 roku
Brak predykcji długookresowej
KsiąŜka kodowa zawierająca 1024 wektory kodowe
Przesyłany tylko jeden parametr
Parametry filtru syntezy odtwarzane w dekoderze na
podstawie poprzednich próbek
Nominalna przepływność 16 kbit/s
5
Kodek LD-CELP
Koder
6
Kodek LD-CELP
Dekoder
7
Realizacja w FPGA
Pseudokod DSP
Zawarty w specyfikacji stałoprzecinkowej ITU-T
Opis działania poszczególnych bloków kodera
oraz dekodera
Pseudokod DSP składa się z:
Opis podstawowych parametrów
Opis zmiennych wewnętrznych wraz ze stanami
początkowymi
Opis algorytmów poszczególnych bloków
Konwersja do języka Verilog
8
Realizacja w FPGA
Projekt i optymalizacja
Płytka deweloperska DSP-DEVKIT-2S60N z
układem Stratix II EP2S60F1020C4 firmy Altera
Altera Quartus II
Zmiana algorytmiczna w adapterze wzmocnienia
Łączenie modułów wykorzystujących wspólne
zasoby pamięciowe
Optymalizacja dzięki lepszemu wykorzystaniu
pamięci RAM
9
Realizacja w FPGA
Zestaw testowy
10
Realizacja w FPGA
Otrzymane wyniki
Moduł podstawowy
Moduł testowy
Koder
Dekoder
Koder
Dekoder
ALUT
30 058 (62%)
18 596 (38%)
30 282 (63%)
18 888 (39%)
Rejestry
21 144 (44%)
13 307 (28%)
21 207 (44%)
13 342 (28%)
RAM
97 488 bitów
(4%)
45 088 bitów
(2%)
135 376 bitów
(5%)
115 744 bitów
(5%)
Bloki DSP
94 (33%)
42 (19%)
94 (33%)
42 (19%)
fmax
62,58 MHz
67,39 MHz
66,24 MHz
68,31 MHz
tmin
15,979 ns
14,838 ns
15,096 ns
14,639 ns
11
Problemy podczas realizacji
Poziom skomplikowania oraz wielkość urządzeń
Błędy kompilatora Quartus II w syntezie języka
Verilog
Długi czas symulacji urządzenia na komputerze
klasy PC
12
Podsumowanie
MoŜliwość tworzenia urządzeń przetwarzających
sygnał mowy w FPGA
Pseudokod DSP cennym źródłem informacji
umoŜliwiającym poprawną realizację urządzeń
Nie akceptowalnie długi czas symulacji
urządzeń na komputerze typu PC
Konieczność dodatkowych testów w celu
zagwarantowania poprawności działania
urządzenia w czasie rzeczywistym
MoŜliwość rozbudowy projektu
13
Realizacja kodeka LD-CELP w
strukturze FPGA w oparciu o
standard ITU-T G.728
Praca dyplomowa magisterska
Michał Okularczyk
Warszawa, 2007