식스엘
Sixel'6픽셀'의 줄임말인 식셀은 DEC의 단말기와 프린터가 지원하는 비트맵 그래픽 포맷이다.높이 6픽셀, 폭 1개 패턴으로 구성돼 64개의 패턴이 가능하다.각각의 가능한 패턴에는 ASCII 문자가 할당되어 있어 7비트 직렬 링크에서 6el을 쉽게 전송할 수 있다.
식셀은 LA50과 같은 DEC 도트 매트릭스 프린터로 비트맵 그래픽을 전송하는 방법으로 처음 도입되었다."식스텔 모드"에 들어간 후, 다음 데이터는 9핀 프린트 헤드의 핀 중 6개를 직접 제어하는 것으로 해석되었다.6화소 문자의 문자열은 이미지의 6픽셀 높이의 단일 행을 인코딩한다.
이 시스템은 나중에 사용자 지정 문자 집합을 정의할 때 VT200 시리즈 및 VT320 터미널로 비트맵 데이터를 전송하는 방법으로 재사용되었다.각 문자에 대한 비트맵을 전송하기 위해 일련의 6엘이 사용된다.이 기능을 소프트 문자 집합 또는 동적으로 재정의 가능한 문자 집합(DRCS)이라고 한다.VT240, VT241, VT330 및 VT340을 사용하여 단자는 이전에 프린터로 전송된 것과 같은 완전한 6엘 이미지를 화면으로 디코딩할 수 있다.
설명
식셀은 비트맵을 일련의 6픽셀의 높은 수평 스트립으로 분해하여 이미지를 암호화한다.특정 스트립의 각 1픽셀 폭의 수직 기둥은 단일 6엘을 형성한다.각 6el의 픽셀은 이진법으로 읽혀 하나의 6비트 숫자로 인코딩되며, "on" 픽셀은 1로 인코딩된다.0부터 63까지의 이 숫자는 그 다음, 단일 ASCII 문자로 변환되어 63까지 오프셋되어, 0의 10진수인 올블랙 식스엘이 로 인코딩된다.?. 이렇게 하면 6el이 ASCII 문자 집합의 인쇄 가능한 문자 범위 내에 유지된다.캐리지 리턴(CR)은 로 표시되며, 라인 피드(LF)는 a로 표시되며, 커서를 라인 시작 부분으로 되돌리려면 둘 다 차례대로 전송되어야 한다.
Sixel은 또한 RLE(Run-Length Encryption)을 사용하는 기본적인 형태의 압축을 포함한다.이 작업은 문자 뒤에 반복할 횟수가 소수인 다음 식스엘 문자 하나만 반복하면 된다.및 소수 자릿수는 인코딩된 범위 밖에 있는 유효한 식스텔 데이터일 수 없기 때문에 인코딩은 소프트웨어에서 쉽게 식별하고 다시 확장된다.
시퀀스 +를 전송하여 "Sixel mode"를 입력한다.Pp1;p2;p3;qp1 ~ p3은 선택적 설정 파라미터로, p1은 가로 세로 비율(p3를 위해 사용되지 않음), p2 0의 색 해석 방법, p3은 단순한 그리드 크기 파라미터로 정의되었다.P +는 DEC의 표준 "장치 제어 문자열" 또는 DCS로, DEC 장비의 많은 특수 기능을 켜거나 끄기 위해 사용되었다."q"는 sixel 식별자다.[a]이어 식셀 데이터가 q를 따랐다."String Terminator" 시퀀스 \+ 장치를 다시 정상 문자 모드로 되돌렸다.
인쇄를 위해, 6엘을 프린터로 보내어 바이너리로 다시 디코딩하고, 인쇄 헤드의 6핀으로 직접 보낸다.RLEs를 내부 인쇄 버퍼로 확장하는 것이 유일한 복잡성이었다.단말기의 디스플레이는 다소 어렵다.그래픽을 지원하는 단말에서는 ReGIS 그래픽 시스템을 사용하여 화면 비트맵에 식스엘 패턴을 직접 그렸다.이것은 비트맵 패턴을 글리프로 저장한 다음 블리딩하여 고속으로 수행되었다.
사용자 지정 문자 집합을 정의하는 데 사용되었을 때 이스케이프 코드가 변경되었지만 형식은 거의 동일했다.데이터 측면에서 큰 차이점은 별도 CR/LF를 단일 CR/LF로 대체하는 것뿐이다./
예를 들어 VT300 시리즈에서 80열 문자 글리프는 가로 15픽셀, 세로 12높이였으며, 이는 총 30개의 6엘을 보내 문자를 정의할 수 있다는 것을 의미한다.
또한 문자를 사용하여 색상을 지원하며, 기기마다 다른 여러 색상 레지스터 중 하나를 가리키는 숫자가 뒤따른다.레지스터의 색상은 독특한 DEC 형식의 RGB 또는 HLS 값을 사용하여 정의된다.프린터에 컬러 이미지를 생성하기 위해 6엘의 라인을 여러 번 전송하는데, 각 라인은 단자의 레지스터 기반 색상(보통 2비트 또는 4비트)에서 하나의 비트플레인(bitplane)을 나타낸다.하드웨어의 기능은 매우 다양하기 때문에 컬러 식스엘 도면은 대상 장치로만 출력할 수 있다.비그래픽 단자는 일반적으로 sixel 이스케이프 시퀀스를 조용히 무시한다.
샘플
<ESC>Pq #0;2;0;0#1;100;0#2;0#2;0#2;0;0;100;1~@v@@~@@~$ #2?}}}}}?- #1!14@ <ESC>\
위의 예는 sixel 모드로 들어가 3개의 color register를 설정한 다음 그 register를 사용하여 그 colors로 sixel을 그린다.그#0;2;0;0;0
"색상 레지스터 0 설정, 모드 2 사용(RGB 모드), R, G, B를 0%로 설정"으로 해석된다.이렇게 하면 색상이 0에서 검은색으로 설정되고, 다음 명령어는 레지스터 1을 노란색(100%, 100%, 0%)으로, 2를 녹색(0%, 100%, 0%)으로 설정한다.8비트 값(0–255)을 각 컬러 채널에 할당하는 대부분의 현대 시스템과 달리, RGB 모드는 0% ~ 100% 각 채널의 "강도"를 기반으로 한다.
이어지는 데이터 라인은 색상을 선택하고, 첫 번째와 세 번째의 경우 노란색, 중간의 경우 녹색으로 선택한 다음 6을 그린다.마지막 줄은 사용 중인 RLE를 나타내며, "반복"을 의미한다.@
(0b100000
) 14번"최종 출력은 14픽셀 x 7픽셀이므로 마지막 줄은 단순히 반복된다.0b100000
마지막 줄을 채우기 위해 14번. $
줄의 끝은 다음 줄이 현재의 줄을 오버프린트한다는 것을 의미하지만,-
다음 줄은 6엘의 새로운 선을 나타낸다는 것을 의미한다.
메모들
- ^ 소문자 "p"는 ReGIS 식별자였다.
참고 항목
참조
- "VT330/VT340 프로그래머 참조 매뉴얼, 제2권: 그래픽 프로그래밍", 디지털, EK-VT3XX-GP-002, 1988년 5월
- Chris Chiesa, All About SIXELs, 1990년 9월 29일