동영상 촬영 및 편집에 대한 개념 정리

FSA·2024년 5월 28일
0

video vision

목록 보기
9/10

1. 비디오 촬영의 개념 공부 (중요)

1단계: 촬영 전 카메라 세팅!!

- 비디오를 촬영 시작할 때 우리는
  - resolution과 fps, HDR/SDR 선택 가능
  - 아이폰 12의 동영상 촬영은 HDR 포맷 중에서도, `Dolby Vision` (동적 메타데이터) 를 사용
  - 아이폰에서 SDR을 선택하면, `Dolby Vision`이라고 적힌 메타데이터가 사라진다!

1.1. HDR(High Dynamic Range)

  • "넓은 명암비"(더 밝은 백색과 더 깊은 흑색)와 "넓은 색상 범위"를 제공하여 고퀄리티 영상 제공
  • 이 기술은 표준 동적 범위(SDR, standard dynamic range) 비디오보다 훨씬 "더 넓은 밝기"와 "색상 스펙트럼"을 포착하고 재현
  • 더 넓은 색 영역 (RGB 0-255 값을 가지는게 아니라, 더 촘촘한 범위의 값을 가짐!)
    • HDR은 10비트 또는 그 이상의 색상 깊이를 사용
      • Rec. 2020: HDR 콘텐츠는 더 넓은 색 공간인 Rec. 2020을 사용
    • SDR의 8비트 색상 깊이에 비해 훨씬 더 많은 색조를 표현
      • 이는 SDR에서 주로 사용하는 Rec. 709에 비해 더 많은 색을 표현
    • 비트 깊이 (Bit Depth): 각 채널의 비트 깊이는 명암비에 큰 영향을 미칩니다.
      • 8비트: 채널당 256단계의 밝기.
      • 10비트: 채널당 1024단계의 밝기.
    • 비트 깊이가 높을수록 더 많은 밝기 단계가 가능해져, 더 높은 명암비를 표현
  • 기술적 요구 사항:
    • HDR 콘텐츠를 촬영, 편집, 재생하기 위해서는 HDR을 지원하는 카메라, 편집 소프트웨어, 디스플레이 등이 필요

1.1.1. HDR 포맷 종류

  • 다양한 HDR 포맷이 존재하는데, 대표적인 것으로는 HDR10, Dolby Vision, HLG(Hybrid Log Gamma) 등이 있습니다.
    • 각 포맷은 동적 메타데이터의 사용 유무, 지원하는 색상 및 밝기 수준 등에서 차이
    • 예를 들어, Dolby Vision은 장면별로 최적화된 메타데이터를 제공하여 각 장면을 최적의 밝기와 색상으로 보여줄 수 있습니다. (동적 메타데이터)

