জিপিপের সর্বোচ্চ সংকোচনের অনুপাত কত?


51

সবচেয়ে বড় আকারের জিজিপ (উদাহরণস্বরূপ 10 কেবি বলুন) কীভাবে সঙ্কুচিত হতে পারে?

উত্তর:


91

এটি ডেটা সংকুচিত হওয়ার উপর নির্ভর করে। জিরো পূর্ণ 1Gb ফাইলের সাথে একটি দ্রুত পরীক্ষা একটি সংকীর্ণ আকারকে K 120Kb দেয়, যাতে আপনার 10 কেবি ফাইলটি সম্ভাব্য ~ 85 এমবিাইটে বিস্তৃত হতে পারে।

উদাহরণস্বরূপ, যদি সংরক্ষণাগারটিতে আর্দ্রতা কম থাকে তবে উদাহরণস্বরূপ, সংরক্ষণাগারটিতে একটি ফর্ম্যাটে চিত্র ফাইল রয়েছে যা দেশীয়ভাবে সংকুচিত হয় (gif, jpg, png, ...), তবে gzip আরও সংক্ষেপণ যোগ করতে পারে না। প্রোগ্রাম এক্সিকিউটেবলের মতো বাইনারি ফাইলগুলির জন্য আপনি প্লেইন টেক্সট, এইচটিএমএল বা অন্যান্য মার্কআপস 3: 1 বা 4: 1 বা আরও বেশিের জন্য 2: 1 অবধি সংক্ষেপণ দেখতে পাবেন unlikely আপনি কিছু ক্ষেত্রে 10: 1 দেখতে পাবেন কিন্তু একক প্রতীক দ্বারা ভরা ফাইলের সাথে ~ 8700: 1 টি এমন জিনিস যা আপনি বাইরে একইভাবে কৃত্রিম পরিস্থিতিতে দেখতে যাচ্ছেন না।

কোনও জিপিপ ফাইল আনপ্যাক করার ফলে কতটা তথ্য আসবে তা পরীক্ষা করতে পারবেন, প্রকৃতপক্ষে এটির সঙ্কুচিত বিষয়বস্তুটি ডিস্কে না লিখেই gunzip -c file.gz | wc --bytes- এটি ফাইলটিকে সঙ্কুচিত করবে তবে ফলাফল সংরক্ষণ করবে না, পরিবর্তে wcএগুলি পাস করার সাথে সাথে তারা পাস করার সাথে সাথে বাইটের সংখ্যা গণনা করবে তারপরে তাদের ফেলে দিন। সংক্ষিপ্ত সামগ্রীটি যদি অনেকগুলি ছোট ফাইলযুক্ত একটি টার ফাইল হয় তবে আপনি দেখতে পাবেন যে পুরো সংরক্ষণাগারটি আনপ্যাক করার জন্য সম্ভবত আরও বেশি ডিস্কের জায়গা প্রয়োজন, তবে বেশিরভাগ পরিস্থিতিতে, পাইপিং gunzipআউটপুট থেকে ফিরে আসা গণনাটি wcআপনার প্রয়োজনের মতো যথাযথ হতে চলেছে।


আমি এইচটিএমএলটি 10x-এ প্রসারিত দেখেছি (অবশ্যই x3 এবং x4 ছিল সর্বাধিক সাধারণ!) .... সম্ভবত যারা 8+ বিস্ফোরিত হয়েছিল তাদের জন্য প্রচুর রিডানড্যান্ট ডেটা। আমি মনে করি যে পৃষ্ঠাটি যা করছে তা ছিল একটি পিএইচপি তথ্য পৃষ্ঠা।
Zombies

পুনরাবৃত্তিমূলক মার্কআপ, যেমন আউটপুটে দেখা যায় phpinfo(), খুব ভালভাবে সংকোচন করে। এই আউটপুটে প্রযুক্তিগত তথ্যগুলিতে প্রাকৃতিক ভাষার গড় অংশের চেয়ে বেশি সরাসরি পুনরাবৃত্তি রয়েছে এবং বর্ণমালা বিতরণ সম্ভবত কম মসৃণ যা হাফম্যান পর্যায়কে আরও ভাল ফলাফল পেতে সহায়তা করতে পারে।
ডেভিড স্পিললেট

এই উত্তরটি ইচ্ছাকৃতভাবে দূষিত সংক্রামিত ডেটার জন্য অ্যাকাউন্ট করে না । কেউ 10KB এর আশেপাশে একটি দূষিত জিপ ফাইল তৈরি করতে পারে যা 4 জিবি থেকে কিছুটা প্রসারিত করতে পারে।
ডেভিড শোয়ার্জ

সেই স্কেলের জিপ বোমা যদিও নেস্টেড সংরক্ষণাগারগুলির উপর নির্ভর করে, তাই কোনও ফাইল ফাইল আনপ্যাক করার সময় আপনি খুব অদ্ভুত কিছু লক্ষ্য করতে পারেন। যদিও এগুলি স্বয়ংক্রিয় স্ক্যানারগুলির বিরুদ্ধে (মেল পরিষেবাগুলিতে এবং এর বাইরে) কার্যকর ডস আক্রমণ হিসাবে ব্যবহার করা যেতে পারে।
ডেভিড স্পিললেট

1
@ ডেভিডস্পিলিট: নেস্টেড জিপ বোমা পেটাবাইট সীমাতে আকারে বিস্তৃত হয়েছে। এটাই আমি কথা বলছি না। এমনকি একটি সাধারণ জিপ বোমার একটি মাত্র স্তর দেখুন।
ডেভিড শোয়ার্টজ

10

সাধারণত আপনি 95% এর চেয়ে বেশি সংক্ষেপণ পান না (যাতে 10 কেবি গিজিপড ডেটা B 200 কেবিতে ছড়িয়ে যায়) তবে বিশেষভাবে তৈরি করা ফাইল রয়েছে যা তত্পরভাবে প্রসারিত হয়। সন্ধান করুন 42.zip, এটি (অর্থহীন) ডেটার কয়েকটি পেটাবাইটগুলিতে সংক্ষেপিত হয়।


4
উইকিপিডিয়া বলছে 42.zip "16 টি সেটে নেস্টেড জিপ ফাইলের পাঁচ স্তর রয়েছে", তাই এটি ডিকম্প্রেশন (কেবল পুনরাবৃত্তাকারী সংক্ষেপনের জন্য) এর বৈধ উদাহরণ নয়।
Tgr

5
প্রকৃতপক্ষে, 42.zip হ'ল জিপ ফাইলগুলি পুনরাবৃত্তভাবে স্ক্যান করে এমন সরঞ্জামগুলির জন্য বিশেষত বিপদ, উদাহরণস্বরূপ ভাইরাস স্ক্যানার।
thomasrutter

4
এটি জিপ,
জিজিপ

8

Https://stackoverflow.com/a/16794960/293815 থেকে উদ্ধৃত ভারব্যাটিম

ডিফল্ট ফর্ম্যাটটির সর্বোচ্চ সংকোচনের অনুপাত 1032: 1। এটি কারণ দীর্ঘতম রান যা এনকোড করা যায় তা 258 বাইট। এই জাতীয় প্রতিটি রানের জন্য কমপক্ষে দুটি বিট প্রয়োজন (দৈর্ঘ্যের কোডের জন্য একটি বিট এবং দূরত্বের কোডের জন্য একটি বিট), অতএব 4 * 258 = 1032 কমপ্রেসড বাইট প্রতি এক সংকুচিত বাইটকে এনকোড করা যায়।

গিজিপের ফলাফল গিজিপ করে আপনি আরও সংক্ষেপণ পেতে পারেন। সাধারণত এটি সংকোচনের উন্নতি করে না, তবে খুব দীর্ঘ রানের জন্য এটি করতে পারে।

যাইহোক, Deflate দ্বারা ব্যবহৃত LZ77 পদ্ধতির রান-লেংথ এনকোডিংয়ের চেয়ে বেশি সাধারণ। কেবল একটি দৈর্ঘ্যের পরিবর্তে একটি দৈর্ঘ্য / দূরত্বের জুড়ি ব্যবহৃত হয়। এটি কিছু দূরত্ব থেকে একটি স্ট্রিং অনুলিপি করতে, বা এক দূরত্বের জন্য রান-দৈর্ঘ্যের হিসাবে বাইট প্রতিলিপি করতে বা বাইটের ট্রিপলগুলি তিনটির দূরত্বে প্রতিলিপি করতে অনুমতি দেয় etc.


6

যে কোনও সংক্ষেপণ অ্যালগরিদমের সংকোচনের অনুপাত হ'ল সংকুচিত হওয়া ডেটার ফাংশন হবে (সেই ডেটার দৈর্ঘ্যের পাশাপাশি)।

এখানে ম্যাক্সিমিউম কমপ্রেসনে একটি বিশ্লেষণ করা হল , এর
মধ্যে একটির নমুনা দেখুন:

একাধিক ফাইল সংক্ষেপণ মানদণ্ড পরীক্ষার সংক্ষিপ্তসার

ফাইলের ধরণ: একাধিক ফাইলের ধরণ (মোট 46 টি)  
এই পরীক্ষায় সংকোচনের জন্য ফাইলগুলির #: 510  
মোট ফাইলের আকার (বাইট): 316.355.757 
গড় ফাইলের আকার (বাইট): 620,305
বৃহত্তম ফাইল (বাইট): 18,403,071
ক্ষুদ্রতম ফাইল (বাইটস): ৩,55৫৪

4

একটি মাত্র প্রতীক সমন্বিত একটি বিশাল ফাইল খুব ভালভাবে সংকোচিত হবে।


4

10 এমবি জিরো ফাইলে, gzip -9 থেকে 10217 দিয়ে সংকোচন করুন So সুতরাং সর্বোচ্চ অনুপাতটি 1000x এর কাছাকাছি বলে মনে হচ্ছে।


1

আপনার প্রশ্নের উত্তর, ইনপুট নির্ভর করে। কীভাবে কম্প্রেশন করা হয় তা আপনাকে ধারণা দেওয়ার জন্য এই ছয় মিনিটের ভিডিওগুলি দেখুন।

https://www.youtube.com/watch?v=ZdooBTdW5bM

আপনি এটি থেকে কী পাবেন তা হ'ল সংকোচনের হার প্রতিটি অক্ষরের ফ্রিকোয়েন্সি উপর নির্ভর করে, সুতরাং জেনারেল সর্বাধিক হার নেই, এটি ইনপুটটির উপর নির্ভর করে, ইংরেজী পাঠ্যের জন্য এটি প্রায় 65 শতাংশ।


1
সুপার ব্যবহারকারীকে স্বাগতম! রেফারেন্স লিঙ্ক (গুলি) থেকে উত্তরের প্রয়োজনীয় অংশগুলি উদ্ধৃত করুন, কারণ লিঙ্কযুক্ত পৃষ্ঠা (গুলি) পরিবর্তন হলে উত্তরটি অবৈধ হতে পারে।
ডেভিডপস্টিল

"প্রতিটি চরিত্রের ফ্রিকোয়েন্সি" না বলে "প্রতিটি স্ট্রিংয়ের ফ্রিকোয়েন্সি" বলা আরও সঠিক হবে
জোয়েলফ্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.