KR101180540B1 - 스트리밍 서비스 송/수신 장치 및 방법 - Google Patents

스트리밍 서비스 송/수신 장치 및 방법 Download PDF

Info

Publication number
KR101180540B1
KR101180540B1 KR1020110030790A KR20110030790A KR101180540B1 KR 101180540 B1 KR101180540 B1 KR 101180540B1 KR 1020110030790 A KR1020110030790 A KR 1020110030790A KR 20110030790 A KR20110030790 A KR 20110030790A KR 101180540 B1 KR101180540 B1 KR 101180540B1
Authority
KR
South Korea
Prior art keywords
tcp packet
time
timestamp
jitter
arrival
Prior art date
Application number
KR1020110030790A
Other languages
English (en)
Other versions
KR20120041095A (ko
Inventor
정순흥
서광덕
이진영
배성준
강정원
심상우
탕쯔엉꽁
박상택
류원
Original Assignee
연세대학교 산학협력단
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 연세대학교 산학협력단, 한국전자통신연구원 filed Critical 연세대학교 산학협력단
Priority to US13/880,941 priority Critical patent/US20130282871A1/en
Priority to PCT/KR2011/007827 priority patent/WO2012053834A2/ko
Publication of KR20120041095A publication Critical patent/KR20120041095A/ko
Application granted granted Critical
Publication of KR101180540B1 publication Critical patent/KR101180540B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0042Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols

Abstract

스트리밍 서비스의 송신 및 수신을 위한 장치 및 방법이 제공된다. 도착 간격 지터는 스트리밍 서비스를 수신하는 장치에게 도착한 TCP 패킷들 간의 도착 지연 시간 변이이다. 스트리밍 서비스를 수신하는 장치는, TCP 패킷 내의 TS 패킷들이 T-STD 버퍼 모델에 입력되기 이전에 네트워크 지터를 흡수하기 위해, 디-지터 버퍼링 시간을 결정한다. 디-지터 버퍼링 시간에 의해, 스트리밍 서비스를 수신하는 장치에서의 초기 재생 지연 시간이 결정된다.

Description

스트리밍 서비스 송/수신 장치 및 방법{APPARATUS AND METHOD FOR TRANSMITTING/RECEIVING STREAMING SERVICE }
본 발명은 스트리밍 서비스 송/수신 시스템에 관한 것으로, 더 상세하게는 디-지터 버퍼링 시간 추정을 사용하는 프로그레시브 스트리밍 서비스 송/수신 장치 및 방법에 관한 것이다.
인터넷과 같은 인터넷 프로토콜(Internet Protocol; IP) 망을 통해, 비디오-온-디맨드(video on demand; VoD) 서비스를 실시하기 위한 방식으로서, 크게 스트리밍(streaming) 방식 및 다운로딩(downloading) 방식이 있다.
스트리밍 방식의 서비스는, 멀티미디어 페이로드(payload)를 실시간 트랜스포트 프로토콜(Real-time Transport Protocol; RTP) 패킷화 한 후, RTP 패킷을 사용자 데이터그램 프로토콜(user datagram protocol; UDP)에 실어서 전송한다.
그러나, UDP는, 실시간 멀티미디어 전송에는 적합하지만, 전송 도중에 유실된(discarded) 패킷을 재전송(retransmission) 함으로써 서비스 품질(quality of service; QoS)를 향상시킬 수 있는 기능을 제공하지 않는다.
H.264 등과 같은, 디지털 비디오는 프레임들 간의 예측 기반 부호화(prediction based coding)를 사용함으로써 압축된다. 따라서, 디지털 비디오의 패킷들 중 특정 패킷이 유실되면, 유실된 패킷에 의한 오류(error)는 유실된 패킷의 이후에 수신되는 후속 I-프레임(frame)에 의해 차단될 때까지 후속(followed) 비디오 프레임들을 통해 전파된다.
즉, RTP/UDP 기반의 실시간 멀티미디어 스트리밍은 저 지연(low delay)을 요구하는 실시간 서비스에는 적합하지만, QoS의 보장 측면에 있어서는 취약하다는 단점을 갖는다.
다운로드 방식이 사용될 경우, 클라이언트 시스템은 영상 파일 전체를 다운로드 한 뒤에 재생을 시작한다. 따라서, 클라이언트 시스템의 사용자는 고품질의 서비스를 즐길 수 있다. 그러나, 다운로드 방식은 하기의 1) 및 2)와 같은 문제점을 갖는다.
1) 사용자는 긴 다운로드 시간 이후에 영상를 감상할 수 있다.
2) 클라이언트 측은 영상 파일 전체를 다운로드하여 저장할 수 있는 저장 공간을 미리 준비해야 한다.
프로그레시브 스트리밍 서비스는 전송 프로토콜로써 트랜스미션 제어 프로토콜(transmission control protocol; TCP)을 이용한다는 측면에서 다운로드와 유사하다. 또한, 프로그레시브 스트리밍 서비스는 미디어 데이터를 포함하는 파일이 다운로드 되는 도중에 이미 수신된 미디어 데이터를 실시간으로 재생한다는 측면에서는 실시간 스트리밍과 유사하다. 결론적으로, 프로그레시브 스트리밍 서비스는 다운로드 및 스트리밍 양자의 기술의 장점만을 활용하는 기술로 간주될 수 있다.
MPEG 트랜스포트 스트림(transport stream; TS)은 DVB, ISDB, ATSC, DMB 등의 방송망을 통해, 오디오 및 비디오의 압축 데이터를 다중화하고, 다중화된 압축 데이터를 전달하기 위한 전송 프로토콜 표준 규격이다.
프로그레시브 스트리밍 기술을 바탕으로, MPEG TS를 HTTP 및 TCP 프로토콜을 활용함으로써 유무선 IP 망을 통해 전송하는 스트리밍 서비스가 제공될 수 있다.
본 발명의 일 실시에는 도착 간격 지터를 계산하기 위해 필요한 정보를 포함하는 TCP 패킷을 전송하는 스트리밍 서비스 송/수신 장치 및 방법을 제공할 수 있다.
본 발명의 일 실시에는 TCP 패킷의 도착 시각 및 예상 도착 시각에 기반하여 도착 간격 지터를 계산하는 스트리밍 서비스 송/수신 장치 및 방법을 제공할 수 있다.
본 발명의 일 측에 따르면, TCP 패킷의 패이로드 내에 하나 이상의 TS 패킷들을 로드하는 동작, 상기 페이로드 내의 상기 하나 이상의 TS 패킷들 내의 최초의 PCR 정보를 상기 TCP 패킷의 PCR로 설정하는 동작, 상기 PCR에 기반하여 상기 TCP 패킷의 타임스탬프를 계산하는 동작, 상기 TCP 패킷 내에 상기 타임스탬프를 기록하는 동작 및 상기 TCP 패킷을 단말에게 전송하는 동작을 포함하고 상기 타임스탬프는 상기 TCP 패킷의 상기 단말로의 예상 도착 시각인, 스트리밍 서비스 송신 방법이 제공된다.
상기 스트리밍 서비스 송신 방법은, 상기 페이로드 내에 로드된 상기 하나 이상의 TS 패킷들 중 TS 헤더 내에 상기 PCR 정보를 포함하는 TS 패킷이 있는지 여부를 검사하는 단계를 더 포함할 수 있다.
상기 타임스탬프는 상기 페이로드의 첫 번째 바이트가 상기 단말에 도착할 것으로 추정된 시각을 상기 스트리밍 서버의 시스템 클럭 주파수를 사용한 시스템 타임 클럭 카운트 값으로 표현할 수 있다.
상기 타임스탬프는 기본 클럭 및 확장 클럭을 포함할 수 있고, 상기 기본 클럭은 상기 확장 클럭 보다 더 작은 주파수 단위를 사용할 수 있다.
상기 타임스탬프의 비트들의 길이는 상기 단말에서 요구하는 도착 시간 지연 변이의 정밀도에 기반하여 결정될 수 있다.
상기 TCP 패킷 내에 상기 타임스탬프를 기록하는 동작은 상기 TCP 패킷의 헤더 내의 옵션들 필드 내에 상기 타임스탬프를 저장할 수 있다.
본 발명의 다른 일측에 따르면, TCP 패킷의 패이로드 내에 하나 이상의 TS 패킷들을 로드하는 TS 패킷 로드부, 상기 페이로드 내의 상기 하나 이상의 TS 패킷들 내의 최초의 PCR 정보를 상기 TCP 패킷의 PCR로 설정하는 PCR 설정부, 상기 PCR에 기반하여 상기 TCP 패킷의 타임스탬프를 계산하는 타임스탬프 계산부, 상기 TCP 패킷 내에 상기 타임스탬프를 기록하는 타임스탬프 기록부 및 상기 TCP 패킷을 단말에게 전송하는 전송부을 포함하고 상기 타임스탬프는 상기 TCP 패킷의 상기 단말로의 예상 도착 시각인, 스트리밍 서비스 송신 장치가 제공된다.
본 발명의 또 다른 일측에 따르면, 제1 TCP 패킷을 수신하는 동작, 상기 제1 TCP 패킷이 수신된 순간의 시스템 타임 클럭의 제1 클럭 카운트를 측정하는 동작, 상기 제1 TCP 패킷으로부터 상기 제1 TCP 패킷의 제1 타임스탬프를 추출하는 동작, 상기 제1 클럭 카운트, 제1 타임스탬프, 제2 클럭 카운트 및 제2 타임스탬프에 기반하여 디-지터 버퍼링 시간을 계산하는 동작을 포함하고, 상기 제1 타임스탬프는 상기 서버가 예상한 상기 제1 TCP 패킷의 수신 시각이고, 상기 제2 클럭 카운트는 상기 TCP 패킷 이전에 수신된 제2 TCP 패킷이 수신된 순간의 시스템 타임 클럭이고, 상기 제2 타임스탬프는 상기 제2 TCP 패킷으로부터 추출된 상기 서버가 예상한 상기 제2 TCP 패킷의 수신 시각인, 스트리밍 서비스 수신 방법이 제공된다.
상기 제1 클럭 카운트, 제1 타임스탬프, 제2 클럭 카운트 및 제2 타임스탬프에 기반하여 디-지터 버퍼링 시간을 계산하는 동작은, 상기 제1 클럭 카운트 및 상기 제1 타임스템프에 기반하여 제1 TCP 패킷이 경험한 제1 네트워크 지터를 계산하는 동작, 상기 제1 네트워크 지터 및 상기 제2 TCP 패킷이 경험한 제2 네트워크 지터에 기반하여 상기 제2 TCP 패킷 및 상기 제1 TCP 패킷 간의 제1 도착 시간 간격을 계산하는 동작 및 상기 제1 네트워크 지터 및 상기 제1 도착 시간 간격에 기반하여 상기 디-지터 버퍼링 시간을 계산하는 동작을 포함할 수 있다.
상기 제1 네트워크 지터 및 상기 제1 도착 시간 간격에 기반하여 상기 디-지터 버퍼링 시간을 계산하는 동작은, 상기 제2 TCP 패킷의 제2 도착 간격 지터 및 상기 제1 도착 시간 간격에 기반하여 상기 제1 TCP 패킷의 제1 도착 간격 지터를 계산하는 동작 - 상기 도착 간격 지터는 연속적으로 도착하는 패킷들 간의 도착 간격 지연 변이임 -, 상기 제2 TCP 패킷의 제2 도착 간격 분산, 상기 제1 도착 시간 간격 및 상기 제1 도착 시간 간격에 기반하여 상기 제1 TCP 패킷의 제1 도착 간격 분산을 계산하는 동작 - 상기 도착 시간 분산은 상기 도착 시간 간격에 대한 분산임 - 및 싱기 제1 도착 간격 지터 및 상기 제1 도착 간격 분산에 기반하여 상기 디-지터 버퍼링 시간을 계산하는 동작을 포함할 수 있다.
상기 제1 타임스탬프는 상기 제1 TCP 패킷의 헤더 내의 옵션들 필드 내에 있을 수 있다.
상기 스트리밍 서비스 수신 방법은, 상기 디-지터 버퍼링 시간 및 분석 시간 중 최종 디-지터 버퍼링 시간으로 결정하는 동작을 더 포함할 수 있고, 상기 분석 시간은 수신되는 TCP 패킷들이 수신 및 분석되기에 충분한 시간일 수 있다.
상기 스트리밍 서비스 수신 방법은, 상기 디-지터 버퍼링 시간을 상기 스트리밍 클라이언트의 트랜스포트 스트림 시스템 타겟 디코더의 버퍼링 시간으로 설정하는 동작을 더 포함할 수 있다.
본 발명의 또 다른 일측에 따르면, 제1 TCP 패킷을 수신하는 수신부, 상기 제1 TCP 패킷이 수신된 순간의 시스템 타임 클럭의 제1 클럭 카운트를 측정하는 클럭 카운트 측정부, 상기 제1 TCP 패킷으로부터 상기 제1 TCP 패킷의 제1 타임스탬프를 추출하는 타임스탬프 추출부 및 상기 제1 클럭 카운트, 제1 타임스탬프, 제2 클럭 카운트 및 제2 타임스탬프에 기반하여 디-지터 버퍼링 시간을 계산하는 디-지터 버퍼링 시간 계산부를 포함하고, 상기 제1 타임스탬프는 상기 서버가 예상한 상기 제1 TCP 패킷의 수신 시각이고, 상기 제2 클럭 카운트는 상기 TCP 패킷 이전에 수신된 제2 TCP 패킷이 수신된 순간의 시스템 타임 클럭이고, 상기 제2 타임스탬프는 상기 제2 TCP 패킷으로부터 추출된 상기 서버가 예상한 상기 제2 TCP 패킷의 수신 시각인, 스트리밍 서비스 수신 장치가 제공된다.
도착 간격 지터를 계산하기 위해 필요한 정보를 포함하는 TCP 패킷을 전송하는 스트리밍 서비스 송/수신 장치 및 방법이 제공된다.
TCP 패킷의 도착 시각 및 예상 도착 시각에 기반하여 도착 간격 지터를 계산하는 스트리밍 서비스 송/수신 장치 및 방법이 제공된다.
도 1은 본 발명의 일 예에 따른 HTTP 기반의 프로그레시브 스트리밍 서비스의 개요를 설명한다.
도 2는 본 발명의 일 예에 따른 MPEG TS 기반의 프로그레시브 스트리밍 서비스 개요를 나타낸다.
도 3은 본 발명의 일 예에 따른 MPEG TS 패킷의 구조를 도시한다.
도 4는 본 발명의 일 예에 따른 표준 T-STD 버퍼 모델을 설명한다.
도 5는 본 발명의 일 예에 따른 IP 망에서의 패킷 도착 지연 시간의 변화를 설명한다.
도 6은 본 발명의 일 예에 따른 n 개의 MPEG TS 패킷들로 구성되는 TCP 페이로드 포맷을 도시한다.
도 7은 본 발명의 일 예에 따른 PCR 정보를 헤더에 포함하는 TS 패킷들을 TCP 페이로드에 담고 있는 TCP 패킷의 구조를 나타낸다.
도 8은 본 발명의 일 예에 따른 TCP 패킷이 수신측에 도착하는 시각을 송신측에서 예측하기 위한 타이밍 모델을 나타낸다.
도 9는 본 발명의 일 실시예에 따른 송신측의 동작 방법을 나타내는 흐름도이다.
도 10은 본 발명의 일 예에 따른 TCP 패킷의 헤더(310)의 기본적인 구조 및 선택적으로 활용될 수 있는 확장 필드의 구조를 나타낸다.
도 11은 본 발명의 일 실시예에 따른 송신측(1100)의 구조도이다.
도 12는 본 발명의 일 실시예에 따른 수신측의 동작 방법을 나타내는 흐름도이다.
도 13은 본 발명의 일 예에 따른 디-지터 버퍼링이 포함된 T-STD 버퍼 모델을 나타낸다.
도 14는 본 발명의 일 예에 따른 수신측(1400)의 구조도이다.
도 15는 본 발명의 일 예에 따른 설정된 디-지터 버퍼링에 의한 미디어 재생 시간의 지연을 나타낸다.
이하에서, 본 발명의 일 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 예에 따른 HTTP 기반의 프로그레시브 스트리밍 서비스의 개요를 설명한다.
단말(즉, 클라이언트(client))(110)은 원하는 콘텐츠 파일에 대한 서비스 요청을 서버(120)에게 알리기 위해 HTTP 프로토콜의 "GET Request"(130)를 전송한다.
서버(120)는 콘텐츠 파일을 단말(110)로 전송한다. 서버(120)는 QoS 보장을 위해 콘텐츠 파일을 전송하기 위한 전송 프로토콜로써 TCP를 사용한다.
콘텐츠 파일은 TCP에 의해 단말(110)에 도착한다.
단말(110)은 초기에 도착한 콘텐츠 파일의 일부 데이터를 버퍼링한다.
단말(110)은, 기존의 다운로드 방식의 문제점인 서비스 지연 시간을 감소시키기 위해, 단말(110)에 도착한 TCP 패킷이 일정량만큼 버퍼에 찼을 때부터 실시간으로 도착한 TCP 패킷 내의 데이터를 디스플레이(display)한다. 즉, 단말(110)은 버퍼링된 콘텐츠 파일의 일부 데이터를 파싱(parsing)하여 비디오 및 오디오를 재생(playout)한다.
따라서, HTTP 기반의 프로그래시브 스트리밍 서비스는 콘텐츠 파일의 모든 데이터가 단말(110)에 도착한 후에야 비로소 콘텐츠 파일이 재생되는 다운로드(download) 방식과 차별화된다. 또한, HTTP 기반의 프로그래시브 스트리밍 서비스는 기존의 다운로드 방식의 문제점인 서비스 지연 시간을 단축시킬 수 있으며, QoS를 보장할 수 있다.
기존의 프로그레시브 스트리밍 서비스에서 전송되는 콘텐츠 파일은, 압축된 비디오 및 오디오를 하나의 파일로 저장하기 위해서, 퀵타임(QuickTime)(.mov), MPEG-4(.mp4), 윈도우 미디어 비디오(Windows Media Video)(.wmv), 플래쉬 비디오(Flash Video)(.flv) 및 3GPP(.3gp) 등의 파일 포맷 규격에 의해 생성된다.
이러한 파일 포맷 규격들은 ISO/IEC MPEG에서 개발한 ISO 기반 미디어 파일 포멧(ISO based media file format)(ISO/IEC 14496-12 (MPEG-4 Part 12))에 기반하여 확장된 것이다. 이러한 다양한 파일 포맷 규격들을 바탕으로 제작된 멀티미디어 콘텐츠 파일은 프로그레시브 스트리밍 서비스에 의해 유무선 IP 망을 통해 광범위하게 제작, 배포 및 유통된다.
한편, 방송 및 통신의 융합(convergence)에 의해, 방송 서비스를 IP망을 통해 제공하는 인터넷 TV, IPTV 서비스 등이 확대되었다.
기존의 mov, mp4, wmv, flv, 3gp 등의 파일 포맷 대신, MPEG TS 규격으로 제작된 방송용 콘텐츠를 사용하는 프로그레시브 스트리밍이 제공될 수 있다.
도 2는 본 발명의 일 예에 따른 MPEG TS 기반의 프로그레시브 스트리밍 서비스 개요를 나타낸다.
도 2는 MPEG TS 규격에 의해 제작된 멀티미디어 콘텐츠를 HTTP 프로그래시브 스트리밍에 의해 제공하는 서비스의 개요를 나타낸다.
HTTP 프로그레시브 스트리밍 서버는 MPEG TS 방송용 콘텐츠로서 사용하기 위해 다양한 멀티미디어 인코더로 압축된 비디오/오디오 압축 데이터를 MPEG TS 규격으로 제작(즉, 인코딩)할 수 있다. 제작된 MPEG TS 콘텐츠는 HTTP 프로그레시브 스트리밍을 통해 서비스될 수 있다.
또한, HTTP 프로그레시브 스트리밍 서버는 기존의 파일 포맷 규격으로 제작된 콘텐츠 파일을 MPEG TS로 변환함으로써 획득한 MPEG TS 콘텐츠를 HTTP 프로그레시브 스트리밍 서비스에 활용할 수 있다.
HTTP 프로그래시브 스트리밍을 사용하는 클라이언트는 단순히 HTTP GET 요청(Request)을 통해 원하는 MPEG TS 콘텐츠를 서버에게 요청한다.
후술될 본 발명의 실시예들에서는, 프로그레시브 스트리밍 서비스에 의해 MPEG TS 콘텐츠가 IP 망(예컨대, 유무선 인터넷)을 통해 클라이언트로 전송될 때, MPEG TS 패킷의 헤더에 포함된 프로그램 클럭 레퍼런스(Program Clock Reference; PCR) 클럭(clock) 정보를 활용함으로써 네트워크 지터(jitter)를 효과적으로 추정하는 방법과 장치가 개시된다. 네트워크 지터는 수신측에 도착하는 TCP 패킷들 간의 도착 시간 지연 변이(delay variation)이다.
본 발명의 실시예들은, 네트워크 지터에 기반하여 패킷들 간의 도착 간격 지연 변이(delay variation in arrival time)인 도착 간격(inter-arrival) 지터를 추정할 수 있다.
추정된 패킷의 도착-내 지터를 바탕으로, 수신측의 트랜스포트 스트림 시스템 타겟 디코더(Transport Stream System Target Decoder; T-STD) 버퍼 모델을 설계함에 있어서, 네트워크 지터를 흡수하기 위해 요구되는 디-지터 버퍼링의 적합한 크기가 결정될 수 있다.
단말의 디-지터 버퍼링은, 첫번째 패킷이 수신 측에 도착하였을 때 수신 측이 바로 재생 과정을 시작하지 않게 함으로써 뒤에 도착하게 되는 패킷들 과의 도착 시간에 있어서의 차이를 흡수한다. 따라서, 디-지터 버퍼링은, 패킷들 간의 원래의 시간 간격이 유지될 수 있도록, 수신 측이 패킷들을 어느 정도 버퍼에 모아둔 후에 재생을 시작할 수 있게 한다.
따라서, 디-지터 버퍼링의 길이는, 첫 번째 패킷이 수신 측에 도착한 후, 수신 측이 본격적인 비디오 및 오디오 재생 과정을 수행하기 이전에, 상기의 첫 번째 패킷이 파일 버퍼(file buffer) 내에서 기다려야 하는 시간을 결정한다.
디-지터 버퍼링 시간의 크기가 너무 작게 설정된 경우, 네트워크 지터들을 흡수하기 위해 요구되는 충분한 시간적 여유가 제공될 수 없다. 따라서, 수신 측의 재생 후, 이른 시간 내에 버퍼 언더플로우(underflow)의 문제가 발생할 가능성이 크다. 이는, 송신측(sender) 및 수신측(receiver) 간의 스트리밍 도중에 수신 측에서의 잦은 리버퍼링 (rebuffering)을 유발한다. 이러한 리버퍼링은 재생의 중단을 초래하여 서비스 품질을 심각하게 저하시킨다.
반대로, 디-지터 버퍼링 시간의 크기가 너무 크게 설정된 경우, 디-지터 버퍼링 직후에 시작되는 초기 재생(initial playout) 과정이 버퍼링의 크기에 비례하여 지연된다. 따라서, 사용자가 겪는 서비스에 대한 레이턴시(latency)가 증가한다.
본 발명의 실시예들은, MPEG TS 기반의 프로그레시브 스트리밍 서비스에서 TCP 패킷의 도착 간격 지터 추정을 통해, 도착 간격 지터를 흡수하기 위해 필요한 적합한 디-지터 버퍼링 시간의 크기 및 상기 디-지터 버퍼링의 크기에 대응하는 초기 재생 지연 시간(initial playout delay)을 결정하는 방법과 장치를 개시한다.
초기 재생 지연 시간은 첫 번째 패킷이 수신측에 도착한 후, 상기의 첫 번- 패킷이 T-STD 버퍼 모델로 패킷이 전달되기 이전에 TCP의 파일 버퍼에서 디-지터 버퍼링을 위해 머무르는 시간에 해당한다. 따라서, 초기 재생 지연 시간은 수신된 미디어(또는, 콘텐츠)에 대한 초기 재생 시점을 결정한다.
도 3은 본 발명의 일 예에 따른 MPEG TS 패킷의 구조를 도시한다.
MPEG TS 패킷(300)은 188 바이트들 크기의 고정된 길이의 패킷이다.
MPEG TS는 MPEG TS 패킷(300)의 연속적인 스트림이다.
도 3에서, MPEG TS 패킷(300)의 헤더(310) 및 페이로드(320)의 구조가 도시되었다. 또한, 헤더(310) 내의 필드들이 계층적으로 도시되었다. 필드 아래의 숫자는 필드의 크기(비트)를 나타낸다.
헤더(310)는 기본적으로 4 바이트 크기(sync byte 필드 내지 continuity counter 필드)이다. 다양한 확장된 정보를 전달하기 위해 존재하는 adaptation 필드 및 optional 필드의 유무에 따라, 헤더(310)의 크기가 커질 수 있다.
MPEG TS는 디지털 방송 서비스에서 전송되는 비디오 및 오디오 압축 데이터를 효과적으로 다중화(multiplexing)하여 전달하기 위한 규격이다.
압축된 비디오/오디오의 기초(elementary) 스트림은 패킷화된 기초 스트림(packetized elementary stream; PES) 패킷화된다. PES 패킷은 188 바이트 크기의 고정된 길이의 TS 패킷들으로 잘게 분할되고, 분할된 TS 패킷들은 비디오 및 오디오가 적절히 다중화되어 전송된다.
도 4는 본 발명의 일 예에 따른 표준 T-STD 버퍼 모델을 설명한다.
MPEG TS는 통상적으로 디지털방송 서비스를 목적으로 개발된 규격이다. 따라서, TS 패킷들은 채널 품질이 비교적 안정적인 서킷 스위치 망(Circuit switched network)인 방송망을 통해 수신기에 전달된다. 따라서, MPEG TS 패킷들이 전송 채널에서 경험하는 패킷 지연 시간은 비교적 짧고 일정하다. 또한, 수신기에 도착한 TS 패킷들을 순차적으로 처리하기 위한 타이밍 버퍼 모델(timing buffer model)도 효과적으로 적용될 수 있다.
MPEG 시스템 표준 (ISO/IEC 13818-1 (Part 1))에서는, MPEG TS를 처리하기 위한 수신측에서의 타이밍 버퍼 모델을 트랜스포트 스트림 시스템 타겟 디코더(Transport Stream System Target Decoder; T-STD) 버퍼 모델이라고 부른다.
도 4에서, MPEG TS로 다중화되어 수신되는 비디오, 오디오 및 시스템 정보 관련 TS 패킷들을 역다중화하고, 역다중화된 스트림들이 각각 순차적으로 버퍼를 거치게하는 표준 T-STD 버퍼 모델의 구조가 개시되었다.
MPEG TS는, 방송 망 또는 비동기 전송 모드(Asynchronous Transfer Mode; ATM) 망과 같은, 비교적 대역폭 품질이 높고 전달 지연이 낮은 서킷 스위치 망(circuit switched network)을 통해 멀티미디어 데이터를 전달하는 것을 목표로 규격이 개발되었다.
따라서, IP 망과 같은 패킷 스위치 망(packet switched network)인 인터넷을 통해 MPEG TS를 전송하기 위해서는, 인터넷의 고질적인 문제점인 패킷들 간의 도착 지연 시간 변이(delay variation in arrival time)가 정확하게 추정될 것이 요구된다. 또한, 방송망을 통한 MPEG TS 전송에 적합하게 설계된 도 4의 표준 T-STD 모델도 이러한 추정을 바탕으로 수정될 것이 요구된다.
IP 망에 기반한 유무선 인터넷을 통해 패킷들이 전달될 경우, 기존의 방송망을 통해 패킷들이 전달될 경우와 달리, 패킷들 각각이 거치게 되는 라우팅 경로가 서로 상이할 수 있다. 또한, 패킷들 각각이 거치는 라우터들 마다 처리해야 할 트래픽의 양 및 처리 시간이 서로 상이하기 때문에 패킷들 각각의 목적지 도착 시간들이 서로 상이할 수 있다.
후술될 본 발명의 실시예는, MPEG TS가 유무선 인터넷 환경에서 프로그레시브 스트리밍 서비스를 통해 클라이언트로 전달될 때 발생하는 TCP 패킷들 간의 도착 지연 시간 변이를 정확하게 추정하는 방법을 개시한다. 또한, 후술될 본 발명의 실시예는 추정된 도착 지연시간 변이를 바탕으로 수정된 T-STD 모델을 개시한다.
도 5는 본 발명의 일 예에 따른 IP 망에서의 패킷 도착 지연 시간의 변화를 설명한다.
도 5는, 패킷들이 일반적인 IP 망을 통해 전달될 때, 패킷들이 겪게 되는 도착 지연 시간에 있어서의 다이내믹한 변동의 예를 나타내고 있다.
도 5에서, h 바이트 크기의 패킷들이 IP 망을 통해 전송된다.
패킷들은 IP 망을 거치면서 x1, x2 및 x3만큼의 전송 지연(transmission delay)을 겪고, t1, t2 및 t3 시점(time instant)에 각각 수신측에 도착하였다.
그런데, 시간 x1 및 시간 x2는 서로 동일하지만, 시간 x3는 x1 및 x2 보다 더 크다. 따라서, t2 및 t3 사이에는 b 초만큼의 도착 지연 시간의 변이(variation)가 발생한다. 이러한 변이와 같은, 재생 시간 갭(playout gap)이 제거되어야지만 T-STD 버퍼 모델 기반의 디코더가 버퍼 오버플로우(overflow) 및 버퍼 언더플로우(underflow)를 겪지 않고 원활하게 동작한다.
따라서, 도착한 패킷들이 디코더로 전달되기 이전에 이러한 시간적 갭을 흡수하기 위해, 디-지터 버퍼링과 같은 별도의 버퍼링 과정을 통한 재생 시간 지연(playout delay)이 요구된다.
이러한 별도의 버퍼링 과정에 필요한 적합한 크기를 결정하기 위해서는, 패킷들 간의 도착 시간 지연 변이를 정확하게 추정할 수 있는 방법이 요구된다.
디-지터 버퍼링의 크기가 너무 작으면, 버퍼 언더플로우의 위험이 증가하여 잦은 리버퍼링이 발생한다. 반대로, 디-지터 버퍼링의 크기가 너무 크면, 도착한 데이터에 대한 버퍼링 시간이 길어지기 때문에, 서비스의 레이턴시(latency)가 발생하여 서비스 품질이 저하된다.
이러한 문제를 해결하기 위해, 후술될 본 발명의 실시예에서는, 수신 측에서 프로그램 클럭 레퍼런스(program clock reference; PCR) 값을 활용함으로써 도착-간 지터(inter-arrival jitter)를 효과적으로 추정할 수 있는 방법 및 장치를 개시한다. 도착-간 지터는 패킷들 간의 도착 지연 시간의 변이이다.
PCR은 TCP 패킷에 실리는 MPEG TS 패킷 헤더 내에 존재할 수 있다. TS 패킷 내에 기록된 PCR 정보를 활용함으로써 도착-간 지터를 추정할 수 있는 방법 및 장치의 계산 복잡도 및 구현 복잡도는 낮다.
도 6은 본 발명의 일 예에 따른 n 개의 MPEG TS 패킷들로 구성되는 TCP 페이로드 포맷을 도시한다.
MPEG TS 패킷은 188바이트의 고정된 크기를 갖는다. 따라서, 여러 개의 TS 패킷들이 하나의 TCP 패킷의 페이로드에 실릴 수 있다. 이더넷(Ethernet)의 최대 전송 유닛(maximum transfer unit; MTU)의 크기가 1500 바이트임을 감안하면, 이론적으로 최대 7개의 TS 패킷들이 TCP의 페이로드에 실릴 수 있다.
도 6에서, n 개의 TS 패킷들을 하나의 TCP 패킷의 페이로드에 사상 (mapping)하는 TCP 페이로드 포맷이 도시되었다.
전송단 및 수신단에서 사용되는 시스템 타임 클럭(System Time Clock; STC)들 간의 동기화에 사용되는 시간 정보를 전달하기 위해, TS 패킷의 헤더에는 PCR이 존재한다.
PCR의 값은 시스템 인코더에서의 시각을 27 MHz의 시스템 클럭 주파수(system_clock_frequency; SCF)로 샘플링한 값이다.
PCR 클럭은 총 42 비트로 구성될 수 있다. PCR 클럭은 90 KHz(즉, SCF/300) 단위로 표현되는 33 비트 길이의 PCR_base 및 27 MHz 단위(즉, SCF)로 표현되는 9비트의 PCR_ext로 구성될 수 있다.
PCR은 전송단 및 수신단 간의 STC 동기화를 지속적으로 유지하기 위해, 통상적으로 100 ms 이내에 주기적으로 전송된다.
따라서, TCP 패킷의 페이로드 포맷을 구성하는 TS 패킷들 중 PCR 정보를 헤더에 포함하는 TS 패킷이 존재할 수 있다.
도 7은 본 발명의 일 예에 따른 PCR 정보를 헤더에 포함하는 TS 패킷들을 TCP 페이로드에 담고 있는 TCP 패킷의 구조를 나타낸다.
도 7에서, TCP(n)(710) 및 TCP(n+1)(750)의 페이로드 포맷들이 각각 도시되었다.
TCP(n)(710)은 헤더 내에 PCR 정보를 포함하는 TS 패킷들을 TCP 페이로드에 담고 있는 n 번째 TCP 패킷이다.
TCP(n+1)(750)은 헤더 내에 PCR 정보를 포함하는 TS 패킷들을 TCP 페이로드에 담고 있는 n+1 번째 TCP 패킷이다.
즉, TCP(n) 및 TCP(n+1)은 헤더 내에 PCR 정보를 포함하는 TS 패킷을 하나 이상 TCP 페이로드 내에 포함하면서, 전송 순서가 순차적으로 이웃하는 2 개의 TCP 패킷들이다.
후술될 본 발명의 실시예에서는, 수신측에 도착한 TCP 패킷의 도착 시간 지연 변이를 추정하기 위하여 TCP 페이로드에 포함된 PCR 정보를 사용하는 방법을 개시한다.
도 8은 본 발명의 일 예에 따른 TCP 패킷이 수신측에 도착하는 시각을 송신측에서 예측하기 위한 타이밍 모델을 나타낸다.
n번째 TCP 패킷인, TCP(n)은 도 7을 참조하여 전술된 것과 같은 포맷으로, 복수 개의 연속적인 TS 패킷들을 페이로드 내에 포함한다. 여기서, n은 0이상의 정수이다.
도 8의 가로 축(horizontal axis)은 수신측에 TCP 패킷이 도착하는 이론적인 시각 및 이에 대응하는 TCP 타임스탬프 값을 나타낸다. 세로 축(vertical axis)은 수신측으로 전송되는 연속적인 데이터 바이트들 각각의 인덱스 값을 나타낸다.
TCP(n)은 PCR 정보를 포함하는 첫 번째 TS 패킷의 PCR 값을 TCP(n)을 대표하는 PCR 값인 PCR(n)으로 활용한다.
n은 TCP의 인덱스이다. 즉, TCP(n)에서 n의 값이다.
PCR(n)은 TCP(n) 내에서의 첫 번째 PCR의 인덱스이다.
in은 PCR(n)의 바이트 인덱스이며, in+1은 PCR(n+1)의 바이트 인덱스이다.
i번째 데이터 바이트가 수신측에 도착하는 시각 t(i)는 하기의 수학식 1에 따라 추정될 수 있다.
Figure 112011024396392-pat00001
여기서, R(n)은 PCR(n) 및 PCR(n+1) 클럭 사이의 데이터 전송률(즉, 트랜스포트 스트림의 트랜스포트 비율(transport rate))이다. R(n)은 하기의 수학식 2에 따라 계산될 수 있다.
Figure 112011024396392-pat00002
TCP(n+1)의 페이로드의 첫 번째 바이트가 수신측에 도착하는 시각 t(n+1)은 하기의 수학식 3에 따라 계산될 수 있다.
Figure 112011024396392-pat00003
여기서, I는 TCP(n+1) 내에 포함되는 모든 데이터 중, PCR(n+1)의 정보를 나타내는 마지막 비트를 포함하는 바이트보다 앞서 위치하여 전송된 모든 데이터의 크기를 바이트 단위로 나타낸 것이다.
즉, t(n+1)은 PCR(n+1), I 및 R(n)에 기반하여 계산된다.
도 9는 본 발명의 일 실시예에 따른 송신측의 동작 방법을 나타내는 흐름도이다.
송신측은 스트리밍 서비스 송신 장치이며, 수신측은 스트리밍 서비스 수신 장치이다.
동작들(910 내지 970)은, 송신측이 수행하는 스트리밍 서비스 송신 방법을 나타낸다.
동작(910)에서, TCP(n+1) 내에 하나 이상의 TS 패킷들이 매핑된다. 즉, TCP(n+1)의 페이로드 내에 하나 이상의 TS 패킷들이 로드된다.
동작(920)에서, TS 헤더 내에 PCR 정보를 포함하는 TS 패킷이 TCP(n+1)의 페이로드 내에 존재하는지 여부가 검사된다. 즉, TCP(n+1)의 페이로드 내에 로드된 하나 이상의 TS 패킷들 중 TS 헤더 내에 PCR 정보를 포함하는 TS 패킷이 있는지 여부가 검사된다.
TS 헤더 내에 PCR 정보를 포함하는 TS 패킷이 TCP(n+1)의 페이로드 내에 존재할 경우, 동작(930)이 수행되고, 그렇지 않을 경우 동작(960)이 수행된다.
즉, TCP(n+1)의 페이로드 내의 하나 이상의 TS 패킷들의 헤더들에 PCR 정보가 기록되지 않은 경우, TCP(n+1)에 대해서는 후술될 TCP 타임스탬프가 계산 및 기록되지 않는다.
동작(930)에서, PCR(n+1)이 설정된다.
TCP(n+1)의 페이로드 내의 하나 이상의 TS 패킷들 내의 최초의 PCR 정보가 TCP(n+1)의 PCR(n+1)로 설정된다.
동작(940)에서, TCP(n+1)의 타임스탬프 TCPt(n+1)가 계산된다.
타임스탬프 TCPt(n+1)는 이론적으로 예상된 TCP(n+1)의 수신측으로의 예상 도착 시각이다.
TCP의 타임스탬프는 TCP 패킷 스트림에서, 스트리밍 데이터에 대한 시각 기준 값을 나타낼 수 있다. 상기의 시각 기준 값은 PCR이 유도되는 STC에 기반하여 계산될 수 있다.
TCPt(n+1)는 도 8의 t(n+1)에 해당하는 시각(즉, TCP(n+1)의 페이로드의 첫 번째 바이트가 수신측에 도착할 것으로 추정된 시각)을, 27MHz SCF를 사용한 STC의 클럭 카운트 값으로 표현한 것일 수 있다.
TCPt(n+1)는, PCR(n+1)과 마찬가지로, 기본(base) 클럭 TCPt_base(n+1)및 확장(extension) 클럭 TCPt_ext(n+1)으로 나뉘어질 수 있다. 즉, TCPt(n+1)는 기본 클럭 및 확장 클럭을 포함할 수 있다.
기본 클럭은 확장 클럭 보다 더 작은 주파수 단위를 사용할 수 있다.
기본 클럭은 90KHz(즉, SCF/300) 단위로 표한될 수 있다. 확장 클럭은 27Mhz(즉, SCF) 단위로 표현될 수 있다.
타임스탬프 TCPt(n+1), 기본 클럭 TCPt_base(n+1) 및 확장 클럭 TCPt_ext(n+1)은 하기의 수학식 4에 따라 계산될 수 있다.
Figure 112011024396392-pat00004
즉, TCPt(n+1), TCPt_base(n+1) 및 TCPt_ext(n+1)은 시스템 클럭 주파수 및 t(n+1)에 기반하여 계산될 수 있다. TCPt(n+1)는 27MHz의 정밀도를 갖는다.
수학식 4에 의해, TCPt_base(n+1)는 총 33 비트들의 길이로 표현될 수 있고, TCPt_ext(n+1)는 총 9 비트들의 길이로 표현될 수 있으며, TCPt_base(n+1) 및 TCPt_ext(n+1)를 합한 TCPt(n+1)는 PCR과 마찬가지로 총 42 비트들의 길이로 표현될 수 있다.
TCPt(n+1)가 최대값에 도착한 경우 TCPt(n+1)이 다시 0으로 리셋(reset)되는 모듈로(modulo) 연산이 TCPt(n+1)의 계산을 위해 사용될 수 있다.
90 KHz 단위의 클럭으로 시각을 표현했을 때 발생하는 최대의 오차는
Figure 112011024396392-pat00005
이다.
따라서, 응용의 요구에 따라, 도착 시각 지연 변이의 정밀도가 11μs를 초과하여도 무방할 경우에는 TCPt_base(n+1)만이 사용될 수도 있다. TCPt_base(n+1)만이 사용됨에 인하여 발생할 수 있는 최대 11μs의 오차는 도착 시각 지연 변이 자체에 포함된다.
반면, 도착 시간 지연 변이의 정밀도에 있어서, 11μs의 오차가 허용될 수 없는 응용에서는, 42비트들의 완전한 길이(full length)의 TCPt(n+1)가 사용될 수 있다.
즉, TCPt(n+1)의 비트들의 길이는 수신측에서 요구하는 도착 시간 지연 변이의 정밀도에 기반하여 결정될 수 있다.
동작(950)에서, TCPt(n+1)가 TCP(n+1) 내에 기록된다.
TCPt(n+1)는 TCP(n+1)의 헤더 내에 저장될 수 있으며, 헤더 내의 옵션들(options) 필드 내에 저장될 수 있다.
TCPt(n+1)를 TCP(n+1)의 헤더 내에 저장하는 구체적인 방법이 도 10을 참조하여 하기에서 상세히 설명된다.
동작(960)에서, TCPt(n+1)가 수신측으로 전송된다.
동작(970)에서, 다음 TCP 패킷이 처리되기 위해 n이 1 증가하고, 동작(910)이 다시 수행된다.
본 실시예에서, TCP 패킷을 생성 및 전송하는 송신측은 스트리밍 서버일 수 있으며, HTTP 스트리밍 서버일 수 있다. 또한, TCP 패킷을 수신하는 수신측은 클라이언트, 단말일 수 있다. 수신측의 HTTP 스트리밍을 통해 TCP 패킷을 수신할 수 있다.
앞서 도 1 내지 도 8을 참조하여 설명된 본 발명의 일 실시예에 따른 기술적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
도 10은 본 발명의 일 예에 따른 TCP 패킷의 헤더(310)의 기본적인 구조 및 선택적으로 활용될 수 있는 확장 필드의 구조를 나타낸다.
기본적으로, TCP 패킷의 헤더(310)는 20 바이트의 크기를 갖는다. 또한, TCP 패킷은 추가적인 정보를 포함하기 위해 옵션들(Options) 필드(1010)를 활용함으로써 최대 32 바이트까지 헤더 정보를 추가할 수 있다.
옵션들 필드(1010)의 추가 여부 및 크기는 데이터 옵셋(1020)(헤더의 길이를 나타냄) 값을 통해 지정될 수 있다.
도 9를 참조하여 전술된 실시예에서는, 계산된 TCP 타임스탬프 값을 옵션들 필드(1010)에 추가할 수 있다.
옵션들 필드는 크게 종류(Kind), 길이(Length), 및 데이터(Data) 등의 3가지의 필드들로 구성될 수 있다.
1바이트 크기의 종류 필드는 용도를 나타낸다.
1바이트 크기의 길이 필드는 현재의 종류 필드에 해당하는 옵션들 필드의 전체 크기를 나타낸다.
데이터 필드는 종류 필드가 나타내는 용도의 목적을 위해 필요한 실제 데이터를 포함한다.
도 11은 본 발명의 일 실시예에 따른 송신측(1100)의 구조도이다.
송신측(110)은 스트리밍 서비스 송신 장치(예컨대, 스트리밍 서버)이다.
송신측(1100)은 TS 패킷 로드부(1110), PCR 설정부(1120), 타임스탬프 계산부(1130), 타임스탬프 기록부(1140) 및 전송부(1150)를 포함한다.
TS 패킷 로드부(1110)는 동작(910), 동작(920) 및 동작(970)을 수행한다. 예컨대, TS 패킷 로드부(1110)는 TCP 패킷의 패이로드 내에 하나 이상의 TS 패킷들을 로드한다.
PCR 설정부(1120)는 동작(930)을 수행한다. 예컨대, PCR 설정부(1120)는 페이로드 내의 하나 이상의 TS 패킷들 내의 최초의 PCR 정보를 TCP 패킷의 PCR로 설정한다.
타임스탬프 계산부(1130)는 동작(940)을 수행한다. 예컨대, 타임스탬프 계산부(1130)는 PCR에 기반하여 TCP 패킷의 타임스탬프를 계산한다.
타임스탬프 기록부(1140)는 동작(950)을 수행한다. 예컨대, 타임스탬프 기록부(1140)는 TCP 패킷 내에 계산된 타임스탬프를 기록한다.
전송부(1150)는 동작(960)을 수행한다. 예컨대, 전송부(1150)는 TCP 패킷을 단말에게 전송한다.
도 12는 본 발명의 일 실시예에 따른 수신측의 동작 방법을 나타내는 흐름도이다.
동작들(1210 내지 1295)은, 수신측이 수행하는 스트리밍 서비스 수신 방법을 나타낸다.
수신측은 도 9를 참조하여 설명된 송신측에서 전송한 TCP 패킷을 수신한다. 수신측은 TCP 패킷에 실려서 전송되는 TCP 타임스탬프 TCPt(n+1)의 값을 활용한다.
즉, 이론적인 수신측 도착 시각인 TCPt(n+1)의 값 및 수신측의 T-STD로의 실제 도착 순간의 STC 클럭의 카운트 값 간의 차이를 통해, 수신측은 IP 망을 통해 TCP 패킷이 전송되면서 겪게되는 도착 시각의 지연 변이를 추정할 수 있다.
동작(1210)에서, TCP 패킷을 수신한다. 수신된 TCP 패킷은 n+1번째 패킷이다. n+1번째 TCP 패킷을 제1 TCP 패킷으로 명명한다. 또한, n+1번째 패킷 이전에 수신된 n번째 패킷을 제2 TCP 패킷으로 명명한다. 또한, 후술된 제1 TCP 패킷의 클럭 카운트는 제1 클럭 카운트로 명명될 수 있다.
동작(1220)에서, 클럭 카운트 TCPa(n+1)이 측정된다.
TCPa(n+1)은 n+1 번째 TCP 패킷이 수신된 순간의 수신측 STC의 클럭 카운트 값이다. 즉, TCPa(n+1)은 제1 TCP 패킷의 클럭 카운트이다. STC는 27Mhz에 기반한 것일 수 있다.
동작(1230)에서, 수신된 TCP 패킷 내에 TCP 타임스탬프인, 타임스템프 TCPt(n+1)가 존재하는지 여부가 검사된다.
TCPt(n+1)은 TCP 패킷의 송신측이 예상한 수신측이 TCP 패킷을 수신하는 시각이다.
TCP 타임스탬프는 TCP 패킷의 헤더 내의 옵션들 필드에 존재할 수 있다. 따라서, 수신된 TCP 패킷의 헤더 내의 옵션들 필드 내에 TCP 타임스탬프가 존재하는지 여부가 검사될 수 있다.
수신된 TCP 패킷 내에 TCPt(n+1)가 존재하면 동작(1240)이 수행되고, 그렇지 않으면 동작(1260)이 수행된다.
동작(1240)에서, TCP 패킷으로부터 TCPt(n+1)이 추출된다.
TCPt(n+1)은 TCP 패킷의 헤더 내의 옵션들 필드로부터 추출될 수 있다.
동작(1245)에서, TCP(n+1)이 경험한 네트워크 지터 N(n+1)이 계산된다. 네트워크 지터 N(n+1)는 하기의 수학식 5에 따라 계산될 수 있다.
Figure 112011024396392-pat00006
90KHz 정밀도를 갖는 33 비트들의 길이의 TCPt_base(n+1)가 타임스탬프로서 TCP 패킷 TCP(n+1)(또는, TCP 패킷의 헤더의 옵션 필드들) 내에 기록된 경우, 네트워크 지터 Nbase(n+1)는 하기의 수학식 6에 따라 계산될 수 있다.
Figure 112011024396392-pat00007
TCPa_base(n+1)는 TCPa(n+1)의 베이스 클럭이고, 90KHz 단위를 갖는다.
수학식 6에 따른 네트워크 지터 Nbase(n+1)는 수학식 5에 따른 네트워크 지터 N(n+1)에 비해, 하기의 수학식 7과 같은 범위의 오차를 갖는다.
Figure 112011024396392-pat00008
따라서, 수신측에서 수행되는 응용에 있어서, 11μs 정도의 오차기 크게 문제시되지 않는 경우, 90 KHz의 정밀도를 갖는 베이스 클럭만이 네트워크 지터를 계산하기 위해 사용될 수 있다.
TCP(n)은 TCP(n+1)이 수신측에 도착하기 전에 도착한 패킷이다. 즉, TCP(n) 및 TCP(n+1)은 서로 이웃하는 패킷들이다. TCPt(n)은 TCP(n)의 타임스탬프이다. TCPa(n)은 TCP(n)이 수신된 순간의 수신측 STC의 클럭 카운트 값이다. N(n)은 TCP(n)이 경험한 네트워크 지터이다.
동작(1250)에서, TCP(n) 및 TCP(n+1) 간의 도착 시간 간격(inter packet spacing) D(n+1)이 계산된다.
27 MHz의 정밀도를 갖는 42 비트들의 길이의 TCP 타임스탬프들인, TCPt(n+1) 및 TCPt(n)이 사용될 경우, TCP(n) 및 TCP(n+1) 간의 도착 시간 간격 D(n+1)은 하기의 수학식 8에 따라 계산될 수 있다.
Figure 112011024396392-pat00009
또한, 90 KHz의 정밀도를 갖는 33 비트들의 길이의 TCP 타임스탬프들인, TCPt_base(n+1) 및 TCPt_base(n)이 사용될 경우, TCP(n) 및 TCP(n+1) 간의 도착 시간 간격 Dbase(n+1)은 하기의 수학식 9에 따라 계산될 수 있다.
Figure 112011024396392-pat00010
수학식 8 및 수학식 9에 기반하여 획득된 TCP(n) 및 TCP(n+1) 간의 도착 시간 간격은 D(n+1)로 표시될 수 있다.
동작(1255)에서, 도착 간격 지터 및 상기 도착 간격 지터의 분산 및 디-지터 버퍼링 시간이 계산된다.
도착 간격 지터는 연속적으로 도착하는 패킷들 간의 도착 간격 지연 변이이다.
TCP(n+1)의 도착 간격 지터 J(n+1)는 이동 평균(moving average)에 의해 하기의 수학식 10에 따라 계산될 수 있다.
Figure 112011024396392-pat00011
여기서, J(n)은 TCP(n)의 도착 간격 지터이다.
α (0 ≤ α ≤ 1)는 제1 스무딩 팩터(smoothing factor)이다. α는 최근에 새롭게 업데이트된 네트워크 지터의 반영 비율을 조절할 수 있다.
υ(n+1)은 J(n+1)에 대한 분산(variance)이다. 즉, υ(n+1)은 J(n+1)의 도착 간격 분산이다. υ(n)은 J(n)에 대한 분산이다.
υ(n+1)은 이동 평균에 의해 하기의 수학식 11에 따라 계산될 수 있다.
Figure 112011024396392-pat00012
여기서, β(0 ≤ β ≤ 1)는 제2 스무딩 팩터이다. β는 최근에 새롭게 업데이트된 네트워크 지터와 기존의 평균적인 지터 간의 변이에 대한 반응 속도를 조절할 수 있다.
B(n+1)은 J(n+1)을 효과적으로 흡수하기 위한 디-지터 버퍼링 시간이다.
수학식 10 및 수학식 11에 기반하여, B(n+1)은 하기의 수학식 12에 따라 계산될 수 있다.
Figure 112011024396392-pat00013
여기서, K는 디-지터 버퍼링 시간을 결정함에 있어서 평균적인 도착 간격 지터 값을 벗어나는 변이인 분산 υ(n+1)의 변동 폭을 반영하기 위한 파라메터(parameter)이다.
동작(1255)에 의해, N(n+1) 및 D(n+1)에 기반하여 B(n+1)이 계산된다.
동작(1240) 내지 동작(1255)에 의해, TCPt(n+1), TCPt(n), TCPa(n+1) 및 TCPa(n)에 기반하여 B(n+1)이 계산된다.
K의 값이 커질수록, 망 내의 특수한 상황에서 발생할 수 있는 일반적이지 않은 큰 폭의 변동 폭이 디-지터 버퍼링에 의해 흡수될 수 있는 확률이 증대된다.
B(n+1)에 의해, 특정한 파일(또는, 콘텐츠)에 대한 패킷들 중, 수신측에 첫 번-로 도착하는 패킷이 디-지터 버퍼링을 통해 겪게 되는 초기 재생 지연(initial playout delay) 시간이 결정될 수 있다. 또한, 결정된 초기 재생 지연 시간에 기반하여, IP 망을 통한 패킷의 전송 도중에 발생한 네트워크 지터의 흡수를 고려한 프로그레시브 스트리밍 서비스의 초기 재생 시점이 결정될 수 있다.
동작(1260)에서, 디-지터 버퍼링 시간 결정을 위한 분석 시간이 경과되었는지 여부가 검사된다.
수신되는 TCP 패킷(즉, TCP(n+1))의 타임스탬프를 활용함으로써 적절한 디-지터 버퍼링 시간을 추정하기 위해서는, 어느 정도의 충분한 시간 동안 TCP 패킷들이 수신 및 분석되어야 한다. 이러한 수신 및 분석을 위해 요구되는 시간을 분석 시간 T로 명명한다.
TCP 패킷의 전송이 시작되어 안정적인 패킷 송수신 상태에 이르는데 충분한 시간은 분석 시간으로서 충분한 시간이 될 수 있다. 따라서, 대략 3 내지 4초 정도의 시간은 분석 시간으로서 충분하다.
디-지터 버퍼링 시간 결정을 위한 분석 시간 T가 경과된 경우 동작(1280)이 수행되고, 그렇지 않으면 동작(1270)이 수행된다.
동작(1270)에서, 다음 패킷을 처리하기 위해 n은 1 증가하고, 동작(1210)이 수행된다.
동작(1280)에서, 계산된 디-지터 버퍼링 시간 B(n+1)이 분석 시간 T보다 큰지 여부가 검사된다. 계산된 디-지터 버퍼링 시간 B(n+1)이 분석 시간 T보다 큰 경우 동작(1290)이 수행되고, 그렇지 않으면 동작(1295)가 수행된다.
동작(1290)에서, 계산된 디-지터 버퍼링 시간 B(n+1)이 최종적인 디-지터 버퍼링 시간 tdj로 결정된다.
동작(1295)에서, 분석 시간 T가 최종적인 디-지터 버퍼링 시간 tdj로 결정된다.
즉, 동작들(1280, 1290 및 1295)에서, 하기의 수학식 13과 같이, B(n+1) 및 T 중 더 큰 값이 최종 적인 디-지터 버퍼링 시간 tdj로 결정된다.
Figure 112011024396392-pat00014
동작(1290) 또는 동작(1295)가 수행된 다음, 동작(1270)이 수행된다.
도 13은 본 발명의 일 예에 따른 디-지터 버퍼링이 포함된 T-STD 버퍼 모델을 나타낸다.
T-STD 버퍼 모델은, 전술된 본 발명의 실시예에 따른 도착 간격 지터를 바탕으로, IP 망을 통한 프로그레시브 스트리밍 서비스를 제공받을 때 발생하는 지터를 흡수하기 위한 디-지터 버퍼링을 제공한다.
즉, 도 12에서 계산된 디-지터 버퍼링 시간(B(n+1) 또는 tdj)이 수신측의 T-STD의 버퍼링 시간으로 설정될 수 있다.
네트워크 지터를 흡수하기 위한 IP 네트워크 디-지터 버퍼링이 수신측의 파일 버퍼의 내부에서 이루어진다.
디-지터 버퍼링이 된 후, 기존의 T-STD 버퍼 모델에 전달되는 TS 패킷들은 기존의 T-STD 버퍼 모델의 작동 원리에 따라 처리될 수 있다.
도 14는 본 발명의 일 예에 따른 수신측(1400)의 구조도이다.
수신측(1410)은 스트리밍 서비스 수신 장치(예컨대, 단말)이다.
수신측(1400)은 수신부(1410), 클럭 카운트 측정부(1420), 타임스탬프 추출부(1430) 및 디-지터 버퍼링 시간 계산부(1440)를 포함한다.
수신부(1410)는 T-STD 버퍼(1450)를 포함할 수 있다.
수신부(1410)는 동작(1210)을 수행한다. 예컨대, 수신부(1410)는 TCP(n+1) 및 TCP(n)을 수신한다.
클럭 카운트 측정부(1420)는 동작(1220)을 수행한다. 예컨대, 클럭 카운트 측정부(1420)는 TCP(n+1)이 수신된 순간의 클럭 카운트 TCPa(n+1)를 측정하고, TCP(n)이 수신된 순간의 클럭 카운트 TCPa(n)을 측정한다.
타임스탬프 추출부(1430)는 동작들(1230 및 1240)을 수행한다. 예컨대, 타임스탬프 추출부(1430)는 TCP(n+1) 내에 TCPt(n+1)가 존재하는지 여부를 검사하며, TCP(n+1)로부터 TCPt(n+1)를 추출한다.
디-저터 버퍼링 시간 계산부(1440)는 동작들(1244 내지 1260, 1280, 1290 및 1295)을 수행한다. 예컨대, 디-저터 버퍼링 시간 계산부(1440)는 TCPt(n+1), TCPt(n), TCPa(n+1) 및 TCPa(n)에 기반하여 디-지터 버퍼링 시간 B(n+1) 또는 tdj를 계산한다.
또한, 디-저터 버퍼링 시간 계산부(1440)는 N(n+1), N(n), Nbase(n+1), J(n+1), J(n), D(n+1), υ(n+1) 및 υ(n) 등을 계산한다.
앞서 도 1 내지 도 13을 참조하여 설명된 본 발명의 일 실시예에 따른 기술 적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
도 15는 본 발명의 일 예에 따른 설정된 디-지터 버퍼링에 의한 미디어 재생 시간의 지연을 나타낸다.
도 15가 나타내는 시간적 모델링은 하기의 1) 내지 3)과 같다.
1) 파일 버퍼에 도착한 첫 번째 TCP 패킷은 전술된 본 발명의 실시예에 의해 결정된 디-지터 버퍼링 시간동안 파일 버퍼 내에 머무른다.
2) 첫 번째 TCP 패킷이 파일 버퍼 내에 머무르기 때문에, TCP 패킷들이 나타내는 콘텐츠의 재생 시간이 지연된다.
3) 설정된 디-지터 버퍼링 시간 직후, 첫 번- 패킷 내에 포함된 TS 패킷들은 기존의 T-STD 버퍼 모델로 전달된다.
도 15에서, x 축은 송신측 및 수신측에서의 시각을 나타내고, y 축은 전송 또는 수신된 TCP 패킷의 인덱스를 나타낸다.
도 15에서, 송신측이 TCP 패킷들을 전송한 시각(1510), 수신측이 TCP 패킷들을 수신한 시각(1520), 통상적인 T-STD 버퍼 모델에서의 전달 데드라인(1530)이 도시되었다. 또한, 재생을 위해 첫 번째 TCP 패킷 내의 TS 패킷들이 통상적인 T-STD 버퍼로 전달되는 시점(1540)이 도시되었다.
말단-말단(end-to-end) 전송 지연은 TCP 패킷들을 전송한 시각(1510) 및 TCP 패킷들의 수신 시각(1520) 간의 차이이고, 디-지터 버퍼링 시간(즉, 재생 지연 시간)은 TCP 패킷들의 수신 시각(1520) 및 통상적인 T-STD 버퍼 모델에서의 전달 데드라인(1530) 간의 차이이다.
전술된 본 발명의 실시예에 의한 디-지터 버퍼링 시간은 고품질의 프로그레시브 스트리밍 서비스를 제공하기 위해서 수신측의 T-STD 버퍼 모델과 통합적으로 고려되어야 한다.
따라서, 디-지터 버퍼링 과정을 포함하는 새로운 T-STD 버퍼 모델에서는, 새롭게 추가된 디-지터 버퍼링 과정을 제외하고는, 기존의 T-STD 버퍼 모델의 동작 원리를 그대로 따를 수 있으며, 따라서, 기존에 표준으로 개발된 T-STD 버퍼 모델이 본 발명의 실시예들에 따른 방법 및 장치에서 수정없이 활용될 수 있다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1100: 송신측
1400: 수신측

