ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN:...

33
УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА НОВИ САД Департман за рачунарство и аутоматику Одсек за рачунарску технику и рачунарске комуникације ЗАВРШНИ (BACHELOR) РАД Кандидат: Саша Талоши Број индекса: РА77/2012 Тема рада: Израда блока аудио обраде за интелигентну еквализацију на ДСП платформи Ментор рада: Доц. др Јелена Ковачевић Нови Сад, септембар, 2017

Transcript of ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN:...

Page 1: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

УНИВЕРЗИТЕТ У НОВОМ САДУ

ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА

УНИВЕРЗИТЕТ У НОВОМ САДУ

ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА

НОВИ САД

Департман за рачунарство и аутоматику

Одсек за рачунарску технику и рачунарске комуникације

ЗАВРШНИ (BACHELOR) РАД

Кандидат: Саша Талоши

Број индекса: РА77/2012

Тема рада: Израда блока аудио обраде за интелигентну еквализацију на ДСП платформи

Ментор рада: Доц. др Јелена Ковачевић

Нови Сад, септембар, 2017

Page 2: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА

21000 НОВИ САД, Трг Доситеја Обрадовића 6

КЉУЧНА ДОКУМЕНТАЦИЈСКА ИНФОРМАЦИЈА

Редни број, РБР:

Идентификациони број, ИБР:

Тип документације, ТД: Монографска документација

Тип записа, ТЗ: Текстуални штампани материјал

Врста рада, ВР: Завршни (Bachelor) рад

Аутор, АУ: Саша Талоши

Ментор, МН: Доц. др Јелена Ковачевић

Наслов рада, НР: Израда блока аудио обраде за интелигентну еквализацију на ДСП платформи

Језик публикације, ЈП: Српски / латиница

Језик извода, ЈИ: Српски

Земља публиковања, ЗП: Република Србија

Уже географско подручје, УГП: Војводина

Година, ГО: 2017

Издавач, ИЗ: Ауторски репринт

Место и адреса, МА: Нови Сад; трг Доситеја Обрадовића 6

Физички опис рада, ФО: (поглавља/страна/ цитата/табела/слика/графика/прилога)

Научна област, НО: Електротехника и рачунарство

Научна дисциплина, НД: Рачунарска техника

Предметна одредница/Кqучне речи, ПО: Сложене аудио технологије, дигитална обрада сигнала, интелигентна еквализација звука

УДК

Чува се, ЧУ: У библиотеци Факултета техничких наука, Нови Сад

Важна напомена, ВН:

Извод, ИЗ: У оквиру рада је имплементирано једно решење модула за интелигентну еквализацију звука на процесору за дигиталну обраду сигнала.

Датум прихватања теме, ДП:

Датум одбране, ДО:

Чланови комисије, КО: Председник: Доц. др Миодраг Ђукић

Члан: Доц. др Иван Каштелан Потпис ментора

Члан, ментор: Доц. др Јелена Ковачевић

Page 3: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

UNIVERSITY OF NOVI SAD FACULTY OF TECHNICAL SCIENCES

21000 NOVI SAD, Trg Dositeja Obradovića 6

KEY WORDS DOCUMENTATION

Accession number, ANO:

Identification number, INO:

Document type, DT: Monographic publication

Type of record, TR: Textual printed material

Contents code, CC: Bachelor Thesis

Author, AU: Saša Taloši

Mentor, MN: Doc. dr Jelena Kovačević

Title, TI: DSP implementation of intelligent audio equalization

Language of text, LT: Serbian

Language of abstract, LA: Serbian

Country of publication, CP: Republic of Serbia

Locality of publication, LP: Vojvodina

Publication year, PY: 2017

Publisher, PB: Author’s reprint

Publication place, PP: Novi Sad, Dositeja Obradovica sq. 6

Physical description, PD: (chapters/pages/ref./tables/pictures/graphs/appendixes)

Scientific field, SF: Electrical Engineering

Scientific discipline, SD: Computer Engineering, Engineering of Computer Based Systems

Subject/Key words, S/KW: Complex audio technologies, digital signal processing, intelligent audio equalization

UC

Holding data, HD: The Library of Faculty of Technical Sciences, Novi Sad, Serbia

Note, N:

Abstract, AB: This thesis describes one realisation of an intelligent equalization module on a digital signal porcessor.

Accepted by the Scientific Board on, ASB:

Defended on, DE:

Defended Board, DB: President: Doc. dr Miodrag Đukić

Member: Doc. dr Ivan Kaštelan Menthor's sign

Member, Mentor: Doc. dr Jelena Kovačević

Page 4: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

УНИВЕРЗИТЕТ У НОВОМ САДУ

ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА

Zahvalnost

Zahvaljujem se mentoru, profesorki Jeleni Kovačević i saradnicima - Robertu Pečkaji

Kovač, Goranu Babić, Aleksi Stojanović i Nenadu Pekez na razumevanju i stručnoj pomoći

prilikom izrade rada.

Takođe, zahvaljujem se svojoj porodici, prijateljima i kolegama na stalnoj i ogromnoj

podršci tokom izrade ovog rada i celokupnog vremena provedenog na studijama.

Page 5: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

III

SADRŽAJ

1. Uvod ............................................................................................................................... 1

2. Teorijske osnove ............................................................................................................. 2

2.1 Sistem prijemnika audio-video signala CRD49844 ............................................ 2

2.2 Procesor za digitalnu obradu signala (DSP) ....................................................... 4

2.2.1 Digitalna obrada signala ................................................................................. 4

2.2.2 Karakteristike DSP procesira ......................................................................... 6

2.2.3 DSP procesor CS49844 .................................................................................. 8

2.3 Ekvalizacija ......................................................................................................... 9

2.4 Krive jednake glasnoće ..................................................................................... 10

2.5 Inteligentni ekvalajzer ....................................................................................... 11

3. Koncept rešenja ............................................................................................................ 13

3.1 Razvojno okruženje .......................................................................................... 13

3.2 Tok izrade projekta ........................................................................................... 13

3.2.1 Model 0 (Referentni kod) ............................................................................. 14

3.2.2 Model 1 ......................................................................................................... 14

3.2.3 Model 2 ......................................................................................................... 15

3.2.4 Model 3 ......................................................................................................... 15

3.2.5 Finalni kod .................................................................................................... 15

3.3 Opis algoritma ................................................................................................... 16

3.3.1 Obrada pre inteligentnog ekvalajzera ........................................................... 16

3.3.2 Obrada inteligentnog ekvalajzera ................................................................. 16

3.3.3 Obrada nakon inteligentnog ekvalajzera ...................................................... 16

4. Programsko rešenje....................................................................................................... 17

4.1 X_S_intelligent_eq_process ............................................................................. 17

5. Rezultati ........................................................................................................................ 20

5.1 Utrošak memorije .............................................................................................. 20

