运行 长度编码运行是否可以超越像素数据行
Is it ok for Run length encoding runs to transcend rows of pixel data
这个问题是关于用于压缩图像的 RLE 算法(在本例中是封装在 DICOM 文件中)
假设我有一个 50 x 50 像素的像素数据。它表示具有 8 位单一颜色分量的灰度图像(基本上一个字节是单个 8 位像素......这个假设只是为了简单起见,但实际上与问题无关 - 也适用于彩色图像)
要执行此图像的 运行 长度编码,"runs" 定义如下
(按照标准)
复制运行(相同字节序列)
- 编码为两字节代码 < -count + 1 >
在哪里
count = 运行 ( 2 <= count <= 128 )
中相同字节的数量
Literal 运行(不重复的字节序列)
- 编码为两字节代码
在哪里
count = 序列中的字节数 (1 <= count <= 128 )
题目:
复制运行和文字运行能否超越行和列界限?我是说。在像素数据 50X50 像素的示例中 - 如果我们有前两行白色像素。将前两行编码为 100 字节的副本 运行(-99,<白色像素的值>)是合法的 RLE - 或者它们应该分成两个 运行,每个 50 像素?
是否有任何事实上的协议在每一行上开始一个新的 运行?
根据 DICOM PS 3.5 2015-b §G.3.1 The RLE Encoder,您不应跨越行边界:
Each row of the image shall be encoded separately and not cross a row
boundary.
现在这是对编码器的限制,如果您正在实现通用的 RLE 解码器,请注意某些供应商不执行此限制。这使得在流式传输 RLE 编码 DICOM 文件(=特定区域的部分解码)时处理起来特别痛苦。
这个问题是关于用于压缩图像的 RLE 算法(在本例中是封装在 DICOM 文件中)
假设我有一个 50 x 50 像素的像素数据。它表示具有 8 位单一颜色分量的灰度图像(基本上一个字节是单个 8 位像素......这个假设只是为了简单起见,但实际上与问题无关 - 也适用于彩色图像)
要执行此图像的 运行 长度编码,"runs" 定义如下 (按照标准)
复制运行(相同字节序列) - 编码为两字节代码 < -count + 1 > 在哪里 count = 运行 ( 2 <= count <= 128 )
中相同字节的数量Literal 运行(不重复的字节序列)
- 编码为两字节代码
题目:
复制运行和文字运行能否超越行和列界限?我是说。在像素数据 50X50 像素的示例中 - 如果我们有前两行白色像素。将前两行编码为 100 字节的副本 运行(-99,<白色像素的值>)是合法的 RLE - 或者它们应该分成两个 运行,每个 50 像素?
是否有任何事实上的协议在每一行上开始一个新的 运行?
根据 DICOM PS 3.5 2015-b §G.3.1 The RLE Encoder,您不应跨越行边界:
Each row of the image shall be encoded separately and not cross a row boundary.
现在这是对编码器的限制,如果您正在实现通用的 RLE 解码器,请注意某些供应商不执行此限制。这使得在流式传输 RLE 编码 DICOM 文件(=特定区域的部分解码)时处理起来特别痛苦。