복습
RGB를 다 합치면 흰색 -> 빛
물감의 경우는 검은색 -> 색
자연으로 부터 얻은 RGB이미지를 어디에 표현하는가? - 프린트, 모디터 등에 따라 color model을 제시
CMY, CMYk(프린터)/ HSI(HSV) - 모니터/ YQI,YUI
Y성분(명도)만 이미지 프로세싱 -> 수행시간 줄어듦
RGB를 따로 프로세싱 하면 각각의 채널 모두 처리해야 함 -> 위 보다 3배 더 긴 수행시간
수행시간을 줄이기 위해 명도성분만 프로세싱 해줌 : RGB -> YQI -> Y'QI -> RGB'
멀티미디어 데이터의 압축성
- 이미지, 소리, 텍스트 등을 멀티미디어 데이터라고 정의
- 이미지 데이터에 대해 512x512의 화면크기 24-bit RGB인 경우 : 6.29Mbits
- 전송속도를 56kbps로 가정하면 한 장 이미지 전송 시간은 112sec로 예상
- 초당 15프레임을 최소로 우리의 눈은 이미지를 영상으로 인식 -> 잔상
- 초당 15장씩 전달해야 하므로 매우 오래 걸릴 수 있음
- 오디오는 안정적인 소리 전달을 위해 보통 목소리보다 2배
- 스트레오 오디오는 데이터가 더 많아짐
- 이것들을 전송하는데 시간이 더욱 길어지므로 압축을 하고자함 -> 1/(30~70)정도의 압축률
- 이러한 방법, 행위들을 멀티미디어 데이터 압축이라고 부름
- 결론적으로 데이터 전송시간 절약, 데이터 저장공간을 효율적으로 이용하기 위해 사용하는 방식
멀티미디어 데이터 압축 기본개념
- 데이터를 압축하는 파트 : incoding
- 압축한 데이터를 복원하는 파트 : decoding
- 둘을 합쳐서 CODEC이라고 부름
- 100%복원이 가능한 경우도 있지만 100%복원이 어려운 경우도 생김 -> 유손실 압축(lossy), 무손실 압축(lossless)
- 압축률
- input데이터가 더 커야 하므로 1보다 큰 수가 나옴
- 압축이 많이 되면 손실이 발생
- 군사용, 의료용에는 손실이 발생하면 안되므로 무손실 압축을 사용
- 사람들은 손실이 적으면서 압축률이 높고 복잡도가 적어서 수행시간이 짧은 압축을 원함
- Statistical Redundancy(중복성)의 제거 - ex)어떤 이미지에서 같은 픽셀값이 3번 이상 반복됐을 때 등등
- Spatial redundancy
- Temporal redundancy
- Non-stationary statistics
- Human Visual System : 인간 관점에서 보거나 듣지 못하는 정보를 제거
- Spatial masking
- Temporal masking
멀티미디어 데이터 압축 알고리즘 다양성
- 현실적으로는 고안은 해놓았으나 상업적으로 사용하려면 시간이 매우 오래 걸리기 때문에 개발하기까지 오랜시간이 걸림
- 이미지 프로세싱에서는 huffman coding, Arithmetic coding, Vector-Quantization, DCT 등을 사용
멀티미디어 데이터 압축 동향
- 여러사람(연구원들)이 여러 방법들을 제안해 놓았고 이것들 중 하나를 선택하여 표준화
- 표준화의 필요성 : 표준화를 하지 않으면 인코딩 디코딩 방식이 일치하지 않아 복원을 못하는 경우가 생김
- 표준화 추진 동향
- 사진 : JPEG
- 방송 : MPEG
- 통신매체 중 비디오/이미지/소리 -> 싱크가 맞아야 함 : H.
멀티미디어 데이터 압축에 대한 Framework 구성
- Framwork 구성 3가지 요소
- preprocessor : 인간이 보지 못하고 듣지 못하는 것을 제거, 전처리를 통해 약간의 압축이 이루어짐
- Entropy Coder : 무손실 압축
- Additional Processing : 유손실 압축 -> 0~255까지의 값을 줄여서 보내면 압축률은 높아지지만 복원시 어설퍼짐(손실)
- decoding은 반대로 처리 preprocessor는 안해도 눈치 챌 수 없음
file을 전송하거나 저장할 때, 파일 크기가 가능하면 작았으면 좋겠음 -> 압축을 하는 이유
Lossless : 모든 정보가 유지 됨
Lossy : 정보가 손실 될 수 있음
Huffman Coding
- 모든 코딩하는 정보의 길이가 동일한 것이 지금까지 하던 방식
- pixel의 0~255중에서 많이 나오는 정보는 코딩길이를 짧게, 조금 나오는 정보는 길이를 길게
- 이미지중에서는 밝은 쪽이 짧게 coding -> 밝은 곳에서 사진을 찍는 것이 보편적이기 때문
- 여러가지 코딩 방법들 중 가장 적합한 코딩 방식을 찾는다면 위의 H값 만큼 줄일 수 있음 -> entropy
- Huffman encoding 알고리즘
- 빈도가 작은 것들끼리 합치면서 트리를 형성
- 트리를 형성 한 후 가장 상위에서부터 0과 1을 부여
- 이는 허프만 코드의 한 예일 뿐
- (빈도 x code길이)를 모두 더한 값 = 이 방식으로 인코딩했을 경우의 평균 bit
- entropy값은 제일 작은 평균 bit 수 이므로 이 값보다 작은 값이 나올 수 없음
- 예제
- 디코딩 하는 경우에 읽는 것이 어려워짐 - 0이 나오는 순간 읽기를 중단하고 테이블에서 값을 찾음 -> 1이 매우 많은 경우 읽는데 시간이 오래걸림
Run-length Encoding
- 모든 비트를 안보낼 방법이 없을까?
- 첫 번쨰 방식
- 시작하는 순간의 0이 몇 번 반복되는지, 그 후 1이 몇 번 반복되는지,... 반복하며 기록
- 각 라인을 분리하여 기록
- 두 번째 방식
- 1이 시작하는 위치와 1의 개수를 기록
- 만약 한 라인에 0을 가운데 두고 1이 두 번 이상 나온다면 나누어 기록
- 0과 1이 아닌 다른 수를 인코딩 하는 경우
- 2진수로 표현 후 0번, 1번, 2번, 3번 열로 나누어 기록
- Gray code를 적용하여 인코딩 하는 경우
- 2에 해당하는 Binary code : 0 0 1 0 -> Gray code로 바꾸면 왼쪽 숫자와 비교하여 같으면 0, 다르면 1로 기록함, 따라서 0 0 1 0은 0 0 1 1로 기록
- 앞의 수와 뒤의 수가 1bit씩 밖에 차이가 안나기 때문에 순차적인 증감값을 이용할 때 유용함
- 그러나 2진수로 변환을 해야 하므로 연산이 많이 일어나는 곳에서는 효율적이지 못함
- 예제
'영상처리' 카테고리의 다른 글
[12월4일]chapter15 - WAVELETS (0) | 2018.12.04 |
---|---|
[11월29일]JPEG 압축, 복원 (0) | 2018.11.29 |
[11월22일]chapter13 - Color Processing (0) | 2018.11.23 |
[11월14일]2차 Derivative에 따른 edge 검출 (0) | 2018.11.23 |
[11월13일]chapter 9 - Image segmentaion (0) | 2018.11.23 |