موضوع مقاله: GIF | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # GIF | مقدمه: گیف پسوند٫به انگلیسی:(GIF) سه حرفی و مشخص‌کنندهٔ بافت پرونده‌های گرافیکی ثابت یا متحرک است. | ## بخش 1: GIF | دیکشنری آکسفورد (فرهنگ انگلیسی آکسفورد) دو تلفظ جیف و گیف را برای این فرمت صحیح دانسته، در حالی که این اشتباه است و تلفظ درست این فرمت «جیف» است، زیرا استیو ویل‌هایت (Steve Wilhite) سازنده این فرمت محبوب می‌گوید که صدای «جِی» (G) ابتدای این فرمت در واقع صدای «جِی» نرم (از کلمهٔ soft G) است و بنابراین نباید آن را گیف تلفظ کرد. کامپیوسرو فرمت گیف را در سال ۱۹۸۷ به عنوان یک فرمت تصویر رنگی برای صفحه دانلود فایل‌های خود ارائه کرد تا آن را جایگزین فرمت سیاه و سفید سابق خود RLE نماید. گیف به علت استفاده از فشرده‌سازی داده‌ها ال زد دابلیو، که از کدگذاری‌های فرمت‌هایی همچون PCX و MacPaint بهینه‌تر بود و همچنین امکان آن را می‌داد که تصاویر نسبتاً حجیم حتی با مودم‌هایی بسیار کند در مدت کوتاهی بارگذاری شوند، شهرت یافت و محبوب شد. در سال ۱۹۸۹ میلادی، کامپیوسرو یک نسخهٔ بهبودیافته تحت عنوان 89a ارائه کرد که از امکاناتی همچون تأخیر در پویانمایی، شفافیت رنگ‌های پس‌زمینه و ذخیرهٔ فراداده منحصر به هر برنامه پشتیبانی می‌کرد. نسخهٔ 89a همچنین از امکان به کاربستن برچسب‌های متنی به صورت متن (و نه نهفته کردن آن‌ها در داده‌های گرافیکی) پشتیبانی می‌نماید، ولی از آنجایی که کنترل ناچیزی بر فونت‌های نمایش این متون وجود دارد، این امکان به صورت فراگیر مورد استفاده نیست. جهت ایجاد تمایز میان این دو نسخه از فایل‌های گیف، می‌توان به شش بایت اول فایل موردنظر (معروف به "عدد جادویی" یا "امضا") توجه کرد، که اگر به عنوان یک کد اسکی (استاندارد) بدان توجه شود، به ترتیب عبارات "GIF87a" و "GIF89a" را نمایش می‌دهد. این ویژگی گیف که بتوان چند تصویر را در یک فایل ذخیره نمود، همراه با امکان کنترل داده‌ای، به شکل فراگیر و گسترده‌ای برای تولید پویانمایی‌های ساده در وب استفاده می‌شود. امکان اختیاری درهم‌تنیدگی تصویر، که خطوط اسکن تصویر را خارج از ترتیب پیش‌بینی‌شده به‌گونه‌ای ذخیره می‌نماید که حتی یک تصویر کاملاً بارگذاری نشده هم تا حدودی قابل تشخیص باشد، نیز به رونق گیف کمک کرد، چرا که کاربر با بهره بردن از آن می‌تواند قبل از تکمیل بارگذاری فایل دیدی نسبت به آن یافته و به محض تشخیص عدم تمایل خود به آن فایل دانلود را متوقف کند. کلمهٔ "گیف " به عنوان یک اسم در ویراست‌های جدیدتر بسیاری از لغت‌نامه‌های انگلیسی یافت می‌شود. در سال ۲۰۱۲ میلادی، شاخهٔ آمریکایی انتشارات دانشگاه آکسفورد کلمهٔ "GIF" را به عنوان یک فعل، به معنی "ساختن یک فایل گیف"، پذیرفت. واژه‌شناسان این انتشارات آن را به عنوان "واژهٔ سال" برگزیدند، با این توضیح که گیف‌هابه صورت "یک ابزار جدی در پژوهش و خبرنگاری" تکامل یافته و به بلوغ رسیده‌اند. در ماه می سال ۲۰۱۵ میلادی، فیسبوک پس از آن که در ابتدا پشتیبانی از گیف را رد کرده بود، رسماً پشتیبانی از آن را پذیرفت. کاربردها قطعاً کاربردهای گیف‌ها بسیار گسترده‌تر از آن هستند که بتوان در اینجا حق مطلب را ادا کرد، لذا در ادامه صرفاً به چند کاربرد مطرح آن‌ها بسنده می‌شود: از گیف‌ها می‌توان برای هنرهای خطی ظریف (همانند نمادها) که تعداد رنگ محدودی نیاز دارند به نحو احسن بهره برد. در این صورت از فشرده‌سازی بدون اتلاف این فرمت که در سطوح صاف و تک‌رنگ با مرزهای مشخص به خوبی پاسخ می‌دهد بهره خواهیم برد. از گیف‌ها می‌توان برای ذخیره‌سازی داده‌های اسپرایت (یک بیتمپ دوبعدی جاسازی شده در صحنه‌ای بزرگتر) با تنوع رنگ پایین در بازی‌ها بهره برد. تبیین دقیق عملکرد محصولات (مخصوصاً محصولات مکانیکی و متحرک) و انتقال مفهوم کار آن‌ها به بهترین نحو ممکن. از گیف‌ها می‌توان برای پویانمایی‌های کوتاه و کلیپ‌های کوتاه ویدئویی با رزولوشن پایین بهره برد. | ## بخش 2: GIF | گیف‌ها این امکان را به ما می‌دهند که بیش از یک منبع ویدئویی را ویرایش، مرتب و حتی ترکیب کنیم تا حالاتی متفاوت با قصد اولیهٔ سازندهٔ آثار را به‌وجود آورده یا یک نکتهٔ ظریف را بزرگ‌نمایی کنیم، که همگی می‌توانند موجب ایجاد حالتی طنزآمیز در محصول نهایی ساخت گیف شوند. یک فایل گیف عملاً یک ناحیهٔ گرافیکی با ابعاد مشخص (اصطلاحاً "صفحهٔ منطقی") را ارائه می‌کند که می‌تواند تعدادی (صفر یا بیشتر) تصویر را شامل شود. در بسیاری از فایل‌های گیف، تنها یک تصویر وجود دارد که تمام صفحهٔ منطقی را پوشش می‌دهد، حال‌آن‌که در برخی فایل‌های گیف صفحهٔ منطقی به تعدادی بخش مختلف برای زیرتصویرهای مختلف تقسیم می‌شود. علاوه‌براین، تصاویر می‌توانند نقش قاب (frame)های پویانمایی در یک فایل گیف پویانمایی‌شده را ایفا کنند، که در این حالت نیز لزومی ندارد یک قاب (frame) تمامیت صفحهٔ منطقی فایل را پوشش دهد. پس از آن، فایل به قسمت‌هایی تقسیم می‌شود (تکه‌تکه می‌شود) که هر کدام با یک علامت ۱ بایتی مشخص می‌شوند: یک تصویر (معرفی شده توسط 0x2C، یک ویرگول ',') یک بلوک توسعه (extension block) (معرفی شده توسط 0x21، یک علامت تعجب '!') دنبال‌کنندهٔ فایل (trailer) که عملاً اتمام فایل را اعلام می‌نماید (یک بایت با مقدار 0x3B، یک عدد ';')، که مسلماً می‌بایست آخرین بایت در فایل موردنظر باشد. پس از آن اطلاعات تصویر بدین‌نحو می‌آید: یک بایت که عرض (bit width) علامت‌های کدگذاری‌نشده را ارائه می‌کند (که می‌بایست حداقل دو بیت عرض داشته باشد، حتی اگر تصویر فقط دو رنگ را شامل شود). لیست پیوندی (Linked List)های مورد استفادهٔ داده‌های تصویر و بلوک‌های توسعه شامل یک سری از زیربلوک‌ها می‌باشند، که هر کدام از این زیربلوک‌ها با یک بایت شامل تعداد بایت‌های زیربلوک مربوطه (۱ الی ۲۵۵) شروع می‌شوند. چنین ساختاری این امکان را به فایل می‌دهد که حتی اگر بخشی از آن نامفهوم باشد، بازهم تجزیه و کدگشایی شود. یک فایل گیف 87a می‌تواند شامل انواع بلوک‌های توسعه باشد و هدف آن است که کدگشا (decoder) بتواند فایل را خوانده و نمایش دهد، حتی اگر امکانات آن برخی بلوک‌های توسعه را دربرنگرفته و نتواند آن‌ها را متوجه شود. ملاحظه می‌شود که به علت کاهش تعداد رنگ‌های مورد استفاده، برخی مشکلات در نمایش تصویر هویدا شده‌است و از کیفیت تصویر کاسته شده‌است. تنوع و ترکیبات رنگ موجود گیف‌ها مبتنی بر رنگ و تنوع رنگی هستند، بدین‌معنی که رنگ‌های به‌کاررفته در یک تصویر (frame) در یک فایل مقادیر RGB (قرمز، سبز، آبی) خود را در یک جدول رنگ که تا ۲۵۶ داده را می‌تواند نگه‌دارد به صورت ذخیره شده دارند، و داده‌های تصویر با اندیس (۰ الی ۲۵۵) به مقادیر موردنظر برای رنگ خود در جدول رنگ اشاره می‌کنند. با آن که تنوع ترکیبات رنگ موجود برای گیف‌ها بسیار زیاد است، ولی حداکثر تعداد رنگ‌هایی که می‌توانند به صورت هم‌زمان در یک تصویر (frame) به نمایش درآیند ۲۵۶ می‌باشد. این محدودیت در زمان معرفی گیف‌ها معقول و منطقی به نظر می‌رسید، چراکه در آن زمان تعداد بسیار کمی از افراد بودند که به سخت‌افزاری با امکان نمایش بیش از ۲۵۶ رنگ به صورت هم‌زمان دسترسی داشتند. کارتون‌ها، نقاشی‌های خطی، کارهای گرافیکی ساده و عکس‌های سیاه و سفید معمولاً نیاز به حداکثر ۲۵۶ رنگ دارند. یک جدول رنگ کوچک می‌تواند نیازهای تصاویر کوچک را برآورده نماید، و کوچک نگه‌داشتن جدول رنگ امکان آن را فراهم می‌کند که گیف سریع‌تر دانلود شود. در هر دو نسخهٔ 87a و 89a امکان ساختن جدول رنگ که تعداد رنگ‌های آن توانی از ۲ می‌باشد که توان دو بین ۱ تا ۸ باشد را می‌دهد. اکثر نرم‌افزارهای گرافیکی تصاویر گیف با جدول رنگ در هریک از این ابعاد را خوانده و به نمایش درمی‌آورند، ولی برخی نرم‌افزارهای گرافیکی از تمام ابعاد جدول رنگ به هنگام ساخت آن پشتیبانی نمی‌کنند. | ## بخش 3: GIF | هرچند که تقریباً هیچ‌گاه از گیف‌ها برای نمایش تصاویر با رنگ واقعی (True Color) استفاده نمی‌شود، امکان آن وجود دارد که چنین کاری انجام شود. یک تصویر گیف می‌تواند شامل تعدادی بلوک تصویر باشد، که هر یک می‌تواند ۲۵۶ رنگ متفاوت خود را داشته باشد، و در نهایت این بلوک‌ها در کنارهم تصویر کلی را می‌سازند که می‌تواند تعدادی بسیار بیشتر از ۲۵۶ رنگ را شامل شود. برای نمایش یک تصویر کاملاً رنگی با تمام رنگ‌های آن، تصویر اصلی می‌بایست به تکّه‌هایی کوچک‌تر تقسیم شود که هیچ‌یک بیش از ۲۵۵ یا ۲۵۶ رنگ مختلف را شامل نمی‌شوند. سپس هریک از این تکّه‌ها به صورت یک بلوک تصویر مجزا با جدول رنگ محلی (Local Color Table) خود ذخیره‌سازی می‌شود و وقتی که این تکّه‌های تصویر در کنارهم به نمایش درمی‌آیند، تصویر کاملاً رنگی اولیه به نمایش درمی‌آید. به عنوان مثال، می‌توان یک تصویر را به مربع‌هایی با ضلع ۱۶ پیکسل (یعنی هر مربع شامل ۲۵۶ پیکسل) شکست تا اطمینان حاصل نماییم که هر مربع حداکثر شامل ۲۵۶ رنگ مجزاست که در محدودهٔ امکان ذخیره‌سازی هر بلوک تصویر قرار دارد و هیچ رنگی از دست نمی‌رود. هرچند می‌توان ابعاد قطعات را بزرگ‌تر درنظرگرفته و رنگ‌های مشابه را یکی در نظر گرفت تا در عوض مقداری کاهش احتمالی تنوع رنگ و نتیجتاً کیفیت تصویر نهایی، حجم فایل تصویر نیز احتمالاً کاهش یابد. علاوه بر این، تمام برنامه‌های پردازش فایل‌های گیف نمی‌توانند به درستی قطعات فایل را در کنار یک‌دیگر بچینند. بسیاری از برنامه‌های پردازش فایل‌های گیف قطعات مختلف عکس را به عنوان قاب (frame)های مختلف یک پویانمایی درنظرگرفته و آن‌ها را به شکل یک پویانمایی نامتناهی به نمایش درمی‌آورند، که عموم مرورگرها پویانمایی‌ها را با فاصله زمانی (تأخیر زمانی) ۰٫۱ ثانیه یا بیشتر به نمایش درمی‌آورند. اطلاعات پیکسل‌های تصویر به شکل افقی از سمت چپ و بالا با روش ال زد دبلیو به کدهایی تبدیل می‌شوند که سپس به بایت‌هایی نگاشته می‌شوند تا به عنوان فایل تصویر ذخیره شوند. کدهای تصویر معمولاً سایز دقیقاً ۸ بیتی ندارند تا در یک بایت گنجانده شوند، لذا کدها با یک الگوی اندیان کوچک (little endian byte order) در بایت‌ها بسته‌بندی می‌شوند: کم‌ارزش‌ترین بیت‌های کد اول در کم‌ارزش‌ترین بیت‌های بایت اول ذخیره می‌شوند و بیت‌های پرارزش‌تری که در بایت اول جا نشوند به بایت دوم سرریز می‌شوند و الی آخر. به همین ترتیب ذخیرهٔ هر کد از کم‌ارزش‌ترین بیت که تا آن زمان استفاده نشده باشد شروع می‌شود. هر زیربلوک حداکثر طول ۲۵۵ بایت دارد و در بایت قبل از آن تعداد بایت‌های داده در زیربلوک مشخص شده‌است. سری زیربلوک‌ها با یک زیربلوک خالی (یک بایت صفر، که بیان‌گر یک زیربلوک با صفر عدد داده می‌باشد) به پایان می‌رسد. برای نمونهٔ فوق نگاشت بازگشت‌پذیر کد ۹ بیتی و بایت‌ها در زیر به نمایش درآمده‌است: 9-bit code(hex) Binary Bytes(hex) ۰۰ | ۵۱ | FC | 1B | ۲۸ | ۷۰ | A0 | C1 ۸۳ ۰۱ 0000000| ۰۱ آیندهٔ احتمالی گیف‌ها امروزه گسترهٔ کاربرد گیف‌ها بسیار زیاد و رو به فزونی است، به‌گونه‌ای که برخی صاحب‌نظران آن را استاندارد غالب ارتباطی انسان‌ها در فضای مجازی و اصلی‌ترین بستر تبلیغات تجاری تا چند سال آینده می‌دانند. امروزه جهت تسهیل استفاده عموم از گیف‌ها و ترویج و توسعه هرچه بیشتر آنها، سایت‌های متعددی جهت ساخت گیف از روی عکس و فیلم به صورت رایگان فعالیت می‌کنند که از جمله آن‌ها می‌توان به سایت معروف «جیپی» (Giphy) اشاره کرد. صدالبته با توجه به استقبال پرشور از فرمت گیف و کارایی آن و مخصوصاً برخی نواقص و معایب آن، رقبای قوی و سازنده‌ای برای گیف‌ها، از جمله APNG‌ها و MNGها، پا به عرصه نهاده‌اند که هریک نقاط قوت قابل ملاحظه‌ای نسبت به گیف‌ها دارند. | ## جمع‌بندی | از جملهٔ این نقاط قوت قابل ملاحظه می‌توان به پشتیبانی کردن APNGها از تصاویر ۲۴ بیتی و شفافیت ۸ بیتی اشاره کرد که در گیف‌ها امکان‌پذیر نیست.