Does DCMTK convert video data?

All other questions regarding DCMTK

Moderator: Moderator Team

Post Reply
Message
Author
zack
Posts: 8
Joined: Fri, 2017-06-23, 09:50

Does DCMTK convert video data?

#1 Post by zack »

I have the feeling that DCMTK convert compressed video data to uncompressed.
Is this normal? When does this happens? How can I disable this behavior?
Version 3.6.0
Started with:

Code: Select all

storescp.exe -xf "D:\software\tools\dcmtk-3.6.0-win32-i386\etc\dcmtk\storescp.cfg" "Default" 105

J. Riesmeier
DCMTK Developer
Posts: 2501
Joined: Tue, 2011-05-03, 14:38
Location: Oldenburg, Germany
Contact:

Re: Does DCMTK convert video data?

#2 Post by J. Riesmeier »

This behavior is part of the DICOM Storage Service and depends on the capabilities/configuration of both the Storage SCU and the Storage SCP.

Here are a few questions:
  • What is the transfer syntax and SOP class of the DICOM "compressed video data"?
  • Which Storage SCU do you use and what are the configuration parameters?
  • Do you use the official sample "storescp.cfg" file or did you modify its contents?
  • ...
It would also be helpful if you would provide the --debug or --verbose-pc output of the "storescp" tool.

zack
Posts: 8
Joined: Fri, 2017-06-23, 09:50

Re: Does DCMTK convert video data?

#3 Post by zack »

Is there some logfile?

