KR100677125B1 - Streaming method using negotiation of sending delay time - Google Patents

Streaming method using negotiation of sending delay time Download PDF

Info

Publication number
KR100677125B1
KR100677125B1 KR1020040057540A KR20040057540A KR100677125B1 KR 100677125 B1 KR100677125 B1 KR 100677125B1 KR 1020040057540 A KR1020040057540 A KR 1020040057540A KR 20040057540 A KR20040057540 A KR 20040057540A KR 100677125 B1 KR100677125 B1 KR 100677125B1
Authority
KR
South Korea
Prior art keywords
time
client
transmission
server
frame
Prior art date
Application number
KR1020040057540A
Other languages
Korean (ko)
Other versions
KR20060008684A (en
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 KR1020040057540A priority Critical patent/KR100677125B1/en
Publication of KR20060008684A publication Critical patent/KR20060008684A/en
Application granted granted Critical
Publication of KR100677125B1 publication Critical patent/KR100677125B1/en

Links

Images

Classifications

    • 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
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation
    • 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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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/24Negotiation of communication capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

송신 지연 시간의 협상을 이용한 스트리밍 방법이 개시된다. 본 발명은, 하나이상의 프레임을 포함하는 스트림을 서버로부터 클라이언트로 전송하는 스트리밍 방법에 있어서, a)클라이언트로부터 상기 클라이언트의 수신 버퍼의 최대 사전 버퍼링 시간에 기초하여 결정된 최대 송신 지연 시간의 제안값을 수신하는 단계; b)상기 최대 송신 지연 시간의 제안값 보다 작은 임의의 값을 최대 송신 지연 시간으로 결정하는 단계; 및 c)상기 최대 송신 지연 시간보다 작은 송신 지연 시간을 가지는 프레임만을 송신 버퍼에서 전송 선로로 출력하면서 상기 스트림을 클라이언트로 전송하는 단계를 포함한다. 본 발명에 의하면 송신 지연 시간 및/또는 송신 앞섬 시간을 서버와 클라이언트가 협상함으로써 진부한 데이터가 발생하는 것을 방지하는 스트리밍 방법에 관한 것이다.A streaming method using negotiation of transmission delay time is disclosed. The present invention provides a streaming method for transmitting a stream including one or more frames from a server to a client, the method comprising: a) receiving, from a client, a proposal value of a maximum transmission delay time determined based on a maximum pre-buffering time of the reception buffer of the client. Doing; b) determining, as the maximum transmission delay time, any value smaller than the suggested value of the maximum transmission delay time; And c) transmitting the stream to the client while outputting only a frame having a transmission delay time smaller than the maximum transmission delay time from the transmission buffer to the transmission line. The present invention relates to a streaming method that prevents cliché data from occurring by negotiating a transmission delay time and / or transmission lead time between a server and a client.

Description

송신 지연 시간의 협상을 이용한 스트리밍 방법{Streaming method using negotiation of sending delay time}Streaming method using negotiation of sending delay time

도 1은 송신 버퍼가 너무 큰 경우의 스트리밍 상태를 나타내는 도면.1 is a diagram showing a streaming state when the transmission buffer is too large.

도 2은 송신 버퍼가 너무 작은 경우의 스트리밍 상태를 나타내는 도면.2 is a diagram illustrating a streaming state when the transmission buffer is too small.

도 3은 본 발명의 제 1 실시예에 따른 스트리밍 방법을 나타내는 시간흐름도.3 is a time flow diagram illustrating a streaming method according to a first embodiment of the present invention.

도 4는 본 발명의 제 2 실시예에 따른 스트리밍 방법을 나타내는 시간흐름도. 4 is a time flow diagram illustrating a streaming method according to a second embodiment of the present invention.

도 5는 본 발명의 제 3 실시예에 따른 스트리밍 방법을 나타내는 시간흐름도. 5 is a time flow diagram illustrating a streaming method according to a third embodiment of the present invention.

도 6은 본 발명의 제 4 실시예에 따른 스트리밍 방법을 나타내는 시간흐름도. 6 is a time flow diagram illustrating a streaming method according to a fourth embodiment of the present invention.

도 7은 최대 송신 앞섬 시간의 개념을 설명하는 도면.7 is a diagram illustrating a concept of maximum transmission lead time.

도 8은 본 발명의 제 5 실시예에 따른 스트리밍 방법을 나타내는 시간흐름도. 8 is a time flow diagram illustrating a streaming method according to a fifth embodiment of the present invention.

도 9는 본 발명의 제 6 실시예에 따른 스트리밍 방법을 나타내는 시간흐름도이다.9 is a time flow diagram illustrating a streaming method according to a sixth embodiment of the present invention.

본 발명은 스트리밍 방법에 관한 것으로서, 보다 상세하게는 송신 지연 시간 및/또는 송신 앞섬 시간을 서버와 클라이언트가 협상함으로써 진부한 데이터가 발생하는 것을 방지하고, 다른 클라이언트의 전송 속도가 감소되는 것을 방지하는 스트리밍 방법에 관한 것이다.TECHNICAL FIELD The present invention relates to a streaming method, and more particularly, to prevent clichés from occurring by negotiating a transmission delay time and / or transmission lead time with a server and a client, and to prevent a transmission speed of another client from being reduced. It is about a method.

실시간 재생은 디지털 방송, VOD,AOD 등 다양한 응용분야에 구현되고 있다. Real-time playback is being implemented in various applications such as digital broadcasting, VOD, and AOD.

실시간 재생에 있어서 오디오 또는 비디오 스트림의 전송 시스템은 스트림을 전송하는 스트리밍 서버(이하 서버) 및 전송된 스트림을 수신하여 디코딩하고 재생하는 스트리밍 클라이언트(이하 클라이언트)로 구성된다. In real time playback, a transmission system of an audio or video stream is composed of a streaming server (hereinafter referred to as a server) for transmitting the stream and a streaming client (hereinafter referred to as a client) for receiving, decoding and playing the transmitted stream.

서버는 두가지 유형으로 나뉜다. 하나는 방송을 통해 수신된 콘텐츠를 송신 버퍼에 저장하였다가 클라이언트로 전송하는 방송형 서버이고, 또하나는 콘텐츠를 파일로 저장하였다가 스트림으로 변환하여 클라이언트로 전송하는 파일형 서버이다. 전자의 경우는 방송되는 스트림을 동조하는 튜너 및 동조된 스트림을 일시저장하는 버퍼를 추가적으로 포함한다. 이러한 두가지 형태의 서버는 양자 모두 서버측에 저장된 스트림을 얼마나 지연된 상태로 클라이언트에게 전송하는지를 결정하여야 한다. 방송형 서버에서 전술한 '얼마나 지연된 상태인가'는 송신 버퍼의 크기에의해 결정된다.Servers are divided into two types. One is a broadcast type server which stores contents received through broadcasting in a transmission buffer and transmits the contents to a client. The other is a file type server which stores the contents as a file and converts the contents into a stream and transmits the contents to the client. The former case further includes a tuner for tuning the broadcast stream and a buffer for temporarily storing the tuned stream. Both types of servers must determine how delayed the stream stored on the server side is to the client. In the broadcast server, the aforementioned 'how long' is determined by the size of the transmission buffer.

한편 클라이언트는 서버로부터 전송되는 스트림을 일시저장하는 수신 버퍼 및 수신 버퍼에 저장된 스트림을 디코딩하여 재생하는 재생부를 포함한다. On the other hand, the client includes a reception buffer for temporarily storing the stream transmitted from the server, and a playback unit for decoding and playing the stream stored in the reception buffer.

실시간 재생에 있어서, 서버측에서 얼마나 지연된 상태로 스트리밍을 전송할 것인지는 클라이언트에서 재생하는 데이터가 실시간인지 여부 및 스트림의 품질등에 많은 영향을 미친다.In real time playback, how much delayed streaming is transmitted from the server side has a great influence on whether the data played by the client is real time and the quality of the stream.

도 1 내지 2 은 종래의 스트리밍 방법에 의한 스트리밍 상황을 나타내는 도면이다. 1 to 2 are diagrams showing a streaming situation by a conventional streaming method.

도 1은 송신 버퍼가 너무 큰 경우의 스트리밍 상태를 나타내는 도면이다.1 is a diagram illustrating a streaming state when the transmission buffer is too large.

도 1에서 전송 시스템은 서버(10), 클라이언트(20) 및 전송선로(30)를 포함하고, 서버(10)는 튜너(12) 및 송신 버퍼(14)를 포함하고, 클라이언트(20)는 수신 버퍼(22) 및 재생부(24)를 포함한다. 전송 선로(30)는 TCP,UDP등 다양한 전송 프로토콜을 사용한다. 수신 버퍼(22)는 일정하지 않은 속도로 인입되는 스트리밍 데이터를 일정한 속도로 재생부에게 제공하는 기능을 한다.1, the transmission system comprises a server 10, a client 20 and a transmission line 30, the server 10 includes a tuner 12 and a transmission buffer 14, the client 20 receives A buffer 22 and a playback section 24; The transmission line 30 uses various transmission protocols such as TCP and UDP. The reception buffer 22 functions to provide streaming data, which is input at an inconsistent rate, to the playback unit at a constant rate.

도 1에서, 일시적인 전송 선로(30)상의 정체(congestion)을 인해, 송신 버퍼(14) 및 전송 선로(30)에는 실시간(up-to-date) 데이터 및 진부한(out of date or staled) 데이터가 공존한다. 최신 데이터(up-to-date data)란 클라이언트의 특정한 재생시점에서 유용한 데이터를 말하며, 진부한 데이터(out-of-date data)란 클라이언트의 특정한 재생시점에서 쓸모없는 데이터를 의미한다. 즉 도 1에서 현재 클라이언트는 스트리밍을 실시간으로 재생하여야 하므로, 만약 시점 t1 에 데이터 D1 이 수신 버퍼(22)에 포함되어 있지 않으면, 재생부(24)는 시점 t1 에 데이터 D1을 재생할 수 없고 시점 t1을 지나쳐야 한다. 이는 결국 시점 t1 이후의 시점에서는, 클라이언트 입장에서 데이터 D1 은 더 이상 최신 데이터가 아니라 진부한 데이터가 됨을 의미한다. In FIG. 1, due to congestion on the temporary transmission line 30, the transmission buffer 14 and the transmission line 30 contain up-to-date data and out of date or staled data. Coexist. Up-to-date data refers to data that is useful at a particular playback time of the client, and out-of-date data refers to data that is useless at a particular playback time of the client. That is, in FIG. 1, since the current client must play streaming in real time, if the data D1 is not included in the reception buffer 22 at the time point t1, the playback unit 24 cannot reproduce the data D1 at the time point t1 and the time t1. You must pass by. This means that at a point in time after time t1, the data D1 is no longer up-to-date data but is obsolete data from the client's point of view.

도 1에서는 송신 버퍼(14)의 크기가 커서, 즉 서버(10)측의 스트리밍 송신 지연 시간(sending delay Time)이 너무 크기 때문에, 스트리밍에서 진부한 데이터가 발생한다는 문제점이 발생한다. In Fig. 1, since the size of the transmission buffer 14 is large, i.e., the streaming transmission delay time on the server 10 side is too large, a problem arises that cliché data occurs in streaming.

도 2은 송신 버퍼가 너무 작은 경우의 스트리밍 상태를 나타내는 도면이다.2 is a diagram illustrating a streaming state when the transmission buffer is too small.

도 2는 송신 버퍼의 크기를 가능한 최소로 한 경우이다. 따라서 도 1 과 상이하게, 스트리밍 송신 지연 시간이 감소되어 전송 선로상에서 충돌이 일어나는 경우에 진부한 데이터는 발생되지 않는다. 하지만 서버가 방송형 서버인 경우에는, 송신 버퍼(14)의 크기가 작기 때문에, 튜너(12)로부터 서버측버퍼(14)로 전송되는 데이터의 일부가 버퍼에 저장되지 못하고 유실되는 문제점이 발생한다. 2 shows a case where the size of the transmission buffer is minimized as much as possible. Therefore, unlike FIG. 1, when data is transmitted and a collision occurs on a transmission line, streaming data transmission delay time is not generated. However, when the server is a broadcast server, since the size of the transmission buffer 14 is small, some of the data transmitted from the tuner 12 to the server-side buffer 14 cannot be stored in the buffer and are lost. .

따라서 본 발명은 전술한 문제점을 해결하기 위해 안출된 것으로서, 실시간 재생을 위한 스트리밍에 있어서, 서버와 클라이언트가 송신 지연 시간을 협상함으로써 진부한 데이터의 발생 및 데이터 유실을 방지하는 스트리밍 방법을 제공하고자한다.Accordingly, the present invention has been made to solve the above-described problem, and in streaming for real-time playback, a server and a client negotiate a transmission delay time to provide a streaming method that prevents the generation of obsolete data and data loss.

전술한 과제를 해결하기 위한 본 발명은, 하나이상의 프레임을 포함하는 스트림을 서버로부터 클라이언트로 전송하는 스트리밍 방법에 있어서, a)클라이언트로부터 상기 클라이언트의 수신 버퍼의 최대 사전 버퍼링 시간에 기초하여 결정된 최대 송신 지연 시간의 제안값을 수신하는 단계; b)상기 최대 송신 지연 시간의 제안값 보다 작은 임의의 값을 최대 송신 지연 시간으로 결정하는 단계; 및 c)상기 최대 송신 지연 시간보다 작은 송신 지연 시간을 가지는 프레임만을 송신 버퍼에서 전송 선로로 출력하면서 상기 스트림을 클라이언트로 전송하는 단계를 포함하는 것을 특징으로 한다. The present invention for solving the above problems, in the streaming method for transmitting a stream containing one or more frames from the server to the client, a) the maximum transmission determined from the client based on the maximum pre-buffering time of the receiving buffer of the client Receiving a suggested value of a delay time; b) determining, as the maximum transmission delay time, any value smaller than the suggested value of the maximum transmission delay time; And c) transmitting the stream to the client while outputting only a frame having a transmission delay time smaller than the maximum transmission delay time from the transmission buffer to the transmission line.

또한 본 발명은, 하나이상의 프레임을 포함하는 스트림을 서버로부터 클라이언트로 전송하는 스트리밍 방법에 있어서, a)클라이언트로부터 상기 클라이언트의 실시간 재생 스트리밍 속도에 기초하여 결정된 최대 송신 앞섬 시간의 제안값을 수신하는 단계; b)상기 최대 송신 앞섬 시간의 제안값에 기초하여 최대 송신 앞섬 시간을 결정하는 단계; 및 c)상기 최대 송신 앞섬 시간보다 작은 송신 앞섬 시간을 가지는 프레임만을 송신 버퍼에서 전송 선로로 출력하면서 상기 스트림을 클라이언트로 전송하는 단계를 포함하는 것을 특징으로 한다.In another aspect, the present invention provides a streaming method for transmitting a stream including one or more frames from a server to a client, the method comprising the steps of: a) receiving a proposal value of a maximum transmission lead time determined from a client based on a real-time playback streaming rate of the client; ; b) determining a maximum transmission lead time based on the suggested value of the maximum transmission lead time; And c) transmitting the stream to the client while outputting only a frame having a transmission leading time smaller than the maximum transmission leading time from the transmission buffer to the transmission line.

또한 본 발명은, 하나이상의 프레임을 포함하는 스트림을 서버로부터 클라이언트로 전송하는 스트리밍 방법에 있어서, a)클라이언트로부터 상기 클라이언트의 실시간 재생 스트리밍 속도에 기초하여 결정된 최대 송신 속도의 제안값을 수신하는 단계; b)상기 서버에 연결된 다른 클라이언트로의 네트워크 부하에 기초하여 상기 클라이언트에게 스트리밍가능한 최대 속도인 최대 송신 속도를 결정하는 단계; 및 c)상기 최대 송신 속도가 상기 최대 송신 속도의 제안값보다 같거나 큰 경우에, 상기 최대 송신 속도의 제안값에 따라 상기 스트림을 상기 클라이언트로 전송하는 단계를 포함하는 것을 특징으로 한다.In addition, the present invention provides a streaming method for transmitting a stream including one or more frames from a server to a client, the method comprising the steps of: a) receiving a proposal value of a maximum transmission rate determined from a client based on a real-time playback streaming rate of the client; b) determining a maximum transmission rate, which is the maximum rate streamable to the client, based on the network load on other clients connected to the server; And c) if the maximum transmission rate is equal to or greater than the suggested value of the maximum transmission rate, transmitting the stream to the client according to the suggested value of the maximum transmission rate.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명의 제 1 실시예에 따른 스트리밍 방법을 나타내는 시간흐름도이다.3 is a time flow diagram illustrating a streaming method according to a first embodiment of the present invention.

단계 310에서, 클라이언트는 최대 송신 지연 시간의 제안값 Td_max_requst 를 서버에 전송한다. 최대 송신 지연 시간의 제안값은 어플리케이션 계층 프로토콜의 헤더내에 첨부가능하다. 예를 들면, 어플리케이션 계층 프로토콜이 HTTP 인 경우, HTTP GET 명령내에 첨부가능하다. 최대 송신 지연 시간의 제안값은 클라이언트가 하드웨어적으로 구성가능한 최대 사전 버퍼링 시간(maximum pre-buffering time)이내에서 임의의 값으로 결정된다. In step 310, the client sends the proposed value Td_max_requst of the maximum transmission delay time to the server. The suggested value of the maximum transmission delay time can be appended in the header of the application layer protocol. For example, if the application layer protocol is HTTP, it can be attached in an HTTP GET command. The suggested value of the maximum transmission delay time is determined to be any value within the maximum pre-buffering time that the client can configure in hardware.

단계 320에서, 서버는 클라이언트로부터 전송된 최대 송신 지연 시간의 제안값 Td_max_request 보다 작은 임의의 값을 최대 송신 지연 시간 Td_max 로 결정한다. 이하 최대 송신 지연 시간의 의미를 설명한다.In step 320, the server determines, as the maximum transmission delay time Td_max, any value smaller than the suggested value Td_max_request of the maximum transmission delay time sent from the client. The meaning of the maximum transmission delay time is described below.

최대 송신 지연 시간은 전송선로의 지체(congestion)로 인하여 진부한 데이터가 발생하였을 때 서버가 송신 버퍼에 포함된 데이터중에서 일부를 삭제(drop)하는데 기준이 되는 임계값이다. 즉 서버는 최대 송신 지연 시간 Td_max 보다 큰 송신 지연 시간을 가지는 프레임은 모두 송신 버퍼내에서 삭제하고 클라이언트로 전송하지 않는다. 송신 지연 시간은 다음과 같이 정의된다.The maximum transmission delay time is a threshold at which the server drops some of the data contained in the transmission buffer when the obsolete data is generated due to congestion of the transmission line. That is, the server deletes all frames having a transmission delay time larger than the maximum transmission delay time Td_max in the transmission buffer and does not transmit them to the client. The transmission delay time is defined as follows.

[수학식 1][Equation 1]

Figure 112004032749878-pat00001
Figure 112004032749878-pat00001

여기서 Td(i)는 I번째 프레임의 송신 지연 시간, Tactual(i)는 I번째 프레임의 실제 송신 시간, Trealtime(i)는 실시간 재생 조건을 만족하는 I번째 프레임의 송신 시간을 의미한다. 실시간 재생 조건을 만족하는 I번째 프레임의 송신시간 Trealtime(i)는 이하 수학식 2 와 같이 나타내어진다.Here, Td (i) denotes a transmission delay time of an I-th frame, T actual (i) denotes an actual transmission time of an I-th frame, and T realtime (i) denotes a transmission time of an I-th frame that satisfies a real-time reproduction condition. The transmission time T realtime (i) of the I-th frame that satisfies the real time reproduction condition is expressed by Equation 2 below.

[수학식 2][Equation 2]

Figure 112004032749878-pat00002
Figure 112004032749878-pat00002

여기서 T0 는 스트리밍 개시 시간 즉 서버에 의해 송신되는 첫 번째 프레임의 송신 시간이며, Tst(1)는 첫번째 프레임의 타임스탬프이고, Tst(i)는 I번째 프레임의 타임스탬프이다.Where T0 is the streaming start time, that is, the transmission time of the first frame transmitted by the server, Tst (1) is the timestamp of the first frame, and Tst (i) is the timestamp of the Ith frame.

수학식 1 및 2 에 따르면, Td > Td_max 인 프레임은 진부한(out-of-date) 데이터로 결정된다. 즉 Td > Td_max 인 프레임은 송신 버퍼에서 삭제되어야 하는 데이터로 결정된다.According to equations (1) and (2), a frame with Td> Td_max is determined as out-of-date data. That is, a frame having Td> Td_max is determined as data to be deleted from the transmission buffer.

단계 330에서, 서버는 최대 송신 지연 시간 Td_max를 클라이언트에게 전송한다. 최대 송신 지연 시간 Td_max 는 어플리케이션 계층의 프로토콜의 헤더내에 첨부가능하다. 예를 들면, 어플리케이션 계층 프로토콜이 HTTP 인 경우, HTTP OK 명령의 헤더내에 첨부가능하다.In step 330, the server sends the maximum transmission delay time Td_max to the client. The maximum transmission delay time Td_max can be appended in the header of the protocol of the application layer. For example, if the application layer protocol is HTTP, it can be attached in the header of an HTTP OK command.

단계 340에서, 클라이언트는 단계 330에서 수신한 최대 송신 지연 시간 Td_max를 최소 수신 버퍼링 시간(Minimun pre-buffering Time, T_buffer)으로 결정한다. 최소 수신 버퍼링 시간은 클라이언트의 버퍼링 시간의 최소값이며, 수신 버 퍼의 크기와 다음의 수학식 3 의 관계를 가진다.In step 340, the client determines the maximum transmission delay time Td_max received in step 330 as a minimum reception pre-buffering time (T_buffer). The minimum reception buffering time is a minimum value of the client's buffering time, and has a relationship between the size of the reception buffer and the following equation (3).

[수학식 3][Equation 3]

Figure 112004032749878-pat00003
Figure 112004032749878-pat00003

여기서 Buffersize_client 는 회소 수신 버퍼의 크기, Td_max 는 최대 송신 지연 시간, BitRate 는 스트림의 비트레이트를 의미한다. Where Buffersize_client is the size of the receive buffer, Td_max is the maximum transmission delay time, and BitRate is the bit rate of the stream.

단계 350에서, 서버는 단계 320 에서 결정된 최대 송신 지연 시간 Td_max 에 따라 스트림을 클라이언트에게 전송한다. 다시 말하면, 서버는 수학식 1 에 따라 각각의 프레임마다 송신 지연 시간 Td(i)을 계산하고, 계산된 송신 지연 시간 Td(i) 이 최대 송신 지연 시간 Td_max 보다 큰 프레임은 송신 버퍼에서 삭제하면서, 스트림을 클라이언트에게 전송한다.In step 350, the server sends the stream to the client according to the maximum transmission delay time Td_max determined in step 320. In other words, the server calculates a transmission delay time Td (i) for each frame according to Equation 1, and deletes a frame in which the calculated transmission delay time Td (i) is larger than the maximum transmission delay time Td_max from the transmission buffer. Send the stream to the client.

단계 360에서, 클라이언트는 단계 340에서 결정된 최소 수신 버퍼링 시간 또는 최소 수신 버퍼의 크기에 따라 스트림을 수신한다. 다시 말하면, 클라이언트는 최소 수신 버퍼링 시간보다 초과하여 수신 프레임에 존재하는 프레임은 수신 프레임에서 삭제하면서, 스트림을 서버로부터 수신한다.In step 360, the client receives the stream according to the minimum receive buffering time or the size of the minimum receive buffer determined in step 340. In other words, the client receives the stream from the server while deleting a frame present in the received frame beyond the minimum receive buffering time from the received frame.

실시간 전송의 응용분야에서, 일반적으로 널리 사용되는 프로토콜 스택(stack)는 TCP/UDP(전송 계층) 및 HTTP/RTP(어플리케이션 계층) 이다. 특히 TCP 에서는 QoS를 제공하지 않기 때문에 전술한 최대 송신 지연 시간 및 최소 수신 버퍼링 시간의 협상은 중요하다.In the field of real-time transmission, commonly used protocol stacks are TCP / UDP (Transport Layer) and HTTP / RTP (Application Layer). In particular, since TCP does not provide QoS, negotiation of the maximum transmission delay time and the minimum reception buffering time described above is important.

도 4는 본 발명의 제 2 실시예에 따른 스트리밍 방법을 나타내는 시간흐름도이다. 4 is a time flow diagram illustrating a streaming method according to a second embodiment of the present invention.

실시간 전송이라할지라도, 서버로부터 전송되는 스트림의 모든 프레임을 클라이언트내의 저장 매체에 저장할 필요가 있는 경우가 있다. 일반적으로, 클라이언트로의 콘텐츠 전송이 실시간 재생 뿐 아니라 단순한 다운로드의 목적도 겸하는 경우가 그러하다. 도 4의 실시예는 이러한 경우에 유익한 구성을 가진다.Even in real time transmission, it may be necessary to store every frame of a stream transmitted from a server in a storage medium in a client. In general, this is the case when the content delivery to the client serves not only real time playback but also a simple download purpose. 4 has an advantageous configuration in this case.

단계 410에서, 클라이언트는 지연 플래그 Flag 및 최대 송신 지연 시간의 제안값 Td_max_requst 를 서버에 전송한다. 지연 플래그 Flag 는 최대 송신 지연 시간의 제안값이 무한대 또는 유한값 중 어느하나임을 나타내는 플래그이다. 예를 들면 지연 플래그를 0 으로 설정함으로써 최대 송신 지연 시간의 제안값이 무한대임을 나타낼 수 있다. 최대 송신 지연 시간의 제안값이 무한대인 경우, 최대 송신 지연 시간의 제안값은 서버에 전송되지 않는 실시예도 가능하다. 지연 플래그 역시 어플리케이션 계층 프로토콜의 헤더내에 첨부가능하다. In step 410, the client sends a delay flag Flag and a suggested value Td_max_requst of the maximum transmission delay time to the server. Delay flag Flag is a flag indicating that the suggested value of the maximum transmission delay time is either infinity or a finite value. For example, by setting the delay flag to 0, it may represent that the suggested value of the maximum transmission delay time is infinite. When the proposal value of the maximum transmission delay time is infinite, an embodiment in which the proposal value of the maximum transmission delay time is not transmitted to the server is possible. The delay flag can also be attached in the header of the application layer protocol.

단계 420에서, 서버는 단계 410에서 전송된 지연 플래그가 최대 송신 지연 시간의 제안값이 무한대임을 나타내는 경우 단계 425 로 진행하고, 그렇지 않은 경우 단계 430 으로 진행한다.In step 420, the server proceeds to step 425 if the delay flag sent in step 410 indicates that the suggested value of the maximum transmission delay time is infinity, otherwise proceeds to step 430.

단계 425에서, 서버는 스트림의 전송시에 모든 프레임을 클라이언트에게 전송한다. 다시 말하면 전송 선로에서의 지체가 발생하여 진부한 데이터가 발생하더라도 서버는 송신 버퍼내의 데이터의 어느 부분이 진부한 데이터가 되었는지를 판단하지 않는다. 최대 송신 지연 시간이 무한대이기 때문이다. In step 425, the server sends all frames to the client upon transmission of the stream. In other words, even if a delay occurs in the transmission line and obsolete data is generated, the server does not determine which part of the data in the transmission buffer is the obsolete data. This is because the maximum transmission delay time is infinite.

단계 430에서, 서버는 최대 송신 지연 시간의 제안값 Td_max_request 보다 작은 임의의 값을 최대 송신 지연 시간 Td_max 로 결정한다. In step 430, the server determines the maximum transmission delay time Td_max to any value smaller than the suggested value Td_max_request of the maximum transmission delay time.

단계 440에서, 서버는 최대 송신 지연 시간 Td_max를 클라이언트에게 전송한다. In step 440, the server sends the maximum transmission delay time Td_max to the client.

단계 450에서, 클라이언트는 단계 440에서 수신한 최대 송신 지연 시간 Td_max를 최소 수신 버퍼링 시간(Minimun pre-buffering Time, T_buffer)으로 결정한다. In step 450, the client determines the maximum transmission delay time Td_max received in step 440 as the minimum reception buffering time (T_buffer).

단계 460에서, 서버는 단계 430 에서 결정된 최대 송신 지연 시간 Td_max 에 따라 스트림을 클라이언트에게 전송한다. In step 460, the server sends the stream to the client according to the maximum transmission delay time Td_max determined in step 430.

단계 470에서, 클라이언트는 단계 450에서 결정된 최소 수신 버퍼링 시간 또는 최소 수신 버퍼의 크기에 따라 스트림을 수신한다. In step 470, the client receives the stream according to the minimum receive buffering time or the size of the minimum receive buffer determined in step 450.

도 4 의 실시예에 의하면, 클라이언트는 최대 송신 지연 시간의 제안값이 무한대임을 나타내는 지연 플래그를 서버에 송신함으로써 서버로하여금 모든 프레임을 클라이언트에 전송하도록 요청할 수 있다. 이에 의해 클라이언트는 실시간 재생시에는 진부한 데이터가 발생하여 완전한 화질 또는 음질을 재생할 수 없지만, 차후 재생시에는 완전한 화질 또는 음질의 재생을 수행할 수 있다. 스트림의 모든 프레임이 클라이언트의 재생 매체에 저장되기 때문이다.According to the embodiment of FIG. 4, the client may request the server to transmit all the frames to the server by sending a delay flag indicating that the proposed maximum transmission delay time is infinite. As a result, the client cannot reproduce full image quality or sound quality during the real time reproduction, but can reproduce the full image quality or sound quality in future playback. This is because all frames of the stream are stored in the playback medium of the client.

도 5는 본 발명의 제 3 실시예에 따른 스트리밍 방법을 나타내는 시간흐름도이다. 5 is a time flow diagram illustrating a streaming method according to a third embodiment of the present invention.

어떤 어플리케이션 계층 프로토콜에서는 패킷 재전송(Retransmission)을 지원한다. 예를 들면 TCP/HTTP 의 조합에서는 TCP 계층에서 완결한 패킷의 전송을 보장하기 때문에 HTTP 레벨에서 패킷의 재전송을 수행하진 않는다. 하지만 UDP/RTP 의 조합의 경우, UDP 는 완결한 패킷의 전송을 보장하지 않기 때문에, RTP 는 패킷 전송후 일정시간 응답이 없는 경우 해당 패킷을 재전송하는 소위 패킷 재전송(Retransmission)을 수행함으로써 패킷의 전송을 보장한다. 도 5의 실시예는, 이러한 패킷 재전송의 경우, 재전송 회수를 결정하는 스트리밍 방법을 제공한다.Some application layer protocols support packet retransmission. For example, the TCP / HTTP combination does not perform retransmission of packets at the HTTP level because it guarantees the completion of packets at the TCP layer. However, in the case of the UDP / RTP combination, since UDP does not guarantee the transmission of a completed packet, RTP transmits a packet by performing a so-called packet retransmission that retransmits the packet when there is no response for a certain time after the packet transmission. To ensure. 5 provides a streaming method for determining the number of retransmissions in case of such packet retransmission.

단계 510에서, 클라이언트는 최대 송신 지연 시간의 제안값 Td_max_requst 를 서버에 전송한다. 최대 송신 지연 시간의 제안값은 클라이언트가 하드웨어적으로 구성가능한 최대 사전 버퍼링 시간(maximum pre-buffering time)이내에서 임의의 값으로 결정된다. In step 510, the client sends the proposed value Td_max_requst of the maximum transmission delay time to the server. The suggested value of the maximum transmission delay time is determined to be any value within the maximum pre-buffering time that the client can configure in hardware.

단계 520에서, 서버는 클라이언트로부터 전송된 최대 송신 지연 시간의 제안값 Td_max_request 보다 작은 임의의 값을 최대 송신 지연 시간 Td_max 로 결정한다. In step 520, the server determines, as the maximum transmission delay time Td_max, any value smaller than the suggested value Td_max_request of the maximum transmission delay time sent from the client.

단계 530에서, 서버는 최대 재전송 회수를 결정한다. 최대 재전송 회수는 이하 수학식 4를 이용하여 결정된다.In step 530, the server determines the maximum number of retransmissions. The maximum number of retransmissions is determined using Equation 4 below.

[수학식 4][Equation 4]

Figure 112004032749878-pat00004
Figure 112004032749878-pat00004

여기서 Nmax 는 최대 재전송 회수이며, Trt 는 한번의 재전송에 걸리는 라운드 트립 시간(Round Trip Time),즉 하나의 IP 패킷이 서버로부터 클라이언트로 전송된 후 다시 클라이언트로부터 서버까지 되돌아오는데 걸리는 시간을 의미한다. 수학식 4 는 '최대 송신 지연 시간이 지난이후에 송신되는 패킷은 더 이상 최신 데이터가 아니기 때문에, 전체 재전송에 걸리는 시간 (재전송 회수 * 라운트 트립 시 간)은 최대 송신 지연 시간보다 클 수 없다'는 개념에 기초하여 도출되었다.Where Nmax is the maximum number of retransmissions, and Trt is the round trip time for one retransmission, that is, the time it takes for one IP packet to be sent from the server to the client and then back from the client to the server. Equation 4 states that since the packet transmitted after the maximum transmission delay time is no longer the latest data, the total retransmission time (number of retransmissions * count trip time) cannot be greater than the maximum transmission delay time. Is derived based on the concept.

단계 540에서, 서버는 최대 송신 지연 시간 Td_max를 클라이언트에게 전송한다. In step 540, the server sends the maximum transmission delay time Td_max to the client.

단계 550에서, 클라이언트는 단계 540에서 수신한 최대 송신 지연 시간 Td_max를 최소 수신 버퍼링 시간(Minimun pre-buffering Time, T_buffer)으로 결정한다. In step 550, the client determines the maximum transmission delay time Td_max received in step 540 as the minimum reception buffering time (T_buffer).

단계 560에서, 서버는 단계 520 에서 결정된 최대 송신 지연 시간 Td_max 및 단계 530에서 결정된 최대 재전송 회수 N 에 따라 스트림을 클라이언트에게 전송한다. In step 560, the server sends the stream to the client according to the maximum transmission delay time Td_max determined in step 520 and the maximum number of retransmissions N determined in step 530.

단계 570에서, 클라이언트는 단계 550에서 결정된 최소 수신 버퍼링 시간에 따라 스트림을 수신한다. In step 570, the client receives the stream according to the minimum receive buffering time determined in step 550.

도 6은 본 발명의 제 4 실시예에 따른 스트리밍 방법을 나타내는 시간흐름도이다. 6 is a time flow diagram illustrating a streaming method according to a fourth embodiment of the present invention.

전송되는 스트림의 하나이상의 프레임을 포함하고, 하나의 프레임은 하나이상의 패킷을 포함한다. 따라서 패킷의 유실이 반드시 프레임의 유실이라고 간주할 수는 없다. 재전송을 하지 않더라도 전송 프로토콜에서 제공하는 에러 정정 알고리즘을 사용하여 완전한 패킷을 보장할 수도 있기 때문이다. 도 6 의 실시예에서는 필요한 경우에만 재전송을 수행하는 스트리밍 방법을 제공한다. One or more frames of the stream to be transmitted, one frame containing one or more packets. Therefore, the loss of a packet may not necessarily be regarded as a loss of a frame. This is because even if the packet is not retransmitted, the error correction algorithm provided by the transport protocol can be used to guarantee the complete packet. The embodiment of FIG. 6 provides a streaming method for performing retransmission only when necessary.

단계 610에서, 클라이언트는 최대 송신 지연 시간의 제안값 Td_max_requst 를 서버에 전송한다. 최대 송신 지연 시간의 제안값은 클라이언트가 하드웨어적으 로 구성가능한 최대 사전 버퍼링 시간(maximum pre-buffering time)이내에서 임의의 값으로 결정된다. In step 610, the client sends the proposed value Td_max_requst of the maximum transmission delay time to the server. The suggested value of the maximum transmission delay time is determined as an arbitrary value within the maximum pre-buffering time that the client can configure in hardware.

단계 620에서, 서버는 클라이언트로부터 전송된 최대 송신 지연 시간의 제안값 Td_max_request 보다 작은 임의의 값을 최대 송신 지연 시간 Td_max 로 결정한다. In step 620, the server determines, as the maximum transmission delay time Td_max, any value smaller than the suggested value Td_max_request of the maximum transmission delay time sent from the client.

단계 630에서, 서버는 프레임 유실 확률(Probability of Frame Loss)를 결정한다. 프레임 유실 확률은 이하 수학식 5를 이용하여 결정된다.In step 630, the server determines the probability of frame loss. The frame loss probability is determined using Equation 5 below.

[수학식 5][Equation 5]

Figure 112004032749878-pat00005
Figure 112004032749878-pat00005

여기서 Pfrm 은 프레임 유실 확률, Ppkt는 패킷 유실 확률, N 은 해당 프레임에 포함된 패킷의 수이다. 패킷 유실 확률 Ppkt 는 이하 수학식 6을 이용하여 결정된다.Where Pfrm is the frame loss probability, Ppkt is the packet loss probability, and N is the number of packets included in the frame. The packet loss probability Ppkt is determined by using Equation 6 below.

[수학식 6][Equation 6]

Figure 112004032749878-pat00006
Figure 112004032749878-pat00006

여기서 Ppkt 는 패킷 유실 확률, P0는 UDP 패킷이 서버로부터 클라이언트로 또는 클라이언트로부터 서버로 전송될 때 해당 UDP 패킷이 유실될 확률(1-수신된 전체 패킷의 수/송신된 전체 패킷의 수), M 는, 프레임이 진부한(out of date) 데이터로 간주되기 이전에, 패킷이 서버로부터 클라이언트로 또는 클라이언트로부터 서버로 라우팅되면서 전송되는 회수로서 이하 수학식 7을 이용하여 결정된다.Where Ppkt is the probability of packet loss, P0 is the probability that the UDP packet will be lost when UDP packets are sent from server to client or from client to server (1-number of total packets received / number of total packets transmitted), M Is determined using Equation 7 below as the number of times a packet is transmitted as it is routed from server to client or from client to server before the frame is considered out of date data.

[수학식 7][Equation 7]

Figure 112004032749878-pat00007
Figure 112004032749878-pat00007

여기서 Nmax 는 최대 재전송 회수이며, Trt 는 한번의 재전송에 걸리는 라운드 트립 시간(Round Trip Time),즉 패킷의 최초 전송으로부터 그다음 패킷 전송까지 걸리는 시간을 의미한다. Where Nmax is the maximum number of retransmissions, and Trt means the round trip time for one retransmission, that is, the time from the first transmission of a packet to the next transmission.

단계 640에서, 서버는 최대 송신 지연 시간 Td_max를 클라이언트에게 전송한다. In step 640, the server sends the maximum transmission delay time Td_max to the client.

단계 650에서, 서버는 단계 630에서 계산한 프레임 유실 확률이 소정의 임계값을 초과하는지를 판단한다. 초과하는 경우에는 단계 660 내지 680 으로 진행하고, 그렇지 않은 경우에는 단계 655으로 진행한다.In step 650, the server determines whether the frame loss probability calculated in step 630 exceeds a predetermined threshold. If it exceeds, proceed to steps 660 to 680, otherwise proceed to step 655.

단계 660에서, 서버는 수학식 4 에 따라 최대 재전송 회수를 결정한다. In step 660, the server determines the maximum number of retransmissions according to equation (4).

단계 670에서, 클라이언트는 단계 640에서 수신한 최대 송신 지연 시간 Td_max를 최소 수신 버퍼링 시간(Minimun pre-buffering Time)으로 결정한다. In step 670, the client determines the maximum transmission delay time Td_max received in step 640 as the minimum reception pre-buffering time.

