.\" Copyright (c) 2001-2003 Leon Bottou, Yann Le Cun, Patrick Haffner, .\" Copyright (c) 2001 AT&T Corp., and Lizardtech, Inc. .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public .\" License along with this manual. Otherwise check the web site .\" of the Free Software Foundation at http://www.fsf.org. .TH DJVU 1 "10/11/2001" "DjVuLibre-3.5" "DjVuLibre-3.5" .de SS .SH \\0\\0\\0\\$* .. .SH "نام (NAME)" DjVu \- قالب اسناد DjVu و نرم‌افزار DjVuLibre .SH "مقدمه (INTRODUCTION)" اگرچه اینترنت زیرساختی جهانی برای ساخت یک کتابخانهٔ فراگیر در اختیار ما قرار داده است، اما بخش عمده‌ای از دانش، تاریخ و ادبیات جهان همچنان بر روی کاغذ در زیرزمین‌های کتابخانه‌های سنتی محبوس مانده است. بسیاری از کتابخانه‌ها و دارندگان محتوا در فرآیند دیجیتالی‌سازی مجموعه‌های خود هستند. با اینکه بسیاری از این تلاش‌ها شامل فرآیند پرزحمت تبدیل اسناد کاغذی به شکل‌های سازگار با رایانه، مانند قالب‌های مبتنی بر .SM SGML است، هزینهٔ بالای این تبدیل‌ها دامنهٔ گسترش آن‌ها را محدود می‌کند. اسکن اسناد و توزیع الکترونیکی تصاویر حاصل، نه تنها به‌مراتب ارزان‌تر است، بلکه به دلیل حفظ جنبه‌های بصری، به سند اصلی نیز وفادارتَر است. .PP به‌رغم بهبود سریع سرعت اتصالات شبکه و رایانه‌ها، تعداد تصاویر اسناد اسکن‌شده‌ای که امروزه در وب در دسترس است نسبتاً اندک است. این موضوع دلایل متعددی دارد. .PP دلیل نخست، هزینهٔ نسبتاً بالای اسکن هر چیزی غیر از برگه‌های مجزای سیاه و سفید است. این مشکل با پیدایش اسکنرهای رنگی سریع و کم‌هزینه که مجهز به تغذیهٔ خودکار برگه (sheet feeder) هستند، به‌آرامی در حال برطرف شدن است. .PP دلیل دوم این است که استانداردهای دیرپای فشرده‌سازی تصویر و قالب‌های فایل، برای توزیع اسناد اسکن‌شده با تفکیک‌پذیری بالا، به‌ویژه اسناد رنگی، ناکافی ظاهر شده‌اند. نه تنها اندازهٔ فایل‌ها و زمان بارگیری نامعقول است، بلکه زمان رمزگشایی و رندر نیز بازدارنده است. یک صفحهٔ مجلهٔ معمولی که به‌صورت رنگی با تفکیک‌پذیری 100 dpi در قالب .SM JPEG اسکن شده باشد، معمولاً 100 .SM KB تا 200 .SM KB فضا اشغال می‌کند، اما متن آن به‌سختی خوانا خواهد بود: برای مشاهده در نمایشگر ناکافی و برای چاپ کاملاً غیرقابل‌قبول است. همان صفحه با تفکیک‌پذیری 300 dpi کیفیت کافی برای مشاهده و چاپ خواهد داشت، اما حجم فایل در بهترین حالت 300 .SM KB تا 1000 .SM KB خواهد بود که برای دسترسی از راه دور غیرعملی است. مشکل عمدهٔ دیگر این است که یک تصویر رنگی کاملاً رمزگشایی‌شده با تفکیک‌پذیری 300 dpi از صفحه‌ای با اندازهٔ Letter، حدود 24 .SM MB از حافظه را اشغال می‌کند و به‌سادگی موجب مبادلهٔ حافظه با دیسک (swapping) می‌شود. .PP دلیل سوم این است که اسناد دیجیتال چیزی فراتر از صرفاً مجموعه‌ای از تصاویر صفحات مجزا هستند. صفحات در یک سند اسکن‌شده دارای ترتیبی پیاپی و طبیعی‌اند. باید تدابیر ویژه‌ای اندیشیده شود تا ورق زدن صفحات آنی و بدون زحمت باشد تا تجربهٔ کاربری مطلوبی حفظ شود. حتی مهم‌تر از آن، بیشتر قالب‌های سند موجود، کاربران را وادار می‌کنند که پیش از نمایش صفحهٔ دلخواه، ابتدا کل سند را بارگیری کنند. با این حال، کاربران معمولاً تمایل دارند بدون انتظار برای بارگیری کل سند، به صفحات مشخصی از سند بروند. مرور کارآمد نیازمند دسترسی تصادفی بهینه‌سازی‌شده به صفحات، ورق زدن سریع متوالی و رندر فوری است. این هدف می‌تواند از طریق ترکیبی از فشرده‌سازی پیشرفته، پیش‌واکشی (pre-fetching)، پیش‌رمزگشایی (pre-decoding)، ذخیره‌سازی در حافظهٔ موقت (caching) و رندر تدریجی (progressive rendering) به دست آید. DjVu هر صفحه را به مؤلفه‌های متعددی (متن، پس‌زمینه، تصاویر، کتابخانه‌های اشکال پرکاربرد و غیره) تجزیه می‌کند که می‌توانند بین چندین صفحه به اشتراک گذاشته شوند و برحسب تقاضا بارگیری گردند. همهٔ این نیازمندی‌ها مستلزم یک سازوکار کنترلی بسیار پیشرفته اما بهینه و کم‌مصرف است تا بارگیری برحسب تقاضا، پیش‌واکشی، رمزگشایی، حافظهٔ موقت و رندر تدریجی تصاویر صفحات را مدیریت کند. آنچه در اینجا مد نظر است، صرفاً یک تکنیک فشرده‌سازی تصویر سند نیست، بلکه بستری کامل برای ارائه و تحویل سند است. .PP ابزار DjVu یک تکنیک فشرده‌سازی تصویر، یک قالب سند، و یک بستر نرم‌افزاری برای تحویل تصاویر اسناد از طریق اینترنت است که نیازمندی‌های یادشده را برآورده می‌سازد..SH "فشرده‌سازی تصویر DJVU (DJVU IMAGE COMPRESSION)" فشرده‌سازی تصویر DjVu بر سه فناوری مبتنی است: .SS DjVuPhoto DjVuPhoto که با نام .SM IW44 نیز شناخته می‌شود، یک روش فشرده‌سازی تصویر پیوسته-رنگ مبتنی بر موجک (wavelet) با رمزگشایی/رندر پیش‌رونده است. این روش بهترین کارکرد را برای کدگذاری تصاویر عکاسی رنگی یا در طیف‌های خاکستری دارد. اندازه تصاویر در این روش با میزان اعوجاج یکسان، معمولاً نصف اندازه .SM JPEG است. .SS DjVuBitonal DjVuBitonal که با نام .SM JB2 نیز شناخته می‌شود، یک روش فشرده‌سازی تصویر دو‌رنگ (bitonal) است که از تکرار اشکال تقریباً یکسان در صفحه (مانند نویسه‌ها) برای فشرده‌سازی بهینه تصاویر متنی بهره می‌برد. این روش برای فشرده‌سازی تصاویر سیاه‌وسفید نمایانگر متن و نقشه‌های ساده بهترین گزینه است. یک صفحه معمولی 300 dpi در DjVuBitonal بین ۵ تا ۲۵ .SM KB فضا اشغال می‌کند (۳ تا ۸ برابر بهینه‌تر از .SM TIFF-G4 یا .SM PDF ). .SS DjVuDocument DjVuDocument یک روش فشرده‌سازی است که به‌طور ویژه برای تصاویر اسناد دیجیتال رنگی شامل تصویر و متن، مانند صفحه یک مجله، طراحی شده است. DjVuDocument تصاویر را در قالب لایه‌هایی که به‌صورت جداگانه فشرده شده‌اند نمایش می‌دهد. لایه پیش‌زمینه معمولاً با DjVuBitonal فشرده می‌شود و حاوی متن و نقشه‌ها است. لایه پس‌زمینه معمولاً با DjVuPhoto فشرده می‌شود و بافت پس‌زمینه و تصاویر را با وضوح پایین‌تر در بر دارد. .SH "بستر تحویل سند DJVU (DJVU DOCUMENT DELIVERY PLATFORM)" فناوری DjVu از پایه به‌گونه‌ای طراحی شده است که تحویل بهینه اسناد دیجیتال را از طریق اینترنت پشتیبانی کند. این فناوری روش‌های گوناگونی برای مدیریت اسناد چندصفحه‌ای و همچنین غنی‌سازی محتوا با ابرپیوندها، فرا‌داده‌ها، متن قابل جستجو و غیره فراهم می‌کند. .SS "انواع MIME (MIME types)" قالب DjVu دارای نوع رسمی MIME با شناسه .BR image/vnd.djvu , است که نوع محتوای (content-type) ترجیحی برای ارائه فایل‌های DjVu توسط سرورهای http محسوب می‌شود. انواع غیررسمی mime که در گذشته استفاده می‌شدند .B image/x.djvu و .BR image/x-djvu , هستند که ممکن است همچنان مشاهده شوند. در حالت ایده‌آل، کلاینت‌ها باید به گونه‌ای پیکربندی شوند که هر سه نوع را مدیریت کنند. .SS "اسناد چندصفحه‌ای یکپارچه (Bundled multi-page documents)" سند چندصفحه‌ای یکپارچه DjVu از یک تک‌فایل برای نمایش کل سند استفاده می‌کند. این تک‌فایل شامل تمامی صفحات و همچنین اطلاعات تکمیلی (مانند فهرست راهنمای صفحات، داده‌های مشترک میان چند صفحه، تصاویر بندانگشتی و غیره) است. استفاده از قالب تک‌فایلی برای ذخیره‌سازی اسناد یا ارسال آن‌ها به عنوان پیوست ایمیل بسیار راحت و مناسب است. .PP هنگامی که .SM URL یک سند چندصفحه‌ای را وارد می‌کنید، افزونه مرورگر DjVu شروع به بارگیری کل فایل می‌کند، اما به محض در دسترس قرار گرفتن صفحه اول، آن را نمایش می‌دهد. شما می‌توانید بی‌درنگ با استفاده از نوار ابزار DjVu به سایر صفحات بروید. با این حال فرض کنید سند روی یک وب‌سرور دوردست ذخیره شده است. شما به راحتی به صفحه نخست دسترسی می‌یابید و متوجه می‌شوید که این سند مورد نظر شما نبوده است. اگرچه هرگز صفحات دیگر را نمایش نخواهید داد، مرورگر همچنان در حال انتقال داده‌های آن صفحات است و پهنای باند سرور شما (و همچنین پهنای باند اینترنت) را هدر می‌دهد. همچنین ممکن است خلاصه سند را در صفحه اول مشاهده کنید و بخواهید به صفحه ۱۰۰ بروید؛ اما صفحه ۱۰۰ تا پیش از دریافت داده‌های صفحات ۱ تا ۹۹ قابل نمایش نیست. ممکن است مجبور شوید برای انتقال داده‌های غیرضروری صفحات منتظر بمانید. این مشکل دوم (انتظار غیرضروری) با استفاده از گزینه‌های ``byte serving'' در پروتکل .SM HTTP/1.1 قابل حل است. این گزینه باید توسط وب‌سرور، پراکسی‌ها، حافظه‌های موقت (caches) و مرورگر پشتیبانی شود. با این حال، byte serving مشکل اول (هدر رفتن پهنای باند) را حل نمی‌کند. .SS "اسناد چندصفحه‌ای غیرمستقیم (Indirect multi-page documents)" اسناد چندصفحه‌ای غیرمستقیم DjVu هر دو مشکل را حل می‌کنند. یک سند چندصفحه‌ای غیرمستقیم DjVu از چند فایل تشکیل شده است. فایل اصلی، فایل نمایه (index file) نام دارد. شما می‌توانید با استفاده از .SM URL فایل نمایه، درست مانند یک سند چندصفحه‌ای یکپارچه، سند را مرور کنید. با این حال، فایل نمایه بسیار کوچک است؛ این فایل صرفاً شامل فهرست راهنمای سند و .SM URLs فایل‌های ثانویه حاوی داده‌های صفحات است. هنگامی که یک سند چندصفحه‌ای غیرمستقیم را مرور می‌کنید، مرورگر تنها به داده‌های صفحاتی که در حال مشاهده آن‌ها هستید دسترسی می‌یابد. این کار با سرعتی مناسب انجام می‌شود زیرا مرورگر یک حافظه موقت (کش) از صفحات نگه می‌دارد و گاهی چند صفحه جلوتر از صفحه فعلی را پیش‌واکشی (pre-fetch) می‌کند. این مدل، از پهنای باند سرور بسیار بهینه‌تر استفاده می‌کند. همچنین تأخیرهای غیرضروری هنگام پرش به صفحات واقع در هر نقطه‌ای از یک سند طولانی را از میان می‌برد..SS "حاشیه‌نویسی‌ها (Annotations)" هر تصویر DjVu می‌تواند به‌صورت اختیاری شامل قطعه‌های موسوم به حاشیه‌نویسی (annotation chunks) باشد. قطعه حاشیه‌نویسی اغلب برای تعریف پیوندها به دیگر صفحات سند یا به صفحات وب دلخواه استفاده می‌شود. قطعه‌های حاشیه‌نویسی همچنین می‌توانند برای اهداف دیگری مانند تنظیم حالت نمایش اولیه صفحه، تعیین ناحیه‌های برجسته‌شده، یا ذخیره فراداده‌های دلخواه درباره صفحه یا سند به کار روند. .SS "متن پنهان (Hidden text)" هر تصویر DjVu می‌تواند به‌صورت اختیاری شامل یک لایه متن پنهان باشد که ویژگی‌های گرافیکی را به متن متناظر آن‌ها مرتبط می‌کند. لایه متن پنهان معمولاً با اجرای یک نرم‌افزار نویسه‌خوان نوری (OCR) تولید می‌شود. این اطلاعات متنی، امکان نمایه‌سازی اسناد DjVu و رونویسی/چسباندن متن از تصاویر صفحات DjVu را فراهم می‌سازد. .SS "بندانگشتی‌ها (Thumbnails)" اسناد DjVu گاهی حاوی تصاویر بندانگشتی از پیش محاسبه‌شده برای صفحات هستند. .SS "طرح کلی (Outline)" اسناد DjVu گاهی شامل یک قطعه ناوبری حاوی یک طرح کلی (outline) هستند؛ یعنی یک فهرست مطالب سلسله‌مراتبی با اشاره‌گرهایی به صفحات مربوطه در سند. .SH "DJVUZONE و DJVULIBRE (DJVUZONE AND DJVULIBRE)" فناوری DjVu در ابتدا توسط چند پژوهشگر در AT&T Labs بین سال‌های ۱۹۹۵ و ۱۹۹۹ ابداع شد. سپس شرکت Lizardtech, Inc. یک مجوز تجاری از AT&T دریافت کرد و توسعه آن را ادامه داد. مالک فعلی حقوق تجاری DjVu شرکت Cuminas است ( .B https://www.cuminas.jp/en/about_djvu ) که راه‌حل‌هایی برای تولید و توزیع اسناد با استفاده از فناوری DjVu و همچنین یک نمایشگر DjVu در قالب افزونه Chrome ارائه می‌دهد. .PP وب‌سایت DjVu.org ( .B http://www.djvu.org ) توسط همان چند پژوهشگر AT&T Labs که فناوری DjVu را پایه‌گذاری کردند، مدیریت می‌شود. ما با فراهم آوردن یک منبع مستقل اطلاعاتی درباره DjVu، این فناوری را ترویج می‌دهیم. .PP با درک این موضوع که جایگاه اندکی برای یک قالب سند انحصاری وجود دارد، Lizardtech کتابخانه مرجع DjVu را تحت .SM GNU Public License در دسامبر ۲۰۰۰ منتشر کرد. این کتابخانه فرمت فشرده‌سازی و کدک‌های پایه‌ای را به‌طور کامل تعریف می‌کند. شش ماه بعد، Lizardtech یک نسخه به‌روزشده از DjVu Reference Library و همچنین کد منبع نمایشگر Unix را منتشر کرد. .PP این دو انتشار، پایه و اساس نرم‌افزار اولیه DjVuLibre ما را تشکیل می‌دهند. ما سامانه ساخت را برای انطباق با انتظارات جامعه متن‌باز اصلاح کردیم. باگ‌های مختلف و مشکلات مربوط به سازگاری با سیستم‌های گوناگون برطرف شده‌اند. ما همچنین تلاش کردیم ضمن حفظ ساختار اساسی نسخه‌های Lizardtech، استفاده و نصب آن را ساده‌تر کنیم. .PP نرم‌افزار DjVuLibre شامل مولفه‌های زیر است: .TP .BR bzz (1) یک برنامه خط فرمانی همه‌منظوره برای فشرده‌سازی. بسیاری از ساختارهای داده داخلی DjVu با استفاده از این روش فشرده می‌شوند. .TP .BR c44 (1) یک رمزگذار خط فرمانی DjVuPhoto. این فشرده‌ساز پیشرفته مبتنی بر موجک (wavelet)، تصاویر DjVuPhoto را از تصاویر PPM یا JPEG تولید می‌کند. .TP .BR cjb2 (1) یک رمزگذار خط فرمانی DjVuBitonal. این فشرده‌ساز با روش تطبیق الگوی نرم (soft-pattern-matching)، تصاویر DjVuBitonal را از تصاویر PBM تولید می‌کند. این ابزار می‌تواند تصاویر را بدون اتلاف کدگذاری کند یا برای بهبود ضریب فشرده‌سازی، تغییرات جزئی در آن‌ها ایجاد نماید. حالت کدگذاری بدون اتلاف، با رمزگذارهای تجاری Lizardtech رقابت‌پذیر است. .TP .BR cpaldjvu (1) یک رمزگذار خط فرمانی DjVuDocument برای تصاویر با رنگ‌های محدود. این رمزگذار برای فشرده‌سازی تصاویری با تعداد کمی از رنگ‌های متمایز (مانند نماگرفت‌ها) بسیار مناسب است. رنگ غالب توسط لایه پس‌زمینه و سایر رنگ‌ها توسط لایه پیش‌زمینه کدگذاری می‌شوند. .TP .BR csepdjvu (1) یک رمزگذار خط فرمانی DjVuDocument برای تصاویر تفکیک‌شده. این رمزگذار فایلی حاوی تصاویر پیش‌زمینه و پس‌زمینه از پیش تفکیک‌شده را دریافت کرده و یک تصویر DjVuDocument تولید می‌کند. .TP .BR ddjvu (1) یک رمزگشای خط فرمانی برای تصاویر DjVu. این برنامه یک تصویر .SM PNM تولید می‌کند که نشان‌دهنده هر بخشی از هر صفحه از یک سند DjVu با هر وضوحی است. .TP .BR djview (1) یک نمایشگر مستقل برای تصاویر DjVu. این نمایشگر پیشرفته، اسناد DjVu را نمایش می‌دهد. این برنامه ناوبری سند و همچنین بزرگ‌نمایی و جابه‌جایی سریع را پیاده‌سازی می‌کند. .TP .BR nsdejavu (1) یک افزونه مرورگر وب برای مشاهده تصاویر DjVu. این افزونه کوچک امکان مشاهده اسناد DjVu را از طریق مرورگرهای وب فراهم می‌کند. این افزونه در پشت صحنه از djview برای انجام کارهای اصلی استفاده می‌کند. .TP .BR djvups (1) یک ابزار خط فرمانی برای تبدیل اسناد DjVu به PostScript . .TP .BR djvm (1) یک ابزار خط فرمانی برای مدیریت اسناد چندصفحه‌ای تجمیع‌شده (bundled) در قالب DjVu. این برنامه اغلب برای جمع‌آوری صفحات منفرد و تولید یک سند تجمیع‌شده استفاده می‌شود. .TP .BR djvmcvt (1) یک ابزار خط فرمانی برای تبدیل اسناد تجمیع‌شده به اسناد غیرمستقیم (indirect) و برعکس. .TP .BR djvused (1) یک ابزار خط فرمانی قدرتمند برای کار با اسناد چندصفحه‌ای، ایجاد یا ویرایش قطعه‌های حاشیه‌نویسی، ایجاد یا ویرایش لایه‌های متن پنهان، پیش‌محاسبه تصاویر بندانگشتی و موارد دیگر... .TP .BR djvutxt (1) یک ابزار خط فرمانی برای استخراج متن پنهان از اسناد DjVu. .TP .BR djvudump (1) یک ابزار خط فرمانی برای بررسی فایل‌های DjVu و نمایش ساختار داخلی آن‌ها. .TP .BR djvuextract (1) یک ابزار خط فرمانی برای تجزیه و جداسازی فایل‌های تصویری DjVu. .TP .BR djvumake (1) یک ابزار خط فرمانی برای سرهم‌بندی فایل‌های تصویری DjVu. .TP .BR djvuserve (1) یک برنامه .SM CGI برای تولید درلحظه اسناد چندصفحه‌ای غیرمستقیم DjVu. .TP .BR djvutoxml "(1), " djvuxmlparser (1) ابزارهای خط فرمانی برای ویرایش فراداده‌های DjVu در قالب فایل‌های XML..SH "کدگذارهای DJVU و ANY2DJVU (DJVU ENCODERS AND ANY2DJVU)" DjVuLibre همراه با انواعی از کدگذارهای تخصصی عرضه می‌شود: .BR c44 (1) برای تصاویر عکاسی، .BR cjb2 (1) برای تصاویر دو رنگی (bitonal)، و .BR cpaldjvu (1) برای تصاویر دارای رنگ‌های متمایز اندک. اگرچه این کدگذارها در حوزهٔ تخصصی خود به خوبی عمل می‌کنند، اما نمی‌توانند وظایف پیچیده‌ای مانند ناحیه‌بندی (segmentation) و کدگذاری چندصفحه‌ای را انجام دهند. محصولات تجاری Lizardtech .BR "" "(ببینید: " "http://www.lizardtech.com/solutions/document" ) می‌توانند این وظایف پیچیدهٔ کدگذاری را انجام دهند. راهکار دیگر توسط سرور فشرده‌سازی در .BR "" ( "http://any2djvu.djvu.org" ). ارائه شده است. این ماشین از پیش‌نمونه‌های کدگذار آزمایشگاه‌های AT&T (پیش از Lizardtech) استفاده می‌کند و عملکرد آن تقریباً به خوبی کدگذارهای تجاری Lizardtech است. لطفاً توجه داشته باشید که سرور فشرده‌سازی Any2DjVu بدون هیچ‌گونه ضمانتی ارائه می‌شود، هیچ اقدامی برای اطمینان از محرمانه ماندن اسناد شما صورت نمی‌گیرد، و تنها یک رایانه برای کل این سیاره کار می‌کند. .SH "دست‌اندرکاران (CREDITS)" افراد متعددی طی پنج سال گذشته در کد منبع DjVu مشارکت داشته‌اند. لطفاً برای به‌روزرسانی فهرست زیر، یک گزارش باگ در sourceforge ارسال کنید. .IP "" 3 Yoshua Bengio, L\('eon Bottou, Chakradhar Chandaluri, Regis M\. Chaplin, Ming Chen, Parag Deshmukh, Royce Edwards, Andrew Erofeev, Praveen Guduru, Patrick Haffner, Paul G\. Howard, Orlando Keise, Yann Le Cun, Artem Mikheev, Florin Nicsa, Joseph M\. Orost, Steven Pigeon, Bill Riemers, Patrice Simard, Jeffery Triggs, Luc Vincent, Pascal Vincent.