การแปลงโคไซน์ไม่ต่อเนื่อง

จากวิกิพีเดีย สารานุกรมเสรี

การแปลงโคไซน์ไม่ต่อเนื่อง (อังกฤษ: discrete cosine transform - DCT) เป็นการแปลงออทอโกนัล ที่เป็นจำนวนจริง และมีฟังก์ชันโคไซน์ เป็นฐาน มีทั้งหมด 8 ชนิด คือ DCT-1 ถึง DCT-4 ความยาวคู่ (หรือ DCT-IE ถึง DCT-IVE) และ DCT-5 ถึง DCT-8 ความยาวคี่ (หรือ DCT-IO ถึง DCT-IVO)

การแปลงโคไซน์ ที่รู้จักกันมากที่สุด คือ DCT ชนิดที่สองความยาวคู่ ซึ่งมักจะเรียกสั้นๆว่า "การแปลง DCT" และ เรียกการแปลงกลับ ซึ่งเท่ากับการแปลง DCT-III ว่า "การแปลงกลับ DCT" หรือ "IDCT (Inverse DCT)"

การประยุกต์ใช้งาน[แก้]

DCT และ การแปลงที่สัมพันธ์ที่ใกล้ชิดกันคือ การแปลงไซน์ไม่ต่อเนื่อง(DST) นั้นมีการประยุกต์ใช้งานที่รู้จักกันดีใน การประมวลผลสัญญาณ และ การประมวลผลภาพ โดยเฉพาะอย่างยิ่งในการเข้ารหัสแบบแปลง(transform coding) เพื่อการบีบอัดข้อมูลแบบมีการสูญเสีย ทั้งตามมาตรฐานการบีบอัดภาพนิ่ง JPEG และ มาตรฐานการบีบอัดภาพเคลื่อนไหว MPEG ทั้งนี้เนื่องมาจากคุณสมบัติของ DCT ที่เรียกว่า energy compaction ที่ดี คือ สามารถอัดพลังงานส่วนใหญ่ของสัญญาณ โดยเฉพาะภาพ ไปไว้ในสัมประสิทธิ์ย่านความถี่ต่ำในโดเมนของการแปลง และ การคำนวณการแปลงในทางปฏิบัติสามารถกระทำได้อย่างมีประสิทธิภาพ

นอกจากการอธิบายด้วยเหตุผลข้างต้นแล้ว สาเหตุที่ การใช้ DCT เป็นที่นิยมในการบีบอัดข้อมูลสารสนเทศกว่าการใช้ DFT นั้น เป็นเพราะว่า เมื่อตัดสัมประสิทธิ์ของการแปลงที่มีค่าใกล้ศูนย์ออกไปเป็นจำนวนเท่าๆกัน ผลของการทำผกผันหรือ IDCT จะให้ข้อมูลสารสนเทศมีความใกล้เคียงกับข้อมูลต้นแบบ (orignal sequence) มากกว่า การตัดสัมประสิทธิ์จากการแปลง DFT

สำหรับ DCT-4 นั้นมักจะนิยมนำมาใช้เพื่อคำนวณ การแปลงที่มีความสัมพันธ์กันกับ DCT-4 เช่น Malvar Wavelet และ MDCT ซึ่งเป็นที่นิยมใช้ในการบีบอัดข้อมูลเสียง และด้วยเหตุที่ DCT-4 นั้นสามารถเป็น การแปลงผกผันได้โดยตรง (ไม่จำเป็นต้องคูณด้วยค่าชดเชยในบางรูปแบบของ DCT-1) จึงทำให้ลดความซับซอนในการออกแบบกระบวนการในทางปฏิบัติ

คำจำกัดความมาตรฐาน[แก้]

การแปลงในรูปเมทริกซ์ :

 \mathbf{X}^{DCT}= [C]\mathbf{x}

หมายเหตุ : ความยาวคี่(คู่) ของการแปลงในที่นี้หมายถึงส่วนความยาวของข้อมูล รวมกับส่วนขยายเสมือน ไม่ใช่ความยาวของตัวข้อมูลเอง ซึ่งในที่นี้ความยาวของข้อมูลสามารถเป็นได้ทั้งคู่ และคี่ ขึ้นกับ N

การแปลงความยาวคู่[แก้]

การแปลงโคไซน์มาตรฐาน ความยาวคู่ ในรูปเมทริกซ์ ให้ m,n = 0,\ldots,N-1

DCT-1[แก้]

\left[ C^{IE}_{N} \right]_{mn} = \sqrt{\frac{2}{N-1}} \left[ k_{m}k_{n} \cos \left( mn \frac{\pi}{N-1} \right) \right]

โดยที่  k_i = \left \{ \begin{matrix} 1/ \sqrt{2}, & \mbox{if }i=0\mbox{ or }N-1 \\ 1, & \mbox{otherwise } \end{matrix} \right.

DCT-2[แก้]

\left[ C^{IIE}_{N} \right]_{mn} = \sqrt{\frac{2}{N}} \left[ k_{m} \cos \left( m( n+\frac{1}{2}) \frac{\pi}{N} \right) \right]

DCT-3[แก้]

\left[ C^{IIIE}_{N} \right]_{mn} = \sqrt{\frac{2}{N}} \left[ k_{n} \cos \left( (m+\frac{1}{2})n \frac{\pi}{N} \right) \right]

โดยที่  k_i = \left \{ \begin{matrix} 1/ \sqrt{2}, & \mbox{if }i=0 \\ 1, & \mbox{otherwise } \end{matrix} \right. สำหรับกรณี DCT-2, DCT-3

DCT-4[แก้]

\left[ C^{IVE}_{N} \right]_{mn} = \sqrt{\frac{2}{N}} \left[ \cos \left( (m+\frac{1}{2})(n+ \frac{1}{2}) \frac{\pi}{N} \right) \right]

การแปลงความยาวคี่[แก้]

การแปลงโคไซน์มาตรฐาน ความยาวคู่ ในรูปเมทริกซ์ ให้ m,n = 0,\ldots,N-1

DCT-5[แก้]

\left[ C^{I0}_{N} \right]_{mn} = \sqrt{\frac{2}{N-1/2}} \left[ k_{m}k_{n} \cos \left( mn \frac{\pi}{N-1/2} \right) \right]

DCT-6[แก้]

\left[ C^{II0}_{N} \right]_{mn} = \sqrt{\frac{2}{N-1/2}} \left[ k_{m}l_{n} \cos \left( m( n+\frac{1}{2}) \frac{\pi}{N-1/2} \right) \right]

DCT-7[แก้]

\left[ C^{III0}_{N} \right]_{mn} = \sqrt{\frac{2}{N-1/2}} \left[ l_{m}k_{n} \cos \left( (m+\frac{1}{2})n \frac{\pi}{N-1/2} \right) \right]

โดยที่  k_i = \left \{ \begin{matrix} 1/ \sqrt{2}, & \mbox{if }i=0 \\ 1, & \mbox{otherwise } \end{matrix} \right. และ  l_i = \left \{ \begin{matrix} 1/ \sqrt{2}, & \mbox{if }i=N-1 \\ 1, & \mbox{otherwise } \end{matrix} \right.

สำหรับกรณี DCT-5, DCT-6 และ DCT-7

DCT-8[แก้]

\left[ C^{IV0}_{N} \right]_{mn} = \sqrt{\frac{2}{N+1/2}} \left[ \cos \left( (m+\frac{1}{2})(n+ \frac{1}{2}) \frac{\pi}{N+1/2} \right) \right]

การแปลงกลับ[แก้]

การแปลงกลับ DCT หรือ IDCT นั้น สามารถหาได้จาก ทรานสโพส ของการแปลง เนื่องมาจากคุณสมบัติ unitary ของเมทริกซ์การแปลง DCT ซึ่งการแปลงทั้งความยาวคู่ และ คี่ นั้นมีคุณสมบัติดังกล่าว เมทริกซ์การแปลงด้านล่างจึงใช้หมายถึงทั้งความยาวคู่ และ คี่

\left[ C^{I}_{N} \right]^{-1} =\left[ C^{I}_{N} \right]^{T} =\left[ C^{I}_{N} \right]
\left[ C^{II}_{N} \right]^{-1} =\left[ C^{II}_{N} \right]^{T} =\left[ C^{III}_{N} \right]
\left[ C^{III}_{N} \right]^{-1} =\left[ C^{III}_{N} \right]^{T} =\left[ C^{II}_{N} \right]
\left[ C^{IV}_{N} \right]^{-1} =\left[ C^{IV}_{N} \right]^{T} =\left[ C^{IV}_{N} \right]

รายละเอียดอื่นๆ[แก้]

การแปลงโคไซน์ ไม่ต่อเนื่องนั้นถูกค้นพบครั้งแรกในปี ค.ศ. 1974 [1] โดยเวกเตอร์ฐาน DCT-2 ได้ถูกพัฒนาขึ้นมาเพื่อใช้ในการประมาณไอเก้นเวกเตอร์ ของเมทริกซ์โทปลิทซ์ (Toeplitz) โดยฐาน DCT นี้ จะมีค่าเข้าใกล้(asymptotically) ไอเก้นเวกเตอร์จริง(หรือ เวกเตอร์ฐาน Karhunen-Loève) ของเมทริกซ์โควาเรียนซ์ (covariance matrix) ของ first-order stationary Markov process เมื่อค่าสัมประสิทธิ์โครีเลชัน(correlation coefficient) มีค่าเข้าใกล้ 1 ดังนั้น ฐาน DCT นี้จึงเหมาะที่จะใช้แทนไอเก้นเวกเตอร์ซึ่งเป็นฐานที่ดีที่สุดในการบีบอัดสัญญาณประเภทนี้

ความสัมพันธ์ของ DCT ทั้ง 8 ชนิด[แก้]

เช่นเดียวกับการแปลงฟูริเยร์ไม่ต่อเนื่อง(DFT) DCT นี้ก็เป็นการวิเคราะห์ฮาร์โมนิก เพียงแต่ฐานที่ใช้ในการวิเคราะห์นั้นเป็นจำนวนจริง [2]ได้แสดงถึงชุดที่สมบูรณ์ทั้ง 8 ของ DCT และ DST โดยการวิเคราห์ฮาร์โมนิกที่เป็นจำนวนเต็ม(integer harmonics) และ ครึ่งจำนวนเต็ม(half integer harmonics)ของสัญญาณ

ในลักษณะเดียวกับที่ เมทริกซ์เซอร์คิวแลนท์(circulant matrix) ซึ่งมี เมทริกซ์ DFT เป็นไอเก้น เมทริกซ์ที่มีเมตริกซ์ DCT เป็นไอเก้นนั้นจะอยู่ในรูปของ เมทริกซ์โทปลิทซ์(Toeplitz matrix)+เมทริกซ์เฮงเคิล(Hankel matrix)(หรือ ใกล้เคียง)และคูณด้วยค่าสเกล ซึ่งแทนการกระทำ คอนโวลูชันแบบสมมาตร(symmetric convolution) จาก การคอนโวลูชัน และ เงื่อนไขความสมมาตรที่ขอบ (ในลักษณะเดียวกับ เซอร์คิวแลนท์เมทริกซ์ แทนการกระทำคอนโวลูชันเป็นวงรอบ(circular convolution)) ค่าสเกลนั้นใช้ในการจัดเมทริกซ์ให้อยู่ในรูปสมมาตร เพื่อจะได้ไอเก้นเวกเตอร์ ที่ออทอโกนัล :ดูเพิ่ม [4]

ภาพด้านล่างเป็นการแสดงสัญญาณเสมือน(ซึ่งเป็นการต่อสัญญาณดั้งเดิมออกไป เป็นสัญญาณคาบที่มีความยาวไม่จำกัด) ของสัญญาณดั้งเดิมซึ่งมีความยาวจำกัด N(จาก 0 ถึง N-1) และเป็นไปตามเงื่อนไขขอบ ที่ จุด (midpoint) หรือ กึ่งกลางระหว่างจุด (meshpoint) โดยเงื่อนไขขอบด้านซ้าย หรือ จุดต้น นั้นจะเป็นเงื่อนไขความสมมาตร และ เงื่อนไขขอบด้านขวา หรือ จุดปลาย นั้นจะเงื่อนไขเพื่อสร้างสัญญาณคาบ(เป็นได้ทั้ง สมมาตร(symmetry) และ สมมาตรกลับ(antisymmetry)) ซึ่งจะมีทั้งหมด 8 รูปแบบดังแสดงในรูป

สัญญาณเสมือน ซึ่งเป็นไปตามเงื่อนไข ขอบซ้าย(สมมาตร) และ ขอบขวา(คาบ)-ดัดแปลงจาก ภาพ2ใน[3]
ชนิด ความยาวคาบคู่ ชนิด ความยาวคาบคี่
DCT-I Dct1e.png DCT-V Dct1o.png
DCT-II Dct3e.png DCT-VI Dct3o.png
DCT-III Dct2e.png DCT-VII Dct2o.png
DCT-IV Dct4e.png DCT-VIII Dct4o.png

อ้างอิง[แก้]

  • N.Ahmed, T. Natarajan, K. R. Rao, "Discrete cosine transform," IEEE Trans. Comput., C-23(1974), pp. 90-93.
  • Z. Wang and B. Hunt, "The discrete W-transform," Appl. Math. Comput., 16 (1985), pp. 19-48.
  • S. A. Martucci, "Symmetric convolution and the discrete sine and cosine transforms," IEEE Trans. Sig. Processing, SP-42, 1038-1051 (1994).
  • G. Strang, "The Discrete Cosine Transform," Siam Review, vol. 41, no.1, pp. 135-147.

แหล่งข้อมูลอื่น[แก้]