একটি EXIF ফাইল কি?
EXIF stands for “Exchangeable Image File Format”, the definition first given by Japan Camera Industry Association (JCIA) in 1985. মানটি আজ পর্যন্ত জাপান ইলেক্ট্রনিক্স অ্যান্ড ইনফরমেশন টেকনোলজি ইন্ডাস্ট্রিজ অ্যাসোসিয়েশন (JEITA) দ্বারা পরিচালিত হয়। EXIF হল একটি স্ট্যান্ডার্ড যা মূলত ডিজিটাল ক্যামেরা এবং স্ক্যানার দ্বারা ব্যবহৃত ইমেজ এবং সাউন্ড ফরম্যাটের স্পেসিফিকেশনের জন্য।
EXIF মান চিত্র ফাইলের সাথে ট্যাগিং এবং মেটাডেটা তথ্য অন্তর্ভুক্ত করে। মেটাডেটাতে ক্যামেরার মডেল, শাটারের গতি, তারিখ এবং সময়, অ্যাপারচার, প্রস্তুতকারক, এক্সপোজার টাইম, X রেজোলিউশন, Y রেজোলিউশন ইত্যাদির মতো তথ্য থাকতে পারে। সাধারণত EXIF ডেটা ডিফল্টরূপে লুকানো থাকে। EXIF ডেটা দেখার জন্য, একজনকে ইমেজ দেখার অ্যাপ্লিকেশনের ভিউ বৈশিষ্ট্য নির্বাচন করতে হবে। Exif মেটাডেটা একটি একক চিত্র ফাইলে প্রযুক্তিগত এবং প্রাথমিক চিত্র ডেটা সহ থাম্বনেইলগুলিও অন্তর্ভুক্ত করতে পারে।
ইতিহাস এবং সংস্করণ
অক্টোবর 1995 সালে, JEIDA সংস্করণ 1 প্রতিষ্ঠা করে। এই সংস্করণে JEIDA কাঠামোকে সংজ্ঞায়িত করেছে, যা চিত্র ডেটা বিন্যাস এবং বৈশিষ্ট্যের তথ্য এবং মৌলিক ট্যাগগুলি নিয়ে গঠিত।
নভেম্বর 1997, সংস্করণ 1.1 সংস্করণ 1 থেকে বেশিরভাগ ট্যাগের সাথে প্রবর্তন করা হয়েছিল তবে ঐচ্ছিক বৈশিষ্ট্য তথ্য এবং বিন্যাস অপারেশনের জন্য বিধান যুক্ত করা হয়েছিল।
জুন 1998, sRGB রঙের স্থান, সংকুচিত থাম্বনেইল এবং অডিও ফাইল সহ সংস্করণ 2।
ডিসেম্বর 1998, বর্ধিত সঞ্চয়স্থান এবং বৈশিষ্ট্য তথ্য সহ সংস্করণ 2.1।
ফেব্রুয়ারী 2002, সংস্করণ 2.2, উন্নত সংস্করণ 2.1 প্রিন্ট ফিনিশিং যুক্ত করা হয়েছে।
সেপ্টেম্বর 2003, সংস্করণ 2.21 ঐচ্ছিক রঙের স্থান সহ যা adobe RGB নামে পরিচিত।
EXIF ফাইল ফরম্যাট
EXIF নির্দিষ্ট মেটাডেটা যোগ করে নিম্নলিখিত ফাইল ফরম্যাট ব্যবহার করে।
- JPEG - সংকুচিত চিত্র ফাইলের জন্য বিচ্ছিন্ন কোসাইন ট্রান্সফর্ম (ডিসিটি)।
- TIFF রেভ. 6.0 (RGB বা YCbCr) আনকম্প্রেসড ইমেজ ফাইলের জন্য।
- অডিও ফাইলের জন্য RIFF WAV (লিনিয়ার PCM বা ITU-T G.711 μ-সংকুচিত অডিও ডেটার জন্য PCM, এবং IMA-ADPCM সংকুচিত অডিও ডেটার জন্য)।
মার্কার EXIF দ্বারা ব্যবহৃত
মার্কার 0xFFE0~~0xFFEF হল অ্যাপ্লিকেশন মার্কার, ব্যবহারকারী অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হয়। উদাহরণস্বরূপ, পুরানো ডিজি ক্যামগুলি ছবি সংরক্ষণের জন্য JFIF (JPEG ফাইল ইন্টারচেঞ্জ ফরম্যাট) ব্যবহার করে। JFIF ডিজি ক্যাম কনফিগারেশন ডেটা এবং থাম্বনেইল চিত্র সন্নিবেশ করার জন্য APP0 (0xFFE0) মার্কার ব্যবহার করে। অধিকন্তু, EXIF ডেটা সন্নিবেশ করার জন্য একটি অ্যাপ্লিকেশন মার্কারও ব্যবহার করে, কিন্তু EXIF JFIF ফর্ম্যাটের সাথে বিরোধ এড়াতে APP1 (0xFFE1) মার্কার ব্যবহার করে। প্রতিটি EXIF ফাইল ফরম্যাট এই ফরম্যাট থেকে শুরু হয়।
SOI মার্কার | APP1 মার্কার | APP1 ডেটা | অন্যান্য মার্কার৷ |
---|---|---|---|
FFD8 | FFE1 | SSSS 457869660000 TTTT…… | FFXX SSSS DDDD…… |
এটি SOI (0xFFD8) মার্কার থেকে শুরু হয়, তাই এটি একটি JPEG ফাইল। তারপর APP1 মার্কার অবিলম্বে অনুসরণ করে। EXIF-এর সমস্ত ডেটা এই APP1 ডেটা এলাকায় সংরক্ষণ করা হয়। উপরের টেবিলে SSSS এর অংশটির অর্থ হল APP1 ডেটা এলাকার (EXIF ডেটা এলাকা) আকার। অনুগ্রহ করে লক্ষ্য করুন যে SSSS আকারে বর্ণনাকারীর আকারও অন্তর্ভুক্ত রয়েছে। SSSS এর পরে, APP1 ডেটা শুরু হয়। প্রথম অংশটি EXIF কিনা তা সনাক্ত করার জন্য একটি বিশেষ ডেটা, ASCII অক্ষর EXIF এবং 0x00 এর 2 বাইট ব্যবহার করা হয়েছে৷ APP1 মার্কার এলাকার পরে, অন্যান্য JPEG মার্কার অনুসরণ করে।
Exif ডেটা স্ট্রাকচার
EXIF ডেটা (APP1) এর একটি রুক্ষ কাঠামো নীচে দেখানো হয়েছে। উপরে আলোচনা করা হয়েছে, EXIF ডেটা ASCII অক্ষর EXIF এবং 0x00 এর 2 বাইট থেকে শুরু হয়, তারপর EXIF ডেটা অনুসরণ করে৷ EXIF ডেটা সঞ্চয় করতে TIFF ফর্ম্যাট ব্যবহার করে।
FFE1 | APP1 মার্কার |
---|---|
SSSS | APP1 ডেটা |
45786966 0000 | Exif হেডার |
49492A00 08000000 | TIFF হেডার |
XXXX। . . . | IFD0 (প্রধান ছবি) |
LLLLLLLL | IFD1 এর লিঙ্ক |
XXXX। . . . | IFD0 এর ডেটা এলাকা |
XXXX। . . . | Exif SubIFD |
00000000 | লিংকের শেষ |
XXXX। . . . | Exif SubIFD এর ডেটা এলাকা |
XXXX। . . . | IFD1(থাম্বনেল ছবি) |
00000000 | লিংকের শেষ |
XXXX। . . . | IFD1 এর ডেটা এলাকা |
FFD8XXXX . . XXXXFFD9 | থাম্বনেল ছবি |
টিআইএফএফ হেডার
he 8-বাইট TIFF ফাইল হেডারে নিম্নলিখিত তথ্য রয়েছে:
Bytes 0-1:
ফাইলের মধ্যে ব্যবহৃত বাইট অর্ডার। আইনি মান হল:II”(4949.H)MM” (4D4D.H)।
II বিন্যাসে, বাইট অর্ডার সর্বদা সর্বনিম্ন উল্লেখযোগ্য বাইট থেকে সবচেয়ে উল্লেখযোগ্য বাইট পর্যন্ত হয়, 16-বিট এবং 32-বিট পূর্ণসংখ্যা উভয়ের জন্য এটিকে বলা হয় লিটল-এন্ডিয়ান বাইট অর্ডার। MM বিন্যাসে, 16-বিট এবং 32-বিট পূর্ণসংখ্যা উভয়ের জন্য বাইট অর্ডার সর্বদা সবচেয়ে গুরুত্বপূর্ণ থেকে কম গুরুত্বপূর্ণ পর্যন্ত হয়। একে বলা হয় বিগ-এন্ডিয়ান বাইট অর্ডার।
বাইটস 2-3:
একটি নির্বিচারে কিন্তু সাবধানে নির্বাচিত নম্বর (42) যা ফাইলটিকে আরও একটি TIFF ফাইল হিসাবে চিহ্নিত করে৷ বাইট অর্ডার বাইট 0-1-এর মানের উপর নির্ভর করে৷
বাইট 4-7:
প্রথম IFD-এর অফসেট (বাইটে)। ডিরেক্টরিটি শিরোনামের পরে ফাইলের যেকোনো স্থানে থাকতে পারে তবে একটি শব্দ সীমানা থেকে শুরু করতে হবে। বিশেষ করে, একটি চিত্র ফাইল ডিরেক্টরি এটি বর্ণনা করা চিত্র ডেটা অনুসরণ করতে পারে। পাঠকদের অবশ্যই পয়েন্টারগুলি অনুসরণ করতে হবে যেখানে তারা নেতৃত্ব দিতে পারে৷ বাইট অফসেট শব্দটি সর্বদা এই নথিতে টিআইএফএফ ফাইলের শুরুতে একটি অবস্থান উল্লেখ করতে ব্যবহৃত হয়৷ ফাইলের প্রথম বাইটটির অফসেট 0 আছে।
ইমেজ ফাইল ডিরেক্টরি
একটি IFD-তে ইমেজ সম্পর্কে তথ্যের পাশাপাশি প্রকৃত ইমেজ ডেটার পয়েন্টার থাকে। এতে ডিরেক্টরি এন্ট্রির সংখ্যার (যেমন ক্ষেত্রের সংখ্যা) 2-বাইট গণনা থাকে, তারপরে 12-বাইট ফিল্ড এন্ট্রিগুলির একটি ক্রম থাকে। , পরবর্তী IFD-এর একটি 4-বাইট অফসেট অনুসরণ করে (বা 0 যদি না থাকে)। একটি টিআইএফএফ ফাইলে কমপক্ষে 1টি আইএফডি থাকতে হবে এবং প্রতিটি আইএফডিতে কমপক্ষে একটি এন্ট্রি থাকতে হবে।
IFD এন্ট্রি
প্রতিটি 12-বাইট IFD এন্ট্রি নিম্নলিখিত বিন্যাসে রয়েছে।
বাইটস | বর্ণনা |
---|---|
0-1 | ট্যাগ যা ক্ষেত্রটিকে চিহ্নিত করে৷ |
2-3 | ক্ষেত্রের ধরন |
4-7 | উল্লিখিত প্রকারের গণনা |
8-11 | মূল্য অফসেট, ক্ষেত্রের জন্য মানের ফাইল অফসেট (বাইটে)৷ মান একটি শব্দ সীমানা থেকে শুরু হবে বলে আশা করা হচ্ছে; অনুরূপ মান অফসেট এইভাবে একটি জোড় সংখ্যা হবে. এই ফাইল অফসেট ফাইলের যেকোনো জায়গায় পয়েন্ট করতে পারে, এমনকি ইমেজ ডেটার পরেও |
একটি টিআইএফএফ ক্ষেত্র হল একটি লজিক্যাল সত্তা যা টিআইএফএফ ট্যাগ এবং এর মান নিয়ে গঠিত। এই যৌক্তিক ধারণাটি একটি IFD এন্ট্রি হিসাবে প্রয়োগ করা হয়, এবং প্রকৃত মান যদি এটি মান/অফসেট অংশে, IFD এন্ট্রির শেষ 4 বাইটের সাথে খাপ খায় না। TIFF ক্ষেত্র এবং IFD এন্ট্রি শর্তাবলী বেশিরভাগ প্রসঙ্গে বিনিময়যোগ্য।
থাম্বনেইল ছবি
Exif format contains thumbnail of image (except Ricoh RDC-300Z). Usually it is located next to the IFD1. থাম্বনেইলের জন্য 3টি ফর্ম্যাট রয়েছে; JPEG ফরম্যাট (JPEG YCbCr ব্যবহার করে), RGB TIFF ফরম্যাট, YCbCr TIFF ফরম্যাট।
JPEG ফরম্যাট থাম্বনেইল
If the value of Compression(0x0103) Tag in IFD1 is ‘6’, thumbnail image format is JPEG. Most of Exif image uses JPEG format for thumbnail. In that case, you can get offset of thumbnail by JpegIFOffset(0x0201) Tag in IFD1, size of thumbnail by JpegIFByteCount(0x0202) Tag. Data format is ordinary JPEG format, starts from 0xFFD8 and ends by 0xFFD9. মনে হচ্ছে JPEG ফরম্যাট এবং 160x120pixels আকারের থাম্বনেইল ফরম্যাট Exif2.1 বা তার পরের জন্য সুপারিশ করা হয়েছে।
টিআইএফএফ ফরম্যাট থাম্বনেইল
যদি IFD1-এ কম্প্রেশন(0x0103) ট্যাগের মান ‘1’ হয়, তাহলে থাম্বনেইল ইমেজ ফরম্যাট কোনো কম্প্রেশন নয় (টিআইএফএফ ইমেজ বলা হয়)। থাম্বনেইল ডেটার স্টার্ট পয়েন্ট হল স্ট্রিপঅফসেট(0x0111) ট্যাগ, থাম্বনেইলের আকার হল স্ট্রিপবাইটকাউন্টস(0x0117) ট্যাগের সমষ্টি৷