Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

고급C프로그래밍_김윤곤_정구찬_프로젝트.pptx

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Hier ansehen

1 von 17 Anzeige

Weitere Verwandte Inhalte

Ähnlich wie 고급C프로그래밍_김윤곤_정구찬_프로젝트.pptx (20)

Aktuellste (20)

Anzeige

고급C프로그래밍_김윤곤_정구찬_프로젝트.pptx

  1. 1. Huffman encoding based Text file compression program 컴퓨터공학과 2018202016 김윤곤 2017202062 정구찬 고급 C 프로그래밍
  2. 2. Huffman compression program • Introduction : -주제 선정 배경 : 1. 학교 과제 업로드 시스템에 과제를 제출 할 때 용량 초과 문제로, 압축 프로그램 을 이용해야만 하는 상황이 많았음. 2. 대부분의 압축 프로그램은 프로그램 자체가 무겁고, 마우스 클릭 기반으로만 압축 을 할 수 있어서, 불편함을 느꼈음. 3. 간단한 문서 포멧의 경우, 커맨드 기반으로 가볍고 빠르게 압축 할 수 있는 비영 리적 프로그램의 필요성을 느낌.
  3. 3. Huffman compression program • Introduction : 컴퓨터는 0과 1로 이루어진 이진수 체계를 통해, 데이터를 처리하기 때문에, 우리가 컴퓨터로 문서 작업을 처리할 때 입력하는 문자, 기호, 숫자 등의 체계는 컴퓨터에서 이진수 체계로 변 환되어 처리되며 이러한 방식을 부호화라고 부른다.
  4. 4. Huffman compression program • Introduction : -부호화 방법 ->한 문자당 변환되는 이진수의 길이를 고정시키는 고정 길이 부호 방식 ->문자 마다 변환되는 이진수의 길이를 다르게 하는 가변 길이 부호화 방식 -고정 길이 부호 방식의 단점 : 문자 별로 변환되는 이진수의 길이가 동일하기 때문에, 가변 길이 방식에 비해, 데이터의 크기 가 크다! => 데이터에서 자주 등장하는 문자를 짧은 길이의 이진수로 변환하고, 자주 등장하지 않는 문자에 긴 길이의 이진수를 할당하면, 고정 길이 부호화 방식에 비해, 데이터를 부호화 하기 위해 필요한 비트 수를 훨씬 줄일 수 있다!
  5. 5. Huffman compression program • Introduction : -허프만 인코딩 : 가변 길이 방식의 부호화/복호화 방식인 엔트로피 인코딩 기법 중 하나 -본 프로젝트에서는 언급한 허프만 인코딩/디코딩 방식을 이용하여, 기존의 텍스트 파일을 이 진 파일로 압축하여 보관하고, 필요시 다시 복원할 수 있는 사용자 압축 프로그램을 제안
  6. 6. Huffman compression program • 목표 - Encoder 1. 마우스 클릭 기반의 인터페이스가 아닌, 파일의 절대 경로 입력을 통한, 커맨드 입력 기반의 인터페이 스를 제공한다. 2. 압축을 진행하는 동안, 압축 진행률을 제공해, 사용자는 압축이 얼마나 진행되었는지 확인한다. 3. 압축이 완료되면, 압축률(기존 파일에 비해 얼마나 파일의 크기가 줄었는지에 관한 지표), 압축 시간 (압축을 진행하는데 소요된 시간), 기존의 파일 크기, 압축된 파일의 크기를 사용자에게 제공한다. -Decoder 1. 압축 해제를 하는 동안, 압축 해제가 얼마나 진행 되었는지에 대한 인터페이스를 제공한다.
  7. 7. Huffman compression program • Related Work : -반디집 상용 압축 프로그램 (2/7)
  8. 8. Huffman compression program • Our Proposal : -커맨드 기반 User interface 제공: ->문서 기반의 파일을 커맨드 기반으로 빠르게 압축 할 수 있다. -가벼운 크기의 프로그램 : ->기존 프로그램에 비해 용량이 가볍다. -시스템 구성도(다음 장에서 계속) (3/7)
  9. 9. Huffman compression program - 시스템 구성도(Cont) User interface 설계 (3/7)
  10. 10. Huffman compression program - 시스템 구성도(Cont) 내부 logic 설계 (3/7)
  11. 11. Huffman compression program • Experimented Method : - 파일에 대한 압축 결과 1. 압축률(압축파일크기/원본파일크기) 2. 압축시간(running time) 3. Text Compare 사이트를 통해, 복원 중 누락 내 용이 없다는 것을 확인 (4/7)
  12. 12. Huffman compression program (6/7) User Interface -Experimeted Result
  13. 13. Huffman compression program User Interface (encode) 1. txt 파일의 정보(경로)를 입력 2. 압축 할 경로를 입력 3. 압축 파일 명을 입력 4. Encoding에 대한 정보 출력 test1.txt 파일 압축 과정으로 사용자가 입력한 파일 명(test1_zip) 저장된 test1_zip_code.hbs & table.hbs 파 일 1 2 3 4 -Experimeted Result
  14. 14. Huffman compression program User Interface (decode) 1. 압축 파일(hbs)의 정보(경로)를 입력 2. 압축 해제 시 저장 할 경로를 입력 3. 압축 해제 시 저장 할 파일 명을 입력 4. decoding에 대한 정보 출력 test1_zip_code & table.hbs 파일 압축 해제 과정으로 test1_zip.txt 파일 출력 1 2 3 4 -Experimeted Result
  15. 15. Huffman compression program • Conclusion : 압축률 : 6647/12119 = 54.8% -Huffman table 출력 (6/7) Text compare 프로그램을 이용하여, 원본 파일과 복 원 파일을 비교 해 본 결 과 두 파일의 내용이 완전 일치 하는 것으로 확인 됨
  16. 16. Huffman compression program • References: -data structures : heap based priority queue, B tree based map table https://github.com/topics/data-structures-c : linear probe hash table https://troydhanson.github.io/uthash/ http://compression.ru/download/articles/huff/huffman_1952_minimu m-redundancy-codes.pdf :huffman encoding 관련 논문 (*해당 source code들은 모두 비영리 목적 활용이 허용된 source로, code를 일부 가져와, 과제의 조건에 맞게 customize하여 활용하였음) (7/7)
  17. 17. 감사합니다

×