CN102752606A - 一种基于sse2进行色彩空间转换的方法 - Google Patents
一种基于sse2进行色彩空间转换的方法 Download PDFInfo
- Publication number
- CN102752606A CN102752606A CN2011103719018A CN201110371901A CN102752606A CN 102752606 A CN102752606 A CN 102752606A CN 2011103719018 A CN2011103719018 A CN 2011103719018A CN 201110371901 A CN201110371901 A CN 201110371901A CN 102752606 A CN102752606 A CN 102752606A
- Authority
- CN
- China
- Prior art keywords
- value
- rgb
- hsl
- sse2
- hsv
- 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.)
- Granted
Links
Images
Landscapes
- Image Processing (AREA)
- Color Image Communication Systems (AREA)
Abstract
本发明实施例公开了一种基于SSE2进行色彩空间转换的方法,所述方法包括以下步骤:将RGB空间和HSL/HSV的取值范围整数化;获取图像/视频的像素RGB值,对所述像素RGB值进行格式化,得到运算RGB值;利用SSE2指令将所述运算RGB值转换为HSL/HSV值。本发明实施例中,通过对图像/视频RGB空间和HSL/HSV空间的取值进行整数化,并在其基础上利用SSE2指令对图像/视频的像素点的RGB值进行格式化,生成运算RGB值,将格式化后的运算RGB值转换为对应的HSL/HSV值,实现了高效率的色彩空间转换。
Description
技术领域
本发明涉及视频以及图像处理技术领域,尤其涉及一种基于SSE2进行色彩空间转换的方法。
背景技术
RGB(红、绿、蓝)色彩空间是计算机中常见的色彩空间,它通过红、绿、蓝三基色的相加来产生其他的颜色。其中RGB24使用24比特位表示一个像素点的色彩,红、绿、蓝各占8位,可以得到256*256*256种颜色。
HSL和HSV(也叫做HSB)是对RGB色彩空间中点的两种有关系的表示,它们尝试描述比RGB更准确的感知颜色联系,并仍保持在计算上简单。HSL表示hue(色相)、saturation(饱和度)、lightness(亮度),HSV表示hue、saturation、value(色调)而HSB表示hue、saturation、brightness(明度)。
HSL和HSV二者都把颜色描述在圆柱体内的点,这个圆柱的中心轴取值为自底部的黑色到顶部的白色而在它们中间是的灰色,绕这个轴的角度对应于“色相”,到这个轴的距离对应于“饱和度”,而沿着这个轴的距离对应于“亮度”,“色调”或“明度”。
这两种表示在用目的上类似,但在方法上有区别。二者在数学上都是圆柱,但HSV(色相,饱和度,明度)在概念上可以被认为是颜色的倒圆锥体(黑点在下顶点,白色在上底面圆心),HSL在概念上表示了一个双圆锥体和圆球体(白色在上顶点,黑色在下顶点,最大横切面的圆心是半程灰色)。注意尽管在HSL和HSV中“色相”指称相同的性质,它们的“饱和度”的定义是明显不同的。
因为HSL和HSV是设备依赖的RGB的简单变换,(h,s,l)或(h,s,v)三元组定义的颜色依赖于所使用的特定红色、绿色和蓝色“加法原色”。每个独特的RGB设备都伴随着一个独特的HSL和HSV空间。但是(h,s,l)或(h,s,v)三元组在被约束于特定RGB空间比如sRGB的时候就变成明确的了。
从RGB到HSL或HSV的转换设(r,g,b)分别是一个颜色的红、绿和蓝坐标,它们的值是在0到1之间的实数。设max等价于r,g和b中的最大者。设min等于这些值中的最小者。要找到在HSL空间中的(h,s,l)值,这里的h∈[0,360)是角度的色相角,而s,l∈[0,1]是饱和度和亮度,计算为:
h的值通常规范化到位于0到360°之间。而h=0用于max=min的(就是灰色)时候而不是留下h未定义。
HSL和HSV有同样的色相定义,但是其他分量不同。HSV颜色的s和v的值定义如下:
υ=max
SSE2(Streaming SIMD Extensions 2,Intel官方称为SIMD流技术扩展2或数据流单指令多数据扩展指令集2)指令集是Intel公司在SSE指令集的基础上发展起来的。相比于SSE,SSE2使用了144个新增指令,扩展了MMX技术和SSE技术,这些指令提高了广大应用程序的运行性能。随MMX技术引进的SIMD整数指令从64位扩展到了128位,使SIMD整数类型操作的有效执行率成倍提高。双倍精度浮点SIMD指令允许以SIMD格式同时执行两个浮点操作,提供双倍精度操作支持有助于加速内容创建、财务、工程和科学应用。除SSE2指令之外,最初的SSE指令也得到增强,通过支持多种数据类型(例如,双字和四字)的算术运算,支持灵活并且动态范围更广的计算功能。SSE2指令可让软件开发员极其灵活的实施算法,并在运行诸如MPEG-2、MP3、3D图形等之类的软件时增强性能。Intel是从Willamette核心的Pentium4开始支持SSE2指令集的,而AMD则是从K8架构的SledgeHammer核心的Opteron开始才支持SSE2指令集的。它有两个部分组:SSE部分和MMX部分.SSE主要负责处理浮点数,MMX则专门计算整数.SSE2的寄存器容量是MMX的两倍。寄存器存属数据也增加了两倍。在指令处理器速度保持不变的的情况下,通过SSE2优化过的程序和软件运行速度也能提升两倍。由于SSE指令集和MMX指令集相兼容。因此,被MMX优化过的程序很容易背SSE2进行更深层次的优化,达到更好的效果。
在实现本发明的过程中,发明人发现现有技术存在以下技术问题:
现有技术中RGB空间转换为HSL/HSV空间时,浮点运算方式效率低。
发明内容
本发明实施例提供了一种基于SSE2进行色彩空间转换的方法,实现了高效率的色彩空间转换。
本发明实施例提供了一种基于SSE2进行色彩空间转换的方法,包括以下步骤:
将RGB空间和HSL/HSV的取值范围整数化;
获取图像/视频的像素RGB值,对所述像素RGB值进行格式化,得到运算RGB值;
利用SSE2指令将所述运算RGB值转换为HSL/HSV值。
所述将RGB空间和HSL/HSV的取值范围整数化,包括:
将RGB空间的三个通道的值映射到范围0至255;
将HSL空间的三个通道的值映射到范围0至510。
所述对所述像素RGB值进行格式化,得到运算RGB值,包括:
将所述像素RGB值转换为四字节的所述运算RGB值,所述运算RGB的低位为保留值。
所述利用SSE2指令将所述运算RGB值转换为HSL/HSV值,包括:
利用SSE2指令对四字节的所述运算RGB值进行运算,生成对应的所述HSL/HSV值。
本发明实施例的技术方案带来的有益效果如下:通过对图像/视频RGB空间和HSL/HSV空间的取值进行整数化,并在其基础上利用SSE2对图像/视频的像素点的RGB值进行格式化,生成运算RGB值,将格式化后的运算RGB值转换为对应的HSL/HSV值,实现了高效率的色彩空间转换。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中一种基于SSE2进行色彩空间转换的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例一公开了一种YUV色彩空间超范围信号处理的方法,如图1所示,包括以下步骤:
步骤S101,将RGB空间和HSL/HSV的取值范围整数化,包括:
将RGB空间的三个通道的值映射到0-255;
将HSL空间的三个通道的值映射到0-510。
步骤S102,获取图像/视频的像素RGB值,对所述像素RGB值进行格式化,得到运算RGB值,包括:
将所述像素RGB值转换为四字节的所述运算RGB值,所述运算RGB的低位为保留值。
步骤S103,利用SSE2 intrinsics将所述运算RGB值转换为HSL/HSV值,包括:
利用SSE2 intrinsics对四字节的所述运算RGB值进行运算,生成对应的所述HSL/HSV值。
本发明实施例的技术方案带来的有益效果如下:通过对图像/视频RGB空间和HSL/HSV空间的取值进行整数化,并在其基础上利用SSE2对图像/视频的像素点的RGB值进行格式化,生成运算RGB值,将格式化后的运算RGB值转换为对应的HSL/HSV值,实现了高效率的色彩空间转换。
本发明实施例二,公开了一种YUV色彩空间超范围信号处理的方法,如图1所示,包括以下步骤:
步骤S201,将RGB空间和HSL/HSV的取值范围整数化,包括:
将RGB空间的三个通道的值映射到0-255;
将HSL空间的三个通道的值映射到0-510。
具体过程如下:
步骤S202,获取图像/视频的像素RGB值,对所述像素RGB值进行格式化,得到运算RGB值,包括:
将所述像素RGB值转换为四字节的所述运算RGB值,所述运算RGB的低位为保留值。
在整数化的基础上,考虑到图像的特征,将每个像素看做占用四个字节,四字节的低位为一个保留值,采用汇编进行进一步的效率优化。
利用SSE2 intrinsics,可以一次处理四个字节的值,而不用逐个字节去处理。考虑到RGB空间与HSL空间转换时的特殊性,有大量的分支语句存在,利用SSE2在没有分支语句(if else语句)的部分进行优化,将RGB空间与HSL空间转换的系数计算部分用intrinsics来实现。
步骤S203,利用SSE2 intrinsics将所述运算RGB值转换为HSL/HSV值,包括:
利用SSE2 intrinsics对四字节的所述运算RGB值进行运算,生成对应的所述HSL/HSV值。
转换过程如下:
本发明实施例的技术方案带来的有益效果如下:通过对图像/视频RGB空间和HSL/HSV空间的取值进行整数化,并在其基础上利用SSE2对图像/视频的像素点的RGB值进行格式化,生成运算RGB值,将格式化后的运算RGB值转换为对应的HSL/HSV值,实现了高效率的色彩空间转换。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于SSE2进行色彩空间转换的方法,其特征在于,包括以下步骤:
将RGB空间和HSL/HSV的取值范围整数化;
获取图像/视频的像素RGB值,对所述像素RGB值进行格式化,得到运算RGB值;
利用SSE2指令将所述运算RGB值转换为HSL/HSV值。
2.如权利要求1所述一种基于SSE2进行色彩空间转换的方法,其特征在于,所述将RGB空间和HSL/HSV的取值范围整数化,包括:
将RGB空间的三个通道的值映射到范围0至255;
将HSL空间的三个通道的值映射到范围0至510。
3.如权利要求1所述一种基于SSE2进行色彩空间转换的方法,其特征在于,所述对所述像素RGB值进行格式化,得到运算RGB值,包括:
将所述像素RGB值转换为四字节的所述运算RGB值,所述运算RGB的低位为保留值。
4.如权利要求3所述一种基于SSE2进行色彩空间转换的方法,其特征在于,所述利用SSE2指令将所述运算RGB值转换为HSL/HSV值,包括:
利用SSE2指令对四字节的所述运算RGB值进行运算,生成对应的所述HSL/HSV值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110371901.8A CN102752606B (zh) | 2011-11-21 | 2011-11-21 | 一种基于sse2进行色彩空间转换的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110371901.8A CN102752606B (zh) | 2011-11-21 | 2011-11-21 | 一种基于sse2进行色彩空间转换的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102752606A true CN102752606A (zh) | 2012-10-24 |
CN102752606B CN102752606B (zh) | 2016-06-15 |
Family
ID=47032480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110371901.8A Expired - Fee Related CN102752606B (zh) | 2011-11-21 | 2011-11-21 | 一种基于sse2进行色彩空间转换的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102752606B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561252A (zh) * | 2013-11-21 | 2014-02-05 | 无锡硅奥科技有限公司 | 一种hsl到rgb色彩空间转换的方法 |
CN103747225A (zh) * | 2014-01-23 | 2014-04-23 | 福州大学 | 基于颜色空间转换的高动态范围图像双屏显示方法 |
CN103780887A (zh) * | 2013-12-27 | 2014-05-07 | 北京时代奥视数码技术有限公司 | 一种视频信号处理方法及装置 |
CN104023165A (zh) * | 2014-06-05 | 2014-09-03 | 江苏紫光吉地达环境科技有限公司 | 一种快速色彩判别方法 |
CN108076336A (zh) * | 2016-11-14 | 2018-05-25 | 北京航天长峰科技工业集团有限公司 | 一种基于avx技术的快速颜色空间转换方法 |
CN110490945A (zh) * | 2019-09-11 | 2019-11-22 | 宋清海 | 一种图像色彩的调整方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060274212A1 (en) * | 2005-06-01 | 2006-12-07 | Wintek Corporation | Method and apparatus for four-color data converting |
CN101739238A (zh) * | 2010-01-14 | 2010-06-16 | 上海交通大学 | 针对sse2指令的二进制浮点翻译方法 |
-
2011
- 2011-11-21 CN CN201110371901.8A patent/CN102752606B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060274212A1 (en) * | 2005-06-01 | 2006-12-07 | Wintek Corporation | Method and apparatus for four-color data converting |
CN101739238A (zh) * | 2010-01-14 | 2010-06-16 | 上海交通大学 | 针对sse2指令的二进制浮点翻译方法 |
Non-Patent Citations (1)
Title |
---|
刘云粼等: ""基于SSE2的YUV与RGB色彩空间转换"", 《中国图象图形学报》, 31 January 2010 (2010-01-31), pages 3 - 4 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561252A (zh) * | 2013-11-21 | 2014-02-05 | 无锡硅奥科技有限公司 | 一种hsl到rgb色彩空间转换的方法 |
CN103780887A (zh) * | 2013-12-27 | 2014-05-07 | 北京时代奥视数码技术有限公司 | 一种视频信号处理方法及装置 |
CN103780887B (zh) * | 2013-12-27 | 2016-01-20 | 北京时代奥视科技股份有限公司 | 一种视频信号处理方法及装置 |
CN103747225A (zh) * | 2014-01-23 | 2014-04-23 | 福州大学 | 基于颜色空间转换的高动态范围图像双屏显示方法 |
CN103747225B (zh) * | 2014-01-23 | 2015-11-18 | 福州大学 | 基于颜色空间转换的高动态范围图像双屏显示方法 |
CN104023165A (zh) * | 2014-06-05 | 2014-09-03 | 江苏紫光吉地达环境科技有限公司 | 一种快速色彩判别方法 |
CN108076336A (zh) * | 2016-11-14 | 2018-05-25 | 北京航天长峰科技工业集团有限公司 | 一种基于avx技术的快速颜色空间转换方法 |
CN110490945A (zh) * | 2019-09-11 | 2019-11-22 | 宋清海 | 一种图像色彩的调整方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102752606B (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102752606A (zh) | 一种基于sse2进行色彩空间转换的方法 | |
US9661187B1 (en) | Color gamut mapping method based on color gamut of source image | |
KR20050049007A (ko) | 칼라영상의 색조절방법 및 장치 | |
CN106228581A (zh) | 通过gpu将像素格式由argb转换为nv12的方法及系统 | |
US20140184612A1 (en) | Variable-width differential memory compression | |
US9478069B2 (en) | Compression format conversion for texture data | |
CN102280096A (zh) | 一种融合图像缩放与颜色空间转换的方法 | |
JP2021044801A (ja) | データ圧縮システムおよびデータマッピング方法 | |
CN102750116A (zh) | 一种yuv色彩空间超范围信号处理的方法 | |
CN105657386A (zh) | 基于fpga的图像色彩校正方法及装置 | |
US20220101772A1 (en) | Enhanced smoothness digital-to-analog converter interpolation systems and methods | |
JP5785256B2 (ja) | テキストレンダリングのためのルックアップテーブル | |
CN106412544A (zh) | 色域保持系统和方法 | |
CN105657391A (zh) | 一种图像处理的方法及装置 | |
CN104077794B (zh) | 图片染色方法及装置 | |
CN108154539A (zh) | 一种基于Opengl ES的颜色空间数据转化算法 | |
CN103209331A (zh) | 增强图像色彩饱和度的系统及方法 | |
CN101501751A (zh) | 显示装置、生成4个以上的原色信号的方法、用于使生成4个以上的原色信号的处理在计算机中实行的程序 | |
CN102752608A (zh) | 一种实现快速色彩校正的方法和装置 | |
US7911665B1 (en) | Preserving pure primary colors in color transforms | |
CN105704464A (zh) | 一种基于fpga的色域空间转换方法 | |
CN103489427A (zh) | Yuv转换成rgb以及rgb转换成yuv的方法和系统 | |
WO2019006965A1 (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
Liu et al. | A fast algorithm for color space conversion and rounding error analysis based on fixed-point digital signal processors | |
CN103034975A (zh) | 图像处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160615 Termination date: 20161121 |
|
CF01 | Termination of patent right due to non-payment of annual fee |