ความสัมพันธ์ระหว่าง DCT และ PCA


12

ฉันมีความรู้การใช้งานพื้นฐานของ 2D 8x8 DCT ที่ใช้ในการบีบอัดภาพและวิดีโอ ในขณะที่อ่านเกี่ยวกับการวิเคราะห์องค์ประกอบหลักการฉันสามารถเห็นความคล้ายคลึงกันได้มากมายแม้ว่า PCA จะเป็นแบบทั่วไปที่ชัดเจนกว่า เมื่อฉันอ่านเกี่ยวกับ DCT ก่อนหน้านี้มันถูกนำเสนอเสมอเกี่ยวกับ DFT ดังนั้นคำถามของฉันคือ DCT จะได้มาจากมุมมอง PCA ได้อย่างไร (แม้คำอธิบายคลื่นมือก็เพียงพอ)

ขอบคุณมาก

คำตอบ:


19

ความแตกต่างที่สำคัญระหว่าง DCT และ PCA (แม่นยำยิ่งขึ้นซึ่งเป็นตัวแทนของชุดข้อมูลในรูปแบบที่เกิดขึ้นโดย eigenvectors ของเมทริกซ์สหสัมพันธ์ - หรือที่เรียกว่าKarhunen Loeve Transform ) คือ PCA จะต้องกำหนดด้วยความเคารพต่อชุดข้อมูลที่กำหนด เมทริกซ์สหสัมพันธ์ถูกประมาณ) ในขณะที่ DCT เป็น "สัมบูรณ์" และถูกกำหนดโดยขนาดอินพุตเท่านั้น สิ่งนี้ทำให้ PCA เป็นการแปลงแบบ "ปรับตัว" ในขณะที่ DCT ไม่ขึ้นกับข้อมูล

บางคนอาจสงสัยว่าทำไม PCA ถึงไม่ใช้บ่อยในการบีบอัดภาพหรือเสียงเนื่องจากการปรับตัว มีสองเหตุผล:

  1. ลองนึกภาพตัวเข้ารหัสที่ประมวลผล PCA ของชุดข้อมูลและเข้ารหัสสัมประสิทธิ์ ในการสร้างชุดข้อมูลใหม่ตัวถอดรหัสจะต้องไม่เพียง แต่สัมประสิทธิ์ตัวเองเท่านั้น แต่ยังต้องแปลงเมทริกซ์ด้วย (ขึ้นอยู่กับข้อมูลซึ่งไม่สามารถเข้าถึงได้!) DCT หรือการแปลงข้อมูลอิสระอื่น ๆ อาจมีประสิทธิภาพน้อยกว่าในการลบการอ้างอิงทางสถิติในข้อมูลอินพุต แต่เมทริกซ์การแปลงเป็นที่รู้จักกันล่วงหน้าโดยทั้ง coder และตัวถอดรหัสโดยไม่จำเป็นต้องส่งสัญญาณ การแปลง "ดีพอ" ซึ่งต้องการข้อมูลด้านข้างเล็กน้อยบางครั้งก็ดีกว่าการแปลงที่ดีที่สุดซึ่งต้องใช้ข้อมูลด้านโหลดเพิ่มเติม

  2. นำคอลเล็กชันขนาดใหญ่ของ 8x8 ไทล์ที่ดึงมาจากรูปภาพ แบบฟอร์มNN×64เมทริกซ์ที่มีความส่องสว่างของกระเบื้องเหล่านี้ คำนวณ PCA จากข้อมูลนี้และวางแผนส่วนประกอบหลักที่จะถูกประเมิน นี่คือการทดลองที่ให้ความกระจ่างมาก! มีโอกาสที่ดีมากที่ไอจีนิคไวเอชชันระดับสูงส่วนใหญ่จะดูเหมือนรูปแบบคลื่นไซน์แบบมอดูเลตของ DCT นี่หมายความว่าสำหรับชุดภาพที่มีขนาดใหญ่พอและภาพทั่วไป DCT นั้นเป็นค่าประมาณที่ดีมากของอีเจนซีน สิ่งเดียวกันนี้ยังได้รับการตรวจสอบด้วยเสียงซึ่ง eigenbasis สำหรับพลังงานสัญญาณ - สัญญาณในช่วงความถี่เมล - ระยะห่างประมาณในปริมาณมากบันทึกเสียงอยู่ใกล้กับพื้นฐาน DCT (ดังนั้นการใช้ DCT เป็นแปลงความสัมพันธ์ เมื่อคำนวณ MFCC)


1
เป็นที่น่าสนใจ แต่อาจไม่ได้สร้างพื้นฐานที่แตกต่างกันไปตามสถิติ 'ปกติ' ของภาพที่จะเริ่มต้นด้วยและสิ่งที่ใช้แทน DCT? ฉันคิดว่าพื้นฐานดังกล่าวจะไม่ดีเท่า PCA แต่ดีกว่าแล้ว DCT ไม่
Spacey

@pichenettes - เกี่ยวกับ DCT ภาพที่เห็นโดยทั่วไปของการเพิ่มความถี่แนวนอนและแนวตั้งคือ ( goo.gl/XLMt5 )? มันเป็นตัวแทนภาพของฟังก์ชั่นพื้นฐาน DCT หรือไม่? ถ้าเป็นเช่นนั้นถ้าฉันคำนวณ PCA / eigenvectors จากเมทริกซ์ความแปรปรวนร่วมของภาพเหล่านี้ - นี่จะให้เมทริกซ์สัมประสิทธิ์ DCT หรือไม่
trican

Btw @pichenettes ขอบคุณมากสำหรับคำตอบที่ลึกซึ้งของคุณ ฉันทราบจุดที่ 1 แต่ไม่ได้พิจารณาจุดที่ 2 จริงๆ
trican

1
@ Mohammad: นี่เป็นคำถามที่ดีและฉันไม่รู้คำตอบ ฉันเห็นข้อดีในการใช้ DCT: ง่ายต่อการเขียนรายละเอียด (พิมพ์ได้ง่ายกว่า "การแปลงของเราคือฟังก์ชั่นปิดรูปแบบ" กว่า "การแปลงของเราคือเมทริกซ์ 64x64 ที่ตีพิมพ์ในภาคผนวก") ไม่มีการประชุมคณะกรรมการกำหนดมาตรฐาน การแปลงบนตารางการค้นหาน้อยลงเพื่อฝังใน ROM ตัวถอดรหัสและอาจเป็น "symmetries" ในเมทริกซ์การแปลงที่ทำให้การเร่งความเร็วของฮาร์ดแวร์เป็นไปได้เมื่อเทียบกับการคูณเมทริกซ์ 64x64 ที่โหดร้าย - ข้อดีเหล่านี้อาจมากกว่า
pichenettes

1
@trican: ภาพที่คุณเชื่อมโยงเพื่อแสดงถึงพื้นฐาน 2-D DCT สำหรับแผ่นกระเบื้อง 8x8 แต่ละฟังก์ชั่นพื้นฐานของไพ่ขนาดเล็ก 64 ตัว ถ้าคุณใช้ไทล์ 8x8 ชุดใหญ่จากภาพจริงและทำการ PCA กับข้อมูล eigenbasis ที่คุณจะได้รับจะคล้ายกันมาก
pichenettes
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.