본문 바로가기
미디어& AWS 클라우드 공부

[영상 코덱 개념] 인코딩/디코딩/PTS/DTS 란?

by Mia_Unnie 2020. 1. 17.

안녕하세요~! 지난 주에 인코더와 플레이어단 스트림 전송에 있어 싱크 관련 영어로 회의하느라 머리가 빙빙한 미아입니다 :-) 오늘은 미디어 공부에서 빠질 수 없는 인코딩/ 디코딩/ 코덱 / PTS / DTS 에 대해 설명 드리겠습니다. 

 

 

인코딩(Encoding)이란?

동영상 데이터의 스트림을 '압축 및 디지털 신호로 변환'하는 하드웨어 혹은 소프트웨어를 뜻합니다. 그래서 인코딩 작업을 하는 하드웨어나 소프트웨어를 "인코더(Encoder)"라고 부릅니다.

소프트웨어 예시로는 흔히들 소싯적에 많이 사용한 [팟인코더]가 있으며, 하드웨어 예시로는 [AWS Elemental Live]가 있습니다.

AWS Elemental Live (라이브 콘텐츠 전용 인코더)

 

디코딩(Decoding)이란?

인코딩 작업을 거쳐 압축 및 디지털 신호로 변환된 디코딩을 통해 데이터를 '압축 풀기 및 영상신호로 변환'하기 위한 하드웨어 혹은 소프트웨어를 뜻합니다. 디코딩 작업을 하는 하드웨어나 소프트웨어를 "디코더(Decoder)"라고 부릅니다.

 

 

코덱(Codec)이란?

인코딩과 디코딩을 수행하기 위한 하드웨어/소프트웨어/알고리즘을 뜻합니다. 특정 코덱으로 인코딩된 영상 파일 재생 시에 해당 코덱의 디코더가 없는 경우 영상과 음성이 올바르게 나오지 않습니다. 예를 들면 영상없이 소리만 나오거나 소리 없이 영상만 나오는 오류가 바로 이런 현상입니다. 그래서 비디오 플레이어엔 웬만한 디코더들이 다 설치되어 있습니다.

 

 

DTS와 PTS 설명을 읽어보기 전에 아래 GOP에 대한 포스팅을 먼저 읽으시면 이해하시는데 도움이 됩니다.

인코딩 - GOP란? (I프레임, B프레임, P프레임)◀클릭 시, 해당 포스팅이 새 창으로 열립니다.

 

 

DTS(Decoding Time Stamp)란?

플레이어가 디코딩 작업에 앞서 영상 데이터 스트림을 수신할 때, 일반적으로 B프레임이 포함된 영상인 경우, I프레임과 P프레임이 먼저 들어오고 그 후에 B프레임이 들어옵니다. 재생 전에 디코딩이 이뤄질 때는 먼저 수신된 데이터의 순서대로 처리하기에 이 디코딩 작업 순서로 표현된 프레임의 시각을 표현한 타임스탬프입니다. 그러나 B프레임의 경우 수신되자마자 디코딩과 재생이 이뤄지기에 B프레임의 경우는 DTS와 PTS값이 동일합니다. 그래서 B프레임에는 DTS는 생략되고 PTS값을 DTS값으로 사용합니다.

 

 

PTS(Presentation Time Stamp)란? 

영상 및 음성의 싱크(동기화)를 위해 재생 시간을 표현한 타임스탬프입니다. 하지만 B프레임이 포함된 영상의 경우 실제 영상 재생 시 플레이어가 I프레임 P프레임을 우선으로 수신한 순서와 다르게 I, B, B, P 순서이기에 이 경우(바로 디코딩 및 재생되는 B프레임만 제외하고) DTS와 PTS의 값은 아래 이미지처럼 상이합니다. 

 

이미지 출처: https://software.intel.com/en-us/forums/media/topic/501639

(위 이미지 기준은 초당 25프레임을 재생(25 fps)이며 프레임당 재생시간은 40밀리초(40 msec per frame)입니다.)

 

 


기타 참고자료 출처

정보통신 기술용어 해설: http://www.ktword.co.kr/abbr_view.php?m_temp1=3505

mesc 관련: https://blog.naver.com/iori3000/80211909844

 

 

댓글