SlideShare une entreprise Scribd logo
1  sur  17
비디오 코덱
왜 비디오 압축을 해야하나?
• HDTV – 1920x1080
• Frame rate – 30
• RGB – 3 bytes
• 1920x1080x30x3x8 = 1.5 Gb/sec
YUV 컬러모델
• Y – 휘도(luminance), 밝기
• UV(CbCr) – 색차(chrominance), 색차
• YUV(YCbCr) – RGB와 등가역 정보를 가짐
• U(Cb) = B-Y, 청색에서 밝기를 뺀값
• V(Cr) = R-Y, 적색에서 밝기를 뺀값
• 인간의 눈은 색차(UV)보다 밝기(Y)에 훨씬
더 민감하다 (흑백TV)
YUV420 포멧(1)
• 모든 픽셀에 Y정보는 하나씩
• Y 4개(2x2)당 U,V 1개씩
YUV420 포멧(2)
• Y = WIDTH x HEIGHT
• U = WIDTH/2 x HEIGHT/2
• V = WIDTH/2 x HEIGHT/2
• TOTAL = Y+U+V = 1.5 x WIDTH x HEIGHT
• RGB의 1/2 (RGB = 3 x WIDTH x HEIGHT)
• 출력영상은 RGB
영상압축의 목표
• 압축의 목표 – 디지털 정보에서 중복된 정보를 제거
• 가역압축 => 파일압축(zip/tar/bz2)
• 비가역압축 => 영상/음성 압축
• 영상압축
- 공간적 압축 => 화면내 중복정보 제거(i-frame, jpeg)
- 시간적 압축 => 화면간 중복정보 제거(p-frame, b-
frame)
- 부호압축 => 가변길이 부호화(엔트로피 인코딩)
• 영상압축의 최종목표는 부호압축에 유리하도록 데이터
를 변형하는데 있다 => 디지털정보는 같은 패턴이 연속
해서 반복될수록 압축에 유리하다 (RLE : Run Length
Encoding)
공간적 압축
• Intra-frame 압축, 한 프레임 내에서의 중복 정보를 제거
(i-frame, jpeg)
• 블럭단위 압축 – 4x4/8x8/16x16과 같은 블럭단위로 연산
=> 작은 블럭일수록 정교하지만 압축률에는 불리
• 고주파/저주파 영역 – 픽셀영상을 주파수 영역으로 변환
했을때 인접한 화소들간에 변화가 많다/적다
• 손실압축 – 영상 내의 고주파 영역을 제거
• DCT 변환 – 픽셀정보를 주파수 영역으로 변환 => 고주
파/저주파 성분 분리를 위해
• 인간의 눈은 저주파 성분에는 민감하지만 고주파 성분에
는 둔감 => 고주파 성분에 손실이 있어도 감지하지 못함
DCT 변환
• DCT 변환 후 저주파 영역(좌상단)에는 큰 값이, 고주파
영역(우하단)에는 주로 작은 값들이 배치
• 고주파 영역 – 주변 픽셀과 차이가 많은 영역
• 저주파 영역 – 주변 픽셀과 차이가 적은 영역
양자화 계수와 지그재그 스캔
• 양자화 계수(Quantization Parameter)로 나눈 다음(손실발생) 지그
재그 스캔을 통해 같은 값들이 연속해서 나오도록 한다 => 부호압
축에 유리
• 압축영상을 복원하는쪽에서는 반대로 역 지그재그 스캔으로 블럭을
복원한 후 QP값을 곱해서 복원한다
• QP값에 따라 영상의 화질이 결정(bitrate)
시간적 압축
• Inter-frame 압축, 영상 프레임 간의 중복
정보 제거 => 프레임 간에 변화된 정보만
추출 (p-frame, b-frame)
• 영상을 블럭단위로 나눈다음 해당 블록이
참조 프레임의 어느 블록에 해당되는지 찾
는 방식 (Motion Estimation)
• 예측에러(Prediction Error) 등으로 손실 발
생 => i-frame 을 중간중간 넣어줘야함
Motion Estimation
• ME를 통해 Motion Vector(MV)값을 구한다
• 해당 블록의 MV값만을 압축
• 영상복원은 반대로 이전 프레임에서 해당 블록
에 MV를 더하는 방식으로 복원
부호압축(엔트로피 인코딩)
• 가변길이부호화(VLC : Variable Length Coding) 방식으
로 최종 압축할 데이터의 비트스트림을 압축(지그재그
스캔을 마친 블럭데이터), 무손실 압축
• 호프만 코딩에 기초 – 출현빈도가 높은 값에게는 짧은
부호를 할당하고 출현빈도가 낮은 값에게는 긴 부호를
할당
• CAVLC - Context Adaptive Variable Length Coding
• CABAC - Context Adaptive Binary Arithmetic Coding
• 비트열의 흐름에서 동적으로 부호할당
• CABAC은 CAVLC보다 복잡하고 오래 걸리지만 압축률이
더 좋음
인코딩 Flow
• I-frame : input->DCT->quantize->Huffman Coding->output
• P-frame : input->ME->MC->DCT->quantize->Huffman Coding-
>output
• 인코딩은 디코딩을 포함 => 인코딩이 디코딩보다 복잡하다
비디오 프레임 종류
• i-frame과 다음 i-frame 사이의 모든 프레임들을
GOP(Group Of Pictures)라 한다
• b-frame은 네트워크로 전달되는 시스템에서는 일반적으
로 잘 쓰지않는다(파일 인코딩에서 주로 사용)
• IPPPP…I 로 인코딩된 상황에서 중간의 P프레임을 디코딩
하려면 앞선 IPPP가 다 필요하다(I←P←P←P←P)
H.264 코덱의 역사
• ITU-T 계열의 H.26x 시리즈와 ISO/IEC 계열의 MPEG 시리즈
• H.264 / MPEG4 Part10: AVC – 최신 부호화 기술의 집대성, 1/20 ~ 1/100
압축률, bitrate는 10 kbps ~ 240 Mbps
FFMPEG
• 현존하는 거의 유일한 오픈소스 코덱 프로젝트 –
GPL/LGPL 라이센스, 다양한 플랫폼 지원(윈도우/리눅스/
안드로이드/iOS 등)
• 인코더/디코더/먹서/디먹서/스케일러 등으로 구성
• 다양한 코덱과 파일포멧을 지원
• 현존하는 거의 대부분의 멀티미디어 재생기가 FFMPEG
을 사용중 – VLC/곰플레이어/팟플레이어/KMPlayer 등
• 사용하기 쉽고 응용하기고 쉬움
코덱관련 용어
• 멀티미디어 컨테이너 포멧 – AVI/MP4/MKV 등과 같이 특정 포멧을
가지고 H.264/MPEG4/MP3와 같은 인코딩 스트림을 저장하는 파일
포멧(코덱과는 다른 의미)
• 트랜스코딩 – 특정 코덱으로 인코딩된 스트림(네트웍/파일)을 다른
코덱 혹은 해상도를 변환하는 것. 예) H.264->MPEG4, MPEG4-
>H.264, 해상도 변환 => 입력영상을 디코딩 후 다시 인코딩
• 프로파일 – 영상 압축을 위한 다양한 방법과 알고리즘들의 집합.
예)H.264 Baseline/Main/Extended Profile
• 비트레이트(Bitrate) – 단위 시간당 인코딩 데이터의 출력량
• CBR/VBR – Contant BitRate/Variable BitRate

