Netpbm 포맷 (PNM 분석 #1)

윤찬호·2023년 2월 13일
0

이미지포맷

목록 보기
8/11

1. Netpbm 이란

Netpbm
Netpbm (이전의 Pbmplus)은 그래픽 프로그램 및 프로그래밍 라이브러리의 오픈 소스 패키지입니다.
주로 Unix 세계에서 사용되며 모든 주요 오픈 소스 운영 체제 배포판에 포함되어 있지만 Microsoft Windows , macOS 및 기타 운영 체제에서도 작동합니다.

2. PNM 이란

PPM(portable pixmap format), PGM(portable graymap format)PBM(portable bitmap format) 은 플랫폼 간에 쉽게 교환할 수 있도록 설계된 이미지 파일 형식이다.
이 세가지 포맷을 집합적으로 PNM(Portable anymap format)이라고 부르고 Netpbm 프로젝트에서 사용되고 정의된다.

3. PNM vs BMP

PBM 파일은 1비트 비트맵과 유사하고, PGM 파일은 8비트 비트맵과 유사하고, PPM 파일은 24비트 비트맵(트루컬러)과 유사한다.

하지만 1비트 비트맵 파일에서 흰색은 255(FF), 검정색은 0으로 표현하는 것과는 다르게 PBM파일은 흰색은 0, 검정색은 1로 표현한다.

비트맵 파일의 경우 픽셀 데이터를 상하 반전하여 저장하는 것과 다르게, PNM 파일은 위에서 아래로, 왼쪽에서 오른쪽으로 저장하는 것이 표준 규칙이다. (눈에 보이는 그대로 저장된다.)

24비트 비트맵은 1픽셀을 표현할 때 B-G-R 순서로 데이터가 저장되지만, PPM 파일은 R-G-B 순서로 저장된다.

3. PNM 파일 형식

PNM 형식은 헤더로 시작하고 픽셀 데이터는 헤더 바로 뒤에 온다.
헤더는 항상 ASCII로 작성되며 데이터 항목은 공백(또는 탭, 캐리지 리턴, 줄 바꿈)으로 구분된다.
각 파일 유형의 데이터 부분은 ASCII 또는 Binary/Raw 형식으로 기록될 수 있다.

PBM 형식은 0과 1로만 구성되어 있기 때문에 최대값 항목이 없다. 최대값은 암시적으로 1을 갖는다.

매직넘버를 통해 알 수 있는 것은 파일 형식(PBM, PGM, PPM)과 데이터 형식(ASCII, RAW-Binary) 이다.

RAW(Binary) 형식으로 저장된 파일(P4, P5, P6)은 ASCII 형식으로 저장된 파일보다 크기도 작고 읽는 속도가 훨씬 빠르다.


PNM 헤더는 여러 방식으로 표현할 수 있다. 아래는 10x15 크기의 PBM(P1)의 가능한 헤더 유형이다.

1)
P1 10 15

2)
P1 # 파일 이름
10 15 # 10x15

3)
P1 # 파일 이름
10 # 너비
15 # 높이

"#" 을 이용하여 주석을 넣을 수 있다. 주석은 줄 끝까지 확장되기 때문에 주석과 데이터의 구분을 위해 줄을 바꿔야 한다.



아래 사이트를 이용해 ASCII 형식의 간단한 PNM파일(P1,P2,P3)들을 만들어 볼 수 있다.
https://www.inf-schule.de/information/darstellunginformation/binaerdarstellungbilder/exkurs_pbmpgmppm

참고
https://en.wikipedia.org/wiki/Netpbm
https://people.math.sc.edu/Burkardt/data/pnm/pnm.html
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=herster79&logNo=50101904342
http://paulbourke.net/dataformats/ppm/
https://www.fileformat.info/format/pbm/egff.htm
https://www.inf-schule.de/information/darstellunginformation/binaerdarstellungbilder/exkurs_pbmpgmppm

0개의 댓글