creatio ex nihilo

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

[Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 85 คน [?]




Group Blog
 
All Blogs
 
Friends' blogs
[Add ศล's blog to your web]
Links
 

 

EMD and Psychoacoustic Model Based Watermarking for Audio

[สารบัญกลุ่มเรื่องที่กำลังศึกษา]

เนื้อหาตอนนี้ผมสรุปจากบทความในชื่อเดียวกันของ Lang Wang, Sabu Emmanue กับ Mohan S. Kankanhalli จาก IEEE International Conference on Multimedia and Expo (ICME) ปี 2010 ที่ Suntec City

ผู้เขียนอาศัยเทคนิค EMD (Empirical Mode Decomposition) ในการแยกสัญญาณชนิด multi-component ออกเป็นเซ็ตของ IMFs (Intrinsic Mode Functions)

          

เมื่อ P(t) คือ สัญญาณที่เราจะแยก และแยกได้ cn หมายถึง IMF ตัวที่ n ของสัญญาณ และ rm(t) เป็น final residue ซึ่งเป็น monotonic function นอกจากนี้ มีการศึกษาพบว่า final residue มีเสถียรภาพต่อสัญญาณรบกวนแบบ Gauss และการบีบอัด MPEG รูปด้านล่างแสดงตัวอย่าง N = 8 หรือมี IMF 8 ตัว


ไอเดียสำคัญของวิธีนี้คือ การฝังข้อมูลโดยการดัดแปลง rm(t) ครับ วิธีการฝังข้อมูลที่ผู้เขียนเสนอเขียนเป็น block diagram ได้ดังรูป


เริ่มจากป้อนสัญญาณเสียง X(t) ซึ่งเป็นสัญญาณแบบ PCM เข้าไปยัง analysis filterbank ในที่นี้คือ polyphase filterbank (คิดคร่าว ๆ ว่าเหมือน DFT ที่แก้จุดอ่อนเรื่อง leakage กับ scalloping loss) ซึ่ง filterbank ตัวนี้จะกระจายสัญญาณต้นฉบับออกมา M = 32 subbands คือ S0(t) จนถึง SM-1(t) ต่อมา แต่ละ subband ยังถูกแบ่งออกเป็น segment อีก NS segments โดยแต่ละ segment มีแซมเปิ้ล J ตัว ถ้าเราเขียน Si,j(t) แทนแซมเปิ้ลที่อยู่ใน segment ที่ j ของ subband ที่ i เราจะได้ Si,j(t) = Si(j*J + t) เมื่อ t = 0, 1, ..., J-1 และ j = 0, 1, ..., NS-1

block ที่เขียนว่า Watermark Embedding Domain Control นั้น หน้าที่ของมันคือเลือกว่าจะฝังลายน้ำลงใน segment ไหน สมมติเราบอกว่า ส่วนที่เหมาะสมสำหรับการฝังลายน้ำคือ subband ที่ î และ segment ที่ ĵ ฉะนั้น segment ที่เราจะทำการฝังลายน้ำคือ Ŝi,j(t) := Si,j(t)i∈î, j∈ĵ

ต่อมาเราแยก Ŝi,j(t) ด้วยเทคนิค EMD โดยไม่ไปยุ่งอะไรกับ IMFs แต่จะแก้ไขเฉพาะ rm(t) ตาม watermark bit Wi(j) (ซึ่งมีค่า +1 หรือ -1) โดยการลบ rm,i,j(t) ทิ้ง แล้วใส่ αWi(j) เข้าไปแทน เมื่อ α คือ watermark strength, เราได้

          

ค่าของ watermark strength หาจากการใช้ psychoacoustic model คำนวณ SMR ของแต่ละ segment ที่ทำให้ความสัมพันธ์นี้เป็นจริง

          

หลังจากนั้น เอาสัญญาณที่ใส่ลายน้ำแล้วในแต่ละ subband มารวมกันด้วย synthesis filterbank เพื่อให้ได้ Xw(t) สัญญาณเสียงที่มีลายน้ำ เป็นอันเสร็จสิ้นพิธี ผู้เขียนบอกว่า ความยาวของ Ŝi,j(t) มีผลกระทบต่อ performance ของระบบ ถ้า Ŝi,j(t) ยิ่งยาว จะทำให้ capacity ลด แต่หูคนเราจะตรวจจับความแตกต่างระหว่างก่อนและหลังฝังลายน้ำได้ยาก

block diagram สำหรับกระบวนการดึงลายน้ำออกมาแสดงดังรูปด้านล่าง ส่วนใหญ่ทำเหมือนเดิมนะครับ เพราะจุดที่เราสนใจอยู่ที่ rm(t) หลังจากที่ได้ rwm,i,j(t) เราก็รวมค่าของ rwm,i,j(t) ตั้งแต่ที่ t = 0 จนถึง J-1 (นั่นเท่ากับพูดว่า รวมค่า rm(t) ทั้ง segment) ถ้าค่าดังกล่าวมากกว่าหรือเท่ากับ 0 เราก็จะบอกว่า w*i,j = 1 แต่ถ้าค่าดังกล่าวน้อยกว่า 0 ค่า w*i,j = -1 และค่า w* นี่ก็คือ watermark message ที่เราดึงออกมาจากเสียง Xw(t)


ผลการทดลอง ได้ SDG ≈ -0.15, BER แบบเฉลี่ย ≈ 0.0153 เมื่อความยาวของ segment สำหรับทำ EMD เปลี่ยนจาก 32 ถึง 1,024 แซมเปิ้ล, แต่ถ้าใช้ความยาวของ segment เท่ากับ 32 แซมเปิ้ลและโจมตีด้วยการบีบอัด MP3 และเพิ่มสัญญาณรบกวนแบบ Gauss ค่า BER ≈ 0.0143 และ 0.0115 ตามลำดับ




 

Create Date : 14 กรกฎาคม 2556    
Last Update : 15 กรกฎาคม 2556 1:24:27 น.
Counter : 1991 Pageviews.  

Arnold Transform (Arnold's Cat Map)

[สารบัญกลุ่มเรื่องที่กำลังศึกษา]

การแปลงอาร์โนลด์ของภาพ 2 มิติ ขนาด N x N นิยามจาก

     

เมื่อ (x,y) แทนพิกัดของพิกเซลในเมตริกซ์ภาพก่อนแปลง โดย x, y ∈ {0, 1, ..., N-1} และ (x',y') เป็นพิกัดของพิกเซลเมตริกซ์ภาพหลังการแปลง สังเกต mod N หมายถึง x' กับ y' ถูกดำเนินการภายใต้ modular N เพื่อให้ x' กับ y' อยู่ในช่วง 0 ถึง N-1

การแปลงอาร์โนลด์มีลักษณะเป็นคาบ ซึ่งจะรับประกันว่าภาพ scrambling จะถูกทำกลับมาเป็นเหมือนเดิม สำหรับคาบที่ N ต่าง ๆ กันแสดงดังตาราง

     

ตัวอย่าง Figure 1: ภาพต้นฉบับ, Figure 2: แปลง 1 รอบ, Figure 10: แปลง 9 รอบ, Figure 150: แปลง 149 รอบ และ Figure 151: แปลง 150 รอบ ดังรูป



โค้ดด้วย MATLAB

     
     

ที่มา: รูปสมการกับตารางเอามาจากบทความของ K. Ren et al เรื่อง Large Capacity Digital Audio Watermarking Algorithm Based on DWT and DCT (2011 ICMSEEC), ส่วน source code ดัดแปลงจากโค้ดของอาจารย์ Charles Collins, ภาพน้องต่อ ธนภพ จาก fc-page บน fb และปรับให้มีขนาด 200 x 200 พิกเซล




 

Create Date : 05 กรกฎาคม 2556    
Last Update : 5 กรกฎาคม 2556 23:08:45 น.
Counter : 1437 Pageviews.  

What is a Cepstrum?

[สารบัญกลุ่มเรื่องที่กำลังศึกษา]

complex cepstrum สำหรับลำดับ x คำนวณได้โดยการหา complex natural logarithm ของการแปลงฟูริเยร์ของ x แล้วเอาผลลัพธ์ที่ได้มาแปลงอินเวิร์สฟูริเยร์อีกที

          

ตัวอย่างใช้ complex cepstrum ในการแสดง echo เริ่มจากสร้าง s1 คือ sine wave ความถี่ 45 Hz ที่ถูกแซมปลิ้งที่ 100 Hz จากนั้นใส่ echo ที่มีขนาดลดลงครึ่งหนึ่งลงไป โดยมี delay time เท่ากับ 0.2 s กลายเป็น s2


จะเห็นว่ามี peak ที่ 0.2 s ใน complex cepstrum อันนี้แสดงถึง delay time ของ echo เท่ากับ 0.2 s

ที่มา: mathworks




 

Create Date : 21 มิถุนายน 2556    
Last Update : 21 มิถุนายน 2556 15:41:02 น.
Counter : 765 Pageviews.  

Audio Watermarking of Stereo Signals Based on Echo-Hiding Method

[สารบัญกลุ่มเรื่องที่กำลังศึกษา]

เนื้อหาตอนนี้ผมสรุปจากบทความในชื่อเดียวกันของ Foo Say Wei กับ Dong Qi จาก ICICS 2009

ปกติเวลาทำ echo hiding เราจะใช้ delay time ของ echo 2 ค่าเพื่อฝังข้อมูล "0" กับ "1" แต่บทความนี้ ผู้เขียนเสนอวิธีที่ใช้ delay time แค่เพียงค่าเดียว คือ 0.001 s กับ decay rate = 0.4 ในการฝังข้อมูลลงในเพลงแบบ stereo (มี 2 channels) ที่อัตราแซมปลิ้ง 44.1 kHz ซึ่งแบ่งฝังบิตละท่อน ท่อนละ 0.01 s และเลือกฝังท่อนที่เป็น non-silent segment นั่นคือ มีการคิดพลังงานของแต่ละท่อนก่อน แล้วฝังข้อมูลลงในท่อนที่มีพลังงานเกินค่า threshold ที่กำหนดไว้บางค่า เทคนิคที่น่าสนใจในการคำนวณพลังงานของผู้เขียนคือ ในแต่ละท่อน (0.01 s) เขายังแบ่งออกเป็น 3 ท่อนย่อย แล้วคำนวณพลังงานของแต่ละท่อนย่อย ถ้ามีท่อนย่อยใดท่อนย่อยหนึ่งที่พลังงานต่ำกว่า threshold ก็จะถือว่าทั้ง segment (3 ท่อนย่อย) เป็น non-silent segment

ทีนี้ เนื่องจากใช้ delay time ค่าเดียว จะมีวิธีแยกบิต 0 กับ 1 อย่างไร, ทริกที่ผู้เขียนใช้คือให้ดูว่า echo ถูกฝังไว้ channel ไหน เช่น ถ้าเป็นสัญญาณช่องลำโพงซ้าย ก็ถือว่าบิต 0 แต่ถ้าเป็นสัญญาณช่องลำโพงขวา ถือว่าบิต 1

ผู้เขียนเปรียบเทียบระหว่าง single-channel กับวิธีที่เสนอโดยดูเปรียบเทียบค่า extraction rate (%) เมื่อผ่านการโจมตี 3 แบบ คือ เติม white noise, เปลี่ยน sampling rate เป็นค่าใดค่าหนึ่งแล้วแปลงกลับเป็น 44.1 kHz, กับการบีบอัดเป็น MP3 แล้วแปลงกลับมาเป็น WAV ผลที่ได้แสดงดังตาราง ซึ่งแน่นอนว่ากรณีนี้ ประสิทธิภาพที่ดีกว่า (extraction rate ที่สูงกว่า) ย่อมเป็นที่คาดหมายอยู่แล้วนะครับ

          
          




 

Create Date : 20 มิถุนายน 2556    
Last Update : 12 กรกฎาคม 2556 21:35:46 น.
Counter : 529 Pageviews.  

Experimental Research on Parameter Selection of Echo Hiding in Voice

[สารบัญกลุ่มเรื่องที่กำลังศึกษา]

เนื้อหาตอนนี้ผมสรุปจากบทความในชื่อเดียวกันของ Li Li กับ Ya-Qi Song จาก 8th International Conference on Machine Learning and Cybertics, Baoding, 12-15 July 2009

ผู้เขียนบอกว่า เนื่องจากยังไม่มีใครศึกษาวิธีการเลือกพารามิเตอร์ที่ใช้ในเทคนิค echo hiding เขาจึงได้ทำการทดลองเพื่อเสนอค่าพารามิเตอร์ที่เหมาะสม ซึ่งหมายถึงพารามิเตอร์ที่ทำให้ recovery rate มีค่าสูง สำหรับเทคนิค single echo hiding (รายละเอียดเกี่ยวกับเทคนิค Echo hiding หาดูได้ในบล็อกตอนก่อนหน้า ซึ่งเขียนไว้แล้ว 2 ตอน เช่น Echo Data Hiding)

การทดลองใช้เสียงพูดจำนวน 20 คลิป เก็บแซมเปิ้ลละ 16 บิตในฟอร์แมต WAV ที่มีอัตราสุ่มตัวอย่าง (sampling rate) เท่ากับ 8 kHz, 16 kHza และ 22.05 kHz ข้อมูลที่ใช้ฝังเป็น text โดยฝังแต่ละบิตลงใน segment ที่มีความยาว 0.1 s ของคลิป และใช้ Recovery Accuracy (RA) เป็นตัววัด โดย

          RA = [(จำนวนบิตที่ถอดรหัสได้อย่างถูกต้อง)/(จำนวนบิตที่ฝัง)] x 100%

การทดลองแรกเลือกใช้ α = 0.4 (decay rate = 0.4) ตามที่ Gruhl และคณะได้เสนอไว้ว่าค่า decay rate ที่เหมาะสมคือ 0.3 < α < 0.4 จุดประสงค์ของการทดลองนี้คือหาความสัมพันธ์ระหว่าง RA กับ delay time (สัญญลักษณ์ที่ใช้ในเปเปอร์คือ d0 สำหรับ delay time ของ kernel ที่ฝังบิต 0 และ d1 สำหรับฝัง 1) ผลลัพธ์จากการจำลองแสดงดังรูป a) - c) ซ้ายมือ



รูป a) - c) คือ กรณี sampling rate = 8 kHz, 16 kHz, 22.05 kHz ตามลำดับ ตัวอย่างรูป a) d0 = 8 แซมเปิ้ล (หรือ 1 ms) เห็นว่า ยิ่ง d0 เพิ่มมากขึ้น ผลกระทบของ |d0 - d1| ต่อ RA ลดลง ผู้วิจัยได้ข้อสรุปดังนี้

1. ถ้าแซมปลิ้งที่ 8 kHz, ค่า d0 ที่เหมาะสมอยู่ในช่วง 18-40 แซมเปิ้ล (2.25-5 ms) ค่าของ d1 ไม่กำหนด แต่ถ้า d0 อยู่ในช่วง 8-18 แซมเปิ้ล ค่าของ |d0 - d1| ควรอยู่ระหว่าง 1-10 แซมเปิ้ล

2. ถ้าแซมปลิ้งที่ 16 kHz, ค่า d0 ที่เหมาะสมอยู่ในช่วง 23-80 แซมเปิ้ล (1.44-5 ms) ค่าของ d1 ไม่กำหนด แต่ถ้า d0 อยู่ในช่วง 16-22 แซมเปิ้ล ค่าของ |d0 - d1| ควรมากกว่า 10 แซมเปิ้ล

3. ถ้าแซมปลิ้งที่ 22.05 kHz, ค่า d0 ที่เหมาะสมอยู่ในช่วง 31-102 แซมเปิ้ล (1.41-4.63 ms) ค่าของ d1 ไม่กำหนด แต่ถ้า d0 อยู่ในช่วง 22-31 แซมเปิ้ล ค่าของ |d0 - d1| ควรมากกว่า 10 แซมเปิ้ล

ต่อมาเป็นการทดลองเพื่อหาความสัมพันธ์ระหว่าง RA กับ decay rate ซึ่งผลลัพธ์แสดงดังรูป a) - c) ขวามือ ผลลัพธ์อันนี้ชี้ให้เห็นว่า ถ้า delay time อยู่ในช่วงที่ได้กล่าวตามข้อ 1. - 3. ค่า RA > 0.99 เมื่อ α > 0.2 นั่นคือ หากเลือก α ให้อยู่ระหว่าง 0.2 กับ 0.4 และ delay time ตามที่ได้เสนอไป จะได้ RA ที่สูง




 

Create Date : 20 มิถุนายน 2556    
Last Update : 20 มิถุนายน 2556 21:13:58 น.
Counter : 608 Pageviews.  

1  2  3  4  5  6  7  8  9  
 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.