단계 680에서, 서버는 단계 620 에서 결정된 최대 송신 지연 시간 Td_max 및 단계 660에서 결정된 최대 재전송 회수 Nmax 에 따라 스트림을 클라이언트에게 전송한다. In step 680, the server sends the stream to the client according to the maximum transmission delay time Td_max determined in step 620 and the maximum number of retransmissions Nmax determined in step 660.

단계 655에서, 단계 620에서 결정된 최대 송신 지연 시간에 따라 스트림을 클라이언트에게 전송한다. 이 때 재전송을 수행되지 않는다.In step 655, the stream is sent to the client according to the maximum transmission delay time determined in step 620. At this time, retransmission is not performed.

단계 690에서, 클라이언트는 단계 670에서 결정된 최소 수신 버퍼링 시간에 따라 스트림을 수신한다. 이 경우, 패킷 재전송이 수행되지 않으므로, 클라이언트 는 예를 들어 순방향 에러 정정(Forward Error Correction)과 같은 에러정정 알고리즘을 이용하여, 지터 등에 의해 유실된 패킷을 복원한다.In step 690, the client receives the stream according to the minimum receive buffering time determined in step 670. In this case, since the packet retransmission is not performed, the client recovers a packet lost by jitter or the like by using an error correction algorithm such as forward error correction.

도 7은 최대 송신 앞섬 시간의 개념을 설명하는 도면이다.7 is a diagram for explaining a concept of maximum transmission lead time.

도 3 내지 도 6의 실시예는 서버와 클라이언트가 최대 송신 지연 시간을 협상함으로써 진부한 데이터의 발생을 방지하는 스트리밍 방법이었다. 최대 송신 지연 시간과 동일하게, 최대 송신 앞섬 시간(Maximum sending Advance Time, Ta_max)을 협상하는 스트리밍 방법도 제안될 수 있다. 3 to 6 is a streaming method in which the server and the client negotiate the maximum transmission delay time to prevent the generation of obsolete data. Similarly to the maximum transmission delay time, a streaming method for negotiating the maximum sending advance time Ta_max may also be proposed.

도 7에서, 현재 서버 700 은 제 1 클라이언트 710 및 제 2 클라이언트 720에게 대역폭 20 Mbps를 가지는 전송 선로 702를 통해 스트리밍을 전송한다. 이 때 전송 선로 702 는 제 1 클라이언트로 통하는 제 1 전송 선로 712 및 제 2 클라이언트로 통하는 제 2 전송 선로 722 로 나누어지고, 전송 대역폭에 대한 특별한 우선순위가 없다면, 각각의 전송 선로에는 공평하게 20/2=10Mbps 의 대역폭이 할당된다. 이러한 상황에서, 제 1 클라이언트 710 은 256kbps/256MB 의 오디오 스트리밍을 재생할려고하고, 제 2 클라이언트 720 은 19Mbps/19GB 의 HD 급 비디오 스트리밍을 재생할려고 한다고 가정하자.In FIG. 7, the current server 700 transmits streaming to the first client 710 and the second client 720 through a transmission line 702 having a bandwidth of 20 Mbps. At this time, the transmission line 702 is divided into a first transmission line 712 to the first client and a second transmission line 722 to the second client, and if there is no special priority for transmission bandwidth, each transmission line is equally divided into 20 / A bandwidth of 2 = 10 Mbps is allocated. In such a situation, suppose that the first client 710 is going to play an audio streaming of 256kbps / 256MB, and the second client 720 is going to play an HD video streaming of 19Mbps / 19GB.

한편 송신 지연 시간(수학식 1)과 유사하게, 송신 앞섬 시간은 이하 수학식 8 과 같이 정의된다. On the other hand, similar to the transmission delay time (Equation 1), the transmission leading time is defined as in Equation 8 below.

[수학식 8][Equation 8]

Figure 112004032749878-pat00008
Figure 112004032749878-pat00008

여기서 Ta(i)는 I번째 프레임의 송신 앞섬 시간, Tactual(i)는 I번째 프레임의 실제 송신 시간, Trealtime(i)는 실시간 재생 조건을 만족하는 I번째 프레임의 송신 시간을 의미한다.Here, Ta (i) is the transmission lead time of the I-th frame, T actual (i) is the actual transmission time of the I-frame, and T realtime (i) is the transmission time of the I-frame that satisfies the real-time reproduction condition.

도 7 의 상황에서 송신 앞섬 시간의 협상이 없다면, 제 1 클라이언트는 10Mbps 의 전송 속도로 256kbps/256MB 의 오디오 스트리밍을 전송받고, 제 2 클라이언트는 10Mbps의 전송 속도로 19Mbps/19GB 의 비디오 스트리밍을 전송받을 것이다. 따라서 제 1 클라이언트가 256MB의 오디오 스트리밍을 전송받는 시간 256MB/10Mbps=256*8/10=204.8sec 동안, 제 2 클라이언트에서는, 제 2 전송선로에 할당가능한 최대 대역폭 10Mbps 보다 비디오 스트리밍의 대역폭인 19Mbps가 더 크기 때문에, 프레임의 유실이 발생하고 그 결과 화질의 열화가 발생한다.In the situation of FIG. 7, if there is no negotiation of transmission lead time, the first client may receive 256kbps / 256MB of audio streaming at 10Mbps, and the second client may receive 19Mbps / 19GB of video streaming at 10Mbps. will be. Therefore, during the time 256MB / 10Mbps = 256 * 8/10 = 204.8sec when the first client receives 256MB of audio streaming, the second client has 19Mbps, which is the bandwidth of video streaming, than the maximum bandwidth 10Mbps that can be allocated to the second transmission line. Because of the larger size, loss of frames occurs, resulting in degradation of image quality.

이것을 방지하는 하나의 방법은 제 1 클라이언트가 실시간 재생이 가능한 정도로만 제 1 클라이언트로의 전송 속도를 제한하는 것이다. 전송 속도를 제한하는 방법은, 각 프레임마다 송신 앞섬 시간을 검사하여 송신 앞섬 시간이 최대 송신 앞섬 시간보다 큰 경우에는 전송을 하지 않고 기다린 후 송신 앞섬 시간이 최대 송신 앞섬 시간보다 작게되었을 때 비로소 해당 프레임을 전송하는 것이다. 하지만 이러한 방법은 클라이언트가 클라이언트 기반의(client-based) 패스트 포워드 트릭 모드(fast-forward trick mode) 를 수행할 수 없기 때문에 바람직하지 않다. One way to prevent this is to limit the transfer rate to the first client only to the extent that the first client is capable of real time playback. The method of limiting the transmission rate is to check the transmission lead time for each frame, and if the transmission lead time is larger than the maximum transmission lead time, wait until the transmission lead time is smaller than the maximum transmission lead time after waiting without transmitting. Will be sent. However, this method is not preferable because the client cannot perform the client-based fast-forward trick mode.

따라서, 제 1 클라이언트의 전송 속도에 대한 요구를 만족시키면서 동시에 제 2 클라이언트의 화질의 열화를 방지하기 위한 송신 앞섬 시간의 협상이 필요하 다. Therefore, it is necessary to negotiate the transmission lead time to satisfy the request for the transmission speed of the first client and to prevent deterioration of the image quality of the second client.

도 8은 본 발명의 제 5 실시예에 따른 스트리밍 방법을 나타내는 시간흐름도이다. 8 is a time flow diagram illustrating a streaming method according to a fifth embodiment of the present invention.

단계 810에서, 클라이언트는 최대 송신 앞섬 시간의 제안값 Ta_max_requst 를 서버에 전송한다. 최대 송신 앞섬 시간의 제안값은 어플리케이션 계층 프로토콜의 헤더내에 첨부가능하다. 예를 들면, 어플리케이션 계층 프로토콜이 HTTP 인 경우, HTTP GET 명령내에 첨부가능하다. In step 810, the client sends the suggested value Ta_max_requst of the maximum transmission leading time to the server. The suggested value of the maximum transmission lead time may be appended in the header of the application layer protocol. For example, if the application layer protocol is HTTP, it can be attached in an HTTP GET command.

단계 820에서, 서버는, 클라이언트로부터 전송된 최대 송신 앞섬 시간의 제안값 Ta_max_request 보다 작은 임의의 값 중에서, 서버에 연결된 다른 클라이언트로의 네트워크 부하를 고려하여, 최대 송신 앞섬 시간 Ta_max 를 결정한다. In step 820, the server determines the maximum transmission lead time Ta_max, taking into account the network load to other clients connected to the server, from any value less than the suggested value Ta_max_request of the maximum transmission lead time sent from the client.

제 1 클라이언트가 서버에 새로운 스트리밍을 요청하거나 기존의 스트리밍 속도에 더 많은 대역폭을 요구하는 경우에(패스트 포워드 트릭모드의 경우), 최대 송신 앞섬 시간을 결정하는 구체적인 방법은 다음과 같다.When the first client requests a new streaming from the server or demands more bandwidth for an existing streaming rate (for fast forward trick mode), the specific method of determining the maximum transmission leading time is as follows.

먼저, 서버에 현재 연결된 모든 다른 클라이언트(제 2 ,제 3... 클라이언트)의 실시간 재생 조건을 만족시키는 총 실시간 재생 조건 대역폭(Realtime Bandwith, BW_rt)을 계산한다. 총 실시간 재생 조건 대역폭은 각각의 스트리밍의 실시간 재생 속도의 합이다.First, the total real time playback condition bandwidth (BW_rt) satisfying the real time playback conditions of all other clients (second, third, ... clients) currently connected to the server is calculated. The total real time playback condition bandwidth is the sum of the real time playback rates of each streaming.

그 다음, 전송 선로의 전체 대역폭(total channel Bandwith, BW_ch)에서 총 실시간 재생 조건 대역폭(Realtime Bandwith)을 감산함으로써 여유 대역폭(available bandwith, BW_avail)을 계산한다.Next, the available bandwidth (BW_avail) is calculated by subtracting the total real-time playback condition bandwidth (Realtime Bandwith) from the total bandwidth (BW_ch) of the transmission line.

그 다음, 여유 대역폭 및 제 1 클라이언트가 요청하는 스트리밍 속도에 기초하여 각각의 프레임마다 제 1 클라이언트에게 허용가능한 송신 앞섬 시간인 허용 가능 송신 앞섬 시간(Ta_allow)을 계산한다.Then, based on the free bandwidth and the streaming rate requested by the first client, an allowable transmission lead time Ta_allow, which is an allowable transmission lead time for the first client, is calculated for each frame.

