가변 길이 코드를 나타냅니다. 기술 커뮤니케이션 채널을 통한 정보 전송. 직류와 교류: 생산과 용도의 차이

가변 길이 코드

정보의 코딩 및 압축

인코딩은 일반적으로 코드 워드라고 하는 특정 기호 시퀀스를 메모리에 전송되거나 기록된 메시지에 매핑하는 것입니다. 코딩은 두 가지 목적으로 사용될 수 있습니다. 첫 번째 목표는 전송되는 메시지의 길이를 줄이는 것(정보 압축)이고, 두 번째 목표는 전송 중에 발생한 오류를 감지하고 수정하는 데 도움이 되도록 전송된 단어에 추가 정보를 추가하는 것(잡음 방지 코딩)입니다. 본 강의에서는 첫 번째 유형의 코드에 대해 논의합니다.

가변 길이 코드

가변 길이 코드를 구성하는 첫 번째 규칙은 자주 발생하는 문자에는 짧은 코드를 할당하고, 발생 빈도가 낮은 문자에는 긴 코드를 할당해야 한다는 것입니다. 이 경우, 모호하지 않고 명확하게 디코딩될 수 있도록 코드를 할당해야 합니다. 예를 들어 4개의 문자를 생각해 보세요. 1 , 2 , 3 , 4 . 동일한 확률로 메시지에 나타나는 경우( = 0.25), 4개의 2비트 코드(00, 01, 10, 11)를 할당합니다. 모든 확률은 동일하므로 가변 길이 코드는 데이터를 압축하지 않습니다. 짧은 코드가 있는 모든 문자에는 긴 코드가 있는 문자가 있으며 문자당 평균 비트 수는 최소 2입니다. 등가 문자의 데이터 중복성은 0이며 이러한 문자의 문자열은 다음을 사용하여 압축할 수 없습니다. 가변 길이 코드(또는 다른 방법).

이제 이 네 가지 기호가 서로 다른 확률로 나타나도록 합시다(표 12.1 참조). 이 경우 가변 길이 코드를 사용하여 제거할 수 있는 중복성과 기호당 2비트 미만이 필요하도록 압축된 데이터가 있습니다. 기호당 가장 작은 평균 비트 수는 1.57이며, 이는 해당 기호 세트의 엔트로피입니다.

표 12.1에서는 코드를 제안합니다. 암호_ 1, 가장 자주 나타나는 문자에 가장 짧은 코드를 할당합니다. 기호당 평균 비트 수는 1.77입니다. 이 숫자는 이론적 최소값에 가깝습니다.

표 12.1

20개의 문자로 이루어진 시퀀스를 생각해 보세요.

1 3 2 1 3 3a 4 2 1 1a 2 2a 1 1a 3 1 1a 3 1 ,

4개의 문자가 거의 동일한 빈도로 나타납니다. 이 문자열은 37비트 코드워드에 해당합니다.

1|010|01|1|010|010|001|01|1|1|01|01|1|1|010|1|1|01|010|1.

문자당 평균 비트 수는 1.85로 계산된 최소 평균 길이와 크게 다르지 않습니다. 그러나 시퀀스를 디코딩하려고 하면 다음과 같은 결과가 나타납니다. 암호 _1에는 심각한 단점이 있습니다. 코드워드의 첫 번째 비트는 1이므로 시퀀스의 첫 번째 문자는 다음과 같습니다. 1 다른 문자에 대한 코드는 1로 시작하지 않기 때문입니다. 다음 문자는 0이지만 문자에 대한 코드는 2 , 3 , 4는 모두 0에서 시작하므로 디코더는 다음 문자를 읽어야 합니다. 1과 같지만 코드는 다음과 같습니다. 2 및 3 둘 다 처음에는 01을 갖습니다. 따라서 디코더는 진행 방법을 모릅니다. 즉, 문자열을 1|010|01...로 디코딩합니다. 1 3 2... 또는 1|01|001...과 같습니다. 1 2 4 .... 시퀀스의 추가 비트는 상황을 수정할 수 없습니다. 그렇기 때문에 암호 _1은 모호합니다. 이런 불이익으로부터 자유로워요 암호 _2.

암호 _2에는 다음과 같이 공식화할 수 있는 소위 접두사 속성이 있습니다. 특정 비트 시퀀스가 ​​기호의 코드로 선택되면 다른 기호의 어떤 코드도 시작 부분에 이 시퀀스를 가져서는 안 됩니다. 기호는 다른 문자 코드의 접두사가 될 수 없습니다. 라인 01이 다음의 코드인 경우 2인 경우 다른 코드는 01로 시작하면 안 됩니다. 따라서 3 및 4는 00으로 시작해야 합니다. 이를 위해 000과 001을 선택하는 것이 당연합니다.

따라서 가변 길이 코드 세트를 선택할 때 두 가지 원칙을 준수해야 합니다. 1) 자주 발생하는 문자에는 더 짧은 코드 시퀀스를 할당해야 합니다. 2) 수신된 코드에는 접두사 속성이 있어야 합니다. 이러한 원칙에 따라 짧고 고유하게 디코딩 가능한 코드를 구성하는 것이 가능하지만 반드시 최상의(즉, 가장 짧은) 코드는 아닙니다. 이러한 원칙 외에도 항상 가장 짧은 코드 세트(평균 길이가 가장 작은 코드)를 생성하는 알고리즘이 필요합니다. 이 알고리즘에 대한 입력은 알파벳 문자의 빈도(또는 확률)여야 합니다. 그러한 알고리즘이 허프만 코딩이다.

통계적 압축 방법만이 가변 길이 코드를 사용하여 개별 문자를 인코딩하는 것이 아니라는 점에 유의해야 합니다. 이 접근 방식은 특히 산술 코딩에 사용됩니다.

통계적 코딩 방법을 설명하기 전에 인코더와 디코더 간의 상호 작용에 대해 살펴보겠습니다. 일부 파일(예: 텍스트 파일)이 가변 길이 접두사 코드를 사용하여 압축되었다고 가정해 보겠습니다. 디코딩하려면 디코더가 각 문자의 접두사 코드를 알아야 합니다. 이는 세 가지 방법으로 달성할 수 있습니다.

첫 번째 방법은 일련의 접두사 코드를 한 번 선택하여 모든 인코더와 디코더에서 사용하는 것입니다. 이 방법은 예를 들어 팩스 통신에 사용됩니다. 두 번째 방법은 인코딩이 두 번의 패스로 수행되는 것입니다. 첫 번째 패스에서 인코더는 인코딩할 파일을 읽고 필요한 통계 정보를 수집합니다. 두 번째 패스에서는 압축을 수행합니다. 패스 사이에 인코더는 수집된 정보를 기반으로 이 특정 파일에 가장 적합한 접두사 코드를 생성합니다. 이 방법은 매우 좋은 압축률을 제공하지만 실제로 사용하기에는 일반적으로 너무 느립니다. 또한 디코더가 이를 알 수 있도록 접두사 코드 테이블을 압축 파일에 추가해야 합니다. 이는 알고리즘의 전반적인 성능을 저하시킵니다. 통계적 압축에 대한 이러한 접근 방식을 반적응형 압축이라고 합니다.

블록 A

고정 비용

가변 비용



제조된 제품을 분석할 때, 비용 분석에 주된 관심을 기울여야 합니다. 비용은 제품(작업, 서비스) 생산 과정에서 사용되는 천연 자원, 원자재, 자재, 연료, 에너지, 고정 자산, 노동 자원 및 기타 생산 및 판매 비용의 평가입니다. 생산 비용을 결정한다는 것은 단위당 비용을 계산하는 것을 의미합니다. 제품. 제품 판매 수익금이 기업의 모든 비용을 충당한다면 제품 생산은 정당한 것으로 간주될 수 있습니다. 그렇지 않다면 생산은 수익성이 없습니다. 저것들. 기업이 이윤이 0인 지점에 해당하는 생산량과 판매량에 도달하면 생산이 정당화됩니다.소비재는 회사가 이익을 얻는 판매량입니다.

또한, 산출물 구조에 대한 파레토 최적성 기준에 따르면, 산출물은 구매자의 효용을 동시에 극대화하면서 가용 자원의 한계를 넘지 않는 경우(즉, 생산 가능 곡선 상에 있는 경우) 효과적일 것입니다. 산출구조는 생산과 소비가 동시에 균형상태에 있을 때 효과적이다.

기업의 회계 이익과 같은 기간에 얻은 한계 소득의 차이는 무엇입니까?

한계소득제품 판매 수익(VAT 및 소비세 제외)과 변동비의 차이로 계산됩니다. 즉, MD는 고정비와 판매이익의 합입니다. MD는 기업의 고정 비용을 충당하고 제품, 작업 및 서비스 판매를 통해 이익을 제공해야 합니다. 이 수치를 보장 금액이라고도 합니다.

MD = 판매 수익 - 가변 비용

MD = 고정비 + 매출이익

회계이익 -사업 활동으로 얻은 총 이익은 회계에 따라 계산됩니다. 회계이익기업의 총 수입과 회계 (명시적) 비용의 차이로 계산됩니다. 회계 비용은 회사가 실제 인수 가격으로 사용하는 자원의 비용입니다. 명시적 비용은 회계에 전적으로 반영되므로 회계 비용이라고도 합니다. 명시 적 비용은 외부 자원에 대한 기업 비용 지불 금액에 따라 결정됩니다. 회사가 소유하지 않은 자원. 예를 들어 원자재, 자재, 연료, 노동력 등이 있습니다.

회계 이익 = 기업의 총 수입 - 회계 (명시적) 비용

(따라서 회계이익은 명시적 고정비만큼 공헌이익보다 적다.)

기업의 한계소득 금액에 영향을 미치는 주요 요인은 무엇입니까?

경영 결정을 정당화하는 데 중요한 역할은 한계(한계) 분석에 의해 수행되며, 이 방법은 가장 중요한 경제 지표인 "비용 - 제품 생산량(판매량) - 이익"의 세 그룹 간의 관계를 연구하는 데 기반을 두고 있습니다. 주어진 값에서 이러한 각 지표의 중요하고 최적의 값을 예측합니다. 한계 분석의 주요 범주는 한계 소득입니다. 한계 소득(이익)은 판매 수익(VAT 및 소비세 제외)과 변동비의 차이입니다. 한계 소득의 변화는 수익과 비용의 증가(감소)라는 두 가지 요인에 의해 (함께 또는 개별적으로) 영향을 받을 수 있습니다. 개별 한계이익 대상의 수익성에 영향을 미치는 중요한 요소는 부분비용의 금액과 구조이다. 한계 소득 (이익) 금액은 부분 비용 금액에 직접적으로 의존합니다. 불완전 비용 구조에서 가변 비용이 우세하다는 것은 주어진 한계 소득 대상에 대해 손익 분기점을 달성하기 위해 상당한 판매량이 필요하지 않다는 사실을 나타냅니다. 불완전비용 구조에서 직접고정비가 차지하는 비중은 이를 회수하기 위해 판매량을 늘려야 함을 의미한다.

블락 비

직접 비용으로 기업의 생산 비용 절감과 회계 전체 비용의 차이점은 무엇입니까?

직접비에서 공산품의 비용 절감은 변동비 측면에서만 고려되고 계획됩니다. 고정 비용은 별도의 계정에 수집되어 지정된 간격으로 손익과 같은 재무 결과 계정에서 직접 인출됩니다. 연초와 연말의 창고 GP 잔액과 진행중인 작업도 변동비를 기준으로 평가됩니다. 회계의 전체 비용에는 고정 비용과 가변 비용이 비용에 포함됩니다.

상호 제공되는 작업 비용과 해당 이전 가격을 계산하는 옵션입니다.

공장 내 사업부별 선형 비용 방정식 시스템을 풀어 상호 제공되는 서비스의 분배에 대한 가장 정확한 결과를 제공합니다. 일반적으로 장소 및 비용 센터에 대한 방정식 시스템은 다음과 같은 형식을 갖습니다.

