-
λ©ν°λ―Έλμ΄ μ©μ΄ μ 리곡λΆ/λ©ν°λ―Έλμ΄ 2021. 6. 30. 18:30728x90
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'κ³΅λΆ > λ©ν°λ―Έλμ΄' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
ν΄λ¦¬ν(Polyfill), μ¬(Shim) μ΄λ? + WebRTCμμ adapter.jsλ₯Ό μ°λ μ΄μ (0) 2021.07.06 μ€λμ€ μ½λ±(Audio Codec) μ’ λ₯ (0) 2020.11.02 λΉλμ€ μ½λ±(Video Codec) μ’ λ₯ (0) 2020.11.02 λμμ νμ₯μ(Media Container Format) μ’ λ₯ (2) 2020.11.02 λμμ νμ₯μμ λν μ΄ν΄ - 컨ν μ΄λ(Container), μ½λ±(Codec) (0) 2020.11.02