|
8 | 8 |
|
9 | 9 | ## pylibjpeg-rle |
10 | 10 |
|
11 | | -A fast DICOM ([PackBits](https://en.wikipedia.org/wiki/PackBits)) RLE plugin for [pylibjpeg](https://github.com/pydicom/pylibjpeg), written in Rust with a Python 3.7+ wrapper. |
| 11 | +A fast DICOM ([PackBits](https://en.wikipedia.org/wiki/PackBits)) RLE plugin for [pylibjpeg](https://github.com/pydicom/pylibjpeg), written in Rust with a Python wrapper. |
12 | 12 |
|
13 | 13 | Linux, MacOS and Windows are all supported. |
14 | 14 |
|
@@ -85,32 +85,32 @@ ds.save_as('as_rle.dcm') |
85 | 85 | ### Benchmarks |
86 | 86 | #### Decoding |
87 | 87 |
|
88 | | -Time per 1000 decodes, pydicom's default RLE handler vs. pylibjpeg-rle |
| 88 | +Time per 1000 decodes, pydicom's default RLE decoder vs. pylibjpeg-rle: |
89 | 89 |
|
90 | 90 | | Dataset | Pixels | Bytes | pydicom | pylibjpeg-rle | |
91 | 91 | | --- | --- | --- | --- | --- | |
92 | | -| OBXXXX1A_rle.dcm | 480,000 | 480,000 | 4.89 s | 0.79 s | |
93 | | -| OBXXXX1A_rle_2frame.dcm | 960,000 | 960,000 | 9.89 s | 1.65 s | |
94 | | -| SC_rgb_rle.dcm | 10,000 | 30,000 | 0.20 s | 0.15 s | |
95 | | -| SC_rgb_rle_2frame.dcm | 20,000 | 60,000 | 0.32 s | 0.18 s | |
96 | | -| MR_small_RLE.dcm | 4,096 | 8,192 | 0.35 s | 0.13 s | |
97 | | -| emri_small_RLE.dcm | 40,960 | 81,920 | 1.13 s | 0.28 s | |
98 | | -| SC_rgb_rle_16bit.dcm | 10,000 | 60,000 | 0.33 s | 0.17 s | |
99 | | -| SC_rgb_rle_16bit_2frame.dcm | 20,000 | 120,000 | 0.56 s | 0.21 s | |
100 | | -| rtdose_rle_1frame.dcm | 100 | 400 | 0.12 s | 0.13 s | |
101 | | -| rtdose_rle.dcm | 1,500 | 6,000 | 0.53 s | 0.26 s | |
102 | | -| SC_rgb_rle_32bit.dcm | 10,000 | 120,000 | 0.56 s | 0.19 s | |
103 | | -| SC_rgb_rle_32bit_2frame.dcm | 20,000 | 240,000 | 1.03 s | 0.28 s | |
| 92 | +| OBXXXX1A_rle.dcm | 480,000 | 480,000 | 5.7 s | 1.1 s | |
| 93 | +| OBXXXX1A_rle_2frame.dcm | 960,000 | 960,000 | 11.5 s | 2.1 s | |
| 94 | +| SC_rgb_rle.dcm | 10,000 | 30,000 | 0.28 s | 0.19 s | |
| 95 | +| SC_rgb_rle_2frame.dcm | 20,000 | 60,000 | 0.45 s | 0.28 s | |
| 96 | +| MR_small_RLE.dcm | 4,096 | 8,192 | 0.46 s | 0.15 s | |
| 97 | +| emri_small_RLE.dcm | 40,960 | 81,920 | 1.8 s | 0.67 s | |
| 98 | +| SC_rgb_rle_16bit.dcm | 10,000 | 60,000 | 0.48 s | 0.25 s | |
| 99 | +| SC_rgb_rle_16bit_2frame.dcm | 20,000 | 120,000 | 0.86 s | 0.39 s | |
| 100 | +| rtdose_rle_1frame.dcm | 100 | 400 | 0.16 s | 0.13 s | |
| 101 | +| rtdose_rle.dcm | 1,500 | 6,000 | 1.0 s | 0.64 s | |
| 102 | +| SC_rgb_rle_32bit.dcm | 10,000 | 120,000 | 0.82 s | 0.35 s | |
| 103 | +| SC_rgb_rle_32bit_2frame.dcm | 20,000 | 240,000 | 1.5 s | 0.60 s | |
104 | 104 |
|
105 | 105 | #### Encoding |
106 | 106 |
|
107 | | -Time per 1000 encodes, pydicom's default RLE handler vs. pylibjpeg-rle |
| 107 | +Time per 1000 encodes, pydicom's default RLE encoder vs. pylibjpeg-rle and [python-gdcm](https://github.com/tfmoraes/python-gdcm): |
108 | 108 |
|
109 | | -| Dataset | Pixels | Bytes | pydicom | pylibjpeg-rle | |
110 | | -| --- | --- | --- | --- | --- | |
111 | | -| OBXXXX1A.dcm | 480,000 | 480,000 | 30.7 s | 1.36 s | |
112 | | -| SC_rgb.dcm | 10,000 | 30,000 | 1.80 s | 0.09 s | |
113 | | -| MR_small.dcm | 4,096 | 8,192 | 2.29 s | 0.04 s | |
114 | | -| SC_rgb_16bit.dcm | 10,000 | 60,000 | 3.57 s | 0.17 s | |
115 | | -| rtdose_1frame.dcm | 100 | 400 | 0.19 s | 0.003 s | |
116 | | -| SC_rgb_32bit.dcm | 10,000 | 120,000 | 7.20 s | 0.33 s | |
| 109 | +| Dataset | Pixels | Bytes | pydicom | pylibjpeg-rle | python-gdcm | |
| 110 | +| --- | --- | --- | --- | --- | --- | |
| 111 | +| OBXXXX1A.dcm | 480,000 | 480,000 | 30.6 s | 1.4 s | 1.5 s | |
| 112 | +| SC_rgb.dcm | 10,000 | 30,000 | 1.9 s | 0.11 s | 0.21 s | |
| 113 | +| MR_small.dcm | 4,096 | 8,192 | 3.0 s | 0.11 s | 0.29 s | |
| 114 | +| SC_rgb_16bit.dcm | 10,000 | 60,000 | 3.6 s | 0.18 s | 0.28 s | |
| 115 | +| rtdose_1frame.dcm | 100 | 400 | 0.28 s | 0.04 s | 0.14 s | |
| 116 | +| SC_rgb_32bit.dcm | 10,000 | 120,000 | 7.1 s | 0.32 s | 0.43 s | |
0 commit comments