Multimedia: video
video : 일정한 속도로 표시되는 image sequence
digital image : array of pixels, 각각의 픽셀은 비트로 표시됨
coding: 이미지를 인코딩하는데 사용되는 비트 수를 감소시키기 위해 이미지 내부 및 이미지 간 중복성 활용함
- spatial(공간적, 이미지 내부에서)
- temporal(시간적, 한 이미지에서 다음으로)
CBR(constant bit rate): 비디오 인코딩 속도를 고정시킨다.
VBR(variable bit rate): 공간적 및 시간적 코딩 양에 따라 비디오 인코딩 속도가 변경된다.
Streaming stored video
서버-클라이언트 대역폭(bandwidth)은 네트워크 혼잡 수준(network congestion levels)에 따라 달라진다.
혼잡으로 인한 packet loss, delay는 재생 지연을 초래하고 영상 품질이 저하된다.
=> 클라이언트는 비디오의 이른 부분(early part)를 재생하면서, 서버는 비디오의 나중 부분(later part)를 전송한다.
연속 재생 제약 조건(continuous playout constraint) : 클라이언트 비디오 재생 중 재생 타이밍은 원래 타이밍과 맞아야한다. 그러나 네트워크 지연은 가변적이므로, 클라이언트 측 버퍼가 필요하다.
+ 클라이언트가 일시정지, 빨리감기, 되감기, 비디오 이동을 할 때 비디오 패킷이 손실되고 재전송되는 경우도 있다.
Streaming multimedia: DASH (Dynamic, Adaptive, Streaming over HTTP)
서버
- 비디오 파일을 여러 청크로 나눈다.
- 각 청크는 여러 다른 비트율로 인코딩된다.
- 다른 비트율 인코딩은 서로 다른 파일에 저장된다.
- 파일은 다양한 CDN 노드에 복제된다.
- 매니페스트 파일(manifest file) : 클라이언트에게 청크의 위치(URL)을 제공한다.
클라이언트
- 일정 시간마다(periodically) 서버-클라이언트 대역폭을 추정한다.(estimates)
- 매니페스트를 확인하여(consulting), 한 번에 하나의 청크를 요청한다.
- * 현재 대역폭으로 유지할 수 있는 최대 코딩 비트율을 선택한다.
- * 시간에 따라 다른 코딩 비트율과 다른 서버에서 선택할 수 있다. (해당 시간의 대역폭에 따라)
클라이언트의 Intelligence : 클라이언트가 결정한다(determine)
- 청크를 요청할 시기 (버퍼 공백, 오버플로우가 발생하지 않도록)
- 어떤 인코딩 비트율을 요청할지 결정 (대역폭이 더 많이 사용 가능할 때 더 높은 품질 요청)
- 어디서 청크를 요청할지 결정 (클라이언트와 가까운 서버 또는 대역폭이 높은 서버 등)
Streaming video = encoding + DASH + playout buffering
Content distribution networks (CDNs)
수백만 개의 비디오 중에서 선택된 콘텐츠를 수십만 명의 동시 사용자에게 어떻게 스트리밍할까
옵션 1) single large "mega-server"
- single point of failure
- point of network congestion
- long (and possibly congested) path to distant clients
=> 확장할 수 없다.
옵션 2) 여러 지리적으로(geographically) 분산된 위치(CDN)에 비디오의 복사본을 저장하고 제공
- 진입(enter deep): CDN 서버를 다양한 액세스 네트워크로 넓게 분산시킨다.
- * close to users
- bring home: 액세스 네트워크 근처의 POP에서 10개 이상의 대형 클러스터를 작게 만든다.
CDN: CDN 노드에 콘텐츠의 복사본을 저장한다.
가입자는 콘텐츠를 요청하고, 서비스 제공자는 매니페스트를 반환한다.
- 매니페스트를 사용해서 클라이언트는 최대 지원 속도로 콘텐츠를 검색한다.
- 네트워크 경로 혼잡 시, 다른 속도 또는 다른 복사본을 선택할 수 있다.
'학교강의필기장 > 컴퓨터네트워크' 카테고리의 다른 글
컴퓨터네트워크[10]: Multiplexing and demultiplexing (0) | 2023.04.19 |
---|---|
컴퓨터네트워크[9]: Transport-layer services (0) | 2023.04.19 |
컴퓨터네트워크[7]: P2P applications (0) | 2023.04.19 |
컴퓨터네트워크[6]: Domain Name System DNS (0) | 2023.04.19 |
컴퓨터네트워크[5]: E-mail, SMTP, IMAP (0) | 2023.04.19 |