맨위로가기

RGBA 색 공간

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

RGBA 색 공간은 컴퓨터 그래픽스에서 색상을 표현하는 데 사용되는 방식으로, 각 채널(빨강(R), 녹색(G), 파랑(B), 투명도(A))의 값을 8비트로 표현하여 총 32비트 단어로 색상을 인코딩한다. RGBA 색 공간은 바이트 순서와 워드 순서에 따라 다양한 방식으로 데이터를 저장하며, 엔디안 시스템에 따라 데이터 저장 방식이 달라진다. RGBA8888, ARGB32, RGBA32와 같은 다양한 표현 방식이 존재하며, OpenGL, PNG 등 다양한 그래픽 시스템에서 사용된다.

더 읽어볼만한 페이지

  • 색 공간 - SÉCAM
    SECAM은 프랑스에서 개발된 아날로그 컬러 텔레비전 방송 방식으로, PAL에 비해 수직 색 해상도가 낮고 아날로그 편집이 어려운 단점이 있으며, 프랑스의 옛 식민지, 일부 동유럽 국가, 소련 등에서 사용되었으나 현재는 사용 국가가 크게 감소하였다.
  • 색 공간 - PAL
    PAL은 발터 브루흐가 개발한 컬러 텔레비전 방송 표준으로, 위상 오차 자동 보정 기능을 가지며, 다양한 변종이 존재했으나 디지털 방송으로 전환되며 사용이 감소하고, 색상 정보 인코딩 방식을 나타낸다.
RGBA 색 공간

2. 표현

컴퓨터 그래픽스에서 RGBA 색 공간 정보를 인코딩하는 픽셀은 컴퓨터 메모리 (또는 디스크의 파일)에 저장된다. 대부분 각 채널에 대해 4개의 동일한 크기의 인접 메모리 조각이 사용되며, 각 채널의 0은 검은색 또는 투명한 알파를, 모든 1 비트는 흰색 또는 완전히 불투명한 알파를 나타낸다. 가장 일반적인 형식은 각 채널에 대해 8비트 (1 바이트)를 저장하는 것으로, 각 픽셀은 32비트이다.

메모리에서 이 4개 바이트의 순서는 다를 수 있으며, 이는 이미지 데이터 교환 시 혼란을 야기할 수 있다. 이러한 인코딩은 보통 4개의 문자(RGBA)로 표시되는데, 이 약어는 두 가지 방식으로 해석될 수 있다. "RGBA" 약어에 대한 자세한 내용은 하위 섹션을 참고하라.

빅 엔디안 시스템에서는 두 가지 방식이 동일하지만, 리틀 엔디안 시스템에서는 서로 반대이다. 따라서 인코딩을 언급할 때는 어떤 순서를 사용하는지 명시하는 것이 중요하다.

2. 1. 바이트 순서 방식

바이트 순서 방식에서 "RGBA"는 바이트 R, 바이트 G, 바이트 B, 바이트 A가 차례로 오는 것을 의미하는 것으로 이해된다. 이 방식은 바이트 지향적인 파일 형식이나 네트워크 프로토콜을 설명하는 데 일반적으로 사용된다.

RGBA 표현 변환기[1]
리틀 엔디언빅 엔디언
RGBA8888ABGR32RGBA32
ARGB32BGRA8888ARGB8888
RGBA32ABGR8888RGBA8888


2. 2. 워드 순서 방식

"RGBA"라는 용어는 두 가지 의미로 해석될 수 있어 혼란을 야기할 수 있다.

  • 바이트 순서 방식: "RGBA"는 R, G, B, A 바이트가 순서대로 오는 것을 의미한다. 이 방식은 바이트 지향적인 파일 형식이나 네트워크 프로토콜을 설명하는 데 주로 사용된다.
  • 워드 순서 방식: "RGBA"는 32비트 단어를 나타내며, R(빨강)이 G(녹색)보다 중요하고, G는 B(파랑)보다, B는 A(알파)보다 중요하다는 것을 의미한다.


빅 엔디안 시스템에서는 두 방식이 동일하지만, 리틀 엔디안 시스템에서는 서로 반대이다. 따라서 어떤 순서를 사용하는지 명확하게 표기하는 것이 중요하다. 이 문서에서는 4개의 8비트 단위(RGBA8888, ARGB8888, ABGR8888)인지, 하나의 32비트 단위(RGBA32, ARGB32, ABGR32)인지를 구분하여 표기한다.

다음은 RGBA 표현 변환을 나타내는 표이다.

RGBA 표현 변환기
리틀 엔디안빅 엔디안
RGBA8888ABGR32RGBA32
ARGB32BGRA8888ARGB8888
RGBA32ABGR8888RGBA8888


2. 3. 엔디안 시스템에 따른 차이

빅 엔디안 시스템에서는 바이트 순서 방식과 워드 순서 방식이 동일하다. 하지만 리틀 엔디안 시스템에서는 두 방식이 서로 반대이다. 따라서 인코딩을 언급할 때 어떤 순서를 사용하는지 명시하는 것이 중요하다.

컴퓨터 그래픽스에서 RGBA 색 공간 정보를 픽셀 단위로 인코딩하여 컴퓨터 메모리나 디스크 파일에 저장할 때, 대부분 각 채널(빨강, 초록, 파랑, 알파)에 대해 4개의 동일한 크기의 인접한 메모리 조각을 사용한다. 각 채널은 8비트(1 바이트)로 저장되며, 0은 검은색 또는 투명한 알파를, 모든 1 비트는 흰색 또는 완전히 불투명한 알파를 나타낸다. 따라서 각 픽셀은 총 32비트로 표현된다.

메모리에서 이 4바이트의 순서는 다를 수 있으며, 이는 이미지 데이터 교환 시 혼란을 야기할 수 있다. 이러한 인코딩은 RGBA와 같이 4개의 문자로 표시되는데, 이 약어의 해석 방식은 두 가지가 있다.

  • 바이트 순서 방식: "RGBA"는 R, G, B, A 바이트가 차례로 오는 것을 의미한다. 바이트 지향적인 파일 형식이나 네트워크 프로토콜을 설명하는 데 주로 사용된다.
  • 워드 순서 방식: "RGBA"는 32비트 단어 전체를 나타내며, R, G, B, A 순서로 중요도를 가진다.


어떤 순서가 사용되는지를 명확하게 하기 위해, 4개의 8비트 단위인 경우에는 "8888" 접미사를, 하나의 32비트 단위인 경우에는 "32" 접미사를 붙여서 표현하기도 한다.

다음은 RGBA 표현 방식 간의 변환을 나타내는 표이다.

RGBA 표현 변환기
리틀 엔디안빅 엔디안
RGBA8888ABGR32RGBA32
ARGB32BGRA8888ARGB8888
RGBA32ABGR8888RGBA8888


3. RGBA8888

OpenGLPNG는 RGBA 바이트 순서를 사용한다. 이 순서에서 색상은 메모리에 R이 가장 낮은 주소에 저장되고, G, B, A 순으로 저장된다. 리틀 엔디안 아키텍처에서는 ABGR32와 같다.[1]

채널당 8비트 이상(16비트 또는 부동 소수점 등)을 사용하는 많은 시스템에서는 8비트 채널이 다른 순서로 저장되어도 채널은 RGBA 순서로 저장된다.

4. ARGB32

채널은 메모리에 단일 32비트 부호 없는 정수가 알파 샘플을 최상위 8비트에, 그 뒤에 빨간색 샘플, 녹색 샘플, 마지막으로 파란색 샘플을 최하위 8비트에 배치하는 방식으로 정렬된다.

일반적인 32bpp 픽셀의 샘플 레이아웃


ARGB 값은 일반적으로 8개의 16진법 숫자를 사용하여 표현되며, 각 16진법 숫자 쌍은 각각 알파, 빨강, 녹색 및 파랑 채널의 값을 나타낸다. 예를 들어, `80FFFF00`은 50.2% 불투명(사전 곱셈되지 않음) 노란색을 나타낸다. `80` 16진수 값은 10진수로 128이며, 이는 최대값 255(16진수 FF)의 약 50.2%이므로 50.2%의 알파 값을 나타낸다. `80FFFF00` 값을 계속 해독하면, 첫 번째 `FF`는 빨간색이 가질 수 있는 최대값을 나타내고, 두 번째 `FF`는 녹색의 최대값, 마지막 `00`은 파란색이 가질 수 있는 최소값(사실상 파란색 없음)을 나타낸다. 결과적으로 빨간색과 녹색을 합하면 노란색이 된다. 알파가 사용되지 않는 경우 `RRGGBB`의 6자리 숫자로 단축될 수 있으며, 이것이 알파를 최상위 비트에 배치하도록 선택한 이유이다. 문맥에 따라 16진수 숫자 앞에 `0x` 또는 숫자 기호(#)가 붙는다.[2]

이 레이아웃은 개인용 컴퓨터에 24비트 색상(및 32비트 RGBA)이 도입되면서 인기를 얻었다. 당시에는 프로그램이 4개의 8비트 단위보다 하나의 32비트 단위를 조작하는 것이 훨씬 빠르고 쉬웠다.

리틀 엔디언 시스템에서는 BGRA 바이트 순서와 동일하다. 빅 엔디언 시스템에서는 ARGB 바이트 순서와 동일하다.

5. RGBA32

일부 소프트웨어에서는 색상이 ARGB32와 유사하게 32비트로 저장되었지만, 알파 채널은 최상위 비트가 아닌 최하위 8비트에 있었다. 예를 들어, 808000FF는 빨강과 녹색: 50.2%, 파랑: 0%, 알파: 100%로, 갈색을 나타낸다. 이는 빅 엔디안 머신에서 RGBA8888 데이터를 단어 단위로 읽을 때 얻을 수 있는 값이다. 이 형식은 이동식 임의 맵과 FLTK에서 사용되지만, 일반적으로는 드물게 사용된다.

RGBA 픽셀 레이아웃


리틀 엔디언 머신에서는 바이트가 ABGR 순서로 메모리에 저장된다.

6. 표현 변환 테이블

RGBA 표현 변환기
리틀 엔디안빅 엔디안
RGBA8888ABGR32RGBA32
ARGB32BGRA8888ARGB8888
RGBA32ABGR8888RGBA8888


참조

[1] 웹사이트 Portable Network Graphics (PNG) Specification (Second Edition) https://www.w3.org/T[...] 2021-11-25
[2] 웹사이트 Microsoft MSDN XAML Color Structure reference http://msdn.microsof[...] Microsoft MSDN



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com