বিটম্যাপ
একটি বিটম্যাপ (বিএমপি) হ'ল মূলত আপনি যা বর্ণনা করেছেন তা হ'ল, পিক্সেল রঙের প্রতিনিধিত্বকারী সংখ্যার একটি অ্যারে। যেমন কিছু
1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1
ক্ষয়হীন সংকোচনের
এখন, একটি সংক্ষেপণ স্কিম সংজ্ঞায়িত করা যাক। আমাদের সংক্ষেপণ প্রকল্পে, আমাদের সংখ্যার জোড়ের অ্যারে থাকবে। যেমন
3, 1, 1, 0, 7, 1
এখন, আমি প্রথম যে বিষয়টিটি উল্লেখ করতে চাই তা হ'ল এই সংক্ষেপণ স্কিমটি প্রথম অ্যারের মতো একই পিক্সেলকে উপস্থাপন করে। প্রথম অ্যারেটিতে তিনটি 1 টি রয়েছে যার পরে একটি একক 0 এবং তারপর সাত 1s থাকবে s এবং আমরা এখানে প্রতিনিধিত্ব করছি। এই ফর্ম্যাটটি সংক্ষিপ্ত, কারণ এটি দুটি সংখ্যার সাথে একাধিক পিক্সেল উপস্থাপন করে। বিটম্যাপ ফর্ম্যাটটিতে প্রতিটি পিক্সেলের জন্য একটি নম্বর ব্যবহার করতে হয়।
স্পষ্টতই এটি কোনও চিত্রের কিছুটা সরলীকৃত দর্শন (যেমন এটি কেবল একটি সারি) এবং একটি সংক্ষেপণ স্কিম। তবে আশা করি এটি কোনও সংক্ষেপণ স্কিম আপনাকে কীভাবে কোনও চিত্রের ফর্ম্যাট বদলে দেয় তা দেখার অনুমতি দেয়। কোনও জিএমএফ কোনও বিএমপির সাথে সম্পর্কিত। জিআইএফ এই সরলতার পরিবর্তে লেম্পেল-জিভ-ওয়েলচ নামে একটি সংক্ষেপণ স্কিম ব্যবহার করে ।
আমরা এখানে যা বর্ণনা করেছি তা হ্রাসহীন সংকোচনের স্কিম। ক্ষতিহীন কম্প্রেশন স্কিমগুলির একটি সমস্যা হ'ল কিছু ইনপুটগুলির জন্য, এনকোডযুক্ত ফর্মটি মূলের চেয়ে দীর্ঘ হতে পারে। যেমন
1, 0, 1, 0, 1
এনকোডিং হয়
1, 1, 1, 0, 1, 1, 1, 0, 1, 1
ঠিক আছে, এটি অকেজো ছিল। আমরা দীর্ঘ দ্বিগুণ ইনপুট তৈরি করেছি।
আর একটি ক্ষতিহীন সংকোচনের
এখন, আসুন একটি ভিন্ন সংক্ষেপণ স্কিম বিবেচনা করা যাক। এটিতে আমরা চিত্রটি ওভারলাইডযুক্ত বৃত্ত হিসাবে উপস্থাপন করব। প্রতিটি বৃত্তের জন্য, আমরা একটি কেন্দ্র, একটি ব্যাসার্ধ এবং একটি বর্ণ নির্ধারণ করব।
আমাদের প্রথম বিটম্যাপ হয়ে যাবে
5, 5, 1, 3, 0, 0
এটি আমাদের প্রথম সংক্ষেপণ পদ্ধতির সমান দৈর্ঘ্য।
এবং আমাদের দ্বিতীয় হতে পারে
2, 2, 1, 2, 1, 0, 2, 0, 1
এটি মাঝারি উপাদানকে কেন্দ্র করে তিনটি চেনাশোনা (যা কম্পিউটার গণনাতে 2 নম্বর, কারণ কম্পিউটারগুলি 0 থেকে গণনা শুরু করে)। একটি বৃত্তের ব্যাসার্ধ 2 এবং রঙ 1 রয়েছে। তারপরে আমরা রঙ 0 এবং ব্যাসার্ধের 1 বৃত্ত যুক্ত করি Finally
1, 1, 1, 1, 1
1, 0, 0, 0, 1
1, 0, 1, 0, 1
অথবা
2, 2, 1, 1, 0, 0, 3, 0, 0
এটি একই প্রাথমিক বৃত্ত তবে দুটি পয়েন্ট বৃত্ত দ্বারা আচ্ছাদিত। পদক্ষেপে, এটি হবে
1, 1, 1, 1, 1
1, 0, 1, 1, 1
1, 0, 1, 0, 1
এগুলি উভয়ই প্রথম এনকোডড সংস্করণের চেয়ে কম তবে মূলটির চেয়ে আরও দীর্ঘ।
আপনি ভাবতে পারেন যে আমি কেন চেনাশোনাগুলি সম্পর্কে বলছি এবং রেঞ্জগুলি নয়। মূল কারণ হ'ল চেনাশোনাগুলি বাস্তব দ্বিমাত্রিক চিত্রগুলি কী ব্যবহার করে তার কাছাকাছি।
লসী কম্প্রেশন
আমাদের কাছে ক্ষতিকারক সংকোচনের প্রকল্পগুলির ধারণাও রয়েছে। এই ক্ষতবিহীন সংক্ষেপণ স্কিমগুলি মূল বিটম্যাপ অ্যারেতে ফিরে যেতে পারে। লসী সংকোচনের স্কিমগুলি বিপরীত হতে পারে না।
আসুন আমাদের চেনাশোনা পদ্ধতির একটি ক্ষতিকারক সংস্করণ বিবেচনা করুন। এটিতে আমরা একটি সাধারণ নিয়ম ব্যবহার করব। আমরা 1 টিরও কম ব্যাসার্ধ সহ কোনও চেনাশোনা সঞ্চয় করব না So
2, 2, 1, 2, 1, 0
এবং
2, 2, 1
যা আবার পিক্সেল রূপান্তরিত হয়
1, 0, 0, 0, 1
এবং
৪,,,,,,,
প্রথম সংস্করণটি আসলটির চেয়ে দীর্ঘ একটি মাত্র উপাদান। দ্বিতীয় সংস্করণটি সংক্ষিপ্ত। উভয়ই বৈধ, সুতরাং অ্যালগরিদম উভয় বিকাশ এবং সংক্ষিপ্ত একটি চয়ন বিনামূল্যে।
আমরা নিম্ন মানের হিসাবে আরও নিয়ন্ত্রিত নিয়মযুক্ত চিত্রগুলি বর্ণনা করি।
বিজ্ঞপ্তি আকারের ওভারলেড সংগ্রহ হিসাবে চিত্রগুলির এই উপস্থাপনাটি যৌথ ফটোগ্রাফিক বিশেষজ্ঞ গ্রুপ বা জেপিইজি ফর্ম্যাটটি কীভাবে কাজ করে তার সমান । এর আকারগুলি বৃত্তের পরিবর্তে উপবৃত্তাকার, তবে ধারণাটি একই। আমাদের সরল পদ্ধতিটির পরিবর্তে, এটি চিত্রগুলি এনকোড করতে আলাদা কোসাইন ট্রান্সফর্ম ব্যবহার করে ।
জিআইএফের বিপরীতে, জেপিইজি আসলে চিত্রটি উপস্থাপনের একটি ভিন্ন উপায়। জিআইএফ এখনও পিক্সেল। এগুলি সবেমাত্র অন্যভাবে সংরক্ষণ করা হয়। জেপিইজি আকার। একটি জেপিজি দেখতে, আমরা তারপরে আকারগুলিকে পিক্সেলে রূপান্তর করি কারণ পর্দাগুলি এভাবে কাজ করে। তত্ত্বগতভাবে, আমরা এমন স্ক্রিন বিকাশ করতে পারি যা এইভাবে কাজ করে না। পিক্সেলের পরিবর্তে, এটি আকার তৈরি করতে পারে যাতে আরও ভালভাবে জেপিইজি ফর্ম্যাটের সাথে মেলে। অবশ্যই, সেই স্ক্রিনটি বিটম্যাপগুলি প্রদর্শন করতে সক্ষম হবে না। একটি বিএমপি বা জিআইএফ প্রদর্শন করতে, আমাদেরকে জেপিজিতে রূপান্তর করতে হবে।
আপনি যদি কোনও মানক জিআইএফ রূপান্তর করেন, 300x300 পিক্সেল বলুন, এটিকে একটি জেপিজিতে রূপান্তর করুন এবং মানের দিক থেকে ক্র্যাঙ্ক করুন, এটি যে বেস আকারগুলি ব্যবহার করে তা দৃশ্যমান হওয়া উচিত। অনেক জেপিইজি অনেক উচ্চতর রেজোলিউশন চিত্র দিয়ে শুরু করে এই শিল্পকর্মগুলি এড়িয়ে চলে।
জেপিইজিগুলি স্কেলগুলি ভাল করে কারণ এগুলি পিক্সেলের পরিবর্তে আকার। সুতরাং আপনি যদি 8000x8000 ইমেজ দিয়ে শুরু করেন, এটিকে জেপিজিতে রূপান্তর করুন এবং এটি 300x300 চিত্র হিসাবে প্রদর্শন করুন, যে বিশদটি হারিয়েছিল তার বেশিরভাগই হারিয়ে যেতে পারত। আপনি যদি 8000x8000 বিটম্যাপটিকে প্রথমে 300x300 বিটম্যাপে এবং তারপরে জেপিজিতে রূপান্তর করেন তবে ফলাফলগুলি প্রায়শই নিম্ন মানের হবে।
এমপিইজি
আমরা স্থির চিত্র সম্পর্কে কথা বলছি। চলচ্ছবির বিশারদ দল অথবা MPEG বিন্যাস কোন JPEG হিসাবে কম্প্রেশন একই ধরনের ব্যবহার করে, কিন্তু এটি অন্য কিছু আছে। ভিডিও করার সহজ উপায় হ'ল স্থির চিত্রগুলির ক্রম প্রেরণ করা, এমপিইজি আসলে একটি ফ্রেম প্রেরণ করে তারপরে কয়েকটি ফ্রেমের তালিকা পরিবর্তন করে এবং শেষ ফ্রেমের সাহায্যে সমাপ্ত হয়। কারণ বেশিরভাগ ফ্রেম পূর্ববর্তী ফ্রেমের সাথে সমান, পরিবর্তনের তালিকাটি প্রায়শই দ্বিতীয় চিত্রের চেয়ে ছোট হয়।
ক্রমটি সাধারণত দীর্ঘ হয় না, পাঁচটি ফ্রেম বলে। তবে এটি স্ট্রিমটিকে অন্যথায় যেমন করা হবে তার চেয়ে ছোট করতে সহায়তা করে।
Simplifications
আমি অনেক উপেক্ষা করেছি। আমার চিত্রগুলিতে কেবল দুটি বর্ণ (1-বিট) রয়েছে, 8-বিট চিত্রের 256 নয় এবং 32-বিট চিত্রের অবশ্যই 4,294,967,296 নয়। এমনকি 8-বিট চিত্র সহ, নোট করুন যে আপনি প্রায়শই চিত্রটির জন্য বিভিন্ন প্যালেট চয়ন করতে পারেন। সুতরাং একই সিকোয়েন্স সহ দুটি 8-বিট বিটম্যাপগুলি চিত্র দেখতে পারে যা বিভিন্ন দেখতে (একই আকৃতি তবে বিভিন্ন বর্ণ) উপস্থাপন করতে পারে।
আমার চিত্রগুলি একক সারি, দ্বি মাত্রিক নয়। বেশিরভাগ চিত্রের একটি নির্দিষ্ট সারি আকার সঞ্চিত থাকবে, যা অ্যারেগুলিকে দ্বিমাত্রিক করে তুলবে।
আমি মোটেও প্রকৃত এনকোডিংগুলিকে উপস্থাপন করার চেষ্টা করি নি। আমি যে সাধারণ ব্যবহার করেছি সেগুলির তুলনায় এগুলি আরও জটিল। আমি এটি করেছি কারণ আমি এই পোস্টে এনকোডিংগুলি বর্ণনা করতে সক্ষম হতে চেয়েছিলাম। আমি নিশ্চিত নই যে আমি একক উত্তরে লেম্পেল-জিভকে আরও জটিল লেম্পেল-জিভ-ওয়েলক পরিশোধনকে আরও কম ব্যাখ্যা করতে পেরেছি। এবং আমি বুঝতে পারি না ফুরিয়ার কোনও দৈর্ঘ্যে তাদের ব্যাখ্যা করার জন্য যথেষ্ট ভাল রূপান্তর করে।
এটি প্রকৃত চিত্র হ্যান্ডলিংয়ের খুব সরল সংস্করণ। যাইহোক, আমি অনুভব করি যে প্রাসঙ্গিক উদ্দেশ্যে, প্রয়োজনীয় বিষয়গুলিকে আঘাত করার পরে আরও জটিল বাস্তবতার চেয়ে বোঝা আরও সহজ।