CN106937132B - 一种图片文件处理方法 - Google Patents

一种图片文件处理方法 Download PDF

Info

Publication number
CN106937132B
CN106937132B CN201710225910.3A CN201710225910A CN106937132B CN 106937132 B CN106937132 B CN 106937132B CN 201710225910 A CN201710225910 A CN 201710225910A CN 106937132 B CN106937132 B CN 106937132B
Authority
CN
China
Prior art keywords
data
picture file
bit stream
image
stream data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710225910.3A
Other languages
English (en)
Other versions
CN106937132A (zh
Inventor
王诗涛
刘晓宇
陈家君
黄晓政
丁飘
刘海军
罗斌姬
陈新星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710225910.3A priority Critical patent/CN106937132B/zh
Priority to CN201811264752.3A priority patent/CN109005426B/zh
Publication of CN106937132A publication Critical patent/CN106937132A/zh
Priority to PCT/CN2018/079113 priority patent/WO2018184458A1/zh
Priority to TW107111918A priority patent/TWI677232B/zh
Application granted granted Critical
Publication of CN106937132B publication Critical patent/CN106937132B/zh
Priority to US16/595,008 priority patent/US20200036983A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234336Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by media transcoding, e.g. video is transformed into a slideshow of still pictures or audio is converted into text
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234318Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440236Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by media transcoding, e.g. video is transformed into a slideshow of still pictures, audio is converted into text
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
    • H04N21/8153Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics comprising still images, e.g. texture, background image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Graphics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明实施例公开了一种图片文件处理方法,其中方法包括:获取图片文件中第一图像对应的RGBA数据,并分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据;按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据;按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据;将所述第一码流数据和所述第二码流数据写入所述图片文件的码流数据段中。采用本发明,能够通过视频编码模式分别对RGB数据和透明度数据进行编码,提高了图片文件压缩率的同时能够保证图片文件的质量。

Description

一种图片文件处理方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种图片文件处理方法。
背景技术
随着移动互联网的发展,终端设备的下载流量大幅增长,用户下载流量中,图片文件流量占据很大占比。大量的图片文件也给网络传输带宽负载带来了很大的压力。如果能将图片文件大小减小,不但能提升加载速度,还能节省大量带宽以及存储成本。若想节省带宽或存储成本,一是降低图片文件质量,比如将jpeg图片文件质量由jpeg80降低到jpeg70甚至更低,但是图片文件质量也大大下降,很影响用户体验;另一种是采用更高效的图片文件压缩方法,而目前的主流图片文件有是jpeg、png、gif等,但在保证图片文件质量的前提下,它们都存在压缩效率不高的问题。
发明内容
本发明实施例所要解决的技术问题在于,提供一种图片文件处理方法,能够通过视频编码模式分别对RGB数据和透明度数据进行编码,提高了图片文件压缩率的同时能够保证图片文件的质量。
第一方面,为本发明实施例提供了一种图片文件处理方法,包括:
获取图片文件中第一图像对应的RGBA数据,并分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据,所述RGB数据为所述RGBA数据包含的颜色数据,所述透明度数据为所述RGBA数据包含的透明度数据;
按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据;
按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据;
将所述第一码流数据和所述第二码流数据写入所述图片文件的码流数据段中。
第二方面,为本发明实施例提供了一种图片文件处理方法,包括:
按照第一视频解码模式对第一码流数据进行解码,生成第一图像的RGB数据;
按照第二视频解码模式对第二码流数据进行解码,生成所述第一图像的透明度数据;
根据所述第一图像的所述RGB数据和所述透明度数据,生成所述第一图像对应的RGBA数据;
所述第一码流数据和所述第二码流数据是从图片文件的码流数据段中读取由所述第一图像生成的数据。
第三方面,为本发明实施例提供了一种图片文件处理方法,包括:
生成图片文件对应的图片头信息和帧头信息,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段。
第四方面,为本发明实施例提供了一种图片文件处理方法,包括:
解析图片文件,得到所述图片文件的图片头信息和帧头信息,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段。
第五方面,为本发明实施例提供了一种编码装置,包括:
数据获取模块,用于获取图片文件中第一图像对应的RGBA数据,并分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据,所述RGB数据为所述RGBA数据包含的颜色数据,所述透明度数据为所述RGBA数据包含的透明度数据;
第一编码模块,用于按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据;
第二编码模块,用于按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据;
数据写入模块,用于将所述第一码流数据和所述第二码流数据写入所述图片文件的码流数据段中,所述第一图像为所述图片文件中包含的图像。
第六方面,为本发明实施例提供了一种解码装置,包括:
第一解码模块,用于按照第一视频解码模式对第一码流数据进行解码,生成第一图像的RGB数据;
第二解码模块,用于按照第二视频解码模式对第二码流数据进行解码,生成所述第一图像的透明度数据;
数据生成模块,用于根据所述第一图像的所述RGB数据和所述透明度数据,生成所述第一图像对应的RGBA数据;
所述第一码流数据和所述第二码流数据是从图片文件的码流数据段中读取由所述第一图像生成的数据。
第七方面,为本发明实施例提供了一种图片文件处理装置,包括:
信息生成模块,用于生成图片文件对应的图片头信息和帧头信息,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段。
第八方面,为本发明实施例提供了一种图片文件处理方法,包括:
文件解析模块,用于解析图片文件,得到所述图片文件的图片头信息和帧头信息,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段。
第九方面,为本发明实施例提供了一种图片文件处理系统,所述图片文件处理系统包括编码装置和解码装置,所述编码装置包括处理器、存储器以及通信接口,所述存储器用于存储程序代码,所述处理器调用所述存储器中存储的程序代码执行第一方面提供给的图片文件处理方法;所述解码装置包括处理器、存储器以及通信接口,所述存储器用于存储程序代码,所述处理器调用所述存储器中存储的程序代码执行第二方面提供的图片文件处理方法。
第十方面,为本发明实施例提供了一种图片文件处理系统,所述图片文件处理系统包括第一图片文件处理装置和第二图片文件处理装置,所述第一图片文件处理装置包括处理器、存储器以及通信接口,所述存储器用于存储程序代码,所述处理器调用所述存储器中存储的程序代码执行第三方面提供的图片文件处理方法;所述第二图片文件处理装置包括处理器、存储器以及通信接口,所述存储器用于存储程序代码,所述处理器调用所述存储器中存储的程序代码执行第四方面提供的图片文件处理方法。
在本发明实施例中,在第一图像为RGBA数据的情况下,编码装置获取图片文件中第一图像对应的RGBA数据,并通过分离RGBA数据得到所述第一图像的RGB数据和透明度数据,按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据;按照第二视频编码模式对第一图像的透明度数据进行编码,生成第二码流数据;将第一码流数据和第二码流数据写入码流数据段中。这样通过采用视频编码模式编码能够提高图片文件的压缩率,另外通过对图片文件中的RGB数据和透明度数据分别进行编码,实现了在采用视频编码模式的同时保留了图片文件中的透明度数据,保证了图片文件的质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供了一种图片文件处理方法的流程示意图;
图2为本发明实施例提供了另一种图片文件处理方法的流程示意图;
图3为本发明实施例提供了另一种图片文件处理方法的示例图;
图4a为本发明实施例提供了另一种图片文件处理方法的流程示意图;
图4b为本发明实施例提供了一种RGB数据转YUV数据的示例图;
图4c为本发明实施例提供了一种透明度数据转YUV数据的示例图;
图4d为本发明实施例提供了一种透明度数据转YUV数据的示例图;
图5a为本发明实施例提供了一种图片头信息的示例图;
图5b为本发明实施例提供了一种图像特征信息数据段的示例图;
图5c为本发明实施例提供了一种用户自定义信息的示例图;
图6a为本发明实施例提供了一种静态格式的图片文件的封装示例图;
图6b为本发明实施例提供了一种动态格式的图片文件的封装示例图;
图7a为本发明实施例提供了另一种静态格式的图片文件的封装示例图;
图7b为本发明实施例提供了另一种动态格式的图片文件的封装示例图;
图8a为本发明实施例提供了一种帧头信息的示例图;
图8b为本发明实施例提供了一种图像帧头信息的示例图;
图8c为本发明实施例提供了一种透明通道帧头信息的示例图;
图9为本发明实施例提供了另一种图片文件处理方法的流程示意图;
图10为本发明实施例提供了另一种图片文件处理方法的流程示意图;
图11为本发明实施例提供了另一种图片文件处理方法的流程示意图;
图12为本发明实施例提供了另一种图片文件处理方法的流程示意图;
图13为本发明实施例提供了另一种图片文件处理方法的流程示意图;
图14为本发明实施例提供了一种编码装置的结构示意图;
图15为本发明实施例提供了另一种编码装置的结构示意图;
图16为本发明实施例提供了一种解码装置的结构示意图;
图17为本发明实施例提供了另一种解码装置的结构示意图;
图18为本发明实施例提供了一种图片文件处理装置的结构示意图;
图19为本发明实施例提供了另一种图片文件处理装置的结构示意图;
图20为本发明实施例提供了另一种图片文件处理装置的结构示意图;
图21为本发明实施例提供了另一种图片文件处理装置的结构示意图;
图22为本发明实施例提供了一种图片文件处理系统的系统架构图;
图23为本发明实施例提供了一种编码模块的示例图;
图24为本发明实施例提供了一种解码模块的示例图;
图25为本发明实施例提供了一种终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,为本发明实施例提供了一种图片文件处理方法的流程示意图,如图1所示,本发明实施例的所述方法可以包括步骤101至步骤104。
101,获取图片文件中第一图像对应的RGBA数据,并分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据。
具体的,编码装置获取图片文件中第一图像对应的RGBA数据,并分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据。其中,所述第一图像对应的数据为RGBA数据。RGBA数据是代表红色(Red)、绿色(Green)、蓝色(Blue)和透明度信息(Alpha)的色彩空间。将所述第一图像对应的RGBA数据分离为RGB数据和透明度数据。所述RGB数据为所述RGBA数据包含的颜色数据,所述透明度数据为所述RGBA数据包含的透明度数据。
举例来说,若第一图像对应的数据为RGBA数据,由于第一图像是由很多的像素点组成的,每个像素点对应一个RGBA数据,因此,由N个像素点组成的第一图像包含N个RGBA数据,其形式如下:
RGBA RGBA RGBA RGBA RGBA RGBA……RGBA
因此,可选的,所述编码装置需要对第一图像的RGBA数据进行分离,以获得第一图像的RGB数据和透明度数据,例如,将上述N个像素点组成的第一图像执行分离之后,获得N个像素点中每个像素点的RGB数据和每个像素点的透明度数据,其形式如下:
RGB RGB RGB RGB RGB RGB……RGB
A A A A A A……A
进一步的,在获得第一图像的RGB数据和透明度数据之后,分别执行步骤102和步骤103。
102,按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据。
具体的,编码装置按照第一视频编码模式对第一图像的RGB数据进行编码,生成第一码流数据。其中,所述第一图像可以为静态格式的图片文件所包含的一帧图像;或者,所述第一图像可以为动态格式的图片文件所包含的多帧图像中的任一帧图像。
103,按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据。
具体的,所述编码装置按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据。
针对步骤102和步骤103而言,所述第一视频编码模式或第二视频编码模式可以包括但不限定于帧内预测(Intra-Prediction,I)帧编码模式和帧间预测(Prediction,P)帧编码模式。其中,I帧表示关键帧,对I帧数据解码时只需要本帧数据就可以重构完整图像;P帧需要参考前面已编码帧,才可以重构完整图像。本发明实施例对静态格式的图片文件或动态格式的图片文件中各帧图像所采用的视频编码模式不做限定。
举例来说,对于静态格式的图片文件而言,由于静态格式的图片文件只包含一帧图像,在本发明实施例中即为第一图像,因此对第一图像的RGB数据和透明度数据进行I帧编码。又举例来说,对于动态格式的图片文件而言,由于动态格式的图片文件一般包含至少两帧图像,在本发明实施例中,对于动态格式的图片文件中的第一帧图像的RGB数据和透明度数据进行I帧编码;对于非第一帧图像的RGB数据和透明度数据可以进行I帧编码,可以进行P帧编码。
104,将所述第一码流数据和所述第二码流数据写入所述图片文件的码流数据段中。
具体的,所述编码装置将由第一图像的RGB数据生成的第一码流数据,以及由第一图像的透明度数据生成的第二码流数据,写入图片文件的码流数据段中。其中,所述第一码流数据和所述第二码流数据为第一图像对应的完整的码流数据,即通过对第一码流数据和第二码流数据进行解码能够获得第一图像的RGBA数据。
需要说明的是,步骤102和步骤103在执行过程中并无先后顺序之分。
又一需要说明的是,本发明实施例中编码之前输入的RGBA数据可以是通过对各种格式的图片文件解码获得的,其中图片文件的格式可以为联合图像专家小组(JointPhotographic Experts Group,JPEG)、图像文件格式(Bitmap,BMP)、可移植网络图形格式(Portable Network Graphic Format,PNG)、位图动画格式(Animated Portable NetworkGraphics,APNG)、图像互换格式(Graphics Interchange Format,GIF)等格式中的任一种,本发明实施例对编码之前的图片文件的格式不做限定。
又一需要说明的是,本发明实施例中的第一图像为包含RGB数据和透明度数据的RGBA数据,而对于第一图像仅包含RGB数据的情况,所述编码装置可以在获取到第一图像对应的RGB数据之后对RGB数据执行步骤102,以生成第一码流数据,并将第一码流数据确定为第一图像对应的完整的码流数据,这样依旧可以通过视频编码模式对仅包含RGB数据的第一图像进行编码,以实现对第一图像的压缩。
在本发明实施例中,在第一图像为RGBA数据的情况下,编码装置获取图片文件中第一图像对应的RGBA数据,并通过分离RGBA数据得到所述第一图像的RGB数据和透明度数据,按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据;按照第二视频编码模式对第一图像的透明度数据进行编码,生成第二码流数据;将第一码流数据和第二码流数据写入码流数据段中。这样通过采用视频编码模式编码能够提高图片文件的压缩率,另外通过对图片文件中的RGB数据和透明度数据分别进行编码,实现了在采用视频编码模式的同时保留了图片文件中的透明度数据,保证了图片文件的质量。
请参见图2,为本发明实施例提供的另一种图片文件处理方法的流程示意图,如图2所示,本发明实施例的所述方法可以包括步骤201至步骤207。本发明实施例是以动态格式的图片文件进行说明的,请参见以下具体介绍。
201,获取动态格式的图片文件中第k帧对应的第一图像所对应的RGBA数据,并分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据。
具体的,编码装置获取待编码的动态格式的图片文件,该动态格式的图片文件中包含至少两帧图像,所述编码装置获取该动态格式的图片文件中的第k帧对应的第一图像。其中,第k帧可以为所述至少两帧图像中的任意一帧,k为大于0的正整数。
可选的,所述编码装置可以按照所述动态格式的图片文件中每一帧对应的图像的先后顺序进行编码,即可以先获取所述动态格式的图片文件的第一帧对应的图像。本发明实施例对所述编码装置获取所述动态格式的图片文件所包含的图像的顺序不做限定。
进一步,若第一图像对应的数据为RGBA数据,RGBA数据是代表Red、Green、Blue和Alpha的色彩空间。将所述第一图像对应的RGBA数据分离为RGB数据和透明度数据。具体是:由于第一图像是由很多的像素点组成的,每个像素点对应一个RGBA数据,因此,由N个像素点组成的第一图像包含N个RGBA数据,其形式如下:
RGBA RGBA RGBA RGBA RGBA RGBA……RGBA
因此,所述编码装置需要对第一图像的RGBA数据进行分离,以获得第一图像的RGB数据和透明度数据,例如,将上述N个像素点组成的第一图像执行分离之后,获得N个像素点中每个像素点的RGB数据和每个像素点的透明度数据,其形式如下:
RGB RGB RGB RGB RGB RGB……RGB
A A A A A A……A
进一步的,在获得第一图像的RGB数据和透明度数据之后,分别执行步骤202和步骤203。
202,按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据。
具体的,所述编码装置按照第一视频编码模式对第一图像的RGB数据进行编码。所述RGB数据是从所述第一图像对应的RGBA数据中分离得到的颜色数据。
203,按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据。
具体的,所述编码装置按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据。其中,所述透明度数据从所述第一图像对应的RGBA数据中分离得到的。
需要说明的是,步骤202和步骤203在执行过程中并无先后顺序之分。
204,将所述第一码流数据和所述第二码流数据写入所述图片文件的码流数据段中。
具体的,所述编码装置将由第一图像的RGB数据生成的第一码流数据,以及由第一图像的透明度数据生成的第二码流数据,写入图片文件的码流数据段中。其中,所述第一码流数据和所述第二码流数据为第一图像对应的完整的码流数据,即通过对第一码流数据和第二码流数据进行解码能够获得第一图像的RGBA数据。
205,判断第k帧对应第一图像是否为所述动态格式的图片文件中的最后一帧。
具体的,所述编码装置判断第k帧对应第一图像是否为所述动态格式的图片文件中最后一帧,若为最后一帧,则表示对已完成对动态格式的图片文件的编码,继而执行步骤207;若不是最后一帧,则表示该动态格式的图片文件中还存在未被编码的图像,进而执行步骤206。
206,若否,则更新k,并触发执行获取动态格式的图片文件中第k帧对应的第一图像所对应的RGBA数据,并分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据。
具体的,所述编码装置判断第k帧对应的第一图像不是所述动态格式的图片文件中的最后一帧,则对下一帧对应的图像进行编码,即采用(k+1)的数值更新k。在将k更新之后,触发执行获取动态格式的图片文件中第k帧对应的第一图像所对应的RGBA数据,并分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据。
可以理解的是,采用更新的k所获取的图像与k更新之前所获取的图像并非是同一帧对应的图像,为了便于说明,这里将k更新之前的k帧对应的图像设为第一图像,将k更新之后的k帧对应的图像设为第二图像,以便于区别。
在对第二图像执行步骤202至步骤204时,可选的,第二图像对应的RGBA数据中包含RGB数据和透明度数据,所述编码装置按照第三视频编码模式对第二图像的RGB数据进行编码,生成第三码流数据;按照第四视频编码模式对所述第二图像的透明度数据进行编码,生成第四码流数据;并将所述第三码流数据和所述第四码流数据写入图片文件的码流数据段中。
针对步骤202和步骤203而言,上述涉及到的所述第一视频编码模式、第二视频编码模式、第三视频编码模式或第四视频编码模式可以包括但不限定于I帧编码模式和P帧编码模式。其中,I帧表示关键帧,对I帧数据解码时只需要本帧数据就可以重构完整图像;P帧需要参考前面已编码帧,才可以重构完整图像。本发明实施例对动态格式的图片文件中各帧图像中RGB数据和透明度数据所采用的视频编码模式不做限定。例如,同一帧图像中的RGB数据和透明度数据可以按照不同的视频编码模式进行编码;或者,可以按照相同的视频编码模式进行编码。不同帧图像中的RGB数据可以按照不同的视频编码模式进行编码;或者,可以按照相同的视频编码模式进行编码。不同帧图像中的透明度数据可以按照不同的视频编码模式进行编码;或者,可以按照相同的视频编码模式进行编码。
进一步需要说明的是,所述动态格式的图片文件包含有多个码流数据段,可选的,一帧图像对应一个码流数据段;或者,一个码流数据对应一个码流数据段。因此,所述第一码流数据和第二码流数据写入的码流数据段与所述第三码流数据和第四码流数据写入的码流数据段不同。
举例来说,请一并参见图3,为本发明实施例提供的一种图片文件处理方法的示例图。如图3所示,图3是针对动态格式的图片文件进行说明的,该动态格式的图片文件中包含多帧图像,例如,第1帧对应的图像、第2帧对应的图像、第3帧对应的图像、第4帧对应的图像等等,其中,每一帧对应的图像中包含RGB数据和透明度数据。可行的方案中,所述编码装置可以对第1帧对应的图像中的RGB数据和透明度数据分别按照I帧编码模式进行编码、对第2帧、第3帧、第4帧等其他帧分别对应的图像按照P帧编码模式进行编码,例如,第2帧对应图像中的RGB数据按照P帧编码模式进行编码,需要参考第1帧对应图像中的RGB数据,第2帧对应图像中的透明度数据按照P帧编码模式进行编码,需要参考第1帧对应图像中的透明度数据,以此类推,第3帧、第4帧等其他帧可以参考第2帧采用P帧编码模式进行编码。
需要说明的是,上述仅为动态格式的图片文件中以一种可选的编码方案;或者,所述编码装置还可以对第1帧、第2帧、第3帧、第4帧等其他帧均采用I帧编码模式进行编码。
207,若是,则完成对所述动态格式的图片文件的编码。
具体的,所述编码装置判断第k帧对应第一图像为所述动态格式的图片文件中最后一帧,则表示完成对该动态格式的图片文件编码。
可选的,所述编码装置可以对每一帧对应的图像所生成的码流数据生成帧头信息,并对所述动态格式的图片文件生成图片头信息,这样可以通过图片头信息确定该图片文件是否包含透明度数据,进而能够确定解码过程中是只获取由RGB数据生成的第一码流数据,还是获取由RGB数据生成的第一码流数据和由透明度数据生成的第二码流数据。
需要说明的是,本发明实施例的动态格式的图片文件中每一帧对应的图像是包含RGB数据和透明度数据的RGBA数据的,而对于动态格式的图片文件中每一帧对应的图像仅包含RGB数据的情况,所述编码装置可以对每一帧图像的RGB数据执行步骤202,以生成第一码流数据以及将所述第一码流数据写入图片文件的码流数据段中,最后将第一码流数据确定为第一图像对应的完整的码流数据,这样依旧可以通过视频编码模式对仅包含RGB数据的第一图像进行编码,以实现对第一图像的压缩。
又一需要说明的是,本发明实施例中编码之前输入的RGBA数据可以是通过对各种动态格式的图片文件解码获得的,其中图片文件的动态格式可以为APNG、GIF等格式中的任一种,本发明实施例对编码之前的图片文件的动态格式不做限定。
在本发明实施例中,在动态格式的图片文件中的第一图像为RGBA数据的情况下,编码装置获取图片文件中第一图像对应的RGBA数据,并通过分离RGBA数据得到所述第一图像的RGB数据和透明度数据,按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据;按照第二视频编码模式对第一图像的透明度数据进行编码,生成第二码流数据;将第一码流数据和第二码流数据写入码流数据段中。另外,对于动态格式的图片文件中每一帧对应的图像均可以按照第一图像的方式实现编码。这样通过采用视频编码模式编码能够提高图片文件的压缩率,另外通过对图片文件中的RGB数据和透明度数据分别进行编码,实现了在采用视频编码模式的同时保留了图片文件中的透明度数据,保证了图片文件的质量。
请参见图4a,为本发明实施例提供的另一种图片文件处理方法的流程示意图,如图4a所示,本发明实施例的所述方法可以包括步骤301至步骤307。
301,获取图片文件中第一图像对应的RGBA数据,并分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据。
具体的,编码装置获取图片文件中第一图像对应的RGBA数据,并分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据。其中,所述第一图像对应的数据为RGBA数据。RGBA数据是代表Red、Green、Blue和Alpha的色彩空间。将所述第一图像对应的RGBA数据分离为RGB数据和透明度数据。所述RGB数据为所述RGBA数据包含的颜色数据,所述透明度数据为所述RGBA数据包含的透明度数据。
举例来说,若第一图像对应的数据为RGBA数据,由于第一图像是由很多的像素点组成的,每个像素点对应一个RGBA数据,因此,由N个像素点组成的第一图像包含N个RGBA数据,其形式如下:
RGBA RGBA RGBA RGBA RGBA RGBA……RGBA
因此,可选的,所述编码装置需要对第一图像的RGBA数据进行分离,以获得第一图像的RGB数据和透明度数据,例如,将上述N个像素点组成的第一图像执行分离之后,获得N个像素点中每个像素点的RGB数据和每个像素点的透明度数据,其形式如下:
RGB RGB RGB RGB RGB RGB……RGB
A A A A A A……A
进一步的,在获得第一图像的RGB数据和透明度数据之后,分别执行步骤302和步骤303。
302,按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据。
具体的,编码装置按照第一视频编码模式对第一图像的RGB数据进行编码,其中,所述第一图像可以为静态格式的图片文件所包含的一帧图像;或者,所述第一图像可以为动态格式的图片文件所包含的多帧图像中的任一帧图像。
可选的,所述编码装置按照第一视频编码模式对第一图像的RGB数据进行编码并生成第一码流数据的具体过程是:将所述第一图像的RGB数据转换为第一YUV数据;按照第一视频编码模式对所述第一YUV数据进行编码,生成第一码流数据。可行的方案中,编码装置可以按照预设的YUV颜色空间格式将RGB数据转换为第一YUV数据,例如,预设的YUV颜色空间格式可以包括但不限定于YUV420、YUV422和YUV444。
303,按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据。
具体的,所述编码装置按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据。
针对步骤302的所述第一视频编码模式或步骤303的第二视频编码模式可以包括但不限定于I帧编码模式和P帧编码模式。其中,I帧表示关键帧,对I帧数据解码时只需要本帧数据就可以重构完整图像;P帧需要参考前面已编码帧,才可以重构完整图像。本发明实施例对静态格式的图片文件或动态格式的图片文件中各帧图像所采用的视频编码模式不做限定。
举例来说,对于静态格式的图片文件而言,由于静态格式的图片文件只包含一帧图像,在本发明实施例中即为第一图像,因此对第一图像的RGB数据和透明度数据进行I帧编码。又举例来说,对于动态格式的图片文件而言,由于动态格式的图片文件包含至少两帧图像,在本发明实施例中,对于动态格式的图片文件中的第一帧图像的RGB数据和透明度数据进行I帧编码;对于非第一帧图像的RGB数据和透明度数据可以进行I帧编码,或者也可以进行P帧编码。
可选的,所述编码装置按照第二视频编码模式对所述第一图像的透明度数据进行编码并生成第二码流数据的具体过程为:将所述第一图像的透明度数据转换为第二YUV数据;按照第二视频编码模式对所述第二YUV数据进行编码,生成第二码流数据。
其中,所述编码装置将所述第一图像的透明度数据转换为第二YUV数据具体是:一种可行的方案中,所述编码装置将所述第一图像的透明度数据设定为第二YUV数据中的Y分量,且不设定所述第二YUV数据中的UV分量;或者,另一种可行的方案中,将所述第一图像的透明度数据设定为第二YUV数据中的Y分量,且将所述第二YUV数据中的UV分量设定为预设数据;可行的方案中,所述编码装置可以按照预设的YUV颜色空间格式将透明度数据转换为第二YUV数据,例如,预设的YUV颜色空间格式可以包括但不限定于YUV400、YUV420、YUV422和YUV444,并可以按照该YUV颜色空间格式设定UV分量。
进一步的,若第一图像对应的数据为RGBA数据,所述编码装置通过对第一图像的RGBA数据的分离,获得第一图像的RGB数据和透明度数据。接下来对将第一图像的RGB数据转换为第一YUV数据和将第一图像的透明度数据转换为第二YUV数据进行举例说明,以第一图像包含4个像素点为例进行说明,第一图像的RGB数据为这4个像素点的RGB数据,第一图像的透明度数据为这4个像素点的透明度数据,将第一图像的RGB数据和透明度数据进行转换具体过程请参见图4b至图4d的举例说明。
请参见图4b所示,为本发明实施例提供了一种RGB数据转YUV数据的示例图。如图4b所示,RGB数据包含4个像素点的RGB数据,按照色彩空间转换模式对4个像素点的RGB数据进行转换,若YUV颜色空间格式为YUV444的情况,则按照相应的转换公式一个像素点的RGB数据能转换成一个YUV数据,这样4个像素点的RGB数据转换成了4个YUV数据,第一YUV数据包含这个4个YUV数据。其中,不同YUV颜色空间格式对应的转换公式不同。
进一步的,请参见图4c和图4d,分别为本发明实施例提供了一种透明度数据转YUV数据的示例图。首先,如图4c和4d所示,透明度数据包含4个像素点的A数据,其中A表示透明度,将每个像素点的透明度数据设定为Y分量;接着确定YUV颜色空间格式,以确定第二YUV数据。
若YUV颜色空间格式为YUV400,则不设置UV分量,并将4个像素点的Y分量确定为所述第一图像的第二YUV数据(如图4c所示)。
若YUV颜色空间格式为除YUV400之外的其他存在UV分量的格式,则将UV分量设定为预设数据,如图4d所示,图4d中是以YUV444的颜色空间格式进行转换的,即每一个像素点设置一个为预设数据的U分量和V分量。另外,还比如,YUV颜色空间格式为YUV422,则对每两个像素点设置一个为预设数据的U分量和V分量;或者,YUV颜色空间格式为YUV420,则对每四个像素点设置一个为预设数据的U分量和V分量。其他格式以此类推,在此不再赘述;最后将4个像素点的YUV数据确定为所述第一图像的第二YUV数据。
需要说明的是,步骤302和步骤303在执行过程中并无先后顺序之分。
304,将所述第一码流数据和所述第二码流数据写入所述图片文件的码流数据段中。
具体的,所述编码装置将由第一图像的RGB数据生成的第一码流数据,以及由第一图像的透明度数据生成的第二码流数据,写入图片文件的码流数据段中。所述第一码流数据和所述第二码流数据为第一图像对应的完整的码流数据,即通过对第一码流数据和第二码流数据进行解码能够获得第一图像的RGBA数据。
305,生成所述图片文件对应的图片头信息和帧头信息。
具体的,所述编码装置生成所述图片文件对应的图片头信息和帧头信息。其中,该图片文件可以为静态格式的图片文件,即仅包含该第一图像;或者,该图片文件为动态格式的图片文件,即包含所述第一图像以及其他图像。不论该图片文件是静态格式的图片文件还是动态格式的图片文件,所述编码装置都需要生成该图片文件对应的图片头信息。其中,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,以使解码装置通过确定是否包含透明度数据确定如何获取码流数据以及获取到的码流数据是否包含由透明度数据生成的第二码流数据。
进一步的,所述帧头信息用于指示所述图片文件的码流数据段,以使解码装置通过帧头信息确定能够获取到码流数据的码流数据段,进而实现对码流数据的解码。
需要说明的是,本发明实施例对步骤305生成所述图片文件对应的图片头信息和帧头信息与步骤302、步骤303、步骤304的先后顺序不做限定。
306,将所述图片头信息写入所述图片文件的图片头信息数据段中。
具体的,所述编码装置将所述图片头信息写入所述图片文件的图片头信息数据段中。其中,所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
可选的,所述图片头信息还可以包括用户自定义信息,所述用户自定义信息包括所述用户自定义信息起始码、所述用户自定义信息的长度和用户自定义信息;所述用户自定义信息包括可交换图像文件(Exchangeable Image File,EXIF)信息,例如拍摄时的光圈、快门、白平衡、国际标准化组织(International Organization for Standardization,ISO)、焦距、日期时间等和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统数据、缩略图等,用户自定义信息包含了可以由用户自定义而设定的信息,本发明实施例对此不做限定。
其中,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。可选的,所述图像特征信息还可以包括所述图片文件采用的YUV颜色空间格式。
举例来说,请参见图5a,为本发明实施例提供的一种图片头信息的示例图。如图5a所示,一图片文件的图片头信息由图像序列头数据段、图像特征信息数据段、用户自定义信息数据段三部分组成。
其中,图像序列头数据段包括图像文件标识符、解码器标识符、版本号和所述图像特征信息。
图像文件标识符(image_identifier):用来表示该图片文件的类型,可以通过预设标识来表示,例如图像文件标识符占用4个字节,比如该图像文件标识符为位串‘AVSP’,用来标识这是一个AVS图片文件。
解码器标识符:用来表示对当前的图片文件进行压缩所采用的编解码标准的标识,例如,采用4字节表示。或者也可以解释为表示当前图片解码采用的解码器内核型号,当采用AVS2内核时,code_id为‘AVS2’。
版本号:用来表示压缩标准标识指示的编解码标准的档次,例如,档次可以包括基本档次(Baseline Profile)、主要档次(Main Profile)、扩展档次(Extended Profile)等等。例如,采用8位无符号数标识,如表一所示,给出了版本号的类型。
表一
版本号的取值 档次
‘B’ Base Profile
‘M’ Main Profile
‘H’ High Profile
请一并参见图5b,为本发明实施例提供了一种图像特征信息数据段的示例图,如图5b所示,图像特征信息数据段包括图像特征信息起始码、图像特征信息数据段长度、是否有alpha通道标志、动态图像标志、YUV颜色空间格式、无损模式标识、YUV颜色空间值域标志、保留位、图像宽度、图像宽度和帧数。请参见以下具体介绍。
图像特征信息起始码:是用于指示图片文件的图像特征信息数据段起始位置的字段,例如,采用1字节表示,并采用字段D0。
图像特征信息数据段长度:表示图像特征信息数据段所占的字节数,例如,采用2字节表示,比如,对于动态格式的图片文件而言,图5b中的图像特征信息数据段一共有9个字节,可以填写9;对于静态格式的图片文件而言图5b中的图像特征信息数据段一共有12个字节,可以填写12。
图像透明度标志:用于表示该图片文件中的图像是否携带有透明度数据。例如,采用一个比特表示,0表示该图片文件中的图像没有携带透明度数据,1表示该图片文件中的图像携带有透明度数据;可以理解的是,是否有alpha通道与是否包含透明度数据是代表相同的意思。
动态图像标志:用于表示所述图片文件是否是动态格式的图片文件和是否为静态格式的图片文件,例如,采用一个比特表示,0表示是静态格式的图片文件,1表示是动态格式的图片文件。
YUV颜色空间格式:用于指示图片文件的RGB数据转换为YUV数据所采用的色度分量格式,例如,采用两个比特表示,如下表二所示。
表二
YUV_颜色空间格式的值 YUV颜色空间格式
00 4:0:0
01 4:2:0
10 4:2:2(保留)
11 4:4:4
无损模式标志:用于表示是否为无损编码或是否为有损压缩,例如,采用一个比特表示,0表示有损编码,1表示无损编码,其中,对于图片文件中的RGB数据直接采用视频编码模式进行编码,则表示是无损编码;对于图片文件中的RGB数据采用先转换为YUV数据,再对YUV数据进行编码,则表示是有损编码。
YUV颜色空间值域标志:用于表示YUV颜色空间值域范围符合ITU-R BT.601标准。例如采用一个比特表示,1表示Y分量的值域范围为[16,235],UV分量的值域范围为[16,240];0表示Y分量和UV分量的值域范围为[0,255]。
保留位:10位无符号整数。将字节中的多余比特位设定为保留比特位。
图像宽度:用来表示图片文件中每个图像的宽度,例如,若图像宽度范围在0-65535之间,可以通过2个字节表示。
图像高度:用来表示图片文件中每个图像的高度,例如,又或者,若图像宽度范围在0-65535之间,可以通过2个字节表示。
图像帧数:只有在动态格式的图片文件情况下才会存在,用来表示图片文件所包含的总帧数,例如,采用3字节表示。
请一并参见图5c,为本发明实施例提供了一种用户自定义信息数据段的示例图,如图5c所示,具体参见以下详细介绍。
用户自定义信息起始码:是用于指示用户自定义信息起始位置的字段,例如,采用1字节表示,如,位串‘0x000001BC’标识用户自定义信息的开始。
用户自定义信息数据段长度:表示当前用户自定义信息的数据长度,例如,采用2字节表示。
用户自定义信息:用来写入用户需要传入的数据,例如EXIF等信息,占用的字节数可以根据用户自定义信息的长度来确定。
需要说明的是,以上仅为举例说明,本发明实施例对图片头信息包含的各个信息的名称、各个信息在图片头信息中的位置以及表示各个信息所占用的比特数不做限定。
307,将所述帧头信息写入所述图片文件的帧头信息数据段中。
具体的,所述编码装置将所述帧头信息写入所述图片文件的帧头信息数据段中。
一种可选的方案中,图片文件的一帧图像对应一个帧头信息。具体的,针对图片文件为静态格式的图片文件的情况,静态格式的图片文件包含一帧图像,即为第一图像,因此,该静态格式的图片文件中包含一个帧头信息。针对图片文件为动态格式的图片文件的情况,动态格式的图片文件一般包含至少两帧图像,对于其中的每一帧图像均增加一个帧头信息。
请参见图6a,为本发明实施例提供了一种静态格式的图片文件的封装示例图。如图6a所示,该图片文件包含图片头信息数据段、帧头信息数据段、码流数据段。一静态格式的图片文件包含图片头信息、帧头信息和表示图片文件的图像的码流数据,这里的码流数据包含由该帧图像的RGB数据生成的第一码流数据和由该帧图像的透明度数据生成的第二码流数据。将各个信息或数据写入对应的数据段中,例如,将图片头信息写入图片头信息数据段;将帧头信息写入帧头信息数据段;将码流数据写入码流数据段。需要说明的是,由于码流数据段中的第一码流数据和第二码流数据是通过视频编码模式得到的,因此码流数据段可以采用视频帧数据段来描述,这样在视频帧数据段中写入的信息为对该静态格式的图像文件进行编码得到的第一码流数据和第二码流数据。
请参见图6b,为本发明实施例提供了一种动态格式的图片文件的封装示例图。如图6b所示,该图片文件包含图片头信息数据段、多个帧头信息数据段以及多个码流数据段。一动态格式的图片文件包含图片头信息、多个帧头信息和表示多帧图像的码流数据。其中,一帧图像对应的码流数据对应一个帧头信息,其中,表示每一帧图像的码流数据包含由该帧图像的RGB数据生成的第一码流数据和由该帧图像的透明度数据生成的第二码流数据。将各个信息或数据写入对应的数据段中,例如,将图片头信息写入图片头信息数据段;将第1帧对应的帧头信息写入第1帧对应的帧头信息数据段;将第1帧对应的码流数据写入第1帧对应的码流数据段,以此类推,实现将多帧对应的帧头信息写入各个帧对应的帧头信息段中,以及将多帧对应的码流数据写入各个帧对应的码流数据段中。需要说明的是,由于码流数据段中的第一码流数据和第二码流数据是通过视频编码模式得到的,因此码流数据段可以采用视频帧数据段来描述,这样在每一帧图像对应的视频帧数据段中写入的信息为对该该帧图像进行编码得到的第一码流数据第二码流数据。
另一种可行的方案中,图片文件的一帧图像中的一个码流数据对应一个帧头信息。具体的,针对静态格式的图片文件的情况,静态格式的图片文件包含一帧图像,即为第一图像,包含透明度数据的第一图像对应于两个码流数据,分别为第一码流数据和第二码流数据,因此,该静态格式的图片文件中第一码流数据对应一个帧头信息、第二码流数据对应另一个帧头信息。针对动态格式的图片文件的情况,动态格式的图片文件包含至少两帧图像,包含透明度数据的每一帧图像对应于两个码流数据,分别为第一码流信息和第二码流信息,并对每一帧图像的第一码流信息和第二码流信息各增加一个帧头信息。
请参见图7a,为本发明实施例提供了另一种静态格式的图片文件的封装示例图。为了区分第一码流数据对应的帧头信息和第二码流数据对应的帧头信息,在这里用图像帧头信息和透明通道帧头信息进行区分,其中,由RGB数据生成的第一码流数据与图像帧头信息对应,由透明度数据生成的第二码流数据与透明通道帧头信息对应。如图7a所示,该图片文件包含图片头信息数据段、第一码流数据对应的图像帧头信息数据段、第一码流数据段、第二码流数据对应的透明通道帧头信息数据段、第二码流数据段。一静态格式的图片文件包含图片头信息、两个帧头信息和表示一帧图像的第一码流数据和第二码流数据,其中,第一码流数据是由该帧图像的RGB数据生成,第二码流数据是由该帧图像的透明度数据生成的。将各个信息或数据写入对应的数据段中,例如,将图片头信息写入图片头信息数据段;将第一码流数据对应的图像帧头信息写入第一码流数据对应的图像帧头信息数据段;将第一码流数据写入第一码流数据段;将第二码流数据对应的透明通道帧头信息写入第二码流数据对应的透明通道帧头信息数据段;将第二码流数据写入第二码流数据段。可选的,第一码流数据对应的图像帧头信息数据段和第一码流数据段可以设定为图像帧数据段,第二码流数据对应的透明通道帧头信息数据段和第二码流数据段可以设定为透明通道帧数据段,本发明实施例对各个数据段的名称和各个数据段相结合后的数据段名称不做限定。
可选的,对于图片文件的一帧图像中的一个码流数据对应一个帧头信息的情况,所述编码装置可以按照预设的顺序来排列第一码流数据对应的帧头信息数据段、第一码流数据段、第二码流数据对应的帧头信息数据段和第二码流数据段;例如,对于一帧图像的第一码流数据段、第二码流数据段和各个码流数据对应的帧头信息数据段,可以按照第一码流数据对应的帧头信息数据段、第一码流数据段、第二码流数据对应的帧头信息数据段、第二码流数据段进行排列,这样在解码装置解码的过程中,能够确定表示该帧图像的两个帧头信息和两个帧头指示的码流数据段中,哪一个能够获取到第一码流数据,哪一个能获取到第二码流数据。可以理解的是,这里的第一码流数据是指由RGB数据生成的,第二码流数据是指由透明度数据生成的。
请参见图7b,为本发明实施例提供了另一种动态格式的图片文件的封装示例图。为了区分第一码流数据对应的帧头信息和第二码流数据对应的帧头信息,在这里用图像帧头信息和透明通道帧头信息进行区分,其中,由RGB数据生成的第一码流数据与图像帧头信息对应,由透明度数据生成的第二码流数据与透明通道帧头信息对应。如图7b所示,该图片文件包含图片头信息数据段、多个帧头信息数据段以及多个码流数据段。一动态格式的图片文件包含图片头信息、多个帧头信息和表示多帧图像的码流数据。其中,一帧图像对应的第一码流数据和第二码流数据分别对应一个帧头信息,其中,第一码流数据是由该帧图像的RGB数据生成,第二码流数据是由该帧图像的透明度数据生成的。将各个信息或数据写入对应的数据段中。例如,将图片头信息写入图片头信息数据段;将第1帧中第一码流数据对应的图像帧头信息写入第1帧中的第一码流数据对应的图像帧头信息数据段;将第1帧对应的第一码流数据写入第1帧中的第一码流数据段;将第1帧中第二码流数据对应的透明通道帧头信息写入第1帧中的第二码流数据对应的透明通道帧头信息数据段;将第1帧对应的第二码流数据写入第1帧中的第二码流数据段,以此类推,实现将多帧中各个码流数据对应的帧头信息写入各个帧中相应码流数据对应的帧头信息数据段中,以及将多帧中的各个码流数据写入各个帧中相应码流数据对应的码流数据段中。可选的,第一码流数据对应的图像帧头信息数据段和第一码流数据段可以设定为图像帧数据段,第二码流数据对应的透明通道帧头信息数据段和第二码流数据段可以设定为透明通道帧数据段,本发明实施例对各个数据段的名称和各个数据段相结合后的数据段名称不做限定。
进一步的,所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。可选的,所述帧头信息还包括所述帧头信息数据段长度和所述帧头信息所指示的码流数据段的码流数据段长度中的至少一项。进一步,可选的,所述帧头信息还包括区别于其他帧图像的特有信息,如编码区域信息、透明度信息、颜色表等等,本发明实施例对此不做限定。
对于将一帧图像编码后得到的第一码流数据和第二码流数据对应一个帧头信息的情况,所述帧头信息可以参考图8a所示的帧头信息的示例图,如图8a所示,请参见以下具体介绍。
帧头信息起始码:是用于指示帧头信息起始位置的字段,例如,采用1字节表示。
帧头信息数据段长度:表示帧头信息的长度,例如,采用1字节表示,该信息是可选信息。
码流数据段长度:表示所述帧头信息所指示的码流数据段的码流长度,其中,对于第一码流数据和第二码流数据对应于一个帧头信息的情况,则这里的码流长度为第一码流数据的长度和第二码流数据的长度的总和,该信息是可选信息。
延迟时间信息:只有当图片文件为动态格式的图片文件时才存在,表示显示当前帧对应的图像与显示下一帧对应的图像的时间差,例如,采用1字节表示。
需要说明的是,以上仅为举例说明,本发明实施例对帧头信息包含的各个信息的名称、各个信息在帧头信息中的位置以及表示各个信息所占用的比特数不做限定。
对于第一码流数据和第二码流数据分别对应一个帧头信息的情况,帧头信息分为图像帧头信息和透明通道帧头信息,请一并参见图8b和图8c。
如图8b所示,为本发明实施例提供了一种图像帧头信息的示例图。所述图像帧头信息包括所述图像帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。可选的,所述图像帧头信息还包括所述图像帧头信息数据段长度和所述图像帧头信息所指示的第一码流数据段的第一码流数据段长度中的至少一项。进一步,可选的,所述图像帧头信息还包括区别于其他帧图像的特有信息,如编码区域信息、透明度信息、颜色表等等,本发明实施例对此不做限定。
图像帧头信息起始码:是用于指示图像帧头信息起始位置的字段,例如,采用1字节表示,如位串‘0x000001BA’。
图像帧头信息数据段长度:表示图像帧头信息的长度,例如,采用1字节表示,该信息是可选信息。
第一码流数据段长度:表示所述图像帧头信息所指示的第一码流数据段的码流长度,该信息是可选信息。
延迟时间信息:只有当图片文件为动态格式的图片文件时才存在,表示显示当前帧对应的图像与显示下一帧对应的图像的时间差,例如,采用1字节表示。
如图8c所示,为本发明实施例提供了一种透明通道帧头信息的示例图。所述透明通道帧头信息包括所述透明通道帧头信息起始码。可选的,所述透明通道帧头信息还包括所述透明通道帧头信息数据段长度、所述透明通道帧头信息所指示的第二码流数据段的第二码流数据段长度和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息中的至少一项。进一步,可选的,所述透明通道帧头信息还包括区别于其他帧图像的特有信息,如编码区域信息、透明度信息、颜色表等等,本发明实施例对此不做限定。
透明通道帧头信息起始码:是用于指示透明通道帧头信息起始位置的字段,例如,采用1字节表示,如位串‘0x000001BB’。
透明通道帧头信息数据段长度:表示透明通道帧头信息的长度,例如,采用1字节表示,该信息是可选信息。
第一码流数据段长度:表示所述透明通道帧头信息所指示的第二码流数据段的码流长度,该信息是可选信息。
延迟时间信息:只有当图片文件为动态格式的图片文件时才存在,表示显示当前帧对应的图像与显示下一帧对应的图像的时间差,例如,采用1字节表示。该信息是可选信息。透明通道帧头信息在不包含延迟时间信息的情况下,可以参考图像帧头信息中的延迟时间信息。
在本发明实施例中,图片文件、图像、第一码流数据、第二码流数据、图片头信息、帧头信息以及图片头信息包含的各个信息、帧头信息包含的各个信息等词可以以其他名称出现,例如,图片文件采用“图片”来描述,只要各个次的功能和本发明类似,则属于本发明权利要求及其等同技术的范围之内。
又一需要说明的是,本发明实施例中编码之前输入的RGBA数据可以是通过对各种格式的图片文件解码获得的,其中图片文件的格式可以为JPEG、BMP、PNG、APNG、GIF等格式中的任一种,本发明实施例对编码之前的图片文件的格式不做限定。
需要说明的是,本发明实施例中的每个起始码的形式在整个压缩图像数据中是唯一的,以起到唯一识别各个数据段的作用。本发明实施例中涉及到的图片文件用于表示一个完整的图片文件或图像文件,它可以包含一幅或多幅图像,图像是指一帧图画。本发明实施例中涉及到的视频帧数据是图片文件中的每一帧图像通过视频编码后得到的码流数据,例如,对RGB数据编码之后得到的第一码流数据可以看做一个视频帧数据,对透明度数据编码之后得到的第二码流数据也可以看做一个视频帧数据。
在本发明实施例中,在第一图像为RGBA数据的情况下,编码装置获取图片文件中第一图像对应的RGBA数据,并通过分离RGBA数据得到所述第一图像的RGB数据和透明度数据,按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据;按照第二视频编码模式对第一图像的透明度数据进行编码,生成第二码流数据;并生成包含第一图像的图片文件对应的图片头信息和帧头信息;最后将第一码流数据和第二码流数据写入码流数据段中、将图片头信息写入图片头信息数据段、将帧头信息写入帧头信息数据段。这样通过采用视频编码模式编码能够提高图片文件的压缩率,另外通过对图片文件中的RGB数据和透明度数据分别进行编码,实现了在采用视频编码模式的同时保留了图片文件中的透明度数据,保证了图片文件的质量。
请参见图9,为本发明实施例提供了一种图片文件处理方法的流程示意图,如图9所示,本发明实施例的所述方法可以包括步骤401至步骤403。
401,按照第一视频解码模式对第一码流数据进行解码,生成第一图像的RGB数据。
具体的,解码装置按照第一视频解码模式对第一码流数据进行解码。其中,所述第一码流数据和所述第二码流数据是所述解码装置通过对图片文件进行解析从码流数据段中读取由所述第一图像生成的数据,并获取到关于第一图像的码流数据,所述第一图像为所述图像文件中包含的图像。对于图像文件包含透明度数据的情况,所述解码装置获取表示第一图像的第一码流数据和第二码流数据。所述第一图像可以为静态格式的图片文件所包含的一帧图像;或者,所述第一图像可以为动态格式的图片文件所包含的多帧图像中的任一帧图像。
可选的,针对所述图片文件包含RGB数据和透明度数据的情况,所述图片文件中存在用于指示码流数据段的信息,以及对于动态格式的图片文件而言,所述图片文件中存在用于指示不同帧图像对应的码流数据段的信息,以使所述解码装置能够获取到由第一图像的RGB数据生成的第一码流数据以及由第一图像的透明度数据生成的第二码流数据。
进一步的,所述解码装置对所述第一码流数据进行解码,以生成第一图像的RGB数据。
402,按照第二视频解码模式对第二码流数据进行解码,生成所述第一图像的透明度数据。
具体的,所述解码装置按照第二视频解码模式对第二码流数据进行解码,生成所述第一图像的透明度数据。其中,所述第二码流数据也同步骤401中第一码流数据的读取方式相同。
针对步骤401和步骤402而言,所述第一视频解码模式或第二视频解码模式可以是根据生成第一码流数据或生成第二码流数据所采用的视频编码模式确定的,例如,以第一码流数据为例进行说明,若所述第一码流数据采用I帧编码,则所述第一视频编码模式为根据当前的码流数据就可以生成RGB数据;若所述第一码流数据采用P帧编码,则所述第一视频编码模式为根据前面已解码的数据,生成当前帧的RGB数据。第二视频编码模式可以参考第一视频编码模式的介绍,在此不再赘述。
需要说明的是,步骤401和步骤402在执行过程中并无先后顺序之分。
403,根据所述第一图像的所述RGB数据和所述透明度数据,生成所述第一图像对应的RGBA数据。
具体的,所述解码装置根据所述第一图像的所述RGB数据和所述透明度数据,生成所述第一图像对应的RGBA数据。其中,RGBA数据是代表Red、Green、Blue和Alpha的色彩空间。RGB数据和透明度数据能够合成为RGBA数据。这样能够将按照视频编码模式编码得到的码流数据,通过对应的视频解码模式生成相应的RGBA数据,实现了在采用视频编解码模式的同时保留了图片文件中的透明度数据,保证了图片文件的质量和展示效果。
举例来说,所述解码装置解码获得的第一图像的RGB数据和透明度数据,形式如下:
RGB RGB RGB RGB RGB RGB……RGB
A A A A A A……A
则所述解码装置将相对应的RGB数据和透明度数据进行合并,以得到第一图像的RGBA数据,其形式如下:
RGBA RGBA RGBA RGBA RGBA RGBA……RGBA
需要说明的是,本发明实施例中的图片文件是包含RGB数据和透明度数据的情况,因此能够通过解析图片文件读取到可以生成RGB数据的第一码流数据和生成透明度数据的第二码流数据,进行分别执行步骤401和步骤402。而对于图片文件仅包含RGB数据的情况,能够通过解析图片文件读取到可以生成RGB数据的第一码流数据,并执行步骤401,生成RGB数据即完成了对第一码流数据的解码。
在本发明实施例中,解码装置按照第一视频解码模式对第一码流数据进行解码,生成第一图像的RGB数据;按照第二视频解码模式对第二码流数据进行解码,生成第一图像的透明度数据;根据第一图像的RGB数据和透明度数据,生成第一图像对应的RGBA数据。通过对图片文件中的第一码流数据和第二码流数据分别进行解码,进而获得RGBA数据,实现了在采用视频编解码模式的同时保留了图片文件中的透明度数据,保证了图片文件的质量。
请参见图10,为本发明实施例提供的另一种图片文件处理方法的流程示意图,如图10所示,本发明实施例的所述方法可以包括步骤501至步骤507。本发明实施例是以动态格式的图片文件进行说明的,请参见以下具体介绍。
501,获取动态格式的图片文件中由第k帧对应的第一图像生成的第一码流数据和第二码流数据。
具体的,解码装置通过对所述动态格式的图片文件进行解析,从图片文件的码流数据段中获取由第k帧对应的第一图像生成的第一码流数据和第二码流数据。其中,对于图像文件包含透明度数据的情况,所述解码装置获取表示第一图像的第一码流数据和第二码流数据。该动态格式的图片文件中包含至少两帧图像,第k帧可以为所述至少两帧图像中的任意一帧。其中,k为大于0的正整数。
可选的,针对动态格式的图片文件包含RGB数据和透明度数据的情况,所述图片文件中存在用于指示不同帧图像对应的码流数据段的信息,以使所述解码装置能够获取到由第一图像的RGB数据生成的第一码流数据以及由第一图像的透明度数据生成的第二码流数据。
可选的,所述解码装置可以按照所述动态格式的图片文件中每一帧对应的码流数据的先后顺序进行解码,即可以先获取所述动态格式的图片文件的第一帧对应的码流数据进行解码。本发明实施例对所述解码装置获取所述动态格式的图片文件的表示各帧图像的码流数据的顺序不做限定。
可选的,所述解码装置可以通过图片文件的图片头信息和帧头信息确定表示每一帧对应的图像的码流数据,可以参见下一个实施例中关于图片头信息和帧头信息的具体介绍。
502,按照第一视频解码模式对第一码流数据进行解码,生成第一图像的RGB数据。
具体的,所述解码装置按照第一视频解码模式对第一码流数据进行解码,生成第一图像的RGB数据。可选的,所述解码装置按照第一视频编码模式对所述第一码流数据进行解码,生成第一图像的第一YUV数据;将所述第一YUV数据转换为所述第一图像的RGB数据。
503,按照第二视频解码模式对第二码流数据进行解码,生成所述第一图像的透明度数据。
具体的,所述解码装置按照第二视频解码模式对第二码流数据进行解码,生成所述第一图像的透明度数据。可选的,按照第二图像视频编码模式对所述第二码流数据进行解码,生成所述第一图像的第二YUV数据;将所述第二YUV数据转换为所述第一图像的透明度数据。
举例来说,所述解码装置解码获得的第一图像的RGB数据和透明度数据,形式如下:
RGB RGB RGB RGB RGB RGB……RGB
A A A A A A……A
则所述解码装置将相对应的RGB数据和透明度数据进行合并,以得到第一图像的RGBA数据,其形式如下:
RGBA RGBA RGBA RGBA RGBA RGBA……RGBA
需要说明的是,步骤502和步骤503在执行过程中并无先后顺序之分。
504,根据所述第一图像的所述RGB数据和所述透明度数据,生成所述第一图像对应的RGBA数据。
具体的,所述解码装置根据所述第一图像的所述RGB数据和所述透明度数据,生成所述第一图像对应的RGBA数据。其中,RGBA数据是代表Red、Green、Blue和Alpha的色彩空间。RGB数据和透明度数据能够合成为RGBA数据。这样能够将按照视频编码模式编码得到的码流数据,通过对应的视频解码模式生成相应的RGBA数据,实现了在采用视频编解码模式的同时保留了图片文件中的透明度数据,保证了图片文件的质量和展示效果。
505,判断第k帧是否为所述动态格式的图片文件的最后一帧。
具体的,所述解码装置判断第k帧是否为所述动态格式的图片文件的最后一帧,可选的,可以通过检测图片头信息中包含的帧数来确定是否完成对图片文件的解码。若第k帧为所述动态格式的图片文件的最后一帧,则表示完成对所述动态格式的图片文件的解码,执行步骤507;若第k帧不是所述动态格式的图片文件的最后一帧,则执行步骤506。
506,若否,则更新k,并触发执行获取动态格式的图片文件中第k帧对应的第一图像的第一码流数据和第二码流数据。
具体的,若判断第k帧不是所述动态格式的图片文件的最后一帧,则对下一帧对应的图像的码流数据进行解码,即采用(k+1)的数值更新k。在将k更新之后,触发执行获取动态格式的图片文件中第k帧对应的第一图像的第一码流数据和第二码流数据。
可以理解的是,采用更新的k所获取的图像与k更新之前所获取的图像并非是同一帧对应的图像,为了便于说明,这里将k更新之前的k帧对应的图像设为第一图像,将k更新之后的k帧对应的图像设为第二图像,以便于区别。
在对第二图像执行步骤502至步骤504时,可选的,表示第二图像的码流数据为第三码流数据和第四码流数据;按照第三视频解码模式对所述第三码流数据进行解码,生成所述第二图像的RGB数据;按照第四视频解码模式对所述第四码流数据进行解码,生成所述第二图像的透明度数据,其中,第三码流数据是根据第二图像的RGB数据生成的,第四码流数据是根据第二图像的透明度数据生成的;根据所述第二图像的所述RGB数据和所述透明度数据,生成所述第二图像对应的RGBA数据。
针对步骤502和步骤503而言,上述涉及到的所述第一视频解码模式、第二视频解码模式、第三视频解码模式或第四视频解码模式是根据生成码流数据所采用的视频编码模式确定的。例如,以第一码流数据为例进行说明,若所述第一码流数据采用I帧编码,则所述第一视频编码模式为根据当前的码流数据就可以生成RGB数据;若所述第一码流数据采用P帧编码,则所述第一视频编码模式为根据前面已解码的数据,生成当前帧的RGB数据。对于其他视频编码模式可以参考第一视频编码模式的介绍,在此不再赘述。
进一步需要说明的是,所述动态格式的图片文件包含有多个码流数据段,可选的,一帧图像对应一个码流数据段;或者,一个码流数据对应一个码流数据段。因此,读取所述第一码流数据和第二码流数据的码流数据段与读取所述第三码流数据和第四码流数据的码流数据段不同。
507,若是,则完成对所述动态格式的图片文件的解码。
具体的,若判断第k帧是所述动态格式的图片文件的最后一帧,则表示完成对该动态格式的图片文件解码。
可选的,所述解码装置可以对每一帧对应的图像所生成的码流数据生成帧头信息,并对所述动态格式的图片文件生成图片头信息,这样可以通过图片头信息确定该图片文件是否包含透明度数据,进而能够确定解码过程中是只获取由RGB数据生成的第一码流数据,还是获取由RGB数据生成的第一码流数据和由透明度数据生成的第二码流数据。
需要说明的,本发明实施例的动态格式的图片文件中每一帧对应的图像是包含RGB数据和透明度数据的RGBA数据的,而对于动态格式的图片文件中每一帧对应的图像仅包含RGB数据的情况,表示每一帧图像的码流数据仅仅是第一码流数据,因此所述解码装置可以对表示每一帧图像的第一码流数据执行步骤502,以生成RGB数据。这样依旧可以通过视频解码模式对仅包含RGB数据的码流数据进行解码。
在本发明实施例中,在确定动态格式的图片文件中包含RGB数据和透明度数据的情况下,解码装置按照第一视频解码模式对表示每一帧图像中的第一码流数据进行解码,生成第一图像的RGB数据;按照第二视频解码模式对表示每一帧图像中的第二码流数据进行解码,生成第一图像的透明度数据;根据第一图像的RGB数据和透明度数据,生成第一图像对应的RGBA数据。通过对图片文件中的第一码流数据和第二码流数据分别进行解码,进而获得RGBA数据,实现了在采用视频编解码模式的同时保留了图片文件中的透明度数据,保证了图片文件的质量。
请参见图11,为本发明实施例提供的另一种图片文件处理方法的流程示意图,如图11所示,本发明实施例的所述方法可以包括步骤601至步骤606。
601,解析图片文件,得到所述图片文件的图片头信息和帧头信息。
具体的,解码装置解析图片文件,以获得所述图片文件的图片头信息和帧头信息。其中,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,通过确定是否包含透明度数据可以确定如何获取码流数据以及获取到的码流数据是否包含由透明度数据生成的第二码流数据。所述帧头信息用于指示所述图片文件的码流数据段,通过帧头信息可以确定能够获取到码流数据的码流数据段,进而实现对码流数据的解码。举例来说,帧头信息包含帧头信息起始码,通过识别帧头信息起始码能够确定码流数据段。
可选的,所述解码装置解析图片文件得到所述图片文件的图片头信息具体可以是:从图片文件的图片头信息数据段中读取所述图片文件的图片头信息。其中,所述图片头信息包括所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
可选的,所述图片头信息还可以包括用户自定义信息,所述用户自定义信息包括所述用户自定义信息对应的标识信息、所述用户自定义信息的长度和用户自定义信息;所述用户自定义信息包括EXIF信息,例如拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统数据、缩略图等。
可选的,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。可选的,所述图像特征信息还可以包括所述图片文件采用的YUV颜色空间格式。
可选的,所述解码装置解析图片文件得到所述图片文件的帧头信息具体可以是:从图片文件的帧头信息数据段中读取所述图片文件的帧头信息。其中,所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。可选的,所述帧头信息还包括所述帧头信息数据段长度和所述帧头信息所指示的码流数据段的码流数据段长度中的至少一项。进一步,可选的,所述帧头信息还包括区别于其他帧图像的特有信息,如编码区域信息、透明度信息、颜色表等等,本发明实施例对此不做限定。
需要说明的是,本发明实施例的图片头信息和帧头信息可以参考图5a、图5b、图5c、图6a、图6b、图7a、图7b、图8a、图8b和图8c的举例来说,在此不再赘述。
602,读取所述图片文件中所述帧头信息指示的码流数据段中的码流数据。
具体的,若通过所述图像特征信息确定所述图片文件包含透明度数据,则所述解码装置读取所述图片文件中所述帧头信息指示的码流数据段中的码流数据。所述码流数据包括第一码流数据和第二码流数据。
一种可行的方案中,图片文件的一帧图像对应一个帧头信息,即该帧头信息可以用于指示包含第一码流数据和第二码流数据的码流数据段。具体的,针对图片文件为静态格式的图片文件的情况,静态格式的图片文件包含一帧图像,即为第一图像,因此,该静态格式的图片文件中包含一个帧头信息。针对图片文件为动态格式的图片文件的情况,动态格式的图片文件一般包含至少两帧图像,对于其中的每一帧图像均有一个帧头信息。若确定所述图片文件包含透明度数据,则所述解码装置根据所述帧头信息指示的码流数据段中读取所述第一码流数据和第二码流数据。
另一种可行的方案中,图片文件的一帧图像中的一个码流数据对应一个帧头信息,即一个帧头信息中指示的码流数据段中包含一个码流数据。具体的,针对静态格式的图片文件的情况,静态格式的图片文件包含一帧图像,即为第一图像,包含透明度数据的第一图像对应于两个码流数据,分别为第一码流数据和第二码流数据,因此,该静态格式的图片文件中第一码流数据对应一个帧头信息、第二码流数据对应另一个帧头信息。针对动态格式的图片文件的情况,动态格式的图片文件包含至少两帧图像,包含透明度数据的每一帧图像对应于两个码流数据,分别为第一码流信息和第二码流信息,并对每一帧图像的第一码流信息和第二码流信息各增加一个帧头信息。因此,若确定所述图片文件包含透明度数据,则所述解码装置根据两个帧头信息分别指示的两个码流数据段,分别获取第一码流数据和第二码流数据。
需要说明的是,对于图片文件的一帧图像中的一个码流数据对应一个帧头信息的情况,编码装置可以按照预设的顺序来排列第一码流数据对应的帧头信息数据段、第一码流数据段、第二码流数据对应的帧头信息数据段、和第二码流数据段,并且解码装置可以确定编码装置的排列顺序。举例来说,对于一帧图像的第一码流数据段、第二码流数据段和各个码流数据对应的帧头信息数据段,可以按照第一码流数据对应的帧头信息数据段、第一码流数据段、第二码流数据对应的帧头信息数据段、第二码流数据段进行排列,这样在解码装置解码的过程中,能够确定表示该帧图像的两个帧头信息和两个帧头指示的码流数据段中,哪一个能够获取到第一码流数据,哪一个能获取到第二码流数据。可以理解的是,这里的第一码流数据是指由RGB数据生成的,第二码流数据是指由透明度数据生成的。
603,按照第一视频解码模式对第一码流数据进行解码,生成第一图像的RGB数据。
604,按照第二视频解码模式对第二码流数据进行解码,生成所述第一图像的透明度数据。
605,根据所述第一图像的所述RGB数据和所述透明度数据,生成所述第一图像对应的RGBA数据。
其中,步骤603至步骤605可以参见图9和图10实施例中对应步骤的具体描述,在此不再赘述。
在本发明实施例中,在图片文件包含RGB数据和透明度数据的情况下,解码装置解析图片文件,得到图片文件的图片头信息和帧头信息,并读取图片文件中帧头信息指示的码流数据段中的码流数据;按照第一视频解码模式对表示每一帧图像中的第一码流数据进行解码,生成第一图像的RGB数据;按照第二视频解码模式对表示每一帧图像中的第二码流数据进行解码,生成第一图像的透明度数据;根据第一图像的RGB数据和透明度数据,生成第一图像对应的RGBA数据。通过对图片文件中的第一码流数据和第二码流数据分别进行解码,进而获得RGBA数据,实现了在采用视频编解码模式的同时保留了图片文件中的透明度数据,保证了图片文件的质量。
请参见图12,为本发明实施例提供了另一种图片文件处理方法的流程示意图,如图12所示,本发明实施例的所述方法可以包括步骤701至步骤705。
701,生成图片文件对应的图片头信息和帧头信息。
具体的,图片文件处理装置生成所述图片文件对应的图片头信息和帧头信息。其中,该图片文件可以为静态格式的图片文件,即仅包含该第一图像;或者,该图片文件为动态格式的图片文件,即包含所述第一图像以及其他图像。不论该图片文件是静态格式的图片文件还是动态格式的图片文件,所述图片文件处理装置都需要生成该图片文件对应的图片头信息。其中,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,以使解码装置通过确定是否包含透明度数据确定如何获取码流数据以及获取到的码流数据是否包含由透明度数据生成的第二码流数据。
进一步的,所述帧头信息用于指示所述图片文件的码流数据段,以使解码装置通过帧头信息确定能够获取到码流数据的码流数据段,进而实现对码流数据的解码。举例来说,帧头信息包含帧头信息起始码,通过识别帧头信息起始码能够确定码流数据段。
可选的,所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
可选的,所述图片头信息还可以包括用户自定义信息,所述用户自定义信息包括所述用户自定义信息对应的标识信息、所述用户自定义信息的长度和用户自定义信息;所述用户自定义信息包括EXIF信息,例如拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统数据、缩略图等。
可选的,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。可选的,所述图像特征信息还可以包括所述图片文件采用的YUV颜色空间格式。
可选的,所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。可选的,所述帧头信息还包括所述帧头信息数据段长度和所述帧头信息所指示的码流数据段的码流数据段长度中的至少一项。进一步,可选的,所述帧头信息还包括区别于其他帧图像的特有信息,如编码区域信息、透明度信息、颜色表等等,本发明实施例对此不做限定。
702,将所述图片头信息写入所述图片文件的图片头信息数据段中。
具体的,所述图片文件处理装置将所述图片头信息写入所述图片文件图片头信息数据段。
703,将所述帧头信息写入所述图片文件的帧头信息数据段中。
具体的,所述图片文件处理装置将所述帧头信息写入所述图片文件的帧头信息数据段中。
704,若确定所述图像特征信息包含透明度数据,则对所述第一图像对应的RGBA数据中包含的RGB数据进行编码生成第一码流数据,以及包含的透明度度数据进行编码生成第二码流数据。
具体的,若确定所述图像特征信息包含透明度数据,则所述图片文件处理装置对所述第一图像对应的RGBA数据中包含的RGB数据进行编码生成第一码流数据,以及包含的透明度度数据进行编码生成第二码流数据。
可选的,在所述图片文件处理装置获取到所述图片文件的中第一图像对应的RGBA数据之后,分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据,所述RGB数据为所述RGBA数据包含的颜色数据,所述透明度数据为所述RGBA数据包含的透明度数据。进一步实现对RGB数据和透明度数据的分别编码,具体的编码过程可以参见图1至图4d所示实施例中具体介绍,在此不再赘述。
705,将所述第一码流数据和所述第二码流数据写入所述第一图像对应的帧头信息所指示的码流数据段中。
具体的,所述图片文件处理装置将所述第一码流数据和所述第二码流数据写入所述第一图像对应的帧头信息所指示的码流数据段中。
需要说明的是,本发明实施例的图片头信息和帧头信息可以参考图5a、图5b、图5c、图6a、图6b、图7a、图7b、图8a、图8b和图8c的举例来说,在此不再赘述。
又一需要说明的是,本发明实施例中编码之前输入的RGBA数据可以是通过对各种格式的图片文件解码获得的,其中图片文件的格式可以为JPEG、BMP、PNG、APNG、GIF等格式中的任一种,本发明实施例对编码之前的图片文件的格式不做限定。
在本发明实施例中,图片文件处理装置生成图片文件对应的图片头信息和帧头信息,通过图片头信息包含的图片文件是否存在透明度数据的图像特征信息,能够让解码装置确定如何获取码流数据以及获取到的码流数据是否包含由透明度数据生成的第二码流数据;通过帧头信息指示的图片文件的码流数据段,能够让解码装置获取到码流数据段中的码流数据,进而实现对码流数据的解码。
请参见图13,为本发明实施例提供了另一种图片文件处理方法的流程示意图,如图13所示,本发明实施例的所述方法可以包括步骤801至步骤803。
801,解析图片文件,得到所述图片文件的图片头信息和帧头信息。
具体的,图片文件处理装置解析图片文件,以获得所述图片文件的图片头信息和帧头信息。其中,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,通过确定是否包含透明度数据可以确定如何获取码流数据以及获取到的码流数据是否包含由透明度数据生成的第二码流数据。所述帧头信息用于指示所述图片文件的码流数据段,通过帧头信息可以确定能够获取到码流数据的码流数据段,进而实现对码流数据的解码。举例来说,帧头信息包含帧头信息起始码,通过识别帧头信息起始码能够确定码流数据段。
可选的,所述图片文件处理装置解析图片文件得到所述图片文件的图片头信息具体可以是:从图片文件的图片头信息数据段中读取所述图片文件的图片头信息。其中,所述图片头信息包括所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
可选的,所述图片头信息还可以包括用户自定义信息,所述用户自定义信息包括所述用户自定义信息对应的标识信息、所述用户自定义信息的长度和用户自定义信息;所述用户自定义信息包括EXIF信息,例如拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统数据、缩略图等。
可选的,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。可选的,所述图像特征信息还可以包括所述图片文件采用的YUV颜色空间格式。
可选的,所述图片文件处理装置解析图片文件得到所述图片文件的帧头信息具体可以是:从图片文件的帧头信息数据段中读取所述图片文件的帧头信息。其中,所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。可选的,所述帧头信息还包括所述帧头信息数据段长度和所述帧头信息所指示的码流数据段的码流数据段长度中的至少一项。进一步,可选的,所述帧头信息还包括区别于其他帧图像的特有信息,如编码区域信息、透明度信息、颜色表等等,本发明实施例对此不做限定。
需要说明的是,本发明实施例的图片头信息和帧头信息可以参考图5a、图5b、图5c、图6a、图6b、图7a、图7b、图8a、图8b和图8c的举例来说,在此不再赘述。
802,若通过所述图像特征信息确定所述图片文件包含透明度数据,则读取所述图片文件中所述帧头信息指示的码流数据段中的码流数据,所述码流数据包括第一码流数据和第二码流数据。
具体的,若通过所述图像特征信息确定所述图片文件包含透明度数据,则所述图片文件处理装置读取所述图片文件中所述帧头信息指示的码流数据段中的码流数据。所述码流数据包括第一码流数据和第二码流数据。
一种可行的方案中,图片文件的一帧图像对应一个帧头信息,即该帧头信息可以用于指示包含第一码流数据和第二码流数据的码流数据段。具体的,针对图片文件为静态格式的图片文件的情况,静态格式的图片文件包含一帧图像,即为第一图像,因此,该静态格式的图片文件中包含一个帧头信息。针对图片文件为动态格式的图片文件的情况,动态格式的图片文件一般包含至少两帧图像,对于其中的每一帧图像均增加一个帧头信息。若确定所述图片文件包含透明度数据,则所述图片文件处理装置根据所述帧头信息指示的码流数据段中读取所述第一码流数据和第二码流数据。
另一种可行的方案中,图片文件的一帧图像中的一个码流数据对应一个帧头信息,即一个帧头信息中指示的码流数据段中包含一个码流数据。具体的,针对静态格式的图片文件的情况,静态格式的图片文件包含一帧图像,即为第一图像,包含透明度数据的第一图像对应于两个码流数据,分别为第一码流数据和第二码流数据,因此,该静态格式的图片文件中第一码流数据对应一个帧头信息、第二码流数据对应另一个帧头信息。针对动态格式的图片文件的情况,动态格式的图片文件包含至少两帧图像,包含透明度数据的每一帧图像对应于两个码流数据,分别为第一码流信息和第二码流信息,并对每一帧图像的第一码流信息和第二码流信息各增加一个帧头信息。因此,若确定所述图片文件包含透明度数据,则所述图片文件处理装置根据两个帧头信息分别指示的两个码流数据段,分别获取第一码流数据和第二码流数据。
需要说明的是,对于图片文件的一帧图像中的一个码流数据对应一个帧头信息的情况,编码装置可以按照预设的顺序来排列第一码流数据对应的帧头信息数据段、第一码流数据段、第二码流数据对应的帧头信息数据段、和第二码流数据段,并且图片文件处理装置可以确定编码装置的排列顺序。举例来说,对于一帧图像的第一码流数据段、第二码流数据段和各个码流数据对应的帧头信息数据段,可以按照第一码流数据对应的帧头信息数据段、第一码流数据段、第二码流数据对应的帧头信息数据段、第二码流数据段进行排列,这样在图片文件处理装置解码的过程中,能够确定表示该帧图像的两个帧头信息和两个帧头指示的码流数据段中,哪一个能够获取到第一码流数据,哪一个能获取到第二码流数据。可以理解的是,这里的第一码流数据是指由RGB数据生成的,第二码流数据是指由透明度数据生成的。
803,对所述第一码流数据和所述第二码流数据分别进行解码。
具体的,在所述图片文件处理装置从码流数据段中获取到第一码流数据和第二码流数据之后,所述图片文件处理装置对第一码流数据和第二码流数据进行解码。
需要说明的是,所述图片文件处理装置可以参照图9至图11所示实施例中解码装置的执行过程实现对第一码流数据和第二码流数据的解码,在此不再赘述。
在本发明实施例中,图片文件处理装置对图片文件进行解析以得到图片头信息和帧头信息,通过图片头信息包含的图片文件是否存在透明度数据的图像特征信息,能够确定如何获取码流数据以及获取到的码流数据是否包含由透明度数据生成的第二码流数据;通过帧头信息指示的图片文件的码流数据段,获取到码流数据的码流数据段,进而实现对码流数据的解码。
请参见图14,为本发明实施例提供了一种编码装置的结构示意图。如图14所示,本发明实施例的所述编码装置1可以包括:数据获取模块11、第一编码模块12、第二编码模块13和数据写入模块14。可选的,所述编码装置1还可以包括信息生成模块15。
数据获取模块11,用于获取图片文件中第一图像对应的RGBA数据,并分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据,所述RGB数据为所述RGBA数据包含的颜色数据,所述透明度数据为所述RGBA数据包含的透明度数据;
第一编码模块12,用于按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据;
第二编码模块13,用于按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据;
数据写入模块14,用于将所述第一码流数据和所述第二码流数据写入所述图片文件的码流数据段中,所述第一图像为所述图片文件中包含的图像。
可选的,所述第一编码模块12包括第一数据转换单元和第一码流生成单元,其中:
第一数据转换单元,用于将所述第一图像的RGB数据转换为第一YUV数据;
第一码流生成单元,用于按照第一视频编码模式对所述第一YUV数据进行编码,生成第一码流数据。
可选的,所述第二编码模块13包括第二数据转换单元和第二码流生成单元,其中:
第二数据转换单元,用于将所述第一图像的透明度数据转换为第二YUV数据;
第二码流生成单元,用于按照第二视频编码模式对所述第二YUV数据进行编码,生成第二码流数据。
可选的,所述第二数据转换单元具体用于将所述第一图像的透明度数据设定为第二YUV数据中的Y分量,且不设定所述第二YUV数据中的UV分量。或者,所述第二数据转换单元具体用于将所述第一图像的透明度数据设定为第二YUV数据中的Y分量,且将所述第二YUV数据中的UV分量设定为预设数据。
可选的,所述数据获取模块11,用于若所述图片文件为动态格式的图片文件且所述第一图像为所述图片文件中的第k帧对应的图像,则获取所述图片文件中的第(k+1)帧对应的第二图像所对应的RGBA数据,并分离所述RGBA数据,以得到所述第二图像的RGB数据和透明度数据;
所述第一编码模块12,还用于按照第三视频编码模式对所述第二图像的RGB数据进行编码,生成第三码流数据;
所述第二编码模块13,还用于按照第四视频编码模式对所述第二图像的透明度数据进行编码,生成第四码流数据;
所述数据写入模块14,还用于将所述第三码流数据和所述第四码流数据写入所述图片文件的码流数据段中。
可选的,所述编码装置1还包括:
信息生成模块15,用于生成所述图片文件对应的图片头信息和帧头信息,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段。
可选的,所述数据写入模块13,还用于将所述信息生成模块15生成的所述图片头信息写入所述图片文件的图片头信息数据段中;所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
可选的,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。
可选的,所述数据写入模块13,还用于将所述信息生成模块15生成的所述帧头信息写入所述图片文件的帧头信息数据段中;
所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。
需要说明的是,本发明实施例所描述的编码装置1所执行的模块、单元及带来的有益效果可根据上述图1至图8所示方法实施例中的方法具体实现,此处不再赘述。
请参见图15,为本发明实施例提供了另一种编码装置的结构示意图。如图15所示,所述编码装置1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,存储器1005,至少一个通信总线1002。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。其中,通信总线1002用于实现这些组件之间的连接通信。可选的,所述编码装置1000包括用户接口1003,其中,可选的,所述用户接口1003可以包括显示屏(Display)、键盘(Keyboard)。如图15所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及编码应用程序。
在图15所示的编码装置1000中,处理器1001可以用于调用存储器1005中存储的编码应用程序,并具体执行以下操作:
获取图片文件中第一图像对应的RGBA数据,并分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据,所述RGB数据为所述RGBA数据包含的颜色数据,所述透明度数据为所述RGBA数据包含的透明度数据;
按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据;
按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据;
将所述第一码流数据和所述第二码流数据写入所述图片文件的码流数据段中。
在一个可能的实施例中,所述处理器1001在执行按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据,具体执行:
将所述第一图像的RGB数据转换为第一YUV数据;按照第一视频编码模式对所述第一YUV数据进行编码,生成第一码流数据。
在一个可能的实施例中,所述处理器1001在执行按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据,具体执行:
将所述第一图像的透明度数据转换为第二YUV数据;按照第二视频编码模式对所述第二YUV数据进行编码,生成第二码流数据。
在一个可能的实施例中,所述处理器1001在执行将所述第一图像的透明度数据转换为第二YUV数据,具体执行:
将所述第一图像的透明度数据设定为第二YUV数据中的Y分量,且不设定所述第二YUV数据中的UV分量;或者,
将所述第一图像的透明度数据设定为第二YUV数据中的Y分量,且将所述第二YUV数据中的UV分量设定为预设数据。
在一个可能的实施例中,所述处理器1001还执行以下步骤:
若所述图片文件为动态格式的图片文件且所述第一图像为所述图片文件中的第k帧对应的图像,则获取所述图片文件中的第(k+1)帧对应的第二图像所对应的RGBA数据,并分离所述RGBA数据,以得到所述第二图像的RGB数据和透明度数据;
按照第三视频编码模式对所述第二图像的RGB数据进行编码,生成第三码流数据;
按照第四视频编码模式对所述第二图像的透明度数据进行编码,生成第四码流数据;
将所述第三码流数据和所述第四码流数据写入所述图片文件的码流数据段中。
在一个可能的实施例中,所述处理器1001还执行以下步骤:
生成所述图片文件对应的图片头信息和帧头信息,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段。
在一个可能的实施例中,所述处理器1001还执行以下步骤:
将所述图片头信息写入所述图片文件的图片头信息数据段中;
所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
在一个可能的实施例中,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。
在一个可能的实施例中,所述处理器1001还执行以下步骤:
将所述帧头信息写入所述图片文件的帧头信息数据段中;
所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。
需要说明的是,本发明实施例所描述的处理器1001所执行的步骤及带来的有益效果可根据上述图1至图8所示方法实施例中的方法具体实现,此处不再赘述。
请参见图16,为本发明实施例提供了一种解码装置的结构示意图。如图16所示,本发明实施例的所述解码装置2可以包括:第一解码模块21、第二解码模块22和数据生成模块23。可选的,所述解码装置2还可以包括第一数据获取模块24、文件解析模块25和第二数据获取模块26中的至少一个。在本发明实施例中的所述第一码流数据和所述第二码流数据是从图片文件的码流数据段中读取由所述第一图像生成的数据。
第一解码模块21,用于按照第一视频解码模式对第一码流数据进行解码,生成第一图像的RGB数据;
第二解码模块22,用于按照第二视频解码模式对第二码流数据进行解码,生成所述第一图像的透明度数据;
数据生成模块23,用于根据所述第一图像的所述RGB数据和所述透明度数据,生成所述第一图像对应的RGBA数据;
可选的,所述第一解码模块21,包括第一数据生成单元和第一数据转换单元,其中:
第一数据生成单元,用于按照第一视频编码模式对所述第一码流数据进行解码,生成第一图像的第一YUV数据;
第一数据转换单元,用于将所述第一YUV数据转换为所述第一图像的RGB数据。
可选的,所述第二解码模块22,包括第二数据生成单元和第二数据转换单元,其中:
第二数据生成单元,用于按照第二图像视频编码模式对所述第二码流数据进行解码,生成所述第一图像的第二YUV数据;
第二数据转换单元,用于将所述第二YUV数据转换为所述第一图像的透明度数据。
可选的,所述第二数据转换单元具体用于将所述第二YUV数据中的Y分量设定为所述第一图像的所述透明度数据,且舍弃所述第二YUV数据中的UV分量。
可选的,所述解码装置2还包括:
第一数据获取模块24,用于若所述图片文件为动态格式的图片文件且所述第一图像为所述动态格式的图片文件中的第k帧对应的图像,则从所述图片文件的码流数据段中获取由所述图片文件中第(k+1)帧对应的第二图像生成的第三码流数据和第四码流数据;
所述第一解码模块21,还用于按照第三视频解码模式对所述第三码流数据进行解码,生成所述第二图像的RGB数据;
所述第二解码模块22,还用于按照第四视频解码模式对所述第四码流数据进行解码,生成所述第二图像的透明度数据;
所述数据生成模块23,还用于根据所述第二图像的所述RGB数据和所述透明度数据,生成所述第二图像对应的RGBA数据。
可选的,所述解码装置2还包括文件解析模块25:
所述文件解析模块25,用于解析图片文件,得到所述图片文件的图片头信息和帧头信息,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段。
可选的,所述文件解析模块25在解析图片文件,得到所述图片文件的图片头信息方面具体用于从图片文件的图片头信息数据段中读取所述图片文件的图片头信息;
所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
进一步可选的,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。
可选的,所述文件解析模块25在解析图片文件,得到所述图片文件的帧头信息方面具体用于从图片文件的帧头信息数据段中读取所述图片文件的帧头信息;
所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。
可选的,所述解码装置2还包括:
第二数据获取模块26,用于若通过所述图像特征信息确定所述图片文件包含透明度数据,则读取所述图片文件中所述帧头信息指示的码流数据段中的码流数据,所述码流数据包括第一码流数据和第二码流数据。
需要说明的是,本发明实施例所描述的解码装置2所执行的模块、单元及带来的有益效果可根据上述图9至图11所示方法实施例中的方法具体实现,此处不再赘述。
请参见图17,为本发明实施例提供了另一种解码装置的结构示意图。如图17所示,所述解码装置2000可以包括:至少一个处理器2001,例如CPU,至少一个网络接口2004,存储器2005,至少一个通信总线2002。网络接口2004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器2005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器2005可选的还可以是至少一个位于远离前述处理器2001的存储装置。其中,通信总线2002用于实现这些组件之间的连接通信。可选的,所述解码装置2000包括用户接口2003,其中,可选的,所述用户接口2003可以包括显示屏(Display)、键盘(Keyboard)。如图17所示,作为一种计算机存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及解码应用程序。
在图17所示的解码装置2000中,处理器2001可以用于调用存储器2005中存储的解码应用程序,并具体执行以下操作:
按照第一视频解码模式对第一码流数据进行解码,生成第一图像的RGB数据;
按照第二视频解码模式对第二码流数据进行解码,生成所述第一图像的透明度数据;
根据所述第一图像的所述RGB数据和所述透明度数据,生成所述第一图像对应的RGBA数据;
所述第一码流数据和所述第二码流数据是从图片文件的码流数据段中读取由所述第一图像生成的数据。
在一个可能的实施例中,所述处理器2001在执行按照第一视频解码模式对第一码流数据进行解码,生成第一图像的RGB数据,具体执行:
按照第一视频编码模式对所述第一码流数据进行解码,生成第一图像的第一YUV数据;将所述第一YUV数据转换为所述第一图像的RGB数据。
在一个可能的实施例中,所述处理器2001在执行按照第二视频解码模式对第二码流数据进行解码,生成所述第一图像的透明度数据,具体执行:
按照第二图像视频编码模式对所述第二码流数据进行解码,生成所述第一图像的第二YUV数据;将所述第二YUV数据转换为所述第一图像的透明度数据。
在一个可能的实施例中,所述处理器2001在执行将所述第二YUV数据转换为所述第一图像的透明度数据,具体执行:
将所述第二YUV数据中的Y分量设定为所述第一图像的所述透明度数据,且舍弃所述第二YUV数据中的UV分量。
在一个可能的实施例中,所述处理器2001还执行以下步骤:
若所述图片文件为动态格式的图片文件且所述第一图像为所述动态格式的图片文件中的第k帧对应的图像,则从所述图片文件的码流数据段中获取由所述图片文件中第(k+1)帧对应的第二图像生成的第三码流数据和第四码流数据;
按照第三视频解码模式对所述第三码流数据进行解码,生成所述第二图像的RGB数据;
按照第四视频解码模式对所述第四码流数据进行解码,生成所述第二图像的透明度数据;
根据所述第二图像的所述RGB数据和所述透明度数据,生成所述第二图像对应的RGBA数据。
在一个可能的实施例中,所述处理器2001在执行按照第一视频解码模式对第一码流数据进行解码,生成第一图像的RGB数据之前,还执行以下步骤:
解析图片文件,得到所述图片文件的图片头信息和帧头信息,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段。
在一个可能的实施例中,所述处理器2001在执行解析图片文件,得到所述图片文件的图片头信息,具体执行:
从图片文件的图片头信息数据段中读取所述图片文件的图片头信息;
所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
在一个可能的实施例中,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。
在一个可能的实施例中,所述处理器2001在执行解析图片文件,得到所述图片文件的帧头信息,具体执行:
从图片文件的帧头信息数据段中读取所述图片文件的帧头信息;
所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。
在一个可能的实施例中,所述处理器2001还执行以下步骤:若通过所述图像特征信息确定所述图片文件包含透明度数据,则读取所述图片文件中所述帧头信息指示的码流数据段中的码流数据,所述码流数据包括第一码流数据和第二码流数据。
需要说明的是,本发明实施例所描述的处理器2001所执行的步骤及带来的有益效果可根据上述图9至图11所示方法实施例中的方法具体实现,此处不再赘述。
请参见图18,为本发明实施例提供了一种图片文件处理装置的结构示意图。如图18所示,本发明实施例的所述图片文件处理装置3可以包括:信息生成模块31。可选的,所述图片文件处理装置3还可以包括第一信息写入模块32、第二信息写入模块33、数据编码模块34和数据写入模块35中的至少一个。
信息生成模块31,用于生成图片文件对应的图片头信息和帧头信息,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段。
可选的,所述图片文件处理装置3还包括:
第一信息写入模块32,用于将所述图片头信息写入所述图片文件的图片头信息数据段中;所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
进一步可选的,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。
所述图片文件处理装置3还包括第二信息写入模块33:
所述第二信息写入模块33,用于将所述帧头信息写入所述图片文件的帧头信息数据段中,所述第一图像为所述图片文件包含的图像;其中,所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。
所述图片文件处理装置3还包括数据编码模块34和数据写入模块35:
所述数据编码模块34,若确定所述图像特征信息包含透明度数据,则对所述第一图像对应的RGBA数据中包含的RGB数据进行编码生成第一码流数据,以及包含的透明度度数据进行编码生成第二码流数据;
所述数据写入模块35,将所述第一码流数据和所述第二码流数据写入所述第一图像对应的帧头信息所指示的码流数据段中。
需要说明的是,本发明实施例所描述的图片文件处理装置3所执行的模块及带来的有益效果可根据上述图12所示方法实施例中的方法具体实现,此处不再赘述。
请参见图19,为本发明实施例提供了另一种图片文件处理装置的结构示意图。如图19所示,所述图片文件处理装置3000可以包括:至少一个处理器3001,例如CPU,至少一个网络接口3004,存储器3005,至少一个通信总线3002。网络接口3004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器3005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器3005可选的还可以是至少一个位于远离前述处理器3001的存储装置。其中,通信总线3002用于实现这些组件之间的连接通信。
可选的,所述图片文件处理装置3000包括用户接口3003,其中,可选的,所述用户接口3003可以包括显示屏(Display)、键盘(Keyboard)。如图19所示,作为一种计算机存储介质的存储器3005中可以包括操作系统、网络通信模块、用户接口模块以及图片文件处理应用程序。
在图19所示的图片文件处理装置3000中,处理器3001可以用于调用存储器3005中存储的图片文件处理应用程序,并具体执行以下操作:
生成图片文件对应的图片头信息和帧头信息,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段。
在一个可能的实施例中,所述处理器3001还执行以下步骤:
将所述图片头信息写入所述图片文件的图片头信息数据段中;
所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
在一个可能的实施例中,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。
在一个可能的实施例中,所述处理器3001还执行以下步骤:
将所述帧头信息写入所述图片文件的帧头信息数据段中,所述第一图像为所述图片文件包含的图像;
所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。
在一个可能的实施例中,所述处理器3001还执行以下步骤:
若确定所述图像特征信息包含透明度数据,则对所述第一图像对应的RGBA数据中包含的RGB数据进行编码生成第一码流数据,以及包含的透明度度数据进行编码生成第二码流数据;
将所述第一码流数据和所述第二码流数据写入所述第一图像对应的帧头信息所指示的码流数据段中。
需要说明的是,本发明实施例所描述的处理器3001所执行的步骤及带来的有益效果可根据上述图12所示方法实施例中的方法具体实现,此处不再赘述。
请参见图20,为本发明实施例提供了一种图片文件处理装置的结构示意图。如图20所示,本发明实施例的所述图片文件处理装置4可以包括:文件解析模块41。可选的,所述图片文件处理装置4还可以包括数据读取模块42和数据解码模块43中的至少一个。
文件解析模块42,用于解析图片文件,得到所述图片文件的图片头信息和帧头信息,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段。
可选的,所述文件解析模块42在解析图片文件,得到所述图片文件的图片头信息方面具体用于从图片文件的图片头信息数据段中读取所述图片文件的图片头信息;其中,所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
进一步可选的,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。
可选的,所述文件解析模块41在解析图片文件,得到所述图片文件的帧头信息方面具体用于从图片文件的帧头信息数据段中读取所述图片文件的帧头信息;其中,所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。
可选的,所述图片文件处理装置4还包括数据读取模块42和数据解码模块43,其中:
所述数据读取模块42,用于若通过所述图像特征信息确定所述图片文件包含透明度数据,则读取所述图片文件中所述帧头信息指示的码流数据段中的码流数据,所述码流数据包括第一码流数据和第二码流数据。
所述数据解码模块43,用于对所述第一码流数据和所述第二码流数据分别进行解码。
需要说明的是,本发明实施例所描述的图片文件处理装置4所执行的模块及带来的有益效果可根据上述图12所示方法实施例中的方法具体实现,此处不再赘述。
请参见图21,为本发明实施例提供了另一种图片文件处理装置的结构示意图。如图21所示,所述图片文件处理装置4000可以包括:至少一个处理器4001,例如CPU,至少一个网络接口4004,存储器4005,至少一个通信总线4002。网络接口4004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器4005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器4005可选的还可以是至少一个位于远离前述处理器4001的存储装置。其中,通信总线4002用于实现这些组件之间的连接通信。可选的,所述图片文件处理装置4000包括用户接口4003,其中,可选的,所述用户接口4003可以包括显示屏(Display)、键盘(Keyboard)。如图21所示,作为一种计算机存储介质的存储器4005中可以包括操作系统、网络通信模块、用户接口模块以及图片文件处理应用程序。
在图21所示的图片文件处理装置4000中,处理器4001可以用于调用存储器4005中存储的图片文件处理应用程序,并具体执行以下操作:
解析图片文件,得到所述图片文件的图片头信息和帧头信息,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段。
在一个可能的实施例中,所述处理器4001在执行解析图片文件,得到所述图片文件的图片头信息,具体执行:
从图片文件的图片头信息数据段中读取所述图片文件的图片头信息;
所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
在一个可能的实施例中,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。
在一个可能的实施例中,所述处理器4001在执行解析图片文件,得到所述图片文件的帧头信息,具体执行:
从图片文件的帧头信息数据段中读取所述图片文件的帧头信息;
所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。
在一个可能的实施例中,所述处理器4001还执行以下步骤:
若通过所述图像特征信息确定所述图片文件包含透明度数据,则读取所述图片文件中所述帧头信息指示的码流数据段中的码流数据,所述码流数据包括第一码流数据和第二码流数据。
对所述第一码流数据和所述第二码流数据分别进行解码。
需要说明的是,本发明实施例所描述的处理器4001所执行的步骤及带来的有益效果可根据上述图13所示方法实施例中的方法具体实现,此处不再赘述。
请参见图22,为本发明实施例提供了一种图片文件处理系统的系统架构图。如图22所示,该图片文件处理系统5000包括编码设备5001和解码设备5002。
一种可行的方案中,编码设备5001可以是图1至图8所示的编码装置,或者也可以包含具有实现图1至图8所示的编码装置功能的编码模块的终端设备;相应的,所述解码设备5002可以是图9至图11所示的解码装置,或者,也可以包含具有实现图9至图11所示的解码装置功能的解码模块的终端设备。
另一种可行的方案中,编码设备5001可以是图12所示的图片文件处理装置,或者也可以包含具有实现图12所示的图片文件处理装置功能的图片文件处理模块;相应的,解码设备5002可以是图13所示的图片文件处理装置,或者也可以包含具有实现图13所示的图片文件处理装置的图片文件处理模块。
本发明实施例中涉及的编码装置、解码装置、图片文件处理装置、终端设备可以包括平板电脑、手机、电子阅读器、个人计算机(Personal Computer,PC)、笔记本电脑、车载设备、网络电视、可穿戴设备等设备,本发明实施例对此不做限定。
进一步的,结合图23和图24对本发明实施例涉及到的编码设备5001和解码设备5002进行具体介绍。图23和图24是从功能逻辑的角度更完整地展示了以上所示方法可能涉及到的其他方面,以方便读者进一步理解本申请记载的技术方案。请一并参见图23,为本发明实施例提供了一种编码模块的示例图。如图23所示,所述编码设备5001可以包括图23所示的编码模块6000,而编码模块6000可以包括:RGB数据和透明度数据分离子模块、第一视频编码模式子模块、第二视频编码模式子模块以及图片头信息、帧头信息封装子模块。其中,RGB数据和透明度数据分离子模块用于将图片源格式中RGBA数据分离为RGB数据和透明度数据。第一视频编码模式子模块用于实现对RGB数据的编码以生成第一码流数据。第二视频编码模式子模块用于实现对透明度数据的编码以生成第二码流数据。图片头信息、帧头信息封装子模块用于生成包括第一码流数据和第二码流数据在内的码流数据的图片头信息和帧头信息以输出压缩图像数据。
具体实现中,对于静态格式的图片文件而言,首先,编码模块6000接收输入的该图片文件的RGBA数据,通过RGB数据和透明度数据分离子模块将RGBA数据划分为RGB数据和透明度数据;接着,按照第一视频编码模式对RGB数据进行编码,生成第一码流数据;再接着,按照第二视频编码模式对透明度数据进行编码,生成第二码流数据;接着,生成该图片文件的图片头信息和帧头信息,将第一码流数据、第二码流数据、帧头信息、图片头信息写入对应的数据段中,进而生成该RGBA数据对应的压缩图像数据。
对于动态格式的图片文件而言,首先,编码模块6000确定包含的帧数;接着,将每一帧的RGBA数据通过RGB数据和透明度数据分离模块划分为RGB数据和透明度数据,按照第一视频编码模式对RGB数据进行编码,生成第一码流数据,以及按照第二视频编码模式对透明度数据进行编码,生成第二码流数据,并生成每一帧对应的帧头信息,将各个码流数据和帧头信息写入对应的数据段;最后,生成该图片文件的图片头信息,并将图片头信息写入对应的数据段,进而生成该RGBA数据对应的压缩图像数据。
可选的,压缩图像数据也可以采用压缩码流、图像序列等名称来描述,本发明实施例对此不做限定。
请一并参见图24,为本发明实施例提供了一种解码模块的示例图。如图24所示,所述解码设备5002可以包括图24所示的编码模块7000,所述解码模块7000可以包括:图片头信息、帧头信息解析子模块、第一视频解码模式子模块、第二视频解码模式子模块以及RGB数据和透明度数据分离子模块。其中,图片头信息、帧头信息解析子模块用于对图片文件的压缩图像数据进行解析,以确定图片头信息和帧头信息,该压缩图像数据是通过图23所示的编码模块完成编码之后得到的数据。第一视频解码模式子模块用于实现对第一码流数据的解码,其中,第一码流数据是由RGB数据生成的。第二视频解码模式子模块用于实现对第二码流数据的解码,其中,第二码流数据是由透明度数据生成的。RGB数据和透明度数据合并子模块用于将RGB数据和透明度数据合并为RGBA数据,以输出RGBA数据。
具体实现中,对于静态格式的图片文件而言,首先,解码模块7000通过图片头信息、帧头信息解析子模块解析图片文件的压缩图像数据,得到图片文件的图片头信息和帧头信息,若根据图片头信息确定图片文件存在透明度数据,则从帧头信息指示的码流数据段获取第一码流数据和第二码流数据;接着,按照第一视频解码模式对第一码流数据进行解码,生成RGB数据;再接着,按照第二视频解码模式对第二码流数据进行解码,生成透明度数据;最后,将RGB数据和透明度数据进行合并,生成RGBA数据,并将RGBA数据输出。
对于动态格式的图片文件而言,首先,解码模块7000通过图片头信息、帧头信息解析子模块解析图片文件的压缩图像数据,得到图片文件的图片头信息和帧头信息,确定图片文件包含的帧数;接着,若根据图片头信息确定图片文件存在透明度数据,则从每一帧图像的帧头信息指示的码流数据段获取第一码流数据和第二码流数据,按照第一视频解码模式对每一帧图像对应的第一码流数据进行解码,生成RGB数据,以及按照第二视频解码模式对每一帧图像对应的第二码流数据进行解码,生成透明度数据;最后,将每一帧图像的RGB数据和透明度数据进行合并,生成RGBA数据,并将该压缩图像数据包含的全部帧的RGBA数据输出。
针对图22所示的图片文件处理系统,举例来说,编码设备5001可以将源格式的图片文件按照图23所示的编码模块进行编码并生成压缩图像数据,并将编码之后的压缩图像数据传输至解码设备5002,解码设备5002接收到该压缩图像数据之后,按照图24所示的解码模块进行解码,以得到该图片文件对应的RGBA数据。其中,源格式的图片文件可以包括但不限定于jpeg、png、gif等。
请参见图25,为本发明实施例提供了一种终端设备的结构示意图。如图25所示,所述终端设备包括编码模块和解码模块。可行的方案中,编码模块可以是具有实现图1至图8所示的编码装置功能的编码模块;相应的,所述解码模块可以是具有实现图9至图11所示的解码装置功能的解码模块。可行的方案中,编码模块可以按照图23所述的编码模块6000实现编码,解码模块可以按照图24所示的解码模块7000实现解码。具体的实现过程可以参考对应实施例的具体介绍,在此不再赘述。这样在一个终端设备既可以实现对jpeg、png、gif等源格式的图片文件进行编码,以形成新格式的图片文件,这样通过采用视频编码模式编码能够提高图片文件的压缩率,另外通过对图片文件中的RGB数据和透明度数据分别进行编码,实现了在采用视频编码模式的同时保留了图片文件中的透明度数据。还能够对新格式的图片文件进行解码得到相应的RGBA数据,实现了在采用视频编解码模式解码获得RGB数据和透明度数据,保证了图片文件的质量。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (14)

1.一种图片文件处理方法,其特征在于,包括:
获取图片文件中第一图像对应的RGBA数据,并分离所述RGBA数据,以得到所述第一图像的RGB数据和透明度数据,所述RGB数据为所述RGBA数据包含的颜色数据,所述透明度数据为所述RGBA数据包含的透明度数据;
按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据;
按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据;
将所述第一码流数据和所述第二码流数据写入所述图片文件的码流数据段中,其中,所述图片文件包括:图片头信息的图片头信息数据段、帧头信息的帧头信息数据段、所述第一码流数据和所述第二码流数据的码流数据段,所述图片头信息包括图像特征信息数据段,所述图像特征信息数据段包括图像透明度标志。
2.根据权利要求1所述的方法,其特征在于,所述按照第一视频编码模式对所述第一图像的RGB数据进行编码,生成第一码流数据,包括:
将所述第一图像的RGB数据转换为第一YUV数据;
按照第一视频编码模式对所述第一YUV数据进行编码,生成第一码流数据。
3.根据权利要求1所述的方法,其特征在于,所述按照第二视频编码模式对所述第一图像的透明度数据进行编码,生成第二码流数据,包括:
将所述第一图像的透明度数据转换为第二YUV数据;
按照第二视频编码模式对所述第二YUV数据进行编码,生成第二码流数据。
4.根据权利要求3所述的方法,其特征在于,所述将所述第一图像的透明度数据转换为第二YUV数据,包括:
将所述第一图像的透明度数据设定为第二YUV数据中的Y分量,且不设定所述第二YUV数据中的UV分量;或者,
将所述第一图像的透明度数据设定为第二YUV数据中的Y分量,且将所述第二YUV数据中的UV分量设定为预设数据。
5.根据权利要求1所述的方法,其特征在于,还包括:
若所述图片文件为动态格式的图片文件且所述第一图像为所述图片文件中的第k帧对应的图像,则获取所述图片文件中的第(k+1)帧对应的第二图像所对应的RGBA数据,并分离所述RGBA数据,以得到所述第二图像的RGB数据和透明度数据;
按照第三视频编码模式对所述第二图像的RGB数据进行编码,生成第三码流数据;
按照第四视频编码模式对所述第二图像的透明度数据进行编码,生成第四码流数据;
将所述第三码流数据和所述第四码流数据写入所述图片文件的码流数据段中。
6.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
生成所述图片文件对应的图片头信息和帧头信息,所述图片头信息包括所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段。
7.根据权利要求6所述的方法,其特征在于,还包括:
将所述图片头信息写入所述图片文件的图片头信息数据段中;
所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
8.根据权利要求7所述的方法,其特征在于,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。
9.根据权利要求6所述的方法,其特征在于,还包括:
将所述帧头信息写入所述图片文件的帧头信息数据段中;
所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息;
所述帧头信息还包括帧头信息数据段长度和所述帧头信息所指示的码流数据段的码流数据段长度中的至少一项。
10.一种图片文件处理方法,其特征在于,包括:
生成图片文件对应的图片头信息和帧头信息,所述图片头信息包含所述图片文件是否存在透明度数据的图像特征信息,所述帧头信息用于指示所述图片文件的码流数据段;
所述图片文件包括:所述图片头信息的图片头信息数据段、所述帧头信息的帧头信息数据段、关于颜色数据的第一码流数据和关于透明度数据的第二码流数据的码流数据段,所述码流数据段中的第一码流数据和第二码流数据是通过视频编码模式得到的。
11.根据权利要求10所述的方法,其特征在于,还包括:
将所述图片头信息写入所述图片文件的图片头信息数据段中;
所述图片头信息包括图像文件标识符、解码器标识符、版本号和所述图像特征信息;所述图像文件标识符用于表示所述图片文件的类型,所述解码器标识符用于表示所述图片文件采用的编解码标准的标识;所述版本号用于表示所述图片文件采用的编解码标准的档次。
12.根据权利要求11所述的方法,其特征在于,所述图像特征信息还包括所述图像特征信息起始码、所述图像特征信息数据段长度、所述图片文件是否为静态格式的图片文件、所述图片文件是否为动态格式的图片文件、所述图片文件是否为无损编码、所述图片文件采用的YUV颜色空间值域、所述图片文件的宽度、所述图片文件的高度和用于指示若所述图片文件为动态格式的图片文件的帧数。
13.根据权利要求10-12任一项所述的方法,其特征在于,还包括:
将所述帧头信息写入所述图片文件的帧头信息数据段中,第一图像为所述图片文件包含的图像;
所述帧头信息包括所述帧头信息起始码和用于指示若所述图片文件为动态格式的图片文件的延迟时间信息。
14.根据权利要求13所述的方法,其特征在于,还包括:
若确定所述图片文件的图像特征信息包含透明度数据,则对所述第一图像对应的RGBA数据中包含的RGB数据进行编码生成第一码流数据,以及包含的透明度度数据进行编码生成第二码流数据;
将所述第一码流数据和所述第二码流数据写入所述第一图像对应的帧头信息所指示的码流数据段中。
CN201710225910.3A 2017-04-08 2017-04-08 一种图片文件处理方法 Active CN106937132B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201710225910.3A CN106937132B (zh) 2017-04-08 2017-04-08 一种图片文件处理方法
CN201811264752.3A CN109005426B (zh) 2017-04-08 2017-04-08 一种图片文件处理方法
PCT/CN2018/079113 WO2018184458A1 (zh) 2017-04-08 2018-03-15 一种图片文件处理方法、装置及存储介质
TW107111918A TWI677232B (zh) 2017-04-08 2018-04-03 一種圖片檔處理方法、裝置及儲存介質
US16/595,008 US20200036983A1 (en) 2017-04-08 2019-10-07 Picture file procesing method and apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710225910.3A CN106937132B (zh) 2017-04-08 2017-04-08 一种图片文件处理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201811264752.3A Division CN109005426B (zh) 2017-04-08 2017-04-08 一种图片文件处理方法

Publications (2)

Publication Number Publication Date
CN106937132A CN106937132A (zh) 2017-07-07
CN106937132B true CN106937132B (zh) 2018-12-07

Family

ID=59425861

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201811264752.3A Active CN109005426B (zh) 2017-04-08 2017-04-08 一种图片文件处理方法
CN201710225910.3A Active CN106937132B (zh) 2017-04-08 2017-04-08 一种图片文件处理方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201811264752.3A Active CN109005426B (zh) 2017-04-08 2017-04-08 一种图片文件处理方法

Country Status (4)

Country Link
US (1) US20200036983A1 (zh)
CN (2) CN109005426B (zh)
TW (1) TWI677232B (zh)
WO (1) WO2018184458A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109005426B (zh) * 2017-04-08 2021-04-30 腾讯科技(深圳)有限公司 一种图片文件处理方法
CN109547849B (zh) * 2017-09-21 2022-06-07 腾讯科技(北京)有限公司 一种视频信息播放方法、装置、终端和计算机存储介质
CN108074272A (zh) * 2017-12-21 2018-05-25 珠海亿智电子科技有限公司 一种仿真图形混合处理的方法
CN110113615A (zh) * 2018-02-01 2019-08-09 腾讯科技(深圳)有限公司 图像编码方法、解码方法、装置、计算设备及存储介质
CN109271540B (zh) * 2018-09-26 2021-05-25 浙江万朋教育科技股份有限公司 一种结合图片有损压缩和记录透明度信息的实现方法
US11558778B2 (en) * 2019-06-07 2023-01-17 Qualcomm Incorporated Techniques for file aware communications
CN112070867A (zh) * 2019-06-11 2020-12-11 腾讯科技(深圳)有限公司 动画文件处理方法、装置、计算机可读存储介质和计算机设备
WO2021237569A1 (zh) * 2020-05-28 2021-12-02 深圳市大疆创新科技有限公司 编码方法、解码方法、装置及系统
DE102021117548A1 (de) * 2020-07-16 2022-01-20 Samsung Electronics Co., Ltd. Bildsensormodul, bildverarbeitungssystem, und bildkomprimierungsverfahren
CN114173127A (zh) * 2020-08-23 2022-03-11 腾讯科技(深圳)有限公司 视频处理方法、装置、设备及存储介质
CN112037291B (zh) * 2020-08-31 2024-03-22 维沃移动通信有限公司 数据处理方法、装置和电子设备
CN112402958B (zh) * 2020-10-27 2022-05-13 腾讯科技(深圳)有限公司 一种图像处理方法、装置和存储介质
CN112529008A (zh) * 2020-11-03 2021-03-19 浙江大华技术股份有限公司 图像识别和图像特征处理方法、电子设备及存储介质
CN113473132B (zh) * 2021-07-26 2024-04-26 Oppo广东移动通信有限公司 透明视频压缩方法、装置、存储介质以及终端
CN113938572A (zh) * 2021-09-29 2022-01-14 广州虎牙科技有限公司 图片传输方法、显示方法、装置、电子设备及存储介质
CN114173157B (zh) * 2021-12-10 2022-12-16 广州博冠信息科技有限公司 视频流传输方法及装置、电子设备、存储介质
EP4231640A1 (en) * 2022-02-16 2023-08-23 Beijing Xiaomi Mobile Software Co., Ltd. Encoding/decoding video picture data
CN115550624B (zh) * 2022-12-02 2023-07-18 成都索贝数码科技股份有限公司 一种携带α通道值的HDMI视频数据传输方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1571850A2 (en) * 2004-03-05 2005-09-07 Samsung Electronics Co., Ltd. Apparatus and method for encoding and decoding image containing grayscale alpha channel image
CN101742317A (zh) * 2009-12-31 2010-06-16 北京中科大洋科技发展股份有限公司 一种带阿尔法透明通道的视频压缩编码方法
CN102036059A (zh) * 2009-09-25 2011-04-27 腾讯科技(深圳)有限公司 一种透明图像的压缩和解压缩方法、装置和系统
CN102821279A (zh) * 2012-07-31 2012-12-12 北京天神互动科技有限公司 一种保留alpha通道的图片压缩方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8189908B2 (en) * 2005-09-02 2012-05-29 Adobe Systems, Inc. System and method for compressing video data and alpha channel data using a single stream
CN101540901B (zh) * 2008-03-20 2011-04-06 华为技术有限公司 编解码方法及装置
US8681170B2 (en) * 2011-05-05 2014-03-25 Ati Technologies Ulc Apparatus and method for multi-streaming for more than three pixel component values
US8655086B1 (en) * 2011-11-01 2014-02-18 Zynga, Inc. Image compression with alpha channel data
CN102724582B (zh) * 2012-05-31 2014-09-24 福州瑞芯微电子有限公司 基于用户界面对关键色进行显示的方法
CN104349171B (zh) * 2013-07-31 2018-03-13 上海通途半导体科技有限公司 一种视觉无损的图像压缩编、解码装置及编、解码方法
KR20160026005A (ko) * 2014-08-29 2016-03-09 (주) 디아이지 커뮤니케이션 알파 채널을 포함하는 증강 현실 동영상의 압축 장치 및 방법
CN104333762B (zh) * 2014-11-24 2017-10-10 成都瑞博慧窗信息技术有限公司 一种视频解码方法
CN104980798B (zh) * 2015-07-14 2018-04-10 天脉聚源(北京)教育科技有限公司 一种远端视频显示方法及装置
CN105979282B (zh) * 2016-06-02 2019-08-06 腾讯科技(深圳)有限公司 一种动画帧处理方法、服务器、终端及系统
CN106375759B (zh) * 2016-08-31 2018-03-02 深圳超多维科技有限公司 一种视频图像数据的编、解码方法及装置
CN109005426B (zh) * 2017-04-08 2021-04-30 腾讯科技(深圳)有限公司 一种图片文件处理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1571850A2 (en) * 2004-03-05 2005-09-07 Samsung Electronics Co., Ltd. Apparatus and method for encoding and decoding image containing grayscale alpha channel image
CN102036059A (zh) * 2009-09-25 2011-04-27 腾讯科技(深圳)有限公司 一种透明图像的压缩和解压缩方法、装置和系统
CN101742317A (zh) * 2009-12-31 2010-06-16 北京中科大洋科技发展股份有限公司 一种带阿尔法透明通道的视频压缩编码方法
CN102821279A (zh) * 2012-07-31 2012-12-12 北京天神互动科技有限公司 一种保留alpha通道的图片压缩方法

Also Published As

Publication number Publication date
CN106937132A (zh) 2017-07-07
TWI677232B (zh) 2019-11-11
CN109005426B (zh) 2021-04-30
TW201838410A (zh) 2018-10-16
US20200036983A1 (en) 2020-01-30
WO2018184458A1 (zh) 2018-10-11
CN109005426A (zh) 2018-12-14

Similar Documents

Publication Publication Date Title
CN106937132B (zh) 一种图片文件处理方法
CN107071515B (zh) 一种图片文件处理方法及系统
CN107071516B (zh) 一种图片文件处理方法
CN107071514B (zh) 一种图片文件处理方法及智能终端
CN109831668A (zh) 数据压缩方法及装置、数据编码/解码方法及装置
CN105933708B (zh) 一种数据压缩和解压缩的方法和装置
CN106937113A (zh) 基于混合色度采样率的图像压缩方法和装置
CN107483942B (zh) 视频数据压缩码流的解码、视频数据的编码方法及装置
CN107483934A (zh) 编解码方法、装置和系统
CN112929590B (zh) 开机动画播放系统、压缩方法、装置及解压方法、装置
CN110113617B (zh) 图像压缩与解压缩的方法、装置、电子设备及存储介质
JP2003087572A (ja) 画像圧縮方法および装置、画像圧縮プログラムならびに画像処理装置
CN115941958A (zh) 一种视频编码方法、装置、电子设备及存储介质
US11082718B2 (en) Method and device for coding image and method and device for decoding image
CN115150370B (zh) 一种图像处理的方法
CN115134605A (zh) 使用受限通用串预测编码模式的图像编码解码方法及装置
CN110602501A (zh) 基于自适应分离或捆绑方式的数据压缩、解压方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant