সরাসরি পর্বে যান
পর্ব ২৮ · ৫৫-এর মধ্যে · মডিউল ৪

ছবি, শব্দ আর ভিডিও যেভাবে ডেটা হয় — pixel, sampling আর compression

How Images, Sound and Video Become Data — Pixels, Sampling, Codecs and Compression

Taught in Bangla, this lesson explains how media becomes numbers: images as pixel grids with resolution, RGB and colour depth, calculating file sizes, JPEG, PNG, GIF, WebP, HEIC and RAW formats, vector versus raster, sound as sampling with bit depth and channels, video frame rates, codecs and containers, RLE and Huffman compression, lossy versus lossless, choosing formats, and spotting AI-generated media.

এই পর্বে যা শিখবেন

  • একটি ছবি কীভাবে pixel, RGB সংখ্যা আর byte-এ পরিণত হয়, আর ছবির আকার কীভাবে হিসাব করতে হয়
  • raster বনাম vector ছবি, আর JPEG, PNG, GIF, WebP, HEIC, SVG — কোনটি কোন কাজে
  • শব্দের sampling, sampling rate, bit depth, Nyquist-এর নিয়ম, আর MP3-FLAC-এর পার্থক্য
  • ভিডিওর fps, codec আর container, keyframe, আর স্ট্রিমিংয়ে কত ডেটা খরচ হয়
  • RLE আর Huffman দিয়ে compression-এর মূল কৌশল, lossy বনাম lossless, আর AI-এর বানানো ছবি-কণ্ঠ যাচাইয়ের উপায়

১ · কম্পিউটার শুধু সংখ্যা চেনে — তাহলে ছবি আর গান রাখে কীভাবে?

কম্পিউটারের ভেতরে সবকিছু শেষ পর্যন্ত bit — 0 আর 1 (পর্ব ১৬)। লেখার বেলায় প্রতিটি অক্ষরের একটি নম্বর থাকে (পর্ব ১৮)। কিন্তু মায়ের হাসিমুখের ছবি, বৃষ্টির শব্দ বা ক্রিকেট ম্যাচের ভিডিও — এগুলোর তো কোনো “নম্বর” নেই। তাহলে ফোন এগুলো রাখে কীভাবে?

উত্তর একটি বাক্যে: মেপে মেপে। বাস্তব জগতের আলো আর শব্দ হলো analog — একটানা, মসৃণভাবে বদলায়, মাঝে কোনো ফাঁক নেই। কম্পিউটার এই একটানা জিনিসকে ছোট ছোট টুকরোয় ভাগ করে, প্রতিটি টুকরো মেপে একটি সংখ্যা লিখে রাখে। এই কাজকে বলে digitization (ডিজিটাইজেশন)। ছবিতে টুকরো হয় জায়গায় জায়গায়, শব্দে সময়ে সময়ে।

উপমা: দর্জির কাছে জামা বানাতে গেলে তিনি আপনার শরীরের ছবি রাখেন না, রাখেন কয়েকটি মাপ — বুক ৩৮, হাতা ২৪, লম্বা ৪০. কম্পিউটারও ছবি বা গানের “মাপ” রাখে — শুধু হাজার হাজার, লাখ লাখ মাপ। মাপ যত ঘন, নকল তত আসলের কাছাকাছি।

এই পর্বের পুরো গল্পটি তিনটি প্রশ্নে ভাগ করা যায়:

  • কতটা ঘন করে মাপব? ছবিতে কতগুলো বর্গ (resolution), শব্দে সেকেন্ডে কতবার (sampling rate).
  • প্রতিটি মাপ কতটা সূক্ষ্ম? একটি রং বা একটি শব্দ-মাপ লিখতে কয়টি bit (color depth, bit depth).
  • এত সংখ্যা রাখব কোথায়? কাঁচা মাপের পরিমাণ বিশাল, তাই চাপ দিয়ে ছোট করা — compression.
মূল ধারণা

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

২ · ছবি মানে pixel-এর গ্রিড — resolution, RGB আর color depth

ফোনের যেকোনো ছবি খুব বেশি zoom করুন। একসময় ছবিটি আর মসৃণ থাকবে না, ছোট ছোট রঙিন বর্গ দেখা যাবে। এই প্রতিটি বর্গের নাম pixel (picture element-এর সংক্ষেপ)। একটি pixel-এর ভেতরে পুরো এক রং — তার ভেতরে আর কোনো খুঁটিনাটি নেই। এভাবে pixel-এর গ্রিড দিয়ে তৈরি ছবিকে বলে raster বা bitmap ছবি।

ছবিতে আড়াআড়ি আর লম্বালম্বি কয়টি pixel আছে, তাকে বলে resolution, যেমন 4000 × 3000. গুণ করলে মোট pixel: ১,২০,০০,০০০ — অর্থাৎ ১ কোটি ২০ লাখ, বা ১২ মেগাপিক্সেল (MP). তবে মেগাপিক্সেল বেশি মানেই ছবি ভালো নয় — সেন্সর আর লেন্সের ভূমিকাও বড়।

প্রতিটি pixel-এর রং — তিনটি সংখ্যা

স্ক্রিনের প্রতিটি pixel আসলে তিনটি খুব ছোট বাতি: লাল (Red), সবুজ (Green) আর নীল (Blue). এই তিনটির উজ্জ্বলতা মিশিয়ে চোখ হাজারো রং দেখে — একে বলে RGB রঙের মডেল। সাধারণত প্রতিটি রঙের মাত্রা লেখা হয় ০ থেকে ২৫৫ — অর্থাৎ ঠিক এক byte (8 bit). তাই:

  • (255, 0, 0) = পুরো লাল, বাকি দুটি বন্ধ → লাল
  • (255, 255, 0) = লাল + সবুজ → হলুদ (আলোর মিশ্রণে তাই হয়)
  • (0, 0, 0) = সব বাতি বন্ধ → কালো; (255, 255, 255) = সব পুরো জ্বলা → সাদা

ওয়েব পেজে এই তিনটি সংখ্যাকে hexadecimal-এ (পর্ব ১৬) লেখা হয় — একে বলে hex color code. যেমন #FF5733 মানে R = FF = 255, G = 57 = 87, B = 33 = 51 — একটি উজ্জ্বল কমলা-লাল। প্রতিটি দুই-অঙ্কের হেক্স সংখ্যা ঠিক এক byte, তাই ছয় অঙ্কে তিন byte.

নিচের stepper-এ একটি ৪ × ৪ pixel-এর ছোট্ট ছবি নিন — সবুজ জমিনে লাল চাকতি, বাংলাদেশের পতাকার মতো। দেখুন এটি কীভাবে ধাপে ধাপে কেবল সংখ্যা হয়ে যায়:

৪ × ৪ pixel-এর ছবি বাঁ দিকে সবুজ জমিনে লাল বৃত্তের একটি ছবি, যা পরে ১৬টি বর্গে ভাগ হয়: কোণের ১২টি বর্গ সবুজ, মাঝের ৪টি লাল। ডান দিকে বাছাই করা pixel-এর RGB সংখ্যা আর byte দেখানো হয়। মসৃণ ছবি — এখনো কোনো সংখ্যা নেই ৪ সারি × ৪ কলাম = ১৬টি pixel সারি 0, কলাম 0 (সবুজ) R = 0, G = 106, B = 78 hex: #006A4E সারি 1, কলাম 1 (লাল) R = 244, G = 42, B = 65 hex: #F42A41 সারি ধরে বাঁ থেকে ডানে পড়া: 00 6A 4E 00 6A 4E … ১৬ × ৩ = ৪৮ byte
ছবিটি এখন কী
pixel সংখ্যা
যে pixel দেখছি
RGB সংখ্যা
byte (hex)
  1. আসল দৃশ্য। ক্যামেরার সামনে আলো একটানা, কিনারাও মসৃণ।
  2. গ্রিডে ভাগ করা। ছবির ওপর ৪ × ৪ জাল ফেলে প্রতিটি ঘরের গড় রঙে পুরো ঘর রাঙানো হলো — এটাই pixel. গোল চাকতিটি এখন চৌকো — pixel যত বেশি, বৃত্ত তত গোল দেখাবে।
  3. প্রথম pixel-এর রং মাপা। কোণের সবুজ ঘরটি: লাল 0, সবুজ 106, নীল 78. হেক্সে লিখলে 00, 6A, 4E — ঠিক তিন byte. ওয়েবে একে লেখা হয় #006A4E.
  4. লাল pixel-এর রং। মাঝের ঘর: (244, 42, 65), হেক্সে F4 2A 41.
  5. সারি ধরে byte-এর লাইন। সারি ধরে বাঁ থেকে ডানে সব সংখ্যা পরপর লেখা হয়। ১৬টি pixel × ৩ byte = ৪৮ byte. ফাইলের শুরুর ছোট header-এ লেখা থাকে “প্রস্থ ৪, উচ্চতা ৪”, যাতে কম্পিউটার জানে কোথায় সারি ভাঙতে হবে।

Color depth — একটি pixel-এ কয়টি bit

প্রতিটি pixel-এর রং লিখতে কয়টি bit খরচ হবে, তাকে বলে color depth বা bit depth. bit বাড়লে সম্ভাব্য রঙের সংখ্যা দ্বিগুণ-দ্বিগুণ করে বাড়ে — n bit-এ 2nটি রং (পর্ব ১৬-এর সেই একই হিসাব)।

Color depthরঙের সংখ্যাকোথায় দেখা যায়
1-bit21 = ২ (সাদা-কালো)ফ্যাক্স, পুরোনো স্ক্যানার, QR code
8-bit grayscale28 = ২৫৬টি ধূসর মাত্রাসাদা-কালো ছবি, এক্স-রে, স্ক্যান করা দলিল
8-bit palette২৫৬টি বাছাই করা রংGIF ছবি
24-bit (True Color)224 = ১,৬৭,৭৭,২১৬ (প্রায় ১ কোটি ৬৮ লাখ)সাধারণ ছবি, ওয়েব, ফোনের স্ক্রিন — R, G, B প্রতিটি 8 bit
32-bit (RGBA)২৪-bit রং + 8-bit স্বচ্ছতাPNG-এর স্বচ্ছ (transparent) পটভূমি
30-bit (প্রতি রঙে 10 bit)১০০ কোটির বেশিHDR ভিডিও, পেশাদার মনিটর

সারণির ৩২-bit সারিটি লক্ষ করুন: বাড়তি ৮ bit কোনো নতুন রং নয়, বরং alpha channel — pixel কতটা স্বচ্ছ (০ = পুরো স্বচ্ছ, ২৫৫ = পুরো অস্বচ্ছ)।

স্ক্রিনের RGB, ছাপাখানার CMYK

স্ক্রিন নিজে আলো ছড়ায়, তাই সেখানে রং যোগ হয় — সব জ্বললে সাদা। কাগজে কালি আলো শুষে নেয়, তাই প্রিন্টারে রং বাদ যাওয়ার নিয়মে চলে, আর কালি থাকে চারটি: Cyan (আকাশি-নীল), Magenta (গোলাপি-বেগুনি), Yellow (হলুদ) আর Key বা কালো — একসাথে CMYK.

স্ক্রিনের কিছু ঝকঝকে রং CMYK কালিতে হুবহু ছাপা যায় না, তাই ব্যানার বা কার্ড ছাপার আগে একটি নমুনা ছেপে দেখে নিন।

৩ · ছবির আকার হিসাব আর ফরম্যাট — JPEG, PNG, GIF, WebP, HEIC, RAW

কাঁচা (compress না করা) ছবির আকার বের করার সূত্রটি খুব সোজা, আর পরীক্ষায় প্রায়ই আসে:

কাঁচা আকার (byte) = প্রস্থ × উচ্চতা × (color depth ÷ 8)

কয়েকটি উদাহরণ হাতে কষে দেখুন:

ছবিহিসাবকাঁচা আকার
1024 × 768, 24-bit৭,৮৬,৪৩২ pixel × ৩ byte২৩,৫৯,২৯৬ byte = ঠিক ২.২৫ MiB
Full HD স্ক্রিনশট 1920 × 1080, 24-bit২০,৭৩,৬০০ × ৩প্রায় ৬.২ MB
১২ MP ফোনের ছবি (4000 × 3000), 24-bit১,২০,০০,০০০ × ৩৩.৬ কোটি byte ≈ ৩৬ MB
A4 দলিল স্ক্যান, 2480 × 3508, 1-bit সাদা-কালো৮৬,৯৯,৮৪০ ÷ ৮প্রায় ১.০৯ MB

অথচ ফোনের গ্যালারিতে ১২ MP-এর একটি ছবি সাধারণত মাত্র ২–৫ MB. বাকিটা কোথায় গেল? উত্তর compression (অংশ ৭)। আর ১ MB = ১০০০ না ১০২৪ ধরবেন (পর্ব ০৪), পরীক্ষায় প্রশ্নে যা বলা থাকে তা-ই মানুন।

ছবির ফরম্যাট — কোনটি কখন

একই pixel-এর গ্রিড নানা নিয়মে (ফরম্যাটে) ফাইলে লেখা যায়:

ফরম্যাটcompressionবিশেষত্বসবচেয়ে ভালো কাজ
JPEG (.jpg)lossyছোট ফাইল; মান কতটা রাখবেন তা ঠিক করা যায়; স্বচ্ছতা নেইক্যামেরার ছবি, প্রকৃতি, মানুষের মুখ
PNGlosslessহুবহু pixel রাখে; alpha (স্বচ্ছতা) আছেস্ক্রিনশট, লেখা-সহ ছবি, লোগো, ডায়াগ্রাম
GIFlossless, কিন্তু সর্বোচ্চ ২৫৬ রংছোট অ্যানিমেশন চলেসাধারণ অ্যানিমেশন, মিম (ছবির মান কম)
WebP / AVIFlossy বা losslessJPEG-এর চেয়ে সাধারণত অনেক ছোট; স্বচ্ছতা আর অ্যানিমেশনও চলেআধুনিক ওয়েবসাইট
HEIC (HEIF)lossyএকই মানে JPEG-এর প্রায় অর্ধেক আকারiPhone-এর ক্যামেরা (পুরোনো কিছু পিসিতে খোলে না)
RAW (.dng, .cr3, .nef …)প্রায় কাঁচাসেন্সরের মূল তথ্য; পরে এডিট করার সর্বোচ্চ সুযোগ; বিশাল ফাইলপেশাদার ফটোগ্রাফি

একটি সাধারণ ভুল: স্ক্রিনশট বা লেখাওয়ালা ছবি JPEG-এ সেভ করলে অক্ষরের চারপাশে ঝিরঝিরে দাগ (artifact) দেখা যায়, আর ফাইলও তেমন ছোট হয় না। আবার ক্যামেরার ছবি PNG-এ রাখলে ফাইল অকারণে ৫–১০ গুণ বড় হয়। নিয়মটি মনে রাখুন: প্রকৃতির ছবি → JPEG/WebP; লেখা, রেখা, লোগো → PNG বা SVG.

৪ · Vector বনাম Raster — লোগো কেন বড় করলেও ঝাপসা হয় না

pixel-এর গ্রিডের একটি বড় সমস্যা আছে: ছোট ছবিকে বড় করলে নতুন তথ্য আসে না। ২০০ × ২০০ pixel-এর লোগো দিয়ে ব্যানার ছাপালে প্রতিটি pixel বড় বর্গ হয়ে যায় — কিনারা খাঁজকাটা, সিঁড়ির মতো (একে বলে pixelation).

এর সমাধান vector graphics. এখানে ছবি pixel দিয়ে রাখা হয় না, রাখা হয় আঁকার নির্দেশ দিয়ে: “(100, 100) কেন্দ্রে ৪৬ একক ব্যাসার্ধের একটি বৃত্ত আঁকো, ভেতরটা #F42A41 রঙে ভরাও।” স্ক্রিন বা প্রিন্টার যখন ছবিটি দেখায়, তখন সেই আকারের জন্য নতুন করে হিসাব করে আঁকে। তাই একটি vector লোগো ভিজিটিং কার্ডে যেমন ধারালো, বিলবোর্ডেও তেমন।

বিষয়Raster (bitmap)Vector
ভেতরে কীpixel-এর গ্রিড, প্রতিটির রংরেখা, বক্ররেখা, আকৃতি আর রঙের গাণিতিক বর্ণনা
বড় করলেঝাপসা বা খাঁজকাটাসবসময় ধারালো
সবচেয়ে ভালোফটোগ্রাফ, জটিল ছায়া আর টেক্সচারলোগো, আইকন, ম্যাপ, ফন্ট, ডায়াগ্রাম
ফাইলের আকারresolution-এর সাথে বাড়েআকৃতির সংখ্যার ওপর নির্ভর করে
ফরম্যাট ও সফটওয়্যারJPEG, PNG, GIF; Photoshop, GIMPSVG, AI, EPS, PDF-এর আকৃতি; Illustrator, Inkscape, Figma

মজার তথ্য: আপনি এই পাতায় যে বাংলা অক্ষরগুলো পড়ছেন, সেগুলোও vector — ফন্টের ভেতরে প্রতিটি অক্ষর বক্ররেখার নির্দেশ হিসেবে রাখা (ফন্ট নিয়ে আরও কথা পর্ব ০৭-এ)। তাই অ+ চেপে লেখা বড় করলেও অক্ষর ঝাপসা হয় না।

তাহলে সব ছবি vector করি না কেন? কারণ ফটোগ্রাফের লাখো ছায়া আকৃতির নির্দেশে লিখতে গেলে নির্দেশ pixel-এর চেয়েও বেশি হয়ে যায়। আর স্ক্রিন নিজেও pixel দিয়ে তৈরি, তাই দেখানোর মুহূর্তে vector-কেও pixel-এ আঁকতে হয় (rasterize).

৫ · শব্দ মানে মাপের তালিকা — sampling, bit depth আর channel

শব্দ আসলে বাতাসের কাঁপুনি। ঢোল পেটালে বাতাসের চাপ একবার বাড়ে, একবার কমে — ঢেউয়ের মতো। সেকেন্ডে এই ঢেউ কতবার আসে, তাকে বলে কম্পাঙ্ক বা frequency, একক হার্জ (Hz). মানুষ মোটামুটি ২০ Hz (খুব মোটা গুমগুম) থেকে ২০,০০০ Hz বা 20 kHz (খুব চিকন শিসের মতো) পর্যন্ত শুনতে পায়।

মাইক্রোফোন এই ওঠানামাকে ভোল্টেজের ওঠানামায় বদলায় — এখনো analog. কম্পিউটারে রাখতে হলে নির্দিষ্ট সময় পরপর তরঙ্গের উচ্চতা মেপে সংখ্যা লিখতে হয়। এই মাপাকে বলে sampling, আর সেকেন্ডে কতবার মাপা হয়, তা হলো sampling rate. এই কাজ করে ADC নামের একটি ছোট চিপ; বাজানোর সময় DAC উল্টো কাজটি করে।

নিচের stepper-এ একটি তরঙ্গকে বিভিন্ন হারে মাপা হচ্ছে। প্রতিটি মাপ পরের মাপ পর্যন্ত ধরে রাখলে একটি “সিঁড়ি” পাওয়া যায় — কম্পিউটারের চোখে তরঙ্গটি আসলে এটাই:

শব্দতরঙ্গের sampling দুটি পূর্ণ ঢেউয়ের একটি মসৃণ তরঙ্গ। বিভিন্ন ধাপে নির্দিষ্ট সময় পরপর তরঙ্গের উচ্চতায় বিন্দু বসানো হয়, আর বিন্দুগুলো থেকে সিঁড়ির মতো রেখা আঁকা হয়। মাপ যত ঘন, সিঁড়ি তত তরঙ্গের কাছাকাছি। সময় →২ চক্র
মাপার হিসাব
প্রতি চক্রে মাপ
কম্পিউটার যা “শোনে”
নিয়মের সাথে মিল
  1. আসল তরঙ্গ। মাইক্রোফোন থেকে আসা ভোল্টেজ — মসৃণ, একটানা। ধরুন এটি একটি সুরের দুটি চক্র (ঢেউ)। কম্পিউটার এখনো কিছুই জানে না।
  2. চক্রে মাত্র ১বার মাপা। প্রতিবার মাপ পড়েছে ঢেউয়ের চূড়ায় — কম্পিউটার ভাবছে কোনো ওঠানামাই নেই, সুরটি হারিয়ে গেছে। এই বিভ্রমকে বলে aliasing.
  3. চক্রে ৪বার। এবার ওঠা-নামা ধরা পড়েছে — কোথায় চূড়া, কোথায় খাদ। নিয়মটি এখানেই: একটি ঢেউ ধরতে চক্রে ২বারের বেশি মাপতে হয়।
  4. চক্রে ৮বার। সিঁড়ির ধাপ ছোট হলো, আকৃতি তরঙ্গের কাছাকাছি। বাজানোর সময় ফিল্টার ধাপগুলো মসৃণ করে দেয়।
  5. চক্রে ১৬বার। প্রায় হুবহু। তবে ১৬গুণ মাপ মানে ১৬গুণ ডেটা — তাহলে ন্যূনতম কতবার মাপলেই চলে? উত্তর নিচে।

Nyquist-এর নিয়ম — কেন CD-তে 44.1 kHz

stepper-এর মূল শিক্ষাটি একটি বিখ্যাত নিয়ম, যাকে বলে Nyquist–Shannon sampling theorem: কোনো সংকেতের সর্বোচ্চ কম্পাঙ্কের দ্বিগুণের বেশি হারে মাপলে সংকেতটি পুরোপুরি ফেরত আনা যায়। মানুষের কান ২০ kHz পর্যন্ত শোনে, তাই সেকেন্ডে ৪০,০০০ বারের বেশি মাপতে হবে। অডিও CD-তে নেওয়া হয়েছে ৪৪,১০০ বার, অর্থাৎ 44.1 kHz — ফিল্টারের জন্য একটু বাড়তি জায়গা রেখে (ভাবনার প্রশ্ন ৪)। ভিডিও আর সিনেমার শব্দে প্রচলিত হার 48 kHz. আর ল্যান্ডফোনে কণ্ঠ মাপা হতো সেকেন্ডে মাত্র ৮,০০০ বার — তাই ফোনে গান ফ্যাসফেসে লাগে।

Bit depth আর channel

প্রতিটি মাপ কতটা সূক্ষ্ম, তা ঠিক করে bit depth. 16-bit মানে প্রতিটি মাপ ৬৫,৫৩৬টি সম্ভাব্য ধাপের একটিতে গোল করে (round) বসানো হয় — একে বলে quantization. ধাপ কম হলে গোল করার ভুল হালকা “শোঁ-শোঁ” আওয়াজ হয়ে শোনা যায়। CD-তে 16-bit, পেশাদার রেকর্ডিংয়ে 24-bit.

আর channel মানে কয়টি আলাদা মাইক্রোফোন-পথ। mono-তে একটি, stereo-তে দুটি (বাম ও ডান কানের জন্য আলাদা), সিনেমা হলের 5.1-এ ছয়টি।

কাঁচা অডিওর আকার = sampling rate × bit depth × channel × সময় (সেকেন্ড) ÷ 8

CD-মানের ১ মিনিটের গান: ৪৪,১০০ × ১৬ × ২ = সেকেন্ডে ১৪,১১,২০০ bit (প্রায় 1411 kbps). ৬০ সেকেন্ডে ৮,৪৬,৭২,০০০ bit, ৮ দিয়ে ভাগ করলে ১,০৫,৮৪,০০০ byte ≈ ১০.৬ MB (বা প্রায় ১০.১ MiB). অর্থাৎ পাঁচ মিনিটের একটি গান কাঁচা অবস্থায় প্রায় ৫০ MB.

অডিও ফরম্যাট আর bitrate

অডিও ফাইলে প্রতি সেকেন্ডে গড়ে কত bit খরচ হয়, তাকে বলে bitrate, একক kbps (kilobit per second). কাঁচা CD-মান 1411 kbps. সেখানে একটি 128 kbps MP3 প্রায় ১১ ভাগের ১ ভাগ — মিনিটে প্রায় ০.৯৬ MB. এত ছোট হলো কীভাবে? MP3 আর তার উত্তরসূরিরা মানুষের কানের দুর্বলতা কাজে লাগায়: জোরালো শব্দের ঠিক পাশের কম্পাঙ্কের মৃদু শব্দ আমরা শুনতে পাই না (একে বলে masking), আর খুব চিকন কম্পাঙ্কে কান কম সংবেদনশীল। যা শোনা যায় না, তা ফেলে দেওয়া হয়। কানের এই বিজ্ঞানকে বলে psychoacoustics.

ফরম্যাটধরনসাধারণ bitrateকোথায়
WAV (PCM)কাঁচা, compression নেই1411 kbps (CD-মান)রেকর্ডিং স্টুডিও, এডিটিং
FLAClosslessপ্রায় 600–1000 kbpsসংগীতপ্রেমীদের সংগ্রহ, আর্কাইভ
MP3lossy128–320 kbpsপুরোনো কিন্তু সব যন্ত্রে চলে
AAClossy96–256 kbpsYouTube, Apple, অনেক স্ট্রিমিং সেবা
Opuslossy৬ থেকে ৫১০ kbps পর্যন্ত, কণ্ঠে খুব কমেও চলেঅনলাইন কল, ভয়েস মেসেজ

একবার lossy করে ফেলা গানের হারানো অংশ আর ফেরত আসে না — তাই নিজের রেকর্ডিংয়ের মূল কপি WAV বা FLAC-এ রাখুন, শেয়ারের কপি MP3/AAC-এ।

৬ · ভিডিও মানে সেকেন্ডে অনেক ছবি — fps, codec আর container

ছোটবেলায় খাতার কোণে প্রতি পাতায় একটু একটু করে বদলানো ছবি এঁকে দ্রুত উল্টালে মনে হতো ছবি নড়ছে। ভিডিও ঠিক এটাই: অনেকগুলো স্থির ছবি (প্রতিটিকে বলে frame) দ্রুত পরপর দেখানো, সাথে শব্দ। সেকেন্ডে কয়টি frame, তাকে বলে frame rate, একক fps (frames per second).

সিনেমায় প্রথাগতভাবে 24 fps, টিভি আর অনলাইন ভিডিওতে 25/30 fps, খেলা আর গেমিংয়ে 60 fps বা বেশি।

ভিডিওর resolution-এর নামগুলো আসে উচ্চতা থেকে: 720p = 1280 × 720 (HD), 1080p = 1920 × 1080 (Full HD), 4K (UHD) = 3840 × 2160 — Full HD-র ঠিক চার গুণ pixel.

কাঁচা ভিডিও কত বড়? — চমকে যাওয়ার মতো হিসাব

ছবির সূত্রই খাটান, শুধু fps দিয়ে গুণ করুন। 1080p, 24-bit রং, 30 fps:

  • এক frame: 1920 × 1080 × 3 = ৬২,২০,৮০০ byte ≈ ৬.২ MB
  • এক সেকেন্ড: × ৩০ = ১৮,৬৬,২৪,০০০ byte ≈ ১৮৭ MB
  • এক ঘণ্টা: × ৩,৬০০ ≈ ৬৭২ GB — শব্দ বাদ দিয়েই!

অথচ একটি দুই ঘণ্টার Full HD সিনেমা সাধারণত ২–৪ GB-এর মধ্যে নামানো যায়। অর্থাৎ ভিডিও compression ফাইলকে প্রায় তিনশো থেকে সাতশো ভাগের এক ভাগ করে ফেলে (দুই ঘণ্টার কাঁচা ভিডিও প্রায় ১,৩৪৪ GB), অথচ চোখে পার্থক্য প্রায় ধরা পড়ে না। এই জাদুর কারিগরের নাম codec.

Codec বনাম container — দুটি আলাদা জিনিস

Codec (coder-decoder) হলো ভিডিও বা অডিওকে সংকুচিত করার আর আবার খোলার নিয়ম ও সফটওয়্যার — যেমন H.264/AVC (২০০৩, আজও সবচেয়ে বেশি যন্ত্রে চলে), H.265/HEVC (২০১৩, একই মানে প্রায় অর্ধেক আকার), VP9 আর AV1 (২০১৮, রয়্যালটি-মুক্ত, YouTube-Netflix ব্যবহার করে)। নতুন codec বেশি সংকুচিত করে, কিন্তু বেশি হিসাব লাগে — তাই ফোন আর GPU-তে এদের জন্য আলাদা হার্ডওয়্যার থাকে।

Container হলো বাক্স — যার ভেতরে ভিডিও স্রোত, এক বা একাধিক অডিও স্রোত (যেমন বাংলা আর ইংরেজি ডাবিং), সাবটাইটেল আর তথ্য (শিরোনাম, সময়) একসাথে প্যাক করা থাকে। MP4, MKV, WebM, MOV — এগুলো container. তাই “.mp4 ফাইল” বললে ভেতরের codec বোঝা যায় না; একটি MP4-এর ভেতরে H.264-ও থাকতে পারে, H.265-ও। পুরোনো টিভিতে একটি MP4 চলে আর আরেকটি চলে না — প্রায়ই কারণ ভেতরের codec.

আসল কৌশল: শুধু যা বদলায় তা রাখা

পরপর দুটি frame প্রায় হুবহু এক — সংবাদ পাঠিকার পেছনের দেয়াল সেকেন্ডের ৩০ ভাগের ১ ভাগ সময়ে বদলায় না। তাই codec প্রতিটি frame আলাদা ছবি হিসেবে রাখে না। মাঝে মাঝে একটি পূর্ণ ছবি রাখে — keyframe (I-frame) — আর বাকি frame-গুলোতে শুধু লিখে রাখে কোন অংশ কোন দিকে কতটা সরল আর কী সামান্য পার্থক্য রইল। একে বলে inter-frame compression. নিচে একটি গড়িয়ে চলা বলের ভিডিওতে দেখুন:

  1. Frame 1I-frameপূর্ণ ছবি
  2. Frame 2P-frameবল ৮ px ডানে
  3. Frame 3–90P/B-frameশুধু বদল
  4. দৃশ্য বদলনতুন I-frameআবার পূর্ণ ছবি
কী রাখা হচ্ছে (উদাহরণের সংখ্যা)
রাখা তথ্য
আনুমানিক আকার
কাঁচা frame হলে
  1. Keyframe (I-frame). প্রথম frame-টি পুরো ছবি হিসেবে রাখা হয় — একা দেখলেও বোঝা যায়। JPEG-এর মতো সংকোচনে কাঁচা ৬.২ MB নেমে আসে একশো KB-র ঘরে (সংখ্যাগুলো উদাহরণ মাত্র)।
  2. পরের frame — P-frame. মাঠ আর আকাশ একই আছে, শুধু বল একটু সরেছে। codec ছোট ছোট ব্লক ধরে খোঁজে কোন ব্লক কোথায় সরেছে, তারপর লেখে: “এই ব্লক ৮ pixel ডানে” (একে বলে motion vector), আর যেটুকু মেলেনি তার ছোট পার্থক্য। ফলে পুরো ছবির বদলে কয়েক KB.
  3. আরও অনেক frame. এভাবে পরের অনেক frame শুধু বদলের হিসাব। কিছু frame (B-frame) আগের আর পরের — দুই দিকের frame থেকে ধার করে, তাতে আরও ছোট হয়। স্থির দৃশ্যে সংকোচন সবচেয়ে বেশি, বৃষ্টি বা দ্রুত নড়াচড়ায় সবচেয়ে কম।
  4. দৃশ্য বদল — নতুন keyframe. ক্যামেরা হঠাৎ গ্যালারির দিকে ঘুরল; আগের frame থেকে ধার করার কিছু নেই। তাই codec আবার পূর্ণ ছবি রাখে।
  5. কেন নিয়ম করে keyframe? ভিডিওর মাঝখানে লাফ দিলে প্লেয়ারকে নিকটতম keyframe থেকে হিসাব শুরু করতে হয়। আর ডেটা নষ্ট হলে ছবিতে “গলে যাওয়া” দাগ দেখা যায়, যা পরের keyframe এলে ঠিক হয়ে যায়।

স্ট্রিমিং, “Auto” কোয়ালিটি আর মোবাইল ডেটা

YouTube একই ভিডিও কয়েকটি মানে (240p থেকে 4K) কয়েক সেকেন্ডের টুকরো করে রাখে। “Auto”-তে প্লেয়ার প্রতিটি টুকরো নামানোর আগে ইন্টারনেটের গতি মেপে মান বেছে নেয়। একে বলে adaptive streaming. তাই ট্রেনে ছবি হঠাৎ ঝাপসা হয়, কিন্তু ভিডিও থামে না।

কত মোবাইল ডেটা খরচ হবে, তা bitrate থেকে নিজেই হিসাব করতে পারেন: ঘণ্টায় ডেটা (MB) = bitrate (Mbps) × ৩,৬০০ ÷ ৮. 1 Mbps-এর ভিডিওতে ঘণ্টায় প্রায় ৪৫০ MB, আর 5 Mbps-এ প্রায় ২.২৫ GB. স্ট্রিমিং সেবাগুলোর নিজেদের দেওয়া আনুমানিক হিসাবে সাধারণ মান (SD) ঘণ্টায় মোটামুটি ১ GB-এর কম, HD ঘণ্টায় ১–৩ GB, আর 4K ঘণ্টায় ৭ GB বা তারও বেশি। ডেটা বাঁচাতে মোবাইলে 480p বা 360p বেছে নিন।

৭ · Compression-এর ভেতরে — RLE, Huffman আর lossy বনাম lossless

সব compression-এর পেছনে দুটির একটি বুদ্ধি কাজ করে:

  • Lossless — পুনরাবৃত্তি ছেঁটে ফেলা। একই জিনিস বারবার এলে প্রতিবার না লিখে সংক্ষেপে লেখা। খুললে হুবহু আগের ফাইল ফেরত আসে, একটি bit-ও বদলায় না। উদাহরণ: ZIP, PNG, FLAC, GIF.
  • Lossy — যা টের পাওয়া যায় না তা ফেলে দেওয়া। চোখ-কান যে খুঁটিনাটি ধরতে পারে না, তা চিরতরে বাদ। খুললে আসলের খুব কাছাকাছি কিন্তু হুবহু নয়। উদাহরণ: JPEG, MP3, AAC, H.264, WebP-এর lossy রূপ।

প্রোগ্রাম, Word ফাইল বা ব্যাংকের হিসাবে একটি অক্ষরও বদলানো চলবে না — তাই এদের জন্য শুধু lossless.

Run-length encoding (RLE) — সবচেয়ে সহজ কৌশল

একটি সাদা-কালো ছবির এক সারি pixel ভাবুন: সাদা সাদা সাদা সাদা সাদা কালো কালো কালো সাদা সাদা। প্রতিটি না লিখে লিখুন “৫টি সাদা, ৩টি কালো, ২টি সাদা”। এটাই run-length encoding (RLE) — একই জিনিসের টানা সারিকে (run) “কয়টি + কী” দিয়ে লেখা।

এক সারি pixel-এর RLE দশটি বর্গের একটি সারি: প্রথম পাঁচটি সাদা, পরের তিনটি কালো, শেষ দুটি সাদা। ধাপে ধাপে প্রতিটি টানা অংশের নিচে বন্ধনী আর গণনা দেখানো হয়। শেষ ধাপে সাদা-কালো পালাক্রমে আসা আরেকটি সারি দেখানো হয়। 5W 3B 2W 1W1B1W1B1W1B1W1B1W1B খোলা হলো: 5W → WWWWW, 3B → BBB, 2W → WW ✓
লেখা হচ্ছে
মূল সারি
RLE ফল
আকারের তুলনা
  1. মূল সারি। W = সাদা, B = কালো. দশটি pixel মানে দশটি চিহ্ন। RLE বাঁ থেকে ডানে পড়বে আর গুনবে, একই চিহ্ন কতবার টানা আসছে।
  2. প্রথম run. W, W, W, W, W — তারপর B এল, তাই run শেষ। লেখা হলো 5W: পাঁচটি চিহ্নের জায়গায় দুটি।
  3. দ্বিতীয় run. B, B, B — তারপর আবার W. লেখা হলো 3B. এখন পর্যন্ত 5W3B.
  4. শেষ run. W, W — সারি শেষ। মোট ফল 5W3B2W: দশটি চিহ্ন থেকে ছয়টি।
  5. ফেরত খোলা (decompress). উল্টো দিকে পড়ুন: “5W” মানে পাঁচটি W লিখুন, “3B” মানে তিনটি B, “2W” মানে দুটি W. ঠিক আগের সারি — একটি pixel-ও বদলায়নি। তাই RLE হলো lossless.
  6. যেখানে RLE হেরে যায়। দাবার ছকের মতো সাদা-কালো পালাক্রমে এলে প্রতিটি run মাত্র ১টি — 1W1B1W… — দশটির জায়গায় বিশটি চিহ্ন! ক্যামেরার ছবিতেও পাশাপাশি pixel প্রায় কখনো হুবহু এক নয়, তাই সেখানে RLE অচল।

Huffman coding — বেশি আসে যে, তার কোড ছোট

মোর্স কোডের কথা মনে আছে (পর্ব ১৮)? ইংরেজিতে সবচেয়ে বেশি আসা অক্ষর E-এর কোড মাত্র একটি ডট, আর কম আসা Q-এর কোড লম্বা। ১৯৫২ সালে MIT-র ছাত্র David Huffman এই বুদ্ধিকে নিখুঁত গাণিতিক পদ্ধতিতে রূপ দেন — Huffman coding. সাধারণ ASCII-তে প্রতিটি অক্ষর সমান ৮ bit; Huffman-এ যে অক্ষর বেশিবার আসে, তার কোড ছোট, যে কম আসে তার লম্বা।

উদাহরণ: ABRACADABRA — ১১টি অক্ষর। A আসে ৫বার, B ২বার, R ২বার, C আর D একবার করে।

অক্ষরকতবারHuffman কোডমোট bit
A৫0৫ × ১ = ৫
B২100২ × ৩ = ৬
R২101২ × ৩ = ৬
C১110৩
D১111৩
মোট২৩ bit

ASCII-তে লাগত ১১ × ৮ = ৮৮ bit; পাঁচটি অক্ষরের জন্য সমান ৩-bit কোড দিলেও লাগত ৩৩ bit. Huffman-এ মাত্র ২৩. লক্ষ করুন, কোনো কোড অন্য কোডের শুরুর অংশ নয় (0 দিয়ে শুধু A শুরু হয়, বাকি সবাই 1 দিয়ে)। তাই মাঝে কোনো ফাঁক বা দাগ ছাড়াই 0100101… পড়ে নিশ্চিতভাবে আলাদা করা যায়। ZIP আর PNG-এর ভেতরের DEFLATE পদ্ধতি আগে-দেখা টুকরোর পুনরাবৃত্তি সরায় (LZ77), তারপর Huffman দিয়ে আরও ছোট করে।

Lossy-র কৌশল আর বারবার সেভ করার বিপদ

JPEG ছবিকে ৮ × ৮ pixel-এর ছোট ব্লকে ভাগ করে। প্রতিটি ব্লককে একটি গাণিতিক রূপান্তরে (DCT) মোটামুটি রং আর সূক্ষ্ম খুঁটিনাটিতে ভাঙে; চোখ সূক্ষ্ম খুঁটিনাটি কম ধরে, তাই সেগুলো মোটা দাগে গোল করা বা ফেলে দেওয়া হয়। “Quality” সেটিং ঠিক করে কতটা ফেলা হবে।

এখান থেকে একটি বাস্তব সমস্যা: generational loss. একটি JPEG খুলে আবার JPEG হিসেবে সেভ করলে আবার কিছু খুঁটিনাটি ফেলা হয়। WhatsApp বা Facebook-এ একটি ছবি এক গ্রুপ থেকে আরেক গ্রুপে বারবার ফরোয়ার্ড হলে, প্রতিবার অ্যাপ নিজের মতো করে আবার সংকুচিত করে — তাই দশ হাত ঘোরা ছবি ঝাপসা, দাগে ভরা আর রং-চটা দেখায়। lossless ফাইলে (ZIP, PNG) এই সমস্যা নেই।

নিজে চালিয়ে দেখুন — pixel, RLE আর আকারের হিসাব

