Audio Watermarking Algorithms: State-of-the-Art
[สารบัญกลุ่มเรื่องที่กำลังศึกษา]

เนื้อหาตอนนี้ผมสรุปจากภาคที่ 5 ในบทที่ 6 Audio Watermarking: State-of-the-Art หนังสือ Advanced Techniques in Multimedia Watermarking (Information Science Reference, 2010) โดย Dejan Drajic กับ Nedeljko Cvejic

อัลกอริทึ่มส่วนใหญ่อาศัยสมบัติการรับรู้เสียงของระบบรับรู้เสียงมนุษย์ (HAS: Human Auditory System) ในการใส่ลายน้ำลงในเสียงต้นฉบับเพื่อไม่ให้หูคนเราตรวจจับได้ถึงการมีอยู่ของลายน้ำ พูดอีกอย่างหนึ่งว่า ลายน้ำจะต้องมีสมบัติ perceptual transparency โดยทั่วไประบบจะมีส่วนวิเคราะห์ psychoacoustic (psychoacoustic analysis block) เพื่อใช้ในอัลกอริทึ่มสำหรับใส่ลายน้ำ

ก่อนพูดถึงรายละเอียดของแต่ละกลุ่มเทคนิค ผู้เขียนบอกว่าเราควรแยกระหว่าง watermark decoding กับ watermark detection ให้ชัดเจน การสื่อสารข้อมูล watermark เป็นหัวใจของ embedding กับ decoding ส่วนการ verify ว่าสัญญาณเสียงที่ได้รับมานั้นมีลายน้ำหรือไม่ เป็นหน้าที่ของ watermark detection

Least Significant Bit Coding

LSB coding เป็นหนึ่งในเทคนิคเก่าแก่ที่สุดที่ใช้ในการซ่อนข้อมูล หรือ watermarking วิธีที่เรียบง่ายวิธีหนึ่งในการทำลายน้ำเสียง คือ การฝังลายน้ำโดยเปลี่ยนแปลงบางบิตของไฟล์เสียง (ซึ่งมี amplitude resolution 16 บิตต่อแซมเปิ้ล) โดยทั่วไป ตัวเข้ารหัสลายน้ำจะเลือก subset จากแซมเปิ้ลเสียงทั้งหมด เป็นการเลือกโดยใช้คีย์ลับ จากนั้นจึงทำการเปลี่ยน LSBs ของ subset ดังกล่าว สำหรับกระบวนการดึงลายน้ำออกมาก็แค่อ่านค่าของบิตที่ถูกเปลี่ยนเหล่านี้ ฉะนั้น ตัว decoder จึงต้องใช้แซมเปิ้ลทั้งหมดของเสียงที่มีลายน้ำซึ่งถูกใช้ในขั้นตอนการฝังข้อมูล การสุ่มเลือกแซมเปิ้ลที่ใช้ฝังลายน้ำจะทำให้เกิด AWG noise กำลังต่ำ และ HAS มีความอ่อนไหวต่อ AWGN นั่นจึงเป็นข้อจำกัดของจำนวน LSBs ที่สามารถเปลี่ยนแปลงได้โดยที่ยังไม่มีผลกระทบต่อการรับรู้เสียง

ข้อดีของวิธีนี้คือ capacity สูงมาก สมมติว่าใช้ LSB แค่บิตเดียวต่อแซมเปิ้ล ถ้าใช้ทุกแซมเปิ้ล เราก็จะได้ capacity เท่ากับ 44.1 kbps และเนื่องจากไม่มีการคำนวณหรือการแปลงที่ซับซ้อน ทำให้ computational complexity ต่ำ จึงเหมาะสำหรับงานประยุกต์ประเภท real-time

ข้อเสียที่เห็นได้ชัดเจนคือ robustness ต่ำมาก เราแค่สุ่มเปลี่ยน LSBs ก็สามารถทำลาย watermark ได้แล้ว นอกจากนี้ มีโอกาสน้อยมากที่ลายน้ำซึ่งฝังลงไปด้วยวิธีดังกล่าวจะรอดหลังจากทำการแปลง digital ไปเป็น analogue แล้วกลับมาเป็น digital

Watermarking the Phase of the Host Signal

อัลกอริทึ่มกลุ่มนี้ใช้ประโยชน์จากข้อเท็จจริงที่ว่า HAS นั้นมีความอ่อนไหวค่อนข้างต่ำต่อการเปลี่ยนแปลงเฟส การฝังลายน้ำโดยการเปลี่ยนเฟสนี้ไม่ได้อาศัยสมบัติ masking ของ HAS แบ่งออกได้เป็น 2 วิธีใหญ่ ๆ คือ phase coding กับ phase modulation

          Phase Coding

          (จากบทความของ Bender et al., 1996) ไอเดียพื้นฐานคือ แบ่งลำดับเสียงต้นฉบับออกเป็น block หลาย ๆ block แล้วฝังลำดับข้อมูลลายน้ำทั้งหมดลงในเฟสสเปกตรัมของ block แรก จุดอ่อนของ phase coding คือ payload ต่ำ เพราะใช้เฉพาะ block แรกในการฝังลายน้ำ นอกจากนี้ การที่ลายน้ำไปกระจุกกันอยู่ที่เดียวทำให้ถูกลบออกได้ง่าย และวิธีนี้เป็น non-blind watermarking method

          Phase Modulation

          การใส่ลายน้ำวิธีนี้ใช้ independent multiband phase modulation สัญญาณต้นฉบับถูกแบ่งออกเป็น M blocks แต่ละ block มีแซมเปิ้ล N ตัว โดยใช้ window แบบมีส่วนซ้อนทับกัน

          

          การดึงลายน้ำออกมา ต้องมีขั้นตอนการ sync ที่ลงตัวในการทำ block alignment สำหรับแต่ละ block ที่มีการฝังลายน้ำ โดยใช้สัญญาณต้นฉบับเป็นตัวอ้างอิง, watermark bit จาก block ที่ k จะถูกดึงมาจาก phase modulation Φ̂k สำหรับ block นั้น

Echo Hiding

เนื้อหาตอนนี้เหมือนกับ Bender et al., 1996 ดู Echo Data Hiding แต่เปลี่ยนจากพารามิเตอร์ 3 ตัวแบบที่ Bender อธิบายมาเป็น 4 ตัว คือ แอมปลิจูดเริ่มต้น, decay rate, offset บิต 1 และ offset บิต 0 ดังรูป

          

นอกจากนี้ ในย่อหน้าสุดท้าย ผู้เขียนบอกว่า เราสามารถเพิ่ม robustness ได้ด้วย echo ที่มีพลังงานสูง แต่ (แน่นอน) มันจะเพิ่ม distortion ในเสียงด้วย ต่อมามีผู้เสนอ multi-echo embedding technique เพื่อลดโอกาสที่ echo จะถูกตรวจจับได้โดยมือที่สาม และยังมีผู้เสนอ echo kernel ที่ประกอบด้วยทั้งพัลซ์บวกและลบซึ่งมีค่า offset แตกต่างกัน ทำให้การตอบสนองเชิงความถี่เรียบในย่านความถี่ต่ำ และกระเพื่อมมากในความถี่สูง

Spread Spectrum

ภาพรวมของระบบ SS-based watermarking แสดงดังรูป

          

เวกเตอร์ x คือ สัญญาณต้นฉบับที่เราจะฝังลายน้ำลงไป อยู่ใน transform domain ที่ต้องการเรียบร้อยแล้วนะครับ หลังจากผ่านช่องทางสื่อสาร จะได้เวกเตอร์ y ซึ่งเป็นเวกเตอร์ทางฝั่งรับ ใน transform domain เช่นกัน ดูบล็อกล่างซ้าย PRN (Pseudo Random Number generator) ใช้กุญแจลับ K$ ในการสร้าง spreading sequence u ที่มีค่าเฉลี่ยเท่ากับศูนย์และ elements ของมันเท่ากับ +σu หรือ -σu จากนั้น เอาลำดับ u ไปบวกหรือลบจากสัญญาณ x ตามค่าตัวแปร b เมื่อ b มีค่า +1 หรือ -1 ขึ้นอยู่กับบิตของลายน้ำที่จะส่ง และผลลัพธ์จากการบวกหรือลบคือสัญญาณ s ซึ่งก็คือเสียงที่ใส่ลายน้ำแล้วนั่นเอง

จากการวิเคราะห์ SS-based watermarking อย่างง่ายทำให้ได้สูตรสำหรับคำนวณโอกาสเกิดความผิดพลาด

จากนิยามของ inner product กับ norm

          

เมื่อ N คือความยาวของเวกเตอร์ x, s, u, n และ y เราจะฝัง b หนึ่งบิตของข้อมูลลงในเวกเตอร์ s นั่นคือ

          s = x + bu

นิยามของความผิดเพี้ยน (distortion) ในสัญญาณที่ฝังลายน้ำ คือ |s - x| หรือ |bu| = |u| = σu

เมื่อช่องทางสื่อสารเป็น additive noise, y = s + n การดึงลายน้ำออกมาทางฝั่งรับนั้น บิตที่ได้รับ b̂ = sign (r) เมื่อ

          

และ

          

ถ้ากำหนดให้ x และ n เป็น white Gaussian random processes ที่ไม่สัมพันธ์กัน

          xi ≈ N(0,σ2x) และ ni ≈ N(0,σ2n)

เราจะได้ว่า

          r ≈ N(mr2r), mr = E[r] = bσ2r = (σ2x + σ2n)/(Nσ2u)

กรณีที่ b = 1, error จะเกิดขึ้นเมื่อ r < 0, โอกาสเกิดข้อผิดพลาด p หาจาก

          

เมื่อ erfc(*) คือ complementary error function, ในกรณีที่ b = -1 โอกาสเกิดข้อผิดพลาดก็ได้เท่านี้แหละครับ

ตัวอย่าง ถ้าเราต้องการให้โอกาสผิดพลาดต่ำกว่า 10-3 เราจะได้

          

พูดในกรณีทั่ว ๆ ไป ถ้าเราต้องการให้ได้โอกาสผิดพลาดไม่เกิน p เราจะต้องทำให้เกิดเงื่อนไข

          

(รายละเอียดเพิ่มเติม ดู Audio Watermarking Based on Spread Spectrum Communication Technique)

Patchwork Method

เทคนิคนี้เสนอครั้งแรกใน Bender et al., 1996 เหมือนกับเทคนิค echo hiding ก็เสนอครั้งแรกโดย Bender และคณะเช่นกัน เดิมที เป็นเทคนิคสำหรับใส่ลายน้ำลงในภาพ โดยใช้วิธีทางสถิติที่ใช้การทดสอบสมมติฐาน และขึ้นอยู่กับชุดข้อมูลจำนวนมาก แต่วิธี patchwork ก็เอามาประยุกต์ใช้กับเสียงได้ด้วย เพราะใน 1 วินาที เสียงจากแผ่น CD คุณภาพมาตรฐาน จะมีแซมเปิ้ล 88,200 แซมเปิ้ล กระบวนการฝังลายน้ำใช้ pseudorandom process ในการแทรกค่าสถิติบางอย่างลงในชุดข้อมูลเสียงต้นฉบับ ซึ่งจะถูกดึงออกมาโดยอาศัยความช่วยเหลือจาก numerical indices ที่ใช้บรรยายการกระจายเฉพาะแบบ (specific distribution) โดยทั่วไปจะวิธีนี้จะใช้ใน transform domain (เช่น Fourier, DCT, wavelet, ...) เพื่อกระจายลายน้ำในโดเมนเวลา และเพื่อเพิ่ม robustness

เราไม่ต้องใช้สัญญาณต้นฉบับในการตรวจจับลายน้ำออกมา ฉะนั้น patchwork จึงเป็น blind watermarking detection ในกรณีที่ robustness มีค่าสูง watermark bit rate จะอยู่ที่ 1 - 10 bps

โน้ต: หัวข้อนี้ ผู้เขียนพูดสั้นมาก ผมไม่สามารถจับสาระอะไรได้มากไปกว่านี้ และรายละเอียดของกระบวนการก็บรรยายได้ชนิดที่มองภาพแทบไม่ออก เนื้อหาหนังสือตอนนี้ เหมือนกับผู้เขียนเอางานของ Bender มาย่อ เอาไว้ผมอ่าน Bender แล้วจะกลับมาเล่าเฉพาะ Patchwork ต่างหากในบล็อกตอนอื่นอีกทีละกันครับ



Create Date : 11 มิถุนายน 2556
Last Update : 14 มิถุนายน 2556 16:00:37 น.
Counter : 827 Pageviews.

0 comments
:: ปูรณฆฏะ :: กะว่าก๋า
(18 มี.ค. 2562 06:13:13 น.)
วิธีรับมือกับ...มรสุมฝุ่น Princezz Matcha Latte
(31 ม.ค. 2562 17:07:35 น.)
++++ มามะมาพาไปชิม ร้านโอ้กะจู๋ กับ โป่งแยงแอ่งดอย ที่เชียงใหม่ รวม2ร้านไปเลยค่ะ ++++ life for eat and travel
(18 มี.ค. 2562 21:45:57 น.)
+ ตุง หรือ ธุงอีสาน + wicsir
(4 มี.ค. 2562 11:02:11 น.)
ชื่อ : * blog นี้ comment ได้เฉพาะสมาชิก
Comment :
 *ส่วน comment ไม่สามารถใช้ javascript และ style sheet
 

Zol.BlogGang.com

ศล
Location :
กรุงเทพ  Thailand

[ดู Profile ทั้งหมด]
 ผู้ติดตามบล็อก : 85 คน [?]

บทความทั้งหมด