dcmdjpeg(1) OFFIS DCMTK dcmdjpeg(1)

dcmdjpeg - رمزگشایی فایل DICOM فشرده‌شده با JPEG

dcmdjpeg [گزینه‌ها] dcmfile-in dcmfile-out

ابزار dcmdjpeg یک تصویر دایکام فشرده‌شده با فرمت JPEG را (dcmfile-in) می‌خواند، داده‌های JPEG را از حالت فشرده خارج می‌کند (یعنی تبدیل به یک سینتکس انتقال بومی دایکام) و تصویر تبدیل‌شده را در یک فایل خروجی (dcmfile-out) می‌نویسد.

dcmfile-in   نام فایل دایکام ورودی جهت تبدیل ("-" برای ورودی استاندارد stdin)
dcmfile-out  نام فایل دایکام خروجی ("-" برای خروجی استاندارد stdout)

-h    --help
        چاپ این متن راهنما و خروج
      --version
        چاپ اطلاعات نسخه و خروج
      --arguments
        چاپ آرگومان‌های بسط‌یافته خط فرمان
-q    --quiet
        حالت خاموش، عدم چاپ هشدارها و خطاها
-v    --verbose
        حالت پرگویی، چاپ جزئیات پردازش
-d    --debug
        حالت اشکال‌زدایی، چاپ اطلاعات دیباگ
-ll   --log-level  [l]evel: string constant
        (fatal, error, warn, info, debug, trace)
        استفاده از سطح l برای ثبت‌کننده لاگ
-lc   --log-config  [f]ilename: string
        استفاده از فایل پیکربندی f برای لاگر

قالب فایل ورودی:
  +f    --read-file
          خواندن قالب فایل یا مجموعه داده (پیش‌فرض)
  +fo   --read-file-only
          تنها خواندن قالب فایل
  -f    --read-dataset
          خواندن مجموعه داده بدون اطلاعات فراداده‌ای فایل (meta information)
  # این گزینه اجازه می‌دهد اشیاء دایکام فشرده با JPEG که به عنوان
  # دیتاست بدون هدر متا ذخیره شده‌اند رمزگشایی شوند. چنین چیزی اصولاً نباید
  # وجود داشته باشد زیرا سینتکس انتقال بدون فراداده قابل تشخیص قطعی نیست،
  # اما متاسفانه وجود دارد.

تبدیل فضای رنگ:
  +cp   --conv-photometric
          تبدیل در صورت تفسیر فتومتریک YCbCr (پیش‌فرض)
  # اگر تصویر فشرده از تفسیر فتومتریک YBR_FULL یا YBR_FULL_422 استفاده می‌کند،
  # هنگام خروج از فشردگی به RGB تبدیل شود.
  +cl   --conv-lossy
          تبدیل YCbCr به RGB در صورت JPEG دارای افت (lossy)
  # اگر تصویر فشرده با JPEG دارای افت کدگذاری شده باشد، مدل رنگی YCbCr فرض شده
  # و به RGB تبدیل گردد.
  +cg   --conv-guess
          تبدیل به RGB اگر YCbCr توسط کتابخانه حدس زده شود
  # اگر کتابخانه زیربنایی JPEG فضای رنگی تصویر فشرده را YCbCr حدس بزند،
  # به RGB تبدیل شود.
  +cgl  --conv-guess-lossy
          تبدیل به RGB در صورت JPEG با افت و حدس YCbCr توسط کتابخانه
  # اگر تصویر در حالت JPEG با افت فشرده شده و کتابخانه زیربنایی JPEG فضای رنگ را
  # YCbCr حدس بزند، به RGB تبدیل شود.
  +ca   --conv-always
          همواره YCbCr به RGB تبدیل شود
  # اگر تصویر فشرده یک تصویر رنگی است، مدل رنگ YCbCr فرض شده و به RGB تبدیل شود.
  # هشدار: اگر فضای رنگ در واقع RGB باشد، این کار منجر به رمزگشایی نادرست تصویر
  # خواهد شد. تصاویر فشرده با JPEG بدون افت تقریباً هرگز با YCbCr کدگذاری نمی‌شوند،
  # بنابراین این گزینه باید در چنین تصاویری با احتیاط به کار رود.
  +cn   --conv-never
          هرگز YCbCr به RGB تبدیل نشود
  # هرگز فضای رنگ در حین خروج از فشردگی از YCbCr به RGB تبدیل نشود.
  # توجه داشته باشید در صورتی که تصویر مبدا با زیرنمونه‌برداری (subsampling) فشرده
  # شده باشد، تبدیل از YBR_FULL_422 به YBR_FULL همچنان انجام خواهد شد.
پیکربندی سطحی (planar configuration):
  +pa   --planar-auto
          تعیین خودکار پیکربندی سطحی از روی کلاس SOP و فضای رنگ (پیش‌فرض)
  # اگر تصویر رنگی است، در صورتی که کلاس SOP و تفسیر فتومتریک ایجاب کند به صورت
  # color-by-plane ذخیره شود. تصاویر Hardcopy Color همواره به صورت color-by-plane
  # ذخیره می‌شوند، و اشیاء اصلاح‌شده تصویر سونوگرافی اگر مدل رنگ YBR_FULL باشد به صورت
  # color-by-plane ذخیره می‌گردند. بقیه موارد به صورت color-by-pixel ذخیره می‌شوند.
  +px   --color-by-pixel
          همواره به صورت color-by-pixel ذخیره شود
  # اگر تصویر فشرده یک تصویر رنگی است، با پیکربندی سطحی color-by-pixel ذخیره شود.
  +pl   --color-by-plane
          همواره به صورت color-by-plane ذخیره شود
  # اگر تصویر فشرده یک تصویر رنگی است، با پیکربندی سطحی color-by-plane ذخیره شود.
بیت‌های ذخیره‌شده (bits stored):
  +bs  --bits-stored-fix
         اصلاح مقدار ناسازگار BitsStored (پیش‌فرض)
  # اگر مقدار BitsStored در جریان بیتی فشرده کوچک‌تر از مقدار موجود در مجموعه داده
  # دایکام باشد، مقدار مجموعه داده به‌روزرسانی شود.
  -bs  --bits-stored-keep
         حفظ مقدار ناسازگار BitsStored
  # حفظ مقدار BitsStored حتی اگر با جریان بیتی فشرده ناسازگار باشد.
  # این گزینه ممکن است به رمزگشایی درست برخی تصاویر معیوب کمک کند.
شناسه SOP Instance UID:
  +ud   --uid-default
          حفظ همان SOP Instance UID (پیش‌فرض)
  # هرگز SOP Instance UID جدیدی اختصاص داده نشود.
  +ua   --uid-always
          همواره UID جدید اختصاص یابد
  # همواره یک SOP Instance UID جدید اختصاص داده شود.
گزینه‌های رفع اشکال برای کدگذاری‌های نادرست JPEG:
  +w6   --workaround-pred6
          فعال کردن دورزدن خطا برای تصاویر بدون افت JPEG با سرریز در پیش‌بینی‌کننده ۶
  # تصاویر دایکام با ۱۶ بیت بر پیکسل در دنیای واقعی دیده شده‌اند که با JPEG بدون افت
  # فشرده شده‌اند و نیاز به رسیدگی ویژه دارند زیرا رمزگذار دچار سرریز عدد صحیح ۱۶ بیتی
  # در پیش‌بینی‌کننده ۶ شده است، که باید هنگام خروج از فشردگی جبران (بازسازی) شود.
  # این فلگ رمزگشایی صحیح چنین تصاویر معیوبی را ممکن می‌سازد، اما هم‌زمان باعث
  # رمزگشایی نادرست تصاویر سالم خواهد شد. با احتیاط استفاده شود.
  +wi   --workaround-incpl
          فعال کردن دورزدن خطا برای داده‌های ناقص JPEG
  # این گزینه باعث می‌شود dcmjpeg داده‌های ناقص JPEG در انتهای یک قطعه فشرده را
  # نادیده گرفته و خروج از فشردگی فریم بعدی را از قطعه بعدی (در صورت وجود) آغاز کند.
  # این امکان، رمزگشایی تصاویر دارای داده‌های ناقص JPEG را میسر می‌سازد.
  +wc   --workaround-cornell
          فعال کردن راه‌حل ترمیمی برای تصاویر ۱۶ بیتی بدون افت JPEG کورنل با سرریز جدول هافمن
  # یکی از نخستین پیاده‌سازی‌های متن‌باز فشرده‌سازی JPEG بدون افت، یعنی کتابخانه "Cornell"،
  # دارای باگی شناخته‌شده است که هنگام فشرده‌سازی تصاویر ۱۶ بیتی به مقادیر نامعتبر در جدول هافمن
  # می‌انجامد. این فلگ راه‌حلی ترمیمی را فعال می‌کند که امکان رمزگشایی درست چنین تصاویری را فراهم می‌سازد.

