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)?
- 오디오나 비디오 파일에서
초당 메모리에 전송되는 비트 수를 의미
- 요약하자면:
- 촬영 중:
- 실시간으로 비디오 데이터를 압축하고 저장하며, 이 과정에서 비트레이트가 적용됩니다. (메모리에)
- 촬영 후:
- 촬영된 비디오 데이터가 지정된 비트레이트에 따라 최종적으로 파일로 저장됩니다. (디스크에)
- 비트레이트는 주로 비트/초(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
- 비디오 파일에서
픽셀 포맷을 지정하는 데 사용되는 옵션
- 이 옵션은 비디오의
색 공간과 색상 깊이, 색상 서브샘플링 및 색상 데이터를 저장하는 방법을 정의
- YUV:
- Y: 휘도(Luminance) 성분을 나타냅니다.
- U, V: 색차(Chrominance) 성분을 나타냅니다. U는 파랑-휘도 차이(Blue-Y), V는 빨강-휘도 차이(Red-Y)를 나타냅니다.
- YUV 색 공간은 RGB 색 공간을 변환한 것으로, 색상 정보를 효율적으로 압축
- 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
매개변수는 인코딩 속도와 압축 효율 사이의 균형을 조절
- 일반적으로
ffmpeg
및 libx264
코덱에서는 다양한 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까지)을 사용하여 색상을 표현합니다. 주로 컴퓨터 그래픽스에서 사용됩니다.
- 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에서 주로 사용됩니다.