পিএনজি হ'ল ফিল্ডস + এলজেড 77 + + হাফম্যান (এলজেড 77 + + হাফম্যানের সংমিশ্রণটিকে ডিফলেট বলা হয়) সেই ক্রমে:
পদক্ষেপ 1) যদি ফিল্টারটি কোনওর থেকে পৃথক হয়, তবে পিক্সেলের মান সংলগ্ন পিক্সেল থেকে পৃথক হয়ে যায় (আরও তথ্যের জন্য দেখুন http://www.libpng.org/pub/png/book/chapter09.html ) । যা গ্রেডিয়েন্টগুলির সাথে চিত্রগুলির সংকোচনতা বৃদ্ধি করে (তাই ... 4 5 6 7 হয়ে ... 1 1 1 1) এবং এটি একই রঙের অঞ্চলে সহায়তা করতে পারে (... 3 3 3 5 5 5 5 5 0 হয়ে যায় 0 0 2 0 0 0 0 0)। ডিফল্টরূপে ফিল্টারগুলি 24-বিট চিত্রগুলিতে সক্ষম হয় এবং একটি প্যালেট সহ 8-বিট চিত্রগুলিতে অক্ষম থাকে।
পদক্ষেপ 2) ডেটা এলজেড 7777 দিয়ে সংকুচিত হয়েছে যা ম্যাচের দূরত্ব এবং ম্যাচের দৈর্ঘ্য সমেত একটি টুপলের সাহায্যে বাইটের পুনরাবৃত্ত (ম্যাচ) স্ট্রিংগুলিকে প্রতিস্থাপন করে।
পদক্ষেপ 3) দ্বিতীয় ধাপের ফলাফলটি হাফম্যান কোডের সাথে এনকোড করা রয়েছে যা স্থির দৈর্ঘ্যের চিহ্নগুলিকে ভেরিয়েবল-দৈর্ঘ্যের কোডগুলির সাথে প্রতিস্থাপন করে, যত বেশি সংখ্যক চিহ্নটি সংক্ষিপ্ততর হয় কোডটি সংক্ষেপে।
একাধিক সমস্যা রয়েছে:
একটি ছোট পরিবর্তন যা কয়েকটি পিক্সেলকে প্রভাবিত করে পিএনজি সংক্ষেপণের 3 টি ধাপ থেকে ফলাফল পরিবর্তন করবে:
1) সংলগ্ন পিক্সেলের ফিল্টারকৃত মান পরিবর্তন হবে (ব্যবহৃত ফিল্টারের উপর নির্ভর করে)। এটি ছোট পরিবর্তনগুলির প্রভাবকে প্রশস্ত করবে।
2) পরিবর্তনের অর্থ সেই অঞ্চলের সাথে ম্যাচগুলি আলাদা হবে। উদাহরণস্বরূপ ৩৩৩৩৩৩৩ থেকে ৩৩৩৩৩৩ এ পরিবর্তনের ফলে 33৩৩৩৩-এর আর কোনও ঘটনা আর মিলবে না তাই এটি অন্য ম্যাচটি আলাদা দূরত্বে নিয়ে ৩৩৩৩৩৩ এ নির্বাচন করবে বা এটি একই ম্যাচটি বেছে নেবে তবে সংক্ষিপ্ত দৈর্ঘ্যের সাথে এবং তারপরে আরও একটি ম্যাচ শেষ 3 বাইটের জন্য। নিজে থেকে এটি ফলাফলকে অনেক পরিবর্তন করবে।
3) বৃহত্তম ইস্যুটি পদক্ষেপ 3 The হফম্যান কোড বিটগুলির একটি পরিবর্তনশীল সংখ্যার ব্যবহার করে তাই একটি ছোট্ট পরিবর্তনও ফলস্বরূপ ঘটে যে অনুসরণ করা সমস্ত কিছুই আর প্রান্তিক নয় al আফাইক বেশিরভাগ সংক্ষেপণ অ্যালগরিদমগুলি বাইট সারিবদ্ধ নয় এমন ম্যাচগুলি সনাক্ত করতে পারে না যা ইতিমধ্যে সংক্ষেপিত ডেটাতে সংক্রমণের (বা কমপক্ষে কিছুটা হ্রাস করতে পারে) প্রতিরোধ করবে যদি না সংক্ষেপক বাইট সারিবদ্ধ না হওয়া ম্যাচগুলি সংক্ষেপককে সনাক্ত না করে তবে পরিবর্তনটি অনুসরণ করে।
অন্যান্য ইস্যুগুলি ইতিমধ্যে অন্যান্য জবাব দ্বারা আচ্ছাদিত:
৪) জিজিপ একটি 32KB অভিধানের সাথে একই ডিফল্ট অ্যালগরিদম ব্যবহার করে, তাই পিএনজি ফাইলগুলি 32KB এর চেয়ে বড় হলে ম্যাচগুলি অভিন্ন হলেও সনাক্ত করা যাবে না। Bzip2 সেই দিক থেকে আরও ভাল কারণ এটি 900 কেবি ব্লক ব্যবহার করে। এক্সজেড এলজেডএমএ ব্যবহার করে, যা আইআইআরসি-র ডিফল্ট সংকোচনের স্তরের একটি 4 এমবি অভিধান রয়েছে। 5) জিপ ফর্ম্যাটটি শক্ত সংকোচনের ব্যবহার করে না যাতে এটি অনুরূপ বা অভিন্ন ফাইলগুলিকে আরও ভালভাবে সংক্ষেপ করতে পারে না।
সম্ভবত PAQ বা পিপিএমডি পরিবারের সংক্ষেপকগুলি আরও ভালভাবে সংকোচিত হবে তবে যদি আপনাকে প্রচুর অনুরূপ চিত্রের ফাইলগুলি সংকোচিত করতে হয় তবে আপনি 3 টি পদ্ধতি বিবেচনা করতে পারেন:
1) ছবিগুলিকে সঙ্কুচিত (পিএনজি -0 দিয়ে বা সংক্ষেপণ ছাড়াই বিন্যাসে) সংরক্ষণ করুন এবং একটি বৃহত অভিধান বা ব্লক আকারের সংক্ষেপণ সহ একটি সংক্ষেপককে সংকুচিত করুন। (এলজেডএমএ ভালভাবে কাজ করবে)
2) আরেকটি বিকল্প হ'ল ফিল্টারগুলি রাখা কিন্তু পিএনজিগুলি থেকে ডিফল্ট সংকোচনতা অপসারণ করা। এটি উদাহরণস্বরূপ ( অ্যাডডিফের সাহায্যে করা যেতে পারে ) ) ইউটিলিটি । তারপরে আপনি ফলাফলটি সঙ্কুচিত পিএনজি সংকুচিত করুন। ডিকম্প্রেশন পরে আপনি সঙ্কুচিত পিএনজি রাখতে পারেন বা এ্যাডডিফ দিয়ে আবার সংকোচ করতে পারেন (তবে এতে সময় লাগবে)।
কোনটি সবচেয়ে সংকুচিত করে তা দেখতে আপনার উভয় পদ্ধতির পরীক্ষা করতে হবে।
৩) সর্বশেষ বিকল্পটি পিএনজি চিত্রগুলিকে একটি ভিডিওতে রূপান্তরিত করবে, এটিকে x264 লসলেস (ডান রঙের ফর্ম্যাটটি ব্যবহারের বিশেষ যত্ন নিচ্ছে) এর মতো একটি লসলেস ভিডিও সংক্ষেপক দিয়ে সংকোচন করবে এবং তারপরে এক্সট্রাকশনে ফ্রেমগুলি পৃথক পিএনজি চিত্রগুলিতে বের করবে। এটি ffmpeg দিয়ে করা যেতে পারে। আপনার ফ্রেম নম্বর এবং মূল নামের মধ্যে ম্যাপিং রাখা দরকার।
এটি সবচেয়ে জটিল পদ্ধতির হবে তবে যদি পিএনজিগুলি অ্যানিমেশনের সমস্ত অংশ হয় তবে এটি সবচেয়ে কার্যকর হতে পারে। তবে আপনার প্রয়োজন এমন একটি ভিডিও ফর্ম্যাট যা আপনার প্রয়োজন হলে স্বচ্ছতার সমর্থন করে।
সম্পাদনা: এমএনজি ফর্ম্যাটও রয়েছে যা এটি প্রায়শই ব্যবহার করা হয় না।