This is the ouput from the console:
D:\software\tools\dcmtk-3.6.0-win32-i386>D:\software\tools\dcmtk-3.6.0-win32-i386/bin/storescp.exe --debug -xf "D:\software\tools\dcmtk-3.6.0-win32-i386\etc\dcmtk\storescp.cfg" "Default" 105
D: $dcmtk: storescp v3.6.0 2011-01-06 $
D:
D: setting network receive timeout to 60 seconds
D: PDU Type: Associate Request, PDU Length: 226 + 6 bytes PDU header
D: 01 00 00 00 00 e2 00 01 00 00 53 54 4f 52 45 53
D: 43 50 20 20 20 20 20 20 20 20 44 69 56 41 53 20
D: 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00
D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
D: 00 00 00 00 00 00 00 00 00 00 10 00 00 15 31 2e
D: 32 2e 38 34 30 2e 31 30 30 30 38 2e 33 2e 31 2e
D: 31 2e 31 20 00 00 3d 01 00 00 00 30 00 00 20 31
D: 2e 32 2e 38 34 30 2e 31 30 30 30 38 2e 35 2e 31
D: 2e 34 2e 31 2e 31 2e 37 37 2e 31 2e 34 2e 31 40
D: 00 00 11 31 2e 32 2e 38 34 30 2e 31 30 30 30 38
D: 2e 31 2e 32 50 00 00 40 51 00 00 04 00 00 40 00
D: 52 00 00 21 31 2e 32 2e 38 32 36 2e 30 2e 31 2e
D: 33 36 38 30 30 34 33 2e 31 2e 31 2e 38 2e 36 34
D: 2e 32 32 2e 30 55 00 00 0f 44 43 4d 4f 42 4a 38
D: 2e 36 34 2e 32 32 2e 30
D: Parsing an A-ASSOCIATE PDU
I: Association Received
D: Parameters:
D: ====================== BEGIN A-ASSOCIATE-RQ =====================
D: Our Implementation Class UID: 1.2.276.0.7230010.3.0.3.6.0
D: Our Implementation Version Name: OFFIS_DCMTK_360
D: Their Implementation Class UID: 1.2.826.0.1.3680043.1.1.8.64.22.0
D: Their Implementation Version Name: DCMOBJ8.64.22.0
D: Application Context Name: 1.2.840.10008.3.1.1.1
D: Calling Application Name: DiVAS
D: Called Application Name: STORESCP
D: Responding Application Name:
D: Our Max PDU Receive Size: 16384
D: Their Max PDU Receive Size: 16384
D: Presentation Contexts:
D: Context ID: 1 (Proposed)
D: Abstract Syntax: =VideoPhotographicImageStorage
D: Proposed SCP/SCU Role: Default
D: Proposed Transfer Syntax(es):
D: =LittleEndianImplicit
D: Requested Extended Negotiation: none
D: Accepted Extended Negotiation: none
D: Requested User Identity Negotiation: none
D: User Identity Negotiation Response: none
D: ======================= END A-ASSOCIATE-RQ ======================
D: Constructing Associate AC PDU
I: Association Acknowledged (Max Send PDV: 16372)
D: ====================== BEGIN A-ASSOCIATE-AC =====================
D: Our Implementation Class UID: 1.2.276.0.7230010.3.0.3.6.0
D: Our Implementation Version Name: OFFIS_DCMTK_360
D: Their Implementation Class UID: 1.2.826.0.1.3680043.1.1.8.64.22.0
D: Their Implementation Version Name: DCMOBJ8.64.22.0
D: Application Context Name: 1.2.840.10008.3.1.1.1
D: Calling Application Name: DiVAS
D: Called Application Name: STORESCP
D: Responding Application Name: STORESCP
D: Our Max PDU Receive Size: 16384
D: Their Max PDU Receive Size: 16384
D: Presentation Contexts:
D: Context ID: 1 (Accepted)
D: Abstract Syntax: =VideoPhotographicImageStorage
D: Proposed SCP/SCU Role: Default
D: Accepted SCP/SCU Role: Default
D: Accepted Transfer Syntax: =LittleEndianImplicit
D: Requested Extended Negotiation: none
D: Accepted Extended Negotiation: none
D: Requested User Identity Negotiation: none
D: User Identity Negotiation Response: none
D: ======================= END A-ASSOCIATE-AC ======================
I: Received Store Request: MsgID 1, (VVp)
D: ===================== INCOMING DIMSE MESSAGE ====================
D: Message Type : C-STORE RQ
D: Presentation Context ID : 1
D: Message ID : 1
D: Affected SOP Class UID : VideoPhotographicImageStorage
D: Affected SOP Instance UID : 1.2.840.126.78.101.20170630105433.112.2
D: Data Set : present
D: Priority : medium
D: ======================= END DIMSE MESSAGE =======================
D: setting undefined VR of PixelData (7fe0,0010) to 'OW'
I: storing DICOM file: .\VVp.1.2.840.126.78.101.20170630105433.112.2
D: DcmFileFormat::checkMetaHeaderValue() Version of MetaHeader is ok: 0x0100
D: DcmFileFormat::checkMetaHeaderValue() use SOPClassUID [1.2.840.10008.5.1.4.1.1.77.1.4.1]
D: DcmFileFormat::checkMetaHeaderValue() use SOPInstanceUID [1.2.840.126.78.101.20170630105433.112.2] from Dataset
D: DcmFileFormat::checkMetaHeaderValue() use new TransferSyntaxUID [Little Endian Implicit] on writing following Dataset
D: DcmFileFormat: Found 8 Elements in DcmMetaInfo 'metinf'
I: Association Release
the log file from the client side used DICOM library:
10:54:33 (0) SetReg: TRANSFERSYNTAX\1.2.840.10008.5.1.4.1.1.77.1.4.1 ='1.2.840.10008.1.2'
10:54:37 (0) Last Developer Run: 2017-06-30 10:42:14
10:54:37 (1) OUT About to create socket
10:54:37 (1) OUT Connecting to : 127.0.0.1, Port : 105
10:54:37 (1) OUT Socket connected - local port = 50964
10:54:37 (1) OUT Association request
10:54:37 (1) OUT Initiating AET=DiVAS
10:54:37 (1) OUT Called AET=STORESCP
10:54:37 (1) OUT Application Context=1.2.840.10008.3.1.1.1
10:54:37 (1) OUT Presentation Context 1
10:54:37 (1) OUT Abst Syntax=1.2.840.10008.5.1.4.1.1.77.1.4.1
10:54:37 (1) OUT Transfer Syntax=1.2.840.10008.1.2
10:54:37 (1) OUT User information
10:54:37 (1) OUT Max length= 16384
10:54:37 (1) OUT Imp UID= 1.2.826.0.1.3680043.1.1.8.64.22.0
10:54:37 (1) OUT Imp Name= DCMOBJ8.64.22.0
10:54:37 (1) IN Association acceptance
10:54:37 (1) IN Initiating AET=DiVAS
10:54:37 (1) IN Called AET=STORESCP
10:54:37 (1) IN Application Context=1.2.840.10008.3.1.1.1
10:54:37 (1) IN Presentation Context 1
10:54:37 (1) IN Accepted
10:54:37 (1) IN Transfer Syntax=1.2.840.10008.1.2
10:54:37 (1) IN User information
10:54:37 (1) IN Max length= 16384
10:54:37 (1) IN Imp UID= 1.2.276.0.7230010.3.0.3.6.0
10:54:37 (1) IN Imp Name= OFFIS_DCMTK_360
10:54:37 (1) OUT PCID = 1
10:54:37 (1) OUT (0000,0000) 0004 UL 128 (0x80)
10:54:37 (1) OUT (0000,0002) 0020 UI 1.2.840.10008.5.1.4.1.1.77.1.4.1
10:54:37 (1) OUT (0000,0100) 0002 US 1 (0x1)
10:54:37 (1) OUT (0000,0110) 0002 US 1 (0x1)
10:54:37 (1) OUT (0000,0700) 0002 US 0 (0x0)
10:54:37 (1) OUT (0000,0800) 0002 US 258 (0x102)
10:54:37 (1) OUT (0000,1000) 0028 UI 1.2.840.126.78.101.20170630105433.112.2
10:54:37 (1) OUT (0008,0005) 000A CS Array of 1 items (ISO_IR 192)
10:54:37 (1) OUT (0008,0016) 0020 UI 1.2.840.10008.5.1.4.1.1.77.1.4.1
10:54:37 (1) OUT (0008,0018) 0028 UI 1.2.840.126.78.101.20170630105433.112.2
10:54:37 (1) OUT (0008,0020) 0008 DA 29.06.2017
10:54:37 (1) OUT (0008,0021) 0008 DA 29.06.2017
10:54:37 (1) OUT (0008,0030) 000A TM 16:30:31
10:54:37 (1) OUT (0008,0031) 000A TM 16:30:31
10:54:37 (1) OUT (0008,0050) 000A SH 0000000001
10:54:37 (1) OUT (0008,0060) 0002 CS OT
10:54:37 (1) OUT (0008,0070) 0004 LO XION
10:54:37 (1) OUT (0008,0090) 0000 PN
10:54:37 (1) OUT (0008,1030) 0000 LO
10:54:37 (1) OUT (0008,1050) 0012 PN Array of 1 items (Dr. Gregory House)
10:54:37 (1) OUT (0010,0010) 0010 PN Müller^Hans^^^
10:54:37 (1) OUT (0010,0020) 0002 LO 1
10:54:37 (1) OUT (0010,0030) 0008 DA 01.01.2000
10:54:37 (1) OUT (0010,0040) 0002 CS M
10:54:37 (1) OUT (0018,1063) 000A DS 33.333332
10:54:37 (1) OUT (0020,000D) 0028 UI 1.2.840.126.78.101.20170626115935.952.3
10:54:37 (1) OUT (0020,000E) 0028 UI 1.2.840.126.78.101.20170626115935.952.4
10:54:37 (1) OUT (0020,0010) 0000 SH
10:54:37 (1) OUT (0020,0011) 0000 IS
10:54:37 (1) OUT (0020,0013) 0002 IS 1
10:54:37 (1) OUT (0020,0020) 0000 CS
10:54:37 (1) OUT (0020,1209) 0002 IS 1
10:54:37 (1) OUT (0028,0002) 0002 US 3 (0x3)
10:54:37 (1) OUT (0028,0004) 0004 CS RGB
10:54:37 (1) OUT (0028,0006) 0002 US 0 (0x0)
10:54:37 (1) OUT (0028,0008) 0004 IS 499
10:54:37 (1) OUT (0028,0009) 0004 AT Array of 1 items (274923544)
10:54:37 (1) OUT (0028,0010) 0002 US 540 (0x21C)
10:54:37 (1) OUT (0028,0011) 0002 US 1920 (0x780)
10:54:37 (1) OUT (0028,0034) 0004 IS Array of 2 items (2, 1)
10:54:37 (1) OUT (0028,0100) 0002 US 8 (0x8)
10:54:37 (1) OUT (0028,0101) 0002 US 8 (0x8)
10:54:37 (1) OUT (0028,0102) 0002 US 7 (0x7)
10:54:37 (1) OUT (0028,0103) 0002 US 0 (0x0)
10:54:37 (1) OUT (0038,0010) 0000 LO
10:54:37 (1) OUT (0040,0253) 0000 SH
10:54:37 (1) OUT (0040,0254) 0000 LO
10:54:37 (1) OUT (0040,0555) 0000 SQ start
10:54:37 (1) OUT (0040,0555) ---- SQ end
10:54:41 (1) OUT (7FE0,0010) 5C830200 OB Pixel Data
10:54:50 (1) IN (0000,0000) 0004 UL 128 (0x80)
10:54:50 (1) IN (0000,0002) 0020 UI 1.2.840.10008.5.1.4.1.1.77.1.4.1
10:54:50 (1) IN (0000,0100) 0002 US 32769 (0x8001)
10:54:50 (1) IN (0000,0120) 0002 US 1 (0x1)
10:54:50 (1) IN (0000,0800) 0002 US 257 (0x101)
10:54:50 (1) IN (0000,0900) 0002 US 0 (0x0)
10:54:50 (1) IN (0000,1000) 0028 UI 1.2.840.126.78.101.20170630105433.112.2
10:54:50 (1) IN Entering Release
10:54:50 (1) OUT Association Closed Normally
10:54:50 (1) IN Association Closed Normally
10:54:50 (1) IN Leaving Release
I basically use the standard dcmtk-3.6.0-win32-i386 version for windows and modified not config file.

Does this help?

J. Riesmeier
DCMTK Developer
Posts: 2501
Joined: Tue, 2011-05-03, 14:38
Location: Oldenburg, Germany
Contact:

Re: Does DCMTK convert video data?

#4 Post by J. Riesmeier »

Is there some logfile?
The logging mechanism in the DCMTK is based on log4cplus, so you could also create a log file, of course. A sample logger configuration file can be found in "dcmtk/oflog/etc/filelog.cfg". Also see this HOWTO: http://support.dcmtk.org/redmine/projec ... to_LogFile

Code: Select all

D: Context ID: 1 (Proposed)
D: Abstract Syntax: =VideoPhotographicImageStorage
D: Proposed SCP/SCU Role: Default
D: Proposed Transfer Syntax(es):
D: =LittleEndianImplicit
The Storage SCU only proposes a single presentation context (Video Photographic Image Storage SOP Class with Default Transfer Syntax = Implicit VR Little Endian). So, the Storage SCP can only accept or reject this single proposal.

Bottom line: you should check the configuration on the client side (SCU) first.

zack
Posts: 8
Joined: Fri, 2017-06-23, 09:50

Re: Does DCMTK convert video data?

#5 Post by zack »

Is this not enough information for you?

My question is, why does DCMTK convert the video data? It seems to be uncompressed video. Where is this configured? Where can I change this behaviour?
Is this normal?
The video is a HD MPEG2 4:2:2@High

J. Riesmeier
DCMTK Developer
Posts: 2501
Joined: Tue, 2011-05-03, 14:38
Location: Oldenburg, Germany
Contact:

Re: Does DCMTK convert video data?

#6 Post by J. Riesmeier »

Please read my previous answer again: it's not DCMTK (i.e. storescp) converting the video data, it's the storage user (which is apparently not based on the DCMTK).

zack
Posts: 8
Joined: Fri, 2017-06-23, 09:50

Re: Does DCMTK convert video data?

#7 Post by zack »

Sorry I am not into DICOM that big.
Who is the storage user?
Anyway, what information to you need from me to answer this question and where can I find them?

J. Riesmeier
DCMTK Developer
Posts: 2501
Joined: Tue, 2011-05-03, 14:38
Location: Oldenburg, Germany
Contact:

Re: Does DCMTK convert video data?

#8 Post by J. Riesmeier »

The storage user is the client program that you use to send the DICOM image (you call it "video data") to the storescp, i.e. the program that created "the log file from the client side used DICOM library" (see your own posting above).

What I wanted to say: if your client tool (storage user) only proposes to send uncompressed pixel data (you call it "converted video data"), there is nothing the server tool (storage provider, i.e. the tool "storescp" from the DCMTK) can do about it.

zack
Posts: 8
Joined: Fri, 2017-06-23, 09:50

Re: Does DCMTK convert video data?

#9 Post by zack »

no the storage user does not transcode any video data, the server (you) must have uncompressed it.
So how can I disable this behavior?

J. Riesmeier
DCMTK Developer
Posts: 2501
Joined: Tue, 2011-05-03, 14:38
Location: Oldenburg, Germany
Contact:

Re: Does DCMTK convert video data?

#10 Post by J. Riesmeier »

I'm sorry but that's how the DICOM Storage Service works: the SCU proposes to send the DICOM object uncompressed (in your case, Implicit VR Little Endian), the SCP accepts this and then, if the DICOM object is actually compressed, it's up to the SCU to decompress it before the transfer.

If you want to send the DICOM object with "original" transfer syntax (i.e. compressed) you have to configure your communication partners (SCU and SCP) accordingly.

zack
Posts: 8
Joined: Fri, 2017-06-23, 09:50

Re: Does DCMTK convert video data?

#11 Post by zack »

Can you not see what transfer syntax is negotiated between the SCU and SCP from my provided logs?

J. Riesmeier
DCMTK Developer
Posts: 2501
Joined: Tue, 2011-05-03, 14:38
Location: Oldenburg, Germany
Contact:

Re: Does DCMTK convert video data?

#12 Post by J. Riesmeier »

See above (I already answered this question):

Code: Select all

D: Proposed Transfer Syntax(es):
D: =LittleEndianImplicit
[...]
D: Accepted Transfer Syntax: =LittleEndianImplicit

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot], Baidu [Spider], Google [Bot] and 1 guest