Tugas 2

18
TUGAS III BLOCK MATCHING ALGORITHMS Mata Kuliah Jaringan Telekomunikasi Multimedia Oleh : I KADEK SUSILA SATWIKA NIM 1491761028

description

tugas

Transcript of Tugas 2

TUGAS IIIBLOCK MATCHING ALGORITHMS

Mata Kuliah Jaringan Telekomunikasi Multimedia

Oleh :

I KADEK SUSILA SATWIKANIM 1491761028

PROGRAM MASGISTERPROGRAM STUDI TEKNIK ELEKTRO-MANAJEMEN BISNIS TELEKOMUNIKASI

PROGRAM PASCASARJANAUNIVERSITAS UDAYANA

DENPASAR2014

Kebutuhan akan file-file multimedia, seperti video, dalam jumlah yang besar,

membutuhkan ruang penyimpanan yang besar. Oleh karena itu, diperlukan sebuah sistem

kompresi yang sesuai agar menghasilkan rasio kompresi yang cukup besar namun tidak

mengurangi kualitas video tersebut. Kompresi merupakan salah satu cara efektif mengatasi

masalah dalam penyimpanan dan pentransmisian suatu data video, dan untuk meningkatkan

efektifitas dari kompresi video tersebut diperlukanlah salah satu metode dimana metode

tersebut akan sangat mempengaruhi kualitas hasil dari pengkompresian video tersebut.

Motion Estimation dan Compensation adalah proses untuk menentukan pergerakan suatu

objek pada sekuens video digital.

Motion Estimation adalah suatu proses untuk menentukan pergerakan suatu objek

pada sekuens video. Umumnya motion tersebut diwujudkan dengan vektor motion pada titik

yang dipilih di dalam frame sekarang dihubungkan dengan frame lain yang disebut dengan

frame referensi. Motion Estimation juag merupakan teknik kompresi Interframe yang

memprediksi sebuah frame dari frame sebelumnya (reference frame), dengan mengestimasi

gerakan blok–blok antar frame tersebut. Frame dibagi menjadi blok–blok yang tidak overlap.

Tiap blok dibandingkan dengan blok–blok berukuran sama, pada frame sebelumnya dengan

melakukan pencocokan blok (block matching).

Motion Compensation menjadi proses pembangkit sebuah prediksi pada sebuah frame

video dengan memindahkan frame referensi. secara umum, prediksi dibentuk pada suatu blok

(blok 8x8) atau macroblok (blok 16x16) data. Penggantian biasanya dilakukan secara konstan

dan garis lurus di atas keseluruhan blok yang sedang diprediksi. Seperti pergantian

digambarkan oleh vektor gerak (motion vektor) dengan dua komponen sesuai dengan

pergeseran sepanjang arah X dan Y.komponen vektor gerak pada umumnya adalah dengan

pergantian-pergantian pixel, biasanya dilakukan pada ketelitian pada sub-pixel. Pergantian

sub-pixel dilakukan dengan menyaring frame referensi dengan penyaringan interpolasi yang

tepat atau cocok.

Pencocokan blok (Block Matching) target dengan blok–blok kandidat pada daerah

pencarian dilakukan dengan besar step tertentu, yang merupakan besar pergeseran dalam

pencarian blok. Jumlah blok kandidat, selain ditentukan oleh ukuran daerah pencarian,

ditentukan pula oleh besarnya step.

1. Exhaustive Search

Algoritma ini dikenal juga dengan nama Full Search, dimana algoritma ini

menghitung cost function pada setiap kemungkinan lokasi pada search window. Sebagai

hasilnya dimana telah ditemukan kemungkinan lokasi terbaik dan memberikan nilai PSNR

tertinggi diantara algoritma block matching lainnya. Kekurangan dari algoritma Exhaustive

Search adalah semakin besar search window yang didapat maka semakin banyak

computations yang dibutuhkan.

2. Three Step Search

Algoritma ini bekerja dimulai dengan langkah mencari lokasi di tengah-tengah dan

menetapkan step size S=4, biasanya untuk pencarian dengan parameter value = 7. Kemudian

mencari delapan lokasi +/- S pixel disekitar lokasi (0,0). Dari sembilan lokasi pencarian

dipilihlah satu lokasi yang memberikan cost terendah dan menjadikannya sebagai titik

pencarian baru. Kemudian ditetapkan step size terbaru S=S/2, dan dilakukan langkah

pencarian yang sama seperti sebelumnya hingga dua pengulangan lagi hingga S=1. Pada poin

tersebut ditemukan lokasi dengan cost function terendah dan macro block pada lokasi

tersebut adalah pilihan terbaik. Perhitungan motion vector tersebut disimpan untuk

ditransmisikan.

3. Simple And Efficient Three Step Search

Algoritma simple and efficient three step search merupakam pengembangan lainnya

dari algoritma three step search yang mengeksploitasi asumsi dari unimodal error surface.

Point utama dari dibalik algoritma ini adalah untuk unimodal surface tidak boleh ada dua

minimum pada arah berlawanan dan karenanya 8 poin pola pencarian yang sudah ditetapkan

TSS dapat dirubah kedalam bentuk ini dan menghemat perhitungan. Algoritma masih

memiliki tiga langkah seperti TSS tapi pengembangannya adalah tiap langkah memiliki lebih

dari dua fase. Area pencarian dibagi menjadi empat kuadran dan algoritma pengecekan dibagi

menjadi 3 lokasi yaitu A, B dan C. A merupakan sumber sedangkan B dan C adalah S=4

yang berlokasi jauh dari A dalam arah orthogonal. Tergantung pada bobot tertentu distribusi

antara tiga pada fase kedua dipilih beberapa poin tambahan. Aturan untuk menentukan

kuadran pencarian untuk fase kedua adalah ketika dipilih poin untuk mengecek dalam fase

kedua, akan ditemukan lokasi dengan bobot terendah dan ditetapkan sebagai sumber.

Kemudian merubah step size serupa dengan TSS dan mengulang prosedur SES diatas hingga

S=1. Lokasi dengan bobot terendah kemudian ditandai motion vector dan ditransmisikan.

Walaupun algoritma ini menyimpan banyak perhitungan bila dibandingkan dengan TSS, hal

ini tidak diterima secara luas dengan dua alasan yaitu error surface tidak ketat unimodal dan

karenanta PSNR yang didapat kurang baik dibanding TSS dan terdapat algoritma lainnya

Four Step Search yang telah dipublikasi setahun sebelumnya yang menyajikan perhitungan

hemat dibandingkan TSS dan memberikan PSNR yang lebih baik.

4. New Three Step Search

New Three Step Search merupakan peningkatan dari hasil Three Step Search dengan

menyediakan skema pencarian pusat bias dan memiliki ketentuan untuk half way stop untuk

mengurangi perhitungan cost. Algoritma ini merupakan salahsatu dari algoritma tercepat

yang diakui dan sering digunakan untuk implementasi standar seperti MPEG 1 dan H.261.

Pada langkah pertama 16 point diperiksa dengan tujuan untuk mencari sumber untuk bobot

terendah menggunakan cost function. Penambahan lokasi pencarian, 8 berjarak S=4 (sama

seperti TSS) dan 8 lainnya berjarak S=1 dari sumber pencarian. Jika cost terendah adalah

pada sumber maka pencarian dihentikan dan motion vector di set (0,0). Jika bobot terendah

adalah pada salahsatu dari 8 lokasi dengan S=1, maka rubah sumber pencarian ke poin

tersebut dan cek untuk bobot yang berdekatan dengan poin tersebut. Lokasi yang

memberikan bobot terendah adalah pendekatan terbaik dan motion vector di set pada lokasi

tersebut. Di sisi lain, jika bobot terendah setelah langkah pertama adalah salahsatu dari 8

lokasi dengan S=4, maka diikuti procedure normal dari TSS.

5. Four Step Search

Serupa dengan New Three Step Search, Four Step Search (4SS) juga menggunakan

sistem pencarian bias terpusat dan memiliki ketentuan penghentian setengah jalan. Four Step

Search menetapkan pola tetap yaitu S=2 untuk langkah pertama, tidak

mempedulikanbagaimana nilai dari parameter pencarian p tersebut, sehingga akan terlihat

sembilan lokasi dalam window 5x5. Jika bobot terendah ditemukan pada pusat pencarian

window maka pencarian dilanjutkan ke langkah empat. Jika bobot terendah ada di salahsatu

