本发明属于颜色转换领域,尤其涉及一种颜色格式转换方法、装置、电子设备及存储介质。
背景技术:
yuv是编译true-color颜色空间(colorspace)的种类,其中“y”表示明亮度(luminance或luma),也就是灰阶值,“u”和“v”表示的则是色度(chrominance或chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。rgb是一种颜色标准,是通过对红(r)、绿(g)、蓝(b)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,rgb即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。
目前广泛采用的数字图像传感器和模拟图像传感器的数据输出格式一般都为yuv格式,yuv图像的主流采样方式有如下三种:yuv4:4:4采样,yuv4:2:2采样,yuv4:2:0采样,而每种采样方式又分为平面格式和打包格式,所以采样和存储方式的不同,造成了yuv数据存在着多种格式。rgb数据主要用于面向硬件的设备,被广泛应用于视频监视器、彩色摄像机或打印机等。由于以rgb为模型的显示数据在使用过程中,每个像素点不同的位数以及r,g,b不同的排列方式,也造成了rgb有着不同的格式标准。现有的显示设备大都采用rgb驱动,因此从图像传感器采集模块到显示模块,需要使用yuv与rgb彩色空间之间的变换。与此同时,yuv内部的格式转换和rgb内部的格式转换在图像处理和显示中也是有很大需求的。
当前颜色数据yuv和显示数据rgb的转换,通过单独的方式实现,如指定格式的yuv内部之间的转换需要实现一个特定的方法,同理,rgb内部的转换和yuv与rgb之间的转换也需要实现特定的方法。如果进行多次转换则需要实现多个对应的方法,造成实现方式的重复性与碎片化,不利于转换方法的移植。对于使用者每次都要实现指定的转换方法,不利于高效率的程序开发。
技术实现要素:
本发明要解决的技术问题是为了克服现有技术中通过单独的方式实现一种格式到另一种格式的转换,如果进行多次转换则需要实现多个对应的方法,造成实现方式的重复性与碎片化,不利于转换方法的移植,对于使用者每次都要实现指定的转换方法,不利于高效率的程序开发的缺陷,提供一种颜色格式转换方法、装置、电子设备及存储介质。
本发明是通过以下技术方案解决上述技术问题的:
本发明提供一种颜色格式转换方法,包括:
获取颜色数据、所述颜色数据的输入颜色格式和对所述颜色数据指定的输出颜色格式;
根据所述输入颜色格式和所述输出颜色格式,调用实现从所述输入颜色格式转换到所述输出颜色格式的转换流程;
通过所述转换流程对所述颜色数据进行转换后输出。
较佳地,当所述输入颜色格式包括yuv格式的原采样方式、原存储格式、y,u,v分量的原组合方式,所述输出颜色格式包括yuv格式的指定采样方式、指定存储格式、y,u,v分量的指定组合方式时,调用yuv内部转换流程;
所述yuv内部转换流程包括:
从所述原采样方式到所述指定采样方式的转换;
从所述原存储格式到所述指定存储格式的转换;
从所述原组合方式到所述指定组合方式的转换。
较佳地,当所述输入颜色格式包括rgb格式的r,g,b三个通道的原排列方式和r,g,b分量的原像素位数,所述输出颜色格式包括所述颜色数据的r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数时,调用rgb内部转换流程;
所述rgb内部转换流程包括:
从所述原排列方式到所述指定排列方式的转换;
从所述原像素位数到所述指定像素位数的转换。
较佳地,从所述原像素位数到所述指定像素位数的转换,包括:
通过比较所述原像素位数和所述指定像素位数,判断是从高精度向低精度的转换还是从低精度向高精度的转换;
若是从高精度向低精度的转换,则执行量化压缩步骤,所述量化压缩步骤包括用转换前颜色数据中r,g,b分量的所述指定像素位数的高位数据填充转换后颜色数据的r,g,b分量;
若是从低精度向高精度的转换,则执行量化补偿步骤,所述量化补偿步骤包括将转换前颜色数据中r,g,b分量的数据填充至转换后颜色数据的r,g,b分量的高位,用转换前颜色数据中r,g,b分量的数据的低位进行补偿,如果转换后颜色数据仍有未填充的位,继续使用转换前颜色数据中r,g,b分量的低位进行循环补偿,直至转换后颜色数据的r,g,b分量的位数被填满。
较佳地,当所述输入颜色格式包括yuv格式的原采样方式、原存储格式、y,u,v分量的原组合方式,所述输出颜色格式包括rgb格式的r,g,b三个通道的指定组合方式和r,g,b分量的指定像素位数时,调用yuv向rgb的转换流程;
所述yuv向rgb的转换流程包括:
从所述原采样方式、所述原存储格式、所述原组合方式到yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式的转换;
从所述yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式到r,g,b三个通道的通用组合方式和r,g,b分量的通用像素位数的转换;
从所述r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数到所述r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数的转换;
或,当所述输入颜色格式包括rgb格式的r,g,b三个通道的原组合方式和r,g,b分量的原像素位数,所述输出颜色格式包括yuv格式的指定采样方式、指定存储格式、y,u,v分量的指定组合方式时,调用rgb向yuv的转换流程;
所述rgb向yuv的转换流程包括:
从所述r,g,b三个通道的原排列方式和r,g,b分量的原像素位数到r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数的转换;
从所述r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数到yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式的转换;
从yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式到所述r,g,b三个通道的指定组合方式和r,g,b分量的指定像素位数的转换。
本发明提供一种颜色格式转换装置,包括:
获取模块,用于获取颜色数据、所述颜色数据的输入颜色格式和对所述颜色数据指定的输出颜色格式;
转换模块,用于根据所述输入颜色格式和所述输出颜色格式,对所述颜色数据进行从所述输入颜色格式转换到所述输出颜色格式的转换后输出。
较佳地,所述转换模块包括yuv内部转换模块;
当所述输入颜色格式包括yuv格式的原采样方式、原存储格式、y,u,v分量的原组合方式,所述输出颜色格式包括yuv格式的指定采样方式、指定存储格式、y,u,v分量的指定组合方式时,所述yuv内部转换模块用于实现:
从所述原采样方式到所述指定采样方式的转换;
从所述原存储格式到所述指定存储格式的转换;
从所述原组合方式到所述指定组合方式的转换。
较佳地,所述转换模块包括rgb内部转换模块;
当所述输入颜色格式包括rgb格式的r,g,b三个通道的原排列方式和r,g,b分量的原像素位数,所述输出颜色格式包括所述颜色数据的r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数时,所述rgb内部转换模式用于实现:
从所述原排列方式到所述指定排列方式的转换;
从所述原像素位数到所述指定像素位数的转换。
较佳地,从所述原像素位数到所述指定像素位数的转换,包括:
通过比较所述原像素位数和所述指定像素位数,判断是从高精度向低精度的转换还是从低精度向高精度的转换;
若是从高精度向低精度的转换,则执行量化压缩,所述量化压缩包括用转换前颜色数据中r,g,b分量的所述指定像素位数的高位数据填充转换后颜色数据的r,g,b分量;
若是从低精度向高精度的转换,则执行量化补偿步骤,所述量化补偿包括将转换前颜色数据中r,g,b分量的数据填充至转换后颜色数据的r,g,b分量的高位,用转换前颜色数据中r,g,b分量的数据的低位进行补偿,如果转换后颜色数据仍有未填充的位,继续使用转换前颜色数据中r,g,b分量的低位进行循环补偿,直至转换后颜色数据的r,g,b分量的位数被填满。
较佳地,所述转换模块包括yuv与rgb的相互转换模块;
当所述输入颜色格式包括yuv格式的原采样方式、原存储格式、y,u,v分量的原组合方式,所述输出颜色格式包括rgb格式的r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数时,所述yuv与rgb的相互转换模块用于实现:
从所述原采样方式、所述原存储格式、所述原组合方式到yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式的转换;
从所述yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式到r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数的转换;
从所述r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数到所述r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数的转换;
或,当所述输入颜色格式包括rgb格式的r,g,b三个通道的原排列方式和r,g,b分量的原像素位数,所述输出颜色格式包括yuv格式的指定采样方式、指定存储格式、y,u,v分量的指定组合方式时,所述yuv与rgb的相互转换模块用于实现:
从所述r,g,b三个通道的原排列方式和r,g,b分量的原像素位数到r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数的转换;
从所述r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数到yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式的转换;
从yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式到所述r,g,b三个通道的指定组合方式和r,g,b分量的指定像素位数的转换。
本发明提供一种颜色格式转换装置,包括:输入单元、中央处理器、输出单元、内存单元和存储单元;
所述存储单元用于存储转换流程;
所述输入单元用于接收颜色数据、输入颜色格式和输出颜色格式的输入;
所述中央处理器用于根据所述输入颜色格式和所述输出颜色格式,调用所述存储单元中的转换流程在所述内存单元中对所述颜色数据进行处理,完成处理后经过所述输出单元输出。
本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上所述的颜色格式转换方法。
本发明提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上所述的颜色格式转换方法的步骤。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:通过本发明,使用者不用再去为每一种格式转换实现具体的转换方式,只需要指定输入格式、输出格式和输入数据,即可得到指定输出格式的数据。减少yuv与rgb格式转换的复用性差和碎片化问题,有利于使用者进行高效率的程序开发。
附图说明
图1为本发明实施例1的一种颜色格式转换方法的流程图;
图2为本发明实施例1的yuv内部转换流程的过程示意图;
图3为本发明实施例1的rgb内部转换流程的过程示意图;
图4为本发明实施例1的yuv与rgb的相互转换流程的过程示意图;
图5为本发明实施例2的一种颜色格式转换装置的示意框图;
图6为本发明实施例3的一种颜色格式转换装置的示意框图;
图7为本发明实施例5的一种电子设备的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
图1示出了本实施例的一种颜色格式转换方法。其包括:
步骤11:获取颜色数据、颜色数据的输入颜色格式和对颜色数据指定的输出颜色格式。
步骤12:根据输入颜色格式和输出颜色格式,调用实现从输入颜色格式转换到输出颜色格式的转换流程。
步骤13:通过转换流程对颜色数据进行转换后输出。
上述的转换大致可以分为三类:yuv到yuv的转换、rgb到rgb的转换、yuv与rgb的相互转换。
对于yuv到yuv的转换,可以通过yuv内部转换流程实现。具体地,当输入颜色格式包括yuv格式的原采样格式、原存储格式、y,u,v分量的原组合方式,输出颜色格式包括yuv格式的指定采样格式、指定存储格式、y,u,v分量的指定组合方式时,调用yuv内部转换流程。
如图2所示,yuv内部转换流程包括:
从原采样格式到指定采样格式的转换,例如yuv420、yuv422和yuv444不同采样格式之间的转换,可以称之为一级转换;
从原存储格式到指定存储格式的转换,例如planar、semi-planar和packed的不同存储格式之间的转换,可以称之为二级转换;
从原组合方式到指定组合方式的转换,例如yuvuv、yuvyuv之间的转换,可以称之为三级转换。
完成上述的一、二、三级转换后,得到输出颜色格式的颜色数据并输出。
对于rgb到rgb的转换,可以通过rgb内部转换流程实现。具体地,当输入颜色格式包括rgb格式的r,g,b三个通道的原排列方式和r,g,b分量的原像素位数,输出颜色格式包括颜色数据的r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数时,调用rgb内部转换流程。
如图3所示,rgb内部转换流程包括:
从原排列方式到指定排列方式的转换,例如rgb和bgr之间的转换,可以称之为通道转换;
从原像素位数到指定像素位数的转换,例如888和444之间的转换,可以称之为精度转换,其中,从原像素位数到指定像素位数的转换,具体可以包括:
通过比较原像素位数和指定像素位数,判断是从高精度向低精度的转换还是从低精度向高精度的转换;
若是从高精度向低精度的转换,则执行量化压缩步骤,量化压缩步骤包括用转换前颜色数据中r,g,b分量的指定像素位数的高位数据填充转换后颜色数据的r,g,b分量;
若是从低精度向高精度的转换,则执行量化补偿步骤,量化补偿步骤包括将转换前颜色数据中r,g,b分量的数据填充至转换后颜色数据的r,g,b分量的高位,用转换前颜色数据中r,g,b分量的数据的低位进行补偿,如果转换后颜色数据仍有未填充的位,继续使用转换前颜色数据中r,g,b分量的低位进行循环补偿,直至转换后颜色数据的r,g,b分量的位数被填满。
完成上述的通道转换和精度转换后,得到输出颜色格式的颜色数据并输出。
对于yuv与rgb的相互转换,可以通过rgb内部转换流程实现。其中,具体可以包括从yuv到rgb的转换和从rgb到yuv的转换。
如图4所示,从yuv到rgb的转换,具体包括:当输入颜色格式包括yuv格式的原采样格式、原存储格式、y,u,v分量的原组合方式,输出颜色格式包括rgb格式的r,g,b三个通道的指定组合方式和r,g,b分量的指定像素位数时,调用yuv向rgb的转换流程。
yuv向rgb的转换流程包括:
从原采样格式、原存储格式、原组合方式到yuv通用采样格式、通用存储格式、y,u,v分量的通用组合方式的转换;
从yuv通用采样格式、通用存储格式、y,u,v分量的通用组合方式到r,g,b三个通道的通用组合方式和r,g,b分量的通用像素位数的转换;
从r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数到r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数的转换。
上述流程通过将原始的yuv格式转换为通用的yuv格式,再由通用的yuv格式转换为通用的rgb格式,再由通用的rgb格式转换为指定的rgb格式,实现由任意一种yuv格式到任意一种rgb格式的转换,得到输出颜色格式的颜色数据并输出。
从rgb到yuv的转换,具体包括:当输入颜色格式包括rgb格式的r,g,b三个通道的原组合方式和r,g,b分量的原像素位数,输出颜色格式包括yuv格式的指定采样格式、指定存储格式、y,u,v分量的指定组合方式时,调用rgb向yuv的转换流程;
rgb向yuv的转换流程包括:
从r,g,b三个通道的原排列方式和r,g,b分量的原像素位数到r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数的转换;
从r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数到yuv通用采样格式、通用存储格式、y,u,v分量的通用组合方式的转换;
从yuv通用采样格式、通用存储格式、y,u,v分量的通用组合方式到r,g,b三个通道的指定组合方式和r,g,b分量的指定像素位数的转换。
上述流程通过将原始的rgb格式转换为通用的rgb格式,再由通用的rgb格式转换为通用的yuv格式,再由通用的yuv格式转换为指定的yuv格式,实现由任意一种rgb格式到任意一种yuv格式的转换,得到输出颜色格式的颜色数据并输出。
其中,通用yuv格式(包括yuv通用采样格式、通用存储格式、y,u,v分量的通用组合方式)与通用rgb格式(包括r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数)之间的转换可以通过如下方法进行:转换矩阵、查表法和基于汇编语言的转换方法实现。需要注意的是,若基于本发明的内容采用其他方式的yuv与rgb的之间的格式转换,并不影响本发明的实质内容,均视为本发明的保护范围。
本实施例针对yuv和rgb的互相转换以及内部转换的复用性差和碎片化问题,为了便于格式转换方法的移植和提高开发者的程序开发效率,实现了一种颜色格式转换方法,通过该方法,使用者不用再去为每一种格式转换实现具体的转换方式,只需要指定输入颜色格式、输出颜色格式和输入颜色数据,即可得到指定输出颜色格式的数据,达到了以下有益效果:
1、实现了输入颜色格式到输出颜色格式的自动化转换,不需要人工介入。
2、该方法不仅仅是yuv与rgb之间的转换,也能够进行yuv内部转换和rgb内部转换。
3、提出yuv内部转换流程:三级转换,通过该三级转换即可得到指定输出格式的数据。
4、实现模块复用,yuv与rgb之间的转换复用了yuv内部转换和rgb内部转换。
实施例2
图5示出了本实施例的一种颜色格式转换装置。其包括:获取模块21和转换模块22。
获取模块21用于获取颜色数据、颜色数据的输入颜色格式和对颜色数据指定的输出颜色格式。
转换模块22用于根据输入颜色格式和输出颜色格式,对颜色数据进行从输入颜色格式转换到输出颜色格式的转换后输出。
转换模块22可以包括yuv内部转换模块221。
当输入颜色格式包括yuv格式的原采样格式、原存储格式、y,u,v分量的原组合方式,输出颜色格式包括yuv格式的指定采样格式、指定存储格式、y,u,v分量的指定组合方式时,yuv内部转换模块221用于实现:
从原采样格式到指定采样格式的转换;
从原存储格式到指定存储格式的转换;
从原组合方式到指定组合方式的转换。
转换模块22还可以包括rgb内部转换模块222。
当输入颜色格式包括rgb格式的r,g,b三个通道的原排列方式和r,g,b分量的原像素位数,输出颜色格式包括颜色数据的r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数时,rgb内部转换模式222用于实现:
从原排列方式到指定排列方式的转换;
从原像素位数到指定像素位数的转换。
其中,从原像素位数到指定像素位数的转换,具体可以包括:
通过比较原像素位数和指定像素位数,判断是从高精度向低精度的转换还是从低精度向高精度的转换;
若是从高精度向低精度的转换,则执行量化压缩,量化压缩包括用转换前颜色数据中r,g,b分量的指定像素位数的高位数据填充转换后颜色数据的r,g,b分量;
若是从低精度向高精度的转换,则执行量化补偿步骤,量化补偿包括将转换前颜色数据中r,g,b分量的数据填充至转换后颜色数据的r,g,b分量的高位,用转换前颜色数据中r,g,b分量的数据的低位进行补偿,如果转换后颜色数据仍有未填充的位,继续使用转换前颜色数据中r,g,b分量的低位进行循环补偿,直至转换后颜色数据的r,g,b分量的位数被填满。
转换模块22还可以包括yuv与rgb的相互转换模块223。
当输入颜色格式包括yuv格式的原采样格式、原存储格式、y,u,v分量的原组合方式,输出颜色格式包括rgb格式的r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数时,yuv与rgb的相互转换模块223用于实现:
从原采样格式、原存储格式、原组合方式到yuv通用采样格式、通用存储格式、y,u,v分量的通用组合方式的转换;
从yuv通用采样格式、通用存储格式、y,u,v分量的通用组合方式到r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数的转换;
从r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数到r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数的转换。
或,当输入颜色格式包括rgb格式的r,g,b三个通道的原排列方式和r,g,b分量的原像素位数,输出颜色格式包括yuv格式的指定采样格式、指定存储格式、y,u,v分量的指定组合方式时,yuv与rgb的相互转换模块223用于实现:
从r,g,b三个通道的原排列方式和r,g,b分量的原像素位数到r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数的转换;
从r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数到yuv通用采样格式、通用存储格式、y,u,v分量的通用组合方式的转换;
从yuv通用采样格式、通用存储格式、y,u,v分量的通用组合方式到r,g,b三个通道的指定组合方式和r,g,b分量的指定像素位数的转换。
实施例3
图6示出了本实施例的一种颜色格式转换装置。其包括:输入单元31、中央处理器(centralprocessingunit,cpu)32、输出单元33、内存单元34和存储单元35。
存储单元35用于存储实施例1中的转换流程。
输入单元31用于接收颜色数据、输入颜色格式和输出颜色格式的输入;
中央处理器32用于根据输入颜色格式和输出颜色格式,调用存储单元35中的转换流程在内存单元34中对颜色数据进行处理,完成处理后经过输出单元35输出。
上述实施例的方法及装置的实现平台包括基于x86、arm、mipis和powpc架构的cpu,实现系统包括基于android、ios、windows和linux的操作系统。需要注意的是,若基于本发明的内容采用其他硬件系统和软件系统实现的方法及装置,并不影响本发明的实质内容,均视为本发明的保护范围。
实施例4
图7为本发明实施例4提供的一种电子设备的结构示意图。所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例1的颜色格式转换方法。图7显示的电子设备40仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备40可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备40的组件可以包括但不限于:上述至少一个处理器41、上述至少一个存储器42、连接不同系统组件(包括存储器42和处理器41)的总线43。
总线43包括数据总线、地址总线和控制总线。
存储器42可以包括易失性存储器,例如随机存取存储器(ram)421和/或高速缓存存储器422,还可以进一步包括只读存储器(rom)423。
存储器42还可以包括具有一组(至少一个)程序模块424的程序/实用工具425,这样的程序模块424包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器41通过运行存储在存储器42中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1所提供的颜色格式转换方法。
电子设备40也可以与一个或多个外部设备44(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口45进行。并且,模型生成的设备40还可以通过网络适配器46与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图7所示,网络适配器46通过总线43与模型生成的设备40的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备40使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例5
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1所提供的任意一种颜色格式转换方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1所述的颜色格式转换方法中的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、填充一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
1.一种颜色格式转换方法,其特征在于,包括:
获取颜色数据、所述颜色数据的输入颜色格式和对所述颜色数据指定的输出颜色格式;
根据所述输入颜色格式和所述输出颜色格式,调用实现从所述输入颜色格式转换到所述输出颜色格式的转换流程;
通过所述转换流程对所述颜色数据进行转换后输出。
2.如权利要求1所述的颜色格式转换方法,其特征在于,当所述输入颜色格式包括yuv格式的原采样方式、原存储格式、y,u,v分量的原组合方式,所述输出颜色格式包括yuv格式的指定采样方式、指定存储格式、y,u,v分量的指定组合方式时,调用yuv内部转换流程;
所述yuv内部转换流程包括:
从所述原采样方式到所述指定采样方式的转换;
从所述原存储格式到所述指定存储格式的转换;
从所述原组合方式到所述指定组合方式的转换。
3.如权利要求1所述的颜色格式转换方法,其特征在于,当所述输入颜色格式包括rgb格式的r,g,b三个通道的原排列方式和r,g,b分量的原像素位数,所述输出颜色格式包括所述颜色数据的r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数时,调用rgb内部转换流程;
所述rgb内部转换流程包括:
从所述原排列方式到所述指定排列方式的转换;
从所述原像素位数到所述指定像素位数的转换。
4.如权利要求3所述的颜色格式转换方法,其特征在于,从所述原像素位数到所述指定像素位数的转换,包括:
通过比较所述原像素位数和所述指定像素位数,判断是从高精度向低精度的转换还是从低精度向高精度的转换;
若是从高精度向低精度的转换,则执行量化压缩步骤,所述量化压缩步骤包括用转换前颜色数据中r,g,b分量的所述指定像素位数的高位数据填充转换后颜色数据的r,g,b分量;
若是从低精度向高精度的转换,则执行量化补偿步骤,所述量化补偿步骤包括将转换前颜色数据中r,g,b分量的数据填充至转换后颜色数据的r,g,b分量的高位,用转换前颜色数据中r,g,b分量的数据的低位进行补偿,如果转换后颜色数据仍有未填充的位,继续使用转换前颜色数据中r,g,b分量的低位进行循环补偿,直至转换后颜色数据的r,g,b分量的位数被填满。
5.如权利要求1所述的颜色格式转换方法,其特征在于,当所述输入颜色格式包括yuv格式的原采样方式、原存储格式、y,u,v分量的原组合方式,所述输出颜色格式包括rgb格式的r,g,b三个通道的指定组合方式和r,g,b分量的指定像素位数时,调用yuv向rgb的转换流程;
所述yuv向rgb的转换流程包括:
从所述原采样方式、所述原存储格式、所述原组合方式到yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式的转换;
从所述yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式到r,g,b三个通道的通用组合方式和r,g,b分量的通用像素位数的转换;
从所述r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数到所述r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数的转换;
或,当所述输入颜色格式包括rgb格式的r,g,b三个通道的原组合方式和r,g,b分量的原像素位数,所述输出颜色格式包括yuv格式的指定采样方式、指定存储格式、y,u,v分量的指定组合方式时,调用rgb向yuv的转换流程;
所述rgb向yuv的转换流程包括:
从所述r,g,b三个通道的原排列方式和r,g,b分量的原像素位数到r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数的转换;
从所述r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数到yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式的转换;
从yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式到所述r,g,b三个通道的指定组合方式和r,g,b分量的指定像素位数的转换。
6.一种颜色格式转换装置,其特征在于,包括:
获取模块,用于获取颜色数据、所述颜色数据的输入颜色格式和对所述颜色数据指定的输出颜色格式;
转换模块,用于根据所述输入颜色格式和所述输出颜色格式,对所述颜色数据进行从所述输入颜色格式转换到所述输出颜色格式的转换后输出。
7.如权利要求6所述的颜色格式转换装置,其特征在于,所述转换模块包括yuv内部转换模块;
当所述输入颜色格式包括yuv格式的原采样方式、原存储格式、y,u,v分量的原组合方式,所述输出颜色格式包括yuv格式的指定采样方式、指定存储格式、y,u,v分量的指定组合方式时,所述yuv内部转换模块用于实现:
从所述原采样方式到所述指定采样方式的转换;
从所述原存储格式到所述指定存储格式的转换;
从所述原组合方式到所述指定组合方式的转换。
8.如权利要求6所述的颜色格式转换装置,其特征在于,所述转换模块包括rgb内部转换模块;
当所述输入颜色格式包括rgb格式的r,g,b三个通道的原排列方式和r,g,b分量的原像素位数,所述输出颜色格式包括所述颜色数据的r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数时,所述rgb内部转换模式用于实现:
从所述原排列方式到所述指定排列方式的转换;
从所述原像素位数到所述指定像素位数的转换。
9.如权利要求8所述的颜色格式转换装置,其特征在于,从所述原像素位数到所述指定像素位数的转换,包括:
通过比较所述原像素位数和所述指定像素位数,判断是从高精度向低精度的转换还是从低精度向高精度的转换;
若是从高精度向低精度的转换,则执行量化压缩,所述量化压缩包括用转换前颜色数据中r,g,b分量的所述指定像素位数的高位数据填充转换后颜色数据的r,g,b分量;
若是从低精度向高精度的转换,则执行量化补偿步骤,所述量化补偿包括将转换前颜色数据中r,g,b分量的数据填充至转换后颜色数据的r,g,b分量的高位,用转换前颜色数据中r,g,b分量的数据的低位进行补偿,如果转换后颜色数据仍有未填充的位,继续使用转换前颜色数据中r,g,b分量的低位进行循环补偿,直至转换后颜色数据的r,g,b分量的位数被填满。
10.如权利要求6所述的颜色格式转换装置,其特征在于,所述转换模块包括yuv与rgb的相互转换模块;
当所述输入颜色格式包括yuv格式的原采样方式、原存储格式、y,u,v分量的原组合方式,所述输出颜色格式包括rgb格式的r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数时,所述yuv与rgb的相互转换模块用于实现:
从所述原采样方式、所述原存储格式、所述原组合方式到yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式的转换;
从所述yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式到r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数的转换;
从所述r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数到所述r,g,b三个通道的指定排列方式和r,g,b分量的指定像素位数的转换;
或,当所述输入颜色格式包括rgb格式的r,g,b三个通道的原排列方式和r,g,b分量的原像素位数,所述输出颜色格式包括yuv格式的指定采样方式、指定存储格式、y,u,v分量的指定组合方式时,所述yuv与rgb的相互转换模块用于实现:
从所述r,g,b三个通道的原排列方式和r,g,b分量的原像素位数到r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数的转换;
从所述r,g,b三个通道的通用排列方式和r,g,b分量的通用像素位数到yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式的转换;
从yuv通用采样方式、通用存储格式、y,u,v分量的通用组合方式到所述r,g,b三个通道的指定组合方式和r,g,b分量的指定像素位转换。
11.一种颜色格式转换装置,其特征在于,包括:输入单元、中央处理器、输出单元、内存单元和存储单元;
所述存储单元用于存储权利要求1-5任意一项中的转换流程;
所述输入单元用于接收颜色数据、输入颜色格式和输出颜色格式的输入;
所述中央处理器用于根据所述输入颜色格式和所述输出颜色格式,调用所述存储单元中的转换流程在所述内存单元中对所述颜色数据进行处理,完成处理后经过所述输出单元输出。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5中任一项所述的颜色格式转换方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至5中任一项所述的颜色格式转换方法的步骤。
技术总结