레포트 > 공학기술

[공학,기술] 영상 처리 [개념, 소스, 결과]

등록일 : 2012-03-16
갱신일 : 2012-03-16


  [공학,기술] 영상 처리 [개념, 소스, 결과].docx   [size : 3,592 Kbyte]
  3,000   39 Page
 
  33%
 
[공학,기술] 영상 처리 [개념, 소스, 결과]
영상처리

허프만 코딩.

허프만 코딩은 자주 쓰이는 정보에 더 짧은 코드를 할당하고, 드물게 나타나는 정보에 드는 코드를 늘임으로써 전체적으로 데이터의 크기를 줄이는 기본적인 압축 기법입니다. 다음은 A부터 Z까지의 출현 빈도가 들어왔을 때, 각 빈도수에 맞는 허프만 트리를 생성하고, 그 트리대로 코드를 출력해 주는 프로그램입니다. 모든 글자를 일괄적으로 5비트 코드로 정하는 것보다 허프만 트리를 쓰면 전체 코드 크기가 얼마나 줄어드나 확인할 수 있습니다.

위의 Deap 클래스를 선언하고 정의한 뒤 아래 코드를 추가하고, main 함수도 이것으로 대체하면 됩니다. 하지만 이 클래스가 쓰는 함수는 GetMin, RemoveMin뿐이기 때문에, 굳이 양방향 힙이 아니더라도 Min-heap만 구현한 클래스로도 이 코드를 실행할 수 있습니다.

//Huffman tree library
#define NOPARENT 999999

class CHuffman {
struct ENTRY {
//index 멤버는 배열에서는 이 원소의 부모 노드 번호로,
//min 힙 안에서는 이 원소의 원래 배열 번호를 가리킨다. 다용도임.
int index, value;

ENTRY() {}
ENTRY(int a, int b): index(a), value(b) {}
operator int() const { return value; }
};

int m_nCount;
ENTRY *m_pEnt;
CDeap m_Heap;

public:
CHuffman(const int *data, int count): m_Heap(count), m_nCount(count)
{
int i; m_pEnt=new ENTRY[count*2];
for(i=0;i m_pEnt[i]=ENTRY(NOPARENT, data[i]); m_Heap.Add(ENTRY(i, data[i]));
}
}
~C…(생략)

∴Tip Menu

공학   기술   영상   처리   개념   소스   결과