'অভিধানের আকার' কীভাবে সংক্ষেপণকে প্রভাবিত করে?


39

আমি জানি যে উচ্চতর আকার আরও ভাল সংকোচনের অনুপাত এবং ত্রুটি ভার্চা হতে পারে। তবে আমি কী আরও ভাল সিদ্ধান্ত নিতে পারি? .. যেহেতু অনেকগুলি পছন্দ আছে are 7zip


এখন পর্যন্ত আমি অভিধানের আকার ≈ ফাইলের আকারের সর্বোত্তম সংকোচনের বিষয়টি লক্ষ্য করেছি। ফাইলের আকার
এখানে mb8mb ফাইলের test.avi8Mmb এর চেয়ে বেশি সমস্ত অভিধানের আকারের জন্য একই সংকোচনের অনুপাত রয়েছে। তারপরেই তা পড়তে শুরু করে।


2
হ্যাঁ, যেহেতু পুরো ফাইলটি স্মৃতিতে রয়েছে। তবে মাল্টি-জিগ ফাইলগুলির সাথে ডিল করা যদি এটি সম্ভব নাও হয়। বিনিয়োগের রিটার্ন আপনি যত বেশি যান হ্রাস করে। আপনার যদি শেষ 1% প্রয়োজন হয় তবে আকার = ফাইলের আকার। দ্রষ্টব্য: আপনার যখন আরও বড় ডেটা সেট করা থাকে তখন একটি 128mb + অভিধানের আকার ফাইলের উল্লেখযোগ্যভাবে সংকুচিত হতে সময় বাড়িয়ে তুলবে।
সাইবারনার্ড

উত্তর:


28

পুনরাবৃত্তিযোগ্য আইটেমগুলি একটি অভিধানে সংরক্ষণ করা হয় এবং বিকল্প হিসাবে একটি কোড বরাদ্দ করা হয়।

এটি একটি ওভারের পাঠ্যক্রম

aaaaaaaaaaaaaaaaaaaaaaaa  0001
bbbbbbbbbbbbbbbbbbbbbbbb  0002
alsdjl;asjdfkl;asdfjkljj  0003

পুরো লাইনটির পরিবর্তে এটি কেবল কোডটিকে তার জায়গায় রেখে দেয়। বৃহত্তর অভিধানে যত বেশি কোড এটি পরিচালনা করতে পারে। সাধারণত, যখন কোনও অভিধান পূর্ণ হয় এটি ফ্লাইতে একটি নতুন শুরু করে। যখন এটি একটি নতুন শুরু হয় এটি ফাঁকা এবং নতুন কোডগুলি সনাক্ত করা নিদর্শনগুলিতে বরাদ্দ করা হয়।

সাধারণত, একটি বিন্দু বৃহত্তর। পুরো অভিধানটি মেমোরিতে রাখা হয় যাতে আপনার অভিধানের আকারের চেয়ে আরও বেশি র‌্যাম দরকার।

অভিধানের আকারটি আপনার ডেটার সংকোচনের উপর নির্ভর করে, ফাইলের সংখ্যা, আকার এবং সামগ্রিক আকার।

সাধারণত, 32 এমবি যথেষ্ট পরিমাণের চেয়ে বেশি, তবে আপনার যদি বহু মাল্টি-গিগ ফাইল সংকুচিত করে থাকে তবে অনেক বেশি সংখ্যক ব্যবহার করা যেতে পারে। বৃহত্তর অভিধানগুলি প্রায়শই প্রক্রিয়াটিকে ধীর করে তোলে তবে একটি ছোট ফাইলের ফলাফল।


2
অভিধানের আকারের জন্য আপনি যে আকারটি সীমা নির্ধারণ করেছেন সেটি কি আসল আকার হবে? প্রোগ্রামগুলি (বিশেষত--জিপ) সাধারণভাবে বুদ্ধিমানভাবে নির্ধারণ করে যে আপনার অনুমতি দেওয়া পুরো অভিধানটি তাদের সত্যই পূরণ করতে হবে কিনা?
স্ট্যান

1
হ্যাঁ, এটি একটি সীমা। পূর্ণ হয়ে গেলে তারা হয় একটি নতুন অভিধান শুরু করে, বা বুদ্ধিমানের সাথে পুরানো ডেটা বের করে দেয়। সংক্ষিপ্ত করার জন্য ডেটা অভিধানের আকারের চেয়ে বেশি না হলে এটি পূর্ণ হবে।
সাইবারনার্ড

@cybernard "এটি পূরণ হবে"? স্পষ্টতই, অভিধানের আকারটি পূরণ না হয়ে সীমাবদ্ধতার চেয়ে কম থাকে?
লনিবেস্ট

1
@ লনিবেস্ট হ্যাঁ, অভিধান পুরোপুরি খালি শুরু হবে। প্রতি এতগুলি বিট / বাইটগুলি একটি নতুন অভিধান এন্ট্রি করে যতক্ষণ না এটি পূর্ণ হয়।
সাইবারনার্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.