Hubungan antara DCT dan PCA


12

Saya memiliki pengetahuan implementasi dasar dari DCT 2D 8x8 yang digunakan dalam kompresi gambar & video. Ketika membaca tentang Analisis Komponen Utama, saya dapat melihat banyak kesamaan, walaupun PCA jelas lebih umum. Ketika saya sudah membaca tentang DCT sebelumnya selalu disajikan dalam kaitannya dengan DFT. Jadi pertanyaan saya adalah bagaimana DCT dapat diturunkan dari perspektif PCA? (Bahkan penjelasan dengan tangan cukup)

Terimakasih banyak

Jawaban:


19

Perbedaan utama antara DCT dan PCA (lebih tepatnya, mewakili dataset dalam basis yang dibentuk oleh vektor eigen dari matriks korelasinya - juga dikenal sebagai Karhunen Loeve Transform ) adalah bahwa PCA harus didefinisikan sehubungan dengan dataset yang diberikan (dari mana matriks korelasi diperkirakan), sedangkan DCT adalah "mutlak" dan hanya ditentukan oleh ukuran input. Hal ini menjadikan PCA sebagai transformasi "adaptif", sedangkan DCT bersifat data-independen.

Orang mungkin bertanya-tanya mengapa PCA tidak digunakan lebih sering dalam kompresi gambar atau audio, karena adaptifitasnya. Ada dua alasan:

  1. Bayangkan sebuah encoder menghitung PCA dari dataset dan mengkodekan koefisien. Untuk merekonstruksi dataset, dekoder tidak hanya membutuhkan koefisien itu sendiri, tetapi juga matriks transformasi (tergantung pada data, yang tidak dapat diaksesnya!). DCT atau transformasi data-independen lainnya mungkin kurang efisien dalam menghilangkan dependensi statistik dalam data input, tetapi matriks transformasi diketahui sebelumnya oleh koder dan dekoder tanpa perlu mentransmisikannya. Transformasi "cukup baik" yang hanya memerlukan sedikit informasi sisi terkadang lebih baik daripada transformasi optimal yang membutuhkan banyak informasi tambahan ...

  2. Ambil banyak koleksi 8x8 ubin yang diambil dari foto. MembentukNN×64matriks dengan luminositas ubin ini. Hitung PCA pada data ini, dan plot komponen-komponen utama yang akan diperkirakan. Ini adalah eksperimen yang sangat mencerahkan! Ada peluang yang sangat baik bahwa sebagian besar vektor eigen berperingkat tinggi akan benar-benar terlihat seperti jenis pola gelombang sinus termodulasi dari basis DCT. Ini berarti bahwa untuk set ubin gambar yang cukup besar dan generik, DCT adalah pendekatan yang sangat baik dari basis eigen. Hal yang sama juga telah diverifikasi untuk audio, di mana eigenbasis untuk energi log-signal di pita frekuensi mel-spaced, diperkirakan pada volume besar rekaman audio, dekat dengan basis DCT (karenanya penggunaan DCT sebagai transformasi dekorasi terkait) saat menghitung MFCC).


1
Sangat menarik, tetapi mungkin tidak set dasar yang berbeda dibangun berdasarkan statistik 'biasa' gambar untuk memulai, dan yang digunakan sebagai pengganti DCT? Saya membayangkan dasar seperti itu tidak akan sebaik PCA, tetapi lebih baik daripada DCT tidak?
Spacey

@pichenettes - berkenaan dengan DCT, apa saja gambar yang terlihat umum dari peningkatan frekuensi horisontal dan vertikal (yaitu goo.gl/XLMt5 )? Apakah ini representasi gambar dari fungsi basis DCT? Jika itu masalahnya, jika saya menghitung vektor PCA / eigen dari matriks kovarian gambar-gambar ini - apakah ini pada dasarnya akan memberi saya matriks koefisien DCT?
trican

Btw @pichenettes terima kasih banyak atas jawaban mendalam Anda Saya mengetahui poin 1, tetapi tidak benar-benar mempertimbangkan poin 2.
trican

1
@Mohammad: ini pertanyaan yang bagus, dan saya tidak tahu jawabannya. Saya melihat keuntungan dalam menggunakan DCT: lebih mudah untuk menulis spesifikasi (lebih mudah untuk mencetak "transformasi kami adalah fungsi bentuk tertutup ini" daripada "transformasi kami adalah matriks 64x64 ini diterbitkan dalam lampiran"), tidak ada pertemuan komite standardisasi tentang dataset yang akan dilatih transform on, tabel lookup yang kurang untuk dimasukkan ke ROM decoder, dan mungkin "simetri" dalam matriks transformasi yang memungkinkan akselerasi perangkat kerasnya dibandingkan dengan perkalian matriks 64x64 yang brutal - keuntungan ini mungkin lebih besar daripada keuntungan kompresi marjinal.
pichenettes

1
@ Afrika: gambar yang Anda tautkan mewakili basis 2-D DCT untuk 8x8 petak. Masing-masing dari 64 ubin kecil adalah fungsi dasar. Jika Anda mengambil koleksi besar 8x8 ubin dari gambar aktual dan melakukan PCA pada data, basis eigen yang Anda dapatkan akan sangat mirip dengan itu.
pichenettes
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.