قالب فایل خروجی:
  +F    --write-file
          نوشتن قالب فایل (پیش‌فرض)
  -F    --write-dataset
          نوشتن مجموعه داده بدون فراداده فایل
سینتکس انتقال خروجی:
  +te   --write-xfer-little
          نوشتن با VR صریح و little endian (پیش‌فرض)
  +tb   --write-xfer-big
          نوشتن با سینتکس انتقال VR صریح و big endian
  +ti   --write-xfer-implicit
          نوشتن با سینتکس انتقال VR ضمنی و little endian
نمایش مقادیر بعد از سال ۱۹۹۳ (Value Representations):
  +u    --enable-new-vr
          فعال‌سازی پشتیبانی از VRهای جدید (UN/UT) (پیش‌فرض)
  -u    --disable-new-vr
          غیرفعال‌سازی پشتیبانی از VRهای جدید، تبدیل به OB
کدگذاری طول گروه (group length encoding):
  +g=   --group-length-recalc
          محاسبه مجدد طول گروه‌ها در صورت وجود (پیش‌فرض)
  +g    --group-length-create
          همواره با عناصر طول گروه نوشته شود
  -g    --group-length-remove
          همواره بدون عناصر طول گروه نوشته شود
کدگذاری طول در توالی‌ها و آیتم‌ها:
  +e    --length-explicit
          نوشتن با طول‌های صریح (پیش‌فرض)
  -e    --length-undefined
          نوشتن با طول‌های تعریف‌نشده
فاصله‌گذاری انتهایی مجموعه داده (با --write-dataset به کار نمی‌رود):
  -p=   --padding-retain
          عدم تغییر فاصله‌گذاری (پیش‌فرض به جز در حالت --write-dataset)
  -p    --padding-off
          بدون فاصله‌گذاری (ضمنی در صورت استفاده از --write-dataset)
  +p    --padding-create  [f]ile-pad [i]tem-pad: integer
          تراز فایل روی مضربی از f بایت
          و آیتم‌ها روی مضربی از i بایت

ابزار dcmdjpeg از سینتکس‌های انتقال زیر برای ورودی (dcmfile-in) پشتیبانی می‌کند:

LittleEndianImplicitTransferSyntax             1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax             1.2.840.10008.1.2.1
DeflatedExplicitVRLittleEndianTransferSyntax   1.2.840.10008.1.2.1.99 (*)
BigEndianExplicitTransferSyntax                1.2.840.10008.1.2.2
JPEGProcess1TransferSyntax                     1.2.840.10008.1.2.4.50
JPEGProcess2_4TransferSyntax                   1.2.840.10008.1.2.4.51
JPEGProcess6_8TransferSyntax                   1.2.840.10008.1.2.4.53
JPEGProcess10_12TransferSyntax                 1.2.840.10008.1.2.4.55
JPEGProcess14TransferSyntax                    1.2.840.10008.1.2.4.57
JPEGProcess14SV1TransferSyntax                 1.2.840.10008.1.2.4.70

(*) در صورت فعال بودن پشتیبانی zlib در زمان کامپایل

ابزار dcmdjpeg از سینتکس‌های انتقال زیر برای خروجی (dcmfile-out) پشتیبانی می‌کند:

LittleEndianImplicitTransferSyntax             1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax             1.2.840.10008.1.2.1
BigEndianExplicitTransferSyntax                1.2.840.10008.1.2.2

سطح خروجی گزارش‌گیری ابزارهای خط فرمان و کتابخانه‌های زیربنایی را می‌توان توسط کاربر مشخص کرد. به‌طور پیش‌فرض، تنها خطاها و هشدارها در جریان خطای استاندارد نوشته می‌شوند. با استفاده از گزینه --verbose پیام‌های اطلاع‌رسانی مانند جزئیات پردازش نیز گزارش می‌شوند. گزینه --debug را می‌توان برای دریافت جزئیات بیشتر درباره فعالیت‌های داخلی (مثلاً برای اشکال‌زدایی) به کار برد. سایر سطوح گزارش‌گیری با گزینه --log-level قابل انتخاب هستند. در حالت --quiet فقط خطاهای مهلک گزارش می‌شوند. در چنین رخدادهای خطای شدیدی، برنامه معمولاً خاتمه می‌یابد. برای جزئیات بیشتر درباره سطوح مختلف لاگ، به مستندات ماژول "oflog" مراجعه فرمایید.

