요약
- Alan R. Katz는 1981년 9월 Rapicom 450의 저장 데이터를 1비트 흑백 비트맵으로 바꾸는 실제 프로그램을 설명했다. 파일이 도착했다고 페이지가 보이는 것은 아니었다.
- 저장된 바이트, 일부 블록 머리말 필드, 흑백 연속 구간의 길이는 각각 다른 비트 뒤집기 규칙을 따랐다. 새 블록의 상태와 위치는 누락 뒤에도 해독을 이어 주었고, RFC 797은 결과를 위한 10바이트 영상 머리말을 제안했다.
컴퓨터가 팩스 파일을 받았다는 보고와 화면에 종이가 보인다는 보고 사이에는 꽤 긴 거리가 있었다. Rapicom 450은 보통의 픽셀 목록을 보내지 않았다. 순서가 뒤집힌 비트와 흑백 상태의 전환을 보냈다. Alan R. Katz가 1981년 9월 쓴 RFC 798은 이 데이터를 다시 페이지로 읽는 디코더의 설명서다. 함께 나온 RFC 797은 그렇게 얻은 픽셀이 머물 간단한 비트맵 파일을 제안했다. 파일 배달부는 일을 끝냈지만, 통역사는 이제 출근한 셈이었다.
Katz는 TOPS20의 NLS 안에서 L10 프로그램을 작성했다. FAXIE라는 마이크로프로세서 인터페이스가 팩스와 컴퓨터의 터미널 회선을 이었다. 기계는 비트를 순서대로 보내고 FAXIE는 여덟 개씩 묶었다. 첫 번째 반전은 전기 신호의 뜻에서 나왔다. Rapicom의 MARK와 SPACE는 RS232와 논리값이 반대여서 FAXIE가 비트값을 뒤집었다. 저장 프로그램은 데이터 바이트 안의 비트 순서도 거꾸로 놓고 값도 뒤집었다. 디코더는 그 경로를 되짚어야 했다. 레코드의 길이와 명령 바이트에는 이 작업을 적용하지 않았다. 상자의 내용과 상자에 붙은 주소표를 한꺼번에 뒤집으면 길을 잃는다.
장치가 내보낸 한 블록에는 585비트가 있었다. 끝에 0 일곱 개를 채워 74바이트의 데이터로 만들고, 길이와 명령을 붙이면 보통 저장 레코드는 76바이트다. 명령은 설정, 데이터, 끝을 구분했다. 이렇게 포장하면 흐름을 저장하고 전달할 수 있다. 하지만 어느 점이 검은색인지 알려면 팩스 내부의 압축법을 더 읽어야 한다.
Katz가 설명한 보통 용지는 주사선 약 2100개, 한 줄에 흑백 점 1726개로 이루어진다. Fine Detail은 모든 줄을, Quality는 두 줄 중 하나를, Express는 세 줄 중 하나를 기록했다. 화면에 그릴 때 빠진 줄을 반복한다. 기계는 위아래 두 줄을 함께 인코딩했으므로 한 세로 칸은 흰색-흰색, 흰색-검은색, 검은색-흰색, 검은색-검은색 가운데 하나였다. 네 상태 사이의 이동은 길이가 일정하지 않은 비트열로 표현했고, 흰색이나 검은색이 계속되는 구간은 2비트에서 7비트까지 늘어날 수 있는 길이 단어로 셌다. 비트 하나를 점 하나로 착각하면 원본과는 다른 미술 작품을 만들게 된다.
문제는 ‘뒤집는다’는 말에도 여러 뜻이 있다는 점이다. 파일에 저장된 데이터 바이트를 처리하는 규칙이 하나 있다. 장치 블록의 머리말에서는 유효 데이터 비트 수, 가로 위치, 흑백 연속 길이 필드의 내부 비트 순서가 거꾸로 전송된다. 순번과 현재 상태는 거꾸로 전송되지 않는다. 그림 데이터 안의 연속 길이 단어도 필드 안에서 다시 거꾸로 읽어야 한다. Katz는 n비트 필드를 뒤집는 일과 바이트 전체의 순서를 뒤집고 값을 반전하는 일이 별개라고 못 박았다. ‘모두 뒤집기’ 버튼 하나가 있었다면 고장 난 그림을 아주 효율적으로 생산했을 것이다.
각 블록의 머리말은 중간에 빠진 조각 뒤에서 길을 다시 찾는 역할도 했다. 585비트 안에는 동기 코드, 37비트 머리말, 512비트 데이터 영역, 검사값이 들어 있었다. 유효 비트 수가 512비트 중 실제 읽을 길이를 정하며, 0이면 그 블록은 버렸다. 새 가로 위치가 앞선 블록의 끝보다 멀면 빈틈을 흰색으로 채우고, 뒤로 돌아오면 겹친 부분을 새 데이터로 바꿨다. 순번은 0에서 3까지 돌았고 건너뛰면 블록 누락을 알 수 있었다. 새 블록을 시작할 때마다 머리말이 지정한 상태, 연속 길이의 크기, 가로 위치를 받아들였다. 전 블록의 끝과 달라도 마찬가지였다. 빠진 그림을 되살리는 기술은 아니지만, 그 뒤의 그림까지 함께 버릴 이유는 없었다.
결과물에 붙는 RFC 797의 규칙은 놀랄 만큼 짧다. 앞의 네 바이트는 너비, 다음 네 바이트는 높이, 뒤의 두 바이트는 가로와 세로 간격이다. 열한 번째 바이트부터 점이 시작된다. 왼쪽에서 오른쪽, 위에서 아래로 읽고, 각 줄 끝은 0으로 채워 바이트 경계에 맞춘다. 세로 간격 1, 2, 3은 Rapicom의 세 화질 모드에 맞춰 화면에서 줄을 반복하게 한다. 다음 프로그램은 팩스의 사투리 대신 영상의 크기와 점을 받는다.
그 통역에는 비용이 들었다. Katz에 따르면 DEC KL10의 TOPS20에서 보통 Fine Detail 문서를 풀어내는 데 CPU 시간 약 2분이 걸렸다. 약 1726×2100점의 비트맵은 디스크 약 204페이지를 차지했고, HP 그래픽 터미널은 한 번에 종이 전체가 아니라 일부를 확대해 보여 주었다. 팩스가 도착했다는 소식과 사람이 페이지를 볼 수 있다는 사실 사이에는 그만큼의 계산과 정확한 비트 읽기가 있었다.
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





