【问题标题】:Parsing jpeg file, SOS marker解析 jpeg 文件,SOS 标记
【发布时间】:2012-01-20 15:09:30
【问题描述】:

我在解析 jpeg 文件时遇到问题。当我点击 SOS(扫描开始)标记时,有几个字节意味着我不明白。在下图中,在 SOS 标记之后,有 2 个字节用于标头长度(图片上的 Ls 部分)。但是图片上的其余数据是什么意思(例如 Ns、Cs1 等......),以及纯数据从哪里开始?

【问题讨论】:

    标签: jpeg huffman-code file-format


    【解决方案1】:

    Cs1是组件选择指标,这指的是SOF部分(其中指定了水平和垂直采样因子)

    Td1 是当前分量 (Cs1) 的 DC 表选择器

    Ta1 是当前组件 (Cs1) 的 AC 表选择器

    Ss, Se 和 Ah,Al 定义当前扫描数据的光谱选择(这用于渐进位图。在第一轮渲染中,仅显示较低的频率,在最后一轮中,显示更详细的频率)

    扫描数据在Al之后开始

    总之,

    SOS (2 bytes)
    Ls (2 Bytes)
    Ns (1 byte)
    Component Specific Parameters (Ns * 2 bytes)
    Ss (1 byte)
    Se (1 byte)
    Ah,AL (1 byte)
    ... scan data ...
    

    【讨论】:

    • 谢谢你的回答,但除了组件规格参数之外,我还需要任何其他字节来制作原始图片(我已经生成了霍夫曼表和代码,并阅读了量化表)
    • 对于一个简单的 jpeg,您需要高度、宽度、水平和垂直采样因子、霍夫曼表、量化表、重启标记(可选)、Cs1、Cs2、Cs3,当然还有扫描数据本身。对于渐进式 jpg,您将拥有多个帧
    • 我怎么知道它是渐进式的,简单 jpeg 和渐进式 jpeg 有什么区别?
    • 您所拥有的规范将比我更好地解释渐进式 jpeg - 简而言之,您有多个扫描部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    相关资源
    最近更新 更多