2023. 7. 18. 08:49ㆍMultimedia
- 목차
ICC profile?
ICC profile은 국제 컬러 표현의 표준 규격입니다.
색을 서로다른 여러 장치에서 표현할 때 동일하게 표현하기 위한 기준 정보를 저장하고 사용하는 방식에 대해 정의한 표준입니다.
JPEG, WebP, HEIF, PNG 등 많은 image file format이 이를 지원하며, 지원하는 경우 파일 내 헤더 부분에 ICC profile에 대한 메타 데이터가 저장되어 있습니다.
표준 사양은 다음의 link에서 다운 받을 수 있습니다.
https://www.color.org/icc32.pdf
parsing한 예를 다음의 link에서 참고할 수 있습니다.
https://teus.me/820
Refernce software
ICC profile을 parsing하는 software가 ICC 표준 단체에 의해 제공됩니다.
다음의 link에서 코드를 다운로드 받을 수 있습니다.
https://sampleicc.sourceforge.net/
간단히 ./configure 후 make를 수행하면 build가 됩니다.
이후 ICC profile 내용을 parsing 해 보려면 다음과 같이 iccDumpProfile을 실행하면 됩니다.
./Tools/CmdLine/IccDumpProfile/iccDumpProfile icc_data.dat ALL
이때 입력으로 주어지는 icc_data.dat는 ICC profile 데이터만 지는 binary file 입니다. 다른 부분이 섞여 있으면 제대로 parsing 되지 않습니다.
뒤에 ALL은 parsing 시 모든 profile tag를 parsing 한 결과를 보여달라는 option 입니다.
sample file을 parsing한 결과는 다음과 같습니다.
Profile ID: Profile ID not calculated.
Size: 940(0x3ac) bytes
Header
------
Attributes: Reflective | Glossy
Cmm: Kodak
Creation Date: 12/1/1998 18:58:21
Creator: 'KODA' = 4B4F4441
Data Color Space: RgbData
Flags EmbeddedProfileFalse | UseAnywhere
PCS Color Space: XYZData
Platform: Microsoft
Rendering Intent:Perceptual
Type: DisplayClass
Version: 2.10
Illuminant: X=0.9642, Y=1.0000, Z=0.8249
Profile Tags
------------
Tag ID Offset Size
---- ------ ------ ----
copyrightTag 'cprt' 276 72
profileDescriptionTag 'desc' 348 131
mediaWhitePointTag 'wtpt' 480 20
redTRCTag 'rTRC' 500 14
greenTRCTag 'gTRC' 500 14
blueTRCTag 'bTRC' 500 14
redColorantTag 'rXYZ' 516 20
greenColorantTag 'gXYZ' 536 20
blueColorantTag 'bXYZ' 556 20
deviceMfgDescTag 'dmnd' 576 110
deviceModelDescTag 'dmdd' 688 209
Unknown 'mmod' = 6D6D6F64 'mmod' 900 40
Contents of copyrightTag tag ('cprt' = 63707274)
Type: textType
content = "Copyright (c) Eastman Kodak Company, 1999, all rights reserved."
Contents of profileDescriptionTag tag ('desc' = 64657363)
Type: textDescriptionType
content = "ProPhoto RGB"
Contents of mediaWhitePointTag tag ('wtpt' = 77747074)
Type: XYZ Type
content = X=0.9642, Y=1.0000, Z=0.8249
Contents of redTRCTag tag ('rTRC' = 72545243)
Type: curveType
content = BEGIN_CURVE In_Out
Y = X ^ 1.8008
Contents of greenTRCTag tag ('gTRC' = 67545243)
Type: curveType
content = BEGIN_CURVE In_Out
Y = X ^ 1.8008
Contents of blueTRCTag tag ('bTRC' = 62545243)
Type: curveType
content = BEGIN_CURVE In_Out
Y = X ^ 1.8008
Contents of redColorantTag tag ('rXYZ' = 7258595A)
Type: XYZ Type
content = X=0.7977, Y=0.2880, Z=0.0000
Contents of greenColorantTag tag ('gXYZ' = 6758595A)
Type: XYZ Type
content = X=0.1352, Y=0.7119, Z=0.0000
Contents of blueColorantTag tag ('bXYZ' = 6258595A)
Type: XYZ Type
content = X=0.0313, Y=0.0001, Z=0.8249
Contents of deviceMfgDescTag tag ('dmnd' = 646D6E64)
Type: textDescriptionType
content = "KODAK"
Contents of deviceModelDescTag tag ('dmdd' = 646D6464)
Type: textDescriptionType
content = "Reference Output Medium Metric(ROMM) "
Contents of Unknown 'mmod' = 6D6D6F64 tag ('mmod' = 6D6D6F64)
Type: Unknown 'mmod' = 6D6D6F64
content = Unknown Tag Type of 32 Bytes.
Data Follows:
00000000: 00 00 06 10 00 00 9D 03 01 01 01 01 B0 CF 3B 80 ..............;.
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
'Multimedia' 카테고리의 다른 글
JPEG 파일 분석 tool jpeginfo (0) | 2023.08.21 |
---|---|
color (0) | 2023.07.24 |
Color format (0) | 2023.02.02 |
SVC vs. Streaming protocol (0) | 2023.01.19 |
SVC vs. Simulcast (0) | 2023.01.19 |