Contenu connexe

Tendances

mathematical_notation
mathematical_notationmathematical_notation
mathematical_notationKenta Oono
 
IBM RedHat OCP Vs xKS.pptx
IBM RedHat OCP Vs xKS.pptxIBM RedHat OCP Vs xKS.pptx
IBM RedHat OCP Vs xKS.pptxssuser666667
 
あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)たけおか しょうぞう
 
ここまできた! ”第6世代”ファイバーチャネルがもたらす ストレージ・ネットワークの 新たな可能性とは?
ここまできた! ”第6世代”ファイバーチャネルがもたらす ストレージ・ネットワークの 新たな可能性とは?ここまできた! ”第6世代”ファイバーチャネルがもたらす ストレージ・ネットワークの 新たな可能性とは?
ここまできた! ”第6世代”ファイバーチャネルがもたらす ストレージ・ネットワークの 新たな可能性とは?Brocade
 
データ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラデータ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラNVIDIA Japan
 
Vmware Tanzu Kubernetes Connect(Spanish)
Vmware Tanzu Kubernetes Connect(Spanish)Vmware Tanzu Kubernetes Connect(Spanish)
Vmware Tanzu Kubernetes Connect(Spanish)GabrielaRodriguez182401
 
Introduction to MQTT
Introduction to MQTTIntroduction to MQTT
Introduction to MQTTEMQ
 
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...StreamNative
 
Lecture 7 cuda execution model
Lecture 7   cuda execution modelLecture 7   cuda execution model
Lecture 7 cuda execution modelVajira Thambawita
 
Alexa conversations に触れてみよう
Alexa conversations に触れてみようAlexa conversations に触れてみよう
Alexa conversations に触れてみようMitsuya Takarashima
 
Develop QNAP NAS App by Docker
Develop QNAP NAS App by DockerDevelop QNAP NAS App by Docker
Develop QNAP NAS App by DockerTerry Chen
 
Uncover the Flex Gateway with a Demonstration (1).pdf
Uncover the Flex Gateway with a Demonstration (1).pdfUncover the Flex Gateway with a Demonstration (1).pdf
Uncover the Flex Gateway with a Demonstration (1).pdfPankaj Goyal
 
Scaling AKS Nodes: Leveraging Cluster Autoscaler, Karpenter, and Node Autopro...
Scaling AKS Nodes: Leveraging Cluster Autoscaler, Karpenter, and Node Autopro...Scaling AKS Nodes: Leveraging Cluster Autoscaler, Karpenter, and Node Autopro...
Scaling AKS Nodes: Leveraging Cluster Autoscaler, Karpenter, and Node Autopro...Philip Welz
 
AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化
AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化
AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化Amazon Web Services Japan
 

Tendances (20)

mathematical_notation
mathematical_notationmathematical_notation
mathematical_notation
 
IBM RedHat OCP Vs xKS.pptx
IBM RedHat OCP Vs xKS.pptxIBM RedHat OCP Vs xKS.pptx
IBM RedHat OCP Vs xKS.pptx
 
OpenStackとPythonと私
OpenStackとPythonと私OpenStackとPythonと私
OpenStackとPythonと私
 
これがCassandra
これがCassandraこれがCassandra
これがCassandra
 
あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)
 
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッションオンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
 
Lockfree Queue
Lockfree QueueLockfree Queue
Lockfree Queue
 
RFC5996(IKEv2)第2版
RFC5996(IKEv2)第2版RFC5996(IKEv2)第2版
RFC5996(IKEv2)第2版
 
ここまできた! ”第6世代”ファイバーチャネルがもたらす ストレージ・ネットワークの 新たな可能性とは?
ここまできた! ”第6世代”ファイバーチャネルがもたらす ストレージ・ネットワークの 新たな可能性とは?ここまできた! ”第6世代”ファイバーチャネルがもたらす ストレージ・ネットワークの 新たな可能性とは?
ここまできた! ”第6世代”ファイバーチャネルがもたらす ストレージ・ネットワークの 新たな可能性とは?
 
データ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラデータ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラ
 
Vmware Tanzu Kubernetes Connect(Spanish)
Vmware Tanzu Kubernetes Connect(Spanish)Vmware Tanzu Kubernetes Connect(Spanish)
Vmware Tanzu Kubernetes Connect(Spanish)
 
Introduction to MQTT
Introduction to MQTTIntroduction to MQTT
Introduction to MQTT
 
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
MoP(MQTT on Pulsar) - a Powerful Tool for Apache Pulsar in IoT - Pulsar Summi...
 
Lecture 7 cuda execution model
Lecture 7   cuda execution modelLecture 7   cuda execution model
Lecture 7 cuda execution model
 
Alexa conversations に触れてみよう
Alexa conversations に触れてみようAlexa conversations に触れてみよう
Alexa conversations に触れてみよう
 
CoAP Talk
CoAP TalkCoAP Talk
CoAP Talk
 
Develop QNAP NAS App by Docker
Develop QNAP NAS App by DockerDevelop QNAP NAS App by Docker
Develop QNAP NAS App by Docker
 
Uncover the Flex Gateway with a Demonstration (1).pdf
Uncover the Flex Gateway with a Demonstration (1).pdfUncover the Flex Gateway with a Demonstration (1).pdf
Uncover the Flex Gateway with a Demonstration (1).pdf
 
Scaling AKS Nodes: Leveraging Cluster Autoscaler, Karpenter, and Node Autopro...
Scaling AKS Nodes: Leveraging Cluster Autoscaler, Karpenter, and Node Autopro...Scaling AKS Nodes: Leveraging Cluster Autoscaler, Karpenter, and Node Autopro...
Scaling AKS Nodes: Leveraging Cluster Autoscaler, Karpenter, and Node Autopro...
 
AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化
AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化
AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化
 

En vedette

스트리밍 프로토콜
스트리밍 프로토콜스트리밍 프로토콜
스트리밍 프로토콜greenday96
 
인코딩 및 스트리밍 처리 구성도
인코딩 및 스트리밍 처리 구성도인코딩 및 스트리밍 처리 구성도
인코딩 및 스트리밍 처리 구성도jw Yoon
 
Android media codec 사용하기
Android media codec 사용하기Android media codec 사용하기
Android media codec 사용하기Taehwan kwon
 
Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개Jiho Choi
 
Signal Compression and JPEG
Signal Compression and JPEGSignal Compression and JPEG
Signal Compression and JPEGguest9006ab
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기Ted Won
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
 
멀티미디어 서비스를 위한 AirPlug 솔루션 소개 (대학 강의 자료)
멀티미디어 서비스를 위한 AirPlug 솔루션 소개 (대학 강의 자료)멀티미디어 서비스를 위한 AirPlug 솔루션 소개 (대학 강의 자료)
멀티미디어 서비스를 위한 AirPlug 솔루션 소개 (대학 강의 자료)AirPlug Inc.
 
04.m3 cms streaming-protocol
04.m3 cms streaming-protocol04.m3 cms streaming-protocol
04.m3 cms streaming-protocoltarensi
 
대규모 서비스를 지탱하는 기술 ch6
대규모 서비스를 지탱하는 기술 ch6대규모 서비스를 지탱하는 기술 ch6
대규모 서비스를 지탱하는 기술 ch6Mungyu Choi
 
디지털통신 8
디지털통신 8디지털통신 8
디지털통신 8KengTe Liao
 
Challenge. 도전에 관한 영어 명언 10
Challenge. 도전에 관한 영어 명언 10Challenge. 도전에 관한 영어 명언 10
Challenge. 도전에 관한 영어 명언 10길벗지기
 
5.동영상에 대하여 j.mp gnmove(2 p)
5.동영상에 대하여 j.mp gnmove(2 p)5.동영상에 대하여 j.mp gnmove(2 p)
5.동영상에 대하여 j.mp gnmove(2 p)하이퍼테크
 
Android mediacodec
Android mediacodecAndroid mediacodec
Android mediacodecTaehwan kwon
 
실시간스트리밍 시장동향과 전망 (올레온에어중계)
실시간스트리밍 시장동향과 전망 (올레온에어중계)실시간스트리밍 시장동향과 전망 (올레온에어중계)
실시간스트리밍 시장동향과 전망 (올레온에어중계)Sang Lee
 
Cisco asa firewall을 통한 패킷 흐름
Cisco asa firewall을 통한 패킷 흐름Cisco asa firewall을 통한 패킷 흐름
Cisco asa firewall을 통한 패킷 흐름IT Tech
 
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철KTH, 케이티하이텔
 
실시간스트리밍 시장동향과 전망 올레온에어
실시간스트리밍 시장동향과 전망 올레온에어실시간스트리밍 시장동향과 전망 올레온에어
실시간스트리밍 시장동향과 전망 올레온에어Sang Lee
 
Streaming of Huxley
Streaming of HuxleyStreaming of Huxley
Streaming of HuxleySungkyun Kim
 

En vedette (20)

스트리밍 프로토콜
스트리밍 프로토콜스트리밍 프로토콜
스트리밍 프로토콜
 
인코딩 및 스트리밍 처리 구성도
인코딩 및 스트리밍 처리 구성도인코딩 및 스트리밍 처리 구성도
인코딩 및 스트리밍 처리 구성도
 
Android media codec 사용하기
Android media codec 사용하기Android media codec 사용하기
Android media codec 사용하기
 
Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개
 
Signal Compression and JPEG
Signal Compression and JPEGSignal Compression and JPEG
Signal Compression and JPEG
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기
 
JPEG Image Compression
JPEG Image CompressionJPEG Image Compression
JPEG Image Compression
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
멀티미디어 서비스를 위한 AirPlug 솔루션 소개 (대학 강의 자료)
멀티미디어 서비스를 위한 AirPlug 솔루션 소개 (대학 강의 자료)멀티미디어 서비스를 위한 AirPlug 솔루션 소개 (대학 강의 자료)
멀티미디어 서비스를 위한 AirPlug 솔루션 소개 (대학 강의 자료)
 
04.m3 cms streaming-protocol
04.m3 cms streaming-protocol04.m3 cms streaming-protocol
04.m3 cms streaming-protocol
 
대규모 서비스를 지탱하는 기술 ch6
대규모 서비스를 지탱하는 기술 ch6대규모 서비스를 지탱하는 기술 ch6
대규모 서비스를 지탱하는 기술 ch6
 
디지털통신 8
디지털통신 8디지털통신 8
디지털통신 8
 
Challenge. 도전에 관한 영어 명언 10
Challenge. 도전에 관한 영어 명언 10Challenge. 도전에 관한 영어 명언 10
Challenge. 도전에 관한 영어 명언 10
 
5.동영상에 대하여 j.mp gnmove(2 p)
5.동영상에 대하여 j.mp gnmove(2 p)5.동영상에 대하여 j.mp gnmove(2 p)
5.동영상에 대하여 j.mp gnmove(2 p)
 
Android mediacodec
Android mediacodecAndroid mediacodec
Android mediacodec
 
실시간스트리밍 시장동향과 전망 (올레온에어중계)
실시간스트리밍 시장동향과 전망 (올레온에어중계)실시간스트리밍 시장동향과 전망 (올레온에어중계)
실시간스트리밍 시장동향과 전망 (올레온에어중계)
 
Cisco asa firewall을 통한 패킷 흐름
Cisco asa firewall을 통한 패킷 흐름Cisco asa firewall을 통한 패킷 흐름
Cisco asa firewall을 통한 패킷 흐름
 
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택_데이터지능팀_이호철
 
실시간스트리밍 시장동향과 전망 올레온에어
실시간스트리밍 시장동향과 전망 올레온에어실시간스트리밍 시장동향과 전망 올레온에어
실시간스트리밍 시장동향과 전망 올레온에어
 
Streaming of Huxley
Streaming of HuxleyStreaming of Huxley
Streaming of Huxley
 

Similaire à 비디오 코덱

[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희changehee lee
 
디지털비디오
디지털비디오디지털비디오
디지털비디오Donghoi Kim
 
111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_web111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_webCARROTCG
 
ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법noerror
 
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...MYEONGGYU LEE
 
Display color와 Digital texture format의 이해
Display color와 Digital texture format의 이해Display color와 Digital texture format의 이해
Display color와 Digital texture format의 이해SangYun Yi
 
UHD HDR "Dance untold story"
UHD HDR "Dance untold story"UHD HDR "Dance untold story"
UHD HDR "Dance untold story"승윤 이
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬현찬 양
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화 tartist
 
Modern gpu optimize blog
Modern gpu optimize blogModern gpu optimize blog
Modern gpu optimize blogozlael ozlael
 
Binarized CNN on FPGA
Binarized CNN on FPGABinarized CNN on FPGA
Binarized CNN on FPGA홍배 김
 
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)Sukwoo Lee
 
Deep learning super resolution
Deep learning super resolutionDeep learning super resolution
Deep learning super resolutionNAVER Engineering
 
Automatic Grid Pattern Recognition for Camera Calibration
Automatic Grid Pattern Recognition for Camera CalibrationAutomatic Grid Pattern Recognition for Camera Calibration
Automatic Grid Pattern Recognition for Camera CalibrationLee Young Min
 
Hd sdi 영상분배 증폭기
Hd sdi 영상분배 증폭기Hd sdi 영상분배 증폭기
Hd sdi 영상분배 증폭기Deok kyu Ahn
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4민웅 이
 
ADC(nanheekim)
ADC(nanheekim)ADC(nanheekim)
ADC(nanheekim)Nanhee Kim
 

Similaire à 비디오 코덱 (20)

[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
 
High dynamic range
High dynamic rangeHigh dynamic range
High dynamic range
 
디지털비디오
디지털비디오디지털비디오
디지털비디오
 
111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_web111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_web
 
ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법
 
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...
 
Display color와 Digital texture format의 이해
Display color와 Digital texture format의 이해Display color와 Digital texture format의 이해
Display color와 Digital texture format의 이해
 
UHD HDR "Dance untold story"
UHD HDR "Dance untold story"UHD HDR "Dance untold story"
UHD HDR "Dance untold story"
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
 
Modern gpu optimize
Modern gpu optimizeModern gpu optimize
Modern gpu optimize
 
Modern gpu optimize blog
Modern gpu optimize blogModern gpu optimize blog
Modern gpu optimize blog
 
Binarized CNN on FPGA
Binarized CNN on FPGABinarized CNN on FPGA
Binarized CNN on FPGA
 
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
 
Deep learning super resolution
Deep learning super resolutionDeep learning super resolution
Deep learning super resolution
 
Automatic Grid Pattern Recognition for Camera Calibration
Automatic Grid Pattern Recognition for Camera CalibrationAutomatic Grid Pattern Recognition for Camera Calibration
Automatic Grid Pattern Recognition for Camera Calibration
 
Hd sdi 영상분배 증폭기
Hd sdi 영상분배 증폭기Hd sdi 영상분배 증폭기
Hd sdi 영상분배 증폭기
 
D2 Hdr
D2 HdrD2 Hdr
D2 Hdr
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4
 
ADC(nanheekim)
ADC(nanheekim)ADC(nanheekim)
ADC(nanheekim)
 

비디오 코덱

  • 2. 왜 비디오 압축을 해야하나? • HDTV – 1920x1080 • Frame rate – 30 • RGB – 3 bytes • 1920x1080x30x3x8 = 1.5 Gb/sec
  • 3. YUV 컬러모델 • Y – 휘도(luminance), 밝기 • UV(CbCr) – 색차(chrominance), 색차 • YUV(YCbCr) – RGB와 등가역 정보를 가짐 • U(Cb) = B-Y, 청색에서 밝기를 뺀값 • V(Cr) = R-Y, 적색에서 밝기를 뺀값 • 인간의 눈은 색차(UV)보다 밝기(Y)에 훨씬 더 민감하다 (흑백TV)
  • 4. YUV420 포멧(1) • 모든 픽셀에 Y정보는 하나씩 • Y 4개(2x2)당 U,V 1개씩
  • 5. YUV420 포멧(2) • Y = WIDTH x HEIGHT • U = WIDTH/2 x HEIGHT/2 • V = WIDTH/2 x HEIGHT/2 • TOTAL = Y+U+V = 1.5 x WIDTH x HEIGHT • RGB의 1/2 (RGB = 3 x WIDTH x HEIGHT) • 출력영상은 RGB
  • 6. 영상압축의 목표 • 압축의 목표 – 디지털 정보에서 중복된 정보를 제거 • 가역압축 => 파일압축(zip/tar/bz2) • 비가역압축 => 영상/음성 압축 • 영상압축 - 공간적 압축 => 화면내 중복정보 제거(i-frame, jpeg) - 시간적 압축 => 화면간 중복정보 제거(p-frame, b- frame) - 부호압축 => 가변길이 부호화(엔트로피 인코딩) • 영상압축의 최종목표는 부호압축에 유리하도록 데이터 를 변형하는데 있다 => 디지털정보는 같은 패턴이 연속 해서 반복될수록 압축에 유리하다 (RLE : Run Length Encoding)
  • 7. 공간적 압축 • Intra-frame 압축, 한 프레임 내에서의 중복 정보를 제거 (i-frame, jpeg) • 블럭단위 압축 – 4x4/8x8/16x16과 같은 블럭단위로 연산 => 작은 블럭일수록 정교하지만 압축률에는 불리 • 고주파/저주파 영역 – 픽셀영상을 주파수 영역으로 변환 했을때 인접한 화소들간에 변화가 많다/적다 • 손실압축 – 영상 내의 고주파 영역을 제거 • DCT 변환 – 픽셀정보를 주파수 영역으로 변환 => 고주 파/저주파 성분 분리를 위해 • 인간의 눈은 저주파 성분에는 민감하지만 고주파 성분에 는 둔감 => 고주파 성분에 손실이 있어도 감지하지 못함
  • 8. DCT 변환 • DCT 변환 후 저주파 영역(좌상단)에는 큰 값이, 고주파 영역(우하단)에는 주로 작은 값들이 배치 • 고주파 영역 – 주변 픽셀과 차이가 많은 영역 • 저주파 영역 – 주변 픽셀과 차이가 적은 영역
  • 9. 양자화 계수와 지그재그 스캔 • 양자화 계수(Quantization Parameter)로 나눈 다음(손실발생) 지그 재그 스캔을 통해 같은 값들이 연속해서 나오도록 한다 => 부호압 축에 유리 • 압축영상을 복원하는쪽에서는 반대로 역 지그재그 스캔으로 블럭을 복원한 후 QP값을 곱해서 복원한다 • QP값에 따라 영상의 화질이 결정(bitrate)
  • 10. 시간적 압축 • Inter-frame 압축, 영상 프레임 간의 중복 정보 제거 => 프레임 간에 변화된 정보만 추출 (p-frame, b-frame) • 영상을 블럭단위로 나눈다음 해당 블록이 참조 프레임의 어느 블록에 해당되는지 찾 는 방식 (Motion Estimation) • 예측에러(Prediction Error) 등으로 손실 발 생 => i-frame 을 중간중간 넣어줘야함
  • 11. Motion Estimation • ME를 통해 Motion Vector(MV)값을 구한다 • 해당 블록의 MV값만을 압축 • 영상복원은 반대로 이전 프레임에서 해당 블록 에 MV를 더하는 방식으로 복원
  • 12. 부호압축(엔트로피 인코딩) • 가변길이부호화(VLC : Variable Length Coding) 방식으 로 최종 압축할 데이터의 비트스트림을 압축(지그재그 스캔을 마친 블럭데이터), 무손실 압축 • 호프만 코딩에 기초 – 출현빈도가 높은 값에게는 짧은 부호를 할당하고 출현빈도가 낮은 값에게는 긴 부호를 할당 • CAVLC - Context Adaptive Variable Length Coding • CABAC - Context Adaptive Binary Arithmetic Coding • 비트열의 흐름에서 동적으로 부호할당 • CABAC은 CAVLC보다 복잡하고 오래 걸리지만 압축률이 더 좋음
  • 13. 인코딩 Flow • I-frame : input->DCT->quantize->Huffman Coding->output • P-frame : input->ME->MC->DCT->quantize->Huffman Coding- >output • 인코딩은 디코딩을 포함 => 인코딩이 디코딩보다 복잡하다
  • 14. 비디오 프레임 종류 • i-frame과 다음 i-frame 사이의 모든 프레임들을 GOP(Group Of Pictures)라 한다 • b-frame은 네트워크로 전달되는 시스템에서는 일반적으 로 잘 쓰지않는다(파일 인코딩에서 주로 사용) • IPPPP…I 로 인코딩된 상황에서 중간의 P프레임을 디코딩 하려면 앞선 IPPP가 다 필요하다(I←P←P←P←P)
  • 15. H.264 코덱의 역사 • ITU-T 계열의 H.26x 시리즈와 ISO/IEC 계열의 MPEG 시리즈 • H.264 / MPEG4 Part10: AVC – 최신 부호화 기술의 집대성, 1/20 ~ 1/100 압축률, bitrate는 10 kbps ~ 240 Mbps
  • 16. FFMPEG • 현존하는 거의 유일한 오픈소스 코덱 프로젝트 – GPL/LGPL 라이센스, 다양한 플랫폼 지원(윈도우/리눅스/ 안드로이드/iOS 등) • 인코더/디코더/먹서/디먹서/스케일러 등으로 구성 • 다양한 코덱과 파일포멧을 지원 • 현존하는 거의 대부분의 멀티미디어 재생기가 FFMPEG 을 사용중 – VLC/곰플레이어/팟플레이어/KMPlayer 등 • 사용하기 쉽고 응용하기고 쉬움
  • 17. 코덱관련 용어 • 멀티미디어 컨테이너 포멧 – AVI/MP4/MKV 등과 같이 특정 포멧을 가지고 H.264/MPEG4/MP3와 같은 인코딩 스트림을 저장하는 파일 포멧(코덱과는 다른 의미) • 트랜스코딩 – 특정 코덱으로 인코딩된 스트림(네트웍/파일)을 다른 코덱 혹은 해상도를 변환하는 것. 예) H.264->MPEG4, MPEG4- >H.264, 해상도 변환 => 입력영상을 디코딩 후 다시 인코딩 • 프로파일 – 영상 압축을 위한 다양한 방법과 알고리즘들의 집합. 예)H.264 Baseline/Main/Extended Profile • 비트레이트(Bitrate) – 단위 시간당 인코딩 데이터의 출력량 • CBR/VBR – Contant BitRate/Variable BitRate