সমস্ত ডিজিটাল চিত্রগুলি শেষ পর্যন্ত কেবল 0 - 255 এর মধ্যে পিক্সেল মান হয় না?


56

চিত্রগুলি সম্পর্কে আমার কয়েকটি অবিশ্বাস্যরকম বেসিক (বোকা?) প্রশ্ন রয়েছে; বিশেষত, চিত্র বিন্যাস এবং পিক্সেল মান।

আমাকে ক্ষমা করুন, আমি ফটোগ্রাফার নই। আমি কেবল এমন একজন ব্যক্তি যা চিত্রের সাথে কাজ করে এবং আমার কাছে তারা কেবল সারি এবং সংখ্যার কলাম।

আমার প্রশ্নগুলি হ'ল:

যদি মূলত ফটোগুলি কেবল পিক্সেল মানের 3 টি চ্যানেল [0, 255] এক্স আরবিজি হয়, তবে কোনও দুটি চিত্র বিন্যাসের মধ্যে কীভাবে সম্ভবত পার্থক্য থাকতে পারে? আমি বলতে চাইছি, টিএআইএফএফ থেকে কোনও কাঁচকে কী আলাদা করে তোলে - এগুলি কি 0 - 255 এর মধ্যে সীমাবদ্ধ নয়? একটি সংখ্যা একটি সংখ্যা - সেখানে কেবল একটি সেট ফর্ম্যাটটি থাকা উচিত নয়? অথবা, একই উচ্চতা এবং প্রস্থের কোনও দুটি চিত্র একই ফাইল আকারে লক করা উচিত নয়?

আরও একটি সংখ্যার দৃষ্টিকোণ থেকে, কী 16-বিট চিত্রের মতো কিছু 32-বিট চিত্রের চেয়ে আলাদা করে তোলে? আবার, একটি চিত্র 0 -255 এর মধ্যে পূর্ণসংখ্যার মান সহ কেবল একটি অ্যারে।

এই দৃষ্টিকোণটি অব্যাহত রেখেছি যে একটি কম্পিউটারের ফাইল সিস্টেমে একটি চিত্র কেবল 0 - 255 এর মধ্যে একটি 3-চ্যানেলের অ্যারে, কোনও চিত্রকে সংকুচিত করার মতো বিন্দুটি কী নয়, উদাহরণস্বরূপ, জেপিজি? বলুন যে সংকোচনের ফলে কিছু পিক্সেল মান 254 থেকে 255 বা যা কিছু পরিবর্তন হয় changes তাই? এটি কীভাবে ফাইল আকারে কোনও সঞ্চয় সরবরাহ করে বা চাক্ষুষ মানের উপর কোনও প্রভাব ফেলবে?

আমি জানি যে চিত্রের ডেটা সঞ্চয় করার বিভিন্ন উপায় রয়েছে। তবে আমি একটি বেসিক 3-চ্যানেল আরবিসি চিত্র ছাড়া অন্য কিছুই জিজ্ঞাসা করছি না। আমি শুধু জানি যে যদি কেউ আমাকে এর মধ্যে একটির হাত দেয় তবে আমার এখন সংখ্যার একটি অ্যারে রয়েছে। কেন একটি সংখ্যার অ্যারে 0 থেকে 255 পর্যন্ত অন্যান্য কিছু অ্যারের চেয়ে পৃথক হতে পারে তা জানার আমার কোনও কারণ নেই I আমি আশা করি এটি উপলব্ধি হয়ে যায়। এই প্রশ্নটি আরএডাব্লু ফরম্যাটে সীমাবদ্ধ নয়! বরং এটি পিক্সেল মানের কোনও অ্যারে সম্পর্কে


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

2
ওপি যদি আরও কিছু প্রসঙ্গ সরবরাহ করতে পারে তবে এটি সহায়তা করবে। যেমন ইমেজ প্রসেসিং কোড সম্পর্কিত?
রিমকো

1
সম্পাদনা সম্পর্কিত: যদি আপনাকে একটি সংখ্যার অ্যারে দেওয়া হয় তবে কেবল এটির সাথে কাজ করুন। অন্য অ্যারে কোথায়? আপনার তুলনা করতে যদি 2 টি অ্যারে থাকে তবে এটি আলাদা গল্প। এগুলিতে এমন মানগুলি থাকতে পারে যা একটি মানুষের চোখের সমান দেখায়। এবং একটি অ্যারে দেওয়া হয়েছে, একটি ক্ষতিকারক এনকোডিংয়ের পরে, অ্যারের ডিকোডিং আপনাকে
আরিকটি

3
টিআইএফএফ, ফিটস এবং অন্যান্য সংকোচিত চিত্র আমদানি করার জন্য সফটওয়্যার প্যাকেজগুলি থেকে সাবধান থাকুন। বেস ম্যাটল্যাব এবং পাইথন সরঞ্জামগুলি সহ অনেকগুলি এই জাতীয় প্যাকেজগুলি উত্সের আকার নির্বিশেষে স্বয়ংক্রিয়ভাবে ডেটা 8 বিটে ট্রিম করে। আপনি যদি এড়াতে চান তবে আপনাকে বিশেষ ফাংশন / গ্রন্থাগারগুলি সন্ধান করতে হবে বা আপনার নিজের সরঞ্জামগুলি রোল করতে হবে।
কার্ল উইথফট

2
@ মনিকা হেডনেক: ইতিমধ্যে দুর্দান্ত উত্তরের একটি গুচ্ছ রয়েছে যা আপনাকে এই ধারণায় সোজা করে দিয়েছে যে না, কোনও চিত্র আরজিবি 255 মানের একটি পিক্সেল অ্যারে হিসাবে সহজ নয়, তবে কেন আপনি যুক্তি বুঝতে পারছেন না তা কেবল আমি বুঝতে পারি না I সংকুচিত বিন্যাসের জন্য। স্টোরেজ বা ট্রানজিটে ডেটা সংরক্ষণ করার জন্য তারা সেখানে রয়েছে। সমস্ত ছবি কেবল আরজিবি 255 ট্রিপল্ট হলেও সংক্ষেপণ উপকারী হবে।
গ্যাবার

উত্তর:


72

দুঃখিত, তবে আপনার মূল ভিত্তিটি ভুল: প্রতি চিত্র 8 বিট দিয়ে আরবিজি পিক্সেলের অ্যারে হিসাবে এনকোড করা যেতে পারে, তবে আরও অনেকগুলি উপায় রয়েছে:

  • এক বিট / চ্যানেল সহ একটি চ্যানেল (খাঁটি কালো এবং সাদা),
  • এক্স বিট / চ্যানেল সহ একটি চ্যানেল (গ্রেস্কেল ফর্ম্যাট, এক্স সাধারণত 8 বা 16 হবে, 256 বা 65536 মান দেয়),
  • বিভিন্ন প্যালেট-ভিত্তিক ফর্ম্যাটগুলি (সিএফ.জিআইএফ)
  • কোনও প্রয়োজনীয় বিট গভীরতার সাথে যতগুলি চ্যানেল (কমপক্ষে তত্ত্বের ক্ষেত্রে) সহ পূর্ণ রঙ color

এবং এটি চিত্রটি সম্পাদনা / দেখার সময় কম্পিউটারের র‌্যামে সঞ্চিত হিসাবে রয়েছে। আমি বিদ্যমান বিভিন্ন RAW চিত্রের ফর্ম্যাটগুলি উপেক্ষা করছি (এখানে এবং এই পোস্টের বাকী অংশে)।

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

এই বিভিন্ন ফর্ম্যাট জন্য বিভিন্ন কারণ আছে। ইন-মেমরি ফর্ম্যাটের জন্য, ডেটা আকার এবং গতি (4 32-বিট চ্যানেলের চেয়ে 8-বিট চ্যানেলটি ম্যানিপুলেট করার জন্য খুব দ্রুত) ব্যবহৃত একটি গুরুত্বপূর্ণ বিবেচনা। সেগুলি আজকাল কম গুরুত্বপূর্ণ, তবে আমরা বিভিন্ন রঙের স্পেস সহ পুরো রঙের পরিচালনা পেয়েছি। এর মধ্যে কয়েকটি (যেমন প্রোফোটো আরজিবি) দৃশ্যমান ব্যান্ডিং এড়াতে প্রতিবেশী রঙগুলির মধ্যে পার্থক্যগুলি যথেষ্ট ছোট রাখতে কমপক্ষে 16 বিট / চ্যানেল প্রয়োজন। এবং চিকিত্সা আরও জটিল হওয়ার সাথে সাথে 32-বিট ভাসমান পয়েন্ট সংখ্যাগুলি ব্যবহার করার সুবিধা রয়েছে (যেখানে রঙগুলি 0.0 এবং 1.0 এর মধ্যে মান সহ এনকোড থাকে এবং চিকিত্সা এই সীমার বাইরে মধ্যবর্তী মানগুলিকে অনুমতি দেয়)।

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

এই চিত্রগুলির ব্যবহারকারীরা চিত্র সম্পর্কে কিছু অতিরিক্ত তথ্য (ক্যাপশন, শিরোনাম, ছবিটি কে নিয়েছিল ইত্যাদি) সঞ্চয় করতে পছন্দ করে। আবার এই তথ্য সংরক্ষণ করার বিভিন্ন উপায় store

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

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

তারপরে একটি ধ্রুবক বিকাশ রয়েছে যেমন লসলেস কমপ্রেস কৌশল, যা বিদ্যমান ফর্ম্যাটগুলি সর্বদা পরিচালনা করতে পারে না।

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


সম্পাদিত প্রশ্নটি দেখার পরে, কিছু অতিরিক্ত দিক:

আপনি যদি ইন-মেমরি চিত্রটি পরিচালনা করেন তবে এটি এক বা একাধিক অ্যারে আকারে হবে। এই মুহুর্তে, মূল ফাইল ফর্ম্যাটটি আর কোনও ভূমিকা পালন করবে না। আমি ধরে নেব আপনি 8 বিট / চ্যানেল দিয়ে আপনার ডেটা পরিচালনা করবেন।

তবে আপনার জানতে হবে আপনার প্রসেসড ইমেজ বা কাঁচা চিত্র রয়েছে কিনা, কারণ এর মধ্যে দুটি গুরুত্বপূর্ণ পার্থক্য রয়েছে:

  • কাঁচা চিত্রগুলিতে সাধারণত প্রতি পিক্সেল 1 রঙ থাকে এবং পিক্সেলগুলি সাধারণত 4 টি পিক্সেলের বর্গক্ষেত্রে 2 টি সবুজ, 1 টি লাল এবং 1 টি নীল পিক্সেল সহ একটি বায়ার অ্যারে সাজানো হয় । মানগুলি দৃশ্যের তীব্রতার সাথে সমানুপাতিক (খুব নিম্ন এবং খুব উচ্চ মানের ব্যতীত)।
  • প্রক্রিয়াযুক্ত চিত্রগুলি 3 টি সংখ্যার মান যুক্ত রেকর্ডের 2D অ্যারে বা রঙিন প্লেন হিসাবে (3 2 ডি অ্যারে, আর, জি, বি এর প্রত্যেকটির জন্য একটি) সাজানো যেতে পারে। তদ্ব্যতীত, মানগুলি সাধারণত দৃশ্যের তীব্রতার সাথে সমানুপাতিক হয় না । সবচেয়ে খারাপ, পিক্সেল মান এবং দৃশ্যের তীব্রতার মধ্যে সঠিক সম্পর্কটি চিত্রটির প্রক্রিয়াকরণের উপর নির্ভর করে। এবং রঙগুলির মধ্যে ভারসাম্যটি মানুষের চোখের প্রতিক্রিয়ার সাথে সামঞ্জস্য করা হয়েছে (হোয়াইট ব্যালেন্স, লাল এবং নীল সবুজগুলির সাথে সামঞ্জস্যপূর্ণ)।

সুতরাং আপনি যদি প্রতি পিক্সেল 3 টি রঙিন মান সহ একটি কাঁচা চিত্র পান তবে সেই কাঁচা চিত্রটির ইতিমধ্যে কিছু চিকিত্সা হয়েছে (কমপক্ষে হয় হ্রাসমূলক , অথবা 4 টি কাঁচা পিক্সেল থেকে 1 চিত্র পিক্সেলের সাধারণ বেনিং )। তা গ্রহণযোগ্য কিনা, তা আপনার আবেদনের উপর নির্ভর করবে।


আমি চিত্রগুলি উপস্থাপনের বিভিন্ন উপায়ে একটু কম আগ্রহী, তবে পরিবর্তে, যদি আমাকে দুটি সংখ্যার চ্যানেল ম্যাট্রিক দেওয়া হয় তবে এর কোনওটি অন্যটির চেয়ে আলাদা কী করে? একটি টিআইএফএফ এবং একটি RAW বলার মধ্যে পার্থক্য কী, যদি তারা উভয়ই 3 মাত্রিক অ্যারে হয়?
মনিকা হেডনেক

