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