我目前正在为无损JPEG(DNG,CR2等)开发OpenCL-Decoder。该标准对组件的布局方式(交错与平面)的限制很少,这与相当不灵活的OpenCL内核相冲突。
特别是组件标识符的概念似乎不必要地复杂,所以我想知道我是否正确:
SOF3标头(第3帧开始,非差分,霍夫曼编码,无损(顺序))包含有关每个组件的一些信息。那些是:
i
(隐式):组件索引C_i
:组件标识符H_i
/ V_i
:水平/垂直采样系数Tq_i
:量化表目标选择器每个帧可以由包含至少一个颜色分量的编码图像数据的若干扫描组成。每个SOS标头(扫描开始)声明哪个组件将成为特定扫描的一部分。对于每个组件,先前声明的标识符之一(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?