JPEG কমপ্রেশন কীভাবে কাজ করে

কার্যকর ইমেজ কমপ্রেশনের ধাপগুলোর সহজ ব্যাখ্যা

কখনো ভেবেছেন কি, কীভাবে আপনার ফোন বা ক্যামেরা একটি ছবি তোলে এবং কয়েক মুহূর্তের মধ্যেই সেটি সংরক্ষিত হয় JPEG হিসেবে-সাইজে ছোট, দ্রুত এবং তারপরও পরিষ্কার দেখায়? পর্দার আড়ালে কিন্তু একটি জটিল প্রক্রিয়া কাজ করে, যা বিশাল আকারের ইমেজ ফাইলকে আসল সাইজের অল্প অংশে নামিয়ে আনে, আবার একই সঙ্গে ভালো মানও বজায় রাখে। কিন্তু এটি আসলে কীভাবে কাজ করে? আজ, আমরা JPEG কমপ্রেশনএর খুঁটিনাটি নিয়ে আলোচনা করব, প্রতিটি ধাপ সহজ ভাষায় ভেঙে দেখাব, যাতে আপনি এই ছবির কমপ্রেশনের পুরো প্রক্রিয়াটি ভালোভাবে বুঝতে পারেন।

JPEG কী?

JPEG (Joint Photographic Experts Group এর সংক্ষিপ্ত রূপ) সবচেয়ে বেশি ব্যবহৃত ইমেজ ফরম্যাটগুলোর একটি। এটি ডিজিটাল ছবি সংরক্ষণের জন্য সাধারণভাবে ব্যবহৃত হয়। JPEG-এর আসল বৈশিষ্ট্য হলো এটি ইমেজ ফাইলকে কমপ্রেস করতে পারে, যার ফলে ছবি অনেক ছোট হয়, কিন্তু গুণমানে কোনো বড় পরিবর্তন চোখে পড়ে না।

উদাহরণ হিসেবে, একটি উচ্চমানের আনকমপ্রেসড ইমেজের সাইজ হতে পারে 46MB পর্যন্ত। JPEG-এ কমপ্রেস করার পর, একই ছবির সাইজ কমে মাত্র 4.1MB পর্যন্ত নেমে আসতে পারে! কিন্তু কীভাবে এত কমিয়ে আনার পরও ছবিকে তীক্ষ্ণ রাখা হয়?

উত্তর লুকিয়ে আছে compression process, কমপ্রেশন প্রক্রিয়ায়, যা আমাদের চোখ যেভাবে কাজ করে সেটির সুবিধা নেয় এবং অপ্রয়োজনীয় ডেটা সরিয়ে দেয়।

JPEG কী করে?

সহজভাবে বললে, JPEG ছবিটি বিশ্লেষণ করে এবং এমন অংশগুলো সরিয়ে দেয়, যেগুলো আমাদের চোখে সহজে ধরা পড়ে না। যখন আপনি JPEG দিয়ে একটি ছবি কমপ্রেস করেন, তখন আপনি নিয়ন্ত্রণ করতে পারেন কতটা কমপ্রেশন প্রয়োগ করা হবে। "quality" সেটিং পরিবর্তন করে, আপনি ঠিক করতে পারেন কতটুকু জায়গা বাঁচাতে চান। গুণমান 100% থেকে 0% এ নামালে, ফাইলের সাইজও অনুযায়ী কমে যায়।

যত বেশি কমপ্রেস করবেন, ছবির রেজোলিউশন একই থাকে, কিন্তু কিছু ত্রুটি বা "artifacts" দেখা দিতে পারে, যেগুলো ছোট ছোট বর্গের মতো দেখায়, তবে সাধারণত এগুলো জুম না করলে বোঝা কঠিন। JPEG-এর লক্ষ্য হলো মানুষের চোখে খারাপ না দেখিয়ে ফাইলকে যতটা সম্ভব ছোট করা।

JPEG কমপ্রেশনের ধাপগুলো

JPEG কমপ্রেশন শুধু একটি ম্যাজিক ট্রিক নয়, বরং এটি কয়েকটি বুদ্ধিমান ধাপের সমন্বয়, যা ইমেজ সাইজ কমানোর জন্য তৈরি হয়েছে। আসুন, JPEG-কে এত কার্যকরী করে তোলার পাঁচটি গুরুত্বপূর্ণ ধাপ দেখে নেই।

ধাপ ১: কালার স্পেস কনভার্সন

ইমেজ তৈরি হয় পিক্সেল দিয়ে, এবং প্রতিটি পিক্সেলে লাল, সবুজ ও নীল (RGB) উপাদান থাকে যা মিলেই রঙ তৈরি করে। JPEG শুরুতেই এই RGB মানগুলোকে একটি ভিন্ন কালার স্পেসে রূপান্তর করে:

  • Luminance (Brightness): এটি একটি পিক্সেলের উজ্জ্বলতা বা আলোর মাত্রা বোঝায় এবং পুরো ছবির কনট্রাস্ট নির্ধারণে গুরুত্বপূর্ণ ভূমিকা রাখে।
  • Chrominance (Color): এতে রঙ সম্পর্কিত তথ্য থাকে, যেমন হিউ ও স্যাচুরেশন।

এই রূপান্তরটি কাজে লাগায় যে, মানুষের চোখ উজ্জ্বলতা (luminance) এর প্রতি রঙের (chrominance) তুলনায় বেশি সংবেদনশীল। উজ্জ্বলতাকে রঙ থেকে আলাদা করার মাধ্যমে, JPEG পরের ধাপগুলোতে লক্ষ্যভিত্তিকভাবে ডেটা কমাতে পারে, আবার গুরুত্বপূর্ণ ভিজ্যুয়াল ডিটেইল অক্ষত রাখে।

এই ধাপে কোনো ডেটা হারায় না, তবে এটি কার্যকর কমপ্রেশনের প্রস্তুতি তৈরি করে।

ধাপ ২: ক্রোমিন্যান্স ডাউনস্যাম্পলিং/ক্রোমা সাবস্যাম্পলিং

Chroma Subsampling হল একটি হলো একটি টেকনিক যা কালার স্পেস কনভার্সনের পর প্রয়োগ করা হয়। মনে আছে, আমরা বলেছিলাম আমাদের চোখ রঙের (chrominance) তুলনায় উজ্জ্বলতা (luminance) তেমন ভালোভাবে ধরতে পারে না?

JPEG এই বিষয়টির সুবিধা নেয় রঙ সম্পর্কিত ডেটা কমিয়ে। এটি নীল ও লাল ক্রোমিন্যান্স ইমেজগুলোকে প্রতি চার পিক্সেলের ব্লকে গড় করে সাইজ ছোট করে। এতে রঙের ডেটা অনেক কমে যায়, কিন্তু luminance (উজ্জ্বলতা) অপরিবর্তিত থাকে। এই পর্যায়ে এসে ছবির প্রায় অর্ধেক কমপ্রেস হয়ে যায়!

ধাপ ৩: Discrete Cosine Transform (DCT)

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

DCT ছবি কে 8x8 ব্লকে ভাগ করে এবং প্রতিটি ব্লককে বিভিন্ন ফ্রিকোয়েন্সি মানের একটি সংগ্রহে রূপান্তর করে। বেশি ফ্রিকোয়েন্সি, যা পিক্সেলের মানের দ্রুত পরিবর্তনকে উপস্থাপন করে, যেমন প্রান্ত বা নয়েজ, সেগুলো সাধারণত মানুষের চোখে কম ধরা পড়ে এবং সহজ করা বা সরিয়ে ফেলা যায়।

ধাপ 4: কোয়ান্টাইজেশন

DCT প্রয়োগ করার পর, প্রাপ্ত ফ্রিকোয়েন্সি ডেটা কোয়ান্টাইজেশনধাপের মধ্য দিয়ে যায়। এই ধাপে, ফ্রিকোয়েন্সি মানের পরিসরকে কোয়ান্টাইজেশন টেবিল নামে পরিচিত কিছু ধ্রুবক দিয়ে ভাগ করে কমিয়ে আনা হয়। এই প্রক্রিয়ায় মূলত ফ্রিকোয়েন্সি মানগুলোকে রাউন্ড করে সহজ করা হয়।

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