어디 르니 –장소의 기본 비용 금액; – 해당 장치에 제공되는 서비스의 양; N– 비용의 장소 -번째 부문 ( = 1, ... N); 케이 나는 , 케이 j –비용 분배 계수 제이-비용의 장소.

~에 일방적인 방법주요 장소의 서비스 비용은 기업의 주요 생산에만 적용되며, 상호 활동 교환과 관련된 비용은 고려되지 않습니다. 분포 계수는 다음 공식을 사용하여 계산됩니다.

어디 에게 -분포계수; 아르 자형오후 기본 장소 비용; pm – 기업의 주요 생산의 모든 부서에서 총 소비되는 서비스의 양.

사용 단계 분포 방법주요 비용 센터의 비용 ​​상각 순서가 결정됩니다. 일반적으로 모든 사람이 서비스를 필요로 하는 보조 작업장과 농장에서 시작합니다. 이 경우 분포 계수는 다음 공식을 사용하여 계산됩니다.

어디 R 수정, R var –이전 코스트 센터에서 할당한 고정 및 가변 비용 PM – 기업의 다음 부서로 이전된 기본 서비스의 양.

기업 내 장소 및 센터 비용의 규모 및 비용 효율성에 대한 통제 관점에서 다음과 같은 방법이 구별됩니다. 비용 예산 편성및 방법 비용과 생산성 비교.첫 번째 경우, 각 지출 장소 또는 책임 센터에 대해 비용 예산(추정)이 작성되고 실제 가치에 대한 회계 데이터를 기반으로 준수 여부가 모니터링됩니다. 기업의 각 부문의 맥락에서 비용과 생산성을 비교하는 방법을 사용할 때 생산성 가치의 변화, 생산 능력 활용 정도, 위치 또는 센터의 비용 ​​수준 변화로 인한 편차가 식별됩니다.

블록 C

1. 기업의 생산 능력 활용도는 무엇에 달려 있으며 어떻게 측정됩니까?

생산능력 활용도란 잠재적인 생산능력을 활용하는 정도를 말하며, 실제 생산량을 최대한 활용한 비율로 평가한다.

생산 능력 활용도는 일반적으로 주어진 자원이 하루, 주 또는 월별로 사용되는 시간으로 측정됩니다. PM 부하는 연구 지역 내 각 유형의 제품 생산량과 각 유형의 제품 단위 생산 시간의 곱의 합으로 계산할 수 있습니다.

일반적으로 PM은 제조된 제품에 대한 수요 수준, 생산에 필요한 가용 재료 자원(재료, 원자재, 연료)의 양, 제한된 사용 가능성 등의 제한 요소의 영향으로 인해 완전히 사용되지 않습니다. 한주기 내에서 가능한 최대 생산 수준에 영향을 미치는 기타 기업 용량 등

2. 기업의 생산 능력 활용 정도에 따라 비용은 어떻게 결정됩니까? ?

기업의 생산 능력은 균질한 것이 아니라 기업의 개별 부서(상점, 섹션)의 생산 능력으로 구성된 균질한 수량입니다. 객관적인 이유를 포함한 다양한 이유로 인해 이러한 용량은 예를 들어 기계, 기계 및 기타 장비의 생산성 차이로 인해 서로 완전히 상호 연관되지 않습니다. 여기에서 일반적으로 100% 미만의 생산 능력 활용도 수준을 기준으로 자재 및 노동 자원 비용을 고려해야 한다는 것이 분명해졌습니다. 활용도가 낮은 용량은 생산량을 늘리고 생산 비용을 절감할 수 있는 미사용 기회를 의미합니다. PM의 부하 수준은 가변 비용의 크기에 영향을 미칩니다.

3. 기업의 총 비용 규모는 얼마입니까?

기업의 총비용 규모는 기업의 총비용(?)으로, 이는 제품의 생산 및 판매량에 따라 일정하고 변하지 않는 비용과 변동비용의 집합입니다.

찬성

표준 원가 계산 시스템을 사용하면 회계 작업량을 크게 줄일 수 있습니다.

