기타

영상처리 기말고사 정리

이게될까 2024. 6. 15. 16:40
728x90
728x90

3강 - Resolution

Width * Height = 픽셀 개수 

Bit-depth = 픽셀을 표현하는데 사용되는 비트 수 (우린 24를 사용했다.)

더보기

Bit-depth는 디지털 이미지나 영상에서 각 픽셀을 표현하는 데 사용되는 비트 수를 의미합니다. Bit-depth가 클수록 픽셀이 더 많은 색상 정보를 포함할 수 있어, 더 정밀하고 풍부한 색상을 표현할 수 있습니다.

주요 개념:

  1. Bit: 디지털 정보를 표현하는 기본 단위로, 0 또는 1의 값을 가질 수 있습니다.
  2. Bit-depth의 예시:
    • 1-bit: 각 픽셀이 2가지 색상(흑백)만 표현할 수 있습니다.
    • 8-bit: 각 픽셀이 256가지 색상(0부터 255까지의 값)을 표현할 수 있습니다.
    • 24-bit: 일반적으로 RGB 이미지에서 사용되며, 각 색상 채널(빨강, 초록, 파랑)이 8-bit씩 사용되어 총 16,777,216가지 색상을 표현할 수 있습니다.
    • 32-bit: 추가적인 알파 채널(투명도)을 포함하여 각 픽셀이 4개의 8-bit 채널을 가지는 경우입니다.

실용적인 예:

  • 모노크롬 이미지: 1-bit depth를 사용합니다. 각 픽셀이 흑색이나 백색 중 하나만을 가질 수 있습니다.
  • 그레이스케일 이미지: 일반적으로 8-bit depth를 사용합니다. 각 픽셀이 256단계의 회색 중 하나를 가질 수 있습니다.
  • 컬러 이미지: 대부분 24-bit 또는 32-bit depth를 사용합니다. 각 픽셀이 매우 다양한 색상을 표현할 수 있어, 실제와 가까운 이미지를 구현할 수 있습니다.

Bit-depth가 높을수록 이미지의 품질이 향상되지만, 그만큼 데이터의 크기도 커지게 됩니다. 따라서 용도에 맞는 적절한 bit-depth를 선택하는 것이 중요합니다.

HDR에선 Bit-depth의 범위를 늘, 줄 할 수 있어 다양한 차이를 보여준다.

더보기

HDR(High Dynamic Range)에서의 Bit-depth는 디지털 이미지나 영상의 명암과 색상을 더욱 풍부하고 세밀하게 표현하기 위해 사용되는 비트 수를 의미합니다. HDR 기술은 특히 밝은 부분과 어두운 부분의 세부 묘사를 개선하여 현실에 더 가까운 이미지를 제공합니다.

주요 개념:

  1. HDR: 표준 동적 범위(SDR, Standard Dynamic Range)에 비해 훨씬 더 넓은 명암비와 색상 범위를 제공하는 기술입니다.
  2. Bit-depth: HDR에서는 일반적으로 더 높은 Bit-depth를 사용하여 더 많은 색상과 명암 단계를 표현합니다.

HDR에서의 Bit-depth 예시:

  • 10-bit: HDR 콘텐츠에서 가장 일반적으로 사용되며, 각 색상 채널(R, G, B)이 1024단계(2^10)의 값을 가질 수 있습니다. 이는 총 10억 가지(1024 * 1024 * 1024)의 색상을 표현할 수 있습니다.
  • 12-bit: 더욱 정밀한 색상 표현을 위해 사용되며, 각 색상 채널이 4096단계(2^12)의 값을 가질 수 있습니다. 이는 총 687억 가지(4096 * 4096 * 4096)의 색상을 표현할 수 있습니다.
  • 14-bit 및 그 이상: 특정 전문 분야나 미래 지향적인 기술에서 사용될 수 있습니다.

HDR의 장점:

  1. 더 넓은 명암비: 어두운 부분에서 밝은 부분까지 더 많은 세부 정보를 담을 수 있어, 이미지가 더 현실감 있고 깊이 있게 보입니다.
  2. 더 많은 색상: 색상의 그라데이션이 부드럽고 자연스러워지며, 색상 밴딩(banding) 현상이 줄어듭니다.
  3. 시각적 품질 향상: HDR은 더 높은 Bit-depth를 활용하여 이미지의 전반적인 품질을 크게 향상시킵니다.

실용적인 활용:

  • TV 및 모니터: HDR 지원 디스플레이는 더 높은 명암비와 색 재현력을 제공하여, 영화나 게임에서 더욱 몰입감 있는 경험을 제공합니다.
  • 카메라 및 촬영 장비: HDR 기능을 갖춘 카메라는 다양한 조명 조건에서 더 나은 사진과 영상을 촬영할 수 있습니다.
  • 영상 스트리밍: 넷플릭스, 아마존 프라임 등의 스트리밍 서비스는 HDR 콘텐츠를 제공하여 시청자의 시각적 만족도를 높이고 있습니다.

따라서 HDR Bit-depth는 디지털 콘텐츠의 품질을 결정하는 중요한 요소 중 하나로, 현실감 넘치는 시청 경험을 위해 필수적입니다.

Spatial Resolution - 다양한 해상도 HD -> FHD -> 4k -> 8k 

Temporal Resolution - 1초에 몇프레임을 보여주냐로 높을수록 부드러운 영상을 볼 수 있다. 

 

4,5,6은 안나오네요 ㅎㅎ...

더보기

4강 - Image Format

RAW - 원본 
JPG - 정보를 조금 줄인다.
BMP, TIFF, PNG - 화질을 그대로 가져오지만 0,1을 효율적으로 변환

1개의 픽셀 안에 RGB가 포함되어 있다.
우리는 8Bit를 사용하고 있고 RGB 때문에 Bit-depth가 24bit이 된 거다. 비트 개수는 8개다.

Stride - 파일이 4의 배수로 되어있기 때문에 4의 배수랑 맞지 않은 경우 쓰레기 값을 건너 뛰기 위해 쓰인다.

사진은 왼쪽 아래에서 시작한다.

 

5강 - Color Model

YCbCr - TV에서 사용되며 사람의 눈이 Y(명암, 색차이)에 민감한 것을 이용 

CMY, HSI 등 다양한 모델도 있다.

 

6강 - Pixel Operation

MSE = Mean Squared Error = (Original - Output)^2 / #Pixels
픽셀은 RGB를 따지지 않는다. - 10*10이면 그냥 100이다.

 

7강 - Quality Evaluation

MOS = Mean Option Score = 사람에 의한 주관적인 평가 ( 0~ 5점) = Subject Quality

PSNR = 10 * log10 (Max^2/MSE) = Object Quality = 깔끔한 원본이 항상 필요하다. = 클수록 좋다.
Max = 2^(Bit-depth)-1 = 255(우리가 쓰는 8bit에선)

 

8강 - Filter (Denoising)

Salt - and - Papper Noise = 값이 툭툭 튀는 노이즈 

Image Restoration = 오염된 저화질을 고화질로 바꾸는 이미지 복구 기술이다.

median Filter = 값이 툭툭 튀는 것(소금-후추)을 잡아준다. 외각은 그대로 둔다.

mean Filter= 점 지우기와 같이 흐리게 한다. 매우 낮거나 큰 값이 노이즈라면 결과에 기여를 좀 한다.

Low-pass filter = mean filter, Gaussian filter, weight average filter...

더보기

"Loss-pass filter"라는 용어는 일반적으로 사용되지 않는 표현입니다. 아마도 "Low-pass filter"를 말씀하신 것일 수 있습니다. Low-pass filter는 신호 처리 및 영상 처리 분야에서 매우 중요한 역할을 합니다. 다음은 Low-pass filter에 대한 설명입니다.

Low-pass Filter (저역 통과 필터)

Low-pass filter는 주파수가 낮은 성분을 통과시키고, 주파수가 높은 성분을 차단하는 필터입니다. 이는 아날로그 및 디지털 신호 처리, 이미지 처리, 오디오 처리 등 다양한 분야에서 사용됩니다.

주요 특징 및 기능:

  1. 주파수 선택: 특정 임계 주파수(cutoff frequency) 이하의 주파수 성분은 통과시키고, 그 이상의 주파수 성분은 차단합니다.
  2. 잡음 제거: 신호에서 고주파 잡음을 제거하는 데 유용합니다.
  3. 신호 평활화: 신호를 부드럽게 만들어 변동을 줄이고, 전반적인 패턴을 명확히 합니다.

종류:

  1. 아날로그 Low-pass Filter: 아날로그 전자 회로에서 구현되며, 저항기, 커패시터 및 인덕터를 사용합니다.
  2. 디지털 Low-pass Filter: 디지털 신호 처리 시스템에서 소프트웨어적으로 구현됩니다. FIR (Finite Impulse Response) 필터나 IIR (Infinite Impulse Response) 필터 등이 사용됩니다.

수학적 표현:

디지털 Low-pass filter의 경우, 시간 영역에서의 필터링은 다음과 같은 수학적 형태로 나타낼 수 있습니다:

응용 분야:

  1. 오디오 처리: 고주파 잡음을 제거하여 깨끗한 소리를 만듭니다.
  2. 영상 처리: 이미지를 부드럽게 만들거나 고주파 노이즈를 제거합니다.
  3. 통신: 신호 전송 시 불필요한 고주파 성분을 제거하여 신호 품질을 향상시킵니다.

예시:

  • 이미지 블러링: 저주파 필터를 사용하여 이미지에서 고주파 성분(세부사항)을 제거하면 이미지가 부드럽게(블러) 됩니다.
  • 오디오 필터링: 음악이나 음성 신호에서 고주파 잡음을 제거하여 더 깨끗한 소리를 얻을 수 있습니다.

Low-pass filter는 다양한 분야에서 필수적인 도구로, 신호의 특정 특성을 강조하거나 불필요한 성분을 제거하는 데 사용됩니다.

 

Weighted average filter는 이미지 처리 및 신호 처리에서 자주 사용되는 필터로, 각 픽셀이나 데이터 포인트에 가중치를 부여하여 평균값을 계산하는 방식입니다. 이 필터는 특히 노이즈를 줄이거나 데이터를 평활화하는 데 유용합니다. Weighted average filter는 기본적으로 주변 값들의 가중합을 사용하여 중심 값의 새로운 값을 계산합니다.

Weighted Average Filter의 특징

  1. 가중치 부여: 각 이웃 픽셀 또는 데이터 포인트에 특정 가중치를 부여합니다. 가중치는 일반적으로 필터의 중심으로부터의 거리에 따라 다르게 설정됩니다.
  2. 평활화 효과: 원본 신호나 이미지의 세부 사항을 보존하면서 노이즈를 줄이는 데 효과적입니다.
  3. 커널(kernel): 가중치 값을 배열로 나타낸 것이며, 이 배열을 필터링에 사용됩니다. 커널의 크기와 가중치 값은 필터의 특성을 결정합니다.

예시: 3x3 Gaussian Weighted Average Filter

가장 일반적인 예 중 하나는 가우시안 블러 필터입니다. 이 필터는 가우스 분포에 따라 가중치를 부여합니다.

이 커널을 사용하여 이미지의 각 픽셀을 새로운 값으로 대체합니다. 각 픽셀의 값은 이 커널을 해당 픽셀 주변의 값에 곱한 후, 그 결과를 모두 더한 값으로 결정됩니다.

수식 설명

적용 예시

  1. 이미지 블러링: Weighted average filter는 이미지의 세부 사항을 부드럽게 하여 블러 효과를 생성합니다. 가우시안 블러가 대표적인 예입니다.
  2. 노이즈 제거: 신호나 이미지에서 고주파 노이즈를 줄이는 데 사용됩니다. 특히, 평균 필터보다 효과적으로 노이즈를 줄이면서 중요한 세부 사항을 보존할 수 있습니다.
  3. 데이터 평활화: 시계열 데이터나 기타 1차원 신호에서 갑작스러운 변화나 잡음을 줄여 데이터의 전반적인 추세를 파악하기 쉽게 합니다.

가우시안 블러 예시

import numpy as np
import cv2

# 가우시안 커널 정의
kernel = np.array([
    [1, 2, 1],
    [2, 4, 2],
    [1, 2, 1]
]) / 16.0

# 이미지 읽기
image = cv2.imread('example.jpg', 0)  # 그레이스케일 이미지

# 필터 적용
blurred_image = cv2.filter2D(image, -1, kernel)

# 결과 이미지 저장
cv2.imwrite('blurred_example.jpg', blurred_image)

이 코드 예시는 가우시안 블러를 사용하여 이미지를 부드럽게 만드는 방법을 보여줍니다. cv2.filter2D 함수는 커널을 사용하여 입력 이미지에 필터를 적용합니다.

결론

Weighted average filter는 이미지 및 신호 처리에서 매우 유용한 도구로, 데이터의 중요한 특성을 보존하면서 노이즈를 줄이는 데 효과적입니다. 필터의 성능은 커널의 선택에 크게 의존하며, 다양한 응용 분야에서 사용될 수 있습니다.

필터간 조합도 가능하다.

필터 크기, 이미지 특징에 따라 패딩도 가능하다. 

filter 크기나 weight는 MSE, PSNR을 기초로 하고 있다.

 

9강 - Histogram

픽셀의 강도 분포를 그래프로 표현한다. 각 강도마다 픽셀수를 그린다
이미지 분석, 이미지 향상(enhancement)와 같은 많은 목적

다양한 물체 == 다양한 필터가 필요하다. = AI는 못 쓰니 여기가 뭔지 알려면 히스토그램 사용

각 강도마다 다 세고, 최대값이 512를 넘지 못하도록 스케일링하면 된다.