dari delapan lokasi kecuali pusat, maka lokasi tersebut dijadikan pusat baru dan berpindah ke

langkah kedua, dimana pencarian window masih pada lebar 5x5. Tergantung pada dimana

letak bobot terendah, pencarian mungkin berakhir pada pengecekan bobot pada 3 atau 5

lokasi.

6. Diamond Search

Algoritma diamond search sama seperti algoritma four step search, tapi pola pencarian

poin berubah dari bentuk kotak ke bentuk diamond dan tidak ada batasan dari jumlah langkah

yang dapat ditempuh oleh algoritma tersebut. Diamond search menggunakan dua tipe berbeda

dari fixed pattern yaitu Large Diamond Search Pattern (LDSP) dan Small Diamond Search

Pattern (SDSP). Sama seperti pada FSS, langkah pertama menggunakan LDSP dan jika bobot

terendah ada pada pusat lokasi maka kita lanjutkan ke langkah empat. Langkah konsekuensi,

kecuali langkah terakhir juga sama dan menggunakan LDSP. Langka terakhir menggunakan

SDSP disekitar sumber pencarian baru dan lokasi dengan bobot terendah adalah pilihan yang

terbaik. Sebagai pola pencarian tidak terlalu kecil atau terlalu besar dan fakta bahwa tidak ada

batasan untuk jumlah langkah, algoritma ini dapat menemukan minimum global yang sangat

akurat. Hasil akhirnya akan melihat PSNR yang mendekati ES sedangkan beban komputasi

harus secara signifikan berkurang.

7. Adaptive Rood Patern Search

Algoritma adaptive rood patern search menggunakan fakta bahwa motion dalam

frame pada umumnya adalah koheren. Misalnya jika macro block di sekitar current macro

block bergerak dalam arah tertentu maka ada kemungkinan besar bahwa current macro block

juga akan memiliki motion vector yang sama. Algoritma motion vector dari macro block

bergerak ke kiri untuk memprediksi motion vector dirinya sendiri. Sebagai tambahan untuk

pengecekan lokasi yang ditunjukkan dengan prediksi motion vector, juga dilakukan

pengecekan pada jalur pola pendistribusia poin. Pencarian pola jalur selalu dilakukan pada

langkah pertama, dimana secara langsung ditempatkan pencarian pada area dimana terhadap

kemungkinan terbesar untuk menemukan matching block yang baik. Poin yang memiliki

bobot terendah akan menjadi sumber dari langkah pencarian subsequent dan pola pencarian

dirubah ke SDSP. Prosedurnya adalah tetap melakukan SDSP hingga poin dengan bobot

paling sedikit ditemukan pada pusat SDSP. Peningkatan lebih lanjut pada algoritma dapat di

cek untuk Zero Motion Prejudgment, menggunakan pencarian mana yang berhenti

dipertengahan jika poin dengan bobot paling sedikit sudah berada pada pusat dari jalur pola.

Keuntungan utama dari algoritma ini dibandingkan dengan diamond search adalah jika

prediksi motion vector adalah (0,0) tidak akan memboroskan waktu komputasi dalam

melakukan LDSP, lebih baik langsung menggunakan SDSP. Selanjutnya jika prediksi motion

vector berjauhan dari pusat maka komputasi ARPS disimpan lagi dengan langsung

melangkah ke sekitarnya dan menggunakan SDSP dimana DS memerlukan waktu untuk

melakukan LDSP.

Code Matlab :