비용 비교에서 상당한 차이를 식별하기 위한 견고한 기반을 제공합니다.

기업의 모든 생산, 관리 및 판매 기능에 대한 자세한 연구가 필요하므로 관리 및 비용 통제의 효율성을 향상시키는 데 도움이 되며, 이는 비용을 절감하면서 가장 최적의 관리 접근 방식을 개발하게 됩니다.

표준비용은 실제 비용을 추정하는 가장 좋은 기준이 됩니다.

제품을 생산하고 판매하는 데 예상되는 비용에 대한 정보를 사용자에게 제공합니다.

미리 결정된 단가를 기준으로 가격을 설정할 수 있습니다.

수입과 지출에 대한 보고서를 작성하여 규범의 편차와 발생 이유를 식별할 수 있습니다.

마이너스

비용과 노동 생산성에 많은 관심이 집중되고 있습니다.

활동을 개선할 방법을 찾는 데 충분한 정보를 기업에 제공하지 않습니다.

생산 효율성 향상의 모든 측면을 다루지는 않습니다.

주기적으로 반복되는 비용에 적용됩니다.

적용의 성공은 규제 프레임워크의 구성과 품질에 달려 있습니다.

개별 비용 유형에 대한 표준을 설정할 수 없습니다.

블록 D

블록 A

기업의 고정 비용과 가변 비용의 차이점은 무엇입니까?

고정비용과 변동비용을 나누는 기준은 생산량에 의존.

고정 비용생산량이나 생산 능력의 변화에 ​​따라 자동으로 변경되지 않습니다. 따라서 고정 비용의 개념은 기업 생산 능력의 구성 및 활용 수준이 크게 변하지 않는 연도 기간에 더 적용 가능합니다.

고정비의 범위는 모든 산업에 대해 동일할 수 없으며 기업의 특성을 고려하여 명확히 해야 합니다. 고정 비용에는 일반적으로 대출 이자, 임대료, 관리 직원 급여, 건물 보안 비용, 건물 유지 관리 및 지속적인 수리 비용, 테스트 비용, 실험 및 연구 비용 등이 포함됩니다. 고정비에는 감가상각비(고정자본 회복을 위한)도 포함됩니다. 생산량 단위당 고정비 수준은 생산량이 증가함에 따라 상대적으로 감소하는 경향이 있으며 그 반대의 경우도 마찬가지입니다.

상수의 증가는 생산 능력의 증가와 관련이 있으며 자본 투자 및 운전 자본의 추가 매력으로 인해 발생합니다. 고정비의 절대가치를 낮추는 것은 생산합리화, 관리비 절감, 잉여 고정자산 매각을 통해 달성됩니다.

가변 비용생산량의 변화에 ​​따라 절대량이 증가하거나 감소하며, 비례부분과 불균형부분으로 구분됩니다.

비례 비용에는 원자재, 기초 자재, 반제품 비용, 도급 임금을 받는 주요 근로자의 임금, 기술 목적을 위한 연료 및 에너지 비용의 대부분, 제품 용기 및 포장 비용이 포함됩니다.

불균형 비용은 점진적(즉, 생산량보다 빠르게 증가)일 수도 있고 점진적(증가 규모가 생산량 변화보다 작은 경우)일 수도 있습니다.

프로그램에서는 수량(데이터)을 표현하기 위해 상수와 변수를 사용합니다. 둘 다 이름(식별자)과 값을 갖습니다. 차이점은 프로그램 실행 중에는 상수 값을 변경할 수 없지만 변수 값은 변경할 수 있다는 것입니다.

기존에는 변수를 입력(주어진 것), 출력(결과: 얻어야 하는 것), 계산 과정에 필요한 중간 변수로 구분했습니다. 예를 들어, 최대 공약수를 계산하는 프로그램(유클리드 알고리즘)의 경우 입력 변수는 m과 n이고 중간 변수는 r입니다. 출력 변수도 n입니다. 이러한 변수는 "자연수" 유형이어야 합니다. 그러나 Pascal에는 그러한 유형이 없습니다. 따라서 일종의 정수 유형을 사용해야 합니다. 유형의 크기에 따라 프로그램을 사용할 수 있는 숫자의 범위가 결정됩니다. 변수를 다음과 같이 설명하면:

