جیف

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
Graphics Interchange Format
Rotating earth (large).gif

کره زمین چرخان با قالب جیف.
پسوند فایل .gif
نوع مدیا اینترنت image/gif
نوع کد GIF
GIFf
نوع همگن تشخیص دهنده com.compuserve.gif
عدد حادویی GIF87a/GIF89a
توسعه‌دهنده CompuServe
نوع فرمت گرافیک شطرنجی image format

جیف[۱] پسوند سه حرفی و مشخص کننده ی بافت پرونده‌های گرافیکی ثابت یا متحرک است. این نام کوتاه شده Graphics Interchange Format (قالب مبادلهٔ گرافیک) است. این قالب گرافیکی توسط شرکت کامپیوسرو (Compuserve) معرفی شد و امروزه به طور گسترده برای تصاویر منتشر شده در وب به کار می‌رود این فرمت تصویری در سال ۱۹۸۷ توسط استیو ویل‌هایت (Steve Wilhite) ابداع شد و کلمه جیف (GIF) آنقدر پر استفاده شد که در سال ۲۰۱۲ به عنوان کلمه سال انتخاب شد. دیکشنری آکسفورد (فرهنگ انگلیسی آکسفورد) دو تلفظ گیف و جیف را برای این فرمت صحیح دانسته، در حالی که این اشتباه است و تلفظ درست این فرمت «جیف» است، زیرا استیو ویل‌هایت (Steve Wilhite) سازنده این فرمت محبوب می گوید که صدای «جِی» (G) ابتدای این فرمت در واقع صدای «جِی» نرم (از کلمه ی soft G) است و بنابراین باید آن را جیف تلفظ کرد. استیو ویل‌هایت (Steve Wilhite) در سال ۲۰۱۳ یک جایزه افتخاری از طرف جایزه‌ی وِبی (Webby Awards) دریافت نموده است.[۱]

تاریخچه[ویرایش]

در این تبلیغ صفحه‌ی تامبلر کاخ سفید، بر نحوه‌ی تلفظ صحیح کلمه‌ی "گیف" تاکید شده است.

کامپیوسرو فرمت گیف را در سال ۱۹۸۷ به عنوان یک فرمت تصویر رنگی برای صفحه دانلود فایل‌های خود ارائه کرد تا آن را جایگزین فرمت سیاه و سفید سابق خود RLE نماید. گیف به علت استفاده از فشرده‌سازی داده‌ها ال زد دابلیو،که از کدگذاری‌های فرمت‌هایی همچون PCX و MacPaint بهینه‌تر بود و همچنین امکان آن را می‌داد که تصاویر نسبتاً حجیم حتی با مودم‌هایی بسیار کند در مدت کوتاهی بارگذاری شوند، شهرت یافت و محبوب شد.

نسخه اصلی و اولیه گیف 87a نام‌گذاری شد[۲]. در سال ۱۹۸۹ میلادی، کامپیوسرو یک نسخه‌ی بهبود‌یافته تحت عنوان 89a ارائه کرد[۳] که از امکاناتی همچون تاخیر در پویانمایی، شفافیت رنگ‌های پس‌زمینه و ذخیره‌ی فراداده منحصر به هر برنامه پشتیبانی می‌کرد. نسخه‌ی 89a همچنین از امکان به کار‌بستن برچسب‌های متنی به صورت متن (و نه نهفته کردن آنها در داده‌های گرافیکی) پشتیبانی می‌نماید، ولی از آنجایی که کنترل ناچیزی بر فونت‌های نمایش این متون وجود دارد، این امکان به صورت فراگیر مورد استفاده نیست. جهت ایجاد تمایز میان این دو نسخه از فایل‌های گیف، می‌توان به شش بایت اول فایل موردنظر (معروف به "عدد جادویی" یا "امضا") توجه کرد، که اگر به عنوان یک کد اسکی (استاندارد) بدان توجه شود، به ترتیب عبارات "GIF87a" و "GIF89a" را نمایش می‌دهد.

این ویژگی گیف که بتوان چند تصویر را در یک فایل ذخیره نمود، همراه با امکان کنترل داده‌ای، به شکل فراگیر و گسترده‌ای برای تولید پویانمایی‌های ساده در وب استفاده می‌شود. امکان اختیاری درهم‌تنیدگی تصویر، که خطوط اسکن تصویر را خارج از ترتیب پیش‌بینی‌شده به‌گونه‌ای ذخیره می‌نماید که حتی یک تصویر کاملاً بارگذاری نشده هم تا حدودی قابل تشخیص باشد، نیز به رونق گیف کمک کرد، چرا که کاربر با بهره بردن از آن می‌تواند قبل از تکمیل بارگذاری فایل دیدی نسبت به آن یافته و به محض تشخیص عدم تمایل خود به آن فایل دانلود را متوقف کند.

کلمه‌ی "گیف " به عنوان یک اسم در ویراست‌های جدیدتر بسیاری از لغت‌نامه های انگلیسی یافت می‌شود. در سال ۲۰۱۲ میلادی، شاخه‌ی آمریکایی انتشارات دانشگاه آکسفورد کلمه‌ی "GIF" را به عنوان یک فعل، به معنی "ساختن یک فایل گیف"، پذیرفت. واژه‌شناسان این انتشارات آن را به عنوان "واژه‌ی سال" برگزیدند، با این توضیح که گیف‌هابه صورت "یک ابزار جدی در پژوهش و خبرنگاری" تکامل یافته‌ و به بلوغ رسیده‌اند.[۴][۵]

در ماه می سال ۲۰۱۵ میلادی، فیسبوک پس از آن‌ که در ابتدا پشتیبانی از گیف را رد کرده بود، رسماً پشتیبانی از آن را پذیرفت.[۶][۷]

کاربردها[ویرایش]

قطعاً کاربردهای جیف‌ها بسیار گسترده‌تر از آن هستند که بتوان در اینجا حق مطلب را ادا کرد، لذا در ادامه صرفاً به چند کاربرد مطرح آنها بسنده می‌شود:

  • از جیف ها می توان برای هنرهای خطی ظریف (همانند نمادها) که تعداد رنگ محدودی نیاز دارند به نحو احسن بهره برد. در این صورت از فشرده‌سازی بدون‌اتلاف این فرمت که در سطوح صاف و تک‌رنگ با مرزهای مشخص به خوبی پاسخ می‌دهد بهره خواهیم برد.[۸]
  • از جیف ها می توان برای ذخیره‌سازی داده‌های اسپرایت (یک بیتمپ دوبعدی جاسازی شده در صحنه‌ای بزرگتر) با تنوع رنگ پایین در بازی ها بهره برد.
  • تبیین دقیق عملکرد محصولات (مخصوصاً محصولات مکانیکی و متحرک) و انتقال مفهوم کار آنها به بهترین نحو ممکن.
  • به نمایش درآوردن تجربه‌ی کاربری ((User Experience (UX) محصولات متنوع، مخصوصاً در حوزه فناوری اطلاعات.[۹]
  • از جیف ها می توان برای پویانمایی‌های کوتاه و کلیپ‌های کوتاه ویدئویی با رزولوشن پایین بهره برد.[۱۰]
  • از کاربردهای فراگیر جیف‌ها، ایجاد یک حالت طنز و شوخی با تصاویر است. جیف‌ها این امکان را به ما می‌دهند که بیش از یک منبع ویدئویی را ویرایش، مرتب و حتی ترکیب کنیم تا حالاتی متفاوت با قصد اولیه‌ی سازنده‌ی آثار را به‌وجودآورده و یا یک نکته‌ی ظریف را بزرگ‌نمایی کنیم، که همگی می‌توانند موجب ایجاد حالتی طنزآمیز در محصول نهایی ساخت جیف شوند.[۱]

فرمت فایل[ویرایش]

در این تصویر فایل Empty.gif را در یک ویرایش‌گر هگز (hex editor) دیده‌می‌شود.

یک فایل جیف عملاً یک ناحیه‌ی گرافیکی با ابعاد مشخص (اصطلاحاً "صفحه‌ی منطقی") را ارائه می‌کند که می‌تواند تعدادی (صفر یا بیشتر) تصویر را شامل شود. در بسیاری از فایل‌های جیف، تنها یک تصویر وجود دارد که تمام صفحه‌ی منطقی را پوشش می‌دهد، حال‌آن‌که در برخی فایل‌های جیف صفحه‌ی منطقی به تعدادی بخش مختلف برای زیرتصویرهای مختلف تقسیم می‌شود. علاوه‌براین، تصاویر می‌توانند نقش قاب (frame)های پویانمایی در یک فایل جیف پویانمایی‌شده را ایفا کنند، که در این حالت نیز لزومی ندارد یک قاب (frame) تمامیت صفحه‌ی منطقی فایل را پوشش دهد.

فایل‌های جیف با یک سربرگ (header) با طول معین آغاز می‌شوند که نسخه‌ی فایل را معرفی می‌نماید ("GIF87a" ویا "GIF89a") و به دنبال آن یک "وصف‌کننده‌ی صفحه منطقی" (Logical Screen Descriptor) می‌آید که ابعاد و سایر ویژگی های صفحه‌ی منطقی را شامل می‌شود. علاوه‌براین، وصف‌کننده‌ی صفحه منطقی ممکن است موجودیت و ابعاد یک "جدول رنگ جهانی" (Global Color Table) را گزارش کند، و جدول رنگ جهانی (در صورت وجود) پس از آن می‌آید.

پس از آن، فایل به قسمت‌هایی تقسیم می‌شود (تکه‌تکه می‌شود) که هر کدام با یک علامت 1 بایتی مشخص می‌شوند:

  • یک تصویر (معرفی شده توسط 0x2C، یک ویرگول ',')
  • یک بلوک توسعه (extension block) (معرفی شده توسط 0x21، یک علامت تعجب '!')
  • دنبال‌کننده‌ی فایل (trailer) که عملاً اتمام فایل را اعلام می‌نماید (یک بایت با مقدار 0x3B، یک عدد ';')، که مسلماً می‌بایست آخرین بایت در فایل مورد‌نظر باشد.

هر تصویر با یک "وصف‌کننده‌ی تصویر" (Image Descriptor) شروع می‌شود، که ممکن است موجودیت و ابعاد یک "جدول رنگ محلی" (Local Color Table) را گزارش کند، و جدول رنگ محلی (در صورت وجود) پس از آن می‌آید. پس از آن اطلاعات تصویر بدین‌نحو می‌آید:

  • یک بایت که عرض (bit width) علامت‌های کدگذاری‌نشده را ارائه می‌کند (که می‌بایست حداقل دو بیت عرض داشته باشد، حتی اگر تصویر فقط دو رنگ را شامل شود).
  • به دنبال آن یک لیست پیوندی (Linked List) از زیربلوک‌های شامل داده‌های کدگذاری‌شده با روش ال زد دابلیو می‌آید.

بلوک‌های توسعه (extension block، بلوک‌هایی که "توسعه" دهنده‌ی تعریف نسخه‌ی 87a به واسطه‌ی رویه‌های از پیش‌ تعریف‌شده در ویژگی‌های 87a می‌باشند) شامل یک علامت (یک بایت که نوع بلوک توسعه را تعیین می‌کند) و یک لیست پیوندی (Linked List) از زیربلوک‌های شامل داده‌های کدگذاری‌شده لازم برای توسعه می‌باشند. بلوک‌های توسعه‌ای که در یک تصویر تغییر ایجاد می‌کنند (مانند Graphic Control Extension که تعیین‌کننده زمان اختیاری تاخیر در پویانمایی و شفافیت اختیاری رنگ پس‌زمینه می‌باشد) می‌بایست بلافاصله پیش از قسمتی بیایند که شامل عکس مورد‌اشاره‌ی آنهاست.

لیست‌ پیوندی‌ (Linked List)های مورداستفاده‌ی داده‌های تصویر و بلوک‌های توسعه شامل یک سری از زیربلوک‌ها می‌باشند، که هر کدام از این زیربلوک‌ها با یک بایت شامل تعداد بایت‌های زیربلوک مربوطه (۱ الی ۲۵۵) شروع می‌شوند. مجموعه‌ی زیربلوک‌ها با یک زیربلوک خالی (یک بایت با مقدار صفر) به پایان می‌رسد.

چنین ساختاری این امکان را به فایل می‌دهد که حتی اگر بخشی از آن نامفهوم باشد، بازهم تجزیه و کدگشایی شود. یک فایل جیف 87a می‌تواند شامل انواع بلوک‌های توسعه باشد و هدف آن است که کدگشا (decoder) بتواند فایل را خوانده و نمایش دهد، حتی اگر امکانات آن برخی بلوک‌های توسعه را دربرنگرفته و نتواند آن‌ها را متوجه شود.

جزئیات و ظرایف کامل این فایل فرمت را می‌توان در مستندات جیف بررسی نمود.[۳]

نمونه‌ای از یک تصویر جیف که با یک ترکیب رنگ "امن تحت وب" و مات‌شده با استفاده از Floyd–Steinberg method دیده‌ می‌شود. ملاحظه می‌شود که به علت کاهش تعداد رنگ‌های مورداستفاده، برخی مشکلات در نمایش تصویر هویدا شده‌است و از کیفیت تصویر کاسته‌ شده‌است.

تنوع و ترکیبات رنگ موجود[ویرایش]

جیف‌ها مبتنی بر رنگ و تنوع رنگی هستند، بدین‌معنی که رنگ‌های به‌کاررفته در یک تصویر (frame) در یک فایل مقادیر RGB (قرمز، سبز، آبی) خود را در یک جدول رنگ که تا ۲۵۶ داده را می‌تواند نگه‌دارد به صورت ذخیره شده دارند، و داده‌های تصویر با اندیس (۰ الی ۲۵۵) به مقادیر موردنظر برای رنگ خود در جدول رنگ اشاره می‌کنند. با آن که تنوع ترکیبات رنگ موجود برای جیف‌ها بسیار زیاد است، ولی حداکثر تعداد رنگ‌هایی که می‌توانند به صورت هم‌زمان در یک تصویر (frame) به نمایش درآیند ۲۵۶ می‌باشد. این محدودیت در زمان معرفی جیف‌ها معقول و منطقی به‌ نظر می‌رسید، چراکه در آن زمان تعداد بسیار کمی از افراد بودند که به سخت‌افزاری با امکان نمایش بیش از ۲۵۶ رنگ به صورت هم‌زمان دسترسی داشتند. کارتون‌ها، نقاشی‌های خطی، کارهای گرافیکی ساده و عکس‌های سیاه و سفید معمولاً نیاز به حداکثر ۲۵۶ رنگ دارند.

یک جدول رنگ کوچک می‌تواند نیازهای تصاویر کوچک را برآورده نماید، و کوچک‌ نگه‌داشتن جدول رنگ امکان آن را فراهم می‌کند که جیف سریع‌تر دانلود شود. در هر دو نسخه‌ی 87a و 89a امکان ساختن جدول رنگ که تعداد رنگ‌های آن توانی از ۲ می‌باشد که توان دو بین ۱ تا ۸ باشد را می‌دهد. اکثر نرم‌افزارهای گرافیکی تصاویر جیف با جدول رنگ در هریک از این ابعاد را خوانده و به نمایش درمی‌آورند، ولی برخی نرم‌افزارهای گرافیکی از تمام ابعاد جدول رنگ به هنگام ساخت آن پشتیبانی نمی‌کنند. جدول رنگ‌هایی با ۲، ۱۶ و ۲۵۶ رنگ به طور گسترده پشتیبانی می‌شوند.[۱]

رنگ واقعی (True Color)[ویرایش]

یک جیف پویانمایی که تکنیک نمایش بیش از ۲۵۶ رنگ متعارف را نمایش می‌دهد.

هرچند که تقریباً هیچ‌گاه از جیف‌ها برای نمایش تصاویر با رنگ واقعی (True Color) استفاده نمی‌شود، امکان آن وجود دارد که چنین کاری انجام شود.[۱۱] یک تصویر جیف می‌تواند شامل تعدادی بلوک تصویر باشد، که هر یک می‌تواند ۲۵۶ رنگ متفاوت خود را داشته باشد، و درنهایت این بلوک‌ها در کنارهم تصویر کلی را می‌سازند ‌که می‌تواند تعدادی بسیار بیشتر از ۲۵۶ رنگ را شامل شود.

برای نمایش یک تصویر کاملاً رنگی با تمام رنگ‌های آن، تصویر اصلی می‌‌بایست به تکّه هایی کوچک‌تر تقسیم شود که هیچ یک بیش از ۲۵۵ یا ۲۵۶ رنگ مختلف را شامل نمی‌‌شوند. سپس هر‌‌یک از این تکّه ها به صورت یک بلوک تصویر مجزا با جدول رنگ محلی (Local Color Table) خود ذخیره‌سازی می‌شود و وقتی که این تکّه‌های تصویر در کنارهم به نمایش درمی‌آیند، تصویر کاملاً رنگی اولیه به نمایش درمی‌آید. به عنوان مثال، می‌توان یک تصویر را به مربع هایی با ضلع ۱۶ پیکسل (یعنی هر مربع شامل ۲۵۶ پیکسل) شکست تا اطمینان حاصل نماییم که هر مربع حداکثر شامل ۲۵۶ رنگ مجزاست که در محدوده‌ی امکان ذخیره‌سازی هر بلوک تصویر قرار دارد و هیچ رنگی از دست نمی‌رود. هرچند می‌توان ابعاد قطعات را بزرگ‌تر درنظرگرفته و رنگ‌های مشابه را یکی درنظرگرفت تا در عوض مقداری کاهش احتمالی تنوع رنگ و نتیجتاً کیفیت تصویر نهایی، حجم فایل تصویر نیز احتمالاً کاهش یابد.[۱۲]

از آن‌جایی که هر بلوک تصویر نیازمند جدول رنگ محلی (Local Color Table) مخصوص به خود می‌شد، یک فایل جیف با تعداد زیادی بلوک تصویر می‌تواند بسیار بزرگ و حجیم شود، و این امر کاربرد جیف‌های تمام رنگی (full color) را محدود می‌کند.[۱۱] علاوه بر این، تمام برنامه‌های پردازش فایل‌های جیف نمی‌توانند به درستی قطعات فایل را در کنار یک‌دیگر بچینند. بسیاری از برنامه‌های پردازش فایل‌های جیف قطعات مختلف عکس را به عنوان قاب (frame) های مختلف یک پویانمایی درنظرگرفته و آن‌ها را به شکل یک پویانمایی نامتناهی به نمایش درمی‌آورند[۱۲]، که عموم مرورگرها پویانمایی‌ها را با فاصله زمانی (تاخیر زمانی) 0.1 ثانیه و یا بیشتر به نمایش درمی‌آورند.[۱۳][۱۴]

یک فایل جیف نمونه[ویرایش]

نمونه‌ای از یک جدول رنگ ۲۵۶ تایی برای یک فایل جیف.
نمونه‌ای از یک جیف پویانمایی. این‌جا گهواره‌ی نیوتون در یک جیف نمایش داده شده‌است.

در این بخش یک نمونه از فایل جیف آمده‌است.

شایان ذکر است که اعداد هگزادسیمال (در دستگاه اعداد پایه ۱۶) در جداول پیش‌رو دارای اندیان کوچک (little endian byte order) هستند.

byte#  hexadecimal  text or
(hex)               value       Meaning
0:     47 49 46
       38 39 61     GIF89a      Header
                                Logical Screen Descriptor
6:     03 00        3            - logical screen width in pixels
8:     05 00        5            - logical screen height in pixels
A:     F7                        - GCT follows for 256 colors with resolution 3 x 8 bits/primary
B:     00           0            - background color #0
C:     00                        - default pixel aspect ratio
                   R    G    B  Global Color Table
D:     00 00 00    0    0    0   - color #0 black
10:    80 00 00  128    0    0   - color #1
 :                                       :
85:    00 00 00    0    0    0   - color #40 black
 :                                       :
30A:   FF FF FF  255  255  255   - color #255 white
30D:   21 F9                    Graphic Control Extension
30F:   04           4            - 4 bytes of GCE data follow
310:   01                        - there is a transparent background color
311:   00 00                     - delay for animation: not used
313:   10          16            - color #16 is transparent
314:   00                        - end of GCE block
315:   2C                       Image Descriptor
316:   00 00 00 00 (0,0)         - NW corner position of image in logical screen
31A:   03 00 05 00 (3,5)         - image width and height in pixels
31E:   00                        - no local color table
31F:   08           8           Start of image - LZW minimum code size
320:   0B          11            - 11 bytes of LZW encoded image data follow
321:   00 51 FC 1B 28 70 A0 C1 83 01 01
32C:   00                        - end of image data
32D:   3B                       GIF file terminator

کدگذاری تصویر (Image Coding)[ویرایش]

نمونه‌ای از یک جیف پویانمایی که در آن از دو عکس به نحوی استفاده شده است که تصویر تدریجاً از یکی به دیگری تبدیل می‌شود.

اطلاعات پیکسل‌های تصویر به شکل افقی از سمت چپ و بالا با روش ال زد دبلیو به کدهایی تبدیل می‌شوند که سپس به بایت‌هایی نگاشته می‌شوند تا به عنوان فایل تصویر ذخیره شوند. کدهای تصویر معمولاً سایز دقیقاً ۸ بیتی ندارند تا در یک بایت گنجانده شوند، لذا کدها با یک الگوی اندیان کوچک (little endian byte order) در بایت‌ها بسته‌بندی می‌شوند: کم‌ارزش‌ترین بیت‌های کد اول در کم‌ارزش‌ترین بیت‌های بایت اول ذخیره می‌شوند و بیت‌های پرارزش‌تری که در بایت اول جا نشوند به بایت دوم سرریز می‌شوند و الی آخر. به همین ترتیب ذخیره‌ی هر کد از کم‌ارزش‌ترین بیت‌ که تا آن زمان استفاده نشده باشد شروع می‌شود.

این رشته‌ی بایت‌ها به صورت یک سری "زیربلوک" در فایل ذخیره می‌شوند. هر زیربلوک حداکثر طول ۲۵۵ بایت دارد و در بایت قبل از آن تعداد بایت‌های داده در زیربلوک مشخص شده‌است.سری زیربلوک‌ها با یک زیربلوک خالی (یک بایت صفر، که بیان‌گر یک زیربلوک با صفر عدد داده می‌باشد) به پایان می‌رسد.

برای نمونه‌ی فوق نگاشت بازگشت‌پذیر کد ۹ بیتی و بایت ها در زیر به نمایش درآمده‌است:[۱]

9-bit code
(hex)
Binary Bytes
(hex)
00000000 00
100
0101000|1 51
028
111111|00 FC
0FF
00011|011 1B
103
0010|1000 28
102
011|10000 70
103
10|100000 A0
106
1|1000001 C1
107
10000011 83
00000001 01
101
0000000|1 01

آینده‌ی احتمالی جیف‌ها[ویرایش]

یک جیف نمایان‌گر فواره‌های دبی در مارس ۲۰۱۰ میلادی

امروزه گستره‌ی کاربرد جیف‌ها بسیار زیاد و رو به فزونی است، به‌گونه‌ای که برخی صاحب‌نظران آن را استاندارد غالب ارتباطی انسان‌ها در فضای مجازی[۱۵][۱۶] و اصلی‌ترین بستر تبلیغات تجاری[۱۷] تا چند سال آینده می‌دانند. امروزه جهت تسهیل استفاده عموم از جیف‌ها و ترویج و توسعه هر‌چه‌ بیشتر آنها، سایت‌های متعددی جهت ساخت جیف از روی عکس و فیلم به صورت رایگان فعالیت می‌کنند که از جمله آنها می‌توان به سایت معروف «جیپی» (Giphy[۱۸]) اشاره کرد.

صدالبته باتوجه به استقبال پرشور از فرمت جیف و کارایی آن و مخصوصاً برخی نواقص و معایب آن، رقبای قوی و سازنده‌ای برای جیف‌ها، از جمله APNG ها و MNG ها، پا به عرصه نهاده‌اند که هریک نقاط قوت قابل ملاحظه‌ای نسبت به جیف‌ها دارند. از جمله‌ی این نقاط قوت قابل ملاحظه‌ می‌توان به پشتیباتی کردن APNG ها از تصاویر ۲۴ بیتی و شفافیت ۸ بیتی اشاره کرد که در جیف‌ها امکان‌پذیر نیست. هم‌چنین APNG ها قابلیت پشتیبانی از نسل‌های پیشین خود (Backward Compatibility) را نیز دارند.[۱۹][۲۰]

منابع[ویرایش]

  1. ۱٫۰ ۱٫۱ ۱٫۲ ۱٫۳ ۱٫۴ https://en.wikipedia.org/wiki/GIF
  2. http://www.w3.org/Graphics/GIF/spec-gif87.txt
  3. ۳٫۰ ۳٫۱ http://www.w3.org/Graphics/GIF/spec-gif89a.txt
  4. http://blog.oxforddictionaries.com/press-releases/us-word-of-the-year-2012/
  5. http://www.guardian.co.uk/books/booksblog/2012/nov/14/gif-america-word-year-omnishambles
  6. http://www.wired.com/2015/05/real-gif-posting-on-facebook/
  7. http://techcrunch.com/2015/05/29/facebook-confirms-it-will-officially-support-gifs
  8. http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=6188724
  9. http://www.makeuseof.com/tag/5-uses-for-animated-gifs-other-than-annoying-memes/
  10. http://yuliana.lecturer.pens.ac.id/Android/Buku/Pro-Android-Flash.pdf
  11. ۱۱٫۰ ۱۱٫۱ http://phil.ipal.org/tc.html
  12. ۱۲٫۰ ۱۲٫۱ http://uk.aminet.net/docs/misc/GIF24.readme
  13. http://nullsleep.tumblr.com/post/16524517190/animated-gif-minimum-frame-delay-browser-compatibility
  14. http://blog.fenrir-inc.com/us/2012/02/theyre-different-how-to-match-the-animation-rate-of-gif-files-accross-browsers.html
  15. http://www.fastcompany.com/3055578/why-gifs-are-the-future-of-communication
  16. http://www.popsci.com/giphy-gifs-will-rule-world-the-platform
  17. http://www.cnbc.com/2015/11/13/are-gifs-the-future-of-advertising.html
  18. GIPHY. «GIPHY | Search All the GIFs & Make Your Own Animated GIF». GIPHY. بازبینی‌شده در 2016-06-28. 
  19. https://en.wikipedia.org/wiki/APNG
  20. https://en.wikipedia.org/wiki/Multiple-image_Network_Graphics