1.1.2. 색 공간 (color space)

  • 특정한 방법으로 색상을 생성하고 조합하는 색상 모델을 사용
  • 가장 일반적인 색상 모델로는 RGB (빨강, 초록, 파랑), CMYK (청록, 자홍, 노랑, 검정), YCbCr (밝기와 색차 정보), HSV (색상, 채도, 명도) 등
    • 예를 들어, RGB 색 공간에서는 세 가지 기본 색상의 강도를 조절하여 다양한 색을 만들어냄
    • 각 색상의 강도는 특정 범위 내에서 조절될 수 있으며, 이러한 조합을 통해 다양한 색상이 생성됨
    • 다른 예로, YCbCr 색 공간은 색의 밝기 정보(Y)와 색차 정보(Cb와 Cr)를 분리하여 처리
    • YCbCr은 특히 방송 및 디지털 비디오에서 널리 사용되며, 색상 데이터의 효율적인 압축을 가능하게 합니다.
  • Rec. 709(1990년~)와 Rec. 2020(2012년~. BT.2020)은 색공간(color space)의 표준
    • Rec. 2020은 매우 넓은 색 공간과 다양한 전송 특성, 해상도, 비트 깊이를 포함
  • 두 표준 모두 주로 YCbCr 색상 모델을 사용하지만, RGB 색상 모델과도 깊은 관련
  • "Rec. 709/Rec. 2020"와 YCbCr과의 관계:
    • 비디오 산업에서는 RGB 데이터를 YCbCr 형식으로 변환하여 사용
    • 이는 RGB 각각의 색상 대신에 밝기 정보(Y)와 색차 정보(Cb와 Cr)로 데이터를 나누어 처리
    • 이 변환은 비디오 데이터를 더 효율적으로 압축하고 전송할 수 있게 해줌
    • Rec. 709와 Rec. 2020은 모두 YCbCr 형식을 사용하여, 각각의 색공간 내에서 어떻게 색상 정보를 샘플링하고 저장할지 규정
  • "Rec. 709/Rec. 2020"와 RGB와의 관계:
    • Rec. 709와 Rec. 2020 모두 RGB 색상 모델을 기반
    • 이 색공간들은 RGB 모델에서 사용할 수 있는 색의 범위(색영역)와 색상 재현 방법을 정의
    • 예를 들어,
      • Rec. 709는 sRGB와 유사한 색영역을 가지며,
      • Rec. 2020은 더 넓은 색영역을 제공하여 더 많은 색을 포함
  • BT.2020NC는 Rec. 2020 표준의 한 부분으로, YCbCr 색 공간에서 비상수 휘도를 사용하여 색상과 밝기를 처리하는 방식을 정의
    • 비상수 휘도?(Non-Constant Luminance)
      • 상수 휘도 Y = 0.2126R + 0.7152G + 0.0722B
      • 휘도(Y)와 색차(Cb, Cr) 성분이 비선형적으로 결합되는 방식을 의미
  • Color Space는 감마 보정, 백색점, Color Primaries/ color transfer characteristics를 포함한 더 넓은 개념으로, 색상 재현을 위한 전체 시스템
    • 뒤에서 자세한 설명

2단계: 촬영 중 과정 정리!

- 동영상 촬영 중에는, 실시간으로 메모리에 프레임들이 저장되는데,
  - (H, W, 3)이 저장되지 않고, 인코딩 되어 메모리에 저장됨
  - 인코딩 방식도 여러가지가 존재하는데, 카메라에 설정된 "코덱"에 따라 인코딩 방식이 달라짐
  - 아이폰 12의 코덱은 HEVC(H.265)임!
    - HDR말고 SDR로 촬영해도, 코덱은 HEVC(H.265)임!
  - 비트레이트는? 

2.1. 코덱(codec)

  • 코덱(codec)은 ‘Compressor-decompressor’의 줄임말로, 디지털 데이터를 압축하고 해제하는 기술 또는 장치
    • Compressor: 실시간으로 촬영되는 프레임들을 메모리에 저장시킬 때 사용
    • decompressor: 저장된 비디오를 재생할 때 사용
  • 코덱의 작동 방식
    • RGB 색 공간을 YUV 색 공간으로 변환하여, 인간의 시각적 민감도를 고려한 압축을 수행
    • 프레임 내(intra-frame)의 중복 정보를 줄이는 방식으로 압축
    • 여러 프레임 간(inter-frame)의 데이터를 압축
  • 참고:
    • 여러 코덱이 있는데, 비디오 확장자(.mov / .mp4 / .mkv) 별로, 지원하는 코덱이 다름!!
    • 코덱의 효율성에 따라 같은 비트레이트로도 더 높은 품질의 비디오를 제공할 수 있음
      • 예를 들어, H.265(HEVC)는 H.264보다 더 효율적으로 압축할 수 있어, 동일한 비트레이트로 더 나은 품질을 제공

2.1.1. H.264 (=libx264)

  • 정의:고화질의 비디오를 비교적 낮은 비트레이트에서도 압축할 수 있도록 설계
  • 특징:
    • 주로 8비트 색 깊이와 SDR 콘텐츠를 위해 설계되었습니다. 일부 확장 버전은 10비트를 지원하지만, 효율이 떨어집니다.

2.1.2. H.265/HEVC (High Efficiency Video Coding)

  • 개요: H.264의 후속 모델로, 4K UHD 및 높은 해상도 비디오 스트리밍을 위해 설계
  • 장점: H.264보다 약 50% 더 효율적인 압축을 제공하며, 같은 품질의 비디오를 훨씬 적은 데이터로 전송할 수 있습니다.
  • 10비트 및 HDR 콘텐츠를 효율적으로 압축할 수 있도록 설계

2.2. bitrate VS fps

  • 우리가 휴대폰 촬영을 할때,
    • bitrate는 직접 설정할 수 없고, 촬영할 때의 resolution과 fps, 코덱 종류에 따라 가변적으로 달라집니다.
    • fps는 내가 정할 수 있습니다.

2.2.1. 비트레이트 (Bitrate)?

  • 오디오나 비디오 파일에서 초당 메모리에 전송되는 비트 수를 의미
  • 요약하자면:
      1. 촬영 중:
      • 실시간으로 비디오 데이터를 압축하고 저장하며, 이 과정에서 비트레이트가 적용됩니다. (메모리에)
      1. 촬영 후:
      • 촬영된 비디오 데이터가 지정된 비트레이트에 따라 최종적으로 파일로 저장됩니다. (디스크에)
  • 비트레이트는 주로 비트/초(bps) 단위로 표현되며, 파일의 압축률과 직접적인 관련이 있음
  • 높은 비트레이트는 일반적으로 데이터의 품질이 높음을 의미하지만, 파일 크기도 커집니다.

  • 고정 비트레이트(CBR)와 가변 비트레이트(VBR):
    • 고정 비트레이트는 일정한 속도로 데이터를 전송하는 방식이고,
    • 가변 비트레이트는 비디오의 복잡도에 따라 전송 속도를 조절하여 효율적으로 데이터 용량을 사용할 수 있음

2.2.2. 예시: HDR 포맷 중 하나인, Dolby vision 에서의 birate

  • Dolby Vision HDR 포맷으로 촬영한 비디오는 각 프레임의 비트레이트 메타데이터가 다를 수 있음
  • Dolby Vision HDR은 높은 다이내믹 레인지와 색재현력을 제공하기 위해 프레임마다 메타데이터를 포함
  • 이 메타데이터는 밝기, 색상, 명암비 등을 조절하여 각 장면에 최적화된 품질을 제공

2.2.3. 비트레이트와 FPS의 비교

  • 목적의 차이: 비트레이트는 데이터의 품질과 크기를 조절하는 데 중점을 두는 반면, FPS는 비디오의 시각적 부드러움에 영향
  • 사용자 경험에 미치는 영향: 높은 비트레이트는 더 선명한 이미지와 깨끗한 사운드를 제공할 수 있지만, 높은 FPS는 특히 액션 영화나 비디오 게임에서 움직임의 자연스러움을 향상시킵니다.
  • 코덱의 효율성에 따라 같은 비트레이트로 더 높은 품질의 비디오를 제공할 수 있습니다.
    • 예를 들어, H.265(HEVC)는 H.264보다 더 효율적으로 압축할 수 있어, 동일한 비트레이트로 더 나은 품질을 제공

2.3. 색차 부호화

2.3.1. 요약

  • 색차 부호화(Chrominance Subsampling)는 색상 정보를 압축하여 저장하는 기술
  • 비디오와 이미지의 파일 크기를 줄이면서 시각적 품질을 유지하는 데 중요한 역할
  • YUV 색 공간은 RGB 색 공간을 변환하여 밝기와 색상 정보를 분리한 것
  • 이 개념은 인간의 시각 시스템이 밝기 정보(Y, Luminance)보다 색상 정보(U와 V, Chrominance)에 덜 민감하다는 사실을 활용
  • 색차 부호화는 색상 정보를 덜 자주 샘플링하여 비디오와 이미지의 파일 크기를 줄이는 기술

2.3.2. YUV 색 공간

  • 먼저, YUV 색 공간의 기본 개념을 이해하는 것이 중요합니다:
  • Y (Luminance): 이미지의 밝기 정보를 나타냅니다. 인간의 눈은 밝기 정보에 매우 민감
  • U (Chrominance): 파란색과 밝기 차이를 나타냄
  • V (Chrominance): 빨간색과 밝기 차이를 나타냄
4:4:4
  • 구현: 밝기(Y)와 색상(U와 V) 정보가 모두 동일한 해상도로 샘플링됩니다.
  • 용도: 고품질 비디오, 그래픽 디자인.
  • 비율: Y:U:V = 4:4:4 (모든 성분이 동일 해상도).
4:2:2
  • 구현: 밝기(Y)는 모든 픽셀에서 샘플링되고, 색상(U와 V)은 가로 방향에서 2픽셀마다 샘플링됩니다.
  • 용도: 방송 비디오, 고품질 비디오 편집.
  • 비율: Y:U:V = 4:2:2 (가로 방향에서 색상 정보가 절반으로 줄어듦).
4:2:0
  • 구현: 밝기(Y)는 모든 픽셀에서 샘플링되고, 색상(U와 V)은 가로와 세로 방향 모두에서 2픽셀마다 샘플링됩니다.
  • 용도: DVD, Blu-ray, 스트리밍 비디오.
  • 비율: Y:U:V = 4:2:0 (가로와 세로 방향 모두에서 색상 정보가 절반으로 줄어듦).

2.3.4. 색 공간(color space)과 색차 부호화의 관계

  • 색 공간이 특정 방식으로 색상 정보를 구성하고 정의한다면, 색차 부호화는 그 색상 정보 중 일부를 효율적으로 줄여 데이터를 더 작게 만드는 역할
  • 예를 들어, YCbCr 색 공간에서는 Y(밝기) 성분을 그대로 유지하면서 Cb와 Cr(색차) 성분을 색차 부호화를 통해 감소시켜 데이터 양을 줄입니다.

2.3.5. "색 공간과 색차 부호화"와 코덱과의 상관관계

  • 코덱은 선택된 색 공간과 색차 부호화 방식에 따라 최적의 압축 방법을 결정
  • 예를 들어, H.264 또는 HEVC(H.265)와 같은 고급 비디오 코덱은 주로 YCbCr 색 공간을 사용하며, 다양한 색차 부호화 설정(예: 4:2:0, 4:2:2)을 지원하여 다른 용도 및 품질 요구 사항에 맞게 비디오를 압축
  • 코덱은 이러한 압축 데이터를 해석하여 복원할 때도 색 공간과 색차 부호화의 정의를 따릅니다.

pix_fmt

  • 비디오 파일에서 픽셀 포맷을 지정하는 데 사용되는 옵션
  • 이 옵션은 비디오의 색 공간과 색상 깊이, 색상 서브샘플링 및 색상 데이터를 저장하는 방법을 정의
  1. YUV:
    • Y: 휘도(Luminance) 성분을 나타냅니다.
    • U, V: 색차(Chrominance) 성분을 나타냅니다. U는 파랑-휘도 차이(Blue-Y), V는 빨강-휘도 차이(Red-Y)를 나타냅니다.
    • YUV 색 공간은 RGB 색 공간을 변환한 것으로, 색상 정보를 효율적으로 압축
  2. 420:
    • 4:2:0 색상 서브샘플링을 나타냅니다. 이는 색차 성분(U와 V)이 휘도 성분(Y)보다 낮은 해상도로 샘플링된다는 의미입니다.
      • 4: 휘도 성분(Y)의 샘플 수.
      • 2: 첫 번째 색차 성분(U)의 샘플 수. (휘도의 수의 절반)
      • 0: 두 번째 색차 성분(V)의 샘플 수. (첫 번째 색차 성분의 수와 같음)
    • 이는 비디오 데이터의 크기를 줄이는 데 사용되며, 인간의 눈이 색차보다 휘도에 더 민감하다는 점을 활용한 것입니다.

pix_fmt=yuv420p와 pix_fmt=yuv420p10le

  • 10le가 뒤에 붙은것
  • 비트 깊이:
    • yuv420p: 8비트
    • yuv420p10le: 10비트
  • 엔디안:
    • yuv420p: 해당 없음
    • yuv420p10le: Little Endian
  • 따라서, yuv420p10le는 더 높은 비트 깊이(10비트)를 사용하여 더 정밀한 색상 표현이 가능하며, Little Endian 방식으로 데이터를 저장합니다.

3단계: 촬영 종료 버튼을 눌렀을 때

- 촬영 종료 버튼을 누르면, 메모리에 올라와있던 비디오가 디스크에 저장됩니다.
- 이 때, 디스크에, 어떤 포멧으로 저장하는지가 중요합니다.
  - 아이폰: MOV
  - mp4와 mkv도 있습니다.

1.1. MP4 VS MKV VS MOV

  • 각 확장자마다, 어떤 코덱까지 호환되는지가 달라집니다.
  • 참고: H.265 (HEVC) 코덱을 지원하는 컨테이너 형식에는 MP4, MKV, 그리고 MOV가 모두 포함됩니다.

