Opencl 什么';s JPEG'中组件标识符的用途;s帧(SOF)头的开始?
我目前正在为无损JPEG(DNG、CR2等)开发OpenCL解码器。该标准对组件的布局(交错与平面)几乎没有限制,这与相当死板的OpenCL内核相冲突 尤其是组件标识符的概念似乎过于复杂,因此我想知道我是否正确理解了它们: SOF3报头(第3帧开始,非差分,哈夫曼编码,无损(顺序))包含关于每个组件的一些信息。这些是:Opencl 什么';s JPEG'中组件标识符的用途;s帧(SOF)头的开始?,opencl,jpeg,lossless,Opencl,Jpeg,Lossless,我目前正在为无损JPEG(DNG、CR2等)开发OpenCL解码器。该标准对组件的布局(交错与平面)几乎没有限制,这与相当死板的OpenCL内核相冲突 尤其是组件标识符的概念似乎过于复杂,因此我想知道我是否正确理解了它们: SOF3报头(第3帧开始,非差分,哈夫曼编码,无损(顺序))包含关于每个组件的一些信息。这些是: i(隐式):组件的索引 C_i:组件标识符 H_i/V_i:水平/垂直采样因子 Tq\u i:量化表目标选择器 每个帧可以由包含至少一个颜色分量的编码图像数据的多个扫描组成。
(隐式):组件的索引i
:组件标识符C_i
/H_i
:水平/垂直采样因子V_i
:量化表目标选择器Tq\u i
C_i
)用作反向参考(Cs_j
,扫描组件选择器)。标准中的限制很少(B.2.3扫描头语法):
规则1:
每个Cs_j
应匹配帧头中指定的C_i
值之一,扫描头中的顺序应遵循帧头中的顺序。如果Ns
>1,则MCU中交织组件的顺序为Cs_1
第一,Cs_2
第二,等等
规则2:
Cs_j
的值应不同于Cs_1
至Cs_j-1
的值
我的问题是:
C_i
)引用的,而不是帧头中的索引(i
)引用的?除了唯一性之外,标识符是否有任何限制,或者声明R:C_0=255,G:C_1=3,B:C_2=250是否真的有效您的问题的答案可能在文件格式标准中找到。正如您所注意到的,JPEG标准是不明确的。JPEG标准甚至没有定义它使用RGB。事实上,对于顺序和渐进式JPEG,通常使用YCbCr。我在标准中没有找到解释-这就是为什么我要问这个问题。我没有把标准称为“模棱两可”——我只是希望有更多的限制和/或一些我可能错过的解释,以保持解码器的复杂性合理。RGB只是一个例子。在CR2和DNG中,JPEG分量(2或4)甚至与具有操纵图像尺寸的拜耳CFA的交替分量相对应-只有提取样本值的数量和顺序才有意义。色度解释由随附标准进行。JPEG本身是“色盲”的,标准不明确。这就是为什么有各种各样的文件格式来填补标准的空白。我不熟悉无损标准,因为无损JPEG模式很少使用。