dcmcjpls(1) OFFIS DCMTK dcmcjpls(1)

dcmcjpls - کدگذاری فایل DICOM به نحو انتقال JPEG-LS

dcmcjpls [options] dcmfile-in dcmfile-out

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

dcmfile-in   نام فایل ورودی DICOM برای تبدیل ("-" برای ورودی استاندارد stdin)
dcmfile-out  نام فایل خروجی DICOM ("-" برای خروجی استاندارد 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
         خواندن مجموعه داده بدون متاداده‌های فایل
نحو انتقال ورودی:
  -t=  --read-xfer-auto
         استفاده از تشخیص خودکار نحو انتقال (پیش‌فرض)
  -td  --read-xfer-detect
         نادیده گرفتن نحو انتقال مشخص‌شده در هدر متاداده‌های فایل
  -te  --read-xfer-little
         خواندن با نحو انتقال صریح VR و ترتیب بایت little endian
  -tb  --read-xfer-big
         خواندن با نحو انتقال صریح VR و ترتیب بایت big endian
  -ti  --read-xfer-implicit
         خواندن با نحو انتقال ضمنی VR و ترتیب بایت little endian

فرآیند JPEG-LS:
  +el  --encode-lossless
         کدگذاری با نحو انتقال فقط بدون‌افت JPEG-LS (پیش‌فرض)
  # این گزینه نحو انتقال فقط بدون‌افت JPEG-LS را انتخاب کرده
  # و فشرده‌سازی بدون‌افت را انجام می‌دهد.
  +en  --encode-nearlossless
         کدگذاری با نحو انتقال تقریباً بدون‌افت JPEG-LS (مقدار NEAR: 2)
  # این گزینه نحو انتقال با‌افت JPEG-LS را انتخاب کرده
  # و فشرده‌سازی تقریباً بدون‌افت را انجام می‌دهد.
نرخ بیت JPEG-LS (فقط در حالت تقریباً بدون‌افت):
  +md  --max-deviation  [d]eviation: integer (پیش‌فرض: 2)
         تعیین حداکثر انحراف برای یک پیکسل کدگذاری‌شده
  # این گزینه حداکثر انحراف مجاز یک پیکسل منفرد از مقدار
  # اصلی پیکسل را مشخص می‌کند.
فشرده‌سازی بدون‌افت:
  +pr  --prefer-raw
         ترجیح حالت انکودر خام (raw) (پیش‌فرض)
  # این گزینه انکودر خام را فعال می‌کند. انکودر خام کل سلول پیکسل را
  # همان‌گونه که از تصویر مبدأ خوانده شده، بدون انجام هیچ‌گونه تغییری
  # کدگذاری می‌کند.
  +pc  --prefer-cooked
         ترجیح حالت انکودر پردازش‌شده (cooked)
  # این گزینه انکودر پردازش‌شده را فعال می‌کند. انکودر پردازش‌شده داده‌های
  # اورلی (overlay) را به تگ‌های جداگانه (60xx,3000) منتقل کرده و فقط بیت‌های
  # ذخیره‌شده در هر پیکسل را کدگذاری می‌کند.
فشرده‌سازی JPEG-LS:
  +t1  --threshold1  [t]hreshhold: integer
         تنظیم پارامتر آستانه ۱ در کدگذاری JPEG-LS
  +t2  --threshold2  [t]hreshhold: integer
         تنظیم پارامتر آستانه ۲ در کدگذاری JPEG-LS
  +t3  --threshold3  [t]hreshhold: integer
         تنظیم پارامتر آستانه ۳ در کدگذاری JPEG-LS
  # به طور پیش‌فرض، مقادیر T1، T2 و T3 بر اساس تعداد بیت‌ها در هر نمونه
  # محاسبه می‌شوند.
  +rs  --reset  [r]eset: integer (پیش‌فرض: 64)
         تنظیم پارامتر بازنشانی (reset) در کدگذاری JPEG-LS
درهم‌آمیزی (interleave) در JPEG-LS:
  +il  --interleave-line
         اجبار به استفاده از تصاویر JPEG-LS با درهم‌آمیزی خطی (پیش‌فرض)
  # این فلگ حالت درهم‌آمیزی خطی را برای تصویر حاصل تحمیل می‌کند.
  # در حالت درهم‌آمیزی خطی، هر خط از تصویر مبدأ برای هر مؤلفه به صورت
  # جداگانه فشرده شده و سپس خط بعدی کدگذاری می‌شود.
  +is  --interleave-sample
         اجبار به استفاده از تصاویر JPEG-LS با درهم‌آمیزی نمونه‌ای
  # این فلگ حالت درهم‌آمیزی نمونه‌ای را برای تصویر حاصل تحمیل می‌کند.
  # در حالت درهم‌آمیزی نمونه‌ای، مؤلفه‌های هر پیکسل پیش از کدگذاری
  # پیکسل بعدی کدگذاری می‌شوند.
  +iv  --interleave-default
         استفاده از سریع‌ترین حالت ممکن درهم‌آمیزی
  # این فلگ حالت درهم‌آمیزی را بر اساس حالت تصویر مبدأ انتخاب می‌کند.
  # در صورت امکان، تصویر به حالت درهم‌آمیزی متفاوتی تبدیل نمی‌شود.
پدینگ جریان‌های بیتی JPEG-LS با طول فرد:
  +ps  --padding-standard
         پدینگ با نشانگر گسترش‌یافته EOI (پیش‌فرض)
  # پدینگ جریان‌های بیتی با طول فرد در JPEG-LS با نوشتن نشانگر
  # قطعه پایان تصویر گسترش‌یافته FF FF D9، مطابق با الزامات استاندارد DICOM.
  +pz  --padding-zero
         پدینگ با بایت صفر (غیر استاندارد)
  # پدینگ جریان‌های بیتی با طول فرد در JPEG-LS با نوشتن یک بایت صفر بعد از
  # نشانگر قطعه پایان تصویر، یعنی FF D9 00. این کار با استاندارد DICOM
  # مطابقت ندارد اما برای سازگاری متقابل با پیاده‌سازی مرجع HP LOCO که
  # از جریان‌های بیتی گسترش‌یافته JPEG-LS پشتیبانی نمی‌کند، الزامی است.

قطعه‌بندی داده‌های پیکسلی کپسوله‌شده:
  +ff  --fragment-per-frame
         کدگذاری هر فریم به صورت یک قطعه (پیش‌فرض)
  # این گزینه باعث ایجاد یک قطعه فشرده‌شده برای هر فریم می‌شود (توصیه‌شده).
  +fs  --fragment-size  [s]ize: integer
         محدود کردن اندازه قطعه به s کیلوبایت
  # این گزینه اندازه قطعه را محدود می‌کند که ممکن است باعث ایجاد
  # چندین قطعه در هر فریم شود.
کدگذاری جدول آفست پایه:
  +ot  --offset-table-create
         ایجاد جدول آفست (پیش‌فرض)
  # این گزینه باعث ایجاد یک جدول آفست معتبر برای قطعات فشرده‌شده
  # JPEG می‌شود.
  -ot  --offset-table-empty
         خالی گذاشتن جدول آفست
  # این گزینه باعث ایجاد یک جدول آفست خالی برای قطعات فشرده‌شده
  # JPEG می‌شود.
شناسه کلاس SOP (SOP Class UID):
  +cd  --class-default
         حفظ شناسه کلاس SOP (پیش‌فرض)
  # حفظ شناسه کلاس SOP تصویر مبدأ.
  +cs  --class-sc
         تبدیل به تصویر تصویربرداری ثانویه (مستلزم --uid-always)
  # تبدیل تصویر به تصویربرداری ثانویه (Secondary Capture). علاوه بر شناسه
  # کلاس SOP، تمامی ویژگی‌های مورد نیاز برای یک تصویر معتبر تصویربرداری ثانویه
  # اضافه می‌شوند. همواره یک شناسه نمونه SOP جدید تخصیص می‌یابد.
شناسه نمونه SOP (SOP Instance UID):
  +ud  --uid-default
         تخصیص شناسه جدید در صورت فشرده‌سازی با‌افت (پیش‌فرض)
  # در صورتی که فشرده‌سازی از نوع JPEG-LS با‌افت باشد، یک شناسه نمونه SOP جدید تخصیص می‌دهد.
  +ua  --uid-always
         همیشه شناسه جدید تخصیص داده شود
  # بدون قید و شرط یک شناسه نمونه SOP جدید تخصیص می‌دهد.
  +un  --uid-never
         هرگز شناسه جدید تخصیص داده نشود
  # هرگز شناسه نمونه SOP جدیدی تخصیص نمی‌دهد.

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

ابزار dcmcjpls تصاویر دایکام تمامی کلاس‌های SOP را فشرده می‌کند. این ابزار تمامی عناصر داده‌های پیکسلی Pixel Data (7fe0,0010) موجود در مجموعه داده را پردازش می‌کند، یعنی فشرده‌سازی روی تصویر آیکون (icon image) نیز انجام می‌شود. با این حال، dcmcjpls تلاشی برای اطمینان از اینکه تصویر فشرده‌شده همچنان با تمامی محدودیت‌های IOD شئ مطابقت دارد انجام نمی‌دهد.

کاربر مسئول اطمینان از این موضوع است که تصاویر فشرده‌شده‌ای که ایجاد می‌کند با استاندارد DICOM مطابقت داشته باشند. در صورت وجود ابهام، ابزار dcmcjpls به کاربر امکان می‌دهد تصویر را به تصویربرداری ثانویه (secondary capture) تبدیل کند - این کلاس SOP محدودیت‌هایی مشابه موارد ذکرشده در بالا را تحمیل نمی‌کند.

ابزار dcmcjpls از نحوهای انتقال زیر برای ورودی (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

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

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

JPEGLSLosslessTransferSyntax                   1.2.840.10008.1.2.4.80
JPEGLSLossyTransferSyntax                      1.2.840.10008.1.2.4.81

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

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

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

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

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

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

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

dcmdjpls(1)

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

Thu Jul 9 2026 18:43:40 Version 3.7.0