1 / 19

선형대수 프로젝트

선형대수 프로젝트. 200811430 박대선. 프로젝트 주제. 매트랩을 사용한 이미지 파일 손실 압축 압축대상 : 24bit BMP 파일. 압축 단계. 색공간 변환 (Color space transformation) 이산 코사인 변환 (Discrete cosine transform) 양자화 (Quantization) 엔트로피 부호화 (Entropy coding). 색공간 변환. RGB 색공간을 YCbCr 색공간으로 변환 Y : 휘도 ( 광밀도 ) 성분 Cb : 색차 정보

lee-sears
Download Presentation

선형대수 프로젝트

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 선형대수 프로젝트 200811430 박대선

  2. 프로젝트 주제 • 매트랩을 사용한 이미지 파일 손실 압축 • 압축대상 : 24bit BMP 파일

  3. 압축 단계 • 색공간 변환(Color space transformation) • 이산 코사인 변환(Discrete cosine transform) • 양자화(Quantization) • 엔트로피 부호화(Entropy coding)

  4. 색공간 변환 • RGB 색공간을 YCbCr 색공간으로 변환 • Y : 휘도(광밀도) 성분 • Cb : 색차 정보 • Cr : 색차 정보

  5. 이산 코사인 변환 • 전체 화상을 8x8 픽셀의 크기를 갖는 섹션으로 나누고 각 성분 데이터를 주파수 공간으로 변환시킨다. • 저주파 성분은 이미지의 전체적 윤곽을 결정하고 고주파 성분은 이미지의 세세한 부분을 담당한다.

  6. 양자화 • 고주파 성분의 많은 부분을 0 또는 0에 근접하는 정수로 변화시킨다.(정보손실) • 사람은 이미지의 세세한 부분을 담당하는 고주파의 명도 변화에 대해서는 구별을 잘 하지 못한다. 그렇기 때문에 고주파 성분의 많은 부분들을 0으로 바꾸어도 변화를 알아차리기 어렵다.

  7. 엔트로피 부호화 • 8x8 격자의 성분들을 저주파부터 지그재그로 정렬

  8. 엔트로피 부호화(cont.) • 정렬된 데이터의 뒷부분은 0으로 만든 고주파 성분들이다. 반복되는 0을 반복 길이 부호화를 사용해 압축한다

  9. 프로젝트 적용 - LoadImage 압축할 BMP 파일을 불러온다. 확장자를 따로입력하지 않아도 BMP 파일을 불러온다.

  10. 프로젝트 적용 - ToYCbCr RGB 형태를 YCbCr 형태로 변환한다.

  11. 프로젝트 적용 - DCT 데이터를 8x8 행렬로 쪼개어 이산 코사인 변환수행. 색 데이터가 주파수 데이터로 된다. 매트랩에 있는 dctmtx를 이용해 복잡한 수식 없이 간단히 할 수 있었다.

  12. 프로젝트 적용 - Quantization 데이터를 8x8 행렬로 쪼개어 양자화 행렬로 나눈다. 이 과정으로 고주파 데이터의 많은 부분이 0으로 근접하게 된다.

  13. 프로젝트 적용 - EntropyEncoding 엔트로피 부호화 수행. 데이터를 8x8 행렬로 쪼개어 저주파부터 차례대로 정렬한다.

  14. 프로젝트 적용 - EntropyEncoding 양자화 과정에서 0이 된 고주파 데이터를 Find로 찾아 제거한다. 8x8 행렬로 쪼개면 수많은 블록이 생기는데 다른 블록과 구분하기 위해 숫자 100을 추가한다.

  15. 프로젝트 적용 - OutCompFile 압축 전과 압축 후의 데이터 크기를 비교한 후 압축한 데이터를 파일로 저장한다.

  16. 압축을 푸는 과정을 반대로 하면 압축을 풀 수가 있다 • LoadComp • EntropyDecoding • Dequantization • ReverseDCT • ToRGB • OutDeComp

  17. 프로젝트 후기 • 매트랩을 사용해서 유용했던 점 • 이미 정의되어 있는 함수를 사용해서 간단하게 프로그램을 구현할 수가 있다. • 원래 이산 코사인 변환에서 복잡한 계산을 해야 하지만 매트랩 기능을 사용해서 간단하게 연산을 할 수 있었다. • 사이즈가 큰 행렬을 쉽게 다룰 수가 있다 • C언어와 다르게 행렬간의 합과 곱이 간편하게 된다.

  18. 프로젝트 후기 • 프로젝트를 하며 아쉬웠던 점 • BMP 파일 가로 세로 크기가 2000 픽셀을 넘어가면 엔트로피 부호화 부분이 상당히 느려진다. • 매트랩의 GUI를 잘 활용하지 못했다.

  19. 프로젝트 후기 • 다른 팀들의 발표를 보고… • 다른 팀들을 주로 음성 관련 주제가 많았다. 그 중에서 스테레오에서 배경음악과 노랫소리를 분리해서 MR을 추출하는게 가장 인상에 남았다. 그리고 음성인식이나 얼굴인식과 같이 추상적으로 보이는 내용을 구현하려고 노력한 것이 대단하다고 생각한다. 내가 한 이미지 압축은 입력값이 명확하니 항상 예상 가능한 결과를 얻을 수 있지만 음성인식, 얼굴인식은 입력값에 따라 애매한 부분도 생길 수 있기 때문이다. 그 밖에 다른 프로그래밍 언어를 응용하려 한 것이 놀라웠다. 혼자서 프로젝트를 진행하다보니 여러 가지 시도해보지 못한 것이 아쉬웠다.

More Related