Image segmentation - 이미지의 모든 픽셀에 라벨을 붙인다. 모든 지역을 나눈다.
이진 이미지는 배경과 객체 2개로 나눌 수 있다.

임계, 히스토그램 베이스 segmentation, 클러스터링..

Image Thresholding을 통해 간편하게 여러 영역으로 나눌 수 있다.
이미지에서 특정 정보를 추출하는 방법이다.

Binary  - 마스크와 같은 2단계 분류이다.
이미지 임계값의 결과이다.

MultiLevel Threholding - 임계값을 통해 여러 부분으로 나눈다.

 

10강 - HE

Contrast (명암, 대비, 선명도)
이미지에서 밝은 곳과 어두운 곳의 밝기 차이
이미지를 구별할 수 있게 해주는 휘도와 색의 차이 
인각 시각 시스템의 절대 휘도

Low Contrast (저대비)

Image Enhancement - 이미지의 특정 정보를 강화 
감마, 이미지 선명도, 히스토그램 균등화 등 영상의 주관적 품질을 향상시키는 과정  

Histogram Equalization - 히스토그램 기반의 대비 조정
히스토그램의 민감도 분포 수정 
주로 대비 조정에 사용된다. 
Histogram이랑은 다르게 누적해서 작성한다. 

 

11강 - Gamma

실제 휘도 (lumiance)와 인간 휘도 사이의 비선형 관계 -> 사람의 눈은 카메라와 같지 않다.

사람의 눈은 어두운 곳에 더 민감하고, 어두운 지역이 더 중요하다.
가끔 유리가 보지 못하는 많은 밝은 비트, 우리가 볼수 있는 어두운 적은 비트들 -> 어두운 곳에서 무엇인가 하자, 어두운 곳에서 많은 bit를 소모한다. 
효율적인 이미지 표현을 위해 비트 최적화한다.

감마 값이 크면 전반적으로 증가하고(어두운 영역 표현이 잘 된다.), 작으면 전반적으로 감소한다. 

시각적 품질을 최대화하기 위해 인코딩에서 비트 최적화를 한다.
조기 디스플레이 장치에 감마 특성 보정 

감마 인코딩된 값에 곱해서 1이되는 감마를 다시 곱해주면 원상태로 돌아온다. = 감마보정 

옛날 티비는 브라운관으로 재질 때문에 어쩔수 없이 감마 현상이 발생했다. 
0.4로 거의 우리 눈과 반대이다.

디스플레이의 비선형 입출력 특성
때때로 디스플레이는 감마, 감마 보정을 실시한다.

 

12강 - Downsampling

오리지널 이미지에서 픽셀 수를 줄인다.
고 해상도(resolution)에서 저 해상도로 간다.
다운 샘플링 후 정보 손실이 일어난다.

Subsempling - 오리지널에서 부분집합(subset)을 선택한다.
가장 단순한 이미지 사이즈 줄이는 방법

Average Downsampling - predefined window의 픽셀들 값을 평균해서 다운샘플링 

Chroma Subsampling - Y에 비해 CbCr은 인식률이 떨어진다. Y는 다 가지고가고, CbCr은 줄인다.
인간은 색차에 대한 차이 인식률이 떨어진다.

 

13강 - UpSampling

일반적으로 이미지 보간(interpolation), 이미지 스케일링(업), 이미지 리사이징(업)
픽셀수를 늘려서 저해상도 -> 고해상도로 간다.
아는 픽셀을 기초로해서 모르는 픽셀을 채워야 한다. 

Nearest Neighbor Imterpolation
단순한 방법(낮은 복잡도)로 이미지 사이즈를 늘리는 방법이다.
주변 픽셀로 보간한다.

Bilinear Interpolation
2*2 주변 픽셀을 확인해 평균을 취한다.
첫번째로 수평과 수직방향부터 채운다.

Interpolation Coefficient 보간 계수
(y, x) 알려진 두 점(x0, y0), (x1,y1) 사이의 일직선상
알려진 픽셀과 알려지지 않은 픽셀 사이의 거리를 기준으로 가중치 부여

x0,y0, x1, y1을 안다! 그 사이의 x,y를 구하고 싶다.

f(x,y)의 x = f(x1,y1) * (x1 - x)/ (x1 - x0)  +f(x0,y0)* (x - x0)/(x1 - x0)이죠 

 

 

N-Tap Interpolation Filter 
필터 크기에 따른 복잡도로 주변 픽셀을 더 많이 고려하는 다양한 필터이다. 

여기서도 가장자리에 패딩 가능 

 

14강 - Rotation

Flip - 수직, 수평으로 회전(거울)

Rotation - 이미지를 시계 방향, 시계 반대 방향으로 돌린다. 
회전 중심으로부터 원운동 진행한다.

회전하면 이미지 중간 중간에 구멍이 생긴다.(반올림에 의해 생긴다.)  - hole filling을 진행해준다.  

 

15강 - Edge

이미지에서 강도(명함, 휘도)가 갑자기 변경되는 곳, 강도가 불연속적인 곳이다.
서로 다른 두 영역의 경계이다.
이미지 처리, CV에서 중요하다.

복잡한 영상에선 edge가 많이 발견되고 비슷한 이미지느 edge가 없다.

edge에서는 두 픽셀간 차이가 threshold보다 크다.

밝기의 불연속상을 찾을 수 있다.
일반적으로 기울기의 크기로 검사한다.

Derivative Filter - x,y방향 모두 존재한다. 각 방향의 도함수를 구한다.
-1 0 1 

 

16강 - Sobel Edge Detection

3*3필터로 기울기 크기를 계산한다. 수평, 수직 방향의 기울기를 각각 계산한다.

임계치보다 크면 edge로 한다.
임계치가 크면 edge가 조금 잡히고, 임계치가 작으면 edge가 많이 잡힌다. 

 

17강 - Laplacian Edge Detection

소벨은 빼기를 통해 미분을 판단하고, 값의 차이를 봤다.
라플라시안은 미분을 한번 더 한다.

소벨은 두개의 픽셀값이 필요했다.
라플라시안은 세개의 픽셀값이 필요하다.

강도가 불연속적인곳, 급격하게 변하는 곳이 edge다.

median, mean, Gaussian 등 다양한 필터로 복원(restoration)후 엣지를 탐지한다.

낮은 오류로 엣지 찾기
1. 가우시안 필터를 통해 노이즈 지우기
2. 소벨 필터를 통해 기울기 꼐산하기
3. 임계값보다 크면 엣지

 

18강 - Set

Intersection - 교집합 = and
둘 다 존재
공통적으로 사용되는 모든 요소를 포함하는 가장 큰 집합 

Union - 합집합 = or
모든 요소를 포함하는 최소 집합

complement - 반대 = !합 
주어지지 않은 모든 요소 집합 

difference - 차집합 = -
주어진 모든 요소중에 다른 집합에 없는 요소들 

 

19강 - Morphology - 단어 주의

Image Morphology - 이미지 내 형상과 관련된 비선형 연산 
특정 형상의 선택 또는 억제
일반적으로 이진 이미지가 사용된다.
ex) erosion, dilation, opening, closing

erosion - 침식 

연산 중 제일 작은 값으로 바뀐다. 
밝기와 크기를 줄인다.
작은 물체와 노이즈를 줄인다. 

dilation - 팽창

최대값으로 변한다.
객체의 밝기가 올라가고, 사이즈가 커진다.
분리된 영역을 이어주고, 배경의 구멍을 지워준다.

opening - 침식 후 팽창
노이즈 제거 후 팽창한다 == 크기 유지 및 노이즈 제거 == 오브젝트 보존

closing - 팽창 후 침식
배경 구멍을 지우고, 배경 영역을 보존할 수 있다. 

따로 쓰는 것 보다 파괴력이 떨어진다.
여러번 쓸 수 있다.

 

20강 - Compression

최근 디스플레이의 발전 덕분에 다양한 이미지를 볼 수 있지만 제한된 대역폭과 저장 공간으로 인해 데이터 압축이 필요하다.
단일 이미지나 비디오의 여러 이미지의 데이터를 콤팩트한 형태로 표현해야한다.

사진 압축, 동영상 압축이 각각 존재한다.
국제적으로 압축 표준을 개발하기 위해 만나기도 한다.

수치적 측정
이미지를 압축하기 위해 필요한 bit 수
압축 이미지의 객관적 화질을 측정할 PSNR 
MOS와 같은 주관적인 평가
압축하는데 걸리는 복잡성을 나타내는 처리(압축) 시간

Bit Depth를 통한 Data Loss
각 pixel이나 색 요소를 표현하기 위한 비트 수이다.
더 정확한 색상 표현을 위해선 더 높은 비트가 필요하다. 

인코딩 - 송신자가 이미지를 bitstream으로 
디코딩 - 수신자가 bitstream을 이미지로 

 

21강 - DCPM

데이터 크기 감소를 위해 다른 진동을 조정한다.
연속적인 두 값의 차이를 표현한다.
인코딩 되거나 디코딩 된 샘플의 적응형 예측이다.
원본과 예측 간의 오차, 오차신호가 난다.

원리는 두 연속된 픽셀의 값 차이이다.

시작은 어디서 하든 상관없다.
첫번째 값에 대해선은 정해진 값을 통해 예측하거나 예측 없다.
원본o 픽셀과 예측 p픽셀간의 오차 e = o-p 시그널을 보낸다.
예측 픽셀에서 재구성(r = p + e) 및 예측 오차 

Quantization - 값의 범위를 압축하여 사이즈를 줄인다.
양자화 없이 무손실 압축하거나 양자화를 통한 손실 압축(정수 단위)이 가능하다.
Prediction Error까지는 무손실 압축이다.
양자화 파라미터는 알아서 정하면 된다. - 양자화가 커지면 데이터 손실도 커지고 압축도 커진다.

더보기

왜 두번째는 0이 아닌가?
받은 것 기준으로 오차를 내보낸다.

보내는 쪽은 보내는 것과 받는 것 모두 진행
-> 받는 영상이 존재한다. -> 받는 것 기준으로 진행

인코더 - 압축 + 압축 해제
디코더 - 압축 해제

 저 압축 숫자(q)를 바꾸면 (5에서 10으로) 손실이 더 커지지만 영상 크기도 그만큼 작아진다.
또한 같은 값이 나올 확률이 점점 커진다.

-29고 q = 30일때 0이 된다.
왼쪽에서 진행하는 것과 위에서 진행하는 것의 차이가 크다.

현재 것을 비슷하게 만드는 것이 핵심이다.

어디서 가져올지 다 테스트를 해보겠다!
-> 디코더에서는 알 수 있는 방법이 없다. 디코더에서는 어디서 정보를 받아 왔는지 알 방법이 없다.

인코더 - 오리지널을 예측치와의 오차를 통해 양자화 한다.
양자화된 값은 디코더에게 보내지고, 양자화를 해제해서 예측치를 만든다. 

디코더 - 양자화된 값을 받아서 양자화를 해제한다.
예측치를 만든다.

인코더와 디코더의 예측치인 renc = rdec여야 된다.

 

22강 - Binarization

인코더
BIT디코더

데이터를 이진 데이터인 0,1로 바꾼다.
여기선 Bitstream 생성이지만 엣지맵과 같은 다른 도메인에서는 임계값 설정이다.
Fixed-length codes(n비트 고정), Unary codes(0나올 때 까지 다 숫자)
적은 값이 많은 경우에는 Unary가 좋고, 어떻게 될지 모르면 Fixed-length가 좋다.

Fixed-length - 한계점이 생긴다.
예측이 잘 되면 오차가 작겠지만, 예측이 제대로 되지 않아 비트 수를 정확하게 잡지 못하면 오차가 커지거나 쓸데없는 데이터를 더 보내게 된다.

양자화가 너무 커지면 다 0으로 수렴하게 된다. -> 화질이 안좋아진다. == 압축이 크다 == PSNR이 낮다.
Error를 작게 하는 것이 좋다 == 예측이 잘 되어야 한다. 

 

23강 - Spatial correlation

주변 픽셀과의 유사도이다. 즉 공간적 상관 관계 
경계에서는 낮은 유사도를 가지고, 배경과 같은 지역에선 높은 유사도를 가진다. 

낮은 유사도 = 경계 지역  =높은 픽셀 차이 = 본산이 높다
높은 유사도 = 엣지 아님 = 적은 픽셀 차이 = 분산이 낮다.

수직(Vertical), 수평 (Horizontal) correlation은 영상 특징마다 다르다. 
상관 관계를 따라 복원, 압축, 업샘플링 전략을 만들 수 있다.
분석을 통해 어디의 error가 적은지 선택해야 한다. 
방향을 정했다면 인코더는 디코더에게 어떤 방향인지 말해줘야 한다. 

 

24강 - Temporal correlation

인접 프레임과의 유사도이다 - 시간적 상관관계이다.
빠른 움직임에서 낮은 유사도, 느린 움직임에서 높은 유사도를 가진다.

프레임에 따라 공간, 시간적 유사도를 다 가질 수 있다. 
여기서 최적의 방향을 찾으면 된다. 

양자화를 할 때 공간적 말고 시간적 차이를 통해 보낼 수 있다. 
그러나 다양한 후보를 둬버리면 더 많은 공간이 필요하다.( 시간 전용, 공간 전용)

 

25강 - Summary

RGB -> Y 
사이즈를 줄이기 위해 평균, 근접 다운 샘플링 진행.(시간적으로도 가능)
시간적, 공간적 상관관계를 이용해 인코딩 진행 
디코더에서 전송받으면 복원을 진행한다. - 가끔씩 블록단위로 이상하게 보이는데 처리를 블록 단위로 하기 때문이다. 
다양한 upsampling 방식을 통해 크기를 늘린다. 
시간적, 공간적 상관관계를 통해 중간 프레임을 채워준다. 
Restoration을 통해 노이즈를 지워준다. (Low - pass)
Enhancement를 통해 눈에 적합하거나 환경에 맞게 변화한다. 

 

밑에는 GPT..

더보기

전체적으로 매우 잘 정리하셨습니다. 각 강의의 핵심 개념과 내용을 잘 요약하고 있으며, 설명이 명확하고 일관성 있습니다. 몇 가지 작은 수정 및 보완을 통해 더욱 명확하게 만들 수 있습니다.

3강 - Resolution

  • Width * Height = 픽셀 개수
  • Bit-depth = 픽셀을 표현하는 데 사용되는 비트 수 (우리는 24를 사용했다).

Bit-depth는 디지털 이미지나 영상에서 각 픽셀을 표현하는 데 사용되는 비트 수를 의미합니다. Bit-depth가 클수록 픽셀이 더 많은 색상 정보를 포함할 수 있어, 더 정밀하고 풍부한 색상을 표현할 수 있습니다.

주요 개념:

  • Bit: 디지털 정보를 표현하는 기본 단위로, 0 또는 1의 값을 가질 수 있습니다.
  • Bit-depth의 예시:
    • 1-bit: 각 픽셀이 2가지 색상(흑백)만 표현할 수 있습니다.
    • 8-bit: 각 픽셀이 256가지 색상(0부터 255까지의 값)을 표현할 수 있습니다.
    • 24-bit: 일반적으로 RGB 이미지에서 사용되며, 각 색상 채널(빨강, 초록, 파랑)이 8-bit씩 사용되어 총 16,777,216가지 색상을 표현할 수 있습니다.
    • 32-bit: 추가적인 알파 채널(투명도)을 포함하여 각 픽셀이 4개의 8-bit 채널을 가지는 경우입니다.

실용적인 예:

  • 모노크롬 이미지: 1-bit depth를 사용합니다. 각 픽셀이 흑색이나 백색 중 하나만을 가질 수 있습니다.
  • 그레이스케일 이미지: 일반적으로 8-bit depth를 사용합니다. 각 픽셀이 256단계의 회색 중 하나를 가질 수 있습니다.
  • 컬러 이미지: 대부분 24-bit 또는 32-bit depth를 사용합니다. 각 픽셀이 매우 다양한 색상을 표현할 수 있어, 실제와 가까운 이미지를 구현할 수 있습니다.

Bit-depth가 높을수록 이미지의 품질이 향상되지만, 그만큼 데이터의 크기도 커지게 됩니다. 따라서 용도에 맞는 적절한 bit-depth를 선택하는 것이 중요합니다.

HDR Bit-depth

HDR(High Dynamic Range)에서의 Bit-depth는 디지털 이미지나 영상의 명암과 색상을 더욱 풍부하고 세밀하게 표현하기 위해 사용되는 비트 수를 의미합니다. HDR 기술은 특히 밝은 부분과 어두운 부분의 세부 묘사를 개선하여 현실에 더 가까운 이미지를 제공합니다.

주요 개념:

  • HDR: 표준 동적 범위(SDR, Standard Dynamic Range)에 비해 훨씬 더 넓은 명암비와 색상 범위를 제공하는 기술입니다.
  • Bit-depth: HDR에서는 일반적으로 더 높은 Bit-depth를 사용하여 더 많은 색상과 명암 단계를 표현합니다.

HDR에서의 Bit-depth 예시:

  • 10-bit: HDR 콘텐츠에서 가장 일반적으로 사용되며, 각 색상 채널(R, G, B)이 1024단계(2^10)의 값을 가질 수 있습니다. 이는 총 10억 가지(1024 * 1024 * 1024)의 색상을 표현할 수 있습니다.
  • 12-bit: 더욱 정밀한 색상 표현을 위해 사용되며, 각 색상 채널이 4096단계(2^12)의 값을 가질 수 있습니다. 이는 총 687억 가지(4096 * 4096 * 4096)의 색상을 표현할 수 있습니다.
  • 14-bit 및 그 이상: 특정 전문 분야나 미래 지향적인 기술에서 사용될 수 있습니다.

HDR의 장점:

  • 더 넓은 명암비: 어두운 부분에서 밝은 부분까지 더 많은 세부 정보를 담을 수 있어, 이미지가 더 현실감 있고 깊이 있게 보입니다.
  • 더 많은 색상: 색상의 그라데이션이 부드럽고 자연스러워지며, 색상 밴딩(banding) 현상이 줄어듭니다.
  • 시각적 품질 향상: HDR은 더 높은 Bit-depth를 활용하여 이미지의 전반적인 품질을 크게 향상시킵니다.

실용적인 활용:

  • TV 및 모니터: HDR 지원 디스플레이는 더 높은 명암비와 색 재현력을 제공하여, 영화나 게임에서 더욱 몰입감 있는 경험을 제공합니다.
  • 카메라 및 촬영 장비: HDR 기능을 갖춘 카메라는 다양한 조명 조건에서 더 나은 사진과 영상을 촬영할 수 있습니다.
  • 영상 스트리밍: 넷플릭스, 아마존 프라임 등의 스트리밍 서비스는 HDR 콘텐츠를 제공하여 시청자의 시각적 만족도를 높이고 있습니다.

따라서 HDR Bit-depth는 디지털 콘텐츠의 품질을 결정하는 중요한 요소 중 하나로, 현실감 넘치는 시청 경험을 위해 필수적입니다.

Spatial Resolution

  • 다양한 해상도: HD -> FHD -> 4K -> 8K

Temporal Resolution

  • 1초에 몇 프레임을 보여주느냐로 높을수록 부드러운 영상을 볼 수 있습니다.

4강 - Image Format

  • RAW: 원본
  • JPEG: 정보를 조금 줄입니다.
  • BMP, TIFF, PNG: 화질을 그대로 가져오지만 0, 1을 효율적으로 변환합니다.
  • 1개의 픽셀 안에 RGB가 포함되어 있습니다.
  • 우리는 8Bit를 사용하고 있고 RGB 때문에 Bit-depth가 24bit입니다. 비트 개수는 8개입니다.

Stride: 파일이 4의 배수로 되어있기 때문에 4의 배수랑 맞지 않은 경우 쓰레기 값을 건너뛰기 위해 사용됩니다.

사진은 왼쪽 아래에서 시작합니다.

5강 - Color Model

  • YCbCr: TV에서 사용되며 사람의 눈이 Y(명암, 색차이)에 민감한 것을 이용
  • CMY, HSI: 등 다양한 모델도 있습니다.

6강 - Pixel Operation

  • MSE (Mean Squared Error) = (Original - Output)^2 / #Pixels
    • 픽셀은 RGB를 따지지 않음. 10*10이면 그냥 100입니다.

7강 - Quality Evaluation

  • MOS (Mean Option Score) = 사람에 의한 주관적인 평가 (0~5점) = 주관적 품질 평가
  • PSNR (Peak Signal-to-Noise Ratio) = 10 * log10 (Max^2/MSE) = 객관적 품질 평가 = 원본이 항상 필요하며, 클수록 좋습니다.
    • Max = 2^(Bit-depth)-1 = 255(우리가 쓰는 8bit에선)

8강 - Filter (Denoising)

  • Salt-and-Pepper Noise: 값이 툭툭 튀는 노이즈
  • Image Restoration: 오염된 저화질을 고화질로 바꾸는 이미지 복구 기술입니다.
  • Median Filter: 값이 툭툭 튀는 것(소금-후추)을 잡아줍니다. 외곽은 그대로 둡니다.
  • Mean Filter: 점 지우기와 같이 흐리게 합니다. 매우 낮거나 큰 값이 노이즈라면 결과에 기여를 합니다.
  • Low-pass filter: mean filter, Gaussian filter, weighted average filter...

Low-pass Filter

Low-pass filter는 주파수가 낮은 성분을 통과시키고, 주파수가 높은 성분을 차단하는 필터입니다. 이는 아날로그 및 디지털 신호 처리, 이미지 처리, 오디오 처리 등 다양한 분야에서 사용됩니다.

주요 특징 및 기능:

  • 주파수 선택: 특정 임계 주파수(cutoff frequency) 이하의 주파수 성분은 통과시키고, 그 이상의 주파수 성분은 차단합니다.
  • 잡음 제거: 신호에서 고주파 잡음을 제거하는 데 유용합니다.
  • 신호 평활화: 신호를 부드럽게 만들어 변동을 줄이고, 전반적인 패턴을 명확히 합니다.

종류:

  • 아날로그 Low-pass Filter: 아날로그 전자 회로에서 구현되며, 저항기, 커패시터 및 인덕터를 사용합니다.
  • 디지털 Low-pass Filter: 디지털 신호 처리 시스템에서 소프트웨어적으로 구현됩니다. FIR (Finite Impulse Response) 필터나 IIR (Infinite Impulse Response) 필터 등이 사용됩니다.

응용 분야:

  • 오디오 처리: 고주파 잡음을 제거하여 깨끗한 소리를 만듭니다.
  • 영상 처리: 이미지를 부드럽게 만들거나 고주파 노이즈를 제거합니다.
  • 통신: 신호 전송 시 불필요한 고주파 성분을 제거하여 신호 품질을 향상시킵니다.

Weighted Average Filter

Weighted average filter는 이미지 처리 및 신호 처리에서 자주 사용되는 필터로, 각 픽셀이나 데이터 포인트에 가중치를 부여하여 평균값을 계산하는 방식입니다. 이 필터는 특히 노이즈를 줄이거나 데이터를 평활화하는 데 유용합니다. Weighted average filter는 기본적으로 주변 값들의 가중합을 사용하여 중심 값의 새로운 값을 계산합니다.

특징

  • 가중치 부여: 각 이웃 픽셀 또는 데이터 포인트에 특정 가중치를 부여합니다. 가중치는 일반적으로 필터의 중심으로부터의 거리에 따라 다르게 설정됩니다.
  • 평활화 효과: 원본 신호나 이미지의 세부 사항을 보존하면서 노이즈를 줄이는 데 효과적입니다.
  • 커널(kernel): 가중치 값을 배열로 나타낸 것이며, 이 배열을 필터링에 사용됩니다. 커널의 크기와 가중치 값은 필터의 특성을 결정합니다.

예시: 3x3 Gaussian Weighted Average Filter

가장 일반적인 예 중 하나는 가우시안 블러 필터입니다. 이 필터는 가우스 분포에 따라 가중치를 부여합니다.

[ \text{Gaussian Kernel (3x3)} = \frac{1}{16} \begin{bmatrix} 1 & 2 & 1 \ 2 & 4 & 2 \ 1 & 2 & 1 \end{bmatrix} ]

이 커널을 사용하여 이미지의 각 픽셀을 새로운 값으로 대체합니다. 각 픽셀의 값은 이 커널을 해당 픽셀 주변의 값에 곱한 후, 그 결과를 모두 더한 값으로 결정됩니다.

적용 예시

  • 이미지 블러링: Weighted average filter는 이미지의 세부 사항을 부드럽게 하여 블러 효과를 생성합니다. 가우시안 블러가 대표적인 예입니다.
  • 노이즈 제거: 신호나 이미지에서 고주파 노이즈를 줄이는 데 사용됩니다. 특히, 평균 필터보다 효과적으로 노이즈를 줄이면서 중요한 세부 사항을 보존할 수 있습니다.
  • 데이터 평활화: 시계열 데이터나 기타 1차원 신호에서 갑작스러운 변화나 잡음을 줄여 데이터의 전반적인 추세를 파악하기 쉽게 합니다.

가우시안 블러 예시

import numpy as np
import cv2

# 가우시안 커널 정의
kernel = np.array([
    [1, 2, 1],
    [2, 4, 2],
    [1, 2, 1]
]) / 16.0

# 이미지 읽기
image = cv2.imread('example.jpg', 0)  # 그레이스케일 이미지

# 필터 적용
blurred_image = cv2.filter2D(image, -1, kernel)

# 결과 이미지 저장
cv2.imwrite('blurred_example.jpg', blurred_image)

이 코드 예시는 가우시안 블러를 사용하여 이미지를 부드럽게 만드는 방법을 보여줍니다. cv2.filter2D 함수는 커널을 사용하여 입력 이미지에 필터를 적용합니다.

결론

Weighted average filter는 이미지 및 신호 처리에서 매우 유용한 도구로, 데이터의 중요한 특성을 보존하면서 노이즈를 줄이는 데 효과적입니다. 필터의 성능은 커널의 선택에 크게 의존하며, 다양한 응용 분야에서 사용될 수 있습니다.

필터 간 조합도 가능하며, 필터 크기, 이미지 특징에 따라 패딩도 가능합니다. Filter 크기나 weight는 MSE, PSNR을 기초로 하고 있습니다.

9강 - Histogram

  • 픽셀의 강도 분포를 그래프로 표현: 각 강도마다 픽셀 수를 그립니다.
  • 이미지 분석, 이미지 향상(enhancement)와 같은 많은 목적.

다양한 물체 == 다양한 필터가 필요합니다. = AI는 못 쓰니 여기가 뭔지 알려면 히스토그램 사용.

각 강도마다 다 세고, 최대값이 512를 넘지 못하도록 스케일링합니다.

  • Image segmentation: 이미지의 모든 픽셀에 라벨을 붙입니다. 모든 지역을 나눕니다.
    • 이진 이미지는 배경과 객체 2개로 나눌 수 있습니다.
    • 임계, 히스토그램 베이스 segmentation, 클러스터링 등.

Image Thresholding을 통해 간편하게 여러 영역으로 나눌 수 있습니다. 이미지에서 특정 정보를 추출하는 방법입니다.

  • Binary: 마스크와 같은 2단계 분류입니다. 이미지 임계값의 결과입니다.
  • MultiLevel Threholding: 임계값을 통해 여러 부분으로 나눕니다.

10강 - HE (Histogram Equalization)

  • Contrast (명암, 대비, 선명도): 이미지에서 밝은 곳과 어두운 곳의 밝기 차이. 이미지를 구별할 수 있게 해주는 휘도와 색의 차이. 인각 시각 시스템의 절대 휘도.
  • Low Contrast (저대비): 대비가 낮은 이미지.

Image Enhancement: 이미지의 특정 정보를 강화. 감마, 이미지 선명도, 히스토그램 균등화 등 영상의 주관적 품질을 향상시키는 과정.

Histogram Equalization: 히스토그램 기반의 대비 조정. 히스토그램의 민감도 분포 수정. 주로 대비 조정에 사용됩니다. Histogram과는 다르게 누적해서 작성합니다.

11강 - Gamma

  • 실제 휘도 (luminance)와 인간 휘도 사이의 비선형 관계 -> 사람의 눈은 카메라와 같지 않습니다.
  • 사람의 눈은 어두운 곳에 더 민감하고, 어두운 지역이 더 중요합니다. 어두운 곳에서 많은 bit를 소모합니다. 효율적인 이미지 표현을 위해 비트 최적화합니다.
  • 감마 값이 크면 전반적으로 증가하고(어두운 영역 표현이 잘 됩니다), 작으면 전반적으로 감소합니다.
  • 시각적 품질을 최대화하기 위해 인코딩에서 비트 최적화를 합니다. 조기 디스플레이 장치에 감마 특성 보정.
  • 감마 인코딩된 값에 곱해서 1이되는 감마를 다시 곱해주면 원상태로 돌아옵니다 = 감마 보정.

옛날 TV는 브라운관으로 재질 때문에 어쩔 수 없이 감마 현상이 발생했습니다. 0.4로 거의 우리 눈과 반대입니다.

디스플레이의 비선형 입출력 특성. 때때로 디스플레이는 감마, 감마 보정을 실시합니다.

12강 - Downsampling

  • 오리지널 이미지에서 픽셀 수를 줄입니다. 고 해상도(resolution)에서 저 해상도로 갑니다. 다운 샘플링 후 정보 손실이 일어납니다.
  • Subsampling: 오리지널에서 부분집합(subset)을 선택합니다. 가장 단순한 이미지 사이즈 줄이는 방법.
  • Average Downsampling: 미리 정의된 윈도우의 픽셀들 값을 평균해서 다운샘플링.
  • Chroma Subsampling: Y에 비해 CbCr은 인식률이 떨어집니다. Y는 다 가지고가고, CbCr은 줄입니다. 인간은 색차에 대한 차이 인식률이 떨어집니다.

13강 - UpSampling

  • 일반적으로 이미지 보간(interpolation), 이미지 스케일링(업), 이미지 리사이징(업). 픽셀 수를 늘려서 저해상도 -> 고해상도로 갑니다. 아는 픽셀을 기초로해서 모르는 픽셀을 채워야 합니다.
  • Nearest Neighbor Interpolation: 단순한 방법(낮은 복잡도)으로 이미지 사이즈를 늘리는 방법입니다. 주변 픽셀로 보간합니다.
  • Bilinear Interpolation: 2*2 주변 픽셀을 확인해 평균을 취합니다. 첫 번째로 수평과 수직방향부터 채웁니다.

Interpolation Coefficient: 보간 계수. (y, x) 알려진 두 점(x0, y0), (x1, y1) 사이의 일직선상. 알려진 픽셀과 알려지지 않은 픽셀 사이의 거리를 기준으로 가중치 부여.

N-Tap Interpolation Filter: 필터 크기에 따른 복잡도로 주변 픽셀을 더 많이 고려하는 다양한 필터입니다. 여기서도 가장자리에 패딩 가능합니다.

14강 - Rotation

  • Flip: 수직, 수평으로 회전(거울).
  • Rotation: 이미지를 시계 방향, 시계 반대 방향으로 돌립니다. 회전 중심으로부터 원운동 진행합니다.

회전하면 이미지 중간 중간에 구멍이 생깁니다(반올림에 의해). - hole filling을 진행합니다.

15강 - Edge

  • 이미지에서 강도(명암, 휘도)가 갑자기 변경되는 곳, 강도가 불연속적인 곳입니다. 서로 다른 두 영역의 경계입니다. 이미지 처리, CV에서 중요합니다.

복잡한 영상에선 edge가 많이 발견되고 비슷한 이미지는 edge가 없습니다. Edge에서는 두 픽셀간 차이가 threshold보다 큽니다.

밝기의 불연속상을 찾을 수 있습니다. 일반적으로 기울기의 크기로 검사합니다.

Derivative Filter: x, y 방향 모두 존재합니다. 각 방향의 도함수를 구합니다. -1 0 1

16강 - Sobel Edge Detection

  • 3*3 필터로 기울기 크기를 계산합니다. 수평, 수직 방향의 기울기를 각각 계산합니다.

임계치보다 크면 edge로 판단합니다. 임계치가 크면 edge가 적게 잡히고, 임계치가 작으면 edge가 많이 잡힙니다.

17강 - Laplacian Edge Detection

  • 소벨은 빼기를 통해 미분을 판단하고, 값의 차이를 봤습니다.
  • 라플라시안은 미분을 한 번 더 합니다.
  • 소벨은 두 개의 픽셀 값이 필요합니다. 라플라시안은 세 개의 픽셀 값이 필요합니다.
  • 강도가 불연속적인 곳, 급격하게 변하는 곳이 edge입니다.

Median, Mean, Gaussian 등 다양한 필터로 복원(restoration) 후 엣지를 탐지합니다.

낮은 오류로 엣지 찾기:

  1. 가우시안 필터를 통해 노이즈 제거.
  2. 소벨 필터를 통해 기울기 계산.
  3. 임계값보다 크면 엣지.

18강 - Set

  • Intersection: 교집합 = and. 둘 다 존재. 공통적으로 사용되는 모든 요소를 포함하는 가장 큰 집합.
  • Union: 합집합 = or. 모든 요소를 포함하는 최소 집합.
  • Complement: 반대 = !합. 주어지지 않은 모든 요소 집합.
  • Difference: 차집합 = -. 주어진 모든 요소 중에 다른 집합에 없는 요소들.

19강 - Morphology

  • Image Morphology: 이미지 내 형상과 관련된 비선형 연산. 특정 형상의 선택 또는 억제. 일반적으로 이진 이미지가 사용됩니다. (ex: erosion, dilation, opening, closing)

Erosion (침식)

  • 연산 중 제일 작은 값으로 바뀝니다. 밝기와 크기를 줄입니다. 작은 물체와 노이즈를 줄입니다.

Dilation (팽창)

  • 최대값으로 변합니다. 객체의 밝기가 올라가고, 사이즈가 커집니다. 분리된 영역을 이어주고, 배경의 구멍을 지워줍니다.

