แมวที่ปรากฏในมิติกระจก
(lcamtuf.substack.com)Sir, there's a cat in your mirror dimension
-
ก่อนหน้านี้เคยพูดถึง โดเมนความถี่ มาก่อน
- เป็นเทคนิคที่แปลงสัญญาณในชีวิตประจำวันให้เป็นแอมพลิจูดของคลื่นองค์ประกอบ
- พื้นฐานที่พบบ่อยที่สุดคือคลื่นไซน์ที่มีความถี่เพิ่มขึ้น
- รูปคลื่นอื่น ๆ อีกมากมายก็สามารถสร้างโดเมนความถี่ที่หลากหลายได้
-
คุณสมบัติสำคัญสองอย่างของการแปลงโดเมนความถี่:
- ความย้อนกลับได้: สามารถกู้คืนข้อมูลต้นฉบับจากภาพในโดเมนความถี่ได้
- สมมาตรระหว่างอินพุตและเอาต์พุต: ใช้การคำนวณทางคณิตศาสตร์แบบเดียวกันในการแปลงไป-กลับได้
-
ในทางปฏิบัติ ความแตกต่างนี้สำคัญมาก
- โดยเฉพาะในงานบีบอัดข้อมูล
- เมื่อแปลงภาพไปเป็นโดเมนความถี่แล้วลดความละเอียดขององค์ประกอบความถี่สูง ปริมาณข้อมูลจะลดลง
- แต่ภาพที่ได้ยังคงดูเหมือนเดิมสำหรับสายตา
ใช้ MS Paint เป็นเครื่องมือบีบอัดล้ำสมัย
-
ภาพในโดเมนความถี่ดูคล้ายสัญญาณรบกวนที่กระจายออกไป
- โดยส่วนใหญ่แล้ว สิ่งเหล่านี้ไม่สำคัญในเชิงการมองเห็น
- การแปลงเป็นเหมือนคันโยกที่พาเราไปมาระหว่างสองมิติที่ทำหน้าที่เทียบเท่ากัน
- จึงเกิดคำถามขึ้นมาว่า เราจะใช้มิติกระจกนี้เป็นบ้าน แล้วขนย้ายข้อมูลบางส่วนไปไว้ที่นั่นได้ไหม
-
เพื่อทดสอบเรื่องนี้ จึงนำภาพแมวมาคำนวณรูปแบบในโดเมนความถี่ด้วยการแปลงโคไซน์ไม่ต่อเนื่อง (DCT)
- แมวในโดเมนเวลา, แมวในโดเมนความถี่
-
ใช้ภาพผู้หญิงจากตัวอย่างก่อนหน้า แล้ววางทับลวดลาย "สัญญาณรบกวนของแมว" จากมิติกระจก โดยลดความทึบลง
- ผู้หญิงในโดเมนเวลาและแมวในโดเมนความถี่
-
การผสมภาพย่อมเกิดการสูญเสียอย่างหลีกเลี่ยงไม่ได้
- ตามทฤษฎี หากนำภาพผสมไปคำนวณ DCT เพื่อหารูปแบบในโดเมนความถี่ ภาพผู้หญิงจะแตกตัวเป็นสัญญาณรบกวนสม่ำเสมอ
- ส่วน "สัญญาณรบกวนของแมว" ที่ฉีดเข้าไปจะรวมตัวกันเป็นภาพแมวที่พอมองออก
-
และในทางปฏิบัติก็เป็นเช่นนั้นจริง
- แมวในโดเมนความถี่และผู้หญิงในโดเมนเวลา
-
ถ้าอยากลองดูเอง สามารถดาวน์โหลดภาพผสมแล้วรันสิ่งต่อไปนี้ใน MATLAB ได้:
woman = imread("woman-with-cat.png"); colormap('gray'); imagesc(woman, [0 255]); pause(1); cat = dct2(woman); imagesc(imgaussfilt(cat, 1), [-4 4]); -
ที่น่าสนใจคือ แมวยังอยู่รอดได้แม้จะมีการปรับขนาดเอกสารต้นทาง
- การขยายภาพจะทำให้ภาพถูกปูกระเบื้องซ้ำ
- การย่อภาพจะทำให้ภาพถูกตัดออก
-
ยังสงสัยต่อด้วยว่า การบีบอัดแบบสูญเสียข้อมูลจะทำให้แมวเสียหายแค่ไหน
- ผลกระทบน้อยกว่าที่คาดไว้
- เมื่อใช้การตั้งค่าคุณภาพ JPEG สูง ภาพยังดูดีพอสมควร
- แต่เมื่อปรับคุณภาพให้ต่ำลง ส่วนหนึ่งในสี่ด้านขวาล่างจะถูก quantize อย่างหนัก
- ความปั่นป่วนของการบีบอัด JPEG เมื่อมองจากโดเมนความถี่
-
ภาพแสดงผลนี้ทำให้เห็นว่าอัลกอริทึม JPEG ทำลายข้อมูลไปมากเพียงใด
- แต่ส่วนใหญ่เป็นสิ่งที่เราแทบไม่สังเกตเห็น
-
ก่อนหน้านี้ก็มีตัวอย่างมากมายที่ใช้สเปกโตรแกรมเสียงเป็นข้อความลับ
- รวมถึงมีการพูดคุยเรื่อง text steganography โดยใช้ค่าสัมประสิทธิ์ JPEG DCT ด้วย
- ประเด็นไม่ใช่ว่าเทคนิคนี้มีประโยชน์เป็นพิเศษ แต่เป็นการเน้นให้เห็นว่าโดเมนความถี่และโดเมนเวลานั้นเชื่อมโยงกันอย่างน่าสนุก
ความเห็นของ GN⁺
- ทำความเข้าใจการแปลงโดเมนความถี่: การแปลงโดเมนความถี่มีบทบาทสำคัญในการบีบอัดข้อมูลและการประมวลผลสัญญาณ หากเข้าใจสิ่งนี้ก็จะจัดการข้อมูลภาพหรือเสียงได้อย่างมีประสิทธิภาพมากขึ้น
- การใช้งาน MATLAB: MATLAB เป็นเครื่องมือทรงพลังสำหรับการวิเคราะห์ข้อมูลและการทำภาพแสดงผล บทความนี้ช่วยให้เห็นตัวอย่างการใช้งานจริงของ MATLAB
- ข้อจำกัดของการบีบอัด JPEG: สามารถทำความเข้าใจข้อจำกัดของการบีบอัด JPEG ได้ผ่านภาพอย่างชัดเจน ซึ่งช่วยในการหาวิธีลดขนาดไฟล์โดยยังรักษาคุณภาพของภาพไว้
- Steganography: การใช้โดเมนความถี่สำหรับ steganography เป็นหัวข้อที่น่าสนใจเกี่ยวกับความปลอดภัยของข้อมูล และช่วยให้เรียนรู้วิธีส่งข้อความที่ซ่อนอยู่
- การประยุกต์ใช้เทคโนโลยีอย่างสนุกสนาน: บทความนี้แสดงให้เห็นวิธีนำเทคโนโลยีไปใช้อย่างสร้างสรรค์และสนุก ซึ่งช่วยเพิ่มความสนใจต่อเทคโนโลยีและจุดประกายไอเดียใหม่ ๆ
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
สรุปรวมคอมเมนต์จาก Hacker News
หัวข้อของภาพและพลังงานสเปกตรัม:
พื้นฐานของลายน้ำดิจิทัล:
ความเป็นคู่กันของเวลา-ความถี่ในฟูริเยร์ทรานส์ฟอร์ม:
คำขอให้ยืนยันกระบวนการ:
การประยุกต์ใช้สเตกาโนกราฟี:
ลูกเล่นสเปกโตรแกรมเสียงของ Aphex Twin:
ความสำคัญของตำแหน่งใน DCT:
ความเข้าใจเรื่องการบีบอัดภาพ:
วิธีการเฉพาะของ DCT:
การเข้ารหัสภาพในดนตรีและภาพ: