เป็นไปได้ซ้ำ:
ทำไมบีบอัด ZIP ไม่บีบอัดอะไรเลย
ฉันพยายาม 7zipping ไฟล์. exe แต่มันก็ใหญ่ขึ้น
นี่เป็นผลลัพธ์ที่คาดหวังหรือไม่
เป็นไปได้ซ้ำ:
ทำไมบีบอัด ZIP ไม่บีบอัดอะไรเลย
ฉันพยายาม 7zipping ไฟล์. exe แต่มันก็ใหญ่ขึ้น
นี่เป็นผลลัพธ์ที่คาดหวังหรือไม่
คำตอบ:
มันลงมาให้แนวคิดที่เรียกว่าเอนโทรปี ดูวิกิพีเดีย
แนวคิดพื้นฐานคือถ้ามีการดำเนินการบีบอัดที่สามารถทำให้ไฟล์เล็กลงได้เสมอตรรกะนั้นบอกว่าการดำเนินการบีบอัดจะสามารถลดไฟล์ใด ๆ ลงเหลือ 0 ไบต์และยังคงเก็บข้อมูลทั้งหมดไว้ แต่นี่เป็นเรื่องไร้สาระเพราะเรารู้ว่า 0 ไบต์ไม่สามารถถ่ายทอดข้อมูลใด ๆ เลย ดังนั้นเราได้พิสูจน์แล้วว่าไม่มีอัลกอริธึมการบีบอัดที่ทำให้อินพุตมีขนาดเล็กลงเสมอเพราะถ้าเป็นกรณีนี้ข้อมูลใด ๆ ที่สามารถเก็บไว้ใน 0 ไบต์ - แต่ 0 ไบต์แสดงถึงการไม่มีข้อมูลดังนั้นคุณสามารถ ' ไม่มีข้อมูลและข้อมูลทั้งหมดพร้อมกัน ดังนั้นมันไร้สาระ
เนื่องจากแนวคิดทางทฤษฎีนี้โปรแกรมบีบอัดทุกโปรแกรมที่คุณใช้จะเพิ่ม ขนาดของ (หรือที่ดีที่สุดรักษาขนาดเท่ากัน) อินพุตบางส่วน นั่นคือสำหรับอัลกอริธึมการบีบอัดใด ๆ ที่คุณออกแบบหรือใช้งานจะมีอินพุตบางอย่างที่จะเล็กลงและบางอันจะไม่
ข้อมูลที่ถูกบีบอัดแล้วโดยทั่วไปจะเป็นตัวเลือกที่น่ากลัวสำหรับการบีบอัดเพิ่มเติมเนื่องจากอัลกอริทึมการบีบอัดแบบไม่สูญเสียส่วนใหญ่จะใช้หลักการทางทฤษฎีเดียวกัน มันเป็นไปได้ที่จะบีบอัดข้อมูลได้ไม่ดีที่ถูกบีบอัดให้ดียิ่งขึ้น; แต่สิ่งนี้มีประสิทธิภาพน้อยกว่าการบีบอัดด้วยอัลกอริธึมที่ดีที่สุดที่มีจากข้อมูลดั้งเดิมเพื่อเริ่มต้น
ตัวอย่างเช่นหากคุณมีไฟล์ข้อความขนาด 100 MB และบีบอัดไฟล์โดยใช้อัลกอริทึม Zip ปกติไฟล์นั้นอาจถูกบีบอัดลงเหลือ 50 MB หากคุณบีบอัดไฟล์ Zip ด้วย LZMA2 คุณอาจลดลงเหลือ 40 หรือ 45 MB เนื่องจาก LZMA มีอัตราส่วนการบีบอัดสูงกว่าสำหรับข้อมูลที่บีบอัดได้ส่วนใหญ่ที่ Zip ทำ ดังนั้นจึงเป็นเหตุผลว่ามันสามารถบีบอัดข้อมูล Zip ได้เนื่องจาก Zip ไม่ดูดเอนโทรปีทั้งหมดออกจากมัน แต่ถ้าคุณกำจัดคอนเทนเนอร์ Zip ทั้งหมดคุณอาจทำให้มันเล็กลงด้วยการบีบอัดข้อความดิบด้วย LZMA2 ซึ่งอาจให้บางสิ่งบางอย่างตามลำดับที่ 30 - 35 MB (นี่เป็นเพียง "หมายเลขอากาศ" เพื่อแสดงแนวคิด) .
ในกรณีของไบนารีที่คุณกำลังพยายามบีบอัดมันมีขนาดใหญ่กว่าเนื่องจากรูปแบบไฟล์ 7-Zip ต้องสร้างโครงสร้างภายในของตัวเองและแพ็คข้อมูลของไฟล์เรียกทำงานที่บีบอัดแล้วลงในรูปแบบ 7-Zip สิ่งนี้มีสิ่งต่าง ๆ เช่นพจนานุกรมส่วนหัวของไฟล์และอื่น ๆ ข้อมูลพิเศษเหล่านี้มักจะชดเชยมากกว่าโดยการประหยัดการบีบอัดข้อมูลเอง แต่ปรากฏว่าปฏิบัติการที่คุณพยายามบีบอัดถูกบีบอัดด้วย LZMA บางรูปแบบแล้ว ไม่เช่นนั้นจะลดขนาดของไฟล์ที่รันได้หรือเพิ่มขึ้นเล็กน้อยเล็กน้อยแทนที่จะเพิ่มขึ้น 2 MB (ซึ่งมีจำนวนมาก)
2^(n+1)-1
ข้อความที่เป็นไปได้ของขนาด n-bits หรือน้อยกว่า อัลกอริทึมของเราต้องแมปแต่ละรายการเหล่านี้กับผลลัพธ์ที่ไม่ซ้ำกัน หากแม้แต่หนึ่งในสิ่งเหล่านี้ถูกแม็พกับค่าที่มีบิตน้อยกว่าค่าอื่นจะต้องถูกแม็พกับค่าที่มีมากกว่า
ขั้นตอนวิธีการบีบอัดที่ใช้ในการ 7z เป็นlossless ซึ่งหมายความว่าคุณสามารถบีบอัดคลายไฟล์ซ้ำได้หลายครั้ง นอกจากนี้หลังจากการวนซ้ำแต่ละครั้งไฟล์จะยังคงเหมือนเดิมทุกประการ
น่าเสียดายที่คุณไม่สามารถคาดหวังว่าอัลกอริทึมการบีบอัดแบบไม่สูญเสียจะถูกนำไปใช้หลายครั้งพร้อมกับผลลัพธ์ที่เป็นบวกเสมอ มีขอบเขตที่เข้มงวดซึ่งไม่สามารถกระโดดข้ามได้ โดยทั่วไปขอบเขตนี้ขึ้นอยู่กับลำดับการป้อนข้อมูลที่สุ่มข้อมูล เหนือสิ่งอื่นใดอัลกอริทึมแบบไม่สูญเสียจะใช้สำหรับการบีบอัดไฟล์, การถ่ายโอนข้อมูลอินเทอร์เน็ต HTML, การสำรองข้อมูลและการดำเนินการอื่น ๆ ที่คาดว่าไฟล์เอาท์พุท
ในทางตรงกันข้ามกับlosslessบีบอัดคุณอาจคาดหวังลดลงขนาดไฟล์หลังจากการบีบอัดกับlossful (หรือสูญเสีย) กลไกการบีบอัด ข้อเสียคือคุณไม่สามารถกู้คืนไฟล์ต้นฉบับได้อย่างแน่นอนหลังจากการวนซ้ำแบบคลายการบีบอัดไฟล์เดียว อัลกอริทึมเหล่านี้มีชื่อเสียงมากที่สุดสำหรับการส่งและจัดเก็บข้อมูลเสียง / วิดีโอ / ภาพ
bzip2 , LZMA , LZMA2และขั้นตอนอื่น ๆ ใช้โดย7zรูปแบบที่มีอยู่ทั้งหมดlossless ดังนั้นจะมีข้อ จำกัด หลังจากที่ไม่สามารถบีบอัดได้อีก นอกเหนือจากนั้นรูปภาพที่ปฏิบัติการได้ (.exe) มักเป็นไฟล์ที่ถูกบีบอัดสูง 7zipเครื่องมือบีบอัดอื่น ๆ อีกมากมายฝังข้อมูลเมตาบางส่วนซึ่งอันที่จริงสามารถทำให้ไฟล์เอาต์พุตใหญ่ขึ้นได้
ในกรณีนี้คุณจะเห็นเสมอว่าไฟล์บีบอัดมีขนาดเล็กกว่าไฟล์อินพุต ดูความคิดเห็นร้องว่าทำไมมันเป็นไปไม่ได้
หากปฏิบัติการดั้งเดิมถูกบีบอัดแล้ว (หรือมีข้อมูลที่ถูกบีบอัดอย่างหนักหรือข้อมูลที่ไม่สามารถบีบอัดได้) การบีบอัดจะเพิ่มขนาด
อัลกอริธึมการบีบอัดส่วนใหญ่ใช้อะไรเรียกว่าตารางสัญลักษณ์โดยพื้นฐานแล้วเพียงแค่ไฟล์ที่ใช้เป็นองค์ประกอบที่สามารถบีบอัดได้ แน่นอนว่าสิ่งนี้จะสร้างโอเวอร์เฮดในไฟล์ แต่โดยทั่วไปแล้วจะทำให้ไฟล์เล็กลง
ในไฟล์บีบอัดแล้วมันยังคงสร้างชุดของสัญลักษณ์ แต่มีน้อยมากที่สามารถลดขนาดของ ในกรณีของคุณตารางสัญลักษณ์ของไฟล์บีบอัดที่มีอยู่แล้วอาจอยู่ในพื้นที่ใกล้เคียง 2 MB หรือมากกว่านั้นหากมีการบีบอัดไฟล์
การบีบอัด ideea:
ซอฟต์แวร์บีบอัดสร้างรายการไฟล์และกำจัดเนื้อหาที่ซ้ำกัน
เมื่อบีบอัดไฟล์ที่บีบอัดแล้วคุณอาจทำให้ไฟล์บีบอัดของคุณใหญ่กว่าไฟล์ต้นฉบับ