| Pamtojpeg2k User Manual(0) | Pamtojpeg2k User Manual(0) |
نام (NAME)
pamtojpeg2k - تبدیل تصویر PAM/PNM به جریان کد JPEG-2000
خلاصه دستور (SYNOPSIS)
pamtojpeg2k [-imgareatlx=column] [-imgareatly=row] [-tilegrdtlx=column] [-tilegrdtly=row] [-tilewidth=columns] [-tileheight=rows] [-prcwidth=columns] [-prcheight=rows] [-cblkwidth=columns] [-cblkheight=rows] [-mode={integer|int|real}] [-compression=ratio] [-size=bytes] [-ilyrrates=[realnumber[,realnumber, ...]] [-numrlvls=number] [-progression={lrcp|rlcp|rpcl|pcrl|cprl}] [-numgbits=number] [-nomct] [-sop] [-eph] [-lazy] [-termall] [-segsym] [-vcausal] [-pterm] [-resetprob] [-verbose] [-debuglevel=number] filename
کوتاهترین اختصار یکتا از هر گزینه پذیرفته میشود. میتوانید برای مشخص کردن گزینهها به جای یک خط تیره از دو خط تیره استفاده کنید. همچنین میتوانید به جای علامت مساوی، از نویسهٔ فاصله برای جدا کردن نام گزینه از مقدار آن استفاده نمایید.
توضیحات (DESCRIPTION)
این برنامه بخشی از Netpbm(1) است.
دستور pamtojpeg2k فایل نامبردهشدهٔ PBM، PGM، PPM یا PAM (یا در صورت مشخص نشدن نام فایل، ورودی استاندارد) را به یک فایل جریان کد JPEG-2000 (JPC) در خروجی استاندارد تبدیل میکند.
مشخصات فنی JPEG-2000 دو قالب جداگانه را تعیین میکند: JP2 و جریان کد JPEG-2000 (JPC). قالب JP2 یک تصویر دیداری را بهصورت کاملاً مشخص و دقیق نمایش میدهد، در حالی که JPC کموبیش یک آرایهٔ اختیاری از کدهاست. pamtojpeg2k توانایی تولید قالب JP2 را ندارد، اما تصویر JPC که توسط pamtojpeg2k تولید میشود، در صورتی که ورودی یک تصویر PBM، PGM، PPM یا PAM معادل باشد، بسیار شبیه به JP2 خواهد بود. یک تفاوت در این است که مقادیر شدت روشنایی RGB در JP2 مقادیر sRGB هستند، در حالی که pamtojpeg2k مقادیر توصیهنامهٔ ITU-R BT.709 را تولید میکند. این مقادیر بسیار مشابهاند، اما کاملاً یکسان نیستند. تفاوت دیگر این است که یک فایل JP2 میتواند حاوی اطلاعات اضافی دربارهٔ تصویر باشد که JPC قادر به نگهداری آنها نیست.
هنگامی که ورودی یک تصویر PAM به غیر از معادل PBM، PGM یا PPM باشد، رَستر (raster) تصویر JPC تولیدشده حاوی همان دادههایی است که رَستر PAM دارد. این دادهها میتوانند شامل هر تعداد صفحه (plane) با هر مفهومی باشند؛ این صفحهها در خروجی JPC با همان ترتیبی قرار میگیرند که در ورودی PAM بودند.
یک تصویر JPC دارای یک «دقت» (precision) است که بیانگر تعداد بیتهای بهکاررفته برای هر کد (در اصطلاح Netpbm، «نمونه» یا sample) میباشد. در واقع، این قالب برای هر مؤلفه یک دقت جداگانه دارد. pamtojpeg2k برای دقت هر مؤلفه، از کمترین تعداد بیتی استفاده میکند که بتواند مقدار maxval تصویر ورودی را نمایش دهد. تصویر JPC مفهوم مستقلی از maxval ندارد؛ مقدار maxval یک نمونهٔ JPC حداکثر مقداری است که تعداد بیتهای مشخصشده توسط دقت میتوانند در کد باینری خالص نمایش دهند. برای مثال، اگر دقت ۴ باشد، مقدار maxval برابر با ۱۵ است. البته pamtojpeg2k مقادیر نمونه را از maxval ورودی به maxval خروجی مقیاسبندی میکند. مثال: مقدار maxval ورودی ۹۹ است. این یعنی دقت JPC برابر با ۷ بیت و maxval خروجی JPC برابر با ۱۲۷ خواهد بود. بنابراین مقدار نمونهٔ ۳۳ در ورودی، به مقدار نمونهٔ ۴۳ در خروجی تبدیل میشود.
دستور pamtojpeg2k خروجی JPC را به کمک کتابخانهٔ JPEG-2000 جَسپِر (Jasper) تولید میکند. برای جزئیات بیشتر در مورد آنچه pamtojpeg2k تولید میکند، به مستندات این کتابخانه مراجعه کنید. توجه داشته باشید که کتابخانهٔ Jasper شامل امکاناتی برای خواندن تصاویر PNM است، اما pamtojpeg2k از آنها استفاده نمیکند و به جای آن از کتابخانهٔ Netpbm بهره میبرد. همچنین سازندگان کتابخانهٔ Jasper آن را بهصورت «JasPer» مینویسند، اما مستندات Netpbm از قوانین استاندارد نگارش انگلیسی آمریکایی پیروی میکند که چنین بزرگنویسی نامعمولی را مجاز نمیداند.
برای تبدیل در جهت معکوس، از دستور jpeg2ktopam استفاده کنید.
برنامهٔ jasper که همراه با کتابخانهٔ JPEG-2000 جَسپِر عرضه میشود نیز قادر به تبدیل میان قالبهای JPEG-2000 و PNM است. از آنجا که این برنامه همراه با خود کتابخانه بستهبندی شده است، ممکن است استفادهٔ بهتری از قابلیتهای آن (بهویژه ویژگیهای تازه اضافهشده) داشته باشد. با این حال، به دلیل اینکه برای خواندن و نوشتن قالبهای Netpbm از کتابخانهٔ Netpbm استفاده نمیکند، در این زمینه خروجی مطلوبی ارائه نمیدهد.
قالب دیگری با اهدافی مشابه JPEG-2000 که امکان کدگذاری و رمزگشایی سریعتری را فراهم میسازد، JPEG-LS است. CharLS نیز یک بستهٔ نرمافزاری برای کار با قالب JPEG-LS میباشد.
علاوه بر گزینههای مشترک میان تمامی برنامههای مبتنی بر libnetpbm (بهویژه -quiet، به گزینههای مشترک (Common Options) مراجعه کنید)، pamtojpeg2k گزینههای خط فرمان زیر را میشناسد:
گزینههای کتابخانه Jasper
این گزینهها از نظر نام و عملکرد با گزینههایی که زیربرنامهٔ رمزگذار JPC در کتابخانهٔ Jasper دریافت میکند یکسان هستند. برای جزئیات به مستندات Jasper مراجعه کنید.
- -imgareatlx=column
- -imgareatly=row
- -tilegrdtlx=column
- -tilegrdtly=row
- -tilewidth=columns
- -tileheight=rows
- -prcwidth=columns
- -prcheight=rows
- -cblkwidth=columns
- -cblkheight=rows
- -mode={integer|int|real}
- -ilyrrates=[realnumber[,realnumber, ...]]
- -numrlvls=number
- -progression={lrcp|rlcp|rpcl|pcrl|cprl}
- -numgbits=number
- -nomct
- -sop
- -eph
- -lazy
- -termall
- -segsym
- -vcausal
- -pterm
- -resetprob
گزینهٔ -ilyrrates (مخفف 'intermediate layer rates' یا نرخ لایههای میانی) به شما امکان میدهد میزان فشردهسازی را در هر لایه کنترل کنید. تصویر فشردهشده به صورت لایهلایه مرتب میشود؛ بنابراین اگر آن را به صورت متوالی (سریال) به جایی ارسال کنید، دادههای کافی برای ساخت یک تصویر با کیفیت پایین بهسرعت میرسد، سپس در ادامه اطلاعات بیشتری برای ارتقای کیفیت تصویر دریافت میشود، و این روند تا رسیدن کل تصویر ادامه مییابد. مقدار این گزینه فهرستی از کسرهای صعودی است، مانند '.1,.3,.5'. هر کسر مشخص میکند که مجموع اندازهٔ لایهها تا آن لایه (شامل خود آن لایه)، باید به چه کسری از اندازهٔ تصویر ورودی برسد. اگر اندازهٔ کل تصویر توسط -compression یا -size محدود شده باشد، هیچیک از این اعداد نباید از آن حد تجاوز کند.
- -compression=ratio
- ratio یک عدد
ممیز شناور
است که نسبت
فشردهسازی
را مشخص
میکند. pamtojpeg2k
در صورت
لزوم کیفیت
را تنظیم
میکند تا
تضمین شود
که این نسبت
فشردهسازی
حاصل
میشود.
برای مثال،
۴ به این
معناست که
حجم خروجی
تقریباً
یکچهارم
اندازهٔ
فایل ورودی
بر حسب بایت
خواهد بود.
این نسبت تنها به بخش شطرنجی (raster) تصویر مربوط میشود و مخرج آن حجمی است که تصویر شطرنجی در صورت کدگذاری به سادهترین روش ممکن اشغال میکرد (مثلاً ۳ بایت به ازای هر پیکسل در RGB با ۸ بیت در هر نمونه). با این حال، این نسبت شامل متادادههایی است که بخشی از تصویر شطرنجی فشردهشده هستند. به همین دلیل، ممکن است دستیابی به نسبت فشردهسازی درخواستی در هیچ کیفیتی ممکن نباشد. اگر چنین باشد، pamtojpeg2k با پیامی حاکی از این موضوع متوقف میشود.
اگر این گزینه را مشخص نکنید، pamtojpeg2k بهترین فشردهسازی ممکن را بدون هیچگونه افت کیفیت ارائه میدهد. به دلیل مسئلهٔ متاداده که در بالا ذکر شد، این امر برای یک تصویر کوچک ممکن است در عمل به معنای بزرگتر شدن حجم تصویر باشد.
این گزینه مقدار 'rate' در کتابخانهٔ Jasper را کنترل میکند. توجه داشته باشید که گرچه کتابخانهٔ Jasper یک ضریب فشردهسازی دریافت میکند، این گزینه یک نسبت فشردهسازی را مشخص مینماید. ضریب فشردهسازی، معکوس ضربیِ (۱ تقسیم بر) نسبت فشردهسازی است.
نمیتوانید این گزینه را همراه با -size مشخص کنید.
پیش از Netpbm 10.61 (دسامبر ۲۰۱۲)، مقدار پیشفرض نسبت فشردهسازی برابر با ۱ بود، و اگر pamtojpeg2k نمیتوانست خروجی را تا آن حد کوچک کند، صرفاً تا جای ممکن آن را با کیفیت صفر فشرده میکرد. زمانی متوجه وقوع این حالت میشوید که پیام هشدار “empty layer generated” را مشاهده کنید.
- -size=bytes
- این گزینه
حداکثر
اندازه بر
حسب بایت را
که
میخواهید
تصویر
خروجی
داشته
باشد، مشخص
میکند. این
اندازه
فراگیر است
و شامل
هدرها،
تریلرها و
سایر
متادادهها
میشود. pamtojpeg2k
تا جای ممکن
اطلاعات را
حذف میکند
تا حجم فایل
زیر این
محدودیت
قرار گیرد.
امکان دارد مقداری به طور غیرممکنی کوچک تعیین شود، برای مثال مقداری که حتی جایی برای هدر تصویر باقی نگذارد. اگر چنین کنید، برنامه با یک پیام توضیحی شکست میخورد.
این گزینه مقدار 'rate' در کتابخانهٔ Jasper را کنترل میکند.
نمیتوانید این گزینه را همراه با -compression مشخص کنید.
این گزینه در Netpbm 11.1 (دسامبر ۲۰۲۲) اضافه شده است.
- -verbose
- این گزینه باعث میشود pamtojpeg2k پیامهای اطلاعاتی دربارهٔ فرایند تبدیل صادر کند.
- -debuglevel=number
- این گزینه پیامهای اشکالزدایی کتابخانهٔ Jasper را کنترل میکند. pamtojpeg2k مقدار number را به عنوان سطح اشکالزدایی به رمزگذار Jasper JPC ارسال میکند.
مثالها (EXAMPLES)
این مثال فشردهسازی را بدون افت کیفیت انجام میدهد.
pamtojpeg2k myimg.ppm >myimg.jpc
jpeg2ktopam فایل myimg.ppm را دقیقاً بازسازی خواهد کرد.
این مثال فایل را به یکدهم اندازهٔ اصلیاش فشرده میکند و در صورت لزوم اطلاعات را دور میریزد.
pamtojpeg2k -compression=10 myimg.pgm >myimg.jpc
فرمت JPEG-2000 قالبی است که یک تصویر بصری (یا مجموعهای مشابه از دادهها) را برای ذخیرهسازی یا انتقال، به حداقل تعداد بایت ممکن فشرده میکند. از این حیث، هدف آن مشابه JPEG است. با این حال دو تفاوت اصلی با JPEG دارد.
تفاوت نخست این است که در اکثر تصاویر، در حذف اطلاعات اضافی به منظور دستیابی به خروجی کوچکتر بسیار بهتر عمل میکند. این بدان معناست که وقتی تصویر را از فایل فشرده بازسازی میکنید، به ازای اندازه فایل فشرده یکسان، تصویر حاصل در JPEG-2000 نسبت به JPEG شباهت بسیار بیشتری به تصویر اولیه دارد. یا به بیانی دیگر، با JPEG-2000 برای یک کیفیت تصویر یکسان، به فایلی بسیار کوچکتر از JPEG دست مییابید.
تفاوت دوم این است که در JPEG-2000، شما تعیین میکنید چه مقدار فشردهسازی میخواهید و فشردهساز کیفیت را متناسب با نیاز شما تنظیم میکند؛ در حالی که در JPEG، شما میزان کیفیت مورد نظر را مشخص میکنید و فشردهساز اندازه خروجی را بر اساس آن تنظیم میکند. به عبارت دیگر، در JPEG-2000 کیفیت خروجی به میزان فشردهپذیری ورودی بستگی دارد، اما در JPEG، اندازه خروجی به میزان فشردهپذیری ورودی وابسته است.
با JPEG-2000 میتوانید فشردهسازی بدوناتلاف (lossless) را تعیین کنید که امکان رقابت با GIF و PNG را به آن میدهد. در فرمت JPEG استاندارد همیشه مقداری از اطلاعات از دست میرود (البته شایعاتی مبنی بر وجود گونههای بدوناتلاف از JPEG نیز مطرح است).
فرمت JPEG بسیار قدیمیتر از JPEG-2000 و به مراتب محبوبتر است. JPEG یکی از محبوبترین فرمتهای گرافیکی دنیاست و تقریباً تمامی برنامهها و ابزارهای گرافیکی آن را پشتیبانی میکنند. در نقطه مقابل، JPEG-2000 تقریباً ناشناخته باقی مانده است.
هیچ سازگاری مستقیمی بین JPEG و JPEG-2000 وجود ندارد. برنامههایی که JPEG را میخوانند، به صورت خودکار قادر به خواندن JPEG-2000 نیستند و برعکس.
همچنین ببینید (SEE ALSO)
jpeg2ktopam(1), pnmtojpeg(1), ppm(1), pgm(1), pbm(1), pam(1),
تاریخچه (HISTORY)
برنامه pamtojpeg2k در نگارش 10.12 (نوامبر ۲۰۰۲) به Netpbm اضافه شد.
منبع مستندات (DOCUMENT SOURCE)
این صفحه راهنما توسط ابزار Netpbm با نام 'makeman' از منبع HTML تولید شده است. مستندات مرجع اصلی در نشانی زیر قرار دارد:
| 1 November 2022 | netpbm documentation |