그러면 입력에서 가장 큰 숫자는 32767 = 2 16 – 1이 될 수 있습니다.

중요한!섹션에 설명된 변수의 의미 바르, 한정되지 않은. 때로는 변수의 값을 포함하는 메모리 셀로 변수의 정의를 찾을 수 있습니다. 변수 설명은 이 셀의 주소를 변수 이름과 연관지어 설명한다는 의미입니다. 즉, 이름은 값이 포함된 메모리 셀의 주소로 사용됩니다. 그러나 그 의미 자체는 아직 결정되지 않았습니다.

유클리드 알고리즘에서 나머지 r의 값은 0과 비교됩니다. 0은 정수 상수입니다. 예를 들어 다음과 같이 값이 0인 상수를 정의하는 것이 가능합니다(필수는 아님).

컴파일 과정에서 프로그램 텍스트의 0 식별자는 숫자 값으로 대체됩니다.

Zero 상수의 유형은 명확하지 않습니다. 모든 정수 유형에는 0이 존재합니다. 상수 섹션에서는 유형과 값을 모두 지정하여 유형이 지정된 상수를 설명할 수 있습니다.

0: 정수 = 0;

그러나 이제 Zero는 초기값이 정의되고 0인 일반 정수형 변수가 되었습니다.

변수 사용은 컴파일 단계에서 제어됩니다. 컴파일러는 일반적으로 변수를 잘못된 유형의 값으로 설정하려는 시도를 거부합니다. 많은 프로그래밍 언어는 변수 값을 원하는 유형으로 자동 캐스팅합니다. 일반적으로 이러한 암시적 유형 변환은 초보 프로그래머가 감지하기 어려운 오류의 원인입니다. 파스칼에서는 암시적 유형 변환이 규칙이 아닌 예외로 간주될 수 있습니다. REAL(실수) 유형의 표현식에 사용할 수 있는 INTEGER(정수) 유형의 상수 및 변수에 대해서만 예외가 발생합니다. 자동 유형 변환을 금지한다고 해서 Pascal에 데이터 변환 도구가 없다는 의미는 아닙니다. 존재하지만 명시적으로 사용해야 합니다.

가변 길이 코드를 구성하는 첫 번째 규칙은 매우 분명합니다. 자주 발생하는 문자에는 짧은 코드를 지정하고, 거의 발생하지 않는 문자에는 긴 코드를 지정해야 합니다. 그러나 또 다른 문제가 있습니다. 이러한 코드는 모호하지 않고 명확하게 디코딩될 수 있도록 할당되어야 합니다. 작은 예를 보면 이 사실이 명확해질 것입니다.

네 개의 기호와 를 고려하십시오. 동일한 확률로 데이터 시퀀스에 나타나면(각각) 4개의 2비트 코드 00, 01, 10 및 11을 할당하기만 하면 됩니다. 모든 확률은 동일하므로 가변 길이 코드는 이 데이터를 압축하지 않습니다. 짧은 코드가 있는 모든 문자에는 긴 코드가 있는 문자가 있으며 문자당 평균 비트 수는 최소 2입니다. 등가 문자의 데이터 중복성은 0이며 이러한 문자의 문자열은 변수를 사용하여 압축할 수 없습니다. -길이 코드(또는 다른 방법).

이제 이 네 개의 기호가 표에 표시된 서로 다른 확률로 나타난다고 가정합니다. 1.2, 즉 평균적으로 거의 절반의 경우에 데이터 라인에 나타나고 동일한 확률을 가지지만 극히 드물게 발생합니다. 이 경우 변수 코드와 기호당 2비트 미만이 필요하도록 압축된 데이터를 사용하여 제거할 수 있는 중복성이 있습니다. 실제로 정보 이론에 따르면 기호당 필요한 최소 비트 수는 평균 1.57이며 이는 해당 기호 세트의 엔트로피입니다.

개연성

테이블 1.2. 가변 길이 코드.

테이블에 1.2에서는 가장 자주 발생하는 문자에 가장 짧은 코드를 할당하는 Code1을 제안합니다. Code1을 사용하여 이를 인코딩하면 문자당 평균 비트 수는 . 이 숫자는 이론적 최소값에 매우 가깝습니다. 20개의 문자로 이루어진 시퀀스를 생각해 보세요.

표시된 주파수에 대략 4개의 기호가 나타납니다. 이 문자열은 37비트 긴 Code1 코드 문자열에 해당합니다.

편의상 대시로 구분됩니다. 20자를 인코딩하는 데 37비트가 필요했는데, 이는 평균 1.85비트/문자로 위에서 계산한 평균과 크게 다르지 않습니다. (이 줄은 상당히 짧으며 이론적인 결과에 가까운 결과를 얻으려면 수천 자 크기의 입력 파일을 가져와야 한다는 점을 독자는 명심해야 합니다.)

그러나 이제 이 이진 시퀀스를 디코딩하려고 하면 Code1이 완전히 사용할 수 없다는 것을 즉시 발견하게 됩니다. 시퀀스의 첫 번째 비트는 1이므로 Code1에 대한 테이블의 다른 코드는 1로 시작하지 않기 때문에 첫 번째 문자는 만 가능합니다. 다음 비트는 0이지만 및 에 대한 코드는 모두 0으로 시작하므로 디코더는 다음과 같이 해야 합니다. 다음 비트를 읽어보세요. 1과 동일하지만 및 둘 다의 코드는 처음에 01을 갖습니다. 디코더는 무엇을 해야할지 모릅니다. 문자열을 , 즉 로 디코딩하거나 , 즉 로 디코딩합니다. 게다가 시퀀스의 추가 비트는 더 이상 상황을 수정하는 데 도움이 되지 않습니다. Code1은 모호합니다. 대조적으로, 표의 Code2. 1.2는 디코딩 시 항상 명확한 결과를 제공합니다.

Code2에는 접두사 속성이라고 하는 Code1보다 더 나은 기능을 제공하는 중요한 속성이 하나 있습니다. 이 속성은 다음과 같이 공식화될 수 있습니다. 특정 비트 시퀀스가 ​​기호의 코드로 선택되면 다른 기호의 코드는 시작 부분에 이 시퀀스가 ​​있어서는 안 됩니다(접두사, 즉 접두사가 될 수 없음). 문자열 "1"이 이미 의 전체 코드로 선택되었으므로 다른 코드는 1로 시작할 수 없습니다(즉, 모두 0으로 시작해야 함). 문자열 "01"은 의 코드이므로 다른 코드는 01로 시작하면 안 됩니다. 그렇기 때문에 및 의 코드는 00으로 시작해야 합니다. 당연히 "000"과 "001"이 됩니다.

이는 가변 길이 코드 세트를 선택할 때 두 가지 원칙을 준수해야 함을 의미합니다. (1) 더 자주 발생하는 문자에 더 짧은 코드를 할당해야 하며 (2) 코드는 접두사 속성을 충족해야 합니다. 이러한 원칙에 따라 짧고 고유하게 디코딩 가능한 코드를 구성하는 것이 가능하지만 반드시 최상의(즉, 가장 짧은) 코드는 아닙니다. 이러한 원칙 외에도 항상 가장 짧은 코드 집합(평균 길이가 가장 짧은 코드)을 생성하는 알고리즘이 필요합니다. 이 알고리즘에 대한 입력은 알파벳 문자의 빈도(또는 확률)여야 합니다. 다행히도 이렇게 간단한 알고리즘이 존재합니다. David Huffman이 발명했으며 그의 이름을 따서 명명되었습니다. 이 알고리즘은 § 1.4에서 설명됩니다.

개별 문자를 인코딩할 때 통계적 압축 방법만 가변 길이 코드를 사용하는 것은 아닙니다. 훌륭한 예는 § 1.7에서 논의될 산술 코드에서 제공됩니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: