发明名称 基于JPEG文件流的图片分割方法
摘要 本发明公开了一种基于JPEG文件流的图片分割方法,步骤包括:步骤1、根据JPEG编码原理以及其数据流格式,获取图片的大小、重入间隔、采样因子信息;步骤2、根据JPEG图片大小和读出的重入间隔数计算图片的分割块数;步骤3、根据上述所分块数对JPEG图片进行分块,循环对JPEG图片进行分块读取。本发明的方法,有效的解决了尺寸各异尤其是超大图片耗费大量内存与时间,效率低下的问题,具有内存使用量小且稳定等优势。
申请公布号 CN103778631A 申请公布日期 2014.05.07
申请号 CN201410020259.2 申请日期 2014.01.16
申请人 西安理工大学 发明人 孙钦东;贺毅;王艳;张景鹏;王健
分类号 G06T7/00(2006.01)I;G06T9/00(2006.01)I 主分类号 G06T7/00(2006.01)I
代理机构 西安弘理专利事务所 61214 代理人 李娜
主权项 一种基于JPEG文件流的图片分割方法,其特点在于,按照以下步骤具体实施:步骤1:根据标准JPEG文件的数据流格式,读取JPEG图片的大小和位置、分辨率、头文件结束位置、重入间隔数以及采样因子,参照表1中的JPEG文件的数据流格式实施;步骤2:根据JPEG图片大小和读出的重入间隔数计算图片的分割块数步骤2.1)根据步骤1获取的JPEG图片中不同颜色的采样因子,即Y、Cr、Cb三个分量各自的水平采样因子和垂直采样因子,确定最小编码单元MCU的大小;步骤2.2)根据步骤1中读出的JPEG图片宽度和步骤2.1)中得出的MCU的宽度大小计算宽度下的MCU的个数C,则有:C=W/w',其中的W为图片宽度,w'为MCU的宽度,若所求C不为整数,则将C取整数部分后加1;步骤2.3)根据步骤1读出的重入间隔数和C的个数计算每个重入间隔下的高度方向MCU的个数C',则有:C'=I/C,其中的I为重入间隔大小,C为宽度下的MCU的个数,进而计算出每个重入间隔的高度h,则有:h=C'*h',其中的h'为MCU高度;步骤2.4)计算重入间隔的数目M,则有:M=H/h',其中的H为图片高度,h'为MCU高度;步骤2.5)根据表1中的标准JPEG文件的数据流格式,将MCU块的单元中的重新开始间隔设为n,则表示每n个MCU块就有一个RST<sub>n</sub>标记,第一个标记是RST<sub>0</sub>,第二个是RST<sub>1</sub>等,RST<sub>7</sub>后再从RST<sub>0</sub>重复,根据以上描述计算重入的0XFFD7的个数N',N'=M/8,若结果不为整数则取出不满足8的倍数的重入间隔数L,则有:L=M%8;步骤2.6)根据步骤2.5)计算出的重入0XFFD7的个数N'确定一个基数N,计算JPEG图片所分块数A,则有:A=N'/N,若所求块数不为整数,则计算余数M=N'%N,若余数M为8的整数倍,则A=A+1,否则A=A+2;步骤3、根据所分块数A对JPEG图片进行分块,循环对JPEG图片进行分块读取,按照三种具体情况分别进行读取。
地址 710048 陕西省西安市金花南路5号