인터넷 비디오
- 스트리밍 비디오 애플리케이션 → 미리 녹화된 비디오를 대상으로 한다.
- 녹화된 비디오는 서버에 저장되어 사용자가 서버에게 온디맨드 요청을 통해 시청
- 예 : 넷플릭스, 유튜브, 아마존, 틱톡 등 많은 인터넷 회사가 비디오 스트리밍 지원
비디오 매체의 특징
- 비디오는 일반적으로 초당 24개 혹은 30개의 이미지로 일정한 속도로 표시
- 비디오는 이미지의 연속이다.
- 비디오는 이미지의 연속이다.
- 압축되지 않은 디지털 인코딩된 이미지는 픽셀 단위로 구성
- 각 픽셀은 휘도와 색상을 나타내는 여러 비트들로 인코딩 됨
- 각 픽셀은 휘도와 색상을 나타내는 여러 비트들로 인코딩 됨
비디오의 중요 특징 - 압축 가능
- 비디오 품질과 비트 전송률은 서로 반비례하다.
- 현대 상용 압축 알고리즘은 원하는 모든 비트 전송률로 비디오 압축 가능
- 비트 전송률이 높을수록 이미지 품질이 좋아지고 사용자 시청 환경이 향상
- 비트 전송률이 높을수록 이미지 품질이 좋아지고 사용자 시청 환경이 향상
- 압축을 이용하여 동일한 비디오를 여러 버전의 품질을 만들 수 있다.
비디오의 중요 특징 - 높은 비트 전송률
- 네트워킹 측면에서의 두드러진 비디오 특징
- 하이엔드(high-end) 동영상의 경우 트래픽과 스토리지 용량이 많이 필요
- 압축된 인터넷 비디오는 고화질 스트리밍을 위해 100 kbps ~ 4 Mbps 이상이 구성
- 4K 스트리밍 → 10 Mbps 이상의 비트 전송률이 필요하다고 예상됨
- 스트리밍 비디오에서 가장 중요한 성능 척도 → 평균 종단 간 처리량
- 네트워크는 압축된 비디오의 전송률 이상의 평균 처리량을 제공해야 함
- 이는 연속재생을 제공하기 위함
- 여기서의 평균 처리량은 스트리밍 애플리케이션에 대한 것
- 네트워크는 압축된 비디오의 전송률 이상의 평균 처리량을 제공해야 함
HTTP 스트리밍 및 DASH
- HTTP 스트리밍에서의 비디오
- HTTP 서버 내의 특정 URL을 갖는 일반적인 파일로 저장됨
사용자가 비디오 시청을 하는 과정
- 비디오 시청을 원하면 클라이언트는 서버에게 TCP 연결을 설립
- 해당 URL에 대한 HTTP GET 요청을 발생
- 서버가 HTTP 응답 메시지 내에서 비디오 파일을 전송
- 비디오 전송을 위해 기본 네트워크 프로토콜 및 트래픽 조건이 허용되어야 한다.
→ 프로토콜 및 트래픽 조건이 허용되어야 HTTP 응답 메시지를 전송한다.
- 비디오 전송을 위해 기본 네트워크 프로토콜 및 트래픽 조건이 허용되어야 한다.
- 클라이언트 쪽에서는 애플리케이션 버퍼에 전송된 바이트가 저장된다.
- 이 버퍼의 바이트 수가 설정된 임계값(threshold)을 초과할 경우
→ 클라이언트 애플리케이션이 재생을 시작함
- 비디오 어플은 클라이언트 어플 버퍼에서 주기적으로 비디오 프레임을 가져옴
→ 가져온 비디오 프레임을 압축해제한 다음 사용자의 화면에 표시
- 비디오 스트리밍 어플은 비디오의 후반 부분에 해당하는
프레임을 수신하고 버퍼링 할 때 비디오를 표시한다.
- 비디오 스트리밍 어플은 비디오의 후반 부분에 해당하는
- 비디오 어플은 클라이언트 어플 버퍼에서 주기적으로 비디오 프레임을 가져옴
DASH(Dynamic Adaptive Streaming over HTTP)
HTTP 스트리밍 문제점
- 모든 클라이언트가 똑같이 인코딩 된 비디오를 전송받음
- 클라이언트들 사이의 가용 대역폭 차이에 상관없이 모두 같음
- 가용 대역폭 차이는 동일한 클라이언트에서도 시간에 따른 차이가 발생함
→ 위 문제점으로 인해 새로운 형태의 HTTP 기반 스트리밍DASH
가 개발
DASH의 개념
- DASH에서 비디오는 여러 가지 버전으로 인코딩 된다.
- 각 버전은 비트율과 품질 수준이 서로 다르다.
- 각 버전은 비트율과 품질 수준이 서로 다르다.
- 클라이언트는 동적으로 서로 다른 버전의 비디오를 비디오 조각(chunk) 단위로 요청
chunk(비디오 조각)
: 몇 초 분량의 길이를 갖는 것- 클라이언트는 HTTP GET 요청을 이용해 다른 버전의 비디오 조각을 매번 선택
- 가용 대역폭이 충분할 때 → 높은 비트율의 비디오 버전을 요청
- 가용 대역폭이 적을 때 → 낮은 비트율의 비디오 버전 요청
DASH를 이용한 통신의 특성
- 서로 다른 인코딩률을 갖는 비디오를 선택할 수 있게 함
- 이는 서로 다른 인터넷 접속 회선을 가진 클라이언트들에게 필요한 것
- 예시 : 서로 다른 인터넷 접속 회선을 가진 클라이언트가 통신할 때
- 저속의 3G 연결을 갖는 클라이언트 → 낮은 품질의 비디오를 받음
- 고속의 광섬유 연결을 갖는 클라이언트 → 높은 품질의 비디오를 받음
- 예시 : 서로 다른 인터넷 접속 회선을 가진 클라이언트가 통신할 때
- 이는 서로 다른 인터넷 접속 회선을 가진 클라이언트들에게 필요한 것
- 클라이언트에게 세션 유지 중, 시간에 따라 변화하는 종단 간 가용 대역폭 적응을 허용
- 이동 사용자에게는 특히 중요한 특성
← 이동 중에는 접속 기지국 상황에 따라 가용 대역폭이 자주 변하기 때문
- 이동 사용자에게는 특히 중요한 특성
매니페스트 파일(manifest file)
매니페스트 파일
: HTTP 서버에 있고, 비트율에 따른 각 버전의 URL을 제공하는 역할- DASH를 사용할 때, 각 비디오 버전은 HTTP 서버에 서로 다른 URL을 가지고 저장됨
- DASH를 사용할 때, 각 비디오 버전은 HTTP 서버에 서로 다른 URL을 가지고 저장됨
- 클라이언트는 먼저 매니페스트 파일을 요청
→ 서버에서 제공되는 다양한 버전에 대해 알 수 있음 - 클라이언트는 원하는 버전의 chunk 데이터를 선택
- 이후, HTTP GET 요청 메시지와 URL과 byte-range를 지정하여 요청
- chunk 데이터를 다운로드하는 동안, 클라이언트는 다음에 선택할 chunk 데이터의 버전을 결정
- 다음 버전 결정에는 측정된 수신 대역폭과 비트율 결정 알고리즘을 이용
- 충분한 분량의 버퍼링 된 비디오와 측정된 수신 대역폭이 큰 경우
→ 고품질의 chunk 데이터를 선택 - 적은 분량의 버퍼링 된 비디오와 수신 대역폭이 작은 경우
→ 낮은 품질의 chunk 데이터를 선택
→ DASH는 클라이언트가 서로 다른 품질 수준을 자유롭게 변화시킬 수 있도록 함
- 충분한 분량의 버퍼링 된 비디오와 측정된 수신 대역폭이 큰 경우
- 다음 버전 결정에는 측정된 수신 대역폭과 비트율 결정 알고리즘을 이용