마지막으로, 허용가능 송신 앞섬 시간보다 작은 값중에서 임의의 값을 선택함으로써 제 1 클라이언트에 허여가능한 최대 송신 앞섬 시간(Ta_max)을 결정한다.Finally, the maximum transmit lead time (Ta_max) allowed for the first client is determined by selecting any value among the values smaller than the allowable transmit lead time.

따라서 최대 송신 앞섬 시간 보다 작은 송신 앞섬 시간을 가지는 프레임은 송신 앞섬 시간이 최대 송신 앞섬 시간보다 작거나 같게 될 때 비로서 송신 버퍼에서 전송선로로 전송된다.Therefore, a frame having a transmission lead time smaller than the maximum transmission lead time is transmitted from the transmission buffer to the transmission line only when the transmission lead time becomes less than or equal to the maximum transmission lead time.

단계 830에서, 서버는 최대 송신 앞섬 시간 Ta_max를 클라이언트에게 전송한다. 최대 송신 앞섬 시간 Ta_max 역시 어플리케이션 계층의 프로토콜의 헤더내에 첨부가능하다. 예를 들면, 어플리케이션 계층 프로토콜이 HTTP 인 경우, HTTP OK 명령의 헤더내에 첨부가능하다.In step 830, the server sends the maximum transmission leading time Ta_max to the client. The maximum transmission lead time Ta_max may also be appended in the header of the protocol of the application layer. For example, if the application layer protocol is HTTP, it can be attached in the header of an HTTP OK command.

단계 840에서, 클라이언트는 단계 830에서 수신한 최대 송신 앞섬 시간 Ta_max를 최소 수신 버퍼링 시간(Minimun pre-buffering Time, T_buffer)으로 결정한다. 최소 수신 버퍼링 시간은 클라이언트의 버퍼링 시간의 최소값이다. 클라이언트는 최소 최대 송신 앞섬 시간이상의 데이터를 수신 버퍼에 저장할 수 있어야 하기 때문이다.In step 840, the client determines the maximum transmission leading time Ta_max received in step 830 as the minimum reception pre-buffering time (T_buffer). The minimum receive buffering time is the minimum of the client's buffering time. This is because the client must be able to store more data in the receive buffer than the minimum maximum send lead time.

단계 850에서, 서버는 단계 820 에서 결정된 최대 송신 앞섬 시간 Ta_max 에 따라 스트림을 클라이언트에게 전송한다. 다시 말하면, 서버는 수학식 8 에 따라 각각의 프레임마다 송신 앞섬 시간 Ta(i)을 계산하고, 송신 앞섬 시간 Ta(i)이 최 대 송신 앞섬 시간 Ta_max 보다 작은 프레임만 송신 버퍼에서 전송선로로 출력하면서 스트림을 전송한다. In step 850, the server sends the stream to the client according to the maximum transmit leading time Ta_max determined in step 820. In other words, the server calculates the transmission leading time Ta (i) for each frame according to Equation 8, and outputs only the frames whose transmission leading time Ta (i) is smaller than the maximum transmission leading time Ta_max from the transmission buffer to the transmission line. While sending the stream.

단계 860에서, 클라이언트는 단계 840에서 결정된 최소 수신 버퍼링 시간에 따라 스트림을 수신한다. In step 860, the client receives the stream according to the minimum receive buffering time determined in step 840.

도 9는 본 발명의 제 6 실시예에 따른 스트리밍 방법을 나타내는 시간흐름도이다.9 is a time flow diagram illustrating a streaming method according to a sixth embodiment of the present invention.

도 9의 실시예는 도 8의 실시예와 상이하게, 최대 송신 앞섬 시간 대신에 최대 송신 속도의 개념을 이용한 스트리밍 방법을 나타낸다. 이 경우는 이미 연결되어 스트리밍을 재생중인 클라이언트가 패스트 포워드 트릭 모드를 수행하고자 하는 경우를 위한 스트리밍 방법이다. Unlike the embodiment of FIG. 8, the embodiment of FIG. 9 illustrates a streaming method using the concept of the maximum transmission rate instead of the maximum transmission lead time. This case is a streaming method for a case where a client already connected and playing streaming wants to perform a fast forward trick mode.

단계 910에서, 클라이언트는 최대 송신 속도의 제안값 S_max_requst 를 서버에 전송한다. 예를 들면 클라이언트는 6X 의 클라이언트 기반 패스트 포워드 트릭모드를 서버측에 요청할 수 있다. 서버-기반 패스트 포워드와 상이하게, 클라이언트-기반 패스트 포워드 트릭 모드의 수행을 위해서는 서버로부터 클라이언트로의 전송 속도가 2배가 되어야한다. 최대 송신 속도의 제안값은 어플리케이션 계층 프로토콜의 헤더내에 첨부가능하다. 예를 들면, 어플리케이션 계층 프로토콜이 HTTP 인 경우, HTTP GET 명령내에 첨부가능하다. In step 910, the client transmits a proposal value S_max_requst of the maximum transmission rate to the server. For example, a client can request a server-side 6X client-based fast forward trick mode. Unlike server-based fast forward, the performance of the client-based fast forward trick mode must double the transmission speed from the server to the client. The suggested value of the maximum transmission rate can be appended in the header of the application layer protocol. For example, if the application layer protocol is HTTP, it can be attached in an HTTP GET command.

단계 920에서, 서버에 연결된 다른 클라이언트로의 네트워크 부하를 고려하여, 최대 송신 속도 S_max 를 결정한다. In step 920, the maximum transmission rate S_max is determined in consideration of the network load on other clients connected to the server.

최대 송신 속도를 결정하는 구체적인 방법은 다음과 같다.A specific method of determining the maximum transmission rate is as follows.

먼저, 서버에 현재 연결된 모든 다른 클라이언트(제 2 ,제 3... 클라이언트)의 실시간 재생 조건을 만족시키는 총 실시간 재생 조건 대역폭(Realtime Bandwith, BW_rt)을 계산한다. 총 대역폭은 각각의 스트리밍의 실시간 재생 속도의 합이다.First, the total real time playback condition bandwidth (BW_rt) satisfying the real time playback conditions of all other clients (second, third, ... clients) currently connected to the server is calculated. The total bandwidth is the sum of the real time playback rates of each streaming.

그 다음, 전송 선로의 전체 대역폭(total channel Bandwith, BW_ch)에서 총 실시간 재생 조건 대역폭(Realtime Bandwith)을 감산함으로써 여유 대역폭(available bandwith, BW_avail)을 계산한다. 여유 대역폭이 최대 송신 속도 S_max가 된다. Next, the available bandwidth (BW_avail) is calculated by subtracting the total real-time playback condition bandwidth (Realtime Bandwith) from the total bandwidth (BW_ch) of the transmission line. The extra bandwidth is the maximum transmission rate S_max.

단계 930에서, 서버는 최대 송신 속도 S_max 가 최대 송신 속도의 제안값 S_max_request 보다 크거나 같은지를 검사한다. 만약 크거나 같다면 단계 940 으로 진행하고 그렇지 않으면 단계 950 로 진행한다.In step 930, the server checks whether the maximum transmission rate S_max is greater than or equal to the suggested value S_max_request of the maximum transmission rate. If greater than or equal to proceed to step 940 otherwise proceed to step 950.

단계 940에서, 서버는 최대 송신 속도의 제안값으로 클라이언트에게 스트리밍을 전송한다.In step 940, the server sends streaming to the client at the suggested value of the maximum transmission rate.

단계 950에서, 서버는 클라이언트가 요구한 최대 송신 속도의 제안값으로 스트리밍할 수 없음을 나타내는 전송 불가 메시지를 클라이언트에게 전송한다.In step 950, the server sends a non-sendable message to the client indicating that it cannot stream at the suggested value of the maximum transmission rate requested by the client.

위 실시예에서 송신 속도를 배율을 이용하여 나타내는 것도 가능하다. 배율은 실제 송신 속도와 실시간 재생 조건에 부합하는 재생 속도와의 비이다. 예를 들면 실시간 재생 조건에 부합하는 재생 속도가 3Mbps 이고, 송신 속도 배율이 2x 라면, 실제 송신 속도는 3*2=6Mbps가 된다. In the above embodiment, it is also possible to indicate the transmission speed by using the magnification. Magnification is the ratio of the actual transmission speed to the playback speed that meets real-time playback conditions. For example, if the playback speed that meets real-time playback conditions is 3Mbps and the transmission rate multiplier is 2x, then the actual transmission speed is 3 * 2 = 6Mbps.

한편, 본 발명에 따른 스트리밍 방법은 컴퓨터 프로그램으로 작성 가능하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 스트리밍 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체, 및 캐리어 웨이브 매체를 포함한다.Meanwhile, the streaming method according to the present invention can be written in a computer program. Codes and code segments constituting the program can be easily inferred by a computer programmer in the art. The program is also stored in a computer readable media, which is read and executed by a computer to implement a streaming method. The information storage medium includes a magnetic recording medium, an optical recording medium, and a carrier wave medium.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

전술한 바와 같이 본 발명에 따르면, 실시간 재생을 위한 스트리밍에 있어서, 서버와 클라이언트가 송신 지연 시간을 협상함으로써 진부한 데이터의 발생 및 데이터 유실을 방지하는 스트리밍 방법이 제공된다.As described above, according to the present invention, in a streaming for real time playback, a streaming method is provided in which a server and a client negotiate a transmission delay time to prevent the generation of obsolete data and data loss.

또한 본 발명에 따르면, 송신 앞섬 시간 또는 송신 속도를 협상함으로써 다른 클라이언트의 스트리밍의 속도 저하를 방지하는 스트리밍 방법이 제공된다.In addition, according to the present invention, there is provided a streaming method that prevents the slowing down of streaming of another client by negotiating transmission lead time or transmission speed.

Claims (27)

하나이상의 프레임을 포함하는 스트림을 스트리밍 서버로부터 스트리밍 클라이언트로 전송하는 스트리밍 방법에 있어서,In the streaming method for transmitting a stream containing one or more frames from the streaming server to the streaming client, a)클라이언트로부터 상기 클라이언트의 수신 버퍼의 최대 사전 버퍼링 시간에 기초하여 결정된 최대 송신 지연 시간의 제안값을 수신하는 단계;a) receiving from the client a suggested value of the maximum transmission delay time determined based on the maximum pre-buffering time of the client's receive buffer; b)상기 최대 송신 지연 시간의 제안값 보다 작은 임의의 값을 최대 송신 지연 시간으로 결정하는 단계; 및 b) determining, as the maximum transmission delay time, any value smaller than the suggested value of the maximum transmission delay time; And c)상기 스트림의 실시간 재생을 위해 상기 서버가 상기 최대 송신 지연 시간보다 작은 송신 지연 시간을 가지는 프레임만을 선택적으로 송신 버퍼에서 전송 선로로 출력하면서 상기 스트림을 클라이언트로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.c) transmitting, by the server, the stream to the client while selectively outputting only frames having a transmission delay time less than the maximum transmission delay time from the transmission buffer to the transmission line for real time reproduction of the stream. How to. 제 1 항에 있어서, 상기 c) 단계는, 상기 최대 송신 지연 시간보다 큰 송신 지연 시간을 가지는 프레임을 상기 송신 버퍼에서 삭제하는 단계를 포함하는 것을 특징으로 하는 방법.2. The method of claim 1, wherein step c) includes deleting a frame in the transmission buffer that has a transmission delay time greater than the maximum transmission delay time. 제 1 항에 있어서, 상기 최대 송신 지연 시간의 제안값은 어플리케이션 프로토콜의 헤더내에 포함되는 것을 특징으로 하는 방법.2. The method of claim 1, wherein the suggested value of the maximum transmission delay time is included in a header of an application protocol. 제 1 항에 있어서, 상기 송신 지연 시간은 이하 수학식The method of claim 1, wherein the transmission delay time is
Figure 112004032749878-pat00009
Figure 112004032749878-pat00009
에 기초하여 생성되고, 여기서 Td(i)는 I번째 프레임의 송신 지연 시간, Tactual(i)는 I번째 프레임의 실제 송신 시간, Trealtime(i)는 실시간 재생 조건을 만족하는 I번째 프레임의 송신 시간을 의미하는 것을 특징으로 하는 방법.Where Td (i) is the transmission delay time of the I-th frame, T actual (i) is the actual transmission time of the I-frame, and T realtime (i) is the I-frame of the real time playback condition. Means a transmission time.
제 4 항에 있어서, 상기 실시간 재생 조건을 만족하는 I번째 프레임의 송신시간 Trealtime(i)는 이하 수학식 The transmission time T realtime (i) of the I-th frame that satisfies the real-time reproduction condition is expressed by the following equation.
Figure 112004032749878-pat00010
Figure 112004032749878-pat00010
에 기초하여 생성되고, 여기서 T0 는 스트리밍 개시 시간 즉 서버에 의해 송신되는 첫 번째 프레임의 송신 시간이며, Tst(1)는 첫번째 프레임의 타임스탬프이고, Tst(i)는 I번째 프레임의 타임스탬프인 것을 특징으로 하는 방법.And T0 is the streaming start time, that is, the transmission time of the first frame transmitted by the server, Tst (1) is the timestamp of the first frame, and Tst (i) is the timestamp of the Ith frame. Characterized in that the method.
제 3 항에 있어서, 상기 어플리케이션 프로토콜은 HTTP, RTP 중 어느하나를 포함하는 것을 특징으로 하는 방법.4. The method of claim 3, wherein the application protocol comprises one of HTTP and RTP. 제 1 항에 있어서, d)클라이언트가 상기 스트림을 수신하는 단계를 더 포함하고, 상기 클라이언트의 최소 수신 버퍼링 시간은 상기 최대 송신 지연 시간보다 같거나 큰 값인 것을 특징으로 하는 방법.2. The method of claim 1, further comprising d) receiving the stream by a client, wherein the minimum receive buffering time of the client is equal to or greater than the maximum transmission delay time. 제 7 항에 있어서, 상기 최대 송신 지연 시간은 어플리케이션 프로토콜의 헤더내에 포함되어 상기 서버로부터 상기 클라이언트로 전송되는 것을 특징으로 하는 방법.8. The method of claim 7, wherein the maximum transmission delay time is included in a header of an application protocol and transmitted from the server to the client. 제 1 항에 있어서, 상기 a)단계는,The method of claim 1, wherein step a) comprises: 상기 최대 송신 지연 시간이 무한대값임을 나타내는 플래그를 수신하는 단계를 포함하고,Receiving a flag indicating that the maximum transmission delay time is an infinite value, 상기 서버는 상기 플래그를 수신하면, 상기 스트림의 모든 프레임을 상기 클라이언트로 전송하는 것을 특징으로 하는 방법.And upon receipt of the flag, the server sends all frames of the stream to the client. 제 1 항에 있어서, e)상기 최대 송신 지연 시간에 기초하여, 상기 서버가 상기 클라이언트에게 전송되지 못한 패킷을 재전송하는 회수를 나타내는 최대 재전송 회수를 결정하는 단계를 더 포함하고,The method of claim 1, further comprising: e) determining, based on the maximum transmission delay time, the maximum number of retransmissions representing the number of times the server retransmits a packet that has not been transmitted to the client, 상기 서버는, 해당 프레임을 상기 클라이언트로 전송할 때, 상기 최대 재전송 회수를 한도로 재전송을 수행하는 것을 특징으로 하는 방법.And when the corresponding frame is transmitted to the client, the server retransmits the maximum retransmission limit. 제 10 항에 있어서, 상기 최대 재전송 회수는 이하 수학식 The method of claim 10, wherein the maximum retransmission number is
Figure 112004032749878-pat00011
Figure 112004032749878-pat00011
에 기초하여 생성되며, 여기서 Nmax 는 최대 재전송 회수이며, Trt 는 한번의 재전송에 걸리는 라운드 트립 시간(Round Trip Time),즉 하나의 IP 패킷이 서버로부터 클라이언트로 전송된 후 다시 클라이언트로부터 서버까지 되돌아오는데 걸리는 시간을 의미하는 것을 특징으로 하는 방법.Where Nmax is the maximum number of retransmissions, and Trt is the round trip time for one retransmission, i.e. one IP packet is sent from server to client and then back from client to server. Means the time taken.
제 11 항에 있어서, 상기 재전송은 프레임 유실 확률이 소정의 임계값 이상인 경우에만 수행되는 것을 특징으로 하는 방법.12. The method of claim 11, wherein the retransmission is performed only when the probability of frame loss is greater than or equal to a predetermined threshold. 제 12 항에 있어서, 상기 프레임 유실 확률은 이하 수학식 The method of claim 12, wherein the frame loss probability is
Figure 112004032749878-pat00012
Figure 112004032749878-pat00012
에 기초하여 생성되고, 여기서 Pfrm 은 프레임 유실 확률, Ppkt는 패킷 유실 확률, N 은 해당 프레임에 포함된 패킷의 수를 나타내는 것을 특징으로 하는 방법.And Pfrm is a frame loss probability, Ppkt is a packet loss probability, and N is a number of packets included in the frame.
제 13 항에 있어서, 상기 패킷 유실 확률은 이하 수학식The method of claim 13, wherein the packet loss probability is
Figure 112004032749878-pat00013
Figure 112004032749878-pat00013
에 기초하여 생성되고, 여기서 Ppkt 는 패킷 유실 확률, P0는 UDP 패킷이 서버로부터 클라이언트로 또는 클라이언트로부터 서버로 전송될 때 해당 UDP 패킷이 유실될 확률(1-수신된 전체 패킷의 수/송신된 전체 패킷의 수), M 는, 프레임이 진부한(out of date) 데이터로 간주되기 이전에, 패킷이 서버로부터 클라이언트로 또는 클라이언트로부터 서버로 라우팅되면서 전송되는 회수를 나타내는 것을 특징으로 하는 방법.Where Ppkt is the probability of packet loss, and P0 is the probability that the corresponding UDP packet will be lost when the UDP packet is sent from server to client or from client to server (1-total received packets / total transmitted). Number of packets), where M is the number of times a packet is transmitted as it is routed from server to client or from client to server before the frame is considered out of date data.
하나이상의 프레임을 포함하는 스트림을 스트리밍 서버로부터 스트리밍 클라이언트로 전송하는 스트리밍 방법에 있어서,In the streaming method for transmitting a stream containing one or more frames from the streaming server to the streaming client, a)클라이언트로부터 상기 클라이언트의 실시간 재생 스트리밍 속도에 기초하여 결정된 최대 송신 앞섬 시간의 제안값을 수신하는 단계;a) receiving from the client a suggested value of the maximum transmission lead time determined based on the real-time playback streaming rate of the client; b)상기 최대 송신 앞섬 시간의 제안값에 기초하여 최대 송신 앞섬 시간을 결정하는 단계; 및 b) determining a maximum transmission lead time based on the suggested value of the maximum transmission lead time; And c)상기 스트림의 실시간 재생을 위해 상기 서버가 상기 최대 송신 앞섬 시간보다 작은 송신 앞섬 시간을 가지는 프레임만을 선택적으로 송신 버퍼에서 전송 선로로 출력하면서 상기 스트림을 클라이언트로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.c) transmitting, by the server, the stream to the client while selectively outputting only a frame having a transmission leading time less than the maximum transmission leading time from the transmission buffer to the transmission line for real time reproduction of the stream. How to. 제 15 항에 있어서, 상기 c) 단계는, 상기 최대 송신 앞섬 시간보다 큰 송신 앞섬 시간을 가지는 프레임을, 상기 송신 앞섬 시간이 상기 최대 송신 앞섬 시간이 될 때 까지 상기 송신 버퍼에서 유지시키는 단계를 포함하는 것을 특징으로 하는 방법.16. The method of claim 15, wherein step c) includes maintaining a frame having a transmission leading time greater than the maximum transmission leading time in the transmission buffer until the transmission leading time becomes the maximum transmission leading time. Characterized in that. 제 15 항에 있어서, 상기 최대 송신 앞섬 시간의 제안값은 어플리케이션 프로토콜의 헤더내에 포함되는 것을 특징으로 하는 방법.16. The method of claim 15, wherein the suggested value of the maximum transmission lead time is included in a header of an application protocol. 제 15 항에 있어서, 상기 b)단계는,The method of claim 15, wherein b), b1)상기 서버에 현재 연결된 모든 다른 클라이언트의 실시간 재생 조건을 만족시키는 총 실시간 재생 조건 대역폭(Realtime Bandwith, BW_rt)을 계산하는 단계;b1) calculating a total real time playing condition bandwidth (BW_rt) satisfying real time playing conditions of all other clients currently connected to the server; b12)전송 선로의 전체 대역폭(total channel Bandwith, BW_ch)에서 상기 총 실시간 재생 조건 대역폭(Realtime Bandwith)을 감산함으로써 여유 대역폭(available bandwith, BW_avail)을 계산하는 단계;b12) calculating an available bandwith (BW_avail) by subtracting the total real-time playback condition bandwidth (Realtime Bandwith) from the total bandwidth (BW_ch) of a transmission line; b13)상기 여유 대역폭 및 제 1 클라이언트가 요청하는 스트리밍 속도에 기초하여 각각의 프레임마다 제 1 클라이언트에게 허용가능한 송신 앞섬 시간인 허용 가능 송신 앞섬 시간(Ta_allow)을 계산하는 단계; 및b13) calculating an allowable transmission lead time (Ta_allow) which is an allowable transmission lead time for the first client for each frame based on the free bandwidth and the streaming rate requested by the first client; And b14)상기 허용가능 송신 앞섬 시간보다 작은 값중에서 임의의 값을 선택함으로써 제 1 클라이언트에 허여가능한 최대 송신 앞섬 시간(Ta_max)을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.b14) determining the maximum transmit prefix time (Ta_max) allowable to the first client by selecting any value among the values smaller than the allowable transmit prefix time. 제 18 항에 있어서, 상기 총 실시간 재생 조건 대역폭은 상기 서버에 연결된 모든 다른 클라이언트의 각각의 스트리밍의 실시간 재생 속도의 합인 것을 특징으로 하는 방법.19. The method of claim 18, wherein the total real time playback condition bandwidth is the sum of the real time playback rates of each streaming of all other clients connected to the server. 제 15 항에 있어서, 상기 송신 앞섬 시간은 이하 수학식The method of claim 15, wherein the transmission leading time is
Figure 112004032749878-pat00014
Figure 112004032749878-pat00014
에 기초하여 생성되고, 여기서 Ta(i)는 I번째 프레임의 송신 지연 시간, Tactual(i)는 I번째 프레임의 실제 송신 시간, Trealtime(i)는 실시간 재생 조건을 만족하는 I번째 프레임의 송신 시간을 의미하는 것을 특징으로 하는 방법.Where Ta (i) is the transmission delay time of the I-frame, T actual (i) is the actual transmission time of the I-frame, and T realtime (i) is the I-frame of the Means a transmission time.
제 20 항에 있어서, 상기 실시간 재생 조건을 만족하는 I번째 프레임의 송신시간 Trealtime(i)는 이하 수학식 The method of claim 20, wherein the transmission time T realtime (i) of the I-th frame satisfying the real time reproduction condition is
Figure 112004032749878-pat00015
Figure 112004032749878-pat00015
에 기초하여 생성되고, 여기서 T0 는 스트리밍 개시 시간 즉 서버에 의해 송신되는 첫 번째 프레임의 송신 시간이며, Tst(1)는 첫번째 프레임의 타임스탬프이고, Tst(i)는 I번째 프레임의 타임스탬프인 것을 특징으로 하는 방법.Is generated based on the stream start time, that is, the transmission time of the first frame transmitted by the server, Tst (1) is the timestamp of the first frame, and Tst (i) is the timestamp of the Ith frame. Characterized in that the method.
제 15 항에 있어서, d)클라이언트가 상기 스트림을 수신하는 단계를 더 포함하고, 상기 클라이언트의 최소 수신 버퍼링 시간은 상기 최대 송신 앞섬 시간보다 같거나 큰 값인 것을 특징으로 하는 방법.16. The method of claim 15, further comprising d) receiving the stream by a client, wherein the minimum receive buffering time of the client is equal to or greater than the maximum transmit leading time. 제 22 항에 있어서, 상기 최대 송신 앞섬 시간은 어플리케이션 프로토콜의 헤더내에 포함되어 상기 서버로부터 상기 클라이언트로 전송되는 것을 특징으로 하는 방법.23. The method of claim 22, wherein the maximum transmission lead time is included in a header of an application protocol and transmitted from the server to the client. 하나이상의 프레임을 포함하는 스트림을 서버로부터 클라이언트로 전송하는 스트리밍 방법에 있어서,In the streaming method for transmitting a stream containing one or more frames from the server to the client, a)클라이언트로부터 상기 클라이언트의 실시간 재생 스트리밍 속도에 기초하 여 결정된 최대 송신 속도의 제안값을 수신하는 단계;a) receiving from the client a suggested value of the maximum transmission rate determined based on the real-time playback streaming rate of the client; b)상기 서버에 연결된 다른 클라이언트로의 네트워크 부하에 기초하여 상기 클라이언트에게 스트리밍가능한 최대 속도인 최대 송신 속도를 결정하는 단계; 및b) determining a maximum transmission rate, which is the maximum rate streamable to the client, based on the network load on other clients connected to the server; And c)상기 최대 송신 속도가 상기 최대 송신 속도의 제안값보다 같거나 큰 경우에, 상기 최대 송신 속도의 제안값에 따라 상기 스트림을 상기 클라이언트로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.c) if the maximum transmission rate is equal to or greater than the proposed transmission rate of the maximum transmission rate, transmitting the stream to the client according to the proposal of the maximum transmission rate. 제 24 항에 있어서, 상기 최대 송신 속도가 상기 최대 송신 속도의 제안값 보다 작은 경우, 상기 클라이언트에게 상기 최대 송신 속도의 제안값으로는 스트리밍 할 수 없음을 나타내는 전송 불가 메시지를 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.25. The method of claim 24, further comprising: if the maximum transmission rate is less than the suggested value of the maximum transmission rate, sending a non-transmittable message to the client indicating that streaming is not possible with the suggested value of the maximum transmission rate. Characterized in that. 제 24 항에 있어서, 상기 b)단계는,The method of claim 24, wherein b), b11)상기 서버에 현재 연결된 모든 다른 클라이언트의 실시간 재생 조건을 만족시키는 총 실시간 재생 조건 대역폭을 계산하는 단계;b11) calculating a total real time playback condition bandwidth that satisfies the real time playback conditions of all other clients currently connected to the server; b12)전송 선로의 전체 대역폭에서 상기 총 실시간 재생 조건 대역폭을 감산함으로써 최대 송신 속도를 결정하는단계를 포함하는 것을 특징으로 하는 방법.b12) determining the maximum transmission rate by subtracting the total real time playback condition bandwidth from the total bandwidth of the transmission line. 제 1 항에 기재된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method of claim 1 on a computer.
KR1020040057540A 2004-07-23 2004-07-23 Streaming method using negotiation of sending delay time KR100677125B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040057540A KR100677125B1 (en) 2004-07-23 2004-07-23 Streaming method using negotiation of sending delay time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040057540A KR100677125B1 (en) 2004-07-23 2004-07-23 Streaming method using negotiation of sending delay time

Publications (2)

Publication Number Publication Date
KR20060008684A KR20060008684A (en) 2006-01-27
KR100677125B1 true KR100677125B1 (en) 2007-02-02

Family

ID=37119675

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040057540A KR100677125B1 (en) 2004-07-23 2004-07-23 Streaming method using negotiation of sending delay time

Country Status (1)

Country Link
KR (1) KR100677125B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100667351B1 (en) * 2005-04-14 2007-01-10 주식회사 케이티프리텔 Apparatus and method for transmitting multimedia data and record media recored program therefor
KR100958013B1 (en) * 2008-04-04 2010-05-17 에스케이 텔레콤주식회사 System and method for providing multimedia streaming service

Also Published As

Publication number Publication date
KR20060008684A (en) 2006-01-27

Similar Documents

Publication Publication Date Title
JP4414311B2 (en) Multimedia streaming service system and method
US8306058B2 (en) Communication system and techniques for transmission from source to destination
US8516346B2 (en) Packet transmission apparatus, communication system and program
JP4287376B2 (en) Streaming media
JP3598110B2 (en) Data transmission method and apparatus
EP1193920B1 (en) Improved media streaming methods and arrangements
KR101284516B1 (en) Optimised bandwidth utilisation in networks
US20050152397A1 (en) Communication system and techniques for transmission from source to destination
CN101729228B (en) Method, network node and system for inhibiting retransmission of lost packet
US20100077251A1 (en) Method and system for reliably and efficiently transporting data over a network
US11949512B2 (en) Retransmission of data in packet networks
KR102198701B1 (en) Method and apparatus for transmitting and receiving information in a multimedia system
US8127196B2 (en) Server and client for determining error restoration according to image data transmission, and method of determining error restoration according to image data transmission
US20090077256A1 (en) Dynamic change of quality of service for enhanced multi-media streaming
US20060230171A1 (en) Methods and apparatus for decreasing latency in A/V streaming systems
JP2007110395A (en) Stream data transfer apparatus, stream data transfer method, and program and recording medium used for them
JP2004135239A (en) Data distributing apparatus, receiving apparatus, data distributing method, data distributing program, and recording medium with the same program recorded thereon
KR100677125B1 (en) Streaming method using negotiation of sending delay time
KR100631516B1 (en) Streaming system and adaptive band allocation method
JP2005348015A (en) Real time streaming data receiver
JP3848222B2 (en) Resending method
WO2009109232A1 (en) Method and apparatus for distributing media over a communications network
Kritzner et al. Priority based packet scheduling with tunable reliability for wireless streaming
Huszák et al. TFRC-Based Selective Retransmission for Multimedia Applications.
JP2009206998A (en) Communications device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121228

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131230

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141223

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151229

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161228

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee