ขีด จำกัด ของข้อมูลการบีบอัดแบบไม่สูญเสียคือเท่าใด (หากมีข้อ จำกัด ดังกล่าว)


14

เมื่อเร็ว ๆ นี้ฉันได้รับการจัดการกับอัลกอริทึมที่เกี่ยวข้องกับการบีบอัดและฉันสงสัยว่าเป็นอัตราส่วนการบีบอัดที่ดีที่สุดที่สามารถทำได้โดยการบีบอัดข้อมูลแบบไม่สูญเสีย

จนถึงตอนนี้แหล่งเดียวที่ฉันสามารถหาได้ในหัวข้อนี้คือ Wikipedia:

การบีบอัดข้อมูลแบบดิจิทัลที่ไม่สูญเสียข้อมูลเช่นวิดีโอภาพยนตร์ดิจิทัลและเสียงรักษาข้อมูลทั้งหมด แต่ไม่ค่อยสามารถทำได้ดีกว่าการบีบอัด 1: 2เนื่องจากเอนโทรปีของข้อมูลที่แท้จริง

น่าเสียดายที่บทความของ Wikipediaไม่มีข้อมูลอ้างอิงหรือข้อมูลอ้างอิงเพื่อสนับสนุนการอ้างสิทธิ์นี้ ฉันไม่ใช่ผู้เชี่ยวชาญด้านการบีบอัดข้อมูลดังนั้นฉันขอขอบคุณข้อมูลใด ๆ ที่คุณสามารถให้ในหัวข้อนี้หรือถ้าคุณสามารถชี้ให้ฉันไปยังแหล่งที่เชื่อถือได้มากกว่า Wikipedia


1
ฉันไม่แน่ใจว่าวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎีเป็นเว็บไซต์ที่ดีที่สุดที่จะถามคำถามแบบนี้หรือไม่ อย่าลังเลที่จะลงคะแนนเมื่อปิดหรือย้ายคำถามนี้ไปยังไซต์ที่เหมาะสมกว่านี้หากจำเป็น
Auron

3
นี้อาจจะเป็นสิ่งที่คุณกำลังมองหา: en.wikipedia.org/wiki/Entropy_encoding คำสำคัญคือเอนโทรปี
เซียน - จื้อฉาง張顯之

3
ฉันไม่รู้ว่าจะเป็นเว็บไซต์ที่เหมาะสมกว่านี้อย่างไร ข้อผิดพลาด quantizationเป็นแหล่งที่มาของเอนโทรปีซึ่งอาจจะดักคออัตราส่วนการบีบอัดขนาดใหญ่
Peter Shor

2
คุณต้องการบีบอัดข้อมูลแบบไม่สูญเสียข้อมูลชนิดใด? รูปภาพเพลงคำพูดข้อมูลทั่วไป ... ? อย่างไรก็ตามสำหรับการแนะนำระดับสูงโปรดดูdata-compression.com/theory.html (และแหล่งข้อมูลที่ด้านล่างของหน้า)
Marzio De Biasi

2
@ ภาพหรือ โดยเฉพาะอย่างยิ่งภาพทางการแพทย์ ฉันจะดูที่หน้านั้น ขอบคุณ
Auron

คำตอบ:


27

ฉันไม่แน่ใจว่าถ้าใครยังไม่ได้อธิบายว่าทำไมตัวเลขมหัศจรรย์ดูเหมือนจะเป็น 1: 2 และไม่เช่น 1: 1.1 หรือ 1:20

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

ฉันทำการทดลองง่าย ๆ :

  • ผมเอาบัตรสีเทา ต่อสายตามนุษย์ดูเหมือนกระดาษแข็งสีเทาที่เป็นกลาง โดยเฉพาะอย่างยิ่งมีไม่มีข้อมูล

  • จากนั้นฉันก็ใช้สแกนเนอร์ธรรมดา - เป็นอุปกรณ์ประเภทที่ผู้คนอาจใช้ในการแปลงรูปภาพเป็นดิจิทัล

  • ฉันสแกนบัตรสีเทา (ที่จริงแล้วฉันสแกนบัตรสีเทาพร้อมกับไปรษณียบัตรโปสการ์ดอยู่ที่นั่นเพื่อตรวจสอบสติปัญญาเพื่อให้แน่ใจว่าซอฟต์แวร์สแกนเนอร์ไม่ได้ทำอะไรแปลก ๆ เช่นเพิ่มความคมชัดโดยอัตโนมัติเมื่อเห็นการ์ดสีเทาที่ไม่มีจุดเด่น)

  • ฉันตัดส่วนการ์ดสีเทาขนาด 1000x1000 พิกเซลแล้วแปลงเป็นสีเทา (8 บิตต่อพิกเซล)

สิ่งที่เรามีในตอนนี้ควรเป็นตัวอย่างที่ดีพอสมควรว่าเกิดอะไรขึ้นเมื่อคุณศึกษาส่วนที่ไม่มีรูปร่างของภาพถ่ายขาวดำที่สแกนตัวอย่างเช่นท้องฟ้าใส ตามหลักการแล้วไม่ควรเห็นอะไรเลย

อย่างไรก็ตามด้วยการขยายที่ใหญ่กว่าจริง ๆ แล้วจะมีลักษณะดังนี้:

ครอบตัด 30x30 ขยายโดยปัจจัย 10

ไม่มีรูปแบบที่มองเห็นได้ชัดเจน แต่ไม่มีสีเทาเหมือนกัน ส่วนหนึ่งเกิดจากความไม่สมบูรณ์ของการ์ดสีเทา แต่ฉันคิดว่าส่วนใหญ่เป็นเสียงที่เกิดจากเครื่องสแกน (เสียงความร้อนในเซลล์เซ็นเซอร์แอมพลิฟายเออร์ A / D แปลง ฯลฯ ) ดูคล้ายกับเสียงเกาส์เซียนมาก นี่คือฮิสโตแกรม (ในสเกลลอการิทึม ):

histogram

ทีนี้ถ้าเราสมมติว่าแต่ละพิกเซลมีเฉดสีเลือก iid จากการกระจายนี้เรามีเอนโทรปีเท่าใด ฉันหลามสคริปต์บอกว่าเรามีมากที่สุดเท่าที่3.3 บิตต่อพิกเซลเอนโทรปี และนั่นก็มีเสียงดังมาก

หากเป็นกรณีนี้จริง ๆ แล้วมันจะบอกเป็นนัยว่าไม่ว่าเราจะใช้อัลกอริธึมการบีบอัดใดบิตแมปบิตแมปขนาด 1,000x1000 พิกเซลจะถูกบีบอัดในกรณีที่ดีที่สุดให้เป็นไฟล์ 412500- ไบต์ และสิ่งที่เกิดขึ้นในทางปฏิบัติ: ฉันได้รับไฟล์ PNG ขนาด 432018 ไบต์ใกล้กัน


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

  • ข้อมูล "มีประโยชน์" (ถ้ามี)
  • เสียงประมาณ 3 บิตต่อพิกเซล

ถึงแม้ว่าอัลกอริทึมการบีบอัดของคุณบีบข้อมูลที่มีประโยชน์ออกเป็น << 1 บิตต่อพิกเซลคุณจะยังคงมีสัญญาณรบกวนที่ไม่สามารถบีบอัดได้มากถึง 3 บิตต่อพิกเซล และเวอร์ชันที่ไม่มีการบีบอัดคือ 8 บิตต่อพิกเซล ดังนั้นอัตราส่วนการบีบอัดจะอยู่ใน ballpark ของ 1: 2 ไม่ว่าคุณจะทำอะไร


อีกตัวอย่างหนึ่งด้วยความพยายามที่จะค้นหาเงื่อนไขที่ทำให้เป็นอุดมคติมากเกินไป:

  • กล้อง DSLR ที่ทันสมัยโดยใช้การตั้งค่าความไวต่ำสุด (เสียงรบกวนน้อยที่สุด)
  • ภาพที่อยู่นอกโฟกัสของการ์ดสีเทา (แม้ว่าจะมีข้อมูลที่มองเห็นได้ในการ์ดสีเทา แต่ภาพนั้นจะเบลอ)
  • การแปลงไฟล์ RAW เป็นภาพ greyscale 8 บิตโดยไม่ต้องเพิ่มความคมชัดใด ๆ ฉันใช้การตั้งค่าทั่วไปในโปรแกรมแปลงไฟล์ RAW เชิงพาณิชย์ ตัวแปลงพยายามลดสัญญาณรบกวนตามค่าเริ่มต้น ยิ่งไปกว่านั้นเรากำลังบันทึกผลลัพธ์สุดท้ายเป็นไฟล์ 8 บิต - โดยพื้นฐานแล้วเราได้ทิ้งบิตลำดับต่ำสุดของการอ่านเซ็นเซอร์ดิบ!

และผลลัพธ์สุดท้ายคืออะไร? มันดูดีกว่าที่ฉันได้รับจากเครื่องสแกน เสียงรบกวนน้อยลงและไม่มีอะไรให้เห็น อย่างไรก็ตามเสียงแบบเกาส์เซียนอยู่ที่นั่น:

ครอบตัด 30x30 ขยายโดยปัจจัย 10 histogram

และเอนโทรปี? 2.7 บิตต่อพิกเซล ขนาดไฟล์ในทางปฏิบัติ 344923 ไบต์สำหรับ 1 ล้านพิกเซล ในสถานการณ์สมมติที่ดีที่สุดอย่างแท้จริงด้วยการโกงบางอย่างเราจึงเพิ่มอัตราส่วนการบีบอัดเป็น 1: 3


แน่นอนทั้งหมดนี้มีว่าอะไรจะทำอย่างไรกับการวิจัย TCS แต่ฉันคิดว่ามันเป็นสิ่งที่ดีที่จะเก็บไว้ในใจว่าสิ่งที่มันจำกัด การบีบอัดของโลกแห่งความจริงข้อมูลดิจิทัล ความก้าวหน้าในการออกแบบอัลกอริธึมการบีบอัดที่มากขึ้นและพลัง CPU แบบดิบจะไม่ช่วย ถ้าคุณต้องการที่จะบันทึกเสียงรบกวนทั้งหมดโดยไม่สูญเสียคุณไม่สามารถทำได้ดีกว่า 1: 2


3
เย็น! ถ้าเสียงนั้นเป็น gaussian ความรู้สึกของฉันก็คือการที่ฉายภาพเวกเตอร์เอกพจน์ k ตัวแรก (หรือเทคนิคแฟนซีที่คล้ายกันมากกว่านี้) ก็จะกำจัดเสียงรบกวนได้มาก การค้นหา Google Scholar รวดเร็วเปิดเผยบทความโดยเอ็ม Elad เมตรและ Aharon ที่ใช้วิธีการฉาย + บางคชกรรมสถิติการใช้กลอุบาย: ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4011956 คาดว่าในปี 2549 มันเป็น "สถานะของศิลปะ" แน่นอนมันไม่ได้สูญเปล่า แต่ข้อมูลของ Jukka แสดงให้เห็นว่าหากคุณยืนยันในขนาดที่เล็กคุณต้องลดเสียงรบกวนอย่างน้อย
Sasho Nikolov

ตัวอย่างของคุณเกี่ยวกับการบีบอัดภาพที่ไม่มีการสูญเสียเท่านั้น ฉันจะยอมให้ข้อมูลโดยทั่วไปของคุณกับข้อมูลใด ๆ ที่มาจากเซ็นเซอร์ทางกายภาพ (เสียง, ภาพ, วิดีโอ, แต่อาจมีปัจจัยที่แตกต่างกัน) แต่มีอีกหลายสาขาที่ใช้การบีบอัดด้วยอัตราส่วนที่ดีกว่า 1: 2 (ภาษาธรรมชาติอยู่ในใจ) เพราะมีเสียงรบกวนน้อย
Jeremy

2
@Jukka: +1: การทดสอบที่สวยงาม! @Sasho: สำหรับภาพทางการแพทย์ภูมิปัญญาดั้งเดิมก็คือคุณจะไม่สูญเสียอะไรเลยแม้ว่ามันจะเป็นเพียงเสียงรบกวนก็ตาม
Peter Shor

2
คำอธิบายที่ดีและชัดเจนมาก!
Marzio De Biasi

2
อีกหนึ่งความคิดเห็น: นี่เป็นสิ่งที่หลีกเลี่ยงไม่ได้สำหรับภาพทางการแพทย์ หากคุณไม่ได้ใช้ความแม่นยำพอที่จะมีสัญญาณรบกวนจำนวนมากในภาพทางการแพทย์คุณอาจสูญเสียรายละเอียดที่เกี่ยวข้องซึ่งคุณต้องการเก็บไว้
Peter Shor

16

คุณรู้เกี่ยวกับทฤษฎีการเข้ารหัสที่ไม่มีเสียงของแชนนอนแล้วหรือยัง? ทฤษฎีนี้สร้างรายการข้อ จำกัด ทางทฤษฎีเกี่ยวกับการบีบอัดแบบไม่สูญเสีย ความคิดเห็นบางส่วนจากคนอื่น ๆ ดูเหมือนจะถือว่าคุณรู้เกี่ยวกับทฤษฎีบทนี้ แต่จากคำถามฉันคิดว่ามันอาจเป็นคำตอบที่คุณกำลังมองหา


ฉันไม่รู้เกี่ยวกับทฤษฎีบทนั้น ฉันเดาว่าการอ้างสิทธิ์ของ Wikipedia นั้นไม่ถูกต้องอย่างแน่นอนเนื่องจากอัตราส่วนการบีบอัดที่ทำได้นั้นขึ้นอยู่กับเอนโทรปีของข้อมูลที่จะบีบอัด
Auron

ฉันเชื่อว่ามันค่อนข้างยากที่จะกำหนดเอนโทรปีของภาพ - มันง่ายกว่ามากถ้าข้อมูลเป็นเส้นตรงมากกว่า 2 มิติ
Peter Shor

ดังนั้นอัตราส่วนการบีบอัดสูงสุดสำหรับข้อความที่สร้างแบบสุ่ม (สม่ำเสมอ) คืออะไร
skan

11

n>0

  1. n

  2. วิธีปฏิบัติที่ใช้กันทั่วไปคือใช้ 8 บิตหากจำนวนเต็มเดียวที่คุณจะเข้ารหัสอยู่ระหว่าง 1 ถึง 256 (แปลงเป็น 16, 32 และ 64 บิตหากคุณต้องการ)

  3. n+1nn

  4. log2nlog2n+1nlog2n1log2n2log2n1nlgn=max(1,log2n)

  5. 2log2n1

  6. KKไม่สามารถคำนวณได้ วิธีแก้ปัญหาง่าย ๆ เกี่ยวกับความคิดนี้ได้รับจากโปรแกรมการกำหนดขอบเขตเองของLevinซึ่งคุณพิจารณาเฉพาะโปรแกรมที่มีเวลาดำเนินการที่ถูก จำกัด (ตัวอย่างเช่นภายในปัจจัยคงที่ของความยาวของอินสแตนซ์ดั้งเดิมซึ่งเป็นขอบเขตล่างของ ความซับซ้อนของอัลกอริทึมที่ต้องเขียนสัญลักษณ์แต่ละตัว)

มีชุมชนทั้งหมดที่ทำงานเกี่ยวกับความซับซ้อนของ Kolmogorov และตัวแปรและชุมชนอื่นที่ทำงานเกี่ยวกับการบีบอัดแบบไม่สูญเสีย (ตัวอย่างบนจำนวนเต็มที่ฉันใช้มีเทียบเท่ากับชนิดข้อมูลอื่น ๆ มากมาย) ฉันแทบจะมีรอยขีดข่วนบนพื้นผิว (Kolmogorov ไม่ใช่ของฉันจริง ๆ ) แต่ฉันหวังว่าสิ่งนี้อาจช่วยให้คุณชี้แจงคำถามของคุณได้ถ้าไม่จำเป็นต้องให้คำตอบที่คุณหวังไว้ :)


7

(เป็นเพียงส่วนขยายของความคิดเห็นของฉัน)

(ดังที่โจอธิบายไว้ในคำตอบของเขา) แชนนอน - ในบทความ 2491 ของเขา " ทฤษฎีคณิตศาสตร์การสื่อสาร " ได้กำหนดทฤษฎีของการบีบอัดข้อมูลและยอมรับว่ามีข้อ จำกัด พื้นฐานในการบีบอัดข้อมูลแบบไม่สูญเสีย ขีด จำกัด นี้เรียกว่าอัตราเอนโทรปีถูกเขียนแทนโดย H ค่าที่แน่นอนของ H ขึ้นอยู่กับแหล่งข้อมูล --- โดยเฉพาะอย่างยิ่งลักษณะทางสถิติของแหล่งที่มา มีความเป็นไปได้ที่จะบีบอัดแหล่งที่มาในลักษณะที่ไม่มีการสูญเสียโดยมีอัตราการบีบอัดใกล้เคียงกับ H มันเป็นไปไม่ได้ทางคณิตศาสตร์ที่จะทำได้ดีกว่า H

อย่างไรก็ตามรูปภาพบางประเภท (เช่นภาพระดับสีเทาทางการแพทย์) ที่ไม่มีขอบความเปรียบต่างสูงและสามารถทำการบีบอัดการเปลี่ยนระดับที่ราบรื่น (ไม่ได้มีประสิทธิภาพ)

JPEG-LSและJPEG2000ดูเหมือนจะเป็นมาตรฐานสำหรับการจัดเก็บภาพทางการแพทย์ที่ไม่มีการสูญเสีย ดูตารางนี้สำหรับการเปรียบเทียบอัตราส่วนการบีบอัด (JPEG-LS ทำให้การบีบอัดดีขึ้นเล็กน้อย)

การใช้ "การบีบอัดภาพทางการแพทย์ที่สูญเสีย" ฉันพบบทความต่อไปนี้ที่อาจช่วยคุณได้:

การสำรวจล่าสุด (2011) เกี่ยวกับเทคนิคการบีบอัดภาพทางการแพทย์: เทคนิคการบีบอัดภาพการแพทย์สองมิติ - การสำรวจ

... บทความนี้นำเสนอภาพรวมของเทคนิคการบีบอัดต่าง ๆ โดยใช้ DCT, DWT, ROI และ Neural Networks สำหรับภาพทางการแพทย์สองมิติ (2D)

นำเสนอรายละเอียดของอัลกอริธึมการบีบอัดแบบ lossless สองมาตรฐาน: JPEG-LS และ JPG2000 ในโหมด lossless: การบีบอัดแบบไม่สูญเสียภาพทางการแพทย์ระดับสีเทา - ประสิทธิภาพของวิธีการดั้งเดิมและทันสมัย

... ได้ทำการทดสอบภาพสามภาพหกพันเจ็ดสิบเก้า (3,679) ภาพระดับสีเทาจากภูมิภาคกายวิภาคหลายรูปแบบรังสีและผู้ขายได้รับการทดสอบ ...

การสำรวจอื่น: การสำรวจเทคนิคการบีบอัดภาพทางการแพทย์ร่วมสมัย

แก้ไข

บางทีคุณอาจยังสงสัยว่า "อะไรคือเอนโทรปีของภาพ" ... ตกลงมันคือจำนวนข้อมูลที่มีอยู่ในภาพ ... แต่เพื่อให้เข้าใจได้ดีขึ้นคุณควรอ่านบางอย่างเกี่ยวกับ 3 ขั้นตอนที่มักใช้ในการบีบอัดภาพ :

  • การแปลง (ตัวอย่างเช่นการแปลงเวฟเล็ตไม่ต่อเนื่อง)
  • ควอน
  • การเข้ารหัสเอนโทรปี

คุณสามารถใช้ Google เพื่อค้นหาบทช่วยสอนหรือหนังสือเกี่ยวกับการบีบอัดรูปภาพ (ตัวอย่างเช่นบทช่วยสอนด่วน ) หรือลองดูวิดีโอทางเทคนิคออนไลน์ (ตัวอย่างเช่นบทบรรยายที่ 16 - การแนะนำรูปภาพและวิดีโอโค้ด )


7

คิดว่าไฟล์เป็นสตริง

คุณไม่สามารถทำได้ดีกว่าความซับซ้อนของสตริง Kolmogorov (นี่คือคำจำกัดความของความซับซ้อนของ Komogorov)

แก้ไขความยาวสตริง ตอนนี้เราแค่ดูที่ความยาว n เท่านั้น

ครึ่งหนึ่งของสตริงดังกล่าวทั้งหมดสามารถบีบอัดได้โดยมากที่สุด 1 บิต 1/4 ของสตริงทั้งหมดสามารถบีบอัดได้สูงสุด 2 บิต 1/8 ของสตริงดังกล่าวทั้งหมดสามารถบีบอัดได้สูงสุด 3 บิต

ดังนั้นสัดส่วนของสตริง (รูปภาพไฟล์และอื่น ๆ ) ที่สามารถบีบอัดได้ในอัตราส่วน 2: 1 - น้อยมาก เหตุใดการบีบอัดจึงใช้งานได้ เนื่องจากข้อมูลเกือบทั้งหมดที่คนจริงๆกำลังพยายามบีบอัดมีโครงสร้างที่สูง - มันไม่ได้ดูเหมือนไฟล์สุ่ม ยิ่งสุ่มดูข้อมูลยากที่จะบีบอัด พวกเขาไปจับมือกัน สตริงส่วนใหญ่มีลักษณะแบบสุ่ม

หากต้องการดูสิ่งนี้ในทางปฏิบัติให้สร้างไฟล์สุ่มโดยใช้กระบวนการสุ่มบางอย่าง ฉันหมายถึงไฟล์ที่สุ่มจริงๆ ตอนนี้พยายามบีบอัดโดยใช้อัลกอริทึมการบีบอัดที่คุณชื่นชอบ มันจะอยู่ในขนาดเดียวกันหรือใหญ่กว่าเกือบตลอดเวลา

ด้านพลิกมีสตริงที่บีบอัดได้สูง ใช้สตริงต่อไปนี้: 100000..000 (1 ตามด้วยศูนย์หนึ่งล้าน) คำอธิบายของมันเหมาะกับประโยคก่อนหน้าและคอมพิวเตอร์สามารถสร้างมันขึ้นมาใหม่จากคำอธิบายนั้น (หรืออย่างใดอย่างหนึ่งชอบมาก) แต่คำอธิบายนั้นไม่มีที่ใดยาวเกือบหนึ่งล้านหลัก

ความจริงก็คือสตริงที่มีคุณสมบัตินั้น (ของการบีบอัดสูง) จะหายากมากในทุกสายที่เป็นไปได้ ข้อเท็จจริงที่สองคือข้อมูลเกือบทั้งหมดที่มนุษย์สร้างขึ้นนั้นมีความสามารถในการบีบอัดได้สูงมากเพราะมีโครงสร้าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.