একটি 398MB ডিরেক্টরি কেবল 7Z এবং সাধারণ জিপ সংকোচনের সাহায্যে 393MB তে সংক্ষেপিত হয়েছিল। এটা কি স্বাভাবিক? যদি তা হয় তবে লোকেরা কেন উইন্ডোজে জিপ ব্যবহার চালিয়ে যায়?
একটি 398MB ডিরেক্টরি কেবল 7Z এবং সাধারণ জিপ সংকোচনের সাহায্যে 393MB তে সংক্ষেপিত হয়েছিল। এটা কি স্বাভাবিক? যদি তা হয় তবে লোকেরা কেন উইন্ডোজে জিপ ব্যবহার চালিয়ে যায়?
উত্তর:
আপনি যদি ইতিমধ্যে সংক্রামিত জিনিসগুলি সংকুচিত করে থাকেন (AVI, JPEG, MP3), আপনি একক ফাইলে সমস্ত কিছু প্যাকিংয়ের চেয়ে বেশি কিছু পাবেন না।
সংকোচনের জন্য আইটেমগুলির মধ্যে সংকোচনের জন্য পুনরাবৃত্ত প্যাটার্নগুলি সন্ধান করে কাজ করে। এছাড়াও আপনার ফাইলগুলি সংকুচিত করার সময় আপনি কোনও ডেটা হারাতে চান না কারণ, সংক্ষেপণটি অবশ্যই ক্ষতিহীন (*) হতে হবে ।
এখন আপনার মাথার পেছনের দিক দিয়ে, কম্পিউটারে ফাইলগুলি (আইটেমগুলি) কীভাবে সংরক্ষণ করা হবে সে সম্পর্কে চিন্তা করুন। সর্বনিম্ন স্তরে, তারা সবাই কেবল 0 এবং 1 এর একগুচ্ছ।
প্রশ্নটি এভাবে রূপান্তরিত হতে পারে: " আমি কীভাবে মূল উপস্থাপনার চেয়ে আরও 1 টি এবং 0 এর একগুচ্ছকে আরও কমপ্যাক্ট উপায়ে উপস্থাপন করতে পারি? "
সুতরাং শুরু থেকে শুরু করা যাক, আপনি কীভাবে একটি একক বিটের সাধারণ উপস্থাপনা (একক 1 বা একক 0) কমপ্যাক্ট করতে পারেন ?
উত্তরটি সত্যিই সহজ: আপনি পারবেন না! ... একটি বিট সম্ভবত সবচেয়ে কমপ্যাক্ট পদ্ধতিতে উপস্থাপন করা হয়।
পর্যাপ্ত পরিমাণে, আসুন আমরা একটি বড় উদাহরণটি ধরি, আপনি কীভাবে 0111 0111 0100 0111 এর মতো বাইনারি স্ট্রিংটি সংকোচিত করবেন ?
ঠিক আছে কারণ আমরা ইতিমধ্যে জানি যে পৃথক বিটগুলি দেখানো আমাদের মোটেও সহায়তা করবে না, আমরা জানি যে আমাদের আরও বড় স্কেলের দিকে তাকাতে হবে। উদাহরণস্বরূপ, একবারে 4 টি বিট নেওয়া যাক। আমরা এখন দেখছি যে বাইনারি স্ট্রিং "0111" উদাহরণে 3 বার ঘটবে, সুতরাং আমরা কেন এটি একক বিট: 0 দিয়ে উপস্থাপন করব না? তবে এটি এখনও 0100 কে অন্ধকারে ফেলেছে, সুতরাং আসুন
আমরা "1" এর সাথে এটি উপস্থাপন করি যা আমরা জানি যে মূলটি সংকোচিত করেছেন: "0010"
সেটা সত্যি দারুণ! তবে এটি "হাফম্যান এনকোডিং অ্যালগরিদম" এর মূল বিষয়গুলির মূল বিষয় , এবং আসল বিশ্বে এটি এর চেয়ে কিছুটা জটিল হবে (এবং আপনাকে এতে এনকোডিংয়ের তথ্য সহ একটি টেবিলও সংরক্ষণ করতে হবে তবে এটি একটি এই প্রশ্নের উত্তর দেওয়ার জন্য কিছুটা দূরে)।
এখন সত্যিই আপনার প্রশ্নের উত্তর দেওয়ার জন্য : কেন সমস্ত ডেটা এত ভাল সংকুচিত করা যায় না?, তবে আসুন অন্য একটি উদাহরণ নেওয়া যাক: "0001 0110 1000 1111", যদি আমরা উপরের মতো একই কৌশল ব্যবহার করি তবে আমরা ডেটা সংকুচিত করতে সক্ষম হব না (কোনও পুনরাবৃত্তি পাওয়া যায় না), এবং এইভাবে সংকোচন থেকে কোনও উপকার পাবেন না ...
(*) অবশ্যই এটির ব্যতিক্রম আছে। এর সর্বাধিক পরিচিত উদাহরণ হ'ল এমপি 3 ফাইলগুলির জন্য ব্যবহৃত সংক্ষেপণ। এখানে শব্দগুলি সম্পর্কিত কিছু তথ্য কাঁচা, মূল ফাইল থেকে এমপি 3 ফর্ম্যাটে রূপান্তর করার সময় হারিয়ে যাবে, এই সংকোচনটি এইভাবে ক্ষতিকারক । আর একটি উদাহরণ চিত্রগুলির জন্য .JPG ফর্ম্যাট
লসলেস কম্প্রেশন সম্পর্কিত উইকিপিডিয়া নিবন্ধের সীমাবদ্ধতা বিভাগ থেকে :
ক্ষতিহীন ডেটা সংক্ষেপণ অ্যালগরিদমগুলি সমস্ত ইনপুট ডেটা সেটের জন্য সংক্ষেপণের গ্যারান্টি দিতে পারে না। অন্য কথায়, কোনও (লোকসানহীন) ডেটা সংক্ষেপণ অ্যালগরিদমের জন্য, একটি ইনপুট ডেটা সেট থাকবে যা অ্যালগরিদম দ্বারা প্রক্রিয়া করার সময় ছোট হয় না। এটি গণনা যুক্তি ব্যবহার করে প্রাথমিক গণিতের সাথে সহজে প্রমাণিত হয়। ...
মূলত, তাত্ত্বিকভাবে সমস্ত সম্ভাব্য ইনপুট ডেটা ক্ষতিহীনভাবে সংকুচিত করা অসম্ভব।
এটা কি স্বাভাবিক?
না। "সাধারণ" ফাইলগুলির সাথে নয়। আপনি কোন ধরণের ফাইলগুলি সংক্ষিপ্ত করছেন? যদি তারা ইতিমধ্যে সংকুচিত হয়ে থাকে, যেমন তারা জেপিজি, জিআইএফ, পিএনজি, ভিডিও বা অন্যান্য জিপ ফাইল, তবে এগুলি কোনও অ্যালগোরিদম দ্বারা খুব বেশি সংকুচিত হবে না। আপনি যদি পাঠ্য, এক্সএমএল, সঙ্কুচিত বিএমপি, উত্স কোড ইত্যাদির ফাইলগুলি সংকুচিত করার চেষ্টা করেন তবে জিপ ভাল সংকোচন সরবরাহ করবে তবে সম্ভবত পরম সর্বোত্তম নয়।
লোকেরা কেন উইন্ডোজে জিপ ব্যবহার চালিয়ে যায়?
একটি কারণ হ'ল সিস্টেমটিতে দুর্দান্ত জিপ হ্যান্ডলিং রয়েছে - আপনি যে কোনও জায়গায় ডানদিকে ক্লিক করতে পারেন এবং একটি নতুন জিপ ফাইল তৈরি করতে পারেন, তারপরে স্টাফ ফেলে দিন। আপনি কেবল একটি জিপ ফাইল ডাবল ক্লিক করতে পারেন এবং এটি একটি ফোল্ডারের মতো খোলে। আপনি এগুলি থেকে জিনিসগুলি অনুলিপি করতে পারেন এবং কখনও কখনও এটি জায়গায় ব্যবহার করতে পারেন। আপনার উইনজিপ বা 7z বা অন্য কোনও প্রোগ্রাম ইনস্টল করার দরকার নেই। আমি সাধারণত মানুষকে না করার পরামর্শ দিই।
একটি জিপ সংরক্ষণাগারে অনেকগুলি ফাইল রয়েছে, প্রতিটি ফাইল স্বাধীনভাবে সংকুচিত হয়। যদি ফাইলগুলির মধ্যে একটি বৃহত্তর মিল রয়েছে, তবে একটি ভিন্ন সরঞ্জাম আরও ভাল সংকোচন দিতে পারে।
উদাহরণস্বরূপ, তার.gz ফাইলগুলি একসাথে যোগদান করে, তারপরে ফলাফলগুলি সংকোচিত করে। তেমনি একটি "সলিড" রার ফাইল ফাইলগুলির মধ্যে সাদৃশ্য ব্যবহার করে।
টার.gz বা একটি শক্ত রার এর অবলম্বন হ'ল আপনি আর যে ফাইলটি চান তা সংরক্ষণাগারটি সঙ্কুচিত না করে কোনও বৃহত সংরক্ষণাগার থেকে কোনও ফাইল আর বের করতে পারবেন না।