| DJPEG(1) | General Commands Manual | DJPEG(1) |
نام (NAME)
djpeg - فشردهگشایی یک فایل JPEG به یک فایل تصویر
خلاصه دستور (SYNOPSIS)
djpeg [ options ] [ filename ]
توضیحات (DESCRIPTION)
دستور djpeg فایل JPEG مشخصشده یا ورودی استاندارد (در صورت مشخص نشدن فایل) را فشردهگشایی کرده و یک فایل تصویر در خروجی استاندارد تولید میکند. فرمتهای خروجی PNG، PBMPLUS (PPM/PGM)، BMP، GIF یا Targa قابل انتخاب هستند.
گزینهها (OPTIONS)
تمام نامهای سوئیچ را میتوان بهصورت مخفف نوشت؛ برای نمونه، -grayscale میتواند بهصورت -gray یا -gr نوشته شود. بیشتر سوئیچهای «پایهای» را میتوان حتی تا یک حرف خلاصه کرد. حروف بزرگ و کوچک معادل یکدیگرند (بنابراین -BMP همانند -bmp است). املاهای بریتانیایی نیز پذیرفته میشوند (مانند -greyscale)، اگرچه برای رعایت اختصار در ادامه به آنها اشاره نشده است.
سوئیچهای پایهای عبارتند از:
- -colors N
- کاهش رنگهای تصویر به حداکثر N رنگ [قابلیت قدیمی]. این گزینه تعداد رنگهای استفادهشده در تصویر خروجی را کاهش میدهد تا بتوان آن را در یک فرمت فایل با نقشهی رنگ (colormapped) ذخیره کرد. این قابلیت هنگام فشردهگشایی تصاویر بدوناتلاف (lossless) JPEG قابل استفاده نیست.
- -quantize N
- مشابه -colors. نام -colors نام توصیهشده است. -quantize تنها برای سازگاری با گذشته ارائه شده است.
- -fast
- انتخاب گزینههای پردازشی توصیهشده برای خروجی با کیفیت پایین [قابلیت قدیمی]. (گزینههای پیشفرض برای بالاترین کیفیت خروجی انتخاب شدهاند.) در حال حاضر، این گزینه معادل -dct fast -nosmooth -onepass -dither ordered است. در پردازندههای امروزی، این تنظیمات بهبود عملکردی بسیار اندک داشته یا اصلاً تاثیری ندارند و صرفاً برای سازگاری با گذشته حفظ شدهاند.
- -grayscale
- اجبار خروجی به مقیاس خاکستری حتی اگر فایل JPEG تمامرنگی باشد. این قابلیت هنگام فشردهگشایی تصاویر تمامرنگی بدوناتلاف JPEG قابل استفاده نیست.
- -rgb
- اجبار خروجی به RGB حتی اگر فایل JPEG مقیاس خاکستری باشد. این قابلیت هنگام فشردهگشایی تصاویر بدوناتلاف مقیاس خاکستری JPEG قابل استفاده نیست.
- -scale M/N
- مقیاسبندی تصویر خروجی با ضریب M/N. در حال حاضر ضریب مقیاس باید M/8 باشد، که در آن M یک عدد صحیح بین ۱ تا ۱۶ (شامل هر دو) یا هر کسر سادهشدهای از آن (مانند 1/2، 3/4 و غیره) است. مقیاسبندی زمانی که تصویر بزرگتر از نمایشگر شماست بسیار کاربردی است. این قابلیت هنگام فشردهگشایی تصاویر بدوناتلاف JPEG قابل استفاده نیست.
- -bmp
- انتخاب فرمت خروجی BMP (گونهی ویندوز). اگر -colors یا -grayscale مشخص شده باشد، یا اگر فایل JPEG مقیاس خاکستری باشد، فرمت نقشهرنگی ۸ بیتی (8-bit colormapped) تولید میشود؛ در غیر این صورت، فرمت تمامرنگی ۲۴ بیتی تولید میگردد. این فرمت فقط هنگام فشردهگشایی تصاویر JPEG از نوع 8-bit-per-sample قابل استفاده است.
- -gif
- انتخاب فرمت خروجی GIF (فشردهشده با LZW) [قابلیت قدیمی]. از آنجا که GIF از بیش از ۲۵۶ رنگ پشتیبانی نمیکند، مقدار -colors 256 فرض میشود (مگر اینکه تعداد رنگهای کمتری مشخص کنید). اگر -fast را مشخص کنید، تعداد رنگهای پیشفرض ۲۱۶ خواهد بود. این فرمت فقط هنگام فشردهگشایی تصاویر JPEG بااتلاف (lossy) از نوع 8-bit-per-sample یا 12-bit-per-sample قابل استفاده است.
- -gif0
- انتخاب فرمت خروجی GIF (بدون فشردهسازی) [قابلیت قدیمی]. از آنجا که GIF از بیش از ۲۵۶ رنگ پشتیبانی نمیکند، مقدار -colors 256 فرض میشود (مگر اینکه تعداد رنگهای کمتری مشخص کنید). اگر -fast را مشخص کنید، تعداد رنگهای پیشفرض ۲۱۶ خواهد بود. این فرمت فقط هنگام فشردهگشایی تصاویر JPEG بااتلاف از نوع 8-bit-per-sample یا 12-bit-per-sample قابل استفاده است.
- -os2
- انتخاب فرمت خروجی BMP (گونهی OS/2 1.x) [قابلیت قدیمی]. اگر -colors یا -grayscale مشخص شده باشد، یا اگر فایل JPEG مقیاس خاکستری باشد، فرمت نقشهرنگی ۸ بیتی تولید میشود؛ در غیر این صورت، فرمت تمامرنگی ۲۴ بیتی تولید میگردد. این فرمت فقط هنگام فشردهگشایی تصاویر JPEG از نوع 8-bit-per-sample قابل استفاده است.
- -png
- انتخاب فرمت خروجی PNG. اگر فایل JPEG مقیاس خاکستری باشد یا -grayscale مشخص شده باشد، فرمت مقیاس خاکستری تولید میشود؛ در غیر این صورت فرمت تمامرنگی طبیعی (truecolor) تولید میشود. اگر دقت دادههای خروجی بیشتر از ۸ بیت باشد، فرمت ۱۶ بیت در هر کانال (16-bit-per-channel) تولید میگردد. اگر فایل JPEG حاوی یک نمایه (پروفایل) مدیریت رنگ ICC باشد، این نمایه بهطور خودکار به تصویر خروجی منتقل میشود، مگر اینکه -noicc مشخص شده باشد.
- -pnm
- انتخاب فرمت خروجی PBMPLUS (PPM/PGM) (این فرمت پیشفرض است). اگر فایل JPEG مقیاس خاکستری باشد یا -grayscale مشخص شده باشد، خروجی PGM تولید میشود؛ در غیر این صورت PPM تولید خواهد شد.
- -targa
- انتخاب فرمت خروجی Targa [قابلیت قدیمی]. اگر فایل JPEG مقیاس خاکستری باشد یا -grayscale مشخص شده باشد، فرمت مقیاس خاکستری تولید میشود؛ در غیر این صورت، اگر -colors مشخص شده باشد، فرمت نقشهرنگی (colormapped) تولید میگردد؛ وگرنه فرمت تمامرنگی ۲۴ بیتی تولید خواهد شد. این فرمت فقط هنگام فشردهگشایی تصاویر JPEG از نوع 8-bit-per-sample قابل استفاده است.
سوئیچها برای کاربران پیشرفته:
- -precision 12
- فشردهگشایی
یک تصویر JPEG
بااتلاف
از نوع 8-bit-per-sample
به یک تصویر
خروجی 12-bit-per-sample.
فرمت JPEG از ضرایب ۱۶ بیتی DCT استفاده میکند و این ضرایب را نسبت به یک بلوک DCT با اندازه 8x8 محاسبه مینماید. بنابراین، یک تصویر JPEG از نوع 8-bit-per-sample میتواند بخش عمدهی سیگنال ناشی از یک تصویر مبدا کمنورشده (underexposed) با دقت دادهی بالاتر را حفظ کند، به شرطی که دقت دادهی تصویر مبدا در فشردهساز تا مرحلهی DCT پیشرو حفظ شود. (دوربینهای دیجیتال مدرن معمولاً این کار را انجام میدهند، اما توجه داشته باشید که libjpeg-turbo چنین کاری نمیکند. راهکار ما برای حفظ دقت دادهی بالاتر در فشردهساز صرفاً تولید یک تصویر JPEG از نوع 12-bit-per-sample است.)
ممکن است حفظ حداکثر این سیگنال در فشردهگشا، برای تسهیل بازیابی سایهها (shadow recovery) در تصویر خروجی، مطلوب باشد. بنابراین، این سوئیچ فشردهگشا را وادار میسازد تا خط لوله فشردهگشایی 12-bit-per-sample را به کار گیرد، حتی اگر تصویر JPEG دارای دقت دادهی ۸ بیتی باشد.
- -dct int
- استفاده از روش دقیق DCT عدد صحیح (پیشفرض).
- -dct fast
- استفاده از
روش
کمدقتتر
DCT عدد صحیح
[قابلیت
قدیمی].
هنگامی که
نرمافزار
Independent JPEG Group نخستین
بار در سال
۱۹۹۱ منتشر
شد، زمان
فشردهگشایی
یک تصویر JPEG
یک
مگاپیکسلی
در یک
کامپیوتر
شخصی
معمولی با
واحد دقیقه
سنجیده
میشد. بدین
ترتیب،
الگوریتم DCT
عدد صحیح fast
مزایای
عملکردی
چشمگیری
فراهم
میکرد. با
این حال، در
پردازندههای
امروزی که
libjpeg-turbo را اجرا
میکنند،
زمان
فشردهگشایی
یک تصویر JPEG
یک
مگاپیکسلی
با
میلیثانیه
سنجیده
میشود و
بنابراین
مزایای
عملکردی
الگوریتم
fast بسیار
کمتر به چشم
میآید. در
پردازندههای
مدرن x86/x86-64 که
از
دستورالعملهای
AVX2 پشتیبانی
میکنند،
روشهای fast
و int عملکرد
مشابهی
دارند. در
انواع دیگر
پردازندهها،
روش fast
عموماً
حدود ۵ تا
۱۵ درصد
سریعتر از
روش int است.
اگر تصویر JPEG با سطح کیفیت ۸۵ یا پایینتر فشرده شده باشد، تفاوت کیفیت محسوس اندک یا ناچیزی میان این دو الگوریتم وجود خواهد داشت. با این وجود، هنگام فشردهگشایی تصاویری که با سطوح کیفیت بالاتر از ۸۵ فشرده شدهاند، تفاوت بین روشهای fast و int آشکارتر میشود. برای نمونه در تصاویری که با کیفیت ۹۷ فشرده شدهاند، روش fast عموماً افتی در حدود ۴ تا ۶ دسیبل در PSNR نسبت به روش int به همراه دارد، اما این میزان برای برخی تصاویر میتواند بیشتر باشد. در صورت امکان، هنگام فشردهگشایی تصاویری که با سطوح کیفیت بالاتر از ۹۷ فشرده شدهاند از روش fast استفاده نکنید. این الگوریتم در چنین تصاویری اغلب دچار افت شدید کیفیت میشود و عملاً میتواند تصویری با اتلاف بیشتر نسبت به زمانی که تصویر JPEG با سطوح کیفیت پایینتر فشرده شده بود تولید کند.
- -dct float
- استفاده از روش DCT ممیز شناور [قابلیت قدیمی]. روش float نتایج به میزان قابل توجهی دقیقتری نسبت به روش int ایجاد نمیکند، و بسیار کندتر است. روش float همچنین ممکن است به دلیل تفاوت در رفتار گرد کردن اعداد، نتایج متفاوتی در رایانههای مختلف تولید کند، در حالی که روشهای عدد صحیح باید در تمامی رایانهها نتایج یکسانی ارائه دهند.
- -dither fs
- استفاده از دیترینگ (dithering) Floyd-Steinberg هنگام کوانتیزهسازی رنگها [قابلیت قدیمی].
- -dither ordered
- استفاده از دیترینگ مرتبشده (ordered dithering) هنگام کوانتیزهسازی رنگها [قابلیت قدیمی].
- -dither none
- عدم استفاده از دیترینگ هنگام کوانتیزهسازی رنگها [قابلیت قدیمی]. بهطور پیشفرض، هنگام کوانتیزهسازی رنگها دیترینگ Floyd-Steinberg اعمال میشود. این حالت کندتر است اما معمولاً بهترین نتایج را تولید میکند. دیترینگ مرتبشده مصالحهای میان سرعت و کیفیت است. عدم استفاده از دیترینگ سریعتر است اما معمولاً ظاهر بسیار بدی دارد. توجه داشته باشید که این سوئیچها هیچ تاثیری ندارند مگر اینکه کوانتیزهسازی رنگ در حال انجام باشد. دیترینگ مرتبشده تنها در حالت -onepass در دسترس است.
- -icc file
- استخراج نمایه (پروفایل) مدیریت رنگ ICC به فایل مشخصشده.
- -noicc
- پروفایل توکار مدیریت رنگ ICC (در صورت وجود) را از فایل JPEG به تصویر خروجی PNG منتقل نکن.
- -map file
- کوانتیزهسازی براساس رنگهای استفادهشده در فایل تصویر مشخصشده [قابلیت قدیمی]. این گزینه برای تولید چندین فایل با نقشههای رنگی یکسان، یا اجبار به استفاده از مجموعهای از پیش تعیینشده از رنگها مفید است. فایل file باید یک فایل GIF یا PPM باشد. این گزینه بر -colors و -onepass ارجحیت دارد و آنها را لغو میکند.
- -nosmooth
- استفاده از یک روتین فرانمونهبرداری (upsampling) سریعتر اما با کیفیت پایینتر.
- -onepass
- استفاده از کوانتیزهسازی رنگ تکگذره (one-pass) بهجای دوگذره [قابلیت قدیمی]. روش تکگذره به حافظهی کمتری نیاز دارد، اما تصویری با کیفیت پایینتر تولید میکند. گزینه -onepass نادیده گرفته میشود مگر اینکه گزینه -colors N را نیز مشخص کرده باشید. همچنین، روش تکگذره همیشه برای خروجی مقیاس خاکستری استفاده میشود (روش دوگذره در آن حالت هیچ بهبودی ایجاد نمیکند).
- -maxmemory N
- تنظیم سقف حافظهی مورد استفاده برای پردازش تصاویر بزرگ. این مقدار بر حسب هزار بایت، یا در صورت چسبیدن «M» به عدد، بر حسب میلیون بایت است. برای نمونه، -max 4m مقدار ۴۰۰۰۰۰۰ بایت را تعیین میکند. در صورتی که فضای بیشتری نیاز باشد، خطا رخ خواهد داد.
- -maxscans N
- توقف اجرا در صورتی که تصویر JPEG شامل بیش از N پویش (scan) باشد. این قابلیت روشی را نشان میدهد که از طریق آن برنامهها میتوانند از خود در برابر حملات محرومسازی از سرویس (DoS) ناشی از تصاویر دستکاریشده و ناقص JPEG که شامل پویشهای فراوان با دادههای تصویرِ مفقود یا دادههای متشکل از «دنبالههای EOB» هستند محافظت نمایند (یکی از قابلیتهای تصاویر JPEG تدریجی که امکان بازنمایی صدها هزار پیکسل پیدرپی با مقدار صفر را تنها با چند بایت فراهم میکند). تلاش برای فشردهگشایی چنین تصاویر JPEG ناسالمی میتواند به بار بیش از حد CPU منجر شود، زیرا فشردهگشا باید هر پویش را (حتی در صورت خراب بودن پویش) پیش از رفتن به پویش بعدی بهطور کامل پردازش کند.
- -outfile name
- ارسال تصویر خروجی به فایل نامبردهشده، بهجای خروجی استاندارد.
- -nooverwrite
- عدم بازنویسی فایل خروجی در صورتی که از قبل وجود داشته باشد.
- -memsrc
- بارگذاری فایل ورودی در حافظه پیش از فشردهگشایی. این قابلیت اساساً به عنوان روشی برای آزمایش مدیر منبع درونحافظه (jpeg_mem_src()) پیادهسازی شده است.
- -report
- گزارش پیشرفت فشردهگشایی.
- -skip Y0,Y1
- فشردهگشایی تمامی ردیفهای تصویر JPEG بهجز ردیفهای بین Y0 و Y1 (شامل هر دو). توجه داشته باشید که اگر مقیاسبندی فشردهگشایی در حال استفاده باشد، Y0 و Y1 نسبت به ابعاد تصویر مقیاسبندیشده محاسبه میشوند.
- -crop WxH+X+Y
- تنها فشردهگشایی یک ناحیهی مستطیلی فرعی از تصویر، با شروع از نقطه X,Y با پهنای W و بلندی H. در صورت لزوم، نقطه X به نزدیکترین مرز iMCU به سمت چپ شیفت داده شده و پهنا نیز متناسب با آن افزایش مییابد. توجه داشته باشید که اگر مقیاسبندی فشردهگشایی در حال استفاده باشد، مقادیر X، Y، W و H نسبت به ابعاد تصویر مقیاسبندیشده سنجیده میشوند. در حال حاضر این گزینه با فرمت خروجی BMP کار نمیکند.
- -strict
- در نظر گرفتن تمامی هشدارها به عنوان خطای مهلک (fatal). این قابلیت نیز روشی را نشان میدهد که برنامهها میتوانند در برابر حملات ناشی از تصاویر JPEG ناقص و دستکاریشده محافظت شوند. فعالسازی این گزینه باعث میشود که اگر تصویر JPEG حاوی دادههای ناقص یا خراب باشد، فشردهگشا بلافاصله متوقف شود.
- -verbose
- فعالسازی چاپ پیامهای اشکالزدایی. گزینههای -v بیشتر خروجی بیشتری تولید میکنند. همچنین، اطلاعات نسخه در هنگام آغاز به کار چاپ میشود.
- -debug
- مشابه -verbose.
- -version
- چاپ اطلاعات نسخه و خروج.
مثالها (EXAMPLES)
این مثال فایل JPEG با نام foo.jpg را فشردهگشایی کرده و خروجی را در قالب فرمت BMP هشتبیتی در foo.bmp ذخیره میکند:
- djpeg -bmp foo.jpg > foo.bmp
محیط (ENVIRONMENT)
- JPEGMEM
- اگر این متغیر محیطی تنظیم شده باشد، مقدار آن سقف پیشفرض حافظه خواهد بود. این مقدار همانطور که برای سوئیچ -maxmemory توضیح داده شد تعیین میشود. JPEGMEM مقدار پیشفرضی که هنگام کامپایل برنامه مشخص شده است را باطل میکند، و خود نیز توسط یک گزینه صریح -maxmemory باطل و بازنویسی میشود.
همچنین ببینید (SEE ALSO)
cjpeg(1), jpegtran(1), rdjpgcom(1),
wrjpgcom(1)
ppm(5), pgm(5)
Wallace, Gregory K. "The JPEG Still Picture Compression Standard",
Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44.
نویسندگان (AUTHORS)
Independent JPEG Group
این فایل توسط پروژه The libjpeg-turbo Project ویرایش شده است تا تنها شامل اطلاعات مرتبط با libjpeg-turbo باشد، نگارش برخی از بخشها بازبینی شود و قابلیتهایی که در libjpeg وجود ندارند شرح داده شوند.
| 24 March 2026 |