PCX
PCX파일 이름 확장명 | .pcx |
---|---|
인터넷 미디어 유형 | image/vnd.zbrush.pcx ,image/x-pcx (사용되지 않음)[1] |
개발자 | ZSoft Corporation |
초기 릴리즈 | 1985년; | (
최신 릴리즈 | 5 1991; 전 |
형식 유형 | 무손실 비트맵 이미지 형식 |
PCX는 PiCture eXchange의 약자로, 지금은 없어진 미국 조지아주 마리에타 ZSoft Corporation이 개발한 이미지 파일 형식이다.이후 BMP, JPEG, PNG와 같은 보다 정교한 이미지 포맷에 의해 성공했지만 PCX 파일은 그 포맷이 확장되어 왔지만, 일반적으로 저장된 2색 또는 4색부터 16색, 256색까지의 팔레트 색인으로 색인화된 이미지들에 의해 PC Paintbrush의 네이티브 파일 형식이었고, 널리 인정된 최초의 DOS 이미지 표준 중 하나가 되었다.실제(24비트) 영상도 기록한다.[2]
PCX 이미지 형식
비트 깊이 | 평면 | 색상 수 |
---|---|---|
4 | 1 | 팔레트에서 16가지 색상 |
8 | 1 | 팔레트에서 256가지 색상 |
8 | 1 | 회색 256색조 |
4 | 4 | 16단계 투명도를 가진 4096가지 |
8 | 3 | 1670만, 24비트 "진정한 색" |
8 | 4 | 투명도 256등급 1670만 명 |
1 | 1 | 2가지 색상 단색(1비트)(Win 3.1 Paintbrush) |
1 | 4 | 4개 평면(Win 3.1 Paintbrush)에 16가지 색상 RGBi(4비트) |
PCX는 PC 디스플레이 하드웨어의 초기 개발 과정에서 설계되었으며, PC가 지원하는 포맷은 대부분 더 이상 사용되지 않는다.표 A는 가장 일반적으로 사용되는 PCX 형식 목록을 보여준다.현대의 이미지 편집 프로그램은 오래된 하드웨어와 일치하는 PCX 파일을 읽지 않을 수 있다.
PCX는 ACDSee, KIMP, ImageMagick, IrfanView, LView, Netpbm, PaintoShop Pro, Photoshop, Visio, PMview, XnView, GraphicConverter를 포함한 일반적인 이미지 처리 소프트웨어에서 지원된다.[3][4]2.1.4 버전에서 FFmpeg는 PCX 픽셀 형식 rgb24, rgb8, bgr8, rgb4_byte, bgr4_byte, 회색, pal8 및 monob을 인코딩하고 디코딩할 수 있다.[5]
일부 컴퓨터 팩스 및 문서 관리 프로그램에서 사용하는 PCX의 다중 페이지 버전이 있으며 파일 확장자가 있다..dcx
DCX 파일은 다음의 PCX 파일들의 집합을 소개하는 헤더로 구성된다.[6]
PCX 파일 형식
PCX 파일은 IBM 호환 PC에서 사용하도록 설계되었으며 항상 작은 Endian 바이트 순서를 사용한다.PCX 파일에는 다음과 같은 순서로 세 개의 주요 섹션이 있다.
- 128바이트 헤더
- 이미지 데이터
- (선택사항) 256색 팔레트
PCX 파일 헤더에는 식별자 바이트(값 10), 버전 번호, 이미지 치수, 16 팔레트 색상, 숫자 색상 평면, 각 평면의 비트 깊이, 압축 방법 값이 포함되어 있다.PCX 버전 번호는 0에서 5까지이며, 이는 원래 PCX 파일을 만드는 데 사용된 PC Paintbrush 프로그램의 버전을 가리킨다.사용되는 색의 수는 이미지의 비트 깊이에 따라 다르지만 헤더에는 항상 16가지 색상의 공간이 있다.[clarification needed]헤더는 18개의 필드로 구성된다.[7][2]
오프셋 16진수 | 간격띄우기 데크 | 크기 | 목적 |
---|---|---|---|
00 | 0 | 1바이트 | 16진수로 평가된 고정 헤더 필드 0x0A (= 10진수). |
01 | 1 | 1바이트 | Paintbrush 소프트웨어 릴리즈를 참조하는 버전 번호:
|
02 | 2 | 1바이트 | 이미지 데이터를 인코딩하는 데 사용되는 방법.다음이 될 수 있음:
|
03 | 3 | 1바이트 | 한 평면을 구성하는 비트 수입니다.대부분의 경우 1, 2, 4 또는 8. |
04 | 4 | 2바이트 | 영상 위치의 최소 x 좌표. |
06 | 6 | 2바이트 | 영상 위치의 최소 y 좌표. |
08 | 8 | 2바이트 | 영상 위치의 최대 x 좌표. |
0A | 10 | 2바이트 | 영상 위치의 최대 y 좌표. |
0C | 12 | 2바이트 | DPI의 수평 이미지 해상도. |
0E | 14 | 2바이트 | DPI의 수직 이미지 해상도. |
10 | 16 | 48바이트 | 16색 이미지를 위한 EGA 팔레트. |
40 | 64 | 1바이트 | 일반적으로 0으로 설정된 첫 번째 예약 필드. |
41 | 65 | 1바이트 | 픽셀 데이터를 구성하는 색상 평면의 수입니다.대부분 1, 3 또는 4로 선택된다. |
42 | 66 | 2바이트 | 단일 스캔 라인을 나타내는 하나의 색상 평면의 바이트 수입니다. |
44 | 68 | 2바이트 | 팔레트를 구속하는 모드:
|
46 | 70 | 2바이트 | 소스 시스템 화면의 수평 해상도. |
48 | 72 | 2바이트 | 소스 시스템 화면의 수직 해상도. |
4A | 74 | 54바이트 | 두 번째 예약된 필드는 향후 확장을 위해 사용되며 일반적으로 0바이트로 설정된다. |
모든 PCX 파일은 동일한 압축 방식을 사용하며 압축 값은 항상 1이다.다른 값은 정의되지 않았으며 압축되지 않은 PCX 파일은 없다.한 소식통은 0(압축되지 않은)이 허용된다고 주장하지만 이를 지원하는 소프트웨어가 많지 않다.[8]
이미지 데이터 레이아웃
행 0 | R R R R R R R R R R R R R |
G G G G G G G G G G G | |
B B B B B B B B B B B B | |
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A | |
행1길 | R R R R R R R R R R R R R |
G G G G G G G G G G G | |
B B B B B B B B B B B B | |
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A | |
2열 등 | .... |
PCX 영상 데이터는 행 또는 스캔 라인에 하향식으로 저장된다.영상에 여러 평면이 있는 경우 이러한 평면은 행 내 평면별로 저장되며, 행 0에 대한 모든 빨간색 데이터가 그 다음에 행 0에 대한 모든 녹색 데이터가 그 다음에 청색 데이터가 그 다음에 알파 데이터가 온다.이 패턴은 표 B와 같이 각 선에 대해 반복된다.
이미지가 픽셀당 8비트 미만이면 각 선은 다음 짝수 바이트 경계까지 패딩된다.[7]예를 들어, 영상에 폭 22픽셀의 1비트 데이터(모노크롬)의 평면이 있는 경우 각 행의 길이는 4바이트로, 행당 32비트를 사용하고 10비트를 사용하지 않는다.
이미지 데이터 압축
PCX 이미지 데이터는 동일한 값을 가진 3개 이상의 연속 바이트를 2바이트 쌍으로 축소하는 단순 무손실 압축 알고리즘인 RLE(Run-Length Encryption)를 사용하여 압축된다.바이트의 가장 중요한 두 개의 비트는 주어진 데이터가 주어진 팔레트 색인 또는 색상 값의 단일 픽셀을 나타내는 것인지, 또는 단일 값의 여러 픽셀의 시리즈를 나타내는 RLE 쌍을 나타내는지를 결정하는 데 사용된다.
- 두 비트가 모두 1이면 바이트는 실행 길이로 해석된다.이는 실제 실행 길이 값에 대해 6비트를 남긴다. 즉, 값 범위는 0-63이다.
- 어떤 경우든 바이트는 단일 픽셀 값으로 해석된다.이것은 비트 #7과 비트 #8이 동시에 1이 아닌 모든 값을 남긴다.이 요건은 192(이진 11000000) 이상의 모든 값으로 충족되지는 않는다.
TGA RLE 압축으로 가능한 최대 실행 길이 128에 비해 PCX 런 길이 인코딩은 단일 픽셀 값 범위가 더 큰 반면 최대 실행 길이는 63개로 제한된다.
가장 중요한 두 개의 비트를 플래그로 사용하기 때문에 192 ~ 255(가장 중요한 비트가 이미 설정된 경우)의 픽셀 값은 한두 개의 픽셀만 연속적으로 발생하는 경우에도 RLE 바이트 쌍으로 저장해야 하는 반면, 색지수 0 ~ 191은 직접 저장하거나 RLE 바이트 쌍(둘 중 더 공간 효율적)으로 저장할 수 있다.파일이 다른 이미지와 색상 팔레트를 공유해야 하는 경우에는 가능하지 않지만 팔레트 항목의 적절한 정렬을 통해 실제 압축 비율을 최적화할 수 있다.예를 들어, 팔레트는 0에서 191까지 팔레트 위치에서 가장 일반적으로 사용되는 색상과 팔레트의 나머지 1/4에 할당되는 가장 일반적인 색상으로 최적화될 수 있다.
RLE 알고리즘의 또 다른 비효율성은 길이가 0인 청크를 저장할 수 있어 파일에 공백이 가능하다는 것이다.이를 통해 PCX 파일은 원래 의도했던 프로세서에서 약간 더 빨리 압축이 풀릴 수 있었다.이 괴짜는 스테가노그래피에 사용될 수 있다.
PCX 압축 알고리즘은 프로세서 전원이나 메모리를 거의 필요로 하지 않는데, 이는 설계 당시 컴퓨터 시스템의 중요한 문제였다.컴퓨터와 디스플레이 하드웨어가 정교해지면서 PCX 알고리즘은 공간 효율성이 떨어진다.새로운 이미지 형식에 의해 사용되는 압축 알고리즘은 사진과 같은 이미지를 압축할 때 더 효율적이며, 디터링되거나 그 밖의 복잡한 그래픽을 압축할 때 더 효율적이다.
색상 팔레트
PCX 파일의 헤더에는 16색 팔레트를 위한 공간이 있다.256색 VGA 하드웨어를 사용할 수 있게 되었을 때 PCX 파일의 팔레트를 위한 공간이 충분하지 않았다. 헤더 뒤에 사용되지 않은 54바이트도 충분하지 않을 것이다.선택한 해결책은 파일 끝에 팔레트를 마커 바이트와 함께 넣어 그 존재를 확인하는 것이었다.
PCX 파일에 256색 팔레트가 있으면 파일 끝에서 768바이트가 발견된다.이 경우 팔레트 앞의 바이트 값은 12(0x0C)가 되어야 한다.팔레트는 일련의 RGB 3중으로 저장되며, 팔레트의 사용 가능한 길이는 이미지의 색상 수로 정의된다.PCX 팔레트의 색상 값은 이미지의 비트 깊이에 관계없이 항상 8비트를 사용한다.
참조
- ^ .pcx MIME 유형이 IANA에 등록되지 않음
- ^ a b James D. Murray; William vanRyper (April 1996). "Encyclopedia of Graphics File Formats, Second Edition". O'Reilly. ISBN 1-56592-161-5. Retrieved 2014-03-07.
- ^ Nir Sofer. ".pcx Extension". Retrieved 2014-01-12.
- ^ "File Type: Microsoft PaintBrush Bitmap Graphic". Windows File Association. Microsoft. 2013. Retrieved 2014-01-12.
- ^ "Image Formats". FFmpeg General Documentation. 2014. Retrieved 2014-02-23.
- ^ ".DCX File Extension". fileinfo.com. 2010-02-19. Retrieved 2014-03-14.
- ^ a b Dean Ansley (1991). "ZSoft PCX File Format Technical Reference Manual". ZSoft Corporation. Retrieved 2014-03-14.
- ^ "PCX Format". ModdingWiki. 2012-06-23. Retrieved 2014-03-14.