ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • λ©€ν‹°λ―Έλ””μ–΄ μš©μ–΄ 정리
    곡뢀/λ©€ν‹°λ―Έλ””μ–΄ 2021. 6. 30. 18:30
    728x90

    Container

    μ»¨ν…Œμ΄λ„ˆ(Container) μ •μ˜

    • λΉ„λ””μ˜€, μ˜€λ””μ˜€ 데이터λ₯Ό λ‹΄κ³  μžˆλŠ” 보관함
    • λ™μ˜μƒ ν™•μž₯자, 래퍼 포맷(Rapper Format) 이라 뢀름
    • 코덱에 μ˜ν•΄ μ••μΆ•λœ μ˜€λ””μ˜€, λΉ„λ””μ˜€ 데이터인 슀트림(Stream)을 ν•˜λ‚˜ 이상 가지고 있음

    Container의 μ—­ν• 

    • μŠ€νŠΈλ¦Όμ„ μ œμ–΄ν•  수 μžˆλŠ” λ‹€μ–‘ν•œ 정보(메타데이터)λ₯Ό 가지고 있음

    슀트림(Stream) μ •μ˜

    • 데이터, νŒ¨ν‚·, λΉ„νŠΈ λ“± 일련의 연속성을 κ°–λŠ” 흐름/데이터λ₯Ό 의미
    • λΉ„λ””μ˜€, μ˜€λ””μ˜€ 처럼 μ‹œκ°„μ— 따라 λ³€ν•˜λŠ” 일련의 데이터λ₯Ό 의미
    • μ—¬κΈ°μ„œλŠ” 코덱(Codec)을 톡해 인코딩(Encoding)된 μ˜μƒ, μŒμ„±, 데이터 좜λ ₯물을 말함

     

    Codec

    코덱(Codec) μ •μ˜

    • μŒμ„± λ˜λŠ” μ˜μƒμ˜ μ‹ ν˜Έλ₯Ό 디지털 μ‹ ν˜Έλ‘œ λ³€ν™˜ν•˜λŠ” Coder와 κ·Έ λ°˜λŒ€λ‘œ λ³€ν™˜ν•˜λŠ” Decoderλ₯Ό ν•©μ³μ„œ λΆ€λ₯΄λŠ” μš©μ–΄
    • μš©λŸ‰μ΄ 큰 μ˜μƒμ„ μ΄λ™ν•˜κ±°λ‚˜ λ³΄κ΄€ν•˜κΈ° μ‰½κ²Œ μ••μΆ•ν•˜κ³  μž¬μƒν•  λ•Œ λ‹€μ‹œ λ³΅μ›ν•˜λŠ” μ—­ν• 

    Codec이 ν•„μš”ν•œ 이유

    • λ§Œμ•½ 이런 μŠ€νŽ™μ˜ λ™μ˜μƒμ΄ μ‘΄μž¬ν•  경우
      • Resolution : 1920*1080
      • Pixel Format : RGB24 (3Byte Per Pixel)
      • FPS(Frame Per Second) : 24
      • Play Time : 30minutes
    • 1920*1080*3*24*30*60 = 250.28GB 의 μ €μž₯ 곡간 ν•„μš”

    Codec μ’…λ₯˜

    • ν’ˆμ§ˆμ΄ μ €ν•˜λ˜λ”λΌλ„ μ••μΆ•λ₯ μ„ λ†’μ΄λŠ” 손싀 μ••μΆ• 코덱과 원본 데이터λ₯Ό μœ μ§€ν•˜λ©΄μ„œ μ••μΆ•ν•˜λŠ” 무손싀 μ••μΆ• μ½”λ±μœΌλ‘œ λ‚˜λˆŒ 수 있음
    • μ••μΆ• μ•Œκ³ λ¦¬μ¦˜μ— 따라 λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ 코덱이 쑴재

    λŒ€ν‘œμ μΈ Codec μ’…λ₯˜

    • Video Codec
      • H264, H265, VP8, VP9, AV1...
    • Audio Codec
      • MP3, AAC, Vorbis, AC3, FLAC...

     

    Video Operation

    인코딩(Encoding) μ •μ˜

    • μ•„λ‚ λ‘œκ·Έ μ‹ ν˜Έλ‚˜ 슀트림 λ°μ΄ν„°λ‘œ 이루어진 λΉ„λ””μ˜€μ™€ μ˜€λ””μ˜€λ₯Ό μ••μΆ•λœ λΆ€ν˜Έλ‘œ λ³€ν™˜ν•˜λŠ” κ³Όμ •

    λ””μ½”λ”©(Decoding) μ •μ˜

    • μ••μΆ•λœ 데이터λ₯Ό 본래의 μ•„λ‚ λ‘œκ·Έ ν˜Ήμ€ 슀트림 λ°μ΄ν„°λ‘œ λ³΅μ›ν•˜λŠ” κ³Όμ •

    νŠΈλžœμŠ€μ½”λ”©(Transcoding) μ •μ˜

    • 코덱을 λ‹€λ₯Έ μ’…λ₯˜μ˜ μ½”λ±μœΌλ‘œ λ³€ν™˜ν•˜λŠ” κ³Όμ •
    • λ””μ½”λ”© ν›„ λ‹€λ₯Έ μ½”λ±μœΌλ‘œ λ‹€μ‹œ μΈμ½”λ”©ν•˜λŠ” 과정이 ν•„μš”

    λ¨Ήμ‹±(Muxing = Multiplexing) μ •μ˜

    • ν•˜λ‚˜ μ΄μƒμ˜ 코덱 μŠ€νŠΈλ¦Όμ„ μ»¨ν…Œμ΄λ„ˆμ— μΆ”κ°€ν•˜λŠ” κ³Όμ •

    λ””λ¨Ήμ‹±(Demuxing = Demultiplexing) μ •μ˜

    • μ»¨ν…Œμ΄λ„ˆμ—μ„œ 코덱 μŠ€νŠΈλ¦Όμ„ μΆ”μΆœν•˜λŠ” κ³Όμ •

    νŠΈλžœμŠ€λ¨Ήμ‹±(Transmuxing) μ •μ˜

    • μ»¨ν…Œμ΄λ„ˆλ₯Ό λ³€ν™˜ν•˜λŠ” κ³Όμ •μœΌλ‘œ ν™•μž₯자, 포맷을 λ³€κ²½ν•œλ‹€κ³  ν‘œν˜„ν•¨
    • μ»¨ν…Œμ΄λ„ˆμ—μ„œ 코덱 μŠ€νŠΈλ¦Όμ„ μΆ”μΆœν•˜μ—¬ λ‹€λ₯Έ μ»¨ν…Œμ΄λ„ˆμ— μΆ”κ°€ν•˜λŠ” κ³Όμ •
    • λ””λ¨Ήμ‹± ν›„ λ‹€μ‹œ λ¨Ήμ‹±ν•˜λŠ” 과정이 ν•„μš”

     

    Pixel

    ν”½μ…€(Pixel) μ •μ˜

    • 화면을 ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” κ°€μž₯ μž‘μ€ μš”μ†Œ
    • ν”½μ…€ μ’…νš‘λΉ„(PAR, Pixel Aspect Ratio) : ν•˜λ‚˜μ˜ 픽셀에 λŒ€ν•œ κ°€λ‘œ μ„Έλ‘œ λΉ„μœ¨

    ν”„λ ˆμž„(Frame) μ •μ˜

    • ν•œκ°œμ˜ μ •μ§€λœ 이미지

    ν”„λ ˆμž„λ₯ (Framerate) μ •μ˜

    • μ΄ˆλ‹Ή 보여쀄 수 μžˆλŠ” ν”„λ ˆμž„μ˜ 개수
    • λ‹¨μœ„λŠ” fps(frame per second)

    ν™”λ©΄ 주사 방식

    • μˆœμ°¨μ£Όμ‚¬(Progressive) : 주사선을 1μ΄ˆμ— 60μ”© ν•œκΊΌλ²ˆμ— 순차적으둜 좜λ ₯ν•˜λŠ” 방식
      • μž₯점 : κ³ ν™”μ§ˆμ˜ μ„ λͺ…ν•œ 화면을 λ³Ό 수 있음
      • 단점 : λ°μ΄ν„°λŸ‰μ΄ λ§Žμ•„μ§
    • 비월주사(Interlaced) : 짝수 ν™€μˆ˜ 주사선을 λ²ˆκ°ˆμ•„κ°€λ©° 좜λ ₯ν•˜λŠ” 방식
      • μž₯점 : 적은 λ°μ΄ν„°λŸ‰μœΌλ‘œλ„ μ˜μƒμ„ ν‘œν˜„ν•  수 있음
      • 단점 : κΈ‰κ²©ν•œ μ›€μ§μž„μ„ 보이면 μž”μƒμ΄ λ‚¨μŒ(Interlaced Noise), 화면이 λ„ˆλ¬΄ 컀지면 선이 λ³΄μž„, κΉœλ°•μž„μ΄ 심해 눈이 ν”Όλ‘œν•¨, μ„ λͺ…ν•˜μ§€ λͺ»ν•¨
    • ν˜„μž¬ νŠΉλ³„ν•œ 경우λ₯Ό μ œμ™Έν•˜κ³ λŠ” μˆœμ°¨μ£Όμ‚¬(Progressive) 방식을 μ‚¬μš©

    해상도(Resolution) μ •μ˜

    • 이미지(ν”„λ ˆμž„)을 κ΅¬μ„±ν•˜λŠ” ν”½μ…€μ˜ 수
    • (width) x (height) ν˜•μ‹μœΌλ‘œ ν‘œν˜„
    • ν‘œμ€€ 해상도 그룹을 μ€„μ—¬μ„œ 480p, 720p, 1080p λ“±μœΌλ‘œ ν‘œν˜„ν•˜λŠ”λ° μˆ«μžλŠ” ν•΄μƒλ„μ˜ μ„Έλ‘œ ν”½μ…€ 수λ₯Ό μ˜λ―Έν•˜κ³  μ•ŒνŒŒλ²³μ€ ν™”λ©΄ 주사 방식을 의미 (pλŠ” progressive, iλŠ” interlaced)
    • ν™”λ©΄ μ’…νš‘λΉ„(DAR, Display Aspect Ratio) : ν•΄μƒλ„λ₯Ό ν‘œν˜„ν•˜λŠ” κ°€λ‘œ μ„Έλ‘œ λΉ„μœ¨

     

    Sampling

    ν‘œλ³Έν™”(Sampling) μ •μ˜

    • 연속적인 μ‹œκ°„μ— λŒ€ν•΄ μƒμ„±λ˜λŠ” 데이터λ₯Ό 이산적인 μ‹œκ°„μ— λŒ€ν•œ λ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜λŠ” κ³Όμ •
    • 이미지 κ΄€μ μ—μ„œλŠ” “λͺ‡ 개의 픽셀에 이 이미지λ₯Ό 담을 것인가”λ₯Ό 의미
    • sampling rate : μ΄ˆλ‹Ή μƒ˜ν”Œλ§ 횟수 (λ‹¨μœ„λŠ” Hz, kHz)

     

    Quantization

    μ–‘μžν™”(Quantization) μ •μ˜

    • 연속적인 데이터 ν‘œν˜„ 값을 이산적인 뢄포λ₯Ό κ°–λŠ” κ°’μœΌλ‘œ μž¬κ΅¬μ„±ν•˜λŠ” κ³Όμ •
    • 이미지 κ΄€μ μ—μ„œλŠ” “이미지 픽셀에 λͺ‡ 개의 값을 μ‚¬μš©ν•  것인가”λ₯Ό 의미
    • bit depth : pixel(or sample)λ‹Ή 값을 ν‘œν˜„ν•˜λŠ”λ° μ‚¬μš©ν•˜λŠ” λΉ„νŠΈ 수

     

    Bitrate

    λΉ„νŠΈμœ¨(Bitrate) μ •μ˜

    • μ•„λ‚ λ‘œκ·Έ 데이터에 λŒ€ν•΄ μƒ˜ν”Œλ§ 및 μ–‘μžν™”λ₯Ό μˆ˜ν–‰ν•  λ•Œ μƒμ„±λ˜λŠ” λ‹¨μœ„ μ‹œκ°„λ‹Ή λΉ„νŠΈ
    • bit rate = sampling rate X quantization per sample
    • 2μ΄ˆλ§ˆλ‹€ μ•„λ‚ λ‘œκ·Έ 데이터λ₯Ό 읽고 읽은 κ°’λ§ˆλ‹€ 4bitλ₯Ό ν• λ‹Ήν•˜λ©΄ λΉ„νŠΈμœ¨μ€ 20 bit/s

    λΉ„λ””μ˜€μ—μ„œ μ˜λ―Έν•˜λŠ” Bitrate

    • μ˜μƒμ΄ 1μ΄ˆλ‹Ή μ²˜λ¦¬ν•˜λŠ” 데이터 크기 (인코딩 κ³Όμ •μ—μ„œ 1μ΄ˆλ‹Ή μ˜μƒμ— λ‹΄λŠ” bit의 수)
    • λ‹¨μœ„λŠ” bps(bit per second)
    • bit rate = width X height X bit depth X fps(frame per second)
    • λ™μ˜μƒμ΄ 30fps, 24bit pixel depth, 480x240 해상도λ₯Ό κ°€μ§ˆ 경우, μ΄ˆλ‹Ή 82,944,000bit(82.944Mbps)κ°€ ν•„μš”ν•¨

    인코딩 μ‹œ Bitrateλ₯Ό ν• λ‹Ήν•˜λŠ” 방식

    • κ°€λ³€ λΉ„νŠΈλ ˆμ΄νŠΈ(VBR, Variable Bitrate)
      • μ˜μƒμ˜ λ³΅μž‘λ„μ— 따라 ν• λ‹Ήν•˜λŠ” λΉ„νŠΈλ ˆμ΄νŠΈ 값이 κ²°μ •
      • 각 ν”„λ ˆμž„λ§ˆλ‹€ ν•„μš”ν•œ 만큼의 데이터λ₯Ό μ‚¬μš©ν•˜μ—¬ ν’ˆμ§ˆμ΄ μ’‹μ§€λ§Œ μƒλŒ€μ μœΌλ‘œ 인코딩 μ‹œκ°„μ΄ 였래 걸리며 μ˜μƒμ˜ μš©λŸ‰μ„ μ˜ˆμΈ‘ν•˜κΈ° νž˜λ“¬
      • 즉, ν’ˆμ§ˆμ΄ μ’‹μ§€λ§Œ λ§Žμ€ μ‹œκ°„, μ—°μ‚°, ν•˜λ“œμ›¨μ–΄ 점유λ₯ μ„ ν•„μš”λ‘œ 함 (슀트리밍 ν™˜κ²½μ— 뢀적합)
    • κ³ μ • λΉ„νŠΈλ ˆμ΄νŠΈ(CBR, Constant Bitrate)
      • μ˜μƒμ˜ λ³΅μž‘λ„μ™€ 관계없이 항상 같은 μ–‘μ˜ λΉ„νŠΈλ ˆμ΄νŠΈλ₯Ό ν• λ‹Ή
      • μ˜μƒμ˜ ν’ˆμ§ˆμ€ VBR보닀 λ–¨μ–΄μ§€μ§€λ§Œ 데이터 크기가 κ³ μ •λ˜μ–΄ λ™μ˜μƒ μš©λŸ‰μ„ μ˜ˆμΈ‘ν•  수 있음
    • 평균 λΉ„νŠΈλ ˆμ΄νŠΈ(ABR, Average Bitrate)
      • μ˜μƒμ˜ λ³΅μž‘λ„μ— 따라 λΉ„νŠΈλ ˆμ΄νŠΈλ₯Ό ν• λ‹Ήν•˜μ§€λ§Œ ν‰κ· μœΌλ‘œ μ§€μ •λœ λΉ„νŠΈλ ˆμ΄νŠΈλ₯Ό μœ μ§€ν•˜λ €ν•¨
      • VBRκ³Ό CBR의 νŠΉμ§•μ„ μ„žμ–΄ 높은 λ°©μ‹μœΌλ‘œ μŠ€νŠΈλ¦¬λ°μ—λ„ 무리가 μ—†μœΌλ©° CBR에 λΉ„ν•΄ 높은 ν’ˆμ§ˆμ„ λ³΄μ—¬μ€Œ

     

    Chroma Subsampling

    Chroma Subsampling μ •μ˜

    • μ‚¬λžŒμ€ 눈의 밝기(Luma, Luminance) μ°¨μ΄μ—λŠ” λ―Όκ°ν•˜μ§€λ§Œ 색상(Chroma, Chrominance) μ°¨μ΄μ—λŠ” μƒλŒ€μ μœΌλ‘œ 둔감
    • 크둜마 μ„œλΈŒμƒ˜ν”Œλ§μ€ μ‚¬λžŒμ˜ λˆˆμ— λ‘”κ°ν•œ 색차 정보λ₯Ό 쀄이고 λ―Όκ°ν•œ λͺ…도λ₯Ό 기반으둜 μ˜μƒμ„ μ••μΆ•ν•˜λŠ” 방식

    RGB μ •μ˜

    • λΉ›μ˜ 3원색인 Red, Green, Blueλ₯Ό μ‘°ν•©ν•˜μ—¬ 색을 ν‘œν˜„ν•˜λŠ” 방식
    • ν•˜λ‚˜μ˜ 픽셀을 ν‘œν˜„ν•  λ•Œ, 24bit(ν•œ 색당 8bit) μ‚¬μš©

    YUV μ •μ˜

    • λΉ›μ˜ 양을 μ •ν•˜λŠ” νœ˜λ„(Y)와 색차(U, V)λ₯Ό μ‚¬μš©ν•˜λŠ” 방식
    • λ””μ§€ν„Έμ—μ„œλŠ” U, V λŒ€μ‹  RGB의 νŒŒλž‘(Cb)κ³Ό λΉ¨κ°•(Cr)을 μ‚¬μš©
    • λŒ€ν‘œμ μœΌλ‘œ YUV444, YUV422, YUV420이 있음

     

    GOP

    GOP(Group of Pictures) μ •μ˜

    • λͺ‡ μž₯의 μ „ν›„ ν™”λ©΄ 데이터λ₯Ό ν•œ 묢음으둜 ν•˜λŠ” μ˜μƒ 데이터 λ‹¨μœ„
    • μΈμ½”λ”©λœ 이미지 ν”„λ ˆμž„ κ·Έλ£Ή

    GOP의 ν•„μš”μ„±

    • λΉ„λ””μ˜€λ₯Ό μ••μΆ•ν•  λ•Œ ν”„λ ˆμž„μ„ κ°œλ³„μ μœΌλ‘œ μ••μΆ•ν•˜λŠ” 것보닀 ν•˜λ‚˜μ˜ ν”„λ ˆμž„κ³Ό μ£Όλ³€ ν”„λ ˆμž„ κ°„μ˜ 상관관계λ₯Ό μ΄μš©ν•˜μ—¬ 압좕을 ν•˜λŠ” 것이 νš¨μœ¨μ μž„
    • μ΄λ•Œ GOP λ‹¨μœ„λ‘œ ν”„λ ˆμž„μ„ λ¬Άμ–΄μ„œ 압좕을 진행함

    GOP νŠΉμ§•

    • μž„μ˜ μ‹œμ μœΌλ‘œ μ ‘κ·Ό(Random Access)이 GOP λ‹¨μœ„λ‘œ κ°€λŠ₯
    • GOPκ°€ 가지고 μžˆλŠ” I-frame, P-frame, B-frame 의 λΉ„μœ¨μ— 따라 μ••μΆ•λΉ„κ°€ 달라짐
    • ν•œ μž₯ μ΄μƒμ˜ I-frame을 가지고 μžˆμ–΄μ•Ό 함
    • ν•˜λ‚˜μ˜ GOP둜 묢인 ν”„λ ˆμž„μ˜ 수λ₯Ό GOP 수(GOP number, GOP N)이라고 ν•˜λ©° GOP μˆ˜κ°€ 클수둝 μ••μΆ•λ₯ μ€ μ˜¬λΌκ°€μ§€λ§Œ ν™”μ§ˆμ€ μƒλŒ€μ μœΌλ‘œ 떨어짐

    GOP의 ꡬ성 μš”μ†Œ

    • I-frame(Intra Frame)
      • ν•˜λ‚˜μ˜ μ˜¨μ „ν•œ 이미지λ₯Ό μ €μž₯ν•˜κ³  μžˆλŠ” ν”„λ ˆμž„μœΌλ‘œ λ””μ½”λ”© μ‹œ λ‹€λ₯Έ ν”„λ ˆμž„μ˜ 도움이 ν•„μš” μ—†μŒ
      • λ‹€λ₯Έ ν”„λ ˆμž„μ„ λ””μ½”λ”©ν•  λ•Œ ν‚€ 역할을 ν•˜μ—¬ ν‚€ ν”„λ ˆμž„(Key Frame)이라 뢀름
    • P-frame(Predicted Frame)
      • 순 λ°©ν–₯ 예츑 ν”„λ ˆμž„
      • λ°”λ‘œ 이전에 μœ„μΉ˜ν•œ I-Frame을 κΈ°μ€€μœΌλ‘œ 바뀐 λΆ€λΆ„μ˜ λ‚΄μš©μ„ λ‹΄κ³  μžˆλŠ” ν”„λ ˆμž„
      • I-frame μš©λŸ‰μ˜ 33% 크기
    • B-frame(Bidirectional Frame)
      • μ–‘ λ°©ν–₯ 예츑 ν”„λ ˆμž„
      • I-frameκ³Ό P-frame μ‚¬μ΄μ—μ„œ μ–‘μͺ½ ν”„λ ˆμž„μ„ λͺ¨λ‘ μ°Έμ‘°ν•˜μ—¬ 바뀐 λΆ€λΆ„μ˜ λ‚΄μš©μ„ λ‹΄κ³  μžˆλŠ” ν”„λ ˆμž„
      • P frame의 μš©λŸ‰μ˜ 33% 크기

     

     

     

    728x90

    λŒ“κΈ€

Designed by Tistory.