5.2 Potrošnja procesorskog vremena ...................................................................... 21

6. Zaključak ...................................................................................................................... 24

7. Literatura ...................................................................................................................... 25

Page 6: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Spisak slika

IV

SPISAK SLIKA

Slika 2.1 Razvojna ploča CRD49844 ............................................................................... 2

Slika 2.2 Blok dijagram razvojne ploče CRD49844 ......................................................... 3

Slika 2.3 Ilustracija opšteg funkcionisanja sistema .......................................................... 4

Slika 2.4 Blok dijagram digitalne obrade signala ............................................................. 5

Slika 2.5 Šum prisutan u analognom (levo) i digitalnom(desno) signalu ......................... 5

Slika 2.6 Originalni signal (crveni) i signal koji je registrovan (plavi) ............................ 6

Slika 2.7 Gornja slika – originalni (plavi) i kvantizovani signal (crveni) Donja slika –

greška u konverziji iz analognog u digitalni domen .................................................................. 6

Slika 2.8 Harvard i Von Nojman arhitektura .................................................................... 7

Slika 2.9 Blok dijagram DSP čipa CS49844 .................................................................... 8

Slika 2.10 Desetopojasni EQ .......................................................................................... 10

Slika 2.13 Krive jednake glasnoće .................................................................................. 10

Slika 2.11 Prvi pimer IEQ ............................................................................................... 12

Slika 2.12 Drugi primer IEQ ........................................................................................... 12

Slika 3.1 Tok izrade DSP aplikacije ............................................................................... 14

Page 7: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Spisak tabela

V

SPISAK TABELA

Tabela 1 Utrošak memorije ............................................................................................. 21

Tabela 2 Utrošak ciklusa za 32k ..................................................................................... 21

Tabela 3 Utrošak ciklusa za 44k1 ................................................................................... 22

Tabela 4 Utrošak ciklusa za 48k ..................................................................................... 22

Page 8: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Skraćenice

VI

SKRAĆENICE

DSP – Procesor za digitalnu obradu signala (Digital Signal Processor)

EQ – Ekvalajzer (Equalizer)

IEQ – Inteligentan ekvalajzer (Intelligent equalizer)

DTS – Audio tehnologija (Dedicated To Sound)

LCD – Ekran zasnovan na tehnologiji tečnih kristala (Liquid Crystal Display)

ADC – Analogno-digitalni konverter (Analog-to-Digital Converter)

DAC – Digitalno-analogni konverter (Digital-to-Analog Converter)

DAI – Digitalni audio ulaz (Digital Audio Input)

DAO – Digitalni audio izlaz (Digital Audio Output)

MAC – Pomnoži i saberi (Multiply And Accumulate)

ROM – Memorija iz koje se podaci mogu samo čitati (Read Only Memory)

VS – Razvojno okruženje Visual Studio

CLIDE – Razvojno okruženje Cirrus Logic IDE

CQMF – Kompleksan filter (Complex Quadratic Mirror Filter)

ERB – Ekvivalentan pravougaoni pojas (Equivalent Rectangular Bandwidth)

Page 9: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Uvod

1

1. Uvod

Predmet analize ovog rada predstavlja implementacija blok obrade za inteligentnu

ekvalizaciju zvuka na DSP procesoru.

Rad obuhvata upoznavanje sa osnovama digitalne audio obrade i ciljanom platformom.

Implementacija obuhvata prilagođavanje referentnog C koda aritmetici željene DSP platforme

i realizaciju u asemblerskom jeziku.

Cilj rada je upoznavanje sa pisanjem programske podrške u realnom vremenu za audio

DSP aplikacije na ciljanoj platformi. Takođe, u radu je predstavljeno i upoznavanje sa opštim

postupcima ispitivanja, verifikacije audio DSP aplikacija i izradom tehničke dokumentacije.

Obrada je napravljena u okviru programskih jezika C i Coyote32 asembleru.

Verifikacija implementacije se vršila pomoću vektora testnih slučajeva, koji su

generisani pomoću referentnog koda za date testne slučajeve. Isti testni slučajevi su

predstavljeni implementaciji u asembleru, koja je generisala svoje izlazne vektore.

Upoređivanjem izlaznih vektora vršila se verifikacija implementacije.

Page 10: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Teorijske osnove

2

2. Teorijske osnove

Ovo poglavlje pruža osnovne karakteristike razvojne ploče CRD49844 kao i njenih

najvažnijih komponenti i interakciji među njima. Takođe, upoređuju se prednosti i mane

digitalne i analogne obrade signala i zašto je danas više upotrebljena digitalna obrada signala

u audio i video sistemima. Konačno, ovo poglavlje pruža teorijske osnove o digitalnoj obradi

signala, ekvalizaciji, i inteligentnoj ekvalizaciji.

2.1 Sistem prijemnika audio-video signala CRD49844

Na slici 2.1 dat je prikaz razvojne ploče Cirrus Logic CRD49844 koja je korišćena

prilikom izrade rada. Na slici 2.1, takođe je obeležena komponenta koja je bila od najvećeg

interesa, a to je DSP.

Slika 2.1 Razvojna ploča CRD49844

Kontrolu nad DSP procesorom CS49844 moguće je ostvariti na dva načina. Prvi način

je putem računara i pomoću sprežne kartice CDB-MCU-DEBUG-B, koja omogućava tu

spregu (na slici 2.1 vidi se ta kartica na levoj strani slike), a drugi preko mikrokontrolera, koji

Page 11: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Teorijske osnove

3

se nalazi na ploči i bez ikakvih spoljnih i dodantih komponenti. Prvi način rada je poznat kao

JP2, dok je drugi samostalni ili standalone. U oba slučaja mikrokontroler kontroliše sve

periferije ploče, kao što su kodek, DAC/ADC, HDMI primopredajnik i mnoge druge. Razlika

u ovim načinima pristupa ogleda se u tome što sama komunikacija sa DSP procesorom u

prvom pristupu obavlja se putem računara, a u drugom putem mikrokontrolera. JP2 je, pre

svega, namenjen za razvoj i testiranje DSP programske podrške (dekodera, post-procesora,…)

i menjanje celokupne programske podrške, odnosno, programiranje flash memorije u koju se

programska podrška smešta.

Sprega sa korisnicima, tj. korisnički interfejs, se u oba načina rada ostvaruje putem LCD

ekrana, četiri tastera i rotacionog enkodera koji se nalaze na ploči.

Na slici 2.2 predstavljen je blok dijagram ploče CRD49844. Glavne komponente

sistema su:

• DSP procesor CS49844;

• 16-bitni mikrokontroler R5F100LL;

• flash memorija SST25VF032;

• osmokanalni DAC CS4385;

• stereo ADC CS53L21;

• HDMI primopredajnik Sil9573.

Slika 2.2 Blok dijagram razvojne ploče CRD49844

Page 12: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Teorijske osnove

4

