PlayStation 2(PS2)는 고유한 하드웨어 아키텍처에 최적화된 독점 이미지 포맷을 사용합니다. 이 포맷은 PS2의 그래픽 신디사이저와 벡터 유닛을 활용하여 2D 그래픽의 효율적인 저장 및 렌더링을 가능하게 합니다. 이미지는 시각적 품질과 메모리 사용량의 균형을 맞추기 위해 다양한 색상 모드, 압축 기법, 데이터 레이아웃 을 사용하여 저장됩니다.
PS2 이미지에 사용되는 주요 색상 모드는 32비트 RGBA, 24비트 RGB, 16비트 RGB(565 또는 5551), CLUT(색상 조회표)를 사용한 4비트 또는 8비트 색인 색상입니다. 32비트 RGBA는 투명도를 위한 알파 채널을 사용하여 가장 높은 품질을 제공하는 반면, 4비트 색인은 더 작은 파일 크기로 품질을 희생합니다. 16비트 RGB 모드는 중간 지점을 차지합니다. 선택한 색상 모드는 메모리 사용량과 그래픽의 최대 가능한 디테일과 색상 깊이에 영향을 미칩니다.
PS2 그래픽은 색인 색상 모드에 팔레트를 선택적으로 사용할 수 있습니다. 팔레트 또는 CLUT는 4비트 또는 8비트 색인 값을 16비트 또는 24비트 RGB 색상에 매핑하는 테이블입니다. 팔레트를 사용하면 직접 색상 모드에 비해 더욱 시각적으로 풍부한 그래픽을 더 작은 메모리 공간으로 구현할 수 있지만, 이미지당 16개 또는 256개의 고유한 색상으로 제한된다는 단점이 있습니다. 팔레트는 2D 스프라이트, 텍스트, UI 요소와 같은 간단한 그래픽에 가장 적합합니다.
제한된 메모리를 절약하기 위해 PS2 이미지 데이터를 압축하는 데 여러 가지 기법이 사용됩니다. 가장 간단한 것은 동일한 값의 반복 시퀀스를 카운트와 값 자체로 대체하는 런 길이 인코딩(RLE)입니다. 예를 들어, "AAAAAAABBCCCCCC"는 "7A2B6C"로 압축됩니다. 이 무손실 알고리즘은 동일한 색상의 많은 연속적인 런이 있는 이미지를 압축하는 데 빠르고 효과적입니다.
더욱 발전된 PS2 이미지 압축 방법은 인간 시각 시스템의 특성을 활용하여 인식할 수 없는 정보를 버립니다. 이러한 손실 알고리즘은 이미지 블록을 분석하고 눈에 덜 민감한 고주파 데이터와 색상 정밀도를 선택적으로 버립니다. PS2 하드웨어는 벡터 유닛에 맞게 조정된 벡터 양자화와 블록 절단 코딩의 한 형태를 기본적으로 지원합니다. 압축된 이미지 데이터를 CLUT 팔레트와 페어링하면 디테일한 그래픽을 효율적으로 저장하고 렌더링할 수 있습니다.
PS2 그래픽 파이프라인은 텍스처 처리된 삼각형을 그리는 데 기반합니다. 3D 표면에 매핑되도록 의도된 이미지는 2D 텍스처로 저장됩니다. PS2 텍스처는 텍스처가 표면에 샘플링, 필터링, 적용되는 방식을 제어하기 위해 미프맵을 포함합니다. 이러한 미프맵은 텍스처 처리된 표면이 비스듬한 각도나 멀리서 보일 때 아티팩트를 줄이는 전체 크기 텍스처의 사전 계산된 축소 버전입니다. 단일 PS2 텍스처는 전체 크기 이미지에 이어 일련의 연속적으로 축소된 미프맵으로 구성됩니다.
PS2 그래픽 데이터는 하드웨어가 이미지 픽셀에 효율적으로 액세스할 수 있도록 고유한 방식으로 메모리에 배치됩니다. 색상 데이터는 별도의 비트 평면으로 분할되거나 VRAM에 스위즐 패턴으로 저장될 수 있습니다. 렌더링 성능을 극대화하려면 데이터가 배열되는 방식을 신중하게 고려해야 합니다. 그래픽 신디사이저는 이러한 특수 데이터 레이아웃 규칙을 따르는 이미지와 텍스처를 렌더링하도록 최적화되어 있습니다.
이미지 데이터 자체를 넘어 PS2 그래픽은 종종 수반되는 메타데이터에 의존합니다. 스프라이트의 경우 여기에는 위치, 크기, 회전, 알파 블렌딩 모드와 같은 속성이 포함됩니다. 3D 텍스처의 경우 메타데이터는 차원, 색상 모드, 압축, 미프맵 레벨 수, 텍스처 래핑 및 클램핑 규칙, 텍스처 필터링 모드와 같은 세부 정보를 지정합니다. 이 메타데이터는 PS2에 이미지를 처리하고 적용하는 방법을 지시합니다.