4
সম্ভবত আগ্রহের বিষয়, আপনি যখন বলেছিলেন যে প্রতি চ্যানেল 16-বিট চিত্র 16 বিট। কম্পিউটার গ্রাফিক্স বিশ্বে, 16 টি বিট চিত্রগুলি 3 টি চ্যানেলের মোট সংখ্যার জন্য 16 বিট ছিল (সাধারণত 5 লাল, 6, সবুজ, 5 নীল)। আমি কেবল একটি মন্তব্যে এটি উল্লেখ করতে চেয়েছিলাম, যাতে যে কেউ 16-বিট রঙ দেখছে সে সচেতন হতে পারে যে এই শব্দটির জন্য দুটি অর্থ রয়েছে, কে এটি ব্যবহার করছে তার উপর নির্ভর করে।
আম্মন কর্ট

"4 32-বিট চ্যানেলের চেয়ে একটি 8-বিট চ্যানেল ম্যানিপুলেট করা অনেক দ্রুত"। আপনি কি "4 8-বিট চ্যানেলগুলির চেয়ে 32-বিট চ্যানেলকে ম্যানিপুলেট করার জন্য আরও দ্রুত" বোঝাতে চাইছেন না?
l0b0

1
@ মনিকাএইচডনেক যদি ম্যাট্রিকের একটিতে আরজিবি ডেটা থাকে, অন্যটিতে (যেমন) এইচএসভি ডেটা থাকে তবে অবশ্যই, উভয় অ্যারের মাত্রা এবং বিট গভীরতা একই রকম হয় এবং কোনও ডিসপ্লে ডিভাইসে রেন্ডার করার পরে তারা একই দেখতে পাবেন ( + ) তবে দুটি অ্যারেতে থাকা ডেটা অবশ্যই এক নয়। ( + ) বাস্তবে তারা একেবারে একই রকম দেখতে পাবেন না, যেহেতু ৮৮৮ আরআরজি এবং ৮৮৮ এইচএসভি উভয়েরই স্ব স্ব গামুতে ২ ^ 24 "পয়েন্ট" রয়েছে যেখানে দুটি পয়েন্টের সেটগুলির মধ্যে এক থেকে এক ম্যাপিং নেই। যাইহোক, অনুশীলনে সম্ভবত মানুষের চোখের সাথে পার্থক্যটি দেখা খুব কঠিন হবে।
dgnuff

আসলে এইচডিআর 32 এর ভাসমান বিট কালারের পয়েন্ট যা এর 0 থেকে 1 তে এনকোড করা হয়নি তবে 0 তে যদি আপনার সত্যিকারের মতো করতে চলেছে তবে পরিবর্তে পূর্ণসংখ্যা ব্যবহার করুন। সত্য আলোর মত সত্যিই কোন উপরের আবদ্ধ হয়। তবে আপনি কেবল এটির একটি স্লাইস দেখতে পাবেন। এটি অনেক কারণেই কার্যকর, তবে আপনি যদি 3 ডি এর প্রতিবিম্ব হিসাবে উদাহরণস্বরূপ তাদের বিরুদ্ধে মামলা করেন তবে সত্যিকারের শক্তি এখনও ধরা পড়ে যা আকাশের মতো জিনিসগুলির জন্য অনেক গুরুত্বপূর্ণ এবং 20% উদাহরণস্বরূপ
যূজায়

48

যদি মূলত থাকে, ফটোগুলি কেবল পিক্সেল মানের 3 টি চ্যানেল [0, 255] এক্স আরবিজি,

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

তাহলে কীভাবে কোনও দুটি চিত্রের বিন্যাসের মধ্যে পার্থক্য থাকতে পারে? আমি বলতে চাইছি, টিএআইএফএফ থেকে কোনও কাঁচকে কী আলাদা করে তোলে - এগুলি কি 0 - 255 এর মধ্যে সীমাবদ্ধ নয়?

সেগুলি দুটি ভাল উদাহরণ, কারণ এই ফর্ম্যাটগুলির একটিরও অগত্যা আরজিবি মানগুলির একটি আয়তক্ষেত্রাকার অ্যারে ধারণ করে না।

RAW মোটেও একক ফর্ম্যাট নয় - এটি ফাইলের জন্য এক ধরণের ক্যাচ-অল নাম যা কোনও চিত্র সেন্সর থেকে সরাসরি রেকর্ড করা ডেটা ধারণ করে। সুতরাং, একটি RAW ফাইলে মানগুলির ক্রম থাকতে পারে যা বিভিন্ন সেন্সর সাইট থেকে পড়া ভোল্টেজগুলি উপস্থাপন করে। ঐ সাইট আছে মত ইমেজ পিক্সেল, কিন্তু তারা না আরজিবি পিক্সেল। একটি আরএডাব্লু ফাইল থেকে আরজিবি পিক্সেল পেতে, আপনাকে সেন্সর সম্পর্কিত তথ্য, সেই সময়ের ক্যামেরার সেটিংস ইত্যাদির পরিপ্রেক্ষিতে সেই ডেটাটি ব্যাখ্যা করতে হবে অন্য কথায়, আপনি একটি হ্যাক্স সম্পাদকটিতে একটি কাঁচা ফাইল খুলতে পারেন এবং আপনি যা চান তা দেখুন তবে আপনি কোনও একক আরজিবি মান পাবেন না।

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

একটি সংখ্যা একটি সংখ্যা - সেখানে কেবল একটি সেট ফর্ম্যাটটি থাকা উচিত নয়?

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

অথবা, একই উচ্চতা এবং প্রস্থের কোনও দুটি চিত্র একই ফাইল আকারে লক করা উচিত নয়?

না, এটা ভয়ানক হতে হবে। যদি প্রতিটি চিত্রের ফাইলের আকারটি মূলত width * height * 3(24-বিট রঙ ধরে) করতে হয় তবে আপনি প্রচুর সঞ্চয় স্থান নষ্ট করবেন। বেশিরভাগ ফটোগুলিতে প্রচুর অপ্রয়োজনীয় থাকে, অর্থাত্ সেই অঞ্চলগুলিতে যেখানে একই রঙটি বহুবার পুনরাবৃত্তি হয়। স্টোরেজ স্পেস সংরক্ষণ করতে, প্রায়শই সেই অপ্রয়োজনীয় তথ্যটি বর্জন করা বোধগম্য হয়। এটি করার একটি উপায়, উদাহরণস্বরূপ, রান দৈর্ঘ্য এনকোডিং, বা আরএলই উদাহরণস্বরূপ, আপনার যদি একটানা 4195 পিক্সেল অঞ্চল থাকে যা সমস্ত সাদা, ফাইল. আরএলই আসলে কিছু চিত্রের ফর্ম্যাটে ব্যবহৃত হয় তবে অনেকগুলি ফর্ম্যাটে অনেক বেশি পরিশীলিত স্কিম রয়েছে যা অনেক বেশি জায়গা সাশ্রয় করে এবং এর অর্থ আপনি হার্ড ড্রাইভ বা মেমরি কার্ডে আরও অনেকগুলি চিত্র সঞ্চয় করতে পারেন। অন্য কারও কাছে ছবিটি পাঠানো এটি আরও দ্রুত করে তোলে।

এই দৃষ্টিকোণটি দিয়েই চালিয়ে যাওয়া যে একটি কম্পিউটারের ফাইল সিস্টেমে একটি চিত্র কেবল 0 - 255 এর মধ্যে একটি 3-চ্যানেলের অ্যারে, কোনও চিত্রকে সংকোচিত করার মতো বিন্দুটি কী নয়, উদাহরণস্বরূপ, জেপিজি?

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

বলুন যে সংকোচনের ফলে কিছু পিক্সেল মান 254 থেকে 255 বা যা কিছু পরিবর্তন হয় changes তাই? এটি কীভাবে ফাইল আকারে কোনও সঞ্চয় সরবরাহ করে বা চাক্ষুষ মানের উপর কোনও প্রভাব ফেলবে?

উপরে আমার আরএলই উদাহরণ বিবেচনা করুন। ধরা যাক আপনার একটি ফটো রয়েছে যাতে একটি বড় ফাঁকা প্রাচীর অন্তর্ভুক্ত রয়েছে, তাই আপনার ছবির বড় অংশগুলি সমস্ত রঙ একই, কিছুটা গাer় পিক্সেলের ছড়িয়ে ছিটিয়ে থাকা ব্যতীত চিত্রটিতে সবেমাত্র চোখে পড়ার মতো। এই পিক্সেলগুলি সংক্ষেপণের কার্যকারিতা হ্রাস করে। "পরবর্তী 500,000 পিক্সেলগুলি সমস্ত 243, 251, 227 all," মাত্র বলতে সক্ষম হওয়ার পরিবর্তে আপনাকে দৈর্ঘ্যের এনকোডটি আরও অনেক ছোট অংশগুলিতে চালাতে হবে, কারণ প্রতিবারই আপনি এই সামান্য আলাদা পিক্সেলের একটিতে চলে যান। আপনি যদি সংক্ষেপণ অ্যালগরিদমকে ছোট পরিবর্তন করার অনুমতি দেন তবে সম্ভবত কোনও পিক্সেল 1% বা 2% এর বেশি না পরিবর্তন করে, তবে আপনি ইমেজটি বোধগম্যভাবে পরিবর্তন না করেই অনেক বেশি সংকোচনের অনুপাত পেতে পারেন। এটি একটি বাণিজ্য বন্ধ: আপনি ' ফাইলের আকারে বড় হ্রাসের বিনিময়ে মূল চিত্রটিতে অল্প পরিমাণ তথ্য ছেড়ে দিচ্ছে। ঠিক যেখানে আপনি আঁকতে চান সেই রেখাটি পরিবর্তিত হতে পারে, তাই JPEG এর মতো ক্ষতিকারক বিন্যাসগুলি ব্যবহারকারীকে সে / সে কী সংকোচনের স্তরটি চায় তা চয়ন করতে দেয়।


1
একটি জটিল বিষয়ের খুব স্পষ্ট এবং বিস্তৃত ব্যাখ্যার জন্য উত্সাহিত! আমি মনে করি এটি থেকে আমি অনেক কিছু শিখেছি। আমি ভাবছি যে লসলেস কম্প্রেশন পরিচালনা করার একটি কার্যকর উপায় দৈর্ঘ্য-এনকোডের জন্য হবে তবে তারপরে কোনও পিক্সেল ব্যতিক্রমী ব্যতিক্রম যুক্ত করার পরে অবশ্যই চিত্রটির দ্বিতীয় পাস করতে হবে। "23 থেকে 400 কালো" এর মতো কিছু এবং তারপরে "302 সাদা" এই পিক্সেলটিকে ওভাররাইট করে। 23 - 301 এর পরিবর্তে কালো, 302 কালো, 303 - 400 কালো। আমি সন্দেহ করি এটি আসলে কমপক্ষে একটি সংক্ষেপণ বিন্যাসের সাথে কীভাবে আচরণ করে।
Ruadhan2300

1
@ রুধান ২৩০০ - সত্যই আছে। উদাহরণস্বরূপ, দেখুন: en.wikedia.org/wiki/Lossless_JPEG যা প্রতিটি পিক্সেলের বর্ণের পূর্বাভাস দেওয়ার পদ্ধতি ব্যবহার করে (যদিও রান দৈর্ঘ্যের এনকোডিংয়ের চেয়ে কিছুটা জটিল) তবে সেই পূর্বাভাস এবং প্রকৃত পিক্সেলের মানের মধ্যে পার্থক্য এনকোড করে।
জুলাই

18

@ রিমোর দুর্দান্ত উত্তর ছাড়াও , আমি যুক্ত করতে চাই কেন একই উদ্দেশ্যে (মোটামুটিভাবে) বিভিন্ন কোডেক রয়েছে are

কোডেকগুলি এগুলি ডিজাইন করা হয়েছে:

  • ক্ষতিহীন বনাম ক্ষয়িকারী হও
  • এনকোড দ্রুত বনাম। ফাইলাইজ হ্রাস
  • অসমমিতিক বনাম প্রতিসামগ্রী এন- / ডিকোডিং
  • সফ্টওয়্যার সঙ্গে সামঞ্জস্যপূর্ণ হন
  • বিভিন্ন সংকোচনের মাত্রা / পরিস্থিতিতে উপলব্ধিগতভাবে প্রায় নিখুঁত হন
  • অন্যান্য কোডেকগুলি অফার করে না এমন বৈশিষ্ট্য রয়েছে যার মধ্যে রয়েছে:
    • রয়্যালটিমুক্ত
    • স্তর জন্য সমর্থন
    • আলফা-চ্যানেল (যেমন আরজিবিএ) / ট্রান্সপারনসিটির জন্য সমর্থন
    • দ্রুত ওয়েব দেখুন অফার
    • সমর্থন উচ্চ (এর) বিট গভীরতা
    • একাধিক রঙ স্পেস সমর্থন করে (আরজিবি / সিএমওয়াইকে)
    • মেটাডেটা / সংস্করণ / ... এর জন্য সমর্থন

সেগুলির কয়েকটি বিষয় পারস্পরিক একচেটিয়া are এবং সে কারণে, আমরা প্রচুর কোডেক রেখেছি।


কয়েকটি উদাহরণ

দ্রষ্টব্য: কোডেকগুলির তালিকা সম্পূর্ণ নয়, বা তাদের সমস্ত বৈশিষ্ট্য (বা এটির অভাব) উল্লেখ করা হয়নি। যদি এই উত্তর কারও পক্ষে কার্যকর প্রমাণিত হয় তবে আমি আরও কিছু তথ্য যুক্ত করতে পারি (এবং কিছুটা আরও সুনির্দিষ্ট হতে পারি)।

সম্ভবত সর্বাধিক পরিচিত ফর্ম্যাটটি হ'ল জেপিইজি । এটি খুব বিস্তৃতভাবে সমর্থিত তবে পুরানো ফর্ম্যাট। এটি ডিসিটি (ডিসক্রিট কোসিন ট্রান্সফর্মেশন) ব্যবহার করে, সুতরাং এটি তার সর্বোচ্চ মানের সেটিংসে বেশ ভাল মানের অফার করার সময়, ব্লকিং নিম্নের সাথে উপস্থিত হবে।

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

পিএনজি হ'ল আরেকটি বহুল পরিচিত ফর্ম্যাট - এটি নিখরচায় এবং আলফা-চ্যানেলগুলিকে সমর্থন করে তবে এটি আরজিবিবিহীন রঙের জায়গাগুলির (সিএমওয়াইকের মতো) সমর্থন সরবরাহ করে না। অতএব, এটি একটি "কেবলমাত্র অনলাইন"-ফর্ম্যাট।

তারপরে ওপেনএক্সএক্সআর এর মতো ভিএফএক্স ফর্ম্যাট রয়েছে । এগুলি সমস্ত মানের এবং গতির চারদিকে ঘোরে: ওপেনএক্সআরআর ক্ষতিহীন, 64 বিট অবধি সমর্থন করে এবং দ্রুত এনকোড / ডিকোড করে। এটি প্রধানত মধ্যবর্তী ফর্ম্যাট হিসাবে ভিএফএক্স শিল্পে ব্যবহৃত হয়।

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

HEIF সর্বশেষতম চিত্রের কোডেকগুলির মধ্যে একটি। এটি HEVC / h.265 এর মতো একই সংকোচনের ব্যবহার করে এবং তাই JPEG এর চেয়ে আরও ভাল সংক্ষেপণ অনুপাত দেবে বলে আশা করা হচ্ছে। যাইহোক, কারণ এটা বেশ নতুন ও কারণ এটি পেটেন্ট সাপেক্ষে, এটা যেমন বিস্তৃতভাবে যেমন সমর্থিত নয় কোন উপরোক্ত।

কাঁচের চিত্রগুলি দেখুন সত্যিকারের চিত্র নয়, প্রকৃতপক্ষে: কাঁচা (অতএব নাম) সেন্সর রিডআউট ডেটার জন্য এগুলি আরও ধারক। কেবলমাত্র এমন সফ্টওয়্যার দ্বারা যা ডেটা ব্যাখ্যা করতে পারে তা জানে যে কোনও ছবি পাওয়া সম্ভব। এজন্যই লাইটরুম / ক্যাপচার ওয়ান / ডার্ক টেবিল / ... এর মতো র রূপান্তরকারীদের ক্যাননের জন্য ইতিমধ্যে নির্দিষ্ট পাত্রে * .সিআর 2 ব্যবহার করে এমন নতুন ক্যামেরাগুলি সমর্থন করার জন্য আপডেটের প্রয়োজন। এটি একই কারণে যে 14 বিট RAW আপনাকে 32 ডাব্লু টিআইএফএফের চেয়ে বেশি সম্পাদনা বিকল্প সরবরাহ করে আপনি একই কাঁচের বাইরে রফতানি করেছিলেন।


অন্তর্বর্তীকরণ: ক্ষতিহীন বনাম ক্ষয়ক্ষতি

আপনি সত্যই কী জিজ্ঞাসা করছেন তা আমি এখনও নিশ্চিত নই, তাই আমি ভেবেছিলাম যে ক্ষতিহীন বনাম ক্ষতিগ্রস্থদের সম্পর্কে একটি ছোট ব্যাখ্যা যোগ করা ক্ষতিগ্রস্থ হবে না।

অবচয়হীন কম্প্রেশন করছেন করে কাজ করে চালানো দৈর্ঘ্যের এনকোডিং (RLE) / Huffman কোডিং / ... ডেটা কম্প্রেস করা। ডেটা নিজেই পরিবর্তিত হয় না, তবে একটি ছোট প্যাকেজে সংরক্ষণ করা হয়। উদাহরণস্বরূপ, আরএলই নিন: বলুন, আমাদের একটি আর-চ্যানেল বিটস্ট্রিম রয়েছে (পিক্সেল থেকে পিক্সেল 0,0পর্যন্ত 0,11) 255,255,255,255,255,215,215,235,100,000,000,000- আরএলই এটিকে এনকোড করবে 52552215123511003000- এটি অনেক ছোট, এবং যেহেতু আমরা জানি যে এটি 4 টি সংখ্যার গ্রুপে সংরক্ষণ করা হয়েছে এবং প্রথম সংখ্যাটি কাউন্টার এবং শেষ তিনটি অঙ্ক মান হয়, তারপরে আমরা পূর্ণটি পুনর্গঠন করতে পারি 255,255,255,255,255,215,215,235,100,000,000,000

লসী সংক্ষেপণ , অন্যদিকে, ক্ষতিকারকরা যতটা করতে পারে তার চেয়ে আরও বেশি সংক্ষেপে চেষ্টা করার চেষ্টা করে। এটি করতে, ক্ষতিগ্রস্থ কোডেকগুলি সাধারণত আমাদের উপলব্ধি না পাওয়া জিনিসগুলি সরিয়ে ফেলার চেষ্টা করে। নিন, উদাহরণস্বরূপ, YUV( YCbCr, সত্যিই) মডেল কোন JPEG (এবং প্রায় প্রতিটি ভিডিও কোডেক) ব্যবহার করে: Y = Luminance, Cb = Chrominance Blue, Cr = Chrominance Red। একটি মানুষের মধ্যে 4:2:0(প্রতিটি পিক্সেলের একটি আলোকিত মান রয়েছে তবে রঙগুলি 2x2 এর ব্লকগুলিতে পর্যায়ক্রমে সংরক্ষণ করা হয়) এবং একটি 4:4:4(প্রতিটি পিক্সেলের লুমিন্যান্স এবং উভয় রঙের চ্যানেল থাকে) এনকোডযুক্ত চিত্রের মধ্যে পার্থক্য তৈরি করতে পারে না । এটি আমাদের চোখের ফিজিওলজির কারণে : আমরা রঙের পার্থক্য দেখতে পাই না পাশাপাশি আলোকিততার মধ্যেও পার্থক্য দেখতে পারি।

এটি বেশিরভাগ সময় ভালভাবে কাজ করে তবে এটিকে একটি এমপি 3 ফাইলের সাথে তুলনা করুন: প্রায় কোনওই 192 bps কেবিপিএস এবং 320 কেবিপিএসের মধ্যে পার্থক্য তৈরি করতে পারে তবে 64৪ কেবিপিএসের নীচে চলে যায় এবং জিনিসগুলি দ্রুত কুৎসিত হয়। এছাড়াও, পুনরায় এনকোডিংটি আরও গুণমানকে হ্রাস করবে, যেমন অযাচিত নিদর্শনগুলি প্রদর্শিত হতে পারে (যেমন জেপিজিতে, উচ্চমানের এনকোডিংগুলি থেকে ছোট ব্লকগুলি আরও এনকোডিংগুলিতে চিত্রের বিশদ হিসাবে বিবেচিত হবে)।


শেষের সারি

আপনি যদি চিত্রের ফর্ম্যাটগুলি বা তাদের বৈশিষ্ট্যগুলি সম্পর্কে চিন্তা না করেন তবে যে কোনও একটি ঠিক আছে। উচ্চ মানের মানের সেটিংস সহ, এটি সম্ভব এবং প্রত্যাশাযোগ্য যে আপনি তাদের মধ্যে কোনও পার্থক্য দেখতে পাবেন না।

তবে, আপনার যদি কোনও নির্দিষ্ট বৈশিষ্ট্য প্রয়োজন, তবে সেখানে (এবং প্রায় অবশ্যই: হবে) কোনও কোডেক থাকবে যা এতে আচ্ছাদিত থাকবে।


আমি আপনার কোডেক বৈশিষ্ট্যের তালিকায় দুটি জিনিস যুক্ত করব: ১. প্রগতিশীল রেন্ডারিং (আজকাল খুব বেশি ব্যবহৃত হয়নি, তবে পিএনজিতে এটি একটি বড় বৈশিষ্ট্য ছিল) ২. অ্যানিমেশন (অ্যানিমেটেড পিএনজি, জেপিইজি, জিআইএফ ...) রয়েছে।
সুলতান

@ সুলতান আমি এটি যুক্ত করার বিষয়ে চিন্তা করব, যদিও আপনি প্রগতিশীল - যেমনটি আপনি বলেছেন - এমন একটি জিনিস যা আজকে গুরুত্বপূর্ণ হিসাবে বিবেচিত হয় না, এবং অ্যানিমেশন এমন কোনও বৈশিষ্ট্য নয় যা ফটোগ্রাফিকে উদ্বেগ করে। যাইহোক: ইনপুট জন্য ধন্যবাদ!
ফ্লোলিও

2
"কেবলমাত্র এমন সফ্টওয়্যার দ্বারা যা ডেটা ব্যাখ্যা করতে পারে তা জানে যে কোনও চিত্র পাওয়া সম্ভব" এটি কোনও চিত্রের বিন্যাসের জন্য সত্য। যদি সফ্টওয়্যার জেপিইজি ডেটা ব্যাখ্যা করতে, না বলতে, না জানে তবে এটি চিত্র হিসাবে এটি প্রদর্শিত বা প্রক্রিয়া করতে সক্ষম হবে না। কাঁচা ফাইলগুলি এমন ডেটা সঞ্চয় করে যা এটি থেকে চিত্র পুনর্গঠন করতে দেয় এবং এটি নির্দিষ্ট উপায়ে কাঠামোগত হয় (সম্ভবত ক্যামেরা মডেলের ক্ষেত্রে নির্দিষ্ট)। সুতরাং এটি একটি চিত্র বিন্যাস, এটি কেবল একটি ফর্ম্যাট নয়, "ক্যামেরার এক্স এর কাঁচা বিন্যাস"।
n0rd

1
@ n0rd অবশ্যই তবে আমার 5 ডি এমকে তৃতীয় জেপিগগুলি নিকন পি 7000 বা ইওএস এম 6 এর মতো একই স্পেসিফিকেশনগুলি (মনে হয়) পূর্ণ করে। .CR2সত্যিই কেবল বলেছেন "আমাকে দেখুন, আমি কিছু ক্যানন ক্যামেরার RAW ফাইল! আপনি যদি সাহসী হন তবে আমাকে পড়ুন!" - এটি আমার বক্তব্য হওয়া উচিত ছিল, যদিও আপনি বলেছিলেন যে আরও স্পষ্ট ভাষায়।
ফ্লোলিও

ল্যাব এবং এক্সওয়াইজেড স্পেসগুলি কিছু চিত্র ফর্ম্যাটে বিদ্যমান।
joojaa

10

যদি মূলত থাকে তবে ফটোগুলি পিক্সেল মানের 3 টি চ্যানেল [0, 255] এক্স আরবিজি

এটি একটি গুরুতর ভাঙ্গা অনুমান এবং আপনার বাকী প্রশ্নটি এটিকে ভেঙে না ফেলে কেবল উত্তর দেওয়া যায় না।

আমি বলতে চাইছি, টিএআইএফএফ থেকে কোনও কাঁচকে কী আলাদা করে তোলে - এগুলি কি 0 - 255 এর মধ্যে সীমাবদ্ধ নয়?

"কাঁচা" শব্দটি দুটি ভিন্ন জিনিসকে বোঝায়, একটি "ক্যামেরা কাঁচা" চিত্র বা এমন কোনও ফাইল যাতে কোনও শিরোনাম ছাড়াই কাঁচা চিত্রের ডেটা থাকে।

একটি "ক্যামেরা কাঁচা" চিত্রটি সেন্সর থেকে বেরিয়ে আসার সাথে সাথে কাঁচা ডেটা সংরক্ষণ করে। বেশিরভাগ আধুনিক ক্যামেরা সেন্সরগুলিতে 8 টিরও বেশি বিট সহ এডিসি রয়েছে তবে তারা কেবল প্রতিটি স্থানে এক রঙের সংমিশ্রনের জন্য তীব্রতার ডেটা সংগ্রহ করে। জ্যামিতিটি লেন্স দ্বারা বিকৃত হতে পারে, এডিসি থেকে তীব্রতা মানগুলি তীব্রতা সম্পর্কে মানুষের উপলব্ধি প্রতিবিম্বিত করার জন্য ভাল কাজ নাও করতে পারে, রঙের উপাদানগুলি আপনার মনিটর দ্বারা ব্যবহৃত ম্যাপ এবং ঠিক তেমন মানচিত্র নাও পেতে পারে।

ইন্টারপোলেশন জড়িত একটি জটিল ম্যাপিং প্রক্রিয়া কাঁচা সেন্সর ডেটা একটি ভাল মানের আরজিবি চিত্রে রূপান্তরিত করার জন্য প্রয়োজন এবং এটি করার কোনও সঠিক উপায় নেই। এছাড়াও রঙের উপাদানগুলিকে বিভক্ত করার প্রয়োজনে আরজিবি চিত্রটি কাঁচা ডেটার চেয়ে বড় হতে পারে।

রূপান্তরটি ক্যামেরায় করা যেতে পারে (এবং প্রায়শই হয়) তবে অনেক ফটোগ্রাফার কাঁচা ডেটা সংরক্ষণ করতে পারফর্ম করে যাতে তারা সত্যের পরে প্রসেসিংটিকে টুইঙ্ক করতে পারে।

টিফ একটি জটিল ফাইল ফর্ম্যাট যা বিভিন্ন ধরণের মেটাডেটা সহ বিভিন্ন ফর্ম্যাটগুলিতে চিত্রগুলি সঞ্চয় করতে পারে। অনুশীলনে যদিও এটি সাধারণত সঙ্কুচিত বা ক্ষতিহীনভাবে সংকুচিত আরজিবি বা সিএমওয়াইকে চিত্রগুলি সঞ্চয় করতে ব্যবহৃত হয়।

যে ফাইলগুলিতে শিরোনামহীন কাঁচা চিত্রের ডেটা রয়েছে সেগুলি খুব কমই ব্যবহার করা হয় কারণ আপনি সেগুলি পড়ার আগে তাদের ফর্ম্যাট এবং মাত্রাগুলি জানতে হবে। কিছু চিত্র প্রক্রিয়াকরণ সরঞ্জাম যদিও তাদের সমর্থন করে।

আরও একটি সংখ্যার দৃষ্টিকোণ থেকে, কী 16-বিট চিত্রের মতো কিছু 32-বিট চিত্রের চেয়ে আলাদা করে তোলে?

দুর্ভাগ্যক্রমে "এন বিট" বলতে দুটি ভিন্ন জিনিস বোঝাতে পারে। এর অর্থ এই হতে পারে যে সমস্ত রঙের উপাদানগুলি বিট সংখ্যায় ক্র্যাম করা হয় (যেমন, লাল রঙের জন্য 5 টি বিট, নীল রঙের জন্য 5 টি বিট এবং সবুজ রঙের জন্য 6 বিট 16 বিট বা 8 বিটের লাল, 8 টি বিট, নীল এবং 8 বিট আলফার 32 বিটের জন্য) বা এর অর্থ প্রতিটি রঙের উপাদানগুলির প্রতিটি পিক্সেল স্থানে তথ্যের বিট থাকে।

এই দৃষ্টিকোণটি দিয়েই চালিয়ে যাওয়া যে একটি কম্পিউটারের ফাইল সিস্টেমে একটি চিত্র কেবল 0 - 255 এর মধ্যে একটি 3 চ্যানেলের পূর্ণসংখ্যার অ্যারে

আবার এই দৃষ্টিভঙ্গি ঠিক সাধারণ ভুল।

একটি ফাইল বাইটের ক্রম, তবে সেই বাইটগুলি কখনই "0 - 255 এর মধ্যে কেবল 3-চ্যানেলের পূর্ণসংখ্যার" হয় না

আপনি এটির মতো একটি ছবি সঞ্চয় করতে পারেন। কিছু সরঞ্জাম এমনকি এ জাতীয় ফাইলগুলি পড়তে এবং লেখাকে সমর্থন করে তবে সমস্যাটি হ'ল এর অর্থ এটি ফাইলটি পড়ার আগে আপনাকে এটি সম্পর্কে জানতে হবে। ধরুন আপনার কাছে এমন ফাইল রয়েছে যা আকারে 3000 বাইট ছিল, আপনার কি 1000 24 বিট আরজিবি পিক্সেল রয়েছে? 3000 8 বিট গ্রেস্কেল পিক্সেল? একটি প্যালেট থেকে 3000 8 বিট পিক্সেল? রঙের উপাদানগুলি কোন ক্রমে রয়েছে? ছবিটি কি আকার? আরজিবি বা বিজিআর ক্রমের রঙের উপাদানগুলি কী? এই প্রশ্নের উত্তরগুলি না জানলে আপনি অর্থপূর্ণভাবে এই জাতীয় ফাইলটি পড়তে পারবেন না।

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

উদাহরণস্বরূপ, জেপিজির মতো একটি ক্ষতিকারক বিন্যাসে কোনও চিত্রকে সংকুচিত করার বিন্দুটি কী? বলুন যে সংকোচনের ফলে কিছু পিক্সেল মান 254 থেকে 255 বা যা কিছু পরিবর্তন হয় changes তাই? এটি কীভাবে ফাইল আকারে কোনও সঞ্চয় সরবরাহ করে বা চাক্ষুষ মানের উপর কোনও প্রভাব ফেলবে?

সংক্ষেপণ অ্যালগরিদমগুলি কেবল "মান পরিবর্তন করে" না, তারা তথ্যকে একেবারে ভিন্ন পদ্ধতিতে এনকোড করে, উদাহরণস্বরূপ জেপিইজি প্রায় হিসাবে বর্ণনা করা যায়

  • আরজিবি থেকে ডেটা রূপান্তর করুন YUV তে
  • (allyচ্ছিকভাবে) ক্রোমা চ্যানেলগুলির সমাধান এক বা উভয় মাত্রায় 2 এর গুণক দ্বারা হ্রাস করুন
  • প্রতিটি চ্যানেলের জন্য ডেটা 8x8 ব্লকে বিভক্ত করুন।
  • একটি বিচ্ছিন্ন কোসাইন রূপান্তর ব্যবহার করে ব্লকগুলিকে ফ্রিকোয়েন্সি ডোমেনে রূপান্তর করুন
  • উচ্চ ফ্রিকোয়েন্সি তথ্যের যথার্থতা হ্রাস করার সময় কম ফ্রিকোয়েন্সি তথ্য সংরক্ষণ করে ফলাফলগুলি পরিমাণ করুন।
  • পরিবর্তনশীল দৈর্ঘ্যের এনকোডিং স্কিম (হফম্যান কোডিং বা পাটিগণিত কোডিং) ব্যবহার করে বাইটের ক্রম হিসাবে ফলাফলগুলি এনকোড করুন
  • যথাযথ শিরোনাম সহ ফাইলগুলিতে সেই বাইটগুলি সংরক্ষণ করুন।

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

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

1
এটি সম্ভবত এখানে সেরা উত্তর, এটি চিত্র ধারণ এবং সংকোচিত করার জন্য উভয় পৃথক ফাইল ফর্ম্যাট সম্পর্কে আলোচনা করে এবং 0-255 থেকে কোনও চিত্র একটি সংখ্যার অনুমান কীভাবে ত্রুটিযুক্ত হয়
pfg

উপাদান অর্ডার উল্লেখ করার জন্য ভাল। আমি অনুমান করি যে ওপেনগল 2 ইএস-এর মতো আরজিবি অর্ডারের পৃথক ক্রমান্বয়ে পড়ার জন্য কার্যকারিতা থাকার যথেষ্ট কারণ রয়েছে। সত্য, কোনও স্ট্যান্ডার্ড বা মেটাডেটা ছাড়া আপনি এমনকি চিত্রটির উত্স বা দিকটি জানেন না যে লাইনগুলি কত দীর্ঘ হয়। আপনি pallete আপনি রং নিম্ন বাম শুরু করার জন্য বোঝানো চাই সঙ্গে তার আচরণ পরেও একটি নিয়তি পরী আপ লোড পারেন, ডান সারি ... দ্বারা কলাম পর্যন্ত যেতে এবং তারপর
StarWeaver

আমি ইমপ্রেশনটি পেয়েছি যে উপাদানটির ক্রমটি এন্ডিয়ানের মতো ধরণের। কিছু সিস্টেম বিক্রেতারা আরজিবি বেছে নিয়েছে অন্যরা (নোটলি উইন্ডো) বিজিআর বাছাই করেছে।
পিটার গ্রিন

9

এই অনুমানটি ভুল হওয়ার বিভিন্ন কারণ রয়েছে এবং তারা সকলেই একটি বিষয়ে অবতীর্ণ হয়:

আপনি আসলে কোন স্কেল ব্যবহার করছেন?

এবং এটি আরও কিছুটা ভাঙতে পারে:

255 কি?

"রঙ" শারীরিক মহাবিশ্বের সম্পত্তি নয়। এটি একটি সংবেদন যা মনের মধ্যে উদ্ভূত হয়। এবং, এর মধ্যে "নীল", "সবুজ" এবং "লাল" এর মতো জিনিস রয়েছে। 0 থেকে স্কেল যার অর্থ "একেবারে নীল নয়" থেকে 255 এর অর্থ "সমস্ত নীল!" 255 আসলে নীল রঙের প্লাটোনিক আদর্শকে উপস্থাপন করতে পারে না , কারণ ... আসল বিশ্বে এমন নিখুঁত জিনিস নেই। সুতরাং, এর অর্থ কি:

  • আপনার সামনে ব্লুয়েস্ট ধরণের জিনিসটি আপনি ডিভাইসে তৈরি করতে পারেন?
  • মানব দৃষ্টিভঙ্গি সিস্টেমের দৃষ্টিকোণ থেকে খাঁটি নীলের কাছে আদর্শ মিলের খুব কাছাকাছি, এমনকি বেশিরভাগ স্ক্রিন এবং প্রিন্টার / কালি / কাগজের সংমিশ্রণগুলি এটি উপস্থাপন করতে না পারলেও?
  • একটি খুব ভাল নীল যা যুক্তিসঙ্গতভাবে বিভিন্ন ধরণের ডিভাইসে উপস্থাপিত হতে পারে?
  • এমন একটি নীল যা মানব দর্শনের সীমার বাইরে, তবে যা আপনার আরজিবি ট্রিপল কভারের বেশিরভাগ রঙের মধ্যে রয়েছে?

শব্দ অবদান? নাঃ! এগুলি আসলে বাস্তব উদাহরণ। প্রতিটি পছন্দের এই উপস্থাপনা পরীক্ষা করে দেখুন। বাঁকানো অঞ্চলটি মানুষের দৃষ্টি বর্ণের স্থানের একটি 2D স্লাইস এবং ত্রিভুজটি সেই অঞ্চলটি দেখায় যা লাল, সবুজ বা নীল রঙের জন্য একটি নির্দিষ্ট পছন্দ হিসাবে উপস্থাপিত হতে পারে।

প্রথমত, আমার ল্যাপটপের স্ক্রিনের জন্য প্রোফাইলটি এটি বর্তমান মিড-রেঞ্জ ডিভাইসের বেশ প্রতিনিধি:

থিঙ্কপ্যাড এক্স 260

এখন, এখানে অ্যাডোব আরজিবি স্থান। আমার স্ক্রিনটি যা দেখায় তার চেয়ে এটি কত বড় তা লক্ষ্য করুন!

AdobeRGB

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

জগৎ

এবং পরিশেষে, ত্রিভুজটিকে প্রায় সমস্ত মানুষের দৃষ্টিভঙ্গির জন্য উপযুক্ত করার জন্য প্রফোটো আরজিবি, যা প্রাথমিকের হিসাবে কাল্পনিক রঙ ব্যবহার করে ।

প্রোফোটো আরজিবি

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

সুতরাং "255" এর অর্থ অনেকগুলি আলাদা জিনিস হতে পারে।

0 কি?

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

তোমার বক্রতা কি?

সুতরাং, আপনার একবারে আপনার শেষবিন্দুগুলি পরে, আপনি কীভাবে একে অপরকে পাবেন? উজ্জ্বলতার মানুষের উপলব্ধি স্থিরভাবে অ-রৈখিক । আপনার 0-255 স্কেলে, 100 টি 50 এর চেয়ে দ্বিগুণ উজ্জ্বল হওয়া উচিত, বা এটি আরও বৃহত্তর ফ্যাক্টর হওয়া উচিত? বলুন, 3 এবং 4 এর মধ্যে ধারণাগত পার্থক্য কি 203 এবং 204 এর মধ্যে একই হওয়া উচিত?

আপনি যদি কোনও লগ স্টোরেজ সিস্টেম ব্যবহার করার সিদ্ধান্ত নেন, তবে সেই বক্ররেখাটি মানুষের দৃষ্টি, বা ডেটা অপ্টিমাইজেশনের জন্য বা অন্য কোনও কিছুর সাথে মিলিয়ে নিতে অনুকূলিত হওয়া উচিত?

বিভিন্ন সম্ভাবনা রয়েছে, বিভিন্ন প্রয়োজনের জন্য।

সংকোচনে

আপনি জিজ্ঞাসা করুন।

বলুন যে সংকোচনের ফলে কিছু পিক্সেল মান 254 থেকে 255 বা যা কিছু পরিবর্তন হয় changes তাই? এটি কীভাবে ফাইল আকারে কোনও সঞ্চয় সরবরাহ করে বা চাক্ষুষ মানের উপর কোনও প্রভাব ফেলবে?

আধুনিক সংক্ষেপণ অ্যালগরিদম এর চেয়ে জটিল, তবে এটি একটি ভাল উদাহরণ সরবরাহ করে। আমি FF255 উপস্থাপন করতে এবং FE254 উপস্থাপনের জন্য হেক্সাডেসিমাল ব্যবহার করতে যাচ্ছি , এবং কল্পনা করুন যে আমরা রান্নার দৈর্ঘ্যের এনকোডিংটি সংক্ষেপণের আকার হিসাবে ব্যবহার করছি । এবং সরলতার জন্য, আসুন রঙের পরিবর্তে কালো এবং সাদা ধরে নেওয়া যাক। এটির সাথে, যদি আমাদের কাছে এমন এক সারি ডাটা থাকে যা দেখতে লাগে:

FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 

আমরা এটি খুব সহজ সংকোচন করতে পারি

16×FF 

... যা বেশ সুস্পষ্ট সঞ্চয় is আমরা মূলত দুটিতে 16 বাইট সঞ্চয় করতে পারি (একটি গণনার জন্য, দুটি ডেটার জন্য)। তবে আসুন আমরা বলতে পারি:

FF FF FE FF FE FF FF FF FF FF FE FE FE FF FE FE

এখন, রান-লেংথ এনকোডিং আমাদের দেয়:

2×FF 1×FE 1×FF 1×FE 5×FF 3×FE 1×FF 2×FE

... যা মোটেও কোনও সঞ্চয় নয় এবং প্রকৃতপক্ষে ফাইলের আকার বাড়তে পারে । তবে আমরা যদি সমস্ত FEমানকে গোল করে ফেলি তবে আমরা FFএকটি ছোট আকারের ফাইল ফাইলের গুণমানের উপর প্রভাব ফেলতে পারার পক্ষে একটি উল্লেখযোগ্য আকার হ্রাস সহ প্রথম ক্ষেত্রে ফিরে আসি।

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

বিট গভীরতা

আরও একটি সংখ্যার দৃষ্টিকোণ থেকে, কী 16-বিট চিত্রের মতো কিছু 32-বিট চিত্রের চেয়ে আলাদা করে তোলে? আবার কোনও চিত্র 0-255 এর মধ্যে পূর্ণসংখ্যার মান সহ একটি অ্যারে।

সুতরাং ..... 0-255 এর মধ্যে পূর্ণসংখ্যার মানগুলির একটি অ্যারে আট বিট অ্যারে। (2⁸ = 256.) তিনটি চ্যানেল সহ, এটি একটি 24-বিট চিত্র; কিছু বিন্যাসে স্বচ্ছতা রয়েছে ("আলফা") পাশাপাশি 32 বিট b চ্যানেল প্রতি কেও উচ্চতর মান ব্যবহার করতে পারে, যা আমরা যখন "16 বিট গভীরতা" বলি তখন সাধারণত আমাদের অর্থ হয়। এর অর্থ অ্যারে 0-265 এর চেয়ে 0-65535 (2¹⁶ = 65536) থেকে যায়। সাধারণত এই জাতীয় স্কিমে, এটি মূলত কেবল একটি গুণক যেখানে সর্বোচ্চ মান প্রতিটি স্কেলের একই জিনিসকে উপস্থাপন করে তবে উচ্চতর বিট গভীরতা আরও সম্ভাব্য উপায়ে দেয়। ( এই বিষয়ে আরও তথ্যের জন্য এই উত্তরটি দেখুন There) এছাড়াও কিছু বিশেষ ফাইল ফর্ম্যাট রয়েছে যা মানগুলির জন্য পূর্ণসংখ্যার পরিবর্তে 64-বিট ফ্লোট (()) ব্যবহার করে, বা ব্যবহারের ক্ষেত্রে নির্ভর করে অন্য ডেটা ধরণের, তবে মূল ধারণাটি একই ।


S / 0-65536 / 0-65535 /
রুসলান

1
পছন্দ করেছেন বাফার ওভারফ্লোর জন্য দুঃখিত। :)
mattdm

পোষাকটি কেন এত মেরুকরণ করা হয়েছিল তারও একটি ভাল ব্যাখ্যা, এফডাব্লুআইডাব্লু
ওয়েন ওয়ার্নার

8

না, কোনও চিত্র কেবল আরবিজি মান 0-255 এর মধ্যে নয়। এমনকি আপনি স্টোরেজ ফর্ম্যাটগুলি উপেক্ষা করলেও বর্ণ বর্ণনার অনেকগুলি উপায় রয়েছে। এখানে কিছু উদাহরন:

  • লাল, সবুজ এবং নীল উপাদান (আরজিবি)
  • সায়ান, ম্যাজেন্টা, হলুদ এবং কালো উপাদান (সিএমওয়াইকে)
  • হিউ, স্যাচুরেশন এবং হালকাতা / মান (এইচএসএল / এইচএসভি)
  • একটি ক্যামেরায় একদল সেন্সরকে আঘাত করা আলোর পরিমাণ
  • এটি সেন্সরগুলিতে আঘাত করার সময় আলোর পরিমাণ এবং তার দিক (একটি আলোক-ফিল্ড ক্যামেরায় )

প্রথম দুটি যথাক্রমে মনিটরগুলিতে প্রদর্শন এবং মুদ্রণের জন্য ব্যবহৃত হয়।

অতিরিক্তভাবে, একটি চিত্র কেবল পিক্সেল নয়, মেটাডেটাও। এটি পিক্সেলের সংখ্যার প্রস্থের দৈর্ঘ্য, আপনি যদি এটি মুদ্রণ করতে চান তবে দৈহিক প্রস্থ, একটি থাম্বনেইল চিত্র , এমনকি চিত্রটি যখন নেওয়া হয়েছিল তখন ক্যামেরার ভৌগলিক অবস্থানও হতে পারে।


6
এমনকি আরজিবি হিসাবে "সাধারণ" কিছু দিয়েও বিভিন্ন বর্ণের স্থান রয়েছে। একটি সাধারণ 24-বিট আরজিবি বিটম্যাপটি গামা-সংশোধনযোগ্য হতে পারে, উদাহরণস্বরূপ - এবং সেই সংশোধনটিকে বিপরীত না করে, এটি খুব অন্ধকারে প্রদর্শিত হবে। তীব্রতার বিতরণ লিনিয়ার হতে পারে বা অন্য কিছু হতে পারে। অ্যাডোব আরজিবি এবং এসআরজিবি উভয়ই 24-বিট আরজিবি বিটম্যাপ, তবে "একই" রঙগুলির খুব আলাদা উপস্থাপনা রয়েছে। ঠিক যেমন "প্লেইন টেক্সট ফাইলের মতো কিছুই নেই" তেমন কোনও "প্লেইন ইমেজ" ফর্ম্যাট নেই। আপনি যে সেরাটি পেতে পারেন তা হ'ল "এই নির্দিষ্ট সিস্টেম / অ্যাপ্লিকেশনের জন্য নেটিভ চিত্রের ফর্ম্যাট"।
লুয়ান

1
এইচএসভি / এইচএসএল ডেটা ধারণ করে এমন কোনও ফর্ম্যাট কখনও দেখেনি তবে আমি ল্যাব বা এক্সওয়াইজেড ডেটা সংরক্ষণ করে এমন একটিগুলি দেখেছি
জুনা

2
@ লুয়ান আপনার উত্তরটি প্রসারিত করা উচিত। গামা পার্থক্যগুলি এমন একটি জিনিস যা অন্য কেউ তাদের উত্তরে স্পর্শ করেনি।
টিম সেগুয়েন

5

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

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

পাঠ্য সাদৃশ্যটির সাথে থাকা, আসুন আমরা টেক্সট, .ডোক্স, .পিডিএফ, ইত্যাদি হিসাবে সংরক্ষণিত একই পাঠ্য বলে মনে করি কেন সামগ্রীগুলি একই রকম হলে সমস্ত ফাইল হুবহু হয় না? (ঠিক আছে, txt এর বিন্যাস নেই, তবে অন্যরাও তা করে)।

যাইহোক, কীভাবে নেটপবিএম এনকোডিংটি জেপিইজি থেকে আলাদা ।


3

RAW এবং TIFF ফর্ম্যাটের জন্য, যতদূর আমি বলতে পারি, উত্তরটি (যেমন অন্যরা বলেছেন) হ'ল তারা সর্বদা একই রঙের স্পেস ব্যবহার করে না (যেমন RAW ফাইলগুলি পিক্সেলটিতে আরও বিট ব্যবহার করতে পারে তাই সূক্ষ্ম বর্ণের তথ্য সঞ্চয় করতে পারে) ।

তবে আপনার প্রশ্নের অবতারণা করতে - কখনও কখনও এমন চিত্র রয়েছে যা বিভিন্ন ফর্ম্যাটে সঞ্চিত থাকে তবে প্রতিটি শেষ পর্যন্ত সংখ্যার ঠিক একই অ্যারে উপস্থাপন করে।

এর কারণের একটি ভাল উদাহরণ হ'ল পিএনজি ফাইল এবং টিআইএফএফ ফাইলের মধ্যে সংকোচনের পার্থক্য।

পিএনজি ফাইলগুলি একটি নির্দিষ্ট সংক্ষেপণ অ্যালগরিদম ব্যবহার করে। তার মানে একটি চিত্র কেবল প্রতিটি পিক্সেলের জন্য সংখ্যার বড় তালিকা হিসাবে সংরক্ষণ করা হবে না। সরলীকৃত উদাহরণ: এটি এমন কিছু সঞ্চয় করতে পারে যা "পিক্সেলের এই 10x10 ব্লকে, সমস্ত পিক্সেল রঙ XYZ" বলে। তারপরে সেই তথ্যটি 100 বার বেশি সঞ্চার করার পরিবর্তে এটি একবারে সঞ্চয় করে, সেই সাথে সেই অঞ্চলটি সম্পর্কিত তথ্য যা প্রয়োগ হয়।

সমস্যাটি হ'ল সংখ্যার মূল অ্যারে (রঙগুলি উপস্থাপন করে) ফিরে পাওয়া, যাতে আপনি এটি প্রদর্শন করতে পারেন বা এটি সম্পাদনা করতে পারেন বা যাই হোক না কেন, আপনার এমন সফ্টওয়্যার দরকার যা সেই সংকুচিত তথ্যের ব্যাখ্যা কীভাবে করতে পারে তা জানে।

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

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

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

সুতরাং আপনি জিজ্ঞাসা

তবে আমি একটি বেসিক 3-চ্যানেল আরবিসি চিত্র ছাড়া অন্য কিছুই জিজ্ঞাসা করছি না। আমি শুধু জানি যে যদি কেউ আমাকে এর মধ্যে একটির হাত দেয় তবে আমার এখন সংখ্যার একটি অ্যারে রয়েছে। সংখ্যার একটি অ্যারে সম্ভবত 0 থেকে 255 পর্যন্ত কয়েকটি অন্যান্য অ্যারের চেয়ে আলাদা হতে পারে কেন তা জানার আমার কোনও কারণ নেই।

এটি আপনার হাতে দেওয়ার জন্য, কারও জানতে হবে কীভাবে চিত্রটি সংরক্ষণ করা হয়েছিল এবং কীভাবে এটি সংখ্যার অ্যারে অনুবাদ করা যায়। (বা সম্ভবত কোনও সফ্টওয়্যার সেই অনুবাদটি আপনার অজানা জন্য করছে)।

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


1
But to get to the crux of your question - sometimes there are images which are stored in different formats, but each ultimately represents exactly the same array of numbers.এটি ক্ষতবিহীন চিত্রগুলির জন্য সত্য হতে পারে - তবে আপনি উদাহরণস্বরূপ লো-বিটরেট এইচআইএফ চিত্রটি একটি লো-বিটরেট জেপিইগির সাথে তুলনা করলে এটি সম্পূর্ণ ভুল ।
ফ্লোলিও

1
@ ফ্ললিওলিলিও হ্যাঁ, সে কারণেই আমি "মাঝে মাঝে" বলেছিলাম - আমার প্রশ্নের ব্যাখ্যাটি ছিল তারা জিজ্ঞাসা করেছিল যে "আমি যদি বর্ণগুলির ঠিক একই গ্রিডের সাথে শেষ করি তবে ফাইলগুলির মধ্যে পার্থক্য কি"। সুতরাং আমি সরল কেস হিসাবে লসহীন সংক্ষেপণের কথা বলছিলাম যেখানে আপনি বিভিন্ন সংক্ষেপনের পদ্ধতি ব্যবহার করে বিভিন্ন ফাইল টাইপ থেকে সংখ্যার সঠিক একই গ্রিডটি সহ করতে পারেন up
ল্যাঙ্গেহারে

কাঁচ প্রায় "পিক্সেল" প্রতি বেশি বিট ব্যবহার করে না তবে RAW পিক্সেলগুলিও বর্ণনা করে না, এটি ফটোসাইটগুলি বর্ণনা করে। RAW চিত্রগুলি সেন্সরটির কাঁচা সেন্সর ডেটা এবং প্রতিটি নির্দিষ্ট ফটোসাইটে কেবল 1 টি চ্যানেল থাকে, 3 নয় The আরজিবি চ্যানেলগুলি অন্যান্য রঙের প্রতিবেশী ফটোসাইটগুলি দেখে নির্ধারিত হয়। RAW ফাইলগুলি সাধারণত একটি সঙ্কোচিত চিত্রের চেয়ে ছোট হবে যা RAW প্রক্রিয়াকরণের ফলাফল।
এজে হেন্ডারসন

1
উদাহরণস্বরূপ 16 বিট কাঁচা শুধুমাত্র "পিক্সেল" প্রতি 16 বিট ব্যবহার করে তবে একটি সঙ্কুচিত 8 বিট রঙ বিএমপি পিক্সেলটিতে 24 বিট ব্যবহার করতে চলেছে কারণ এটি লাল, সবুজ এবং নীল জন্য 8 বিটের তথ্য সংরক্ষণ করতে হবে। RAW কে আরও সমন্বয় করার কারণটি হ'ল রঙ তথ্যটি এখনও মিলিত হয়নি। আপনি সাদা ব্যালেন্সের মতো জিনিসগুলি পরিবর্তন করতে পারেন (যা প্রতিটি পিক্সেলের ফলাফলের রঙের তথ্য নির্ধারণে প্রতিটি রঙিন ফটোসাইটের প্রভাবকে পরিবর্তন করে)।
এজে হেন্ডারসন

3

বিটম্যাপ

একটি বিটম্যাপ (বিএমপি) হ'ল মূলত আপনি যা বর্ণনা করেছেন তা হ'ল, পিক্সেল রঙের প্রতিনিধিত্বকারী সংখ্যার একটি অ্যারে। যেমন কিছু

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-বিট বিটম্যাপগুলি চিত্র দেখতে পারে যা বিভিন্ন দেখতে (একই আকৃতি তবে বিভিন্ন বর্ণ) উপস্থাপন করতে পারে।

আমার চিত্রগুলি একক সারি, দ্বি মাত্রিক নয়। বেশিরভাগ চিত্রের একটি নির্দিষ্ট সারি আকার সঞ্চিত থাকবে, যা অ্যারেগুলিকে দ্বিমাত্রিক করে তুলবে।

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

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


3

আসুন আমরা এটি সত্য বলেছি যে, প্রতিটি পিক্সেল 0-255 পরিসরের প্রতিটি মাত্র তিনটি (লাল, সবুজ এবং নীল) ছিল। অন্যান্য উত্তরদাতারা এই ধারণাটিকে চ্যালেঞ্জ করে (সঠিকভাবে) শুরু করেছেন, তবে সরলতার জন্য আসুন কেবল এটি সত্য বলে আসুন।

আমার মনে আছে (ভাষাবিজ্ঞানের পাঠ্যপুস্তক থেকে একটি কার্টুন: তবে দু'জন প্রাচীন মিশরীয় পাথরবাহী একটি বিশাল প্রাচীরের নীচে ক্লান্ত হয়ে বসে আছেন যার উপরে তারা বেশ কয়েকটি বিপুল সংখ্যক পথের চিত্র খোদাই করেছে)। একজন অপরজনকে বলছেন: "লেখার সহজ উপায় হতে পারে, 'ফেরাউনের 100,000 সৈন্য ছিল?'" সেই ধারণাটি মাথায় রাখুন।

এখন, ধরুন আপনার চিত্রের প্রথম সারিতে 1800 কালো পিক্সেল রয়েছে। কীভাবে উপস্থাপন করা হবে?

0 0 0    0 0 0     0 0 0   ....

সুতরাং যে কত স্টোরেজ স্পেস প্রয়োজন? প্রতিটি মান একটি বাইট। পিক্সেল প্রতি তিন বাইট, সারিতে 1800 পিক্সেল, সুতরাং ইতিমধ্যে সারি প্রতি 5400 বাইট। সুতরাং 1800 x 1200 মাত্রা সহ একটি চিত্র অবশ্যই 1200 গুণ বেশি নিতে হবে, যা 6 মেগাবাইটেরও বেশি। সুতরাং এখন চলুন এবং একটি গুগল ইমেজ অনুসন্ধান করুন এবং 1800x1200 চিত্রের কয়েকটি ডাউনলোড করুন — যাক, আমরা বলতে পারি যে একটি .pngচিত্র এবং একটি .jpgচিত্র। ফাইলের আকারটি দেখুন: এটি কি 6 এমবি? কোনও উপায় নয়, এটি সাধারণত এর চেয়ে অনেক ছোট। এবং এটি অবশ্যই একটি আকাঙ্ক্ষিত জিনিস, অবশ্যই সেই সমস্ত স্থান সঞ্চয় হয়েছিল এবং ডাউনলোডের সময় আরও কম ....

তো কেমন যাচ্ছে? মূলটি হ'ল, আপনার কাছে এমন অনেক সংখ্যা সঞ্চয় করার জন্য থাকলেও প্রতিনিধিত্ব করার বিভিন্ন উপায় রয়েছেফাইলটিতে সেই সংখ্যাগুলি। আমার উত্তরে এখানে আরও দক্ষ প্রতিনিধিত্ব করার উদাহরণ রয়েছে, দুটি অনুচ্ছেদ আগে। আমি "1800 কালো পিক্সেল" শব্দটি লিখেছিলাম। এটি 17 টি অক্ষর, এবং তাই 17 বাইটের বেশি কোনও গ্রহণ করার প্রয়োজন নেই, তবুও এটি সঠিকভাবে একই তথ্যের বর্ণনা দেয় যার জন্য আমরা ভেবেছিলাম আমাদের 5400 বাইট প্রয়োজন। এবং আপনি অবশ্যই 17 বাইটের চেয়ে আরও ভাল করতে পারবেন (এবং যদি এনকোডিং / ডিকোডিং বাস্তবায়নে অনেক প্রচেষ্টা বাঁচায়) আপনি যদি এই তথ্যটি এনকোড করার জন্য ইংরেজি ভাষা না ব্যবহার করেন, তবে আরও একটি বিশেষ-উদ্দেশ্যমূলক ভাষা। সুতরাং এখন, ইতিমধ্যে, আমরা একাধিক চিত্রের সংকোচনের বিন্যাস পোস্ট করেছি: একটি যা ইংরেজি শব্দ ব্যবহার করে এবং এর চেয়ে আরও দক্ষ একটি। এই কোথায় যাচ্ছে দেখুন?

ঠিক আছে, আপনি বলেছেন, এটি কাজ করে যদি সংলগ্ন পিক্সেলের পুরো গুচ্ছটি একই রঙের হয়ে থাকে। তবে তারা যদি না করে? ঠিক আছে, নিশ্চিত, এটি নির্দিষ্ট চিত্রের সামগ্রীর উপর নির্ভরশীল: যত বেশি অপ্রয়োজনীয়তা রয়েছে তত সহজে তথ্য সংকুচিত করা সহজ । অপ্রয়োজনীয় অর্থ হ'ল যদি আপনি ইতিমধ্যে অন্যান্য অংশগুলি জানেন তবে চিত্রের অংশগুলি বেশ ভালভাবেই পূর্বাভাস দেওয়া যায়। সংকোচনের অর্থ কেবল তথ্য পুনর্গঠনের জন্য প্রয়োজনীয় খালি সর্বনিম্ন লিখে রাখা। প্রতিটি সম্ভাব্য চিত্রের অপ্রয়োজনীয়তা থাকে না, তবে আমার খাঁটি-কালো উদাহরণের চেয়ে জটিল হওয়া সত্ত্বেও মানব চোখ এবং মস্তিষ্কের কাছে যে কোনও বাস্তব চিত্র রয়েছে তা এখনও যথেষ্ট পরিমাণে অতিরিক্ত কাজ করবে। এবং সংকোচনের বিভিন্ন উপায় আছে। কিছু সংক্ষেপণ পদ্ধতি নিখরচায়, অর্থ যে আমার ব্ল্যাক-রো-অফ-পিক্সেলের উদাহরণ হিসাবে, তথ্যটি মূলটির সাথে গাণিতিকভাবে অভিন্ন হওয়ার জন্য পুনর্গঠন করা যেতে পারে। বেশিরভাগ .pngফাইল একটি ক্ষতবিহীন সংক্ষেপণ পদ্ধতি ব্যবহার করে। কিছু পদ্ধতি ক্ষতিগ্রস্থ : পুনর্নির্মাণটি নিখুঁত নয়, তবে ত্রুটিগুলি এমনভাবে লুকানো রয়েছে যেগুলি মানুষের চোখ এবং মস্তিষ্কের তাদের খুব কমই লক্ষ্য করে। বেশিরভাগ .jpgফাইল হ'ল লোকসান।

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

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


1

হ্যাঁ, তবে আপনি কীভাবে এই 1s এবং 0 এর দিকে পৌঁছেছেন তা খুব আলাদা।

আমি একটি উদাহরণ রাখব, তবে এটি নকল এবং সঠিক হিসাবে আরও চিত্রিত করার জন্য মনে করা হয়। মনে রাখবেন যে সমস্ত ডিজিটাল চিত্রগুলি কোনও স্তরে বাইনারিতে প্রতিনিধিত্ব করা হয়।

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

সুতরাং আমাদের নমুনায়, আমরা একটি কালো এবং সাদা চিত্র দেখতে যাচ্ছি।

00067000
00067000
00567800
04056090
40056009

সংখ্যাগুলি "কালো" কতটা শক্তিশালী তা উপস্থাপন করে। ক্যামেরাটি এভাবেই ছবিটি ধারণ করেছিল। এটি একটি শালীন ক্যামেরা তাই এটি কীভাবে চিত্রটি সঞ্চয় করে।

এখন এটি ইমেজটি একটি কম্পিউটারে সঞ্চয় করে, তবে প্রচুর জায়গা নেয় তাই আমরা এটি সংকুচিত করতে চলেছি। এটিকে ম্যাশ করার পাশাপাশি, আমরা আরও জানি যে বেশিরভাগ লোকেরা 1 টি কালো স্তরের পার্থক্য সনাক্ত করতে পারে না তাই আমরা এটিকে কিছুটা মসৃণ করতে চলেছি।

302730
302730
204820
*04056090
1420262019

এখন আমরা এইভাবে ডিস্কে ছবিটি সঞ্চয় করি। এটি কম জায়গা নেয় এবং আমাদের মূল চিত্রের অনেকগুলি উত্পাদন করতে দেয়।

এখন বলা যাক আমরা এটি একটি প্রিন্টারে মুদ্রণ করতে চাই। প্রিন্টারটি কেবলমাত্র এক স্তর কালো ছাপায়, তাই কোনও কম্পিউটার সঞ্চিত, সংকুচিত চিত্রটিকে প্রিন্টার স্পোকে অনুবাদ করে।

00011000
00011000
00111100
01011010
10011001

এটি যুক্তিসঙ্গত বর্ণনামূলক চিত্রটি মুদ্রণ করে তবে আপনি দেখতে পাচ্ছেন, এমনকি উদাহরণের মধ্যেও মানের অভাবের অভাব রয়েছে। তবে ওহে প্রিন্টারের দোষ।

অবশেষে, আপনি 10 টি স্তরের কালো সহ একটি ভাল প্রিন্টারে চিত্রটি মুদ্রণ করতে যান। আপনার ক্যামেরা হিসাবে একই। সুতরাং আপনি সঞ্চিত এবং সংকুচিত চিত্রটি ব্যবহার করুন।

00077000
00077000
00888800
04056090
40066009

আপনি দেখতে পাচ্ছেন যে চিত্রটি "আরও ভাল" তবে মূল থেকে কিছুটা পরিবর্তন করা হয়েছে।

যে কোনও সময়ে আপনার সঠিক যে এটি কেবলমাত্র একটি চ্যানেলের শক্তি। এবং অন্যান্য তারপর সংকুচিত ইমেজ, যে যাইহোক decompress করা আছে, এটি যে খুব সত্য থাকে।

যাইহোক, সংকুচিত বিন্যাসে অনেক "তথ্য" হারিয়ে যায়। তথ্য কি গুরুত্বপূর্ণ? ঠিক আছে, এটি শিল্পী এবং দর্শকদের উপর নির্ভর করে। সঞ্চয় স্থান, প্রক্রিয়াকরণের সময়, চূড়ান্ত / সঞ্চিত চিত্রের গুণমান এবং প্রয়োজনের মধ্যে বেশ কয়েকটি বাণিজ্য অফ রয়েছে। আমি আমার ডকুমেন্টগুলির বেশিরভাগই এক রঙের কালোতে স্ক্যান করি কারণ এটাই আমার প্রয়োজন। যাইহোক, আমার বিয়ের ফটোগুলি বিশাল কাঁচা ফর্ম্যাটে রয়েছে কারণ আমি কখনই জানতে পারি না যে আমি কখন সেগুলির একটি পুনরায় মুদ্রণ চাইব। এটি বলেছিল, আমি যখন তাদের (ফটোগুলি) একটি ডিজিটাল ছবি ফ্রেমে স্থানান্তর করি তখন আমি স্থান বাঁচাতে এটিকে জেপিজিতে রূপান্তর করি। ডিফেরেন্ট চ্যানেল, বিভিন্ন ফিল্টার এবং বিভিন্ন সংকোচনের পদ্ধতিগুলি হ'ল ট্রেড-অফের একটি সিরিজ। এটি মুদ্রকগুলির ত্রিভুজটির একটি ডিজিটাল সংস্করণের মতো।


আপনার ২ য় কোড ব্লক (সংকুচিত) RLE দেখাচ্ছে, তাই না? আপনার সম্ভবত বলা উচিত যে আপনি পুনরাবৃত্তি-গণনা + নমুনা-মান দিয়ে নমুনাগুলি প্রতিস্থাপন করছেন যাতে লোকেরা জানতে পারে যে কী ধরণের সংক্ষেপণ, কারণ আপনি আরএলইয়ের প্রত্যাশা না করলে এটি সম্পূর্ণ অস্পষ্ট।
পিটার কর্ডেস

1

আমি ইমেজ সেন্সিং এবং এনকোডিং / কম্প্রেশন নিয়ে কাজ করেছি বলে বেশিরভাগ পরিপূরক তথ্যের সাথে চিম করব, বেশিরভাগ চলমান চিত্রগুলি।

এর মূল ফর্মে, একটি নির্দিষ্ট স্ক্রিনে প্রদর্শিত একটি চিত্র (কোনও চিত্র) আসলে সংখ্যার একটি অভিন্ন অ্যারে ar এই নম্বরগুলি সমস্ত 0-255 বা 0-65535 বা 0-যাই-32-বিট-হ'ল-আই-ভুলে যাওয়া-গুগল-ইট হতে পারে।

কিন্তু তথ্য সঞ্চয় এবং ট্রান্সপোর্ট করার জন্য অনেকগুলি উপায় রয়েছে, তাদের মধ্যে অনেকগুলি কেবল সময়ের মিস্টের কাছে হারিয়ে যাওয়া প্রযুক্তির পণ্য।

এছাড়াও, একটি বিবরণ যা আমি এখানে অন্য কোনও প্যাডেন্টদের উল্লেখ করতে দেখিনি তা হ'ল একটি ডিজিটাল ক্যামেরা থেকে সত্যিকারের RAW ইমেজ সেন্সর ডেটা বায়ার প্যাটার্নে বা সামসুচ-তে RGrGbB হতে পারে যা তৈরি করতে কমপক্ষে কিছুটা প্রক্রিয়া করা প্রয়োজন এম কে .১ মানব চোখের বলের কোনও ধারণা। আপনার ডিএসএলআর দ্বারা সংরক্ষিত কোনও RAW ফর্ম্যাটে আপনি কখনই তা পান না কারণ আপনি এটি আরজিবি বা ওয়াইউভি পিক্সেলের একটি দুর্দান্ত গ্রিডে রূপান্তর না করা অবধি অব্যর্থ, যদিও সেগুলি 8, 16, 32 বা এগারো-স্কোলিয়ন বিট গভীর হয়।

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

কিছু হালকা শোবার সময় পড়ার জন্য, "ফ্রেম চিত্রের ফর্ম্যাট" বিভাগটি দেখুন: http://focus.ti.com/lit/ug/sprufg8b/sprufg8b.pdf

যাইহোক ... টিআইএফএফ / আরএডাব্লু / আইএফএফ / পিএনজি এর মতো সঙ্কুচিত চিত্র ফাইলগুলির মধ্যে পার্থক্য সম্পর্কে আপনার মূল প্রশ্নের কাছে ফিরে আসুন।

সাধারণত এগুলি বিদ্যমান থাকার কারণটি হ'ল, অনেক চাঁদ আগে, প্রতিটি কম্পিউটার / ওএস / প্রিন্টার প্রস্তুতকারক চিত্রগুলি সংরক্ষণ / প্রেরণের কোনও উপায়ের জন্য তাদের নিজস্ব কিছুটা আলাদা সেট নিয়ে আসে।

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

Ditionতিহ্যগতভাবে এটি হ'ল তারা আপনাকে (বা সম্ভবত আরও বেশি পেশাদার পেশাদার ফটোগ্রাফার) এই উচ্চমানের চিত্রগুলি প্রক্রিয়া করতে তাদের মালিকানাধীন (এবং কখনও কখনও ব্যয়বহুল) সফ্টওয়্যার ব্যবহার করতে পারে, অন্যথায় আপনি অন্য ব্যক্তির ব্যয়বহুল সফ্টওয়্যার ব্যবহার শুরু করতে পারেন। এছাড়াও, সম্ভবত অ্যাডোব ফটোশপ তাদের ফর্ম্যাটটি সমর্থন করতে চায়, তাই তারা তথ্যের জন্য অ্যাডোবকে চার্জ করতে পারে যাতে আরও পেশাদার ফটোগ্রাফাররা পিএস কিনতে পারে এবং সম্ভবত সেই ক্যামেরা তৈরি করতে পারে কারণ পিএস এখন এটি সমর্থন করে। ঘন!

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

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

আইএফএফ (হ্যাঁ, এটি একটি জিনিস) অমিগা কম্পিউটারগুলিতে ব্যবহৃত একটি অনুরূপ ফর্ম্যাট ছিল, আমি বিশ্বাস করি তাদের বা জনপ্রিয় পেইন্ট প্যাকেজগুলির মধ্যে একটি আবিষ্কার করেছেন। তবে, আমি এটি এখানে উদাহরণ হিসাবে ব্যবহার করছি কারণ এটি অন্যের মতো বিট-ম্যাপের চিত্রের ডেটা সংরক্ষণ করে তবে এটি সংকীর্ণ বা আরএলই ডেটা সমর্থন করে, ভেরিয়েবল বিট-গভীরতা 1-বিট মনো থেকে 8-বিট 256-বর্ণের (তবে সাথে প্রতিটি রঙের জন্য বেছে নেওয়ার জন্য একটি 3x8-বিট আরজিবি প্যালেট) পাশাপাশি হালফোন এবং হোল্ড-অ্যান্ড-মডিফাই নামক বিশেষ মোডগুলি যুগের অন্যান্য মেশিনগুলি পরিচালনা করতে পারে তার চেয়ে আরও অনেক রঙের জন্য অনুমতি দেয়। ওহ, এবং এটি অ্যানিমেশনটিকেও সমর্থন করেছিল (জিআইএফ এর মতো) যাতে কোনও আইএফএফ ফাইল ফ্রেমগুলির মধ্যে ভেরিয়েবল বিলম্ব সহ অনেকগুলি ফ্রেম সংরক্ষণ করতে পারে এবং প্রতিটি ফ্রেমের নিজস্ব প্যালেট থাকতে পারে। সুতরাং, আইএফএফ একটি টিআইএফএফ ফাইলের তুলনায়, এই সমস্ত হ্যান্ডেল করতে অতিরিক্ত ডেটা অন্তর্ভুক্ত করবে।

পিএনজি হ'ল আরেকটি ক্ষতিহীন চিত্রের ফর্ম্যাট, আবার বিটম্যাপের ডেটা সংরক্ষণ করছে, তবে কিছু চিত্রের বৈশিষ্ট্য যেমন একটি চিত্র জুড়ে পরিবর্তনশীল স্বচ্ছতার জন্য একটি 8-বিট আলফা চ্যানেল সমর্থন করে (ওয়েব পৃষ্ঠাগুলিতে দরকারী), সুতরাং আবার চিত্রের ডেটা "পে-লোড" দেখতে খুব মিল দেখাবে তবে এর চারপাশের মোড়কটি আলাদা এবং পে-লোডে প্রতি পিক্সেল কেবল আরজিবি ডেটার চেয়ে আরজিবিএ থাকতে পারে।

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

আশা করি এইটি কাজ করবে!


0

আমি ভেবেছি যে আমি এখানে এই তথ্যটি চিম করব যা এই প্রশ্নের প্রথম উত্তর হতে হবে।

কোনও চিত্রের পিক্সেলগুলি বাইটে সংরক্ষণ করা হয় না - যদি না ছবিটি একরঙা থাকে, অর্থাত্ কেবল কালো এবং সাদা।

আপনার যদি ট্রুইকালার চিত্র থাকে তবে প্রতিটি পিক্সেল 16 মান বা 2 বাইট দ্বারা উপস্থাপিত হয় - একটি মান হিসাবে। আপনার যদি 32 বিট চিত্র থাকে তবে প্রতিটি পিক্সেলের জন্য আবার একক মান হিসাবে 32 বিট বা 4 বাইট প্রয়োজন।

আকর্ষণীয়ভাবে যথেষ্ট, চিত্র এবং সাউন্ড ফাইল এবং কম্পিউটারে থাকা প্রতিটি অন্যান্য ডেটা 1s এবং 0 এর বিটগুলিতে সিদ্ধ হয়। এটি কেবলমাত্র সঠিক আকারের অংশগুলিতে তাদের ব্যাখ্যা করেই তাদের কাছ থেকে অর্থ বের করা হয়।

উদাহরণস্বরূপ, একটি চিত্র এবং একটি শব্দের ডকুমেন্ট এবং একটি এমপি 3 ফাইলের মধ্যে একই বুনিয়াদি ডেটা সামগ্রী (বাইটগুলির একটি গুচ্ছ) থাকে এবং এগুলির যে কোনও একটি অন্য ধরণের হিসাবে ব্যাখ্যা করা যায় - আপনি একটি শব্দ ডককে শব্দ হিসাবে ব্যাখ্যা করতে পারেন ফাইল এবং আপনি কিছু শুনতে হবে, কিন্তু এটি সঙ্গীত হবে না। আপনি অবশ্যই একটি সাউন্ড ফাইলটিকে চিত্র হিসাবে ব্যাখ্যা করতে পারবেন এবং এটি কিছু প্রদর্শন করবে তবে এটি কোনও সম্মিলিত চিত্র হবে না।

সুতরাং, সংক্ষেপে বলতে গেলে কম্পিউটার কেবল বিট সম্পর্কে জানে - কিছুটা হয় 1 বা 0 হয় digital ডিজিটাল হিসাবে লেবেলযুক্ত সমস্ত চিত্র, শব্দ, নথি, সিনেমা, ভিডিও, রেকর্ডিং, গেমস, ফোন কল, পাঠ্য বার্তা এবং অন্য যে কোনও কিছুই একই রকম হয় সামগ্রী - 1 এবং 0 এর একগুচ্ছ। 1 এবং 0 এর চিত্র, শব্দ এবং নথি এবং অন্য কিছুর কারণ হয়ে ওঠে কারণ কোডগুলি সেগুলি পড়তে জানে b বিটগুলি গ্রুপগুলিতে পড়তে এবং সে অনুযায়ী প্রক্রিয়া করে।

এ কারণেই আমাদের কাছে 16 বিট এবং 32 বিট চিত্র এবং 16 বিট এবং 24 বিট অডিও ফাইল রয়েছে। আপনি পিক্সেল বা শব্দ নমুনার জন্য যত বেশি বিট ব্যবহার করেন, আপনি তত বেশি অভিব্যক্তিপূর্ণ হতে পারেন - 16 বিট কেবলমাত্র 64 কে অনন্য রঙ সংজ্ঞায়িত করতে পারে তবে 32 বিট 4 মিলিয়নেরও বেশি অনন্য বর্ণ সংজ্ঞায়িত করতে পারে। একটি একরঙা চিত্র প্রতি পিক্সেল 1 বিট ব্যবহার করে - এটি হয় হয় বা বন্ধ হয়।

অডিও ফাইলগুলির সাহায্যে আপনি প্রতি স্যাম্পল যত বেশি বিট ব্যবহার করবেন তত বেশি বিশদ এবং রেকর্ডিংটিকে গুরুত্ব দিতে হবে।


0

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

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


1
এটি একটি ফটোগ্রাফি সাইট, এবং যেহেতু ডিজিটাল ক্যামেরাগুলি ভেক্টরগুলির চেয়ে পিক্সেল অ্যারে রেকর্ড করে, আমি এই প্রসঙ্গে সাধারণ হিসাবে এটি এতটা "ভুলে যাওয়া" বলব না।
mattdm

0

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

এখানে প্রথম প্রশ্নটি হ'ল:

আরও একটি সংখ্যার দৃষ্টিকোণ থেকে, কী 16-বিট চিত্রের মতো কিছু 32-বিট চিত্রের চেয়ে আলাদা করে তোলে? আবার, একটি চিত্র 0 -255 এর মধ্যে পূর্ণসংখ্যার মান সহ কেবল একটি অ্যারে।

যেমনটি আগে উপস্থাপিত: না তা নয়। একটি চিত্র কেবল 0-255 এর মধ্যে পূর্ণসংখ্যার মানগুলির একটি অ্যারে নয়। প্রকৃতপক্ষে এটি 0 থেকে 65535 মানগুলির একক বা বহুমাত্রিক অ্যারে হতে পারে, 0 থেকে 4294967295 এর অ্যারে বা বিটগুলির একটি অ্যারে (কিছুটা 0 বা 1 মান রাখতে পারে, এটিই সমস্ত) যা সক্ষম সফ্টওয়্যার দ্বারা রূপান্তরিত হয় বিভিন্ন এনকোডিং বিধি অনুসারে ইমেজরের সংখ্যায় চিত্র ফাইলগুলি পড়ুন।

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

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

  • বিআইটি - 0 বা 1 ধারণ করে
  • UINT8 - 8 বিট স্বাক্ষরবিহীন পূর্ণসংখ্যা - তারা [0 থেকে 255] ব্যবধানের মধ্যে মান ধরে রাখতে পারে।
  • INT8 - 8 বিট স্বাক্ষরিত পূর্ণসংখ্যা - তারা [-126 থেকে 127] ব্যবধানের মধ্যে মান ধরে রাখতে পারে।
  • UINT16 - 16 বিট স্বাক্ষরযুক্ত পূর্ণসংখ্যা - তারা [0 থেকে 65535] ব্যবধানের মধ্যে মান ধরে রাখতে পারে।
  • INT16 - 16 বিট স্বাক্ষরযুক্ত পূর্ণসংখ্যা - তারা [−32768 থেকে 32767] ব্যবধানের মধ্যে মান ধরে রাখতে পারে।
  • UINT32 - 32 বিট স্বাক্ষরযুক্ত পূর্ণসংখ্যার - তারা [0 থেকে 4294967295] ব্যবধানের মধ্যে মান ধরে রাখতে পারে।
  • INT32 - 32 বিট স্বাক্ষরবিহীন পূর্ণসংখ্যার - তারা [742147483648 থেকে 2147483647] ব্যবধানের মধ্যে মান ধরে রাখতে পারে।
  • বা complex সমস্ত ডেটাগুলির সংমিশ্রণ আরও জটিল বিন্যাসে। উদাহরণস্বরূপ, একটি ইউআইএনটি 16 (16 বিআইটি) 3 টি পৃথক মান ধারণ করে, প্রথম 4 টি বিআইটি হোল্ডিংয়ের মান 0 থেকে 127 এর মধ্যে, পরের বিআইটি 0 বা 1 এবং আরও ধরে রাখবে।

আরও আরও কিছু আছে প্রোগ্রামারদের যখন ফাইল থেকে পূর্ণসংখ্যার ডেটা টাইপ পড়া বা লেখার সময় ডিল করতে হয়। পরিণতি।এডিয়েননেসটি সেই অনুক্রমিক ক্রমকে বোঝায় যেখানে মেমরি বা ফাইলগুলিতে সঞ্চিত হলে বাইটগুলি (আমাদের টেবিল থেকে UINT8) আরও বড় সংখ্যাতে মান হিসাবে সাজানো হয় arranged এন্ডিয়ানিয়ানেশন কম্পিউটার বিজ্ঞানের পক্ষে আগ্রহী কারণ দুটি বিবাদযুক্ত এবং বেমানান ফর্ম্যাট সাধারণ ব্যবহারে রয়েছে: বিটস বা বাইটস বা অন্যান্য উপাদানগুলি বড় প্রান্ত থেকে অর্ডার করা হয় তার উপর নির্ভর করে মানগুলি বিগ-এন্ডিয়ান বা লিটল-এন্ডিয়ান ফর্ম্যাটে উপস্থাপিত হতে পারে (সর্বাধিক তাৎপর্যপূর্ণ বিট) বা সামান্য প্রান্ত (কমপক্ষে উল্লেখযোগ্য বিট)। সরল কথায় আপনি এই জাতীয় 0000000011011111 বা ... যেমন 1101111100000000 নির্ভর করে বা আপনি পছন্দ করেছেন এমন এন্ডিয়ান অর্ডার পছন্দ করতে পারেন তেমন একটি মান সংরক্ষণ করতে পারেন। এবং আপনার উদ্দেশ্য অনুসারে যে কোনও আদেশ চয়ন করতে আপনি নির্দ্বিধায়। আপনি যখন কোনও ইমেজ ফাইল ফর্ম্যাট ডিজাইন করেন তখন এমন কোনও নিয়ম নেই যা আপনি করেন।

কম্পিউটার প্রোগ্রামিংয়ের পূর্ণসংখ্যাগুলি কম বেশি জায়গা ব্যবহার করছে তা লক্ষ্য করুন, মানটির উপর নির্ভর করে। 255255255 লেখার জন্য আপনার আরও কাগজের দরকার যেমন একটি বড় মান লিখতে আপনার আরও বিআইটি দরকার। তারপরে আপনি যখন মানটি পড়তে চান তখন অবশ্যই লিখতে হবে যখন আপনি তৈরি করেছেন এমন বিধিগুলি অবশ্যই জানতে হবে। অন্যথায় আপনার পক্ষে 0 -255 এর মধ্যে পূর্ণসংখ্যার মান সহ কেবল একটি অ্যারে কীভাবে পড়বেন তা অনুমান করা আপনার পক্ষে অসম্ভব কারণ কারণ আপনি কেবল জানেন না যে এই সংখ্যাগুলি কোথায় সঞ্চিত রয়েছে এবং কীভাবে এই সংখ্যাগুলি সংরক্ষণ করা হয় আপনার এত পছন্দগুলি দেওয়া হয়েছে (বিআইটি, ইউআইএনটি 8) , UINT16, UINT32 বা those সমস্ত কম্পিউটারের ডেটা টাইপের সংমিশ্রণ)। এবং ভুলে যাবেন না, এন্ডিয়ানেশন ness আপনি যদি জানেন না যে ডেটাটি বড়-এন্ডিয়ান বা লিটল-এন্ডিয়ান অর্ডার ব্যবহার করে লেখা হয়েছিল আপনি সঠিক মানটি পড়তে পারছেন না।

এই চিত্রগুলির কারণে 0 - 255 এর মধ্যে পূর্ণসংখ্যার মান মাত্র একটি অ্যারে নেই। তাদের মধ্যে কিছুগুলি ইউআইএনটি 16 (16 বিট চিত্র) এর অ্যারে হয় বা অন্যরা ইউআইএনটি 32 (8 বিট চিত্র) এর অ্যারে হয়। কিছু খুব সৃজনশীল কম্পিউটার প্রোগ্রামার এমনকি স্বাক্ষরিত প্রকারগুলিও ব্যবহার করতে পারে যা আপনাকে INT8 এর অ্যারে সহ বাঁচায়, যার অর্থ -126 এবং 127 এর মধ্যে মানের অ্যারে।

প্রকৃতপক্ষে আপনি যখন কোনও চিত্র ফাইলটি পড়েন, তখন আপনার মুখোমুখি হওয়া প্রথম ডেটাগুলির মধ্যে একটি সাধারণত কিছু বিআইটি থাকে যা চিত্রের প্রস্থ এবং উচ্চতা উপস্থাপন করে। এবং এগুলি কেবল কিছু 0-255 মান নয়। সেগুলি প্রোগ্রামার দ্বারা নির্বাচিত কিছু ডেটা ধরণেরও রয়েছে। কিছু প্রোগ্রামাররা মনে করবে যে 16 টি বিআইটি 65535 পিক্সেলের সর্বাধিক চিত্রের প্রস্থ সংরক্ষণ করার জন্য আগ্রহী, কারণ তারা কিছু ছোট বোতামের চিত্রগুলি রাখার জন্য একটি খেলায় ব্যবহৃত একটি চিত্র বিন্যাস ডিজাইন করছে। অন্য কিছু প্রোগ্রামার এখানে একটি 32 বিট মান ব্যবহার করতে পারে যা আপনাকে 4294967295 এর প্রস্থ এবং উচ্চতা পর্যন্ত চিত্রগুলি সঞ্চয় করতে দেয় Some কিছু পাগল নাসার প্রোগ্রামার এমনকি 18446744073709551615 পিক্সেল পর্যন্ত গ্যালাক্সির বিশাল ফটো সঞ্চয় করার জন্য 64 বিট ব্যবহার করতে পারে।আপনি যদি নিয়মগুলি জানেন না, আপনি কল করার সাথে সাথে সেই "মানগুলি" পড়তে পারবেন না। কারণ আপনি জানেন না যে তারা চিত্রের ফাইলে কোথায় শুরু হয় এবং কোথায় শেষ হয়। সুতরাং আপনি বিআইটিগুলির একগুচ্ছ সমাপ্তি সম্পর্কে আপনি কিছুই বুঝতে পারেন না।

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

একটি কালো এবং সাদা চিত্রের একটি ব্যবহারিক সহজ ফাইল ফর্ম্যাট যা 4x2 পিক্সেল চিত্র উপস্থাপনের জন্য কেবল একটি একক মান 166 ধারণ করে:

চিত্র (1 - কালো পিক্সেল, 0 - সাদা পিক্সেল):

1010 
0110

এই ফাইল ফর্ম্যাটটিতে PIXEL পিছু 1 বিআইটি ব্যবহার করুন একটি সিংগল 8 বিট পূর্ণসংখ্যা মান 166 (10100110) হিসাবে সঞ্চিত। এখানেই শেষ. 0-255 মানের কোনও অ্যারে ব্যবহার করা হয় না তবে 8 টি আলাদা 0 বা 1 টি মান 166 হিসাবে সংরক্ষণ করা হয়।

আপনি যদি আরগিজির জন্য প্রতিটি পিক্সেলের জন্য * 3 বারের জন্য 0-255 মানের একটি অ্যারে ব্যবহার করেন তবে আপনি 24 বার বড় চিত্র সহ শেষ করতে পারবেন। এই ফাইল ফর্ম্যাটটি কেবলমাত্র এই জাতীয় চিত্র সংরক্ষণের জন্য আপনার 24 ঘন্টা ডিস্ক স্পেস সংরক্ষণ করেছে বা আপনি যখন আপনার উচ্চ কার্যকারিতা 3 ডি গেম ইঞ্জিনে এই চিত্রটি ব্যবহার করেন তখন এই চিত্রটি কম্পিউটার র্যামে পড়তে এবং 24 ঘন্টা কম কম্পিউটার মেমোরির প্রয়োজন হয় এটি দিয়ে পর্দায় কিছু আঁকুন (চারদিকে উড়ে আসা হাজার হাজার ধূলিকণা টেক্সচারটি ভাল প্রার্থী হতে পারে :))।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.