Od audio ulaza/izlaza sistem poseduje:

• analogne ulaze/izlaze;

• ulaz za mikrofon;

• optičke digitalne ulaze/izlaze;

• koaksijalne digitalne ulaze;

• digitalne audio ulaze/izlaze (DAI/DAО);

• HDMI ulaze/izlaze.

U najopštijem slučaju, sistem funkcioniše na sledeći način: nakon što ulazni audio

signal dođe do DSP procesora, DSP prepoznaje o kom je tipu signala reč i iz flash memorije

učitava odgovarajuće komponente za obradu datog audio signala. Svake dalje promene u

lancu obrade koje korisnik može zahtevati putem korisničke sprege, promene u konfiguraciji

sistema ili promene ulaznog toka, moraju se izvršavati preko mikrokontrolera. Odnosno,

mikrokontroler registruje zahteve korisnika i šalje odgovarajuće instrukcije DSP procesoru,

kako bi procesor učitao iz memorije komponente programske podrške i izvršio tražene

izmene.

Slika 2.3 Ilustracija opšteg funkcionisanja sistema

2.2 Procesor za digitalnu obradu signala (DSP)

2.2.1 Digitalna obrada signala

Digitalna obrada signala predstavlja numeričku manipulaciju nad signalima i sastoji se

iz tri osnovna stepena: konverzije analognih signala u digitalni oblik, obrade digitalnih signala

i konverzije obrađenih signala nazad u analogni oblik.

Page 13: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Teorijske osnove

5

Slika 2.4 Blok dijagram digitalne obrade signala

Binarna prezentacija informacija omogućava prevođenje problema iz domena složenog

hardvera u domen složenih algoritama, koji se mogu razvijati i lako menjati i izvršavati na

procesoru. To nudi mnoge prednosti u odnosu na klasičnu analognu obradu signala.

Digitalna obrada signala daje veću fleksibilnost i iskorišćenost resursa. To znači da je

skup mogućih obrada, takođe, veći, pa digitalna implementacija dozvoljava jednostavnu

realizaciju filtera, kao što su adaptivni ili frekventno selektivni, kao i realizaciju banke filtera i

mnogih drugih naprednijih algoritama. Realizacija sistema linerane faze i obrada signala sa

promenljivom periodom odabiranja, takođe, su mogući u digitalnoj formi, dok u analognoj

nisu. Bitno je napomenuti da se u binarnoj formi lakše postiže željena tačnost jednostavnim

povećavanjem dužine binarne reči [1].

Digitalni signali su otporniji na šumove, jer je odluka o vrednosti jedinice informacije

svedena na samo dve vrednosti, uključeno ili isključeno (1 ili 0). Kod analognih signala

postoji čitav opseg kontinualnih vrednosti, koje su glavni nosioci informacije, što znači da i

najmanji šum utiče na promenu vrednosti, pa samim tim i na informacije. To znači da će šum

prisutan u analognom signalu čovek moći lakše da primeti nego u digitalnom signalu.

Slika 2.5 Šum prisutan u analognom (levo) i digitalnom(desno) signalu

Kao što digitalni sistemi sa sobom donose mnoge vrline, takođe donose i mane. Jedan

od glavnih nedostataka digitalne obrade signala je ograničen opseg frekvencija signala koji se

mogu obrađivati. Naime, prilikom konverzije analognih signala u digitalne, potrebno je

izvršiti odabiranje, i to sa periodom koja je dva puta viša od najviše frekvencije prisutne u

Page 14: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Teorijske osnove

6

analognom signalu, u suprotnom će doći do pogrešne interpretacije signala - aliasing. Drugim

rečima, ako su signali brži od onoga što sistem može da primi, sistem će registrovati signale

kao sporije nego što to oni zaista jesu [1]. Primer ove pojave dat je na slici 2.6.

Slika 2.6 Originalni signal (crveni) i signal koji je registrovan (plavi)

Prilikom konverzije signala iz analognog u digitalni domen, potrebno je izvršiti i

kvantizaciju prethodno odabranih vrednosti, odnosno, kontinualne vrednosti kovertovati u

diskretne. Time se uvodi neizbežna greška, i digitalni signal se odmah, u samoj konverziji,

pomera u spektru, u odnosu na originalni signal.

Slika 2.7 Gornja slika – originalni (plavi) i kvantizovani signal (crveni)

Donja slika – greška u konverziji iz analognog u digitalni domen

Potreba za dodatnim komponentama kao što su digitalno-analogni i analogno-digitalni

konvertori, filteri i neka druga dodatna kola, takođe, predstavljaju dodatnu vrstu nedostatka.

Međutim, prednosti digitalne obrade signala su znatno izraženije od nedostataka, pa se samim

tim broj aplikacija ove vrste obrade povećava velikom brzinom.

2.2.2 Karakteristike DSP procesora

Algoritmi za digitalnu obradu signala najčešće se sastoje od velikog broja kompleksnih

matematičkih operacija, koje se izvršavaju nad određenim blokom podataka. Mnogi

mikrokontroleri i mikroprocesori za opštu upotrebu mogu vršiti obradu signala, ali njihove

performanse prilikom izvršavanja ovih kompleksnih algoritama mogu biti veoma loše i

praktično neupotrebljive (pre svega za rad u realnom vremenu), jer su oni namenjeni za

Page 15: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Teorijske osnove

7

izvršavanje različitih korisničkih programa. Prilikom rada u realnom vremenu, gde je

potrebno da se primljeni signal obradi unapred i u precizno definisanom vremenskom

intervalu, potrebni su procesori koji su direktno namenjeni za digitalnu obradu signala.

Specifična arhitektura ovih procesora razlikuje ih od procesora za opštu upotrebu.

Procesori za digitalnu obradu signala imaju višestruke magistrale za program i podatke,

odnosno Harvard arhitekturu, što im omogućuje, istovremeni pristup instrukcijama i

podacima iz memorije, čime se znatno ubrzava celokupni rad ovih sistema. Kako bi DSP

procesori bili efikasniji, često imaju Harvard arhitekturu sa tri magistrale, jednu za program, a

dve za podatke, čime je moguće istovremeno čitati instrukciju i dva operanda. Mikroprocesori

sa Fon Nojmanovom arhitekturom, sa druge strane, kada izvršavaju instrukciju, moraju je

prvo pročitati iz memorije, dekodirati je, a zatim iz memorije pročitati operand, i tek onda

izvrčiti operaciju, što sve oduzima mnogo vremena.

Slika 2.8 Harvard i Von Nojman arhitektura

Osnovna i glavna operacija u algoritmima za obradu digitalnih signala jeste množenje.

Poznato je da je to jedan od najzahtevnijih operacija u procesorima opšte namene.

Mikroprocesoru 8086 za sabiranje je potrebno tri ciklusa, dok je za množenje potrebno

između 134-160 ciklusa. Zato u DSP procesorima postoji hardverska jedinica koja je

zadužena samo za množenje. Takvo rešenje omogućuje da se množenje dva broja izvrši u

samo jednom ciklusu. U aritmetičko logičnim jedinicama ovih procesora često je omogućeno

i direktno sabiranje sa trećim brojem u istom ciklusu, kada se izvrši i množenje tzv. MAC

instrukcije.

U cilju dodatnog povećanja nivoa paralelizma, DSP procesori imaju i tzv. protočnu (

pipeline) strukturu koja instrukcije deli u više manjih opracija koje se izvršavaju paralelno,

ako je to moguće.

Page 16: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Teorijske osnove

8

Prilikom digitalne obrade signala, često se radi nad velikim količinama podataka, koji se

nalaze u nizovima. S obzirom da je kod mikroprocesora opšte namene vreme potrebno za

izračunavanje adrese veće od vremena potrebnog za samu obradu tog podatka, DSP procesori

imaju specijalizovane jedinice – adresne generatore. Ove komponente im omogućuju izuzetno

brzo izračunavanje adrese podataka koji se obrađuju i često imaju i dodatne mogućnosti, kao

što su binarno inverzno adresiranje ili adresiranje sa modulo aritmetikom.

DSP procesori često poseduju i ROM, koji najčešće služi za smeštanje konstanti koje se

koriste prilikom rada programa.

2.2.3 DSP procesor CS49844

Na razvojnoj ploči Cirrus Logic CRD49844 nalazi se DSP procesor CS49844, koji u

sebi ima četiri 32-bitna DSP jezgra. Svako jezgro poseduje unapređenu hardvardsku

arhitekturu sa po tri memorije, dve za podatke i jednu za program [1].

Veličina memorije za podatke svakog jezgra je 120 000 reči (32 bita), dok je

programska memorija velika 60 000 reči. Svako jezgro omogućuje izvršenje šest aritmetičkih

operacija u jednom ciklusu. Ovaj tip poseduje i ROM veličine 32 000 reči.

Slika 2.9 Blok dijagram DSP čipa CS49844

Programska podrška ovog procesora se sastoji od operativnog sistema i biblioteke tzv.

prekrivača (overlays), odnosno, komponenti koje se učitavaju iz spoljne memorije u

zavisnosti od ulaznog toka. Operativni sistem/kernel obavlja sve zadatke koje se ne odnose na

audio obradu, kao što su obrade poruka od domaćina, pozivanje rutina za audio obradu,

obrada grešaka itd.

Komponente programske podrške se dele u pet grupa:

Page 17: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Teorijske osnove

9

• Dekoderi – moduli koji inicijalno upisuju podatke u audio ulatno-izlazni bafer i

u kojima se nalaze algoritmi za dekodovanje i obradu svih mogućih ulaznih

signala.

• Matrični procesori – moduli koji menjaju broj validnih izlaznih kanala u toku

pomoću procesa kao što su virtualizacija ili matrično dekodovanje.

• Procesori za virtualizaciju – moduli koji vrše virtualizaciju i smanjivanje

broja izlaznih kanala (dowmixing).

• Procesori za podešavanje jačine zvuka – moduli koji služe za podešavanje

jačine zvuka audio sistema prema željenim očekivanjima korisnika.

• Post-procesori – moduli koji vrše bilo kakvu dodatnu obradu podataka nakon

matričnih dekodera ili procesora za virtualizaciju.

Prekrivačka struktura smanjuje vreme potrebno DSP procesoru da izvrši

rekonfiguraciju, odnosno, izmenu komponenti programske podrške. Bilo koja komponenta

može biti potpuno nezavisno učitana iz memorije, bez bilo kakvih uticaja na druge

komponente. Na primer, kada je odabran novi dekoder, ostale komponente, oprativni sistem,

matrični dekoder, procesori za virtualizaciju, podešavanje jačine zvuka i post-procesiranje, ne

moraju biti učitani. Samo će dekoder biti zamenjen. Ovo pravilo važi i za ostale komponente.

2.3 Ekvalizacija

Ekvalizacija (EQ) je proces podešavanja balansa između frekvencijskih komponenti u

jednom signalu. Ekvalizacija se najviše koristi pri snimanju i reproduciranju zvuka. Hardver

ili softver koji se koristi za ekvalizaciju se zove ekvalajzer.

U opštem slučaju EQ ne služi samo za podešavanje balansa frekvencijskih komponenti

u signalu, već nudi i mogućnost da korisnik podesi koje frekvencijske komponente pojačava

ili smanjuje.

EQ radi tako što signal podeli na više frekvencijskih pojasa ili opsega i na svaki od tih

pojasa dodaje pojačanje ili smanjenje u zavisnosti od podešavanja. Kompleksnost EQ najviše

zavisi od toga na koliko pojasa može da podeli jedan signal i koliko detaljno može da ga

pojača ili smanji. Najčešće viđeni EQ deli signal na visoke, srednje i niske pojaseve, ali mogu

se naći i ekvalajzeri koji dele na 2 pojasa, a i mnogo više.

Na slici 2.10 se može videti primer jednog EQ, koji signal deli na 10 pojasa, i svaki od

pojasa može da pojačava ili smanjuje za 12 dB.

Page 18: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Teorijske osnove

10

Slika 2.10 Desetopojasni EQ [3]

EQ se često koristi za neutralisanje neželjenih frekvencijskih komponenti iz signala kao

što su šumovi, visoko ili nisko zujanje, žamor u pozadini telefonskog razgovora itd.

2.4 Krive jednake glasnoće

Ljudsko uho, zbog fizičkih karakteristika, ne razlikuje glasnoću zvuka linearno sa

povećanjem intenziteta, već glasnoće razlikuje na logaritamskoj skali. Zato se za

kvantifikaciju intenziteta zvuka koristi decibel (dB), logaritamska jedinica kojom se prikazuje

odnos između dve veličine. Dodatno, ljudsko uho, zbog anatomije ušne školjke, nije jednako

osetljivo na različite frekvencije [4]. Na slici 2.13 je prikazan dijagram na kom su vidljive

krive jednake glasnoće.

Slika 2.11 Krive jednake glasnoće [4]

Page 19: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Teorijske osnove

11

Za prikaz glasnoće zvuka se upotrebljava jedinica fon. Frekvencija na kojoj decibel i

fon imaju jednake vrednosti je 1000 Hz. Sa kriva jednakih glasnoća možemo da zaključimo

koliki je potreban intenzitet zvuka na određenoj frekvenciji da bi se postigla jednaka glasnoća

na drugoj frekvenciji i intenzitetu. Na primer, zvuk intenziteta 80 dB na 1000 Hz znači je

glasan 80 fona, a zvuk inteziteta 80 dB na 100 Hz se vidi na dijagramu da se nalazi ispod

krive od 80 fona što znači da je njegova glasnoća manja.

