CSEPDJVU(1) DjVuLibre-3.5 CSEPDJVU(1)

csepdjvu - رمزگذار DjVu برای پرونده‌های داده تفکیک‌شده

csepdjvu [options] [sepfiles]... outputdjvufile

این برنامه یک پرونده DjVuDocument به نام outputdjvufile را از پرونده‌های داده تفکیک‌شده sepfiles تولید می‌کند. چنانچه به جای نام پرونده‌های داده تفکیک‌شده یک خط تیره منفرد داده شود، برنامه می‌تواند داده‌های تفکیک‌شده را از ورودی استاندارد بخواند. این قابلیت برای برنامه‌های پیش‌پردازشی در نظر گرفته شده است که داده‌های تفکیک‌شده را از طریق لوله (pipe) به csepdjvu ارسال می‌کنند.

هر پرونده داده تفکیک‌شده نمایانگر یک یا چند تصویر صفحه است. هنگامی که آرگومان‌های برنامه چندین صفحه را مشخص کنند، تمامی صفحات رمزگذاری شده و به عنوان یک سند چندصفحه‌ای یکپارچه ذخیره می‌شوند. زمانی که آرگومان‌های برنامه تنها یک صفحه را مشخص کنند، آن صفحه رمزگذاری شده و به عنوان یک پرونده تک‌صفحه‌ای ذخیره می‌شود.

اطلاعات وضوح رمزگذاری‌شده در پرونده خروجی را بر حسب نقطه در اینچ (dpi) مشخص می‌کند. اطلاعات وضوح موجود در پرونده‌های DjVu تعیین می‌کند که رمزگشا چگونه تصویر را در یک نمایشگر خاص مقیاس‌بندی کند. وضوح‌های معنادار در بازه ۲۵ تا ۶۰۰۰ قرار دارند. مقدار پیش‌فرض ۳۰۰ نقطه در اینچ است.
کیفیت رمزگذاری لایه پس‌زمینه رمزگذاری‌شده با IW44 را مشخص می‌کند. آرگومان گزینه شامل چندین عدد صحیح (یک عدد برای هر تکه) است که با کاما یا علامت بعلاوه از یکدیگر جدا می‌شوند. این گزینه مشابه گزینه -slice در برنامه c44 است. لطفاً برای جزئیات بیشتر به صفحه راهنمای c44(1) مراجعه کنید. مشخصات کیفیت پیش‌فرض برابر با -q 72,83,93,103 است.

این گزینه برای پس‌زمینه‌های یکدست سفیدی که در داده‌های تفکیک‌شده مشخص نشده‌اند اما بر اساس مشخصات فنی DjVu الزامی هستند اعمال نمی‌شود. چنین تصاویر پس‌زمینه‌ای همواره با کمترین وضوح ممکن و با تنظیمات کیفیت استانداردی تولید می‌شوند که یکنواختی رنگ را تضمین می‌کند.

برنامه csepdjvu برخی از توضیحات موجود در پرونده تفکیک‌شده را برای ایجاد یک لایه متنی پنهان در پرونده DjVu تفسیر می‌کند. این لایه موقعیت هر کلمه را برای اهداف برجسته‌سازی (highlighting) ثبت می‌نماید. این گزینه حجم پرونده را با ثبت صرفِ موقعیت هر خط به جای تک‌تک کلمات کاهش می‌دهد.
نمایش پیامی کوتاه در توصیف هر صفحه.
نمایش پیام‌های اطلاعاتی جامع در طول فرآیند رمزگذاری.

هر پرونده داده تفکیک‌شده شامل الحاق یک یا چند تصویر صفحه تفکیک‌شده است. هر صفحه به صورت منطقی توسط یک تصویر پیش‌زمینه با یک رنگ شفاف و یک تصویر پس‌زمینه که از میان پیکسل‌های شفاف قابل مشاهده است، نشان داده می‌شود. داده‌های مربوط به هر تصویر صفحه تفکیک‌شده، از الحاق بلوک‌های داده زیر تشکیل شده است:

  • یک تصویر پیش‌زمینه که با استفاده از «قالب RLE رنگی» یا «قالب RLE دورنگ (Bitonal)» رمزگذاری شده است. این قالب‌ها در ادامه این بخش توضیح داده شده‌اند.
  • یک تصویر پس‌زمینه اختیاری که به عنوان «پیکسمپ قابل حمل» ( PPM ) رمزگذاری شده است. این قالب شناخته‌شده در ادامه این بخش به طور خلاصه شرح داده شده است. نبود تصویر پس‌زمینه صرفاً نشان می‌دهد که باید یک پس‌زمینه یکدست سفید در نظر گرفته شود.
  • تعداد دلخواهی از خطوط توضیحات که با نویسه «#» آغاز شده و با یک نویسه خط جدید (linefeed) پایان می‌یابند. خطوط توضیحی که اولین کلمه آن‌ها با یک حرف بزرگ لاتین آغاز می‌شود، معانی ویژه‌ای دارند که در ادامه این سند تشریح شده است.

ابعاد (عرض و ارتفاع) تصویر پس‌زمینه باید از طریق گرد کردنِ رو به بالایِ حاصل‌تقسیم ابعاد تصویر پیش‌زمینه بر یک ضریب کاهش صحیح در بازه ۱ تا ۱۲ به دست آید. برای نمونه، فرض کنید که عرض تصویر پیش‌زمینه ۲۵۰۷ و ضریب کاهش ۳ باشد. عرض تصویر پس‌زمینه برابر با نسبت صحیح (2507+2)/3 خواهد بود.

قالب RLE رنگی یک طرح فشرده‌سازی ساده مبتنی بر کدگذاری طول اجرا (Run-Length Encoding) برای تصاویر رنگی با تعداد محدودی رنگ متمایز است. داده‌ها همواره با یک سربرگ متنی آغاز می‌شوند که متشکل از دو نویسه «R6»، تعداد ستون‌ها، تعداد سطرها و تعداد مدخل‌های پالت رنگ است. تمامی اعداد به صورت ده‌دهی ASCII بیان می‌شوند. این چهار مورد توسط نویسه‌های خالی (فاصله، تب، بازگشت به ابتدای سطر، یا خط جدید) یا خطوط توضیحی که با نویسه «#» مشخص شده‌اند، از یکدیگر جدا می‌شوند. پس از آخرین عدد، دقیقاً یک نویسه قرار می‌گیرد که معمولاً یک نویسه خط جدید است.

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

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

قالب RLE دورنگ (Bitonal) یک طرح ساده کدگذاری طول اجرا برای تصاویر تک‌رنگ یا دورنگ است. داده‌ها همواره با یک سربرگ متنی آغاز می‌شوند که متشکل از دو نویسه «R4»، تعداد ستون‌ها و تعداد سطرها است. تمامی اعداد به صورت ده‌دهی ASCII بیان می‌شوند. این سه مورد با نویسه‌های خالی (فاصله، تب، بازگشت به ابتدای سطر، یا خط جدید) یا خطوط توضیحی که با نویسه «#» معرفی شده‌اند، از یکدیگر جدا می‌شوند. پس از آخرین عدد دقیقاً یک نویسه قرار می‌گیرد که معمولاً یک نویسه خط جدید است.

باقی‌مانده پرونده، دنباله‌ای از اعداد را رمزگذاری می‌کند که نشان‌دهنده طول دنباله‌های متناوب از پیکسل‌های شفاف و سیاه هستند. خطوط با شروع از بالاترین خط و پیشروی به سمت پایین‌ترین خط رمزگذاری می‌شوند. هر خط با یک دنباله سفید آغاز می‌شود. رمزگشا زمانی متوجه پایان یک خط می‌شود که مجموع طول دنباله‌ها برای آن خط برابر با تعداد ستون‌های تصویر باشد. اعداد در بازه ۰ تا ۱۹۱ با یک بایت تکی در بازه 0x00 تا 0xbf نشان داده می‌شوند. اعداد در بازه ۱۹۲ تا ۱۶۳۸۳ با یک توالی دو بایتی نشان داده می‌شوند: بایت اول، در بازه 0xc0 تا 0xff، شش بیت باارزش‌تر عدد را رمزگذاری می‌کند و بایت دوم، هشت بیت باقی‌مانده عدد را رمزگذاری می‌نماید. این طرح امکان دنباله‌هایی با طول صفر را فراهم می‌کند؛ امری که زمانی مفید است که یک خط با یک پیکسل سیاه آغاز شود یا هنگامی که یک دنباله بسیار طولانی (با طولی بیش از ۱۶۳۸۳) باید به دنباله‌های کوچک‌تر تقسیم شود.

قالب Portable Pixmap قالبی شناخته‌شده برای نمایش تصاویر رنگی است. برای اطلاعات کامل به صفحه راهنمای ppm(1) مراجعه فرمایید.

داده‌ها همواره با یک سربرگ متنی آغاز می‌شوند که متشکل از دو نویسه «P6»، تعداد ستون‌ها، تعداد سطرها و بیشینه مقدار یک مولفه رنگی (معمولاً ۲۵۵) است. تمامی اعداد به صورت ده‌دهی ASCII بیان می‌شوند. این سه مورد با نویسه‌های خالی (فاصله، تب، بازگشت به ابتدای سطر، یا خط جدید) یا خطوط توضیحی که با نویسه «#» مشخص شده‌اند، از هم جدا می‌شوند. پس از آخرین عدد دقیقاً یک نویسه قرار می‌گیرد که معمولاً یک نویسه خط جدید است.

باقی‌مانده پرونده تمام پیکسل‌ها را رمزگذاری می‌کند. هر پیکسل با سه بایت نشان داده می‌شود که بیانگر مولفه‌های قرمز، سبز و آبی آن پیکسل هستند. پیکسل‌ها به ترتیب از چپ به راست و از بالا به پایین چیده شده‌اند.

هر صفحه با تعداد دلخواهی از خطوط توضیحات دنبال می‌شود که با نویسه «#» آغاز شده و با نویسه خط جدید (linefeed) پایان می‌یابند. برخی از خطوط توضیحات دارای معانی ویژه‌ای هستند. در ساختارهای زیر، تمامی رشته‌ها با کدگذاری UTF-8 بوده و به سبک رشته‌های پست‌اسکریپت (Postscript) بیان می‌شوند، بدین معنا که درون پرانتز قرار گرفته و از توالی‌های گریز به سبک C که با یک بک‌اسلش مشخص می‌شوند، استفاده می‌کنند.

  • # T px:py dx:dy wxh+x+y (string)
    چنین خط توضیحی مشخص می‌کند که قطعه متن string باید به ناحیه‌ای با اندازه wxh در موقعیت x,y نسبت به گوشه پایین-چپ صفحه اختصاص یابد. اعداد صحیح px و py بیانگر موقعیت نقطه جاری روی خط مبنای متن (baseline) پیش از رسم متن هستند. عملیات رسم سپس نقطه جاری را به اندازه dx و dy پیکسل جابه‌جا می‌کند. در صورت وجود چنین توضیحاتی، csepdjvu یک لایه متنی پنهان برای صفحات مربوطه تولید می‌کند.
  • # L wxh+x+y (url)
    چنین خط توضیحی مشخص می‌کند که پیوندی به نشانی اینترنتی url باید به ناحیه‌ای به اندازه wxh در موقعیت x,y اختصاص یابد. در صورت وجود چنین توضیحاتی، csepdjvu صفحاتی با یک تکه حاشیه‌نویسی (annotation chunk) حاوی پیوندهای وب مشخص‌شده تولید می‌کند.
  • # B count (string) (#pageno)
    چنین خط توضیحی اطلاعات طرح کلی (outline/سرفصل‌ها) را برای سند فراهم می‌کند. یک مدخل طرح کلی با عنوان string به صفحه pageno اختصاص می‌یابد. عدد صحیح count مشخص می‌کند چه تعداد از مدخل‌های طرح کلیِ بعدی باید به عنوان زیرمدخل به مدخل جاری ضمیمه شوند. هنگامی که چنین توضیحاتی در صفحه نخست وجود داشته باشد، csepdjvu یک تکه ناوبری (navigation chunk) با طرح کلی مشخص‌شده تولید می‌کند.
  • # P (string)
    چنین خط توضیحی یک عنوان string برای صفحه جاری ارائه می‌دهد.

این برنامه ابتدا توسط Léon Bottou <leonb@users.sourceforge.net> نوشته شد و توسط Bill Riemers <docbill@sourceforge.net> و افراد بسیار دیگری بهبود یافت.

djvu(1), ppm(5), c44(1)

10/11/2001 DjVuLibre-3.5