접두 부호(Prefix Code)란?

어떤 부호어도 다른 부호어의 앞부분이 되지 않는 부호. 예를 들어 {0, 10, 110, 111}은 접두 부호로, 수신한 비트열을 앞에서부터 읽어 부호어와 일치한 시점에 구분하면 뒤의 비트를 기다리지 않고 한 가지로 복호할 수 있다. 이 성질 때문에 순간 부호라고도 한다. 부호 길이의 조합이 크래프트 부등식을 만족하면 그 길이의 접두 부호를 만들 수 있다. 허프만 부호는 접두 부호이다. {0, 01, 11}처럼 접두 부호가 아니어도 한 가지로 복호할 수 있는 부호도 있지만, 복호할 때 뒤의 비트까지 볼 필요가 있다.

일본어 명칭: 接頭符号

접두 부호(Prefix Code)은(는) 정보 이론과 부호의 기초 등 1개 분야의 연습 문제 5개에 나와요.

분야: 정보 이론과 부호의 기초

도전해 보기: 접두 부호(Prefix Code) 관련 문제

4개의 기호에 할당한 다음 부호어 집합 중 접두 부호(어떤 부호어도 다른 부호어의 앞부분이 되지 않는 부호)인 것은?

  1. A{0, 01, 011, 111}
  2. B{0, 10, 110, 111}
  3. C{00, 01, 1, 10}
정답과 해설 보기

정답: B. {0, 10, 110, 111}

접두 부호에서는 어떤 부호어를 다 읽은 시점에 하나의 기호로 확정할 수 있으므로, 뒤의 비트를 기다리지 않고 바로 복호할 수 있습니다(순간 부호). {0, 10, 110, 111}에서는 어떤 부호어도 다른 부호어의 앞부분이 되어 있지 않습니다. {0, 01, 011, 111}에서는 0이 01이나 011의, {00, 01, 1, 10}에서는 1이 10의 앞부분이 되어 있습니다.

기호 A, B, C, D에 부호어 A = 0, B = 10, C = 110, D = 111을 할당한 접두 부호가 있다. 비트열 110100111을 앞에서부터 복호한 결과는?

  1. ACABD
  2. BCBDA
  3. CCBAD
정답과 해설 보기

정답: C. CBAD

앞에서부터 읽어 부호어와 일치한 시점에 구분합니다. 110에서 C, 이어지는 10에서 B, 0에서 A, 나머지 111에서 D가 되어 CBAD입니다. 접두 부호이므로 이처럼 구분하는 방법이 한 가지로 정해지며, 구분 기호를 넣지 않아도 복호할 수 있습니다.

해설 속 접두 부호(Prefix Code)

접두 부호(Prefix Code)이(가) 나오는 문제 (5)

  1. 4개의 기호에 할당한 다음 부호어 집합 중 접두 부호(어떤 부호어도 다른 부호어의 앞부분이 되지 않는 부호)인 것은?
  2. 기호 A, B, C, D에 부호어 A = 0, B = 10, C = 110, D = 111을 할당한 접두 부호가 있다. 비트열 110100111을 앞에서부터 복호한 결과는?
  3. 4개의 기호 A~D에 다음 길이(비트 수)의 부호어를 할당하여, 0과 1로 이루어진 접두 부호를 만들려고 한다. 만들 수 있는 부호 길이의 조합은?
  4. 0과 1로 이루어진 접두 부호를 만들고 있다. 길이 2의 부호어 00과 01을 이미 사용하고 있을 때, 접두 부호의 조건을 유지한 채 추가할 수 있는 길이 3의 부호어의 최대 개수는?
  5. 고정 길이 부호와 비교했을 때 가변 길이 부호의 설명으로 올바른 것은?

관련 용어

크래프트 부등식(Kraft Inequality) 평균 부호 길이(Average Code Length) 런 렝스 부호화(Run-Length Encoding) 무손실 압축(Lossless Compression) 상호 정보량(Mutual Information) 손실 압축(Lossy Compression) 순방향 오류 정정(FEC) 이진 대칭 채널(Binary Symmetric Channel) 정보 엔트로피(Information Entropy) 정보량(Self-Information)

용어집으로 돌아가기