নিচের কোডটি Run চাপলে একটি ৮ × ৮ pixel-এর লাল হৃদয় আঁকে — প্রতিটি pixel তিনটি RGB সংখ্যা দিয়ে। তারপর কাঁচা আকার, প্রতিটি সারির RLE রূপ আর সংকোচনের অনুপাত লেখে, আর শেষে এই পর্বের অডিও ও ভিডিওর হিসাব দুটিও মিলিয়ে দেয়।

const C = { W: [255, 255, 255], R: [220, 30, 60] };   // অক্ষর → [R, G, B]
const img = ['WWWWWWWW', 'WRRWWRRW', 'RRRRRRRR', 'RRRRRRRR',
             'WRRRRRRW', 'WWRRRRWW', 'WWWRRWWW', 'WWWWWWWW'];
const ctx = document.getElementById('cv').getContext('2d');
img.forEach((row, y) => [...row].forEach((ch, x) => {
  ctx.fillStyle = `rgb(${C[ch].join(',')})`;           // প্রতিটি pixel = ৩টি সংখ্যা
  ctx.fillRect(x * 20, y * 20, 20, 20);                  // ১ pixel = ২০×২০ বর্গ
}));
console.log('Row 2 RGB:', [...img[1]].slice(0, 3).map(c => C[c].join(',')).join(' | '), '...');
const raw = 8 * 8 * 3;                                   // প্রস্থ × উচ্চতা × ৩ byte
const rle = (s) => s.replace(/(.)\1*/g, (m) => m.length + m[0]);
const rows = img.map(rle);
console.log('RLE rows:', rows.join(' '));
const runs = rows.join('').match(/\d+\D/g).length;       // প্রতিটি run = ১ byte গণনা + ৩ byte রং
console.log(`Raw ${raw} bytes, RLE ${runs} runs x 4 = ${runs * 4} bytes, ratio ${(raw / (runs * 4)).toFixed(2)}:1`);
const audio = 44100 * 16 * 2 * 60 / 8;                   // CD-মান, stereo, ১ মিনিট
const video = 1920 * 1080 * 3 * 30;                      // 1080p, 30 fps, ১ সেকেন্ড
console.log(`CD audio 1 min = ${(audio / 1e6).toFixed(2)} MB, raw 1080p video 1 s = ${(video / 1e6).toFixed(1)} MB`);

Run চাপলে ওপরে ৮ × ৮ বর্গের একটি লাল হৃদয় আঁকা হয়, আর আউটপুটে আসে চার লাইন: Row 2 RGB: 255,255,255 | 220,30,60 | 220,30,60 ... — দ্বিতীয় সারির প্রথম তিনটি pixel আসলে এই সংখ্যাগুলোই। তারপর RLE rows: 8W 1W2R2W2R1W 8R 8R 1W6R1W 2W4R2W 3W2R3W 8W — প্রতিটি সারির RLE রূপ; একরঙা সারিগুলো একটিমাত্র run. তৃতীয় লাইন Raw 192 bytes, RLE 18 runs x 4 = 72 bytes, ratio 2.67:1: কাঁচা ছবি ৮ × ৮ × ৩ = ১৯২ byte; RLE-এ ১৮টি run, প্রতিটিতে ১ byte গণনা আর ৩ byte রং, মোট ৭২ byte — আড়াই গুণেরও বেশি ছোট। শেষ লাইন CD audio 1 min = 10.58 MB, raw 1080p video 1 s = 186.6 MB — অংশ ৫ আর ৬-এর হিসাব দুটি হুবহু মিলে গেল। কোডের /(.)\1*/g মানে “একটি অক্ষর, তারপর সেই অক্ষর যতবার খুশি” — অর্থাৎ একটি run.

পরীক্ষা ও ইন্টারভিউতে — এ ধরনের প্রশ্ন প্রায়ই আসে:

  • Pixel কী? ডিজিটাল ছবির ক্ষুদ্রতম একক — এক রঙের একটি বর্গ; picture element-এর সংক্ষেপ।
  • 1024 × 768 resolution-এর 24-bit ছবির কাঁচা আকার? 1024 × 768 × 3 = ২৩,৫৯,২৯৬ byte = ২.২৫ MB (পাঠ্যবইয়ের মতো ১ MB = ১০২৪ × ১০২৪ ধরে; সঠিক নামে ২.২৫ MiB, আর ১ MB = ১০,০০,০০০ byte ধরলে প্রায় ২.৩৬ MB হয়)।
  • Lossy আর lossless-এর উদাহরণ? lossy: JPEG, MP3, MPEG/H.264; lossless: ZIP, PNG, GIF, FLAC. lossless-এ হুবহু ফেরত আসে, lossy-তে আসে না।
  • Vector আর raster-এর পার্থক্য? raster = pixel-এর গ্রিড, বড় করলে ঝাপসা (JPEG, PNG); vector = গাণিতিক আকৃতি, যেকোনো আকারে ধারালো (SVG, AI).
  • Sampling rate-এর একক কী, আর CD-তে কত? হার্জ (Hz) — সেকেন্ডে কতবার মাপা; CD-তে 44.1 kHz, অর্থাৎ সেকেন্ডে ৪৪,১০০ বার।

আরও গভীরে: আসল JPEG আর ভিডিও codec রঙকেও চতুরভাবে ভাগ করে — উজ্জ্বলতা (Y) পুরো resolution-এ রাখে, আর রঙের তথ্য (Cb, Cr) অর্ধেক বা চার ভাগের এক ভাগে (একে বলে chroma subsampling, যেমন 4:2:0), কারণ চোখ রঙের খুঁটিনাটি কম ধরে। pixel নিয়ে নিজে কোড লিখতে চাইলে আমাদের JavaScript প্রোগ্রামিং কোর্সে canvas দিয়ে শুরু করতে পারেন, আর ওয়েবসাইটে কোন ফরম্যাটে ছবি দেবেন তা HTML & CSS কোর্সে বিস্তারিত।

৮ · ব্যবহারিক পরামর্শ — কোন কাজে কোন ফরম্যাট, আর সবার জন্য মিডিয়া

এতক্ষণের তত্ত্ব প্রতিদিনের কাজে কীভাবে লাগে, তার একটি ছোট নির্দেশিকা:

কাজযা করবেনকেন
চাকরির আবেদন, সার্টিফিকেট, অফিসের দলিল পাঠানোPDF বানিয়ে পাঠানযেকোনো যন্ত্রে একই রকম দেখায়, লেখা ধারালো থাকে
আসল মানের ছবি কাউকে পাঠানোমেসেজিং অ্যাপে “Document/File” হিসেবে পাঠান, বা HD অপশন বেছে নিনসাধারণ ছবি হিসেবে পাঠালে অ্যাপ নিজে সংকুচিত করে, resolution কমায়
অনলাইন ফর্মে ছবি-স্বাক্ষর আপলোড (যেমন নির্দিষ্ট KB সীমা)resolution কমান (যেমন 300 × 300), তারপর JPEG quality একটু কমানpixel কমালে আকার বর্গহারে কমে; quality কমানো দ্বিতীয় ধাপ
পোস্টার, ব্যানার, বই ছাপাছবিতে অন্তত 300 dpi-র মতো যথেষ্ট pixel; লোগো vector; ছাপাখানার কথামতো CMYKস্ক্রিনের ছোট ছবি ছাপলে ঝাপসা হয়
ছবি-ভিডিওর মূল কপি সংরক্ষণমূল ফাইল অপরিবর্তিত রেখে ব্যাকআপ (পর্ব ১৪-এর ক্লাউড বা হার্ডডিস্ক); এডিট করুন কপিতেবারবার lossy সেভে generational loss হয়

লুকানো তথ্য: ছবির ফাইলের ভেতরে EXIF নামে বাড়তি তথ্য থাকে — তারিখ-সময়, আর লোকেশন চালু থাকলে ঠিক কোথায় তোলা। “ফাইল” হিসেবে পাঠালে এটি থেকে যেতে পারে; তাই ক্যামেরার লোকেশন বন্ধ রাখুন, বা শেয়ারের আগে Properties থেকে মুছে ফেলুন।

সবার জন্য মিডিয়া — caption আর alt text

ছবি আর ভিডিও সংখ্যা হলেও তার উদ্দেশ্য মানুষের কাছে তথ্য পৌঁছানো — সব মানুষের কাছে। দৃষ্টিপ্রতিবন্ধী মানুষ screen reader দিয়ে ওয়েব “শোনেন”, কিন্তু pixel-এর গ্রিড থেকে screen reader কিছুই বলতে পারে না। তাই ছবির সাথে একটি ছোট বর্ণনা — alt text — দিন: “সবুজ জমিনে লাল বৃত্ত — বাংলাদেশের পতাকা”। Word, PowerPoint, Facebook আর বেশিরভাগ ওয়েবসাইট-নির্মাতায় এর জায়গা আছে (পর্ব ০৯ আর ১২-এ দেখেছেন)।

ভিডিওর বেলায় caption বা সাবটাইটেল দিন — কথাগুলো লেখা হিসেবে স্ক্রিনে। শ্রবণপ্রতিবন্ধী মানুষ, শব্দ বন্ধ রেখে দেখা দর্শক — সবাই উপকৃত হন। YouTube-এর নিজে বানানো বাংলা caption-এ ভুল থাকতে পারে, তাই একবার পড়ে ঠিক করে নিন। এগুলো accessibility-র অংশ।

৯ · AI-এর যুগে — বানানো ছবি, নকল কণ্ঠ আর যাচাইয়ের উপায়

ছবি মানে শুধু pixel-এর সংখ্যা, শব্দ মানে শুধু sample-এর সংখ্যা — আর সংখ্যা যেকোনো প্রোগ্রাম লিখে ফেলতে পারে। আজকের AI মডেল লাখো ছবি আর কণ্ঠ থেকে ধাঁচ শিখে এমন pixel আর sample বানায়, যা দেখতে-শুনতে আসলের মতো, কিন্তু কখনো ঘটেনি। একজন মানুষের মুখ বা কণ্ঠ নকল করে বানানো এমন ভিডিও-অডিওকে বলে deepfake.

ঝুঁকিগুলো বাস্তব: নির্বাচনের আগে নেতার নকল ভিডিও, পরিচিত কারও কণ্ঠ নকল করে ফোনে “আমি বিপদে আছি, এখনই bKash-এ টাকা পাঠাও”, কিংবা কারও মুখ বসিয়ে অপমানজনক ছবি। তাই প্রশ্ন হলো, একটি ছবি বা অডিও পেলে আপনি কীভাবে যাচাই করবেন।

উপায়কীভাবে করবেন
Reverse image searchGoogle Lens বা TinEye-তে ছবিটি দিন — আগে কোথায়, কবে, কোন প্রসঙ্গে ছাপা হয়েছিল দেখুন।
উৎস খোঁজাকে প্রথম পোস্ট করেছে? নির্ভরযোগ্য সংবাদমাধ্যম বা সংশ্লিষ্ট প্রতিষ্ঠানের নিজস্ব পাতায় একই খবর আছে কি?
Content Credentials (C2PA)কিছু ক্যামেরা, এডিটিং সফটওয়্যার আর AI টুল এখন ছবির সাথে ডিজিটাল স্বাক্ষরসহ “উৎপত্তির হিসাব” জুড়ে দেয় — কে বানিয়েছে, AI ব্যবহার হয়েছে কি না, কী এডিট হয়েছে। তবে এমন তথ্য না থাকলে ছবিটি নকল প্রমাণ হয় না — অনেক অ্যাপ আপলোডের সময় এটি মুছে ফেলে।
আলাদা পথে যাচাইপরিচিত কারও কণ্ঠে টাকা চাওয়ার কল এলে ফোন কেটে নিজে তাঁর চেনা নম্বরে ফোন করুন; পরিবারে একটি গোপন “পাসওয়ার্ড প্রশ্ন” ঠিক করে রাখুন।

AI চ্যাটবট এখানে সাহায্যকারী, বিচারক নয়। “এই ছবি কি AI-এর বানানো?” — এমন প্রশ্নে চ্যাটবট আত্মবিশ্বাসী ভুল উত্তর দিতে পারে (AI hallucination); অনলাইনের “AI detector” টুলগুলোও প্রায়ই ভুল করে। চ্যাটবটকে বরং যাচাইয়ের পরিকল্পনা বানাতে বলুন:

নিচের prompt-টি কপি করে নিজের পরিস্থিতি বসিয়ে ব্যবহার করুন। খেয়াল করুন, AI-কে রায় দিতে নয়, যাচাইয়ের ধাপ দিতে বলা হয়েছে:

একটি ছবি/ভিডিও/ভয়েস মেসেজ পেয়েছি: [এখানে সংক্ষেপে লেখো — কী দেখাচ্ছে, কোথায় পেয়েছি, কে পাঠিয়েছে]। ১. এটি আসল কি না যাচাই করতে আমি নিজে কোন কোন ধাপ নিতে পারি, ক্রম অনুযায়ী তালিকা দাও (reverse image search, উৎস খোঁজা, Content Credentials ইত্যাদি)। ২. এই ধরনের মিডিয়ায় সাধারণত কোন লক্ষণ দেখে সন্দেহ জাগা উচিত, আর কোন লক্ষণগুলো আজকাল আর নির্ভরযোগ্য নয়? ৩. যাচাই শেষ না হওয়া পর্যন্ত আমার কী করা উচিত নয় (যেমন শেয়ার করা, টাকা পাঠানো)? ৪. তুমি নিজে ছবিটি দেখে এটি আসল না নকল — এমন নিশ্চিত রায় দেবে না; অনিশ্চয়তা স্পষ্ট করে বলবে।

শেয়ার করার আগে — যাচাইয়ের চেকলিস্ট

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন — তারপর “→ উত্তর” চাপুন।

প্র ০১পৃথিবীর প্রথম ডিজিটাল ছবিটি ছিল একটি শিশুর মুখ, মাত্র ১৭৬ × ১৭৬ pixel-এর। কে, কেন বানিয়েছিলেন, আর এর উত্তরাধিকার কী?

১৯৫৭ সালে যুক্তরাষ্ট্রের National Bureau of Standards (আজকের NIST)-এ কম্পিউটার বিজ্ঞানী Russell Kirsch আর তাঁর দল SEAC নামের একটি প্রাথমিক stored-program কম্পিউটারের সাথে একটি ঘরে-বানানো স্ক্যানার জুড়েছিলেন। প্রশ্নটি ছিল: কম্পিউটার কি ছবি “দেখতে” পারে? পরীক্ষার জন্য Kirsch বেছে নেন তাঁর তিন মাস বয়সী ছেলে Walden-এর একটি ছবি। একটি ঘূর্ণায়মান ড্রামে ছবিটি বসিয়ে একটি আলোর রশ্মি দিয়ে বিন্দু বিন্দু করে পড়া হয় — প্রতিটি বিন্দু হয় কালো, নয় সাদা; অর্থাৎ 1-bit. ফল: প্রায় ৫ সেন্টিমিটারের একটি ছবি, ১৭৬ × ১৭৬ = ৩০,৯৭৬টি pixel.

আজকের চোখে ছবিটি একেবারে খাঁজকাটা; কিন্তু মুখ চেনা যায়। এই পর্বের সব হিসাব — resolution, bit depth, গ্রিড ধরে সংখ্যা — জন্ম নিয়েছে এখান থেকেই। পরে এই ধারার কাজ চিকিৎসার ছবি (CT স্ক্যান), উপগ্রহের ছবি আর অক্ষর চেনা (OCR)-র পথ খুলে দেয়। ২০০৩ সালে Life পত্রিকা ছবিটিকে “বিশ্ব বদলে দেওয়া ১০০ ছবি”-র তালিকায় রাখে।

মজার ব্যাপার, বৃদ্ধ বয়সে Kirsch নিজেই চৌকো pixel-এর সিদ্ধান্তটিকে একটি “ভুল” বলেছিলেন — ২০১০ সালের দিকে তিনি প্রস্তাব করেন, ছবির কিনারা অনুযায়ী আকার বদলানো pixel দিয়ে কম তথ্যে বেশি মসৃণ ছবি পাওয়া যায়। কিন্তু ততদিনে চৌকো গ্রিড ক্যামেরা, স্ক্রিন, ফাইল ফরম্যাট আর প্রিন্টার — সব জায়গায় এমনভাবে বসে গেছে যে বদলানো প্রায় অসম্ভব। একে প্রযুক্তিতে বলে lock-in: প্রথম দিকের একটি সহজ সিদ্ধান্ত পুরো শিল্পের ভিত্তি হয়ে যায়।

মূল উপলব্ধি: ডিজিটাল ছবির মূল ধারণা — আলোকে গ্রিডে ভাগ করে প্রতিটি ঘর মেপে সংখ্যা লেখা — ৬০ বছরেরও বেশি পুরোনো, আর বদলায়নি; বদলেছে শুধু ঘরের সংখ্যা (৩১ হাজার থেকে কয়েক কোটি) আর প্রতিটি ঘরের bit. আর প্রথম দিকের সহজ নকশা-সিদ্ধান্ত অনেক সময় চিরস্থায়ী হয়ে যায়।

প্র ০২১৯৯২ সালের JPEG মানদণ্ড আজও প্রায় সব ক্যামেরা আর ফোনে চলে। ছবির কোন অংশ ফেলে দিয়ে এটি ১০ গুণ ছোট করে, আর এর পেছনের গণিত কোথা থেকে এল?

১৯৮০-র দশকে ছবি রাখা আর পাঠানো ছিল খুব দামি। তাই ISO আর তখনকার CCITT (আজকের ITU-T) মিলে ১৯৮৬ সালে একটি যৌথ বিশেষজ্ঞ দল গঠন করে — Joint Photographic Experts Group, সংক্ষেপে JPEG. ১৯৯২ সালে তাদের মানদণ্ড অনুমোদিত হয়, আর ওয়েবের বিস্তারের সাথে এটি ছবির সর্বজনীন ভাষা হয়ে ওঠে।

JPEG-এর মূল অস্ত্র DCT (Discrete Cosine Transform). এর মূল প্রস্তাবক Nasir Ahmed, T. Natarajan আর K. R. Rao — ১৯৭৪ সালে প্রকাশিত একটি গবেষণাপত্রে। DCT একটি ৮ × ৮ ব্লকের ৬৪টি pixel-কে ৬৪টি “ঢেউয়ের নকশার” মিশ্রণ হিসেবে প্রকাশ করে: প্রথমটি পুরো ব্লকের গড় উজ্জ্বলতা, তারপর ধীরে ধীরে বদলানো মোটা ঢেউ, আর শেষে খুব দ্রুত ওঠানামা করা চিকন ঢেউ — সূক্ষ্ম কিনারা আর দানা। DCT নিজে কিছুই ফেলে না; শুধু তথ্যকে এমনভাবে সাজায় যাতে “গুরুত্বপূর্ণ” আর “গুরুত্বহীন” আলাদা হয়ে যায়।

ফেলার কাজটি করে quantization: প্রতিটি ঢেউয়ের মান একটি সংখ্যা দিয়ে ভাগ করে গোল করা হয় — চিকন ঢেউয়ের জন্য ভাজক বড়, তাই বেশিরভাগ চিকন ঢেউ গোল হয়ে শূন্য হয়ে যায়। মানুষের চোখ মসৃণ আকাশে সামান্য উজ্জ্বলতার পার্থক্য ধরে, কিন্তু ঘাস বা চুলের সূক্ষ্ম দানার নিখুঁততা ধরে না — JPEG ঠিক এটাই কাজে লাগায়। শূন্যে ভরা সংখ্যাগুলো এরপর RLE আর Huffman (এই পর্বের দুই কৌশল) দিয়ে আরও ছোট হয়। রঙের খুঁটিনাটি কমানো (chroma subsampling) যোগ হলে সাধারণ ছবি প্রায় ১০ ভাগের এক ভাগ হয়ে যায়, চোখে তেমন পার্থক্য ছাড়াই।

দুর্বলতাও এখান থেকে: লেখা বা ধারালো রেখায় চিকন ঢেউই আসল তথ্য, তাই সেখানে JPEG অক্ষরের চারপাশে ঝিরঝিরে দাগ ফেলে। পরে WebP, AVIF এসেছে, কিন্তু সর্বজনীন সমর্থনের জোরে JPEG আজও টিকে আছে।

মূল উপলব্ধি: ভালো lossy compression মানে এলোমেলো তথ্য ফেলা নয় — আগে তথ্যকে এমনভাবে সাজানো যাতে মানুষের ইন্দ্রিয়ের কাছে কোনটি কম জরুরি তা আলাদা হয়, তারপর শুধু সেটুকু ফেলা। গণিত আর মানুষের জীববিজ্ঞান এখানে হাত মিলিয়েছে।

প্র ০৩MP3 কীভাবে গানকে ১০ গুণ ছোট করল, আর এই একটি ফরম্যাট কেন পুরো সংগীতশিল্পকে ওলটপালট করে দিল?

১৯৮০-র দশকের শেষে জার্মানির Fraunhofer Institute (IIS)-এ Karlheinz Brandenburg আর তাঁর সহকর্মীরা একটি প্রশ্নে কাজ করছিলেন: টেলিফোন লাইনের মতো সরু পথে কি গান পাঠানো যায়? তাঁদের ভিত্তি ছিল psychoacoustics — কান কী শোনে আর কী শোনে না, তার বিজ্ঞান। জোরালো একটি সুর বাজার সময় তার কাছাকাছি কম্পাঙ্কের মৃদু শব্দ চাপা পড়ে যায় (masking); একটি জোরালো শব্দের ঠিক আগে-পরের মুহূর্তের মৃদু শব্দও। যা কানে পৌঁছালেও মস্তিষ্ক টের পায় না, তা রাখার কী দরকার?

এই কাজ থেকে জন্ম নেয় MPEG-1 Audio Layer III — ১৯৯০-এর দশকের শুরুতে আন্তর্জাতিক মানদণ্ড হিসেবে গৃহীত। ১৯৯৫ সালে Fraunhofer ফাইলের শেষাংশ হিসেবে “.mp3” নামটি বেছে নেয়। 128 kbps-এ CD-র প্রায় ১১ ভাগের এক ভাগে গান — তখনকার ধীর ইন্টারনেটেও একটি গান কয়েক মিনিটে নামানো সম্ভব হলো।

তারপর এল ঝড়। ১৯৯৯ সালের জুনে কলেজ-ছাত্র Shawn Fanning চালু করেন Napster — মানুষ নিজেদের কম্পিউটারের MP3 সরাসরি একে অপরের সাথে বিনিময় করতে পারত (peer-to-peer). অল্প সময়ে বিপুল মানুষ এতে যোগ দেয়, আর CD বিক্রি ভেঙে পড়তে থাকে। কপিরাইট লঙ্ঘনের মামলায় ২০০১ সালে Napster বন্ধ হয়, কিন্তু ফেরার পথ ছিল না। ২০০৩ সালে Apple-এর iTunes Store গান প্রতি অল্প দামে বৈধ ডাউনলোড চালু করে, আর পরে Spotify-র মতো স্ট্রিমিং সেবা “গান কেনা” থেকে “গান শোনার সুযোগ ভাড়া নেওয়া”-য় পুরো ব্যবসা সরিয়ে নেয়।

MP3 নিজে নিছক একটি গাণিতিক কৌশল; কিন্তু ফাইল ১০ গুণ ছোট হলে বিতরণের অর্থনীতি বদলে যায়, আর আইন-ব্যবসাকে নতুন করে মানিয়ে নিতে হয় (কপিরাইট — পর্ব ৪৫)।

মূল উপলব্ধি: compression শুধু জায়গা বাঁচানোর কৌশল নয়; এটি কোন জিনিস কত সহজে, কত সস্তায় ছড়াতে পারবে তা ঠিক করে — আর সেই কারণে পুরো শিল্প আর সমাজকেও বদলে দিতে পারে।

প্র ০৪“সর্বোচ্চ কম্পাঙ্কের দ্বিগুণের বেশি হারে মাপলেই যথেষ্ট” — Nyquist–Shannon-এর এই নিয়ম কোথা থেকে এল, আর CD-র হার ঠিক ৪৪,১০০ কেন, ৪০,০০০ বা ৫০,০০০ কেন নয়?

১৯২৮ সালে Bell Labs-এর প্রকৌশলী Harry Nyquist টেলিগ্রাফ লাইন নিয়ে একটি গবেষণাপত্রে দেখান, একটি নির্দিষ্ট ব্যান্ডউইথের লাইনে সেকেন্ডে সর্বোচ্চ কতগুলো আলাদা সংকেত পাঠানো যায় — ব্যান্ডউইথের দ্বিগুণ। উল্টো দিক থেকে সেটাই আজকের sampling-এর নিয়ম। ১৯৪৯ সালে Claude Shannon “Communication in the Presence of Noise” প্রবন্ধে নিয়মটিকে পরিষ্কার উপপাদ্য আকারে প্রমাণসহ লেখেন: কোনো সংকেতে যদি B হার্জের বেশি কম্পাঙ্ক না থাকে, তবে সেকেন্ডে 2B-র বেশি বার মাপলে মাপগুলো থেকে মূল সংকেত হুবহু ফেরত আনা যায়। সোভিয়েত বিজ্ঞানী Vladimir Kotelnikov ১৯৩৩ সালে স্বাধীনভাবে একই ফলে পৌঁছেছিলেন।

“হুবহু” শব্দটি চমকে দেওয়ার মতো — অসীম মসৃণ তরঙ্গ, অথচ সসীম মাপ থেকে পুরোপুরি ফেরত! শর্ত একটিই: সীমার ওপরের কম্পাঙ্ক যেন একেবারেই না থাকে। থাকলে stepper-এ দেখা aliasing হয় — উঁচু সুর ভুল করে নিচু সুর হিসেবে রেকর্ড হয়, আর পরে আলাদা করা অসম্ভব। সিনেমায় চাকা উল্টো ঘুরছে মনে হওয়াও একই ঘটনা। তাই রেকর্ডিংয়ে মাপার আগে একটি anti-aliasing ফিল্টার ২০ kHz-এর ওপরের সব শব্দ ছেঁকে ফেলে। বাস্তবের ফিল্টার খাড়া দেয়ালের মতো কাটতে পারে না, ধীরে ধীরে নামে; সেই ঢালের জন্য ২০ থেকে প্রায় ২২ kHz পর্যন্ত ফাঁকা জায়গা দরকার — তাই ৪০ নয়, ৪৪.১।

আর ঠিক ৪৪,১০০ কেন? CD আসার আগে (Sony আর Philips-এর CD বাজারে আসে ১৯৮২ সালে) ডিজিটাল অডিও রাখার মতো বড় স্টোরেজ ছিল না, তাই স্টুডিওগুলো ভিডিও ক্যাসেট রেকর্ডারে অডিওর সংখ্যা “ছবি” হিসেবে রাখত। ভিডিওর প্রতিটি লাইনে ৩টি sample, NTSC পদ্ধতিতে সেকেন্ডে ৬০টি field আর প্রতি field-এ ব্যবহারযোগ্য ২৪৫টি লাইন: ৬০ × ২৪৫ × ৩ = ৪৪,১০০. ইউরোপের PAL পদ্ধতিতে ৫০ × ২৯৪ × ৩ — সেটিও ৪৪,১০০! দুই পদ্ধতিতেই মেলে বলে এই সংখ্যাটি টিকে যায়।

মূল উপলব্ধি: sampling-এর নিয়মটি গণিতের একটি সুন্দর সত্য, কিন্তু বাস্তবের সংখ্যাগুলো (৪৪,১০০) আসে প্রকৌশলের আপস আর ইতিহাসের দুর্ঘটনা থেকে। কোনো প্রযুক্তিগত মানদণ্ডের “অদ্ভুত” সংখ্যার পেছনে প্রায়ই এমন একটি গল্প লুকিয়ে থাকে।

প্র ০৫একটি ZIP ফাইলকে আবার ZIP করলে আর ছোট হয় না কেন? lossless compression-এর কি কোনো চূড়ান্ত সীমা আছে? (একটু উচ্চতর)

১৯৪৮ সালে Bell Labs-এর Claude Shannon প্রকাশ করেন “A Mathematical Theory of Communication” — যাকে তথ্যতত্ত্ব (information theory)-র জন্মপত্র বলা হয়। সেখানে তিনি প্রথমবার তথ্যকে মাপার একক হিসেবে bit-কে প্রতিষ্ঠা করেন (শব্দটি তাঁর সহকর্মী John Tukey-র দেওয়া), আর সংজ্ঞা দেন entropy-র: একটি উৎস থেকে আসা প্রতিটি চিহ্নে গড়ে কতটা “অপ্রত্যাশিত তথ্য” আছে। যে জিনিস আগে থেকেই আন্দাজ করা যায়, তাতে তথ্য কম — যেমন ১১টি অক্ষরের ৫টিই A হলে, পরের অক্ষর A হওয়া খুব একটা খবর নয়।

Shannon-এর source coding theorem বলে: কোনো lossless পদ্ধতি গড়ে প্রতি চিহ্নে entropy-র চেয়ে কম bit-এ লিখতে পারবে না। এই পর্বের ABRACADABRA-র entropy হিসাব করলে আসে প্রতি অক্ষরে প্রায় ২.০৪ bit, অর্থাৎ ১১ অক্ষরে প্রায় ২২.৪ bit. Huffman দিয়েছিল ২৩ bit — সীমার একেবারে কাছে! (অক্ষর ধরে ধরে কোড দিলে এই উদাহরণে ২৩-এর কম সম্ভব নয়।) Huffman পদ্ধতিটি বের করেছিলেন তাঁর শিক্ষক Robert Fano-র দেওয়া একটি টার্ম পেপারের কাজ হিসেবে।

এবার ZIP-এর রহস্য: ভালো compression-এর পর ফাইলের ভেতরের bit-গুলো প্রায় এলোমেলো দেখায় — পুনরাবৃত্তি সব ছেঁটে ফেলা হয়েছে, entropy সর্বোচ্চের কাছে। ছাঁটার মতো আর কিছু বাকি নেই, তাই দ্বিতীয়বার ZIP করলে ফাইল ছোট হয় না, বরং header যোগ হয়ে সামান্য বড় হয়। একই কারণে JPEG, MP3 বা MP4 ফাইল ZIP করলে প্রায় কিছুই লাভ হয় না — ওরা আগেই সংকুচিত। আরও একটি অকাট্য যুক্তি আছে (pigeonhole নীতি): n bit-এর সম্ভাব্য ফাইল 2nটি, কিন্তু তার চেয়ে ছোট সম্ভাব্য ফাইল মোট 2n − 1টি। তাই কোনো lossless পদ্ধতি সব ফাইলকে ছোট করতে পারে না — কিছু ফাইল বড় হবেই, যেমন stepper-এর দাবার ছক।

lossy compression এই সীমা মানে না, কারণ সে তথ্য ফেলে দেয় — Shannon-এর আরেকটি তত্ত্ব (rate–distortion) বলে, কতটা বিকৃতি মেনে নিলে ন্যূনতম কত bit লাগে।

মূল উপলব্ধি: lossless compression-এর একটি অলঙ্ঘনীয় গাণিতিক দেয়াল আছে — entropy. যে ফাইল যত অনুমানযোগ্য, তাকে তত ছোট করা যায়; আর যা সম্পূর্ণ এলোমেলো, তাকে কেউ ছোট করতে পারবে না। “যেকোনো ফাইল ৯০% ছোট করে” — এমন দাবি দেখলে তাই নিশ্চিত থাকুন, দাবিটি ভুল।

অনুশীলন

খাতা-কলম আর ক্যালকুলেটর নিন — শেষটিতে ওপরের কোড একটু বদলাতে হবে।

  1. আকারের হিসাব: (ক) 1280 × 720 resolution-এর একটি 24-bit ছবির কাঁচা আকার কত MB? (খ) ৩ মিনিটের একটি গান 44.1 kHz, 16-bit, stereo-তে রেকর্ড করলে কাঁচা আকার কত? (গ) একই গান 128 kbps MP3-তে কত হবে?

    (ক) 1280 × 720 = ৯,২১,৬০০ pixel; × ৩ byte = ২৭,৬৪,৮০০ byte ≈ ২.৭৬ MB (১০২৪ ধরে প্রায় ২.৬৪ MiB).

    (খ) ৪৪,১০০ × ১৬ × ২ = ১৪,১১,২০০ bit/সেকেন্ড; × ১৮০ সেকেন্ড = ২৫,৪০,১৬,০০০ bit; ÷ ৮ = ৩,১৭,৫২,০০০ byte ≈ ৩১.৮ MB.

    (গ) ১,২৮,০০০ × ১৮০ = ২,৩০,৪০,০০০ bit; ÷ ৮ = ২৮,৮০,০০০ byte ≈ ২.৯ MB — প্রায় ১১ ভাগের এক ভাগ।

  2. RLE হাতে কষুন: (ক) BBBBWWWWWWBB সারিটিকে RLE করুন। (খ) 3R2G4B-কে খুলে মূল সারি লিখুন। (গ) কোন ধরনের সারিতে RLE ফাইল বড় করে দেয়, একটি উদাহরণ দিন।

    (ক) চারটি B, ছয়টি W, দুটি B → 4B6W2B — ১২ অক্ষর থেকে ৬.

    (খ) RRRGGBBBB — ৯টি pixel. ফেরত খোলা হুবহু, তাই lossless.

    (গ) যেখানে প্রায় প্রতিটি pixel আগেরটি থেকে আলাদা — যেমন RGBRGB → 1R1G1B1R1G1B, ৬ থেকে ১২. ক্যামেরার ছবিতে (দানাদার, প্রতিটি pixel সামান্য আলাদা) এমনই হয়, তাই সেখানে RLE ব্যবহার হয় না।

  3. ফরম্যাট বাছাই: নিচের প্রতিটি কাজে কোন ফরম্যাট বেছে নেবেন, এক লাইনে কারণসহ লিখুন: (ক) কোম্পানির লোগো, যা ভিজিটিং কার্ড আর বিলবোর্ড দুই জায়গায় লাগবে; (খ) Excel-এর ভুল দেখাতে একটি স্ক্রিনশট; (গ) বিয়ের অনুষ্ঠানের ৫০০ ছবি আত্মীয়দের পাঠানো; (ঘ) নিজের গাওয়া গানের মূল রেকর্ডিং সংরক্ষণ; (ঙ) চাকরির আবেদনের সাথে CV.

    (ক) SVG বা অন্য vector (AI/PDF) — যেকোনো আকারে ধারালো। (খ) PNG — লেখা ঝকঝকে, lossless. (গ) JPEG — ছোট আকার; ক্লাউড লিংকে পাঠান, যাতে মেসেজিং অ্যাপ আবার সংকুচিত না করে। (ঘ) WAV বা FLAC — মূল কপি lossless, শেয়ারের জন্য আলাদা MP3/AAC কপি। (ঙ) PDF — সব যন্ত্রে একই রকম দেখায়, এডিট হওয়ার ঝুঁকি কম।

  4. কোড বদলে দেখুন: ওপরের JavaScript কোডে img-এর আটটি সারি বদলে দাবার ছক বানান — বিজোড় সারি 'WRWRWRWR', জোড় সারি 'RWRWRWRW'. Run চাপার আগে অনুমান করুন: RLE-এর অনুপাত বাড়বে না কমবে? কত হবে?

    প্রতিটি সারিতে ৮টি run (প্রতিটি মাত্র ১ pixel), তাই মোট ৮ × ৮ = ৬৪টি run. কোডের হিসাবে প্রতিটি run ৪ byte — ৬৪ × ৪ = ২৫৬ byte, অথচ কাঁচা ছিল ১৯২ byte. আউটপুটে আসবে Raw 192 bytes, RLE 64 runs x 4 = 256 bytes, ratio 0.75:1 — অনুপাত ১-এর নিচে, মানে “সংকোচনের” পর ফাইল বড় হলো! শিক্ষা: compression-এর সাফল্য নির্ভর করে ডেটার ধরনের ওপর।

নিজেকে যাচাই করুন

ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।

ক্রমডিজিটাল মিডিয়ার মাইলফলক — পুরোনো থেকে নতুন সাজান (▲▼ চেপে সরান)

  1. 🖼️ প্রথম স্ক্যান করা ডিজিটাল ছবি — Kirsch, ১৭৬ × ১৭৬ pixel (১৯৫৭)
  2. 💿 অডিও CD বাজারে — 44.1 kHz, 16-bit (১৯৮২)
  3. 📷 JPEG মানদণ্ড অনুমোদিত (১৯৯২)
  4. 🎵 MP3 ফাইল বিনিময়ের Napster চালু (১৯৯৯)
  5. 🎬 রয়্যালটি-মুক্ত ভিডিও codec AV1 প্রকাশ (২০১৮)

1024 × 768 resolution-এর একটি 24-bit রঙিন ছবির কাঁচা (compress না করা) আকার কত? (১ MB = ১০২৪ × ১০২৪ byte ধরুন)

  • ৭৬৮ KB
  • ২.২৫ MB
  • ১৮ MB
  • ২৪ MB

নিচের কোন ফরম্যাট lossless compression ব্যবহার করে?

  • JPEG
  • MP3
  • PNG
  • H.264

২০ kHz পর্যন্ত কম্পাঙ্কের শব্দ সঠিকভাবে ডিজিটাল করতে Nyquist নিয়ম অনুযায়ী sampling rate কমপক্ষে কত হতে হবে?

  • ২০ kHz
  • ১০ kHz
  • ৪৪.১ kHz আর তার বেশি হতেই হবে
  • ৪০ kHz-এর বেশি

24-bit color depth-এ (R, G, B প্রতিটি 8 bit) মোট কতগুলো আলাদা রং দেখানো সম্ভব?

  • ১,৬৭,৭৭,২১৬
  • ৬৫,৫৩৬
  • ২৫৬
  • ৭৬৮

Run-length encoding (RLE) দিয়ে AAAABBBCCD লিখলে ফল কী হবে?

  • A4B3C2
  • 4A3B2C1D
  • 4321
  • ABCD

একটি কোম্পানির লোগো ভিজিটিং কার্ড থেকে বিলবোর্ড — সব আকারে ঝাপসা না করে ব্যবহার করতে চাইলে কোন ফরম্যাট সবচেয়ে উপযুক্ত?

  • JPEG
  • GIF
  • SVG
  • BMP

শব্দকোষ

লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন — অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:

মনে রাখুন

  1. Digitization = একটানা analog জিনিসকে টুকরো করে মেপে সংখ্যা লেখা; মাপ যত ঘন ও সূক্ষ্ম, মান তত ভালো, ফাইল তত বড়।
  2. ছবি: pixel-এর গ্রিড, প্রতি pixel-এ RGB; কাঁচা আকার = প্রস্থ × উচ্চতা × (bit ÷ ৮); 24-bit = ১,৬৭,৭৭,২১৬ রং; স্ক্রিনে RGB, ছাপায় CMYK; লোগো vector (SVG).
  3. শব্দ: sampling rate (Hz) × bit depth × channel; Nyquist — সর্বোচ্চ কম্পাঙ্কের দ্বিগুণের বেশি; CD = 44.1 kHz, 16-bit, stereo ≈ মিনিটে ১০.৬ MB.
  4. ভিডিও: fps × frame; codec (H.264, H.265, AV1) ≠ container (MP4, MKV); keyframe আর “শুধু বদলটুকু” দিয়ে শত গুণ সংকোচন।
  5. Lossless (ZIP, PNG, FLAC; RLE, Huffman) হুবহু ফেরত দেয়, entropy-র নিচে নামতে পারে না; lossy (JPEG, MP3) অদৃশ্য খুঁটিনাটি ফেলে — বারবার সেভে মান কমে। বানানো ছবি-কণ্ঠ উৎস ধরে যাচাই করুন।

পরের পর্বে: এতক্ষণ মাউস দিয়ে ক্লিক করে যা করেছেন — ফাইল খোলা, ফোল্ডার বানানো, ছবি এক ফরম্যাট থেকে আরেকটিতে রূপান্তর — সেগুলো লিখে লিখে, এক লাইনের কমান্ডে করার পালা। PowerShell আর Linux টার্মিনালে হাতেখড়ি হবে কমান্ড লাইনের পর্বে।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

এই পর্বটি শেয়ার করুন:
এই পর্বে ভুল পেয়েছেন? জানান