ধাপ 5: রান লেংথ ও হাফম্যান এনকোডিং

কোয়ান্টাইজেশনের পরও ডেটা কার্যকরভাবে সংরক্ষণ করার জন্য যথেষ্ট কম্প্যাক্ট হয় না। এখানেই রান লেংথ এনকোডিং (RLE) এবং হাফম্যান এনকোডিং ব্যবহৃত হয়।

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

These two এনকোডিং পদ্ধতি একসঙ্গে কাজ করে ফাইলের আকার উল্লেখযোগ্যভাবে কমায়, কিন্তু ছবির মানের খুব বেশি ক্ষতি না করেই!

অতিরিক্ত নোট

JPEG একটি খুব কার্যকর ফরম্যাট হলেও, কিছু গুরুত্বপূর্ণ বিষয় মাথায় রাখা দরকার:

  • কম্প্রেশন লেভেল: JPEG ব্যবহারকারীদের কম্প্রেশনের মাত্রা বেছে নেওয়ার সুযোগ দেয়, কিন্তু বেশি কম্প্রেশন করলে ফাইলের আকার কমে এবং ঝাপসা প্রান্ত বা পিক্সেলেট হওয়ার মতো দৃশ্যমান আর্টিফ্যাক্ট দেখা দিতে পারে। এর কারণ হলো কোয়ান্টাইজেশন টেবিলের মানগুলো খুব বেশি হওয়া, যা আরও বেশি শূন্য যোগ করে, ফাইলটিকে ছোট করে কিন্তু ছবির মানের ক্ষতি করে।
  • হাই-ফ্রিকোয়েন্সি ডেটা লস: কোয়ান্টাইজেশন উচ্চ-ফ্রিকোয়েন্সি ডেটার নির্ভুলতা কমায় (যেমন তীক্ষ্ণ প্রান্তের মতো বিস্তারিত), এ কারণেই JPEG মসৃণ টেক্সচারের জন্য ভালো কাজ করে, কিন্তু তীক্ষ্ণ রেখা ও ভেক্টর গ্রাফিক্সের ক্ষেত্রে সমস্যায় পড়তে পারে।
  • ভেক্টর গ্রাফিক্সের জন্য উপযোগী নয়: ভেক্টর গ্রাফিক্স কম্প্রেস করার জন্য JPEG ভালো পছন্দ নয়, কারণ এটি আকার বা রেখার সীমানায় দৃশ্যমান আর্টিফ্যাক্ট তৈরি করতে পারে।

এই সীমাবদ্ধতাগুলো থাকা সত্ত্বেও, JPEG সবচেয়ে জনপ্রিয় ইমেজ ফরম্যাট রয়ে গেছে, আংশিকভাবে কারণ এটি পুরোনো, ভালোভাবে বোঝা এবং রয়্যালটি-ফ্রি। তবে, WebP অথবা HEIF এর মতো নতুন ফরম্যাটগুলো আরও ভালো কম্প্রেশন রেট দেয়, কিন্তু মানের সাথে আপস না করেই, যা নির্দিষ্ট ক্ষেত্রে এগুলোকে আকর্ষণীয় বিকল্প করে তোলে।

সারসংক্ষেপ

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

JPEG-এর কিছু সীমাবদ্ধতা থাকলেও, বিশেষ করে বেশি মাত্রার কম্প্রেশন বা ভেক্টর গ্রাফিক্সের ক্ষেত্রে, এর ব্যাপক ব্যবহার এবং ফটোগ্রাফিক ইমেজের জন্য ভালো ফল দেওয়ার ক্ষমতা এটিকে একটি দীর্ঘস্থায়ী মানদণ্ডে পরিণত করেছে।

AI আর্ট জেনারেটর আমাদের AI Creator Studio দিয়ে আপনার সৃজনশীলতাকে কাজে লাগিয়ে লেখাকে শিল্পে রূপান্তর করুন
এখনই চেষ্টা করুন