2.5 Inteligentni ekvalajzer

Inteligentni ekvalajzer (IEQ) je novi koncept u obradi audio signala koji obezbeđuje

konzistentnost spektralnog balansa. Konzistentnost se postiže neprestanim posmatranjem

spektralnog balansa audio signala, poređenjem istog sa željenim podešavanjima i dinamičkim

podešavanjima filtera kojima se originalni zvuk transformiše u željeni.

Na postojećim audio sistemima, većinom, su ugrađena statička podešavanja koja se ne

menjaju u toku rada sistema. Ovi sistemi vrše identične promene na svakoj frekvenciji ne

obraćajući pažnju na sadržaj i ovo može dovesti do nekvalitetne reprodukcije zvuka. Na

primer, ako je EQ podešen tako da pojačava niske komponente, a određeni signal originalno

ima pojačane niske komponente, može se desiti da se ove komponente toliko pojačaju da dođe

do distorzije zvuka.

Sa druge strane, sistem koji sadrži IEQ je dinamičan. Ako audio signal ima pojačane

niske komponente u poređenju sa prvobitnim podešavanjima, IEQ će registrovati to i neće

vršiti dodatna pojačavanja koja ugrožavaju spektralni balans i izazivaju distrozije signala.

Rezultat ovoga je željeni signal bez preterane prerade signala i bez distorzije.

Na slikama 2.11 i 2.12 može se videti kako IEQ ubacuje svoje pojačanje, koje podešava

signal, tako da pojačanje po opsezima bude mnogo bliže željenoj vrednosti nego što bi stvarno

bilo.

Page 20: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Teorijske osnove

12

Slika 2.12 Prvi pimer IEQ

Slika 2.13 Drugi primer IEQ

Page 21: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Koncept rešenja

13

3. Koncept rešenja

U ovom poglavlju je predstavljeno razvojno okruženje u kom je razvijan projekat i

objašnjena je metodologija koja se pratila u izradi projekta. Konačno, opisan je i algoritam

koji je implementiran u okviru projekta.

3.1 Razvojno okruženje

Razvojna okruženja koja su upotrebljena tokom izrade ovog projekta su Microsoft

Visual Studio (VS) i Cirrus Logic IDE (CLIDE). U početnoj fazi projekta se upotrebljavao

VS zato što je pogodan za razvoj aplikacija za procesore opšte namene, a u kasnijim fazama

se prešlo na razvojno okruženje CLIDE koje je namenjeno za rad sa DSP procesorima

proizvođača Cirrus Logic.

CLIDE je zasnovan na Eclipse platformi. Eclipse platforma je široko upotrebljivana kao

osnova za mnoga razvojna okruženja, jer je otvorenog koda i nudi mnoštvo alata za razvoj

programske podrške. CLIDE, kao i mnoga druga razvojna okruženja, omogućava menjanje

koda i pomaže pri pisanju novog, koristi prevodilac za Cirrus Logic DSP procesore i prevodi

kod. Najbitnije je što omogućava kontrolisano izvršavanje koda koje pomaže pri brzom

uočavanju i uklanjanju grešaka.

3.2 Tok izrade projekta

Izrada DSP aplikacije predstavlja proces od 5 koraka. Početak ovog procesa predstavlja

kod koji je lako razumljiv i pokreće se na procesorima opšte namene, a kraj procesa

predstavlja kod koji je, najčešće, malo razumljiv i optimizovan za pokretanje na ciljanom DSP

procesoru. Posle svakog koraka se vrši verifikacija očuvanosti kvaliteta obrade, a često se

kvalitet poboljša jer je DSP procesor precizniji od procesora opšte namene, kada je u pitanju

obrada digitalnog signala.

Page 22: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Koncept rešenja

14

Na slici 3.1 se mogu videti svih 5 koraka kroz koje se prolazi u izradi jedne DSP

aplikacije, a u nastavku će svaki korak biti objašnjen.

Slika 3.1 Tok izrade DSP aplikacije [5]

3.2.1 Model 0 (Referentni kod)

Prvi korak predstavlja izradu referentnog koda koji za treba da realizuje ciljani

algoritam. Ovo se radi isključivo zbog toga što je u ovom koraku najlakše napraviti

programsko rešenje algoritma i najjednostavnije je pronaći i ukloniti grešku u kodu, ako je

ona nastala. Za izradu referentnog koda, najčešćce je potrebno mnogo vremena i zatim se

prelazi na Model 1.

3.2.2 Model 1

Drugi korak izrade DSP aplikacije predstavlja optimizaciju referentnog koda, da bi se

lakše u njega ubacila emulacija rada DSP procesora. U referentnom kodu je primarni zadatak

da proradi algoritam i tada se ne vodi računa o optimizaciji koda. U Modelu 1 se tipovi

zamenjuju predprocesorskim direktivama, da bi se u kasnijim koracima lakše zamenili tipovi

koji su prilagođeni za DSP procesore. Takođe, petlje unutar koda se prilagođavaju i

optimizuju da bi se kasnije lako mogle zameniti hardverskim petljama, koje su mnogo brže od

onih korišćenih u referentnom kodu. Izbacuje se indeksiranje nizova i, najčešće se, zamenjuje

pokazivačem koji se adekvatno menja tokom petlje. Broj argumenata funkcija se smanjuje i

od večine argumenata se prave globalne promenljive. Kada se završi izrada Modela 1,

proverava se da li su izlazne datoteke identične, jer do promene između ova dva modela ne

sme da dođe. Ovaj korak izrade aplikacije se brzo završava i ubrzo se prelazi na Model 2.

Page 23: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Koncept rešenja

15

3.2.3 Model 2

Treći korak predstavlja izrada Modela 2 DSP aplikacije. Referentni kod se, najčešće,

služi aritmetikom sa pokretnim zarezom, koja je po svojoj prirodi sporija, manje precizna i

ima veći opseg od aritmetike sa nepokretnim zarezom. S obzirom da u izradi DSP aplikacije

nije toliko bitan opseg, već preciznost, zbog kvaliteta zvuka ili slika, u Modelu 2 se prelazi na

aritmetiku sa nepokretnim zarezom. Takođe, brzina obrade je isto bitan faktor, da ne bi došlo

do kašnjenja zvuka ili slike.

Većina C prevodilaca u sebi ne sadrži opracije sa nepokretnim zarezom pa se u ovom

koraku ubacuju nove biblioteke, koje služe da emuliraju rad fiksnog zareza na procesorima

opšte namene. Te biblioteke, takođe, sadrže i druge funkcije koje služe da DSP aplikaciju

približe izvršavanju na DSP procesoru. Pored dodatnih funkcija, u bibliotekama se nalaze i

tipovi koji ne koriste pokretni zarez.

U ovom koraku može doći do malih promena u izlaznim datotekama DSP aplikacije.

