[CS] 1-5 문자를 사용한 수 표현 / 색을 표현하는 방법

현수·2022년 1월 22일
0
post-thumbnail

문자를 사용한 수 표현

아스키 코드 중 상당수가 제어 문자로 예약되어 있고, 제어문자는 시스템에 따라 처리하는 방식이 달랐기 때문에 2진 데이터를 보내는 일은 쉽지가 않았다. 게다가 몇몇 시스템은 7비트만 송수신 할 수 있었다.


출력 가능하게 변경한 인코딩

  • 출력가능하게(아스키 코드에서 제어 문자가 아닌 문자) 변경한 인코딩(QP 인코딩) :
    8비트 데이터를 7비트 데이터만 지원하는 통신 경로를 통해 송수신하기 위한 인코딩 방법
    • 전자우편 첨부를 처리하기 위해 만들어짐.
    • = 다음에 바이트의 각 니블을 표현하는 16진 숫자 2개를 추가해 8비트 값을 표현 (따라서 QP에서 =은 =3D로 표현)
    • 추가규칙
      - 줄의 맨 끝의 탭과 공백문자가 온다면 이를 각각 =09,=20으로 표현
      - 인코딩 된 데이터는 한 줄이 76자를 넘을 수 없다.
      - 가짜 줄바꿈 : 줄 맨 뒤를 =으로 끝내는 것으로 수신 쪽에서 디코딩할 때 제거하고 해석

베이스64 인코딩

QP 인코딩은 1바이트 표현을 위해 3바이트를 사용해 비효율적

  • 베이스64 인코딩 : 더 효율적인 인코딩으로 3바이트 데이터를 네 문자로 표현.
    • OS에 상관없이 인코딩 가능
    • 24비트(3바이트)를 네개의 6비트 덩어리로 나누고 각 덩어리에 출력가능한 문자를 할당해 표현
      - ex) 0,1,2 -> AAEC
    • 패딩 문자 : 원본이 3바이트의 배수가 아닐 경우 사용. 원본 데이터에서 2바이트가 남으면 =, 1바이트가 남으면 =을 붙인다.



URL 인코딩

  • URL인코딩(퍼센트 인코딩) : % 뒤에 어떤 문자의 16진 표현을 덧붙이는 방식으로 문자를 인코딩
    • QP 인코딩에서 =을 특별한 기능으로서 사용한 것과 같은 방식을 사용
      - ex) /는 URL에서 특별한 의미를 지니므로 / 자체를 표현할 때, % + 2F(아스키코드를 16진수로 표현) > %2F로 표현
    • 공백은 +나 %20으로 표현
    • 아스키가 아닌 경우도 인코딩 가능하며, UTF-8로 변형 후에 보낸다.



색을 표현하는 방법

  • 픽셀(그림원소) : 컴퓨터 그래픽스에서 전자 모눈종이에 해당하는 격자에 색을 표현 하기 위해 찍는 점.

  • RGB 색 모델 : 빨간색, 녹색, 파란색 광선을 섞어 색을 만들어 내는 모니터의 색 표현법.

  • 컬러큐브 : 정육면체 상에 색을 표현하는 방식으로 각 축이 주색을 표현 하며, 값이 0이면 그 색의 빛을 끄고, 1이면 그 색의 빛을 최대 밝기로 켠다는 뜻이다.

  • 가산 색 시스템 : 빛을 혼합해 색을 표현하는 방식으로 빛을 섞을 수로 밝은 색이 나온다.

    • ex) 아무 빛도 없으면 검은색이고, 모든 빛을 최대밝기로 켜면 흰색.
  • 감산 색 시스템 : 시안 마젠타 옐로를 주 색으로 하는 색 시스템으로 가산 시스템 보다는 많은 색을 만들어 낼 수 없다.

    • 인쇄 전 기술 : 모니터(감산)에서 작업한 작품을 잡지(감산)에 인쇄 되었을 때 같은 모습을 보여주도록 하는 기술
  • 암순응 : 전체적인 빛의 세기에 맞추어 눈의 응답이 점차 변하는 것.

    • ex) 눈은 녹색의 변화에는 민감하나 파란색의 변화에는 상대적으로 덜 민감하다.
  • 현대 컴퓨터는 색 표현에 24비트를 사용하고, 세 가지의 8비트 필드로 나뉘며, 각 필드는 주요 색을 표현한다.

    • 현대 컴퓨터는 24비트 단위로 계산을 수행하도록 설계되지 않아, 24비트에 가장 가까운 32비트(워드)에 색을 넣어 처리.
    • 색을 표현할 때마다 사용하지 않는 비트 8개가 남게 되면서, 이를 투명도에 사용하게 된다.
    • 투명도 : 색을 투과해서 볼 수 있는 정도


투명도 추가

  • 셀 애니메이션 : 움직이는 캐릭터를 투명한 셀룰로이드 필름위에 그려, 정적인 배경 이미지 위에서 움직이게 하는 애니메이션
  • 컴퓨터 애니메이션에서 여러 이미지를 하나로 합성하거나 결합하는데에도 투명도가 필요했음.
  • 루카스 필름의 톰 더프와 토머스 포터가 각 픽셀에 알파라는 투명도 값을 추가하는 방식을 발명.
    • 알파가 0이면 완전한 투명, 1이면 완전한 불투명을 의미한다.
    • 색을 표현할 때 남는 8비트를 활용하여 1부터 255의 값을 담아 알파로 활용.
    • 각 색값에 알파를 곱한 값을 저장하는 방식을 사용했다.

색 인코딩

  • 웹 페이지는 주로 사람읽을 수 있는 텍스트(UTF-8의 시퀀스로 이루어지는)를 표현하기 때문에 텍스트를 사용해 색을 표현하는 방법 필요
  • 16진 트리플렛(hex triplet) : # 뒤에 6자리 16진 숫자를 추가해서 표현하는 방식
profile
언젠간 되겠지!

0개의 댓글