zoukankan      html  css  js  c++  java
  • MJPEG 格式分析

    MJPEG简介

    MJPEG(技术即运动静止图像(或逐帧)压缩技术)是24-bit的"true-color"影像标准。MJPEG的工作是将RGB格式的影像转换成YCrCB格式,目的是为了减少档案大小,一般约可减少1/3~1/2左右。

    文件中的标记及含义


    实例分析(参考自百度文库)

    用系统自带的画图程序画一个 32×24 的红色方块,另存为JPG文件,这个文件的全部数据如下:

    0000: FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 00 60 
    0010: 00 60 00 00 FF DB 00 43 00 08 06 06 07 06 05 08 
    0020: 07 07 07 09 09 08 0A 0C 14 0D 0C 0B 0B 0C 19 12 
    0030: 13 0F 14 1D 1A 1F 1E 1D 1A 1C 1C 20 24 2E 27 20 
    0040: 22 2C 23 1C 1C 28 37 29 2C 30 31 34 34 34 1F 27 
    0050: 39 3D 38 32 3C 2E 33 34 32 FF DB 00 43 01 09 09 
    0060: 09 0C 0B 0C 18 0D 0D 18 32 21 1C 21 32 32 32 32 
    0070: 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 
    0080: 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 
    0090: 32 32 32 32 32 32 32 32 32 32 32 32 32 32 FF C0 
    00A0: 00 11 08 00 18 00 20 03 01 22 00 02 11 01 03 11 
    00B0: 01 FF C4 00 1F 00 00 01 05 01 01 01 01 01 01 00 
    00C0: 00 00 00 00 00 00 00 01 02 03 04 05 06 07 08 09 
    00D0: 0A 0B FF C4 00 B5 10 00 02 01 03 03 02 04 03 05 
    00E0: 05 04 04 00 00 01 7D 01 02 03 00 04 11 05 12 21 
    00F0: 31 41 06 13 51 61 07 22 71 14 32 81 91 A1 08 23 
    0100: 42 B1 C1 15 52 D1 F0 24 33 62 72 82 09 0A 16 17 
    0110: 18 19 1A 25 26 27 28 29 2A 34 35 36 37 38 39 3A 
    0120: 43 44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 
    0130: 63 64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 
    0140: 83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99 
    0150: 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7 
    0160: B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5 
    0170: D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7 E8 E9 EA F1 
    0180: F2 F3 F4 F5 F6 F7 F8 F9 FA FF C4 00 1F 01 00 03 
    0190: 01 01 01 01 01 01 01 01 01 00 00 00 00 00 00 01 
    01A0: 02 03 04 05 06 07 08 09 0A 0B FF C4 00 B5 11 00 
    01B0: 02 01 02 04 04 03 04 07 05 04 04 00 01 02 77 00 
    01C0: 01 02 03 11 04 05 21 31 06 12 41 51 07 61 71 13 
    01D0: 22 32 81 08 14 42 91 A1 B1 C1 09 23 33 52 F0 15 
    01E0: 62 72 D1 0A 16 24 34 E1 25 F1 17 18 19 1A 26 27 
    01F0: 28 29 2A 35 36 37 38 39 3A 43 44 45 46 47 48 49 
    0200: 4A 53 54 55 56 57 58 59 5A 63 64 65 66 67 68 69 
    0210: 6A 73 74 75 76 77 78 79 7A 82 83 84 85 86 87 88 
    0220: 89 8A 92 93 94 95 96 97 98 99 9A A2 A3 A4 A5 A6 
    0230: A7 A8 A9 AA B2 B3 B4 B5 B6 B7 B8 B9 BA C2 C3 C4 
    0240: C5 C6 C7 C8 C9 CA D2 D3 D4 D5 D6 D7 D8 D9 DA E2 
    0250: E3 E4 E5 E6 E7 E8 E9 EA F2 F3 F4 F5 F6 F7 F8 F9 
    0260: FA FF DA 00 0C 03 01 00 02 11 03 11 00 3F 00 E2 
    0270: E8 A2 8A F9 93 F7 10 A2 8A 28 00 A2 8A 28 00 A2 
    0280: 8A 28 03 FF D9   
    

    数据解析:

    0000-0001:FF D8(文件头) 
    0002-0013:APP0段,其中: 
    0002-0003:FF E0(段标记) 
    0004-0005:00 10(段长度=16字节)  
    0006-000A:4A 46 49 46 00(“JFIF”的 ASCII码) 
    000B-000C:01 01(主次版本号=1.01)  
    000D :01(密度单位为 点数/英寸)  
    000E-0011:00 60 00 60(水平和垂直的密度均为每英寸96像素) 
    0012-0013:00 00(没有缩略图) 
    0014-0058:DQT 段,其中: 
    	0014-0015:FF DB(段标记)  
    	0016-0017:00 43(段长度=67字节) 
    	0018 :00(QT号=0,QT精度=8bit) 
    	0019-0058:QT  
    0059-009D:DQT段,其中: 
    	0059-005A:FF DB(段标记)  
    	005B-005C:00 43(段长度=67字节) 
    	005D :01(QT号=1,QT精度=8bit) 
    	005E-009D:QT  
    009E-00B0:SOF0段,其中: 
    	009E-009F:FF C0(段标记)  
    	00A0-00A1:00 11(段长度=17字节)  
    	00A2 :08(样本精度=8bit)  
    	00A3-00A6:00 18 00 20(图像高=24,图像宽=32) 
    	00A7 :03(组件数量=3,YCbCr彩色图) 
    	00A8 :01(ID号=1,这是亮度Y组件)  
    	00A9 :22(化为二进制=00100010,表明垂直和水平采样系数均=2) 
    	00AA :00(使用QT号=0的量化表) 
    	00AB :02(ID号=2,这是色度Cb组件)  
    	00AC :11(化为二进制=00010001,表明垂直和水平采样系数均=1) 
    	00AD :01(使用QT号=1的量化表)
    	00AE :03(ID号=3,这是色度Cr组件)  
    	00AF :11(化为二进制=00010001,表明垂直和水平采样系数均=1) 
    	00B0 :01(使用QT号=1的量化表) 
    00B1-00D1:DHT段,其中: 
    	00B1-00B2:FF C4(段标记)  
    	00B3-00B4:00 1F(段长度=31字节) 
    	00B5 :00(HT号=0,DC表)  
    	00B6-00C5:这16个数字之和=12,说明下面的HT值表的长度=12字节) 
    	00C6-00D1:HT值表  
    00D2-0188:DHT段,这是HT号=0的AC表,参照上面分析 
    0189-01A9:DHT段,这是HT号=1的DC表,参照上面分析 
    01AA-0260:DHT段,这是HT号=1的AC表,参照上面分析 
    0261-026E:SOS段,其中: 
    	0261-0262:FF DA(段标记)  
    	0263-0264:00 0C(段长度=12字节) 
    	0265 :03(组件数量=3)  
    	0266-0267:01 00(组件ID=1,Y组件,使用HT表号=0的AC表) 
    	0268-0269:02 11(组件ID=2,Cb组件,使用HT表号=1的DC表) 
    	026A-026B:03 11(组件ID=3,Cr组件,使用HT表号=1的DC表)  
    	026C-026E:00 3F 00(几乎每个JPG文件中这3个字节的值都相同,但用途不明) 
    026F-0282:图像压缩数据 
    0283-0284:FF D9(文件尾)
    
  • 相关阅读:
    js中的原生Ajax和JQuery中的Ajax
    this的用法
    static的特性
    时政20180807
    java compiler没有1.8怎么办
    Description Resource Path Location Type Java compiler level does not match the version of the installed Java project facet Unknown Faceted Project Problem (Java Version Mismatch)
    分词器
    [数算]有一个工程甲、乙、丙单独做,分别要48天、72天、96天完成
    一点感想
    解析Excel文件 Apache POI框架使用
  • 原文地址:https://www.cnblogs.com/GyForever1004/p/8586593.html
Copyright © 2011-2022 走看看