Takve promene se prihvataju ako je došlo do promene u jednom bitu u nekim odbircima.

Promena od jednog bita se, u većini slučajeva, ne može čuti ljudskim uhom i zato je

prihvatljiva. Ako je došlo do promene više bita, proverava se kod i menja se tako da bi se

postigla manja promena u bitovima. Izrada Modela 2 je dosta duža od prva dva koraka i sa

njegovim završetkom se prelazi na Model 3.

Cilj ovog diplomskog rada je izrada Modela 3, na osnovu dobijenog Modela 2.

3.2.4 Model 3

Četvrti korak izrade DSP aplikacije je pomeranje koda za procesor opšte namene na

DSP procesor. Kod se otvara u razvojnom okruženju za rad sa DSP procesorom i vrše se

prepravke, koje će omogućiti da se kod pokrene i da se proveri izlaz Modela 3 i Modela 2.

Pod prepravkama smatra se:

• zamena tipova iz Modela 2 sa tipovima DSP procesora;

• zamena funkcija koje emuliraju aritmetiku nepokretnog zareza sa instrukcijama

DSP procesora;

• prelazak u asemblerski jezik.

Izrada Modela 3 traje duže od izrade Modela 2.

3.2.5 Finalni kod

Finalni kod predstavlja poslednji korak u razvoju DSP aplikacije. U ovom koraku se

kod optimizuje radi bržeg izvršavanja i manjeg utroška resursa. Ovaj kod predstavlja finalnu

verziju koja će biti korišćena na DSP procesorima. S obzirom da se kodovi stalno mogu

Page 24: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Koncept rešenja

16

optimizovati, ovaj proces traje neodređeno dokle god kod ne zadovoljava zahteve koji su mu

postavljeni.

3.3 Opis algoritma

Algoritam se bavi obradom nad blokom od 64 odbirka. Pre nego što IEQ može da

obradi odbirke, oni moraju proći kroz niz transformacija iz vremenskog u frekventni domen i

sortiraju se u Equivalent rectangular bandwidth (ERB) opsege.

3.3.1 Obrada pre inteligentnog ekvalajzera

Kada se u sistem primi 64 odbirka, oni se prvo transformišu pomoću Complex

Quadratic Mirror Filter (CQMF) u 64 jednako raspoređena frekvencijska pojasa. Nakon

ovoga se pojasi grupišu u ERB opsege. Naime, kada se dva zvuka jednake glasnoće i blizu u

frekvencijama reprodukuju zajedno, njihova zajednička glasnoća će biti zanemarljivo glasnija

nego kada bi se reprodukovali pojedinačno. Ovo omogućava da se računa srednji intenzitet na

svim frekvencijama unutar jedne grupe. Grupisanjem se smanjuje količina obrade i

omogućava da se obrada vrši, u ovom slučaju, na nizu od 19 ili 20 članova koji predstavljaju

srednje intenzitete na frekvencijskim opsezima. Intenzitet signala u frekvencijskom pojasu se

izražava u decibelima.

3.3.2 Obrada inteligentnog ekvalajzera

Sam inteligentni ekvalajzer upoređuje željene glasnoće sa trenutnim glasnoćama unutar

signala i na njih dodaje pozitivno ili negativno pojačanje, koje oblikuje signal približno

željenim vrednostima. Algoritam prati ponašanje signala i promene glasnoća po pojasevima

čak i kada je modul za inteligentnu ekvalizaciju isključen. Ovo se vrši da bi se izbegli

nepoželjni efekti, zato što je IEQ imao premalo uzoraka nad kojima je zaključio pogrešne

trenutne intenzitete u signalu. Detaljna analiza algoritma je izložena u sledećem poglavlju u

kom se posmatra programsko rešenje inteligentnog ekvalajzera.

3.3.3 Obrada nakon inteligentnog ekvalajzera

Nakon što je izvršena obrada inteligentnog ekvalajzera i ostalih dodatnih modula u

sistemu, vrši se transformacija odbiraka iz frekventnog domena u vremenski domen.

Page 25: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Rezultati

17

4. Programsko rešenje

U ovom poglavlju prikazana je programska struktura inteligentnog ekvalajzera. Glavna

funkcija za inteligentnu ekvalizaciju je X_S_intelligent_eq_process koja u sebi poziva

funkcije:

• X_S_ieq_reset, koja je resetovala bafere koje koristi IEQ;

• X_S_ieq_calc_loudness, koja je računala glasnoću na pojasevima;

• X_S_scale_band, koja je skalirala pojaseve.

Sem ovih funkcija korišćene su još neke koje nisu bile deo ovog projekta pa će se one

samo spominjati u daljem opisu.

4.1 X_S_intelligent_eq_process

U ovom delu poglavlja biće ukratko opisano šta radi funkcija

X_S_intelligent_eq_process.

Naime, X_S_intelligent_eq_process prvo proverava da li treba da izvrši resetovanje

svojih glavnih bafera kroz koje prati glasnoće na ERB pojasevima i ako treba resetuje ih na 0.

Zatim, pripremi pokazivače na nizove p_lvl_ldn, p_ref_ld. Ove nizove možemo posmatrati

kao ulazne, a nizove a_sl_inst i a_ldn_capture možemo posmatrati kao izlazne. Zatim se

vrednosti iz ulaznih nizova p_lvl_ldn, p_ref_ldn podese i vrši se saturacija sa konstantama

X_CX_IEQ_LDN_MIN i X_CX_IEQ_LDN_MAX. Dobijene vrednosti se upisuju u izlazne

nizove.

Nakon saturacije, nizovi a_sl_inst i a_ldn_capture se prosleđuju u funkciju

hdr_vec_P2powPLPU koja vektorski računa 2x i ona vraća kao rezultat nizove a_sl_inst_pow

i a_ldn_capture_pow. Vrši se, ponovo, saturacija nad novo dobijenim nizovima i rezultat se

iznova upisuje u a_sl_inst i a_ldn_capture.

Page 26: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Rezultati

18

U narednoj petlji se proverava da li je su glasnoće iz niza a_sl_inst manje nego u nizu

p_ieq->p_ldn_state. Ako jesu onda se u niz a_content_louder_than_pgm upisuje 0, a u

suprotnom se upisuje 1 i prelazi se na obradu niza p_ieq->p_ldn_state. Ako glasnoće nisu

manje, pravi se upit da li su glasnoće u a_ldn_capture veće od vrednosti u p_ieq->p_ldn_state.

Ako je uslov zadovoljen, prelazi se na obradu niza p_ieq->p_ldn_state. Ako ni jedan upit nije

zadovoljen, u niz p_ieq->p_ldn_state se samo kopiraju vrednosti iz a_ldn_capture. U slučaju

da se ispostavilo da su a_sl_inst vrednosti manje od p_ieq->p_ldn_state, množi se sa

f_attack_alpha i čuva se rezultat. U isto vreme se od konstante DLB_L10 oduzima

f_attack_alpha i rezultat se pomnoži sa a_sl_inst. Ovaj rezultat se sabere sa rezulatom koji je

sačuvan i konačan rezultat se pamti u a_sl_inst.

Sa druge strane, ako se ispostavilo da je a_ldn_capture veći od p_ieq->p_ldn_state,

obavlja se računski proces objašnjen u prošlom pasusus, ali se umesto f_attack_alpha koristi

f_release_alpha.

Posle ovoga se poziva funkcija X_S_ieq_calc_loudness sa ulaznim parametrom niz

p_ieq->p_ldn_state i izlaznim parametrima nizovi f_sl_weighted_sum i p_f_sl_correct.

Sledi glavni upit funkcije gde se postavlja pitanje da li su vrednosti f_sl_weighted_sum

i p_preset->total_target_ldn manji od 0, gde je p_preset->total_target_ldn niz u kom su

sadržane željene glasnoće. Ako uslov nije zadovoljen, završava se funkcija. U suprotnom se

od 4 oduzima p_preset->ldn_sft i čuva se u preset_shift, a onda se proverava da li je

postavljen update_preset_now i ako jeste poziva se funkcija X_S_scale_band gde su ulazni

parametri preset_shift, p_f_sl_correct i rezultat množenja f_sl_weighted_sum i p_preset-

>p_target_ldn. Povratna vrednost ove funkcije je niz f_sl_scale. Zatim se taj rezulat pomnoži

sa pre_smooth_scaling i čuva se u nizu p_ieq->p_sl_scale_smooth. Nakon ovoga se skače na

proveru da li je uključen modul za inteligentnu ekvalizaciju.

U slučaju da nije bio postavljen update_preset_now poziva se funkcija X_S_scale_band

sa ulaznim parametrima preset_shift, p_f_sl_correct i rezultat množenja f_sl_weighted_sum i

p_preset->p_target_ldn. Povratna vrednost je f_sl_scale koja se množi sa pre_smooth_scaling

i pomera se dva puta u levo i ponovo se rezultat smešta u f_sl_scale.

Sada se pravi upit da li je f_sl_scale veći od p_ieq->p_sl_scale_smooth i da li je u

a_content_louder_than_pgm upisana 1. Ako jeste u f_alpha se upisuje 0. Ako nije proverava

se da li je p_ieq->p_sl_scale_smooth veći od f_sl_scale i da li je u

a_content_louder_than_pgm upisana 0. Ako nije u f_alpha se upisuje smooth_alpha_scale. U

suprotnom se od 10 oduzima release_alpha_scale i množi se p_coefs->p_tc_mult_pow1 sa

release_alpha_scale. Rezultat oduzimanja i množenja se saberu i ovo se čuva u f_alpha. Zatim

se množe f_alpha i smooth_alpha_scale i ponovo se čuva u f_alpha.

Page 27: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Rezultati

19

Nakon što je postavljen f_alpha, množi se sa p_ieq->p_sl_scale_smooth i isto se

oduzima od 10. Rezultat oduzimanja se pomnoži sa f_sl_scale. Sada se rezultati množenja

saberu i rezultat se čuva u p_ieq->p_sl_scale_smooth nizu.

Sada se vrši provera da li je uključen modul za inteligentnu ekvalizaciju i vrši se

njegova glavna petlja. Poziva se funkcija X_S_dap_band_smoother_process sa ulaznim

parametrima a_loudness_gains, p_sl_scale_smooth i p_band_smooth_coefs. Povratna

vrednost funkcije jeste a_loudness_gains niz. Potom se na a_loudness_gains dodaje konstanta

IEQ_SCALE_BOOST i rezultat se dodaje na promenljivu amount i ponovo se čuva u

a_loudness_gains.

Poslednji korak jeste da se glasnoće iz niza a_loudness_gains dodaju na sve kanale

unutar matrice p_loudness_buffer->pp_gains.

Page 28: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Rezultati

20

5. Rezultati

Ovo poglavlje sadrži rezultate testova koji su izvršeni nad gotovim modulom

inteligentnog ekvalajzera. Rezultati testova nam prikazuju utrošak resursa DSP procesora i

govore nam da li je potrebno modul dodatno optimizovati. Najvažniji resursi su utrošak

memorije i vreme potrebno da procesor obradi jedan blok odbiraka. Utrošak memorije je

prikazan kroz broj zauzetih memorijski lokacija dužine 32 bita i u kojoj zoni je memorija

zauzeta. Vreme potrebno za obradu jednog bloka odbiraka prikazano je u broju ciklusa

potrebnih da procesor izvrši funkciju X_S_intelligent_eq_processonima.

5.1 Način testiranja

Testiranje se vršilo u više etapa. Kako bi se testiranje vršilo potrebno je izolovati

pojedinačne funkcije u referentnom kodu i, pomoću direktiva za korišćenje datoteka, uneti u

dve različite datoteke ulazne i izlazne vektore za datu funkciju. Potom se ista funkcija

implementira u asemblerskom jeziku i ulazni vektori se učitavaju iz prethodno kreirane

datoteke. Nakon što se izvrši simuliranje rada procesora izlazni vektori u asembleru se unose

u treću datoteku. Zatim se poređenjem izlaznih datoteka utvrđuje tačnost implementacije.

Postizanje jednakosti izlaznih datoteka predstavlja uspešno implementiranu funkciju.

5.2 Utrošak memorije

U Tabeli 1 je prikazan utrošak memorije modula za inteligentnu ekvalizaciju. Prva tri

reda predstavljaju potrošnju X, Y i L memorije koja se koristi za skladištenje podataka, koji se

obrađuju ili se koriste u raznim obradama. Poslednja četiri reda predstavljaju utrošak

programske memorije za pojedine funkcije koje su deo modula. Utrošak memorije je prikazan

u količini reči dužine 32 bita.

Page 29: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Rezultati

21

Količina potrošenih

reči u memoriji

YDATA 858

XDATA 761

LDATA 104

X_S_intelligent_eq_process 347

X_S_ieq_reset 7

X_S_ieq_calc_loudness 143

X_S_scale_band 49

Tabela 1 Utrošak memorije

5.3 Potrošnja procesorskog vremena

Pored utroška memorije postoji i potrošnja procesorkog vremena. Potrošnja

procesorskog vremena se merila u količini ciklusa potrebnih da procesor izvrši funkcije

modula za inteligentnu ekvalizaciju.

U tabelama koje slede će prikazane su količine potrebnih ciklusa da se izvrši

inteligentna ekvalizacija zvuka za devet različitih testnih slučajeva, koji svi koriste modul za

inteligentnu ekvalizaciju.

sys_alg_volume_and_ieq_ieq_io5ch1_io32k Broj ciklusa

X_S_intelligent_eq_process 14995

X_S_ieq_reset 49

X_S_ieq_calc_loudness 1883

X_S_scale_band 326

sys_uc_complex_music_ext_symphony_i2ch_o7ch1_io32k Broj ciklusa

X_S_intelligent_eq_process 14933

X_S_ieq_reset 49

X_S_ieq_calc_loudness 1901

X_S_scale_band 323

sys_uc_complex_music_ext_symphony_io7ch1_io32k Broj ciklusa

X_S_intelligent_eq_process 14934

X_S_ieq_reset 49

X_S_ieq_calc_loudness 1825

X_S_scale_band 323

Tabela 2 Utrošak ciklusa za 32k

U Tabeli 2 se nalaze podaci o količini ciklusa za signale koji su odbirkovani sa 32kHz.

Page 30: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Rezultati

22

sys_alg_volume_and_ieq_ieq_io2ch_io44k1 Broj ciklusa

X_S_intelligent_eq_process 15589

X_S_ieq_reset 49

X_S_ieq_calc_loudness 1757

X_S_scale_band 322

sys_uc_complex_music_ext_symphony_i2ch_o7ch1_io44k1 Broj ciklusa

X_S_intelligent_eq_process 15917

X_S_ieq_reset 49

X_S_ieq_calc_loudness 2064

X_S_scale_band 321

sys_uc_complex_music_ext_symphony_io7ch1_io44k1 Broj ciklusa

X_S_intelligent_eq_process 15925

X_S_ieq_reset 49

X_S_ieq_calc_loudness 2065

X_S_scale_band 322

Tabela 3 Utrošak ciklusa za 44k1

U Tabeli 3 se nalaze podaci o količini ciklusa za signale koji su odbirkovani sa 44.1

kHz.

sys_alg_volume_and_ieq_ieq_io2ch_io48k Broj ciklusa

X_S_intelligent_eq_process 15813

X_S_ieq_reset 49

X_S_ieq_calc_loudness 1944

X_S_scale_band 324

sys_uc_complex_music_ext_symphony_i2ch_o7ch1_io48k Broj ciklusa

X_S_intelligent_eq_process 15916

X_S_ieq_reset 49

X_S_ieq_calc_loudness 2064

X_S_scale_band 325

sys_uc_complex_music_ext_symphony_io7ch1_io48k Broj ciklusa

X_S_intelligent_eq_process 15917

X_S_ieq_reset 49

X_S_ieq_calc_loudness 2062

X_S_scale_band 323

Tabela 4 Utrošak ciklusa za 48k

Page 31: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Rezultati

23

U Tabeli 4 se nalaze podaci o količini ciklusa za signale koji su odabirani sa

frekvencijom od 48 kHz.

Iz datih tabela se može dedukovati da IEQ modul ima slično ponašanje u svim testnim

slučajevima. Najveća promena se uočava između signala koji su odbirkovani sa 32 kHz i 44.1

kHz u glavnoj funkciji modula. Kroz detaljnu analizu modula, zapaženo je da signali koji su

odbirkovani sa 32 kHz obrađuju niz koji je kraći za jedan element od niza koji se obrađuje u

ostalim testnim slučajevima.

Page 32: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Zaključak

24

6. Zaključak

U ovom radu je implementiran DSP modul za inteligentnu ekvalizaciju zvuka na

procesoru CS49844 kompanije Cirrus Logic.

Projekat se sastojao iz tri dela. Prvi deo projekta je zahtevao upoznavanje sa čitavim

sistemom za obradu zvuka i razumevanje algoritma. Ovaj deo projekta se vršio u razvojnom

okruženju Visual Studio 2010.

Drugi deo projekta je bila implementacija svih funkcija modula za inteligentnu

ekvalizaciju u asemblerskom jeziku. Ovaj proces je vršen u okviru razvojnog okruženja

CLIDE. Pored CLIDE, korišćeno je i razvojno okruženje UltraEdit koje je pomagalo za

navigaciju kroz projekat. CLIDE, sa druge strane, ne nudi toliko dobru navigaciju kroz

projekat ali omogućava kontrolisano izvršavanje i stalan uvid u to šta se dešava u procesoru.

Nakon implementacije svih funkcija, preostalo je istestirati modul, zabeležiti utroške

resursa i integrisati ga u glavni projekat, zajedno sa ostalim modulima.

Rešenje za inteligentan ekvalajzer, prikazano u okviru ovog rada, koristi neke od

najnovijih i najefikasnijih metoda za računanje potrebnih glasnoća.

Ovo rešenje je moguće poboljšati sa dodatnim optimizacijama napisanog koda. U

projektu su se ubacivale mnoge instrukcije koje su smanjivale preciznost računa na nivo

procesora opšte namene da bi bilo moguće proveriti da li je modul pravilno napisan.

Izbacivanjem ovih instrukcija bi se potencijalno dobio kvalitetniji zvuk i brža obrada. Takođe,

u ovom projektu je korišćeno mnogo unutrašnjih nizova koje se koriste samo jednom i oni u

sebi ne sadrže podatke koji su relevantni u nastavku projekta. Ove nizove bi trebalo uočiti i

preklopiti tako da svi koriste istu memoriju što bi dovelo do velike uštede memorije na

platformi.

Page 33: ЗАВРШНИ (BACHELOR) РАД¡a... · 2020. 6. 28. · Author, AU: Saša Taloši Mentor, MN: Doc. dr Jelena Kovačević Title, TI: DSP implementation of intelligent audio equalization

Literatura

25

7. Literatura

[

[1]

V. Kovačević, M. Temerinac i M. Popović, Arhitekture i algoritmi DSP 1, Novi

Sad: FTN izdavaštvo, 2004.

[

[2]

Cirrus Logic, Inc., CS498xx_Datasheet, 2013.

[

[3]

„120 Studio,“ 20 Septembar 2017. [Na mreži]. Available:

http://120studio.com/audio/eq-2005-05-900.jpg. [Poslednji pristup 15 Septembar 2016].

[

[4]

C. R. (. Nave, „Hyper Physics,“ 20 Septembar 2017. [Na mreži]. Available:

http://hyperphysics.phy-astr.gsu.edu/hbase/hframe.html. [Poslednji pristup 15 Septembar

2016].

[

[5]

N. C. J. K. M. P. Miodrag Djukic, A C compiler based methodology for

implementing audio DSP applications on a class of embedded systems, Vilamoura: IEEE,

2008.

[

[6]

M. Temerinac, S. Berber i Ž. Lukač, Osnovi algoritama i struktura DSP 1, Novi

Sad: FTN izdavaštvo, 2014.

[

[7]

RTRK, Arhitekture i algoritmi DSP II-praktikum za laboratorijske vežbe, Novi Sad,

2016.

[

[8]

M. P. Vladimir Kovačević, Sistemska programska podrška u realnom vremenu 1:

Programski alati i paralelno programiranje, Novi Sad: FTN Izdavaštvo, 2013.