Claims (20)

  1. TCP 패킷의 패이로드 내에 하나 이상의 TS 패킷들을 로드하는 동작;
    상기 페이로드 내의 상기 하나 이상의 TS 패킷들 내의 최초의 PCR 정보를 상기 TCP 패킷의 PCR로 설정하는 동작;
    상기 PCR에 기반하여 상기 TCP 패킷의 타임스탬프를 계산하는 동작;
    상기 TCP 패킷 내에 상기 타임스탬프를 기록하는 동작; 및
    상기 TCP 패킷을 단말에게 전송하는 동작
    을 포함하고 상기 타임스탬프는 상기 TCP 패킷의 상기 단말로의 예상 도착 시각인, 스트리밍 서비스 송신 방법.
  2. 제1항에 있어서,
    상기 페이로드 내에 로드된 상기 하나 이상의 TS 패킷들 중 TS 헤더 내에 상기 PCR 정보를 포함하는 TS 패킷이 있는지 여부를 검사하는 단계
    를 더 포함하는, 스트리밍 서비스 송신 방법.
  3. 제1항에 있어서,
    상기 타임스탬프는 상기 페이로드의 첫 번째 바이트가 상기 단말에 도착할 것으로 추정된 시각을 상기 스트리밍 서버의 시스템 클럭 주파수를 사용한 시스템 타임 클럭 카운트 값으로 표현한, 스트리밍 서비스 송신 방법.
  4. 제3항에 있어서,
    상기 추정된 시각은 하기의 수학식 1에 기반하여 계산되는, 스트리밍 서비스 송신 방법.
    [수학식 1]
    Figure 112011024396392-pat00015

    여기서, t(n+1)은 상기 추정된 시각이고, PCR(n+1)은 상기 PCR이고, R(n)은 상기 TCP 패킷의 이전에 수신된 이전 TCP 패킷의 PCR 및 상기 PCR 사이의 데이터 전송률이고, I는 상기 TCP 패킷 내에 포함되는 모든 데이터 중 PCR의 정보를 나타내는 마지막 비트를 포함하는 바이트보다 앞서 위치하여 전송된 모든 데이터의 크기를 바이트 단위로 나타낸 것임.
  5. 제4항에 있어서,
    상기 R(n)은 하기의 수학식 2에 기반하여 계산되는, 스트리밍 서비스 송신 방법.
    [수학식 2]
    Figure 112011024396392-pat00016

    여기서, in은 PCR(n)의 바이트 인덱스이고, in+1은 PCR(n+1)의 바이트 인덱스임.
  6. 제1항에 있어서,
    상기 타임스탬프는 기본 클럭 및 확장 클럭을 포함하고, 상기 기본 클럭은 상기 확장 클럭 보다 더 작은 주파수 단위를 사용하는, 스트리밍 서비스 송신 방법.
  7. 제6항에 있어서,
    상기 타임스탬프는 하기의 수학식 3에 기반하여 계산되는, 스트리밍 서비스 송신 방법.
    [수학식 3]
    Figure 112011024396392-pat00017

    여기서, TCPt_base(n+1)은 상기 기본 클럭이고, TCPt_ext(n+1)은 상기 확장 클럭이고, TCPt(n+1)은 상기 타임스탬프고, system_clock_freq는 상기 스트리밍 서버의 시스틈 클럭 주파수이고, 상기 t(n+1)은 상기 페이로드의 첫 번째 바이트가 상기 단말에 도착할 것으로 추정된 시각임.
  8. 제1항에 있어서,
    상기 타임스탬프의 비트들의 길이는 상기 단말에서 요구하는 도착 시간 지연 변이의 정밀도에 기반하여 결정되는, 스트리밍 서비스 송신 방법.
  9. 제1항에 있어서,
    상기 TCP 패킷 내에 상기 타임스탬프를 기록하는 동작은 상기 TCP 패킷의 헤더 내의 옵션들 필드 내에 상기 타임스탬프를 저장하는, 스트리밍 서비스 송신 방법.
  10. TCP 패킷의 패이로드 내에 하나 이상의 TS 패킷들을 로드하는 TS 패킷 로드부;
    상기 페이로드 내의 상기 하나 이상의 TS 패킷들 내의 최초의 PCR 정보를 상기 TCP 패킷의 PCR로 설정하는 PCR 설정부;
    상기 PCR에 기반하여 상기 TCP 패킷의 타임스탬프를 계산하는 타임스탬프 계산부;
    상기 TCP 패킷 내에 상기 타임스탬프를 기록하는 타임스탬프 기록부; 및
    상기 TCP 패킷을 단말에게 전송하는 전송부
    을 포함하고 상기 타임스탬프는 상기 TCP 패킷의 상기 단말로의 예상 도착 시각인, 스트리밍 서비스 송신 장치.
  11. 제1 TCP 패킷을 수신하는 동작;
    상기 제1 TCP 패킷이 수신된 순간의 시스템 타임 클럭의 제1 클럭 카운트를 측정하는 동작;
    상기 제1 TCP 패킷으로부터 상기 제1 TCP 패킷의 제1 타임스탬프를 추출하는 동작;
    상기 제1 클럭 카운트, 제1 타임스탬프, 제2 클럭 카운트 및 제2 타임스탬프에 기반하여 디-지터 버퍼링 시간을 계산하는 동작
    을 포함하고, 상기 제1 타임스탬프는 상기 서버가 예상한 상기 제1 TCP 패킷의 수신 시각이고, 상기 제2 클럭 카운트는 상기 TCP 패킷 이전에 수신된 제2 TCP 패킷이 수신된 순간의 시스템 타임 클럭이고, 상기 제2 타임스탬프는 상기 제2 TCP 패킷으로부터 추출된 상기 서버가 예상한 상기 제2 TCP 패킷의 수신 시각인, 스트리밍 서비스 수신 방법.
  12. 제11항에 있어서,
    상기 제1 클럭 카운트, 제1 타임스탬프, 제2 클럭 카운트 및 제2 타임스탬프에 기반하여 디-지터 버퍼링 시간을 계산하는 동작은,
    상기 제1 클럭 카운트 및 상기 제1 타임스템프에 기반하여 제1 TCP 패킷이 경험한 제1 네트워크 지터를 계산하는 동작;
    상기 제1 네트워크 지터 및 상기 제2 TCP 패킷이 경험한 제2 네트워크 지터에 기반하여 상기 제2 TCP 패킷 및 상기 제1 TCP 패킷 간의 제1 도착 시간 간격을 계산하는 동작; 및
    상기 제1 네트워크 지터 및 상기 제1 도착 시간 간격에 기반하여 상기 디-지터 버퍼링 시간을 계산하는 동작
    을 포함하는, 스트리밍 서비스 수신 방법.
  13. 제12항에 있어서,
    상기 제1 네트워크 지터 및 상기 제1 도착 시간 간격에 기반하여 상기 디-지터 버퍼링 시간을 계산하는 동작은,
    상기 제2 TCP 패킷의 제2 도착 간격 지터 및 상기 제1 도착 시간 간격에 기반하여 상기 제1 TCP 패킷의 제1 도착 간격 지터를 계산하는 동작 - 상기 도착 간격 지터는 연속적으로 도착하는 패킷들 간의 도착 간격 지연 변이임 -;
    상기 제2 TCP 패킷의 제2 도착 간격 분산, 상기 제1 도착 시간 간격 및 상기 제1 도착 시간 간격에 기반하여 상기 제1 TCP 패킷의 제1 도착 간격 분산을 계산하는 동작 - 상기 도착 시간 분산은 상기 도착 시간 간격에 대한 분산임 -; 및
    싱기 제1 도착 간격 지터 및 상기 제1 도착 간격 분산에 기반하여 상기 디-지터 버퍼링 시간을 계산하는 동작
    을 포함하는, 스트리밍 서비스 수신 방법.
  14. 제13항에 있어서,
    상기 제1 도착 간격 지터는 하기의 수학식 4에 기반하여 계산되는, 스트리밍 서비스 수신 방법.
    [수학식 4]
    Figure 112011024396392-pat00018

    여기서, J(n+1)은 상기 제1 도착 간격 지터이고, J(n)은 상기 제2 도착 간격 지터이고, D(n+1)은 상기 제1 도착 시간 간격이고, α는 0 이상 1이하의 스무딩 팩터임.
  15. 제13항에 있어서,
    상기 제1 도착 간격 분산은 하기의 수학식 5에 기반하여 계산되는, 스트리밍 서비스 수신 방법.
    [수학식 5]
    Figure 112011024396392-pat00019

    여기서, υ(n+1)은 상기 제1 도착 간격 분산이고, υ(n)은 상기 제2 도착 간격 분산이고, D(n+1)은 상기 제1 도착 시간 간격이고, J(n)은 상기 제2 도착 간격 지터이고, β는 0 이상 1이하의 스무딩 팩터임.
  16. 제13항에 있어서,
    상기 디-지터 버퍼링 시간은 하기의 수학식 6에 기반하여 계산되는, 스트리밍 서비스 수신 방법.
    [수학식 6]
    Figure 112011024396392-pat00020

    여기서, B(n+1)은 상기 디-지터 버퍼링 시간이고, J(n+1)은 상기 제1 도착 간격 지터이고, υ(n+1)은 상기 제1 도착 간격 분산이고, 상기 k는 상기 제1 도착 간격 분산의 변동 폭을 반영하기 위한 파라메터임.
  17. 제11항에 있어서,
    상기 제1 타임스탬프는 상기 제1 TCP 패킷의 헤더 내의 옵션들 필드 내에 있는, 스트리밍 서비스 수신 방법.
  18. 제11항에 있어서,
    상기 디-지터 버퍼링 시간 및 분석 시간 중 최종 디-지터 버퍼링 시간으로 결정하는 동작
    을 더 포함하고, 상기 분석 시간은 수신되는 TCP 패킷들이 수신 및 분석되기에 충분한 시간인, 스트리밍 서비스 수신 방법.
  19. 제11항에 있어서,
    상기 디-지터 버퍼링 시간을 상기 스트리밍 클라이언트의 트랜스포트 스트림 시스템 타겟 디코더의 버퍼링 시간으로 설정하는 동작
    을 더 포함하는, 스트리밍 서비스 수신 방법.
  20. 제1 TCP 패킷을 수신하는 수신부;
    상기 제1 TCP 패킷이 수신된 순간의 시스템 타임 클럭의 제1 클럭 카운트를 측정하는 클럭 카운트 측정부;
    상기 제1 TCP 패킷으로부터 상기 제1 TCP 패킷의 제1 타임스탬프를 추출하는 타임스탬프 추출부; 및
    상기 제1 클럭 카운트, 제1 타임스탬프, 제2 클럭 카운트 및 제2 타임스탬프에 기반하여 디-지터 버퍼링 시간을 계산하는 디-지터 버퍼링 시간 계산부;
    를 포함하고, 상기 제1 타임스탬프는 상기 서버가 예상한 상기 제1 TCP 패킷의 수신 시각이고, 상기 제2 클럭 카운트는 상기 TCP 패킷 이전에 수신된 제2 TCP 패킷이 수신된 순간의 시스템 타임 클럭이고, 상기 제2 타임스탬프는 상기 제2 TCP 패킷으로부터 추출된 상기 서버가 예상한 상기 제2 TCP 패킷의 수신 시각인, 스트리밍 서비스 수신 장치.
KR1020110030790A 2010-10-20 2011-04-04 스트리밍 서비스 송/수신 장치 및 방법 KR101180540B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/880,941 US20130282871A1 (en) 2010-10-20 2011-10-20 Streaming service transmitting/receiving device and method
PCT/KR2011/007827 WO2012053834A2 (ko) 2010-10-20 2011-10-20 스트리밍 서비스 송/수신 장치 및 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20100102574 2010-10-20
KR1020100102574 2010-10-20

Publications (2)

Publication Number Publication Date
KR20120041095A KR20120041095A (ko) 2012-04-30
KR101180540B1 true KR101180540B1 (ko) 2012-09-06

Family

ID=46140796

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110030790A KR101180540B1 (ko) 2010-10-20 2011-04-04 스트리밍 서비스 송/수신 장치 및 방법

Country Status (2)

Country Link
US (1) US20130282871A1 (ko)
KR (1) KR101180540B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9276989B2 (en) 2012-03-30 2016-03-01 Adobe Systems Incorporated Buffering in HTTP streaming client
US10440084B2 (en) * 2013-02-06 2019-10-08 Telefonaktiebolaget Lm Ericsson (Publ) Technique for detecting an encoder functionality issue
US9882818B2 (en) 2013-09-30 2018-01-30 Apple Inc. Adjusting a jitter buffer based on inter arrival jitter
KR102166361B1 (ko) * 2014-07-21 2020-10-15 삼성전자주식회사 저전력 통신을 수행하기 위한 서버 및 그 동작 방법 및 저전력 통신을 수행하기 위한 스케쥴링 맵 생성 방법
KR102532645B1 (ko) * 2016-09-20 2023-05-15 삼성전자 주식회사 적응적 스트리밍 서비스에서 스트리밍 어플리케이케이션으로 데이터를 제공하는 방법 및 장치
KR102454470B1 (ko) * 2016-10-06 2022-10-14 삼성전자주식회사 스트리밍 서비스를 지원하는 방법 및 장치
US20210400338A1 (en) * 2020-06-19 2021-12-23 Apple Inc. Systems and methods of video jitter estimation
CN112261445B (zh) * 2020-10-21 2022-07-12 深圳市创维软件有限公司 流媒体播放方法、装置、设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792047B1 (en) 2000-01-04 2004-09-14 Emc Corporation Real time processing and streaming of spliced encoded MPEG video and associated audio
KR100640467B1 (ko) 2005-01-18 2006-10-31 삼성전자주식회사 멀티미디어 스트림 평활화가 가능한 아이피 스트리밍 장치
US20100014594A1 (en) 2008-07-17 2010-01-21 Cisco Technology, Inc. Splicing of Encrypted Video/Audio Content

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790543A (en) * 1995-09-25 1998-08-04 Bell Atlantic Network Services, Inc. Apparatus and method for correcting jitter in data packets
US5805602A (en) * 1995-09-25 1998-09-08 Bell Atlantic Network Services, Inc. Network monitoring system for cell delay variation
US5640388A (en) * 1995-12-21 1997-06-17 Scientific-Atlanta, Inc. Method and apparatus for removing jitter and correcting timestamps in a packet stream
US5883924A (en) * 1996-04-12 1999-03-16 Hewlett Packard Company Method and apparatus for PCR jitter measurement in an MPEG-2 transport stream using sliding window
US5774497A (en) * 1996-04-12 1998-06-30 Hewlett-Packard Co Method and apparatus for PCR jitter measurement in an MPEG-2 transport stream
US6690683B1 (en) * 1999-11-23 2004-02-10 International Business Machines Corporation Method and apparatus for demultiplexing a shared data channel into a multitude of separate data streams, restoring the original CBR
GB9930788D0 (en) * 1999-12-30 2000-02-16 Koninkl Philips Electronics Nv Method and apparatus for converting data streams
JP4407007B2 (ja) * 2000-05-02 2010-02-03 ソニー株式会社 データ送信装置及び方法
GB0117926D0 (en) * 2001-07-23 2001-09-12 Nds Ltd Method for random access to encrypted content
JP4062504B2 (ja) * 2002-09-09 2008-03-19 ソニー株式会社 同期化方法、通信システムおよびデータ受信装置
US7680155B2 (en) * 2003-08-14 2010-03-16 Zenith Electronics Llc PCR jitter reduction in a VSB and/or EVSB multiplexer system
KR100608715B1 (ko) * 2003-09-27 2006-08-04 엘지전자 주식회사 QoS보장형 멀티미디어 스트리밍 서비스 시스템 및 방법
US7397825B2 (en) * 2004-03-10 2008-07-08 Scientific-Atlanta, Inc. Transport stream dejitterer
JP4394541B2 (ja) * 2004-08-23 2010-01-06 日本電気株式会社 通信装置、データ通信方法およびプログラム
CN100561903C (zh) * 2004-09-09 2009-11-18 松下电器产业株式会社 发送装置、中继装置、接收装置及具有这些装置的网络系统
US7778173B2 (en) * 2005-01-04 2010-08-17 Cisco Technology, Inc. Clock recovery algorithm for remultiplexing MPEG-2 SPTSs and/or MPTSs in the presence of network jitter
US20090210588A1 (en) * 2005-07-06 2009-08-20 Makoto Adachi Output Circuit, Control Program Product, and Control Method
WO2007010779A1 (ja) * 2005-07-15 2007-01-25 Matsushita Electric Industrial Co., Ltd. パケット送信装置
JP4746998B2 (ja) * 2006-02-15 2011-08-10 Necディスプレイソリューションズ株式会社 伝送レート調整装置および伝送レート調整方法
KR100848128B1 (ko) * 2006-04-24 2008-07-24 한국전자통신연구원 실시간 스트리밍 프로토콜을 이용한 프로그래시브 스트리밍방법
US8159960B2 (en) * 2006-12-18 2012-04-17 Verizon Patent And Licensing Inc. Content processing device monitoring
JP5092493B2 (ja) * 2007-03-28 2012-12-05 富士通株式会社 受信プログラム、受信装置、通信システム、及び、通信方法
US8854964B2 (en) * 2007-12-14 2014-10-07 General Instrument Corporation Method and apparatus for determining a transport bit rate for a Multiprogram transport stream
US8194756B2 (en) * 2008-05-28 2012-06-05 Broadcom Corporation Using program clock references to assist in transport of video stream to wireless device
US20100150182A1 (en) * 2008-12-12 2010-06-17 Tandberg Television Inc. Systems and methods for mutiplexing mpeg services for ip networks
US8146125B2 (en) * 2009-07-01 2012-03-27 Spirent Communications, Inc Computerized device and method for analyzing signals in a multimedia over coax alliance (MOCA) network and similar TDM / encrypted networks
US9049050B2 (en) * 2012-03-19 2015-06-02 Airties Kablosuz Iletisim Sanayi Ve Dis Ticaret An Gulbahar Mahallesi Avni Dilligil Sokak System and method for equalizing transmission delay in a network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792047B1 (en) 2000-01-04 2004-09-14 Emc Corporation Real time processing and streaming of spliced encoded MPEG video and associated audio
KR100640467B1 (ko) 2005-01-18 2006-10-31 삼성전자주식회사 멀티미디어 스트림 평활화가 가능한 아이피 스트리밍 장치
US20100014594A1 (en) 2008-07-17 2010-01-21 Cisco Technology, Inc. Splicing of Encrypted Video/Audio Content

Also Published As

Publication number Publication date
US20130282871A1 (en) 2013-10-24
KR20120041095A (ko) 2012-04-30

Similar Documents

Publication Publication Date Title
KR101180540B1 (ko) 스트리밍 서비스 송/수신 장치 및 방법
US8351762B2 (en) Adaptive media playout method and apparatus for intra-media synchronization
TWI242957B (en) Method and device for multimedia streaming
US9565482B1 (en) Adaptive profile switching system and method for media streaming over IP networks
JP4936542B2 (ja) 通信制御装置、通信制御方法、及びコンピュータプログラム
CN109068155B (zh) 传送媒体数据的设备以及接收媒体数据的设备
US8406254B2 (en) Network optimized distribution
US9621682B2 (en) Reduced latency media distribution system
KR20060051568A (ko) 미디어 스트림으로부터 획득한 미디어의 프리젠테이션을위한 방법 및 시스템
US20200404361A1 (en) Fast Tune-In for Low Latency Streaming
US20100064054A1 (en) Remote fast forward and rewind functionality for client devices
EP3057261B1 (en) Transmission method, reception method, transmission device, and reception device
JP5300278B2 (ja) ネットワークジッターを測定するメディアレートを検出する方法
US8873590B2 (en) Apparatus and method for correcting jitter
KR20130009670A (ko) 엠엠티 시스템에서의 패킷 전송 장치 및 방법, 및 패킷 수신 장치 및 방법
KR20070034008A (ko) 송신 시스템에서 패킷을 송신하기 위한 방법
KR20130114597A (ko) 스트리밍 미디어 전달 컴포지트
JP2008527817A (ja) Ipを介してmpegストリームを伝送する方法、並びに、対応する装置、受信方法及び受信器
KR100640467B1 (ko) 멀티미디어 스트림 평활화가 가능한 아이피 스트리밍 장치
EP2462738B1 (en) Apparatus and method for tuning to a channel of a moving pictures expert group transport stream (mpeg-ts)
US8339986B2 (en) Instrumentation of MPEG-2 transport streams for testing network performance
US20160261897A1 (en) Apparatus and method for managing mmt buffer model using reception quality feedback
JP2005286749A (ja) 映像復号化装置およびそれを用いた映像伝送システム
EP2337257B1 (en) Method and apparatus of sending encoded multimedia digital data taking into account sending deadlines
KR101700370B1 (ko) 지터 보정 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee