Pnmtojbig User Manual(0) Pnmtojbig User Manual(0)

pnmtojbig - تبدیل‌کننده فایل‌های تصویری PNM به JBIG

pnmtojbig

[options] [input-file [output-file]]

این برنامه بخشی از Netpbm(1) است.

دستور pnmtojbig یک تصویر PBM یا PGM را می‌خواند، آن را فشرده می‌کند و تصویر را به عنوان یک فایل موجودیت تصویر دوسطحی JBIG (یا BIE) در خروجی می‌نویسد.

فرمت JBIG یک الگوریتم فشرده‌سازی بدون اتلاف بسیار کارآمد برای تصاویر دوسطحی (یک بیت به ازای هر پیکسل) است که به‌ویژه برای صفحات اسکن‌شده اسناد مناسب است.

یک تصویر کدگذاری‌شده با JBIG را می‌توان در چندین تفکیک‌پذیری یا وضوح مختلف (حالت تدریجی یا progressive) ذخیره کرد. این لایه‌های وضوح را می‌توان همگی در یک فایل واحد BIE یا در چندین فایل BIE جداگانه ذخیره نمود. تمام لایه‌های وضوح به جز پایین‌ترین لایه، صرفاً به عنوان تفاوت‌ها نسبت به لایه وضوح پایین‌تر بعدی ذخیره می‌شوند؛ زیرا این کار نسبت به کدگذاری کامل کل تصویر در هر مرحله، به فضای کمتری نیاز دارد. هر لایه وضوح دو برابر لایه پایین‌تر از خود پیکسل افقی و عمودی دارد. فایل‌های JBIG همچنین می‌توانند چندین بیت به ازای هر پیکسل را به عنوان صفحه‌های بیت‌مپ مجزا ذخیره کنند، و pnmtojbig می‌تواند یک فایل PGM را بخواند و آن را به یک BIE با چندین صفحه بیتی تبدیل کند.

علاوه بر گزینه‌های مشترک میان تمام برنامه‌های مبتنی بر libnetpbm (به‌ویژه -quiet، به گزینه‌های مشترک مراجعه کنید)، pnmtojbig گزینه‌های خط فرمان زیر را به رسمیت می‌شناسد:

کدگذاری تصویر در یک لایه وضوح واحد (حالت متوالی یا sequential). این روش معمولاً کارآمدترین شیوه فشرده‌سازی است. به‌طور پیش‌فرض، تعداد لایه‌های وضوح به صورت خودکار انتخاب می‌شود به‌طوری که تصویر پایین‌ترین لایه بزرگ‌تر از ۶۴۰ × ۴۸۰ پیکسل نباشد.
حداکثر اندازه افقی پایین‌ترین لایه وضوح را مشخص می‌کند. مقدار پیش‌فرض ۶۴۰ پیکسل است.
حداکثر اندازه عمودی پایین‌ترین لایه وضوح را مشخص می‌کند. مقدار پیش‌فرض ۴۸۰ پیکسل است.
پایین‌ترین لایه وضوحی را که در BIE نوشته خواهد شد انتخاب می‌کند. ذخیره لایه‌های وضوح مختلف یک تصویر JBIG در حالت تدریجی در فایل‌های BIE جداگانه امکان‌پذیر است. گزینه‌های -l و -h به شما امکان می‌دهند بازه لایه‌های وضوحی را که در BIE ایجادشده قرار می‌گیرند، انتخاب کنید. پایین‌ترین لایه وضوح دارای شماره ۰ است و این مقدار پیش‌فرض نیز هست. به‌طور پیش‌فرض، pnmtojbig تمام لایه‌ها را می‌نویسد.
بالاترین لایه وضوحی را که در BIE نوشته خواهد شد انتخاب می‌کند. به‌طور پیش‌فرض، pnmtojbig تمام لایه‌ها را می‌نویسد. همچنین به گزینه -l مراجعه کنید.
استفاده از مقادیر دودویی به‌جای کلمات کد گری (Gray code) به منظور کدگذاری مقادیر پیکسل در چندین صفحه بیتی. این گزینه تنها در صورتی اثر دارد که ورودی یک فایل PGM باشد و بیش از یک صفحه بیتی تولید شود. توجه داشته باشید که رمزگشا باید انتخاب یکسانی داشته باشد، اما نمی‌تواند از روی فایل BIE تشخیص دهد که آیا رمزگذار از کد گری استفاده کرده است یا کلمات کد دودویی.
تعداد کل لایه‌های وضوح تفاضلی (differential) را که تصویر ورودی علاوه بر پایین‌ترین لایه به آن‌ها تقسیم می‌شود، مشخص می‌کند. هر لایه اضافی اندازه لایه ۰ را تا ۵۰٪ کاهش می‌دهد. این گزینه بر گزینه‌های -x و -y که معمولاً روش راحت‌تری برای انتخاب تعداد لایه‌های وضوح هستند اولویت دارد.
الگوریتم JBIG هر تصویر را به تعدادی نوار افقی تقسیم می‌کند. این گزینه تعیین می‌کند که هر نوار باید دارای number سطر در لایه ۰ باشد. مقدار پیش‌فرض به‌گونه‌ای انتخاب می‌شود که تقریباً ۳۵ نوار برای کل تصویر استفاده شود.
حداکثر آفست افقی پیکسل الگوی تطبیقی (adaptive template pixel) را انتخاب می‌کند. رمزگذار JBIG از تعدادی پیکسل همسایه برای به دست آوردن دانش آماری پیشین درباره احتمال سیاه یا سفید بودن پیکسل بعدی استفاده می‌کند. یک پیکسل منفرد از این الگوی پیکسل‌های همسایه زمینه‌ای را می‌توان جابه‌جا کرد. به‌ویژه برای تصاویر دارای دیترینگ، داشتن یک پیکسل همسایه با فاصله‌ای به اندازه کافی بزرگ که دوره تناوب یک تابع دیترینگ را پوشش دهد، می‌تواند مزیت چشمگیری داشته باشد. به‌طور پیش‌فرض، پیکسل الگوی تطبیقی می‌تواند تا ۸ پیکسل دورتر جابه‌جا شود. این رمزگذار می‌تواند تا ۲۳ پیکسل پیش برود؛ اما از آنجا که طبق استاندارد از رمزگشاها فقط انتظار می‌رود حداقل فاصله ۱۶ پیکسل را پشتیبانی کنند، برای حفظ سازگاری با سایر پیاده‌سازی‌های JBIG مقداری بالاتر از ۱۶ برای number توصیه نمی‌شود. حداکثر آفست عمودی پیکسل الگوی تطبیقی همیشه صفر است.
فقط تعداد مشخص‌شده از باارزش‌ترین صفحه‌های بیتی را کدگذاری می‌کند. این گزینه امکان کاهش عمق یک فایل PGM ورودی را در صورتی که همه بیت‌های هر پیکسل در خروجی مورد نیاز نباشند فراهم می‌سازد.
استاندارد JBIG یک تصویر را به چندین نوار افقی، لایه وضوح و صفحه تفکیک می‌کند، که در آن هر صفحه شامل یک بیت به ازای هر پیکسل است. یک نوار منفرد در یک صفحه و لایه به عنوان یک واحد داده به نام موجودیت داده نواری (stripe data entity یا SDE) در داخل BIE کدگذاری می‌شود. ۱۲ ترتیب مختلف ممکن وجود دارد که در آن‌ها می‌توان SDEها را در داخل BIE ذخیره کرد و number تعیین می‌کند که از کدام ترتیب استفاده شود. ترتیب SDEها تنها برای برنامه‌هایی اهمیت دارد که می‌خواهند یک فایل JBIG را که هنوز به‌طور کامل از طریق یک اتصال شبکه کند دریافت نشده است رمزگشایی کنند. برای مثال، برخی برنامه‌ها ترجیح می‌دهند بیرونی‌ترین حلقه از سه حلقه (نوارها، لایه‌ها، صفحه‌ها) روی تمام لایه‌ها باشد تا تمام داده‌های مربوط به پایین‌ترین لایه وضوح ابتدا مخابره شوند.

مقادیر زیر برای number این ترتیبات حلقه را برای نوشتن SDEها انتخاب می‌کنند (بیرونی‌ترین حلقه در ابتدا):

0
صفحه‌ها، لایه‌ها، نوارها (planes, layers, stripes)
2
لایه‌ها، صفحه‌ها، نوارها (layers, planes, stripes)
3
لایه‌ها، نوارها، صفحه‌ها (layers, stripes, planes)
4
نوارها، صفحه‌ها، لایه‌ها (stripes, planes, layers)
5
صفحه‌ها، نوارها، لایه‌ها (planes, stripes, layers)
6
نوارها، لایه‌ها، صفحه‌ها (stripes, layers, planes)

شمارش تمام حلقه‌ها از صفر آغاز می‌شود؛ با این حال با افزودن ۸ به کد ترتیب فوق، حلقه لایه را می‌توان معکوس کرد تا به سمت صفر به صورت نزولی شمارش کند و سپس لایه‌های با وضوح بالاتر پیش از لایه‌های پایین‌تر ذخیره خواهند شد. ترتیب پیش‌فرض ۳ است که ابتدا تمام صفحه‌های اولین نوار را می‌نویسد و سپس پیش از ادامه با لایه بعدی، لایه ۰ را تکمیل می‌کند و به همین ترتیب ادامه می‌دهد.

این گزینه به شما امکان می‌دهد الگوریتم‌های اختیاری مختلف تعریف‌شده در استاندارد JBIG را فعال یا غیرفعال کنید. کافی است اعداد مربوط به گزینه‌های زیر را که می‌خواهید فعال شوند با یکدیگر جمع کنید تا به مقدار number برسید:
4
پیش‌بینی قطعی (deterministic prediction - DPON)
8
پیش‌بینی شاخص (typical prediction - TPBON)
16
پیش‌بینی شاخص لایه تفاضلی (diff. layer typical prediction - TPDON)
64
الگوی دوخطی لایه ۰ (layer 0 two-line template - LRLTWO)

به جز در کاربردهای خاص (مانند ارتباط با پیاده‌سازی‌های زیرمجموعه JBIG) و اهداف اشکال‌زدایی، معمولاً نیازی به تغییر در اینجا نخواهید داشت. مقدار پیش‌فرض ۲۸ است که بهترین نتیجه فشرده‌سازی را فراهم می‌آورد.

حرکت پیکسل الگوی تطبیقی مطابق با پیشنهاد ضمیمه C استاندارد تعیین می‌شود. به‌طور پیش‌فرض تغییر الگو مستقیماً در سطر بعدی اعمال می‌شود که بیشترین کارایی را دارد. با این حال چند نمونه آزمون انطباق در استاندارد وجود دارند که ایجاب می‌کنند تغییر الگوی تطبیقی تا اولین سطر از نوار بعدی به تعویق بیفتد. این گزینه این رفتار خاص را انتخاب می‌کند که معمولاً جز برای قبولی در برخی آزمون‌های انطباق به آن نیازی نیست.
پس از آنکه pnmtojbig فایل BIE را ایجاد کرد، چند مورد از جزئیات فنی فایل ایجادشده را فهرست می‌کند (حالت پرگویی یا verbose).

بخش عمده فرمتی که pnmtojbig ایجاد می‌کند توسط استاندارد JBIG تعریف شده است.

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

دستور pnmtojbig از پیاده‌سازی مارکوس کوهن (Markus Kuhn) از استاندارد در برنامه pbmtojbg که همراه با کتابخانه JBIG او ارائه می‌شود پیروی می‌کند: اگر BIE یک BIE تک‌صفحه‌ای باشد، صفر به معنای سفید و یک به معنای سیاه است. اگر یک BIE چندصفحه‌ای باشد، صفر به معنای سیاه و حداکثر مقدار به معنای سفید است.

این برنامه الگوریتم کدگذاری تصویر JBIG را همان‌طور که در ISO/IEC 11544:1993 و ITU-T T.82(1993) مشخص شده است پیاده‌سازی می‌کند.

برنامه pnmtojbig بر اساس کتابخانه JBIG اثر مارکوس کوهن (Markus Kuhn)، بخشی از بسته JBIG-KIT او ساخته شده است. برنامه pbmtojbg بخشی از بسته JBIG-KIT است. جدیدترین نسخه این کتابخانه و مجموعه ابزارهای آن به صورت آزاد روی اینترنت از سرور ftp ناشناس زیر در دسترس است: ftp.informatik.uni-erlangen.de در دایرکتوری pub/doc/ISO/JBIG/.

برنامه pnmtojbig بخشی از بسته ابزارهای گرافیکی Netpbm است.

pnm(1), jbigtopnm(1)

زمانی نگرانی‌هایی در مورد نیاز به مجوزهای حق امتیاز اختراع (patent licenses) برای استفاده از pnmtojbig وجود داشت، اما تمام پتنت‌های مربوطه تا سال ۲۰۱۲ منقضی شده‌اند.

این صفحه راهنما توسط ابزار 'makeman' در Netpbm از منبع HTML تولید شده است. مستندات اصلی در نشانی زیر قرار دارد:

http://netpbm.sourceforge.net/doc/pnmtojbig.html
28 July 2020 netpbm documentation