1.1.1. MP4 (MPEG-4 Part 14)

  • 호환성
    • MP4는 다양한 장치에서 널리 지원되는 형식
    • 인터넷 스트리밍과 디지털 저장 공간에 이상적인 선택
  • 효율성:
    • MP4는 높은 압축률을 제공하여 파일 크기를 줄이면서도 비교적 높은 품질을 유지
  • 확장성
    • 비디오 및 오디오 코덱(H.264, AAC 등)을 포함

1.1.2. MKV (Matroska Video)

  • 유연성
    • MKV는 거의 모든 비디오와 오디오 코덱을 지원하며 여러 자막 트랙, 챕터 정보 등을 담을 수 있어 매우 유연
    • 무손실(Dolby TrueHD) 오디오 지원
  • 고품질: MKV는 고품질 비디오 저장에 적합하며 손실 없는 오디오 포맷을 지원

1.1.3. MOV

  • 높은 품질의 비디오와 오디오 저장에 적합하며, 편집 후 파일 품질이 저하되지 않는 ‘ProRes’와 같은 코덱을 지원합니다.

1.1.4. 주요 차이점

  • 호환성: MP4 > MKV > MOV 순으로 널리 호환됩니다.
  • 3개 다 HDR10, HDR10+, 그리고 Dolby Vision 등 여러 HDR 형식을 지원
  • 기능성: MKV는 다양한 멀티미디어 기능을 지원하며, MOV는 전문적인 편집과 높은 품질의 비디오 저장에 특화되어 있습니다.
  • 적합한 사용처: MP4는 일반적인 사용 및 스트리밍, MKV는 고품질 비디오 저장, MOV는 전문 비디오 편집 및 Apple 제품 사용자에게 적합

4단계: 편집 시

  • ffmpeg 패키지의 parameter
  • 아래 파라미터들은 매우 중요하다.
    • 색감을 결정하는지는 확인 못했는데, 영상이 얼마나 이질감 없이 부드럽게 보이는지(픽셀 단위의 잔상)에 매우 중요한 요소

1. ffmpeg

1.1. Preset

  • preset 매개변수는 인코딩 속도와 압축 효율 사이의 균형을 조절
  • 일반적으로 ffmpeglibx264 코덱에서는 다양한 preset이 제공됩니다.
  • 이들은 ultrafast, superfast, veryfast, faster, fast, medium (기본값), slow, slower, veryslow로 나뉩니다.
    -veryslow는 인코딩에 더 많은 시간이 소요되지만 파일 크기를 더 작게 만들고, 품질을 개선합니다.

1.2. CRF (Constant Rate Factor)

  • crf 값은 libx264 코덱을 사용할 때 비디오의 품질을 지정하는데 사용되는 매개변수
  • crf는 0에서 51까지의 범위를 가집니다.
  • 여기서 0은 손실이 없는 인코딩(로스레스)을 의미하고, 23은 기본 설정으로, 51은 가장 낮은 품질을 의미
  • crf 값이 낮을수록 출력 비디오의 품질이 높아지지만, 파일 크기가 증가
  • 반대로 crf 값을 높이면 파일 크기는 감소하지만 비디오 품질도 떨어집니다.
  • 일반적으로 18~28 범위의 crf 값이 가장 많이 사용되며, 이 범위 내에서는 품질과 파일 크기 사이에 적절한 균형을 제공

2. codec Profile과 Level

  • 코덱:
  • 코덱 프로파일:
    • 코덱의 기능과 복잡성을 세분화한 설정 집합.
    • 사용 환경이나 디코딩 기기의 성능에 따라 최적화된 기능만 선택적으로 사용할 수 있도록 정의됨.
    • 코덱 프로파일은 비디오 인코딩의 특정 속성을 정의하지만, Color Primaries, Color Transfer Characteristics, Color Range, Chroma Location, pix_fmt 등은 독립적으로 설정될 수 있습니다.
    • 따라서, 코덱 프로파일이 결정된다고 해서 나머지 파라미터들이 자동으로 결정되는 것은 아니며, 이들은 별도로 설정할 수 있습니다.
    • 코덱 프로파일로 인해 자동으로 정해지는 메타데이터 요소들
      • 비트 깊이 (Bit Depth):
        • 각 프로파일은 특정 비트 깊이를 지원하도록 설계되어 있습니다. 예를 들어, H.264의 High Profile은 8비트 깊이를 지원하며, HEVC의 Main 10 Profile은 10비트 깊이를 지원합니다.
      • 색상 서브샘플링 (Chroma Subsampling):
        • 일부 프로파일은 특정 색상 서브샘플링 포맷을 사용합니다. 예를 들어, HEVC의 Main Profile은 4:2:0 서브샘플링을 사용합니다.
      • 압축 알고리즘의 세부사항:
        • 프로파일에 따라 사용되는 특정 압축 알고리즘이나 기술이 정해집니다. 예를 들어, H.264의 Baseline Profile은 B-프레임을 지원하지 않지만, Main Profile과 High Profile은 B-프레임을 지원합니다.
        • 레벨 (Level):
          • 프로파일은 특정 레벨을 지원합니다. 레벨은 해상도, 프레임 레이트, 비트레이트 등의 제한을 정의합니다. 예를 들어, H.264 High Profile Level 4.1은 최대 1080p 해상도와 60fps를 지원합니다.
  • 이 프로파일들은 비디오의 압축 및 디코딩을 위한 다양한 기능과 제한을 설정함으로써, 특정 요구 사항에 맞춘 성능과 호환성을 보장

2.1. HEVC (H.265) 코덱의 주요 프로파일:

  • 이 코덱의 주요 프로파일에는 Main, Main 10, Rext (Range extensions) 등이 있습니다.
2.1.1. Main 프로파일
  • Main 프로파일은 가장 기본적인 프로파일로,
  • 8비트 컬러 깊이를 지원하며
  • 표준 동적 범위(SDR) 비디오에 사용
  • 이 프로파일은 HD 및 일부 4K 콘텐츠의 처리를 위해 설계
2.1.2. Main 10 프로파일
  • Main 10 프로파일은 Main 프로파일을 기반으로 하되, 10비트 컬러 깊이를 지원
  • HDR (High Dynamic Range) 콘텐츠를 처리 .
2.1.3. Rext (Range extensions) 프로파일
  • Rext 프로파일은 HEVC의 더 고급 기능을 제공
  • 이 프로파일은 4:2:2, 4:4:4 크로마 서브샘플링과 같은 고급 비디오 포맷뿐만 아니라 10비트 이상의 컬러 깊이도 처리
  • 예를 들어, 비디오가 다음과 같은 특성을 가지고 있다면 Rext 프로파일이 자동으로 선택될 수 있습니다:
    • 고비트 깊이: 예를 들어 10비트 이상.
    • 고급 색차 샘플링: 4:2:2 또는 4:4:4 크로마 서브샘플링.
    • 확장된 색 공간: 예를 들어 BT.2020.

2.2. H.264 코덱의 주요 프로파일

1. Baseline Profile (baseline)
  • 대상: 모바일 장치, 비디오 회의 시스템
  • 특징: 낮은 복잡도, 높은 호환성. B-프레임, CABAC(콘텍스트 기반 적응형 바이너리 산술 코딩) 및 P-프레임에서의 인터레이스 처리가 비활성화됩니다.
  • 사용 예시: 네트워크 대역폭이 제한된 환경이나 낮은 디코딩 성능을 요구하는 장치.
ffmpeg -i input.mp4 -c:v libx264 -profile:v baseline output.mp4
2. Main Profile (main)
  • 대상: 표준 정의(SD) 방송, DVD 저장
  • 특징: Baseline Profile의 기능에 더해, B-프레임과 CABAC를 지원하여 더 높은 압축 효율과 품질을 제공합니다.
  • 사용 예시: 표준 방송 및 DVD 콘텐츠.
ffmpeg -i input.mp4 -c:v libx264 -profile:v main output.mp4
3. High Profile (high)
  • 대상: 고해상도 비디오 콘텐츠, HDTV, Blu-ray 디스크
  • 특징: Main Profile의 모든 기능에 추가적으로 8x8 인트라 블록과 고급 인트라 예측, 더 높은 비트 심도 및 컬러 샘플링을 지원하여 최적의 품질을 제공합니다.
  • 사용 예시: 고해상도 방송, Blu-ray 디스크, 온라인 스트리밍.
ffmpeg -i input.mp4 -c:v libx264 -profile:v high output.mp4
4. High 10 Profile (high10)
  • 대상: 전문가 수준의 비디오 편집 및 제작
  • 특징: 10비트 색 깊이를 지원하여 더 정교한 색상 표현과 그라데이션 처리가 가능.
  • 사용 예시: 고급 색 보정 작업 및 고품질 비디오 제작.
ffmpeg -i input.mp4 -c:v libx264 -profile:v high10 output.mp4
5. High 4:2:2 Profile (high422)
  • 대상: 방송 및 영상 제작
  • 특징: 4:2:2 색차 샘플링을 지원하여 색상 정보를 더 많이 보존, 후처리와 색상 보정이 필요한 작업에 적합.
  • 사용 예시: 방송 콘텐츠 제작 및 후처리 작업.
ffmpeg -i input.mp4 -c:v libx264 -profile:v high422 output.mp4
6. High 4:4:4 Predictive Profile (high444)
  • 대상: 고품질 그래픽 및 텍스트를 포함한 비디오
  • 특징: 4:4:4 색차 샘플링을 지원하여 모든 색상 정보가 유지되며, 텍스트나 그래픽 요소가 포함된 비디오에 이상적.
  • 사용 예시: 고해상도 그래픽 작업 및 최고 품질의 비디오 콘텐츠.
ffmpeg -i input.mp4 -c:v libx264 -profile:v high444 output.mp4

2.3 명시적 프로파일 설정 방법

  • FFmpeg 인코딩 시 사용자가 특정 프로파일을 명시하지 않는 경우, libx265 인코더는 입력 비디오와 호환되는 가장 적합한 프로파일을 자동으로 선택
  • 만약 특정 프로파일을 사용하고 싶다면, FFmpeg 인코딩 명령에 프로파일을 명시적으로 지정할 수 있음
  • 예를 들어, Main 10 프로파일을 강제로 사용하려면 다음과 같이 설정할 수 있습니다:
ffmpeg -i input.mp4 -c:v libx265 -x265-params profile=main10 output.mp4

2.4. Level

  • 레벨은 프로파일 내에서 지원하는 기술적 제한을 정의
  • 레벨이 높을수록 더 높은 품질의 비디오를 처리할 수 있습니다.
  • 예를 들어, HEVC 코덱의 레벨 120은 매우 높은 해상도와 데이터 속도를 지원
  • 레벨이 높아짐에 따라 처리할 수 있는 최대 해상도와 프레임 레이트, 그리고 비디오의 비트레이트가 증가합니다.


3. 색공간(color space) 메타데이터의 전문적인 설명

  • Color Space는 이러한 감마 보정, 백색점, Color Primaries/ color transfer characteristics를 포함한 더 넓은 개념으로, 색상 재현을 위한 전체 시스템
  • 네 가지 요소(color primaries, color transfer characteristics, color range, chroma location)는 모두 디지털 영상의 색상 재현과 품질을 결정하는 데 중요한 역할

3.1. Color Primaries (색상 원색)

  • Color Primaries는 색 공간(Color Space)의 일부 요소로, 색 공간 내에서 사용되는 기본 색상의 좌표를 정의
  • Color primaries는 색 공간(Color Space) 내에서 삼각형의 세 꼭지점을 정의하는 세 가지 기본 색상(빨강, 초록, 파랑)을 의미
  • 각 원색은 인간 시각 시스템의 특정 감광성을 모방하여정확한 색상 재현을 위해 사용
  • 표준:
    • Rec. 709, Rec. 2020, DCI-P3
    • Rec. 709:
      • 빨강, 초록, 파랑의 좌표
    • Rec. 2020:
      • 빨강, 초록, 파랑의 좌표가 Rec. 709보다 더 넓은 범위를 포함하여 더 풍부한 색상을 표현할 수 있습니다.
    • DCI-P3:
      • 디지털 영화 표준으로, Rec. 709보다 더 넓은 색 공간을 지원하지만 Rec. 2020보다는 좁습니다.
  • 용도: 정확한 색상 재현과 일관성을 위해 사용

3.2. Color Transfer Characteristics (색 전송 특성)

  • Color transfer characteristics입력 신호와 출력 신호 간의 비선형 관계를 정의하는 함수
    • 입력신호: (비디오 또는 이미지 파일에 저장된 원본 색상 및 밝기 데이터. 이 데이터는 디지털 형식으로 인코딩되어 있음.)
    • 출력 신호: (디스플레이 장치(예: TV, 모니터)에서 실제로 표시되는 색상 및 밝기 데이터. 이 데이터는 화면에 물리적으로 표시되는 밝기와 색상 값을 의미)
  • 이는 주로감마 보정HDR(High Dynamic Range) 콘텐츠의 표현을 위해 사용
  • 표준: 대표적인 표준으로는 Rec. 709, Rec. 2020, PQ (Perceptual Quantizer), HLG (Hybrid Log-Gamma) 등이 있습니다.
    • Rec. 709: 표준 다이나믹 레인지 콘텐츠에서 사용되며, 감마 2.2로 정의
    • PQ (ST 2084): HDR 콘텐츠에서 사용
    • HLG: HDR 방송을 위해 개발된 하이브리드 로그 감마로, SDR(Standard Dynamic Range)과 HDR 장치 모두에서 호환성을 제공
      • arib-std-b67:
        • 하이브리드 로그 감마(Hybrid Log-Gamma, HLG) 전송 특성을 의미
  • 용도: 색상 신호를 디스플레이 장치의 밝기와 일치시키기 위해 사용되며, 특히 HDR 콘텐츠에서 밝기와 명암비를 조절하여 더 생생하고 사실적인 영상을 제공

3.3. Color Range (색상 범위)

  • Color range는 영상 신호에서 표현되는 밝기 값의 범위를 의미합니다.
  • 이는 전체 범위를 사용할지 제한된 범위를 사용할지 결정합니다.
  • 표준:
    • Full Range (0-255): 모든 가능한 값(0부터 255까지)을 사용하여 색상을 표현합니다. 주로 컴퓨터 그래픽스에서 사용됩니다.
      • 10비트: 0~ 1023
    • Limited Range (16-235): 영상 신호의 표준 범위로, 방송 표준에 적합합니다. 검은색은 16, 흰색은 235로 정의됩니다. (8비트 기준)
      • 10비트 색 공간: 검은색은 값 64, 흰색은 값 940으로 정의됩니다.
    • color_range=tv
      • Limited Range를 의미하며, 이는 방송 표준에 맞춘 색상 범위
      • 아이폰으로 찍은 원본도 tv임.
      • 주로 TV 방송, Blu-ray 디스크 등에서 사용되며, 다음과 같은 특징을 갖습니다.
      • Limited Range (TV Range):
  • Limited Range를 왜 쓰나?
    • 영상 신호에서 극단적인 밝기 값(0과 255 또는 0과 1023)을 사용하지 않으므로, 신호 처리 과정에서 발생할 수 있는 오버슈트(overshoot)나 언더슈트(undershoot)를 방지
    • 이 범위는 방송 표준과 호환되며, 대부분의 TV와 방송 장비에서 사용됩니다.
    • 방송 호환성: 대부분의 방송 장비와 TV는 Limited Range를 사용하므로, 이 범위를 사용하면 호환성을 유지할 수 있습니다.
    • 신호 처리 안정성: Full Range를 사용할 경우, 신호 처리 과정에서 극단적인 값이 클리핑(clipping)될 위험이 있습니다. Limited Range를 사용하면 이러한 위험을 줄일 수 있습니다.

3.4. Chroma Location (색차 위치)

Chroma location색차 정보(Cb와 Cr)의 샘플링 위치를 정의

  • 이는 YUV 색 공간에서 색상 정보가 어떻게 샘플링되고 배치되는지 설명
  • 표준: 다양한 샘플링 방식이 있으며, 대표적인 방식은 다음과 같습니다.
    • Left: 색차 샘플이 밝기 샘플의 왼쪽에 배치됩니다. MPEG-2와 같은 일부 비디오 압축 표준에서 사용됩니다.
    • Center: 색차 샘플이 밝기 샘플의 중앙에 배치됩니다. JPEG 및 MPEG-4에서 주로 사용됩니다.

profile
모든 의사 결정 과정을 지나칠 정도로 모두 기록하고, 나중에 스스로 피드백 하는 것

0개의 댓글