Opening: 침식 후 팽창. 노이즈 제거 후 팽창합니다. 크기 유지 및 노이즈 제거. 오브젝트 보존.

Closing: 팽창 후 침식. 배경 구멍을 지우고, 배경 영역을 보존할 수 있습니다. 따로 쓰는 것보다 파괴력이 떨어집니다. 여러 번 사용할 수 있습니다.

20강 - Compression

최근 디스플레이의 발전 덕분에 다양한 이미지를 볼 수 있지만 제한된 대역폭과 저장 공간으로 인해 데이터 압축이 필요합니다. 단일 이미지나 비디오의 여러 이미지의 데이터를 콤팩트한 형태로 표현해야 합니다.

  • 수치적 측정:
    • 이미지를 압축하기 위해 필요한 bit 수.
    • 압축 이미지의 객관적 화질을 측정할 PSNR.
    • MOS와 같은 주관적인 평가.
    • 압축하는 데 걸리는 복잡성을 나타내는 처리(압축) 시간.

Bit Depth를 통한 Data Loss
각 pixel이나 색 요소를 표현하기 위한 비트 수입니다. 더 정확한 색상 표현을 위해선 더 높은 비트가 필요합니다.

인코딩: 송신자가 이미지를 bitstream으로.
디코딩: 수신자가 bitstream을 이미지로.

21강 - DCPM

데이터 크기 감소를 위해 다른 진동을 조정합니다. 연속적인 두 값의 차이를 표현합니다. 인코딩 되거나 디코딩 된 샘플의 적응형 예측입니다. 원본과 예측 간의 오차, 오차 신호가 발생합니다.

  • 원리는 두 연속된 픽셀의 값 차이입니다.
  • 시작은 어디서 하든 상관없습니다.
  • 첫 번째 값에 대해서는 정해진 값을 통해 예측하거나 예측 없이 원본 o 픽셀과 예측 p 픽셀 간의 오차 e = o-p 신호를 보냅니다.
  • 예측 픽셀에서 재구성(r = p + e) 및 예측 오차.

Quantization: 값의 범위를 압축하여 사이즈를 줄입니다. 양자화 없이 무손실 압축하거나 양자화를 통한 손실 압축(정수 단위)이 가능합니다. Prediction Error까지는 무손실 압축입니다. 양자화 파라미터는 알아서 정하면 됩니다. 양자화가 커지면 데이터 손실도 커지고 압축도 커집니다.

왜 두 번째는 0이 아닌가? 받은 것 기준으로 오차를 내보냅니다. 보내는 쪽은 보내는 것과 받는 것 모두 진행 -> 받는 영상이 존재합니다. -> 받는 것 기준으로 진행.

인코더: 압축 + 압축 해제.
디코더: 압축 해제.

저 압축 숫자(q)를 바꾸면 (5에서 10으로) 손실이 더 커지지만 영상 크기도 그만큼 작아집니다. 또한 같은 값이 나올 확률이 점점 커집니다. -29고 q = 30일 때 0이 됩니다. 왼쪽에서 진행하는 것과 위에서 진행하는 것의 차이가 큽니다.

현재 것을 비슷하게 만드는 것이 핵심입니다. 어디서 가져올지 다 테스트를 해보겠다! -> 디코더에서는 알 수 있는 방법이 없습니다. 디코더에서는 어디서 정보를 받아왔는지 알 방법이 없습니다.

인코더 - 오리지널을 예측치와의 오차를 통해 양자화 합니다. 양자화된 값은 디코더에게 보내지고, 양자화를 해제해서 예측치를 만듭니다.

디코더 - 양자화된 값을 받아서 양자화를 해제합니다. 예측치를 만듭니다. 인코더와 디코더의 예측치인 renc = rdec여야 됩니다.

22강 - Binarization

인코더: BIT디코더 - 데이터를 이진 데이터인 0, 1로 바꿉니다. 여기선 Bitstream 생성이지만 엣지맵과 같은 다른 도메인에서는 임계값 설정입니다. Fixed-length codes(n비트 고정), Unary codes(0나올 때까지 다 숫자). 적은 값이 많은 경우에는 Unary가 좋고, 어떻게 될지 모르면 Fixed-length가 좋습니다.

Fixed-length - 한계점이 생깁니다. 예측이 잘 되면 오차가 작겠지만, 예측이 제대로 되지 않아 비트 수를 정확하게 잡지 못하면 오차가 커지거나 쓸데없는 데이터를 더 보내게 됩니다.

양자화가 너무 커지면 다 0으로 수렴하게 됩니다 -> 화질이 안 좋아집니다 = 압축이 큽니다 = PSNR이 낮습니다. Error를 작게 하는 것이 좋습니다 = 예측이 잘 되어야 합니다.

23강 - Spatial Correlation

주변 픽셀과의 유사도입니다. 즉, 공간적 상관 관계. 경계에서는 낮은 유사도를 가지고, 배경과 같은 지역에선 높은 유사도를 가집니다. 낮은 유사도 = 경계 지역 = 높은 픽셀 차이 = 분산이 높습니다. 높은 유사도 = 엣지 아님 = 적은 픽셀 차이 = 분산이 낮습니다.

수직(Vertical), 수평(Horizontal) correlation은 영상 특징마다 다릅니다. 상관 관계를 따라 복원, 압축, 업샘플링 전략을 만들 수 있습니다. 분석을 통해 어디의 error가 적은지 선택해야 합니다. 방향을 정했다면 인코더는 디코더에게 어떤 방향인지 말해줘야 합니다.

24강 - Temporal Correlation

인접 프레임과의 유사도입니다 - 시간적 상관관계입니다. 빠른 움직임에서 낮은 유사도, 느린 움직임에서 높은 유사도를 가집니다.

프레임에 따라 공간, 시간적 유사도를 다 가질 수 있습니다. 여기서 최적의 방향을 찾으면 됩니다. 양자화를 할 때 공간적 말고 시간적 차이를 통해 보낼 수 있습니다. 그러나 다양한 후보를 두면 더 많은 공간이 필요합니다(시간 전용, 공간 전용).

25강 - Summary

  • RGB -> Y: 사이즈를 줄이기 위해 평균, 근접 다운 샘플링 진행(시간적으로도 가능).
  • 시간적, 공간적 상관관계를 이용해 인코딩 진행. 디코더에서 전송받으면 복원을 진행합니다. 가끔씩 블록 단위로 이상하게 보이는 이유는 처리를 블록 단위로 하기 때문입니다.
  • 다양한 upsampling 방식을 통해 크기를 늘립니다.
  • 시간적, 공간적 상관관계를 통해 중간 프레임을 채웁니다.
  • Restoration을 통해 노이즈를 지웁니다 (Low-pass).
  • Enhancement를 통해 눈에 적합하거나 환경에 맞게 변화합니다.

이제 정리된 내용을 바탕으로 강의에 대해 자신 있게 이해했다고 할 수 있습니다. 추가 질문이나 세부적인 설명이 필요하면 언제든지 알려주세요.

728x90