|
Research of Improved Echo Data Hiding: Audio Watermarking based on Reverberation
[สารบัญกลุ่มเรื่องที่กำลังศึกษา]
เนื้อหาตอนนี้ ผมสรุปจากบทความในชื่อเดียวกันของ G. Nain, S. Wang กับ Y. Ge ใน Proc. IEEE International Conference on Acoustics, Speech, and Signal Processing, pp. 117-180 ปี 2007 ที่ Honolulu
เทคนิค echo-hiding ที่ผมได้เล่ามาหลายตอนก่อนหน้านี้ อย่างมากเราเพิ่ม echo เข้าไปไม่เกิน 4 ลูกใช่มั้ยครับ แต่สำหรับเทคนิคที่ผ้เขียนเสนอในบทความนี้ คีย์เวิร์ดของมันคือ reverberation ซึ่งก็ไม่ใช่อะไรหรอก นอกจาก echo จำนวนมากที่ผสมปนเปกันแบบซับซ้อน เรายังคงใช้ kernel 2 ตัวในการฝัง "0" กับ "1" แต่คำถามอยู่ที่ เราจะหา kernel ยังไง นี่แหละครับประเด็น และคำตอบของผู้เขียนคือ หาจาก reverberation (หรือพูดให้เจาะจง room impulse response) ที่จุด 2 จุดในห้อง ใช้จุดหนึ่งแทนการฝัง "0" และอีกจุดสำหรับฝัง "1" โดยวิธีการหา room ir ของผู้เขียนคือ image method และพารามิเตอร์ที่ใช้หา room ir ยังทำหน้าที่เป็น secret key ที่จำเป็นต้องใช้ในการดึงลายน้ำออกมา นั่นเท่ากับเป็นการเพิ่ม security อีกทอดหนึ่ง
สมมติว่าแหล่งกำเนิดเสียงอยู่ที่ (sx, sy, sz) และเลือกผู้ฟัง 2 จุด พิกัด (lx1, ly1, lz1) กับ (lx2, ly2, lz2) คำนวณ room ir h1(n) กับ h2(n) จากนั้นใช้มันสร้าง kernel function f1(n) = δ(n) + h1(n) กับ f2(n) = δ(n) + h2(n) ซึ่ง room ir จะอยู่ในรูป h(n) = α1δ(n-n1) + α2δ(n-n2) + ... + αLδ(n-nL) เมื่อ L คือ ความยาวของ room ir (หรือจำนวน echo นั่นแหละครับ) ถ้า xi(n) คือ สัญญาณต้นฉบับ เราจะได้สัญญาณที่ฝังลายน้ำ xwi(n) = xi(n)*f(n) เมื่อสัญลักษณ์ * แทน linear convolution ตรงนี้เห็นว่า ขั้นตอนต่าง ๆ เหมือนเทคนิคในตระกูล echo-hiding ทั่ว ๆ ไป ต่างกันแค่วิธีการหา kernel function เท่านั้นเอง
block diagram ขั้นตอนการดึงลายน้ำออกมาแสดงดังรูป
จากรูป หลังหา cepstrum ของ xwi(n) แล้ว ก็เอา cepstrum นั่นมาหา cross-correlation กับ h1(n - n11 กับ h2(n - n21 ถ้าหากบิตที่ฝังอยู่คือ "1" เราจะเห็น peak ที่ n1 ของ d1(n) แต่ไม่เห็นของ d2(n) ดังรูป
ถ้า σwn1 เป็น ส่วนเบี่ยงเบนมาตรฐานของ d1(n) ยกเว้นค่าที่ n1(n) เนื่องจากที่ตำแหน่งดังกล่าวเป็นค่า peak และ σwn2 เป็น s.d. ของ d2(n) ยกเว้นที่ค่าสูงสุดเช่นกัน เราจะใช้ค่า r(i) = [d1(max)/σwn1]/[d2(max)/σwn2] เป็นตัวตัดสินใจว่าบิตที่ฝังคือ "0" หรือ "1" ถ้า r(i) > T (เป็น threshold ค่าหนึ่ง) เราจะบอกว่าบิตที่ฝังอยู่คือ "1" แต่ถ้า r(i) < T บิตที่ฝังคือ "0"
ผลการทดลอง: รูปด้านล่างแสดงความสัมพันธ์ระหว่าง dl = sqrt[(lx1-lx2)2 + (ly1-ly2)2 + (lz1-lz2)2] กับ correct response ของเพลง S01 - S04 เห็นว่า ยิ่ง dl น้อย correct response จะยิ่งดี และสมบัติ imperceptibility จะดีมากถ้า dl < 15
การทดลองที่เลือกใช้ dl = 8.378 เมื่อผ่านการโจมตีแบบต่าง ๆ แล้วพบว่า error bit rate < 4% กราฟด้านล่างแสดง ratio curve ก่อนและหลังการโจมตี
Create Date : 16 กรกฎาคม 2556 | | |
Last Update : 16 กรกฎาคม 2556 9:29:39 น. |
Counter : 1019 Pageviews. |
| |
|
|
|
|
Researches on Echo Kernels of Audio Digital Watermarking Technology Based on Echo Hiding
[สารบัญกลุ่มเรื่องที่กำลังศึกษา]
เนื้อหาตอนนี้ ผมสรุปจากบทความในชื่อเดียวกันของ X. Cao กับ L. Zhang ใน IEEE International Conference on Wireless Communications and Signal Processing ปี 2011 ที่ Nanjing
จะว่าไป บทความนี้แตกต่างจากเทคนิคอื่น ๆ ในตระกูล echo-hiding ก็แค่เปลี่ยนหน้าตาของ kernel เท่านั้นเองครับ และเมื่อดูผลการทดลอง ก็ให้ความรู้สึกไม่แฟร์สักเท่าไร เพราะตัวที่ผู้เขียนใช้เทียบเคียงด้วยเป็น kernel ของ Bender ตั้งแต่ปี 1996
หน้าตาของ kernel ที่ Cao เสนอเป็นแบบนี้
เห็นว่าแตกต่างจาก mirrored kernel ของ Wu เพราะโครงสร้างของ kernel ที่ใช้ฝัง "0" กับ "1" ไม่เหมือนกัน (สังเกต positive echo ที่อยู่ใกล้ไกลกว่า negative echo เมื่อเทียบกับสัญญาณต้นฉบับ)
ตัวอย่าง real cepstrum ของ segment ที่ฝัง "0" และ "1" ตามลำดับแสดงดังรูป โดย d0 = 40 แซมเปิ้ล และ d1 = 90 แซมเปิ้ล
ผู้เขียนได้ทดสอบสองอย่าง คือ robustness test กับ subjective quality test และดูผลการเปลี่ยน α ที่กระทบต่อ detection rate เปรียบเทียบระหว่าง kernels ใหม่ที่นำเสนอกับ kernels ของ Bender ผลลัพธ์แสดงดังกราฟ
การโจมตีและผลลัพธ์แสดงดังตาราง (แน่นอนว่ามันพัฒนาขึ้น)
SDG เฉลี่ยก็ออกมาดีนะครับ แต่อย่างว่า แอบดูเหมือนไม่แฟร์ เพราะเทียบข้ามรุ่นแบบห่างกันเกินไป
Create Date : 15 กรกฎาคม 2556 | | |
Last Update : 15 กรกฎาคม 2556 22:03:21 น. |
Counter : 863 Pageviews. |
| |
|
|
|
|
Analysis-by-Synthesis Echo Hiding Scheme Using Mirrored Kernels
[สารบัญกลุ่มเรื่องที่กำลังศึกษา]
เนื้อหาตอนนี้ ผมสรุปจากบทความในชื่อเดียวกันของ W. Wu กับ O. Chen จาก IEEE International Conference on Acoustics, Speech and Signal Processing ปี 2006 ที่ Toulouse
ผมขอเล่าเฉพาะส่วนที่ผู้เขียนนำเสนอแตกต่างจาก echo-hiding แบบอื่น ๆ ซึ่งเคยพูดถึงไปแล้วในบล็อกหลายตอนก่อนหน้า งานชิ้นนี้ของ Wu มีคีย์เวิร์ดอยู่ 2 คำครับ คือ (1) analysis-by-synthesis กับ (2) mirrored kernels ขอเริ่มจากคำหลังก่อน mirrored kernels แสดงได้ดังรูป
สำหรับ segment ใด ๆ ที่เราจะใส่ echo เราจะเอามันมาแบ่งเป็น 2 segments ย่อย เรียกว่า ท่อนหน้า (front part) กับท่อนหลัง (rear part) แต่ละท่อนจะใช้ kernel โครงสร้างเหมือนกันแต่มีพารามิเตอร์แตกต่างกัน เช่น รูป (a) ท่อนหน้าใช้พารามิเตอร์ da ขณะที่ท่อนหลังใช้พารามิเตอร์ db เพื่อแสดงถึงการฝัง "0" และถ้าหากเราอยากฝัง "1" เราก็แค่สลับให้ท่อนหน้าใช้พารามิเตอร์ db ส่วนท่อนหลัง da อันนี้แหละครับความหมายของชื่อ mirrored ของมัน ผู้เขียนอ้างว่า การทำ mirror จะเพิ่ม recovery rate ดูตารางผลการทดลองเปรียบเทียบ
ค่า αe คือ equivalent decay rate ในกรณีของ EHBF คำนวณจาก αe = αb + αf ส่วนกรณี mirrored คำนวณจาก αe = (α0f + α0r + α1f + α1r)/2
คีย์เวิร์ดอีกคำ analysis-by-synthesis เป็นขั้นตอนที่เกิดขึ้นในกระบวนการฝังลายน้ำ ดังรูป
หลังจากที่ได้ y[n] ตามการทำ echo แบบเดิม เราก็อย่าเพิ่งส่งมันนะครับ ยังไม่เสร็จพิธี ให้ป้อนมันเข้า noise model เพื่อจำลองการโจมตีแล้วเอาผลลัพธ์จากการโจมตีคือ ŷ[n] มาถอดดูว่าถอดได้หรือไม่ สมมติว่าข้อมูลที่เราฝังคือ I และถอดได้ Î ให้ตรวจสอบความถูกต้องโดยรวม Î กับ -I ถ้าผลลัพธ์ที่ได้ไม่เท่ากับ 0 (หมายความว่า ข้อมูลที่ดึงออกมาไม่ถูกต้อง) ก็ให้กลับไปปรับค่า α ใหม่ จนกว่า Î - I = 0 เราจึงจะพอใจ นี่ก็ตรงตามชื่อ analysis-by-synthesis นั่นแล ตารางผลด้านล่างแสดงให้เห็นว่าวิธีที่ Wu เสนอช่วยเพิ่ม robustness ของระบบ
Create Date : 15 กรกฎาคม 2556 | | |
Last Update : 15 กรกฎาคม 2556 21:17:54 น. |
Counter : 1024 Pageviews. |
| |
|
|
|
|
| |
|