% This script uses all the Motion Estimation algorithms written for the% final project and save their results.% The algorithms being used are Exhaustive Search, Three Step Search, New% Three Step Search, Simple and Efficient Search, Four Step Search, Diamond% Search, and Adaptive Rood Pattern Search.%%% Aroh Barjatya% For DIP ECE 6620 final project Spring 2004 close allclear all % the directory and files will be saved based on the image name% Thus we just change the sequence / image name and the whole analysis is% done for that particular sequence imageName = 'caltrain';mbSize = 16;p = 7; for i = 0:30 imgINumber = i; imgPNumber = i+2; if imgINumber < 10 %imgIFile = sprintf('C:/FastME/caltrain/gray/caltrain%d.ras', imageName, imgINumber); imgIFile = sprintf('C:/FastME/%s/gray/%s00%d.ras',imageName, imageName, imgINumber); elseif imgINumber < 100 imgIFile = sprintf('C:/FastME/%s/gray/%s0%d.ras',imageName, imageName, imgINumber); %imgIFile = sprintf('C:/FastME/caltrain/gray/caltrain%d.ras',imageName, imgINumber); end if imgPNumber < 10 %imgPFile = sprintf('C:/FastME/caltrain/gray/caltrain%d.ras', imageName, imgPNumber); imgPFile = sprintf('C:/FastME/%s/gray/%s00%d.ras',imageName, imageName, imgPNumber); elseif imgPNumber < 100 %imgPFile = sprintf('C:/FastME/caltrain/gray/caltrain%d.ras',imageName, imgPNumber); imgPFile = sprintf('C:/FastME/%s/gray/%s0%d.ras',imageName, imageName, imgPNumber); end imgI = double(imread(imgIFile)); imgP = double(imread(imgPFile));

imgI = imgI(:,1:352); %imgI = imgI(:,1:176); imgP = imgP(:,1:352); %imgP = imgP(:,1:176); % Exhaustive Search [motionVect, computations] = motionEstES(imgP,imgI,mbSize,p); imgComp = motionComp(imgI, motionVect, mbSize); ESpsnr(i+1) = imgPSNR(imgP, imgComp, 255); EScomputations(i+1) = computations; % Three Step Search [motionVect,computations ] = motionEstTSS(imgP,imgI,mbSize,p); imgComp = motionComp(imgI, motionVect, mbSize); TSSpsnr(i+1) = imgPSNR(imgP, imgComp, 255); TSScomputations(i+1) = computations; % Simple and Efficient Three Step Search [motionVect, computations] = motionEstSESTSS(imgP,imgI,mbSize,p); imgComp = motionComp(imgI, motionVect, mbSize); SESTSSpsnr(i+1) = imgPSNR(imgP, imgComp, 255); SESTSScomputations(i+1) = computations; % New Three Step Search [motionVect,computations ] = motionEstNTSS(imgP,imgI,mbSize,p); imgComp = motionComp(imgI, motionVect, mbSize); NTSSpsnr(i+1) = imgPSNR(imgP, imgComp, 255); NTSScomputations(i+1) = computations; % Four Step Search [motionVect, computations] = motionEst4SS(imgP,imgI,mbSize,p); imgComp = motionComp(imgI, motionVect, mbSize); SS4psnr(i+1) = imgPSNR(imgP, imgComp, 255); SS4computations(i+1) = computations; % Diamond Search [motionVect, computations] = motionEstDS(imgP,imgI,mbSize,p); imgComp = motionComp(imgI, motionVect, mbSize); DSpsnr(i+1) = imgPSNR(imgP, imgComp, 255); DScomputations(i+1) = computations; % Adaptive Rood Patern Search [motionVect, computations] = motionEstARPS(imgP,imgI,mbSize,p); imgComp = motionComp(imgI, motionVect, mbSize); ARPSpsnr(i+1) = imgPSNR(imgP, imgComp, 255); ARPScomputations(i+1) = computations; endsubplot (2,1,1);plot(ESpsnr,'k','linewidth',2);hold on;plot(TSSpsnr,'b','linewidth',2);hold on;plot(SESTSSpsnr,'r','linewidth',2);hold on;plot(NTSSpsnr,'g','linewidth',2);hold on;plot(SS4psnr,'y','linewidth',2);hold on;

plot(DSpsnr,'c','linewidth',2);hold on;plot(ARPSpsnr,'m','linewidth',2);hold on;grid on;xlabel('Frame Number');ylabel('PSNR');title('Perbandingan Permfomasi PSNR dan Computations Algoritma Block Matching','fontsize',12); subplot (2,1,2);plot(EScomputations,'k','linewidth',2);hold on;plot(TSScomputations,'b','linewidth',2);hold on;plot(SESTSScomputations,'r','linewidth',2);hold on;plot(NTSScomputations,'g','linewidth',2);hold on;plot(SS4computations,'y','linewidth',2);hold on;plot(DScomputations,'c','linewidth',2);hold on;plot(ARPScomputations,'m','linewidth',2);hold on;grid on;xlabel('Frame Number');ylabel('Computations');legend('TSS','SESTSS','NTSS','SS4','DS','ARPS'); %save dsplots2 DSpsnr DScomputations ESpsnr EScomputations TSSpsnr ... %TSScomputations SS4psnr SS4computations NTSSpsnr NTSScomputations ... %SESTSSpsnr SESTSScomputations ARPSpsnr ARPScomputations

Tabel Nilai Computations

Frame Numbe

rARPS DS ES NTSS SESTSS SS4 TSS

1 9,758182

18,56182

207,4109

21,68 16,09091

19,70909

23,77091

2 9,818182

18,40364

207,4109

21,75636

16,05818

19,62364

23,72545

3 9,869091

18,46545

207,4109

21,65455

16,05455

19,63091

23,72364

4 9,763636

18,51273

207,4109

22,12182

16,12909

19,67636

23,69091

5 9,918182

18,68 207,4109

21,85636

16,03818

19,79091

23,69455

6 9,725455

18,61818

207,4109

22,17818

16,05273

19,74182

23,73273

7 9,970909

18,68364

207,4109

22,60727

16,03091

19,78545

23,72545

8 10,17636

18,84182

207,4109

22,83455

15,99455

19,90545

23,8

9 9,898182

18,72364

207,4109

23,17273

15,97818

19,82545

23,73818

10 10,03455

18,70364

207,4109

22,48 15,96909

19,83273

23,71636

11 9,956364

18,74909

207,4109

22,69636

16,01273

19,84545

23,74182

12 10 18,47273

207,4109

23,01273

15,99091

19,85273

23,70182

13 9,972727

18,32727

207,4109

23,45273

15,98727

19,85818

23,76545

14 10,16727

18,37455

207,4109

24,11818

15,92545

19,65818

23,78

15 10,16182

18,38727

207,4109

24,22909

15,94182

19,46545

23,72909

16 10,31273

18,33455

207,4109

24,59091

16,04727

19,48182

23,71091

17 10,08727

18,03273

207,4109

24,27273

16,16364

19,46182

23,77455

18 10,3 17,97273

207,4109

25,2 16,18727

19,35091

23,73091

19 10,10727

18,33636

207,4109

26,08545

16,06909

19,41273

23,70727

20 9,987273

18,28727

207,4109

25,76 16,07818

19,36545

23,70545

21 10,07091

18,31818

207,4109

24,36545

16,00545

19,46727

23,66909

22 10,10727

18,08364

207,4109

23,68 15,96182

19,65636

23,69091

23 10,06909

18,20909

207,4109

23,64364

15,95455

19,65455

23,71636

24 10,10545

18,23636

207,4109

23,06 15,98909

19,69091

23,72364

25 9,914545

18,31091

207,4109

22,72364

16,01273

19,71818

23,70545

26 10,01818

18,23818

207,4109

22,74909

16,04727

19,70364

23,71636

27 10,19818

18,29455

207,4109

22,16 16,05636

19,57818

23,68364

28 10,11818

18,18364

207,4109

22,25091

15,98 19,57091

23,73455

29 10,02727

18,16 207,4109

21,83455

15,94545

19,67455

23,73636

30 10,02182

17,92909

207,4109

22,08545

15,99273

19,61091

23,76545

31 9,84 17,89273

207,4109

21,62 15,97455

19,55273

23,74

Tabel Nilai PSNR

Frame Numbe

rARPS DS ES NTSS SESTSS SS4 TSS

128,9537

429,4048

929,5160

128,7085

926,8844

629,3965

527,0570

4

229,1335

529,1421

129,3725

628,6483

426,6325

629,1388

526,7766

3

329,3871

329,3678

329,6156

928,9353

126,6943

329,3454

426,8867

7

429,0318

929,0404

529,4598

128,8760

826,5861

629,1651

926,9531

4

528,9107

229,1979

729,3532

228,6744

326,7039

829,1916

227,0914

6

628,9253

128,9718

129,2793

628,3418

726,6540

728,9443

626,9773

6

728,3640

128,3464

328,5708

927,6969

726,2811

828,4031

926,6421

8

827,9356

727,9793

628,2617

527,4677

725,8699

827,9352

826,4284

5

9 27,286327,3657

527,6255

526,9084

6 25,866727,4065

326,2225

7

1026,7731

427,0029

527,2599

126,5976

325,5241

327,0163

325,7044

9

1126,9887

227,2518

527,4808

726,8083

925,7405

5 27,247725,7952

9

1227,2936

527,3728

327,8084

527,0823

325,9723

627,4941

826,0782

6

1327,3945

627,3750

627,5510

526,6532

1 25,862227,4337

826,1804

1

14 27,2527,3519

827,5481

1 26,390725,7910

727,3606

926,2344

6

1527,1337

527,1638

827,4225

7 26,303525,8866

927,1601

726,2048

4

1627,1624

927,2242

127,3819

326,5912

326,0939

727,2381

9 26,3879

1727,1267

1 27,2622 27,528926,6149

2 26,114327,2881

626,5214

8

18 27,275827,2829

727,5409

126,5623

726,3322

327,3313

726,7261

1

1927,3394

627,4408

927,7139

7 26,606926,6996

327,4829

526,9190

4

20 28,041528,1361

328,3258

226,9691

827,0110

928,1846

827,2402

7

2127,6279

5 27,690427,9674

726,7664

326,3291

927,7160

326,7541

9

2227,0864

927,2072

627,4016

526,4468

325,9065

127,2036

826,1330

9

2326,9792

126,9441

427,1829

526,1769

525,6226

226,9393

725,7042

4

2426,7470

926,6333

626,9689

4 26,246625,3398

526,6663

625,5996

9

2526,8606

227,0589

327,3141

426,5613

925,5927

727,0800

525,7485

2

2626,6661

626,8320

327,1752

826,5113

825,4606

826,9312

925,7119

5

2726,8765

427,0085

127,1804

7 26,626225,4804

927,0062

325,7597

1

2826,5336

326,6402

226,8073

526,4120

6 25,258626,6351

6 25,581

2926,5549

826,6445

227,0298

426,2452

725,2476

226,6198

225,6250

4

3025,8830

925,9653

726,4019

925,8931

624,6934

825,9776

325,0139

6

3126,4390

426,4688

726,7352

326,3251

724,9761

926,4220

925,5683

2

Dari gambar diatas dapat dilihat untuk nilai PSNR terbaik dihasilkan oleh metode

Exhaustive Search. Ini dikarenakan metode Exhaustive Search melakukan seleksi secara

menyeluruh dengan mencari semua kemungkinan poin di dalam window pencarian hingga

mendapatkan hasil terbaik. Akan tetapi jika dilihat dari grafik computations, metoda

Exhaustive Search memilik nilai yang sangat tinggi dengan kata lain waktu yang diperlukan

untuk proses seleksi itu sangat lama. Jika window pencarian semakin besar maka algoritma

Exhaustive Search akan menghasilkan nilai computations yang tinggi atau waktu seleksi

semakin lama. Gambar dibawah ini menunjukkan grafik selain algoritma Exhaustive Search.

Jika dilihat gambar diatas terlihat algoritma Four Step Search, Diamond Search dan

Adaptive Rood Patern Search mendekati nilai PSNR Exhaustive Search dimana Exhaustive

Search menghasilkan nilai PSNR yang paling tinggi diantara keenam algoritma lainnya. Ini

berarti ketiga algoritma tersebut memiliki kemampuan pencarian yang hampir sama dengan

Exhaustive Search. Sedangkan untuk computations, algoritma Adaptive Rood Patern Search

memiliki nilai computations paling kecil. Ini berarti jika dikaitkan nilai PSNR dan

Computations maka dapat disimpulkan algoritma Adaptive Rood Patern Search merupakan

algoritma terbaik dalam proses block matching. Pada algoritma New Three Step Search,

dimana pada frame awal menghasilkan nilai computations lebih kecil daripada TSS namun

antara frame ke 15 sampai 20 mulai mengalami peningkatan nilai. Peningkatan tersebut

mungkin disebabkan karena pada proses pencarian poin dengan bobot terkecil pada frame

nomor 15 hingga 20, bobot terendah setelah langkah pertama terdapat pada salahsatu dari 8

lokasi dengan S=4, maka diikuti langkah berikutnya adalah mengikuti procedure normal dari

TSS.