در صورتی که خروجی گزارش‌ها باید درون فایل نوشته شود (اختیاراً همراه با چرخش فایل لاگ)، در syslog (یونیکس) یا event log (ویندوز)، می‌توان از گزینه --log-config استفاده کرد. این فایل پیکربندی همچنین امکان هدایت پیام‌های خاص به جریان خروجی مشخص و فیلتر کردن پیام‌ها بر اساس ماژول یا برنامه‌ای که در آن تولید شده‌اند را فراهم می‌کند. یک فایل پیکربندی نمونه در <etcdir>/logger.cfg ارائه شده است.

تمامی ابزارهای خط فرمان از نشانه‌گذاری زیر برای پارامترها استفاده می‌کنند: کروشه‌ها مقادیر اختیاری را در بر می‌گیرند (۰-۱)، سه نقطه انتهایی نشان می‌دهد که چندین مقدار مجاز است (۱-n)، و ترکیب هر دو به معنای ۰ تا n مقدار است.

گزینه‌های خط فرمان با علامت پیشوند '+' یا '-' از پارامترها متمایز می‌شوند. معمولاً ترتیب و موقعیت گزینه‌ها دلخواه است (یعنی می‌توانند در هر جایی ظاهر شوند). با این حال، اگر گزینه‌ها مانعة‌الجمع باشند، راست‌ترین گزینه لحاظ می‌شود. این رفتار با قواعد ارزیابی استاندارد شل‌های معمول یونیکس مطابقت دارد.

علاوه بر این، می‌توان یک یا چند فایل دستور را با استفاده از پیشوند علامت '@' برای نام فایل مشخص کرد (مانند @command.txt). چنین آرگومانی پیش از هرگونه ارزیابی بیشتر با محتوای فایل متنی مربوطه جایگزین می‌شود (چندین فاصله خالی به عنوان یک جداکننده تلقی می‌شوند مگر اینکه درون نقل‌قول قرار گرفته باشند). لطفاً توجه داشته باشید که یک فایل دستور نمی‌تواند شامل فایل دستور دیگری باشد. این رویکرد ساده اما موثر به کاربر اجازه می‌دهد تا ترکیب‌های رایج گزینه‌ها/پارامترها را خلاصه کرده و از خط فرمان‌های طولانی و گیج‌کننده جلوگیری کند (یک نمونه در فایل <datadir>/dumppat.txt ارائه شده است).

ابزار dcmdjpeg تلاش می‌کند تا واژه‌نامه‌های داده‌های دایکام مشخص‌شده در متغیر محیطی DCMDICTPATH را بارگذاری کند. به‌طور پیش‌فرض، یعنی اگر متغیر محیطی DCMDICTPATH تنظیم نشده باشد، فایل <datadir>/dicom.dic بارگذاری می‌شود مگر اینکه دیکشنری درون خود برنامه تعبیه شده باشد (پیش‌فرض در ویندوز).

رفتار پیش‌فرض باید ترجیح داده شود و متغیر محیطی DCMDICTPATH تنها زمانی به کار رود که واژه‌نامه‌های داده‌ای جایگزین نیاز باشد. متغیر محیطی DCMDICTPATH همان قالبی را دارد که متغیر PATH در شل یونیکس دارد که در آن دونقطه (":") ورودی‌ها را جدا می‌کند. در سیستم‌های ویندوز، از نقطه-ویرگول (";") به عنوان جداکننده استفاده می‌شود. کد دیکشنری داده‌ها تلاش می‌کند هر فایل مشخص‌شده در متغیر محیطی DCMDICTPATH را بارگذاری نماید. در صورتی که هیچ دیکشنری داده‌ای بارگذاری نشود، یک خطا خواهد بود.

dcmcjpeg(1)

Copyright (C) 2001-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.

Thu Jul 9 2026 18:43:40 Version 3.7.0