WO2012053834A2 - Streaming service transmitting/receiving device and method - Google Patents

Streaming service transmitting/receiving device and method Download PDF

Info

Publication number
WO2012053834A2
WO2012053834A2 PCT/KR2011/007827 KR2011007827W WO2012053834A2 WO 2012053834 A2 WO2012053834 A2 WO 2012053834A2 KR 2011007827 W KR2011007827 W KR 2011007827W WO 2012053834 A2 WO2012053834 A2 WO 2012053834A2
Authority
WO
WIPO (PCT)
Prior art keywords
tcp packet
time
timestamp
jitter
arrival
Prior art date
Application number
PCT/KR2011/007827
Other languages
French (fr)
Korean (ko)
Other versions
WO2012053834A3 (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
Priority claimed from KR1020110030790A external-priority patent/KR101180540B1/en
Application filed by 한국전자통신연구원, 연세대학교 산학협력단 filed Critical 한국전자통신연구원
Priority to US13/880,941 priority Critical patent/US20130282871A1/en
Publication of WO2012053834A2 publication Critical patent/WO2012053834A2/en
Publication of WO2012053834A3 publication Critical patent/WO2012053834A3/en

Links

Images

Classifications

    • 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
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • 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]

Definitions

  • the present invention relates to a streaming service transmission / reception system, and more particularly, to an apparatus and method for progressive streaming service transmission / reception using de-jitter buffering time estimation.
  • IP Internet Protocol
  • a multimedia payload is packetized into a Real-time Transport Protocol (RTP), and then an RTP packet is loaded on a user datagram protocol (UDP) and transmitted.
  • RTP Real-time Transport Protocol
  • UDP user datagram protocol
  • UDP is suitable for real-time multimedia transmission but does not provide the ability to improve the quality of service (QoS) by retransmission of packets that are lost during transmission.
  • QoS quality of service
  • Digital video such as H.264
  • Digital video is compressed by using prediction based coding between frames.
  • the error due to the lost packet is followed until the blocked video is blocked by a subsequent I-frame received after the lost packet. Propagated through the frames.
  • RTP / UDP-based real-time multimedia streaming is suitable for a real-time service requiring low delay, but has a disadvantage in terms of guaranteeing QoS.
  • the download method If the download method is used, the client system downloads the entire video file and then starts playback. Therefore, the user of the client system can enjoy high quality service.
  • the download method has the same problems as 1) and 2) below.
  • the user can watch the video after a long download time.
  • the client side must prepare a storage space to download and save the entire video file in advance.
  • Progressive streaming services are similar to downloads in that they use the transmission control protocol (TCP) as the transport protocol.
  • TCP transmission control protocol
  • the progressive streaming service is similar to the real-time streaming in that it plays the media data already received in real time while the file including the media data is downloaded.
  • progressive streaming service can be regarded as a technology that utilizes only the advantages of both download and streaming technologies.
  • MPEG transport stream is a transmission protocol standard standard for multiplexing compressed data of audio and video and delivering multiplexed compressed data through a broadcasting network such as DVB, ISDB, ATSC, DMB, and the like.
  • a streaming service for transmitting MPEG TS through a wired or wireless IP network by using HTTP and TCP protocols may be provided.
  • a streaming service transmitting / receiving apparatus and method for transmitting a TCP packet including information necessary for calculating arrival interval jitter may be provided.
  • One embodiment of the present invention can provide a streaming service transmission and reception apparatus and method for calculating the arrival interval jitter based on the arrival time and the expected arrival time of the TCP packet.
  • a streaming service transmission method is provided, which is the expected arrival time of.
  • the streaming service transmission method may further include checking whether there is a TS packet including the PCR information in a TS header among the one or more TS packets loaded in the payload.
  • the timestamp may represent a time at which the first byte of the payload arrives at the terminal as a system time clock count value using the system clock frequency of the streaming server.
  • the time stamp may include a base clock and an extended clock, and the base clock may use a smaller frequency unit than the extended clock.
  • the length of the bits of the timestamp may be determined based on the precision of the arrival time delay variation required by the terminal.
  • Writing the timestamp in the TCP packet may store the timestamp in an options field in the header of the TCP packet.
  • the TS packet load unit for loading one or more TS packets in the payload of the TCP packet, setting the first PCR information in the one or more TS packets in the payload to the PCR of the TCP packet
  • a PCR setting unit for calculating a timestamp of the TCP packet based on the PCR, a timestamp recording unit for recording the timestamp in the TCP packet, and a transmission unit for transmitting the TCP packet to the terminal;
  • a time stamp is provided with a streaming service transmitting apparatus, wherein the TCP packet is an expected arrival time of the TCP packet.
  • the first timestamp is the reception time of the first TCP packet expected by the server
  • the second clock count is a system time clock at the moment a second TCP packet received before the TCP packet is received, and the second time
  • the stamp is provided with a streaming service receiving method, wherein the server is the time of receipt of the second TCP packet expected by the server extracted from the second TCP packet.
  • the operation of calculating a de-jitter buffering time based on the first clock count, the first timestamp, the second clock count, and the second timestamp may include: generating a first jitter based on the first clock count and the first timestamp; Calculating a first network jitter experienced by a TCP packet, a first arrival between the second TCP packet and the first TCP packet based on the first network jitter and the second network jitter experienced by the second TCP packet Calculating a time interval and calculating the de-jitter buffering time based on the first network jitter and the first arrival time interval.
  • the calculating of the de-jitter buffering time based on the first network jitter and the first arrival time interval may include: determining the de-jitter buffering time based on the second arrival interval jitter and the first arrival time interval of the second TCP packet. Calculating a first arrival interval jitter of one TCP packet, wherein the arrival interval jitter is an arrival interval delay variation between successive arriving packets, a second arrival interval variance of the second TCP packet, the first arrival time Calculating a first arrival interval variance of the first TCP packet based on an interval and the first arrival time interval, wherein the arrival time variance is a variance for the arrival time interval and a first first arrival interval jitter and the Calculating the de-jitter buffering time based on a first arrival interval variance.
  • the first timestamp may be in an options field in the header of the first TCP packet.
  • the streaming service receiving method may further include determining a final de-jitter buffering time among the de-jitter buffering time and the analyzing time, wherein the analyzing time is a time sufficient to receive and analyze the received TCP packets. Can be.
  • the streaming service receiving method may further include setting the de-jitter buffering time to a buffering time of a transport stream system target decoder of the streaming client.
  • a receiver for receiving a first TCP packet, a clock count measuring unit for measuring a first clock count of the system time clock at the moment the first TCP packet is received, from the first TCP packet
  • a timestamp extractor extracting a first timestamp of the first TCP packet and a de-jitter buffering time calculated based on the first clock count, first timestamp, second clock count, and second timestamp
  • a jitter buffering time calculation unit wherein the first timestamp is a reception time of the first TCP packet expected by the server, and the second clock count is a value of receiving a second TCP packet received before the TCP packet;
  • a second system time clock wherein the second time stamp is a reception time of the second TCP packet expected by the server extracted from the second TCP packet.
  • a streaming service transmitting / receiving apparatus and method for calculating arrival interval jitter based on arrival time and expected arrival time of a TCP packet are provided.
  • FIG 1 illustrates an overview of an HTTP-based progressive streaming service according to an example of the present invention.
  • FIG. 2 shows an overview of an MPEG TS based progressive streaming service according to an embodiment of the present invention.
  • FIG. 3 illustrates a structure of an MPEG TS packet according to an embodiment of the present invention.
  • FIG. 4 illustrates a standard T-STD buffer model according to an example of the present invention.
  • FIG 5 illustrates a change in packet arrival delay time in an IP network according to an embodiment of the present invention.
  • FIG. 6 illustrates a TCP payload format composed of n MPEG TS packets according to an embodiment of the present invention.
  • FIG. 7 illustrates a structure of a TCP packet including TS packets including PCR information in a header according to an embodiment of the present invention in a TCP payload.
  • FIG. 8 illustrates a timing model for estimating the time at which a TCP packet arrives at a receiver according to an example of the present invention.
  • FIG. 9 is a flowchart illustrating a method of operating a transmitting side according to an embodiment of the present invention.
  • FIG. 10 illustrates a basic structure of a header 310 of a TCP packet and an extension field that may be selectively used according to an embodiment of the present invention.
  • FIG. 11 is a structural diagram of a transmitting side 1100 according to an embodiment of the present invention.
  • FIG. 12 is a flowchart illustrating a method of operating a receiving side according to an embodiment of the present invention.
  • FIG. 13 illustrates a T-STD buffer model including de-jitter buffering according to an embodiment of the present invention.
  • FIG. 14 is a structural diagram of a receiving side 1400 according to an example of the present invention.
  • 15 illustrates a delay of media playback time due to de-jitter buffering configured according to an embodiment of the present invention.
  • FIG 1 illustrates an overview of an HTTP-based progressive streaming service according to an example of the present invention.
  • the terminal (ie, client) 110 transmits a "GET Request" 130 of the HTTP protocol to inform the server 120 of the service request for the desired content file.
  • the server 120 transmits the content file to the terminal 110.
  • the server 120 uses TCP as a transport protocol for transmitting the content file to guarantee QoS.
  • the content file arrives at the terminal 110 by TCP.
  • the terminal 110 buffers some data of an initially arrived content file.
  • the terminal 110 displays the data in the TCP packet arriving in real time from when the TCP packet arriving at the terminal 110 fills the buffer by a predetermined amount in order to reduce the service delay time, which is a problem of the conventional download scheme. . That is, the terminal 110 parses some data of the buffered content file to play out video and audio.
  • the HTTP-based progressive streaming service is differentiated from the download method in which the content file is played only after all data of the content file arrives at the terminal 110.
  • the progressive streaming service based on HTTP can reduce service delay time, which is a problem of the conventional download method, and can guarantee QoS.
  • Content files transmitted from existing progressive streaming services are QuickTime (.mov), MPEG-4 (.mp4) and Windows Media Video (Windows Media Video) to store compressed video and audio as a single file. (.wmv), Flash Video (.flv), and 3GPP (.3gp) file formats.
  • FIG. 2 shows an overview of an MPEG TS based progressive streaming service according to an embodiment of the present invention.
  • FIG. 2 shows an overview of a service for providing multimedia content produced by the MPEG TS standard by HTTP progressive streaming.
  • the HTTP progressive streaming server can produce (i.e. encode) video / audio compressed data in MPEG TS standards compressed with various multimedia encoders for use as MPEG TS broadcast content.
  • the produced MPEG TS content may be serviced through HTTP progressive streaming.
  • the HTTP progressive streaming server may utilize the MPEG TS content obtained by converting a content file produced by an existing file format standard into MPEG TS for the HTTP progressive streaming service.
  • a client using HTTP progressive streaming simply requests the desired MPEG TS content from the server through an HTTP GET request.
  • a program clock reference included in a header of an MPEG TS packet when MPEG TS content is transmitted to a client through an IP network (eg, a wired or wireless Internet) by a progressive streaming service, a program clock reference included in a header of an MPEG TS packet.
  • IP network eg, a wired or wireless Internet
  • a method and apparatus for effectively estimating network jitter by utilizing PCR clock information are disclosed.
  • Network jitter is the arrival time delay variation between TCP packets arriving at the receiving end.
  • Embodiments of the present invention may estimate inter-arrival jitter, which is a delay variation in arrival time between packets based on network jitter.
  • T-STD Transport Stream System Target Decoder
  • the de-jitter buffering of the terminal absorbs the difference in arrival time with the packets arriving later by not allowing the receiving side to start the playback process immediately when the first packet arrives at the receiving side.
  • the de-jitter buffering allows the receiving side to start playing after collecting the packets to some extent so that the original time interval between the packets can be maintained.
  • the length of de-jitter buffering is that after the first packet arrives at the receiver, before the receiver performs the full video and audio playback process, the first packet must wait in the file buffer. Decide when to do it.
  • the initial playout process immediately following the de-jitter buffering is delayed in proportion to the size of the buffering.
  • the latency for services experienced by the user increases.
  • Embodiments of the present invention are directed to the size of the appropriate de-jitter buffering time and the size of the de-jitter buffering required to absorb arrival interval jitter through estimation of arrival interval jitter of TCP packets in an MPEG TS based progressive streaming service.
  • a method and apparatus for determining a corresponding initial playout delay is disclosed.
  • the initial play delay time corresponds to the time after the first packet arrives at the receiver, and the first packet stays for de-jitter buffering in the TCP file buffer before the packet is delivered to the T-STD buffer model.
  • the initial playback delay time determines the initial playback time point for the received media (or content).
  • FIG. 3 illustrates a structure of an MPEG TS packet according to an embodiment of the present invention.
  • the MPEG TS packet 300 is a fixed length packet of size 188 bytes.
  • MPEG TS is a continuous stream of MPEG TS packets 300.
  • the structure of the header 310 and payload 320 of the MPEG TS packet 300 is shown.
  • the fields in the header 310 are shown hierarchically. The number below the field indicates the size (in bits) of the field.
  • the header 310 is basically 4 bytes in size (sync byte field to continuity counter field).
  • the size of the header 310 can be increased according to the presence or absence of an adaptation field and an optional field existing to deliver various extended information.
  • MPEG TS is a standard for effectively multiplexing and delivering video and audio compressed data transmitted from a digital broadcasting service.
  • the elementary stream of compressed video / audio is packetized elementary stream (PES) packetized.
  • PES packetized elementary stream
  • the PES packet is finely divided into fixed length TS packets of 188 bytes in size, and the divided TS packets are transmitted by properly multiplexing video and audio.
  • FIG. 4 illustrates a standard T-STD buffer model according to an example of the present invention.
  • MPEG TS is a standard developed for the purpose of digital broadcasting service. Therefore, TS packets are delivered to the receiver through a broadcasting network which is a circuit switched network in which channel quality is relatively stable. Therefore, the packet delay time experienced by MPEG TS packets in the transport channel is relatively short and constant. In addition, a timing buffer model for sequentially processing TS packets arriving at the receiver may also be effectively applied.
  • T-STD Transport Stream System Target Decoder
  • FIG. 4 a structure of a standard T-STD buffer model is disclosed in which multiplexed TS packets related to video, audio, and system information received by multiplexing MPEG MPEG are demultiplexed, and the demultiplexed streams are sequentially buffered.
  • MPEG TS aims to deliver multimedia data over circuit switched networks with relatively high bandwidth quality and low propagation delay, such as broadcast networks or Asynchronous Transfer Mode (ATM) networks.
  • ATM Asynchronous Transfer Mode
  • the delay variation in arrival time between packets which is a chronic problem of the Internet, may be estimated accurately.
  • the standard T-STD model of FIG. 4 designed for MPEG TS transmission through a broadcasting network is also required to be modified based on this estimation.
  • each of the packets When packets are transmitted through the wired / wireless Internet based on the IP network, the routing paths through which each of the packets may be different from each other, unlike when the packets are transmitted through the existing broadcasting network. In addition, since the amount of traffic to be processed and the processing time for each router through each of the packets are different from each other, the destination arrival times of each of the packets may be different from each other.
  • An embodiment of the present invention to be described below discloses a method for accurately estimating arrival delay time variation between TCP packets occurring when MPEG TS is delivered to a client via a progressive streaming service in a wired or wireless Internet environment.
  • embodiments of the present invention to be described below disclose a modified T-STD model based on the estimated arrival delay variation.
  • FIG 5 illustrates a change in packet arrival delay time in an IP network according to an embodiment of the present invention.
  • FIG. 5 shows an example of a dynamic variation in the arrival delay time that packets undergo when they are delivered over a general IP network.
  • packets of size h bytes are transmitted through the IP network.
  • the packets undergo a transmission delay of x1, x2 and x3 through the IP network and arrive at the receiver at t1, t2 and t3 time instants, respectively.
  • time x3 is larger than x1 and x2.
  • a variation of arrival delay time by b seconds occurs between t2 and t3.
  • the size of the de-jitter buffering is too small, the risk of buffer underflow increases, resulting in frequent refurbishing. Conversely, if the size of the de-jitter buffering is too large, the buffering time for the arrived data becomes long, resulting in latency of service resulting in poor service quality.
  • Inter-arrival jitter is a variation in arrival delay time between packets.
  • PCR may be present in an MPEG TS packet header carried in a TCP packet.
  • the computational and implementation complexity of the method and apparatus for estimating inter-arrival jitter by utilizing the PCR information recorded in the TS packet is low.
  • FIG. 6 illustrates a TCP payload format composed of n MPEG TS packets according to an embodiment of the present invention.
  • MPEG TS packets have a fixed size of 188 bytes. Therefore, several TS packets may be carried in the payload of one TCP packet. Considering that the size of the Ethernet maximum transfer unit (MTU) is 1500 bytes, theoretically, up to seven TS packets may be carried in the payload of TCP.
  • MTU Ethernet maximum transfer unit
  • a TCP payload format is shown that maps n TS packets into the payload of one TCP packet.
  • PCR is present in the header of the TS packet.
  • the PCR value is a value obtained by sampling the time at the system encoder at a system clock frequency (SCF) of 27 MHz.
  • the PCR clock can consist of a total of 42 bits.
  • the PCR clock may consist of a 33-bit PCR_base expressed in units of 90 KHz (ie, SCF / 300) and 9 bits of PCR_ext expressed in units of 27 MHz (ie, SCF).
  • PCR is typically transmitted periodically within 100 ms to maintain STC synchronization between the transmitter and receiver.
  • TS packet including PCR information in a header among TS packets constituting the payload format of the TCP packet.
  • FIG. 7 illustrates a structure of a TCP packet including TS packets including PCR information in a header according to an embodiment of the present invention in a TCP payload.
  • TCP (n) 710 and TCP (n + 1) 750 are shown, respectively.
  • TCP (n) 710 is an n th TCP packet containing TS packets including PCR information in a header in a TCP payload.
  • TCP (n + 1) 750 is the n + 1 th TCP packet which contains TS packets including PCR information in the header in the TCP payload.
  • TCP (n) and TCP (n + 1) are two TCP packets whose transmission order sequentially neighbors, while including at least one TS packet including PCR information in a header in the TCP payload.
  • a method of using PCR information included in the TCP payload to estimate the arrival time delay variation of the TCP packet arriving at the receiving side is described below.
  • FIG. 8 illustrates a timing model for estimating the time at which a TCP packet arrives at a receiver according to an example of the present invention.
  • TCP (n) which is the nth TCP packet, includes a plurality of consecutive TS packets in the payload, in a format as described above with reference to FIG. 7.
  • N is an integer of 0 or more.
  • the horizontal axis of FIG. 8 represents a theoretical time at which a TCP packet arrives at a receiving side and a corresponding TCP timestamp value.
  • the vertical axis represents the index value of each successive data byte sent to the receiver.
  • TCP (n) utilizes the PCR value of the first TS packet including PCR information as PCR (n), which is a PCR value representative of TCP (n).
  • n is the index of TCP. That is, the value of n in TCP (n).
  • PCR (n) is the index of the first PCR in TCP (n).
  • i n is the byte index of PCR (n), and i n + 1 is the byte index of PCR (n + 1).
  • the time t (i) at which the i-th data byte arrives at the receiver may be estimated according to Equation 1 below.
  • R (n) is the data rate between the PCR (n) and PCR (n + 1) clocks (ie, the transport rate of the transport stream).
  • R (n) may be calculated according to Equation 2 below.
  • the time t (n + 1) at which the first byte of the payload of TCP (n + 1) arrives at the receiver may be calculated according to Equation 3 below.
  • I represents the size of all the data transmitted in bytes by being located ahead of the byte including the last bit indicating the information of PCR (n + 1) among all data included in TCP (n + 1).
  • t (n + 1) is calculated based on PCR (n + 1), I and R (n).
  • FIG. 9 is a flowchart illustrating a method of operating a transmitting side according to an embodiment of the present invention.
  • the transmitting side is a streaming service transmitting apparatus
  • the receiving side is a streaming service receiving apparatus.
  • Operations 910 to 970 show a streaming service transmission method performed by a transmitting side.
  • one or more TS packets are mapped in TCP (n + 1). That is, one or more TS packets are loaded into the payload of TCP (n + 1).
  • operation 920 it is checked whether a TS packet containing PCR information in the TS header exists in the payload of TCP (n + 1). That is, it is checked whether there is a TS packet including PCR information in the TS header among one or more TS packets loaded in the payload of TCP (n + 1).
  • operation 930 If a TS packet including PCR information in the TS header exists in the payload of TCP (n + 1), operation 930 is performed, otherwise operation 960 is performed.
  • TCP time stamps to be described later are not calculated and recorded for TCP (n + 1).
  • PCR (n + 1) is set.
  • Initial PCR information in one or more TS packets in the payload of TCP (n + 1) is set to PCR (n + 1) of TCP (n + 1).
  • a timestamp TCPt (n + 1) of TCP (n + 1) is calculated.
  • the timestamp TCPt (n + 1) is the expected arrival time to the receiver side of the theoretically expected TCP (n + 1).
  • the timestamp of TCP may represent a time reference value for streaming data in the TCP packet stream.
  • the visual reference value may be calculated based on the STC from which the PCR is derived.
  • TCPt (n + 1) is a time corresponding to t (n + 1) of FIG. 8 (that is, the time at which the first byte of the payload of TCP (n + 1) is estimated to arrive at the receiving side). It may be expressed as a clock count value of the STC using.
  • TCPt (n + 1) like PCR (n + 1), can be divided into a base clock TCPt_base (n + 1) and an extension clock TCPt_ext (n + 1). That is, TCPt (n + 1) may include a base clock and an extended clock.
  • the base clock can use smaller frequency units than the extended clock.
  • the base clock may be expressed in units of 90 KHz (ie SCF / 300).
  • the extended clock may be expressed in units of 27 MHz (ie SCF).
  • the timestamp TCPt (n + 1), the base clock TCPt_base (n + 1) and the extended clock TCPt_ext (n + 1) can be calculated according to Equation 4 below.
  • TCPt (n + 1), TCPt_base (n + 1) and TCPt_ext (n + 1) may be calculated based on the system clock frequency and t (n + 1).
  • TCPt (n + 1) has a precision of 27 MHz.
  • TCPt_base (n + 1) may be represented by a total of 33 bits in length
  • TCPt_ext (n + 1) may be represented by a total of 9 bits in length
  • TCPt_base (n + 1) and TCPt_ext TCPt (n + 1), which is the sum of (n + 1), can be represented by a total length of 42 bits as in PCR.
  • TCPt (n + 1) is reset to zero again when TCPt (n + 1) has reached its maximum value can be used for the calculation of TCPt (n + 1).
  • the maximum error that occurs when the time is expressed in a clock of 90 KHz is to be.
  • TCPt_base (n + 1) may be used when the accuracy of the arrival time delay variation may exceed 11 ⁇ s.
  • the maximum error of 11 ⁇ s that can occur due to the use of only TCPt_base (n + 1) is included in the arrival time delay variation itself.
  • the length of the bits of TCPt (n + 1) may be determined based on the precision of the arrival time delay variation required by the receiver.
  • TCPt (n + 1) is written into TCP (n + 1).
  • TCPt (n + 1) may be stored in the header of TCP (n + 1) and may be stored in the options field in the header.
  • TCPt (n + 1) A specific method of storing TCPt (n + 1) in the header of TCP (n + 1) is described in detail below with reference to FIG.
  • TCPt (n + 1) is sent to the receiving side.
  • n is incremented by 1 for the next TCP packet to be processed, and operation 910 is performed again.
  • the transmitting side for generating and transmitting the TCP packet may be a streaming server and may be an HTTP streaming server.
  • the receiving side receiving the TCP packet may be a client or a terminal. It is possible to receive a TCP packet through HTTP streaming on the receiving side.
  • FIG. 10 illustrates a basic structure of a header 310 of a TCP packet and an extension field that may be selectively used according to an embodiment of the present invention.
  • the header 310 of the TCP packet is 20 bytes in size.
  • the TCP packet may add header information up to 32 bytes by utilizing the Options field 1010 to include additional information.
  • Whether the options field 1010 is added or not may be specified through a data offset 1020 (indicating the length of the header).
  • the calculated TCP timestamp value may be added to the options field 1010.
  • the options field can be largely composed of three fields, such as Kind, Length, and Data.
  • the 1-byte type field indicates the purpose.
  • the 1-byte length field indicates the total size of the options field corresponding to the current type field.
  • the data field contains the actual data needed for the purpose indicated by the kind field.
  • FIG. 11 is a structural diagram of a transmitting side 1100 according to an embodiment of the present invention.
  • the transmitting side 110 is a streaming service transmitting apparatus (eg, a streaming server).
  • the transmitting side 1100 includes a TS packet load unit 1110, a PCR setting unit 1120, a time stamp calculation unit 1130, a time stamp recording unit 1140, and a transmission unit 1150.
  • the TS packet load unit 1110 performs operations 910, 920, and 970. For example, the TS packet load unit 1110 loads one or more TS packets in the payload of the TCP packet.
  • the PCR setting unit 1120 performs operation 930. For example, the PCR setting unit 1120 sets first PCR information in one or more TS packets in a payload to PCR of a TCP packet.
  • the time stamp calculator 1130 performs operation 940. For example, the time stamp calculator 1130 calculates a time stamp of the TCP packet based on the PCR.
  • the time stamp recording unit 1140 performs operation 950.
  • the time stamp recording unit 1140 records the calculated time stamp in the TCP packet.
  • the transmitter 1150 performs operation 960. For example, the transmitter 1150 transmits a TCP packet to the terminal.
  • FIG. 12 is a flowchart illustrating a method of operating a receiving side according to an embodiment of the present invention.
  • the operations 1210 to 1295 illustrate a streaming service receiving method performed by the receiving side.
  • the receiving side receives the TCP packet transmitted by the transmitting side described with reference to FIG.
  • the receiving side utilizes the value of TCP timestamp TCPt (n + 1), which is carried in a TCP packet.
  • the receiver receives the TCP packet through the IP network. Estimates of the delay variation of the arrival time experienced.
  • n + 1 th packet receives a TCP packet.
  • the received TCP packet is the n + 1 th packet.
  • the n th packet received before the n + 1 th packet is referred to as a second TCP packet.
  • the clock count of the first TCP packet described below may be referred to as a first clock count.
  • TCPa (n + 1) is a clock count value of the receiving STC at the moment when the n + 1th TCP packet is received.
  • TCPa (n + 1) is the clock count of the first TCP packet.
  • STC may be based on 27Mhz.
  • TCPt (n + 1), which is a TCP timestamp, is present in the received TCP packet.
  • TCPt (n + 1) is the time when the receiving side expected by the transmitting side of the TCP packet receives the TCP packet.
  • the TCP timestamp may be in the options field in the header of the TCP packet. Thus, it can be checked whether a TCP timestamp exists in the options field in the header of the received TCP packet.
  • TCPt (n + 1) is present in the received TCP packet, operation 1240 is performed, otherwise operation 1260 is performed.
  • TCPt (n + 1) is extracted from the TCP packet.
  • TCPt (n + 1) may be extracted from the options field in the header of the TCP packet.
  • network jitter N (n + 1) experienced by TCP (n + 1) is calculated.
  • the network jitter N (n + 1) may be calculated according to Equation 5 below.
  • Network jitter N base (n when TCPt_base (n + 1) of length 33 bits with a 90 KHz precision is recorded in the TCP packet TCP (n + 1) (or optional fields of the header of the TCP packet) as a timestamp. +1) may be calculated according to Equation 6 below.
  • TCPa_base (n + 1) is a base clock of TCPa (n + 1) and has a unit of 90 KHz.
  • the network jitter N base (n + 1) according to Equation 6 has an error in the range as shown in Equation 7 below, compared to the network jitter N (n + 1) according to Equation 5.
  • TCP (n) is a packet that arrives before TCP (n + 1) arrives at the receiving end. In other words, TCP (n) and TCP (n + 1) are neighboring packets.
  • TCPt (n) is the timestamp of TCP (n).
  • TCPa (n) is the clock count value of the receiving STC at the moment when TCP (n) is received.
  • N (n) is the network jitter experienced by TCP (n).
  • an inter packet spacing D (n + 1) between TCP (n) and TCP (n + 1) is calculated.
  • TCP time stamps of 42 bits in length with a precision of 27 MHz 1) may be calculated according to Equation 8 below.
  • TCPt_base (n + 1) and TCPt_base (n), which are 33-bit long TCP timestamps with a precision of 90 KHz, are used
  • the arrival time interval D base between TCP (n) and TCP (n + 1) (n + 1) may be calculated according to Equation 9 below.
  • An arrival time interval between TCP (n) and TCP (n + 1) obtained based on Equations 8 and 9 may be represented by D (n + 1).
  • arrival interval jitter and variance and de-jitter buffering times of the arrival interval jitter are calculated.
  • Arrival interval jitter is the arrival interval delay variation between successive arriving packets.
  • the arrival interval jitter J (n + 1) of TCP (n + 1) may be calculated according to Equation 10 below by a moving average.
  • J (n) is the arrival interval jitter of TCP (n).
  • (0 ⁇ ⁇ ⁇ 1) is the first smoothing factor. ⁇ can adjust the reflectance ratio of recently updated network jitter.
  • ⁇ (n + 1) is the variance for J (n + 1).
  • v (n + 1) is the arrival interval variance of J (n + 1).
  • v (n) is the variance over J (n).
  • ⁇ (n + 1) may be calculated by the moving average according to Equation 11 below.
  • (0 ⁇ ⁇ ⁇ 1) is the second smoothing factor.
  • can control the rate of response to variations between recently updated network jitter and existing average jitter.
  • B (n + 1) is the de-jitter buffering time for effectively absorbing J (n + 1).
  • Equation 12 B (n + 1) may be calculated according to Equation 12 below.
  • K is a parameter for reflecting the fluctuation range of the variance ⁇ (n + 1), which is a deviation from the average arrival interval jitter value in determining the de-jitter buffering time.
  • B (n + 1) is calculated based on N (n + 1) and D (n + 1).
  • B (n + 1) is calculated based on TCPt (n + 1), TCPt (n), TCPa (n + 1) and TCPa (n).
  • K The larger the value of K, the greater the probability that an unusually large fluctuation that can occur in a particular situation in the network can be absorbed by de-jitter buffering.
  • the initial playout delay time for the first packet to arrive at the receiver is experienced through de-jitter buffering. Can be determined.
  • an initial reproduction time of the progressive streaming service may be determined in consideration of absorption of network jitter occurring during transmission of a packet through the IP network.
  • operation 1260 it is checked whether the analysis time for de-jitter buffering time determination has elapsed.
  • TCP packets In order to estimate the appropriate de-jitter buffering time by utilizing the timestamp of the received TCP packet (ie TCP (n + 1)), TCP packets must be received and analyzed for some sufficient time. The time required for such reception and analysis is called the analysis time T.
  • Sufficient time for the transmission of a TCP packet to a stable packet transmission and reception state may be sufficient as analysis time.
  • a time of about 3 to 4 seconds is sufficient as the analysis time.
  • Operation 1280 is performed when analysis time T for determining the de-jitter buffering time has elapsed, otherwise operation 1270 is performed.
  • n is incremented by 1 to process the next packet, and operation 1210 is performed.
  • operation 1280 it is checked whether the calculated de-jitter buffering time B (n + 1) is greater than the analysis time T. Operation 1290 is performed if the calculated de-jitter buffering time B (n + 1) is greater than analysis time T; otherwise operation 1295 is performed.
  • the calculated de-jitter buffering time B (n + 1) is determined as the final de-jitter buffering time t dj .
  • analysis time T is determined as the final de-jitter buffering time t dj .
  • Equation 13 the larger of B (n + 1) and T is determined as the final de-jitter buffering time t dj, as shown in Equation 13 below.
  • Operation 1290 or operation 1295 is performed, followed by operation 1270.
  • FIG. 13 illustrates a T-STD buffer model including de-jitter buffering according to an embodiment of the present invention.
  • the T-STD buffer model provides de-jitter buffering to absorb jitter that occurs when receiving progressive streaming service over an IP network, based on the arrival interval jitter according to the embodiment of the present invention described above.
  • the de-jitter buffering time B (n + 1) or t dj calculated in FIG. 12 may be set as the buffering time of the T-STD of the receiving side.
  • IP network de-jitter buffering to absorb network jitter takes place inside the file buffer at the receiving end.
  • TS packets delivered to the existing T-STD buffer model may be processed according to the operating principle of the existing T-STD buffer model.
  • FIG. 14 is a structural diagram of a receiving side 1400 according to an example of the present invention.
  • the receiving side 1410 is a streaming service receiving apparatus (eg, a terminal).
  • the receiving side 1400 includes a receiving unit 1410, a clock count measuring unit 1420, a timestamp extracting unit 1430, and a de-jitter buffering time calculating unit 1440.
  • the receiver 1410 may include a T-STD buffer 1450.
  • the receiver 1410 performs operation 1210. For example, the receiver 1410 receives TCP (n + 1) and TCP (n).
  • the clock count measurer 1420 performs operation 1220.
  • the clock count measuring unit 1420 measures the clock count TCPa (n + 1) at the moment when TCP (n + 1) is received, and measures the clock count TCPa (n) at the moment when TCP (n) is received. do.
  • the time stamp extractor 1430 performs operations 1230 and 1240. For example, the time stamp extractor 1430 checks whether TCPt (n + 1) exists in TCP (n + 1), and extracts TCPt (n + 1) from TCP (n + 1).
  • the de-jitter buffering time calculator 1440 performs operations 1244 to 1260, 1280, 1290, and 1295.
  • the de-jitter buffering time calculator 1440 may calculate the de-jitter buffering time B (n + 1) based on TCPt (n + 1), TCPt (n), TCPa (n + 1), and TCPa (n). Or t dj .
  • the de-jitter buffering time calculator 1440 may include N (n + 1), N (n), N base (n + 1), J (n + 1), J (n), and D (n + 1). ), ⁇ (n + 1), ⁇ (n) and the like.
  • 15 illustrates a delay of media playback time due to de-jitter buffering configured according to an embodiment of the present invention.
  • the temporal modeling shown in FIG. 15 is as follows 1) to 3).
  • the first TCP packet arriving at the file buffer stays in the file buffer for the de-jitter buffering time determined by the embodiment of the present invention described above.
  • TS packets included in the first packet are transferred to the existing T-STD buffer model.
  • the x axis represents the time at the transmitting side and the receiving side
  • the y axis represents the index of the transmitted or received TCP packet.
  • time 1510 at which the sender transmitted TCP packets, the time 1520 at which the receiver received TCP packets, and the delivery deadline 1530 in the conventional T-STD buffer model are shown. Also shown is a time point 1540 where TS packets in the first TCP packet are delivered to a conventional T-STD buffer for playback.
  • the end-to-end transmission delay is the difference between the time at which the TCP packets were sent 1510 and the time at which the TCP packets were received 1520, and the de-jitter buffering time (ie, the playback delay time) is the TCP packet. Difference between the reception time 1520 and the propagation deadline 1530 in a typical T-STD buffer model.
  • de-jitter buffering time should be considered integrally with the T-STD buffer model of the receiver in order to provide a high quality progressive streaming service.
  • the operation principle of the existing T-STD buffer model can be followed as it is.
  • the T-STD buffer model developed as a standard can be utilized without modification in the method and apparatus according to embodiments of the present invention.
  • Method according to an embodiment of the present invention is implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

Landscapes

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

Abstract

A streaming service transmitting and receiving device and method are provided. An arrival interval jitter is an arrival delay time variation between TCP packets, which arrive at a device receiving a streaming service. The device receiving a streaming service determines a de-jitter buffering time to absorb a network jitter before TS packets in a TCP packet are inputted into a T-STD buffer model. An initial playback delay time of the device receiving a streaming service is determined by the de-jitter buffering time.

Description

스트리밍 서비스 송/수신 장치 및 방법Streaming service transmission and reception device and method
본 발명은 스트리밍 서비스 송/수신 시스템에 관한 것으로, 더 상세하게는 디-지터 버퍼링 시간 추정을 사용하는 프로그레시브 스트리밍 서비스 송/수신 장치 및 방법에 관한 것이다.The present invention relates to a streaming service transmission / reception system, and more particularly, to an apparatus and method for progressive streaming service transmission / reception using de-jitter buffering time estimation.
인터넷과 같은 인터넷 프로토콜(Internet Protocol; IP) 망을 통해, 비디오-온-디맨드(video on demand; VoD) 서비스를 실시하기 위한 방식으로서, 크게 스트리밍(streaming) 방식 및 다운로딩(downloading) 방식이 있다.As a method of implementing a video on demand (VoD) service through an Internet Protocol (IP) network such as the Internet, there are largely a streaming method and a downloading method. .
스트리밍 방식의 서비스는, 멀티미디어 페이로드(payload)를 실시간 트랜스포트 프로토콜(Real-time Transport Protocol; RTP) 패킷화 한 후, RTP 패킷을 사용자 데이터그램 프로토콜(user datagram protocol; UDP)에 실어서 전송한다.In a streaming service, a multimedia payload is packetized into a Real-time Transport Protocol (RTP), and then an RTP packet is loaded on a user datagram protocol (UDP) and transmitted. .
그러나, UDP는, 실시간 멀티미디어 전송에는 적합하지만, 전송 도중에 유실된(discarded) 패킷을 재전송(retransmission) 함으로써 서비스 품질(quality of service; QoS)를 향상시킬 수 있는 기능을 제공하지 않는다.UDP, however, is suitable for real-time multimedia transmission but does not provide the ability to improve the quality of service (QoS) by retransmission of packets that are lost during transmission.
H.264 등과 같은, 디지털 비디오는 프레임들 간의 예측 기반 부호화(prediction based coding)를 사용함으로써 압축된다. 따라서, 디지털 비디오의 패킷들 중 특정 패킷이 유실되면, 유실된 패킷에 의한 오류(error)는 유실된 패킷의 이후에 수신되는 후속 I-프레임(frame)에 의해 차단될 때까지 후속(followed) 비디오 프레임들을 통해 전파된다.Digital video, such as H.264, is compressed by using prediction based coding between frames. Thus, if one of the packets of digital video is lost, the error due to the lost packet is followed until the blocked video is blocked by a subsequent I-frame received after the lost packet. Propagated through the frames.
즉, RTP/UDP 기반의 실시간 멀티미디어 스트리밍은 저 지연(low delay)을 요구하는 실시간 서비스에는 적합하지만, QoS의 보장 측면에 있어서는 취약하다는 단점을 갖는다. In other words, RTP / UDP-based real-time multimedia streaming is suitable for a real-time service requiring low delay, but has a disadvantage in terms of guaranteeing QoS.
다운로드 방식이 사용될 경우, 클라이언트 시스템은 영상 파일 전체를 다운로드 한 뒤에 재생을 시작한다. 따라서, 클라이언트 시스템의 사용자는 고품질의 서비스를 즐길 수 있다. 그러나, 다운로드 방식은 하기의 1) 및 2)와 같은 문제점을 갖는다.If the download method is used, the client system downloads the entire video file and then starts playback. Therefore, the user of the client system can enjoy high quality service. However, the download method has the same problems as 1) and 2) below.
1) 사용자는 긴 다운로드 시간 이후에 영상를 감상할 수 있다.1) The user can watch the video after a long download time.
2) 클라이언트 측은 영상 파일 전체를 다운로드하여 저장할 수 있는 저장 공간을 미리 준비해야 한다.2) The client side must prepare a storage space to download and save the entire video file in advance.
프로그레시브 스트리밍 서비스는 전송 프로토콜로써 트랜스미션 제어 프로토콜(transmission control protocol; TCP)을 이용한다는 측면에서 다운로드와 유사하다. 또한, 프로그레시브 스트리밍 서비스는 미디어 데이터를 포함하는 파일이 다운로드 되는 도중에 이미 수신된 미디어 데이터를 실시간으로 재생한다는 측면에서는 실시간 스트리밍과 유사하다. 결론적으로, 프로그레시브 스트리밍 서비스는 다운로드 및 스트리밍 양자의 기술의 장점만을 활용하는 기술로 간주될 수 있다.Progressive streaming services are similar to downloads in that they use the transmission control protocol (TCP) as the transport protocol. In addition, the progressive streaming service is similar to the real-time streaming in that it plays the media data already received in real time while the file including the media data is downloaded. In conclusion, progressive streaming service can be regarded as a technology that utilizes only the advantages of both download and streaming technologies.
MPEG 트랜스포트 스트림(transport stream; TS)은 DVB, ISDB, ATSC, DMB 등의 방송망을 통해, 오디오 및 비디오의 압축 데이터를 다중화하고, 다중화된 압축 데이터를 전달하기 위한 전송 프로토콜 표준 규격이다.MPEG transport stream (TS) is a transmission protocol standard standard for multiplexing compressed data of audio and video and delivering multiplexed compressed data through a broadcasting network such as DVB, ISDB, ATSC, DMB, and the like.
프로그레시브 스트리밍 기술을 바탕으로, MPEG TS를 HTTP 및 TCP 프로토콜을 활용함으로써 유무선 IP 망을 통해 전송하는 스트리밍 서비스가 제공될 수 있다.Based on progressive streaming technology, a streaming service for transmitting MPEG TS through a wired or wireless IP network by using HTTP and TCP protocols may be provided.
본 발명의 일 실시에는 도착 간격 지터를 계산하기 위해 필요한 정보를 포함하는 TCP 패킷을 전송하는 스트리밍 서비스 송/수신 장치 및 방법을 제공할 수 있다.According to one embodiment of the present invention, a streaming service transmitting / receiving apparatus and method for transmitting a TCP packet including information necessary for calculating arrival interval jitter may be provided.
본 발명의 일 실시에는 TCP 패킷의 도착 시각 및 예상 도착 시각에 기반하여 도착 간격 지터를 계산하는 스트리밍 서비스 송/수신 장치 및 방법을 제공할 수 있다.One embodiment of the present invention can provide a streaming service transmission and reception apparatus and method for calculating the arrival interval jitter based on the arrival time and the expected arrival time of the TCP packet.
본 발명의 일 측에 따르면, TCP 패킷의 패이로드 내에 하나 이상의 TS 패킷들을 로드하는 동작, 상기 페이로드 내의 상기 하나 이상의 TS 패킷들 내의 최초의 PCR 정보를 상기 TCP 패킷의 PCR로 설정하는 동작, 상기 PCR에 기반하여 상기 TCP 패킷의 타임스탬프를 계산하는 동작, 상기 TCP 패킷 내에 상기 타임스탬프를 기록하는 동작 및 상기 TCP 패킷을 단말에게 전송하는 동작을 포함하고 상기 타임스탬프는 상기 TCP 패킷의 상기 단말로의 예상 도착 시각인, 스트리밍 서비스 송신 방법이 제공된다.According to one aspect of the invention, the operation of loading one or more TS packets in the payload of the TCP packet, setting the first PCR information in the one or more TS packets in the payload to the PCR of the TCP packet, Calculating a timestamp of the TCP packet based on a PCR, recording the timestamp in the TCP packet, and transmitting the TCP packet to a terminal, wherein the timestamp is sent to the terminal of the TCP packet. A streaming service transmission method is provided, which is the expected arrival time of.
상기 스트리밍 서비스 송신 방법은, 상기 페이로드 내에 로드된 상기 하나 이상의 TS 패킷들 중 TS 헤더 내에 상기 PCR 정보를 포함하는 TS 패킷이 있는지 여부를 검사하는 단계를 더 포함할 수 있다.The streaming service transmission method may further include checking whether there is a TS packet including the PCR information in a TS header among the one or more TS packets loaded in the payload.
상기 타임스탬프는 상기 페이로드의 첫 번째 바이트가 상기 단말에 도착할 것으로 추정된 시각을 상기 스트리밍 서버의 시스템 클럭 주파수를 사용한 시스템 타임 클럭 카운트 값으로 표현할 수 있다.The timestamp may represent a time at which the first byte of the payload arrives at the terminal as a system time clock count value using the system clock frequency of the streaming server.
상기 타임스탬프는 기본 클럭 및 확장 클럭을 포함할 수 있고, 상기 기본 클럭은 상기 확장 클럭 보다 더 작은 주파수 단위를 사용할 수 있다.The time stamp may include a base clock and an extended clock, and the base clock may use a smaller frequency unit than the extended clock.
상기 타임스탬프의 비트들의 길이는 상기 단말에서 요구하는 도착 시간 지연 변이의 정밀도에 기반하여 결정될 수 있다.The length of the bits of the timestamp may be determined based on the precision of the arrival time delay variation required by the terminal.
상기 TCP 패킷 내에 상기 타임스탬프를 기록하는 동작은 상기 TCP 패킷의 헤더 내의 옵션들 필드 내에 상기 타임스탬프를 저장할 수 있다.Writing the timestamp in the TCP packet may store the timestamp in an options field in the header of the TCP packet.
본 발명의 다른 일측에 따르면, TCP 패킷의 패이로드 내에 하나 이상의 TS 패킷들을 로드하는 TS 패킷 로드부, 상기 페이로드 내의 상기 하나 이상의 TS 패킷들 내의 최초의 PCR 정보를 상기 TCP 패킷의 PCR로 설정하는 PCR 설정부, 상기 PCR에 기반하여 상기 TCP 패킷의 타임스탬프를 계산하는 타임스탬프 계산부, 상기 TCP 패킷 내에 상기 타임스탬프를 기록하는 타임스탬프 기록부 및 상기 TCP 패킷을 단말에게 전송하는 전송부을 포함하고 상기 타임스탬프는 상기 TCP 패킷의 상기 단말로의 예상 도착 시각인, 스트리밍 서비스 송신 장치가 제공된다.According to another aspect of the invention, the TS packet load unit for loading one or more TS packets in the payload of the TCP packet, setting the first PCR information in the one or more TS packets in the payload to the PCR of the TCP packet A PCR setting unit, a timestamp calculating unit for calculating a timestamp of the TCP packet based on the PCR, a timestamp recording unit for recording the timestamp in the TCP packet, and a transmission unit for transmitting the TCP packet to the terminal; A time stamp is provided with a streaming service transmitting apparatus, wherein the TCP packet is an expected arrival time of the TCP packet.
본 발명의 또 다른 일측에 따르면, 제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 패킷의 수신 시각인, 스트리밍 서비스 수신 방법이 제공된다.According to yet another aspect of the present invention, an operation of receiving a first TCP packet, measuring a first clock count of a system time clock at the moment when the first TCP packet is received, and receiving the first TCP packet from the first TCP packet Extracting a first timestamp of the TCP packet, calculating a de-jitter buffering time based on the first clock count, the first timestamp, the second clock count, and the second timestamp; The first timestamp is the reception time of the first TCP packet expected by the server, and the second clock count is a system time clock at the moment a second TCP packet received before the TCP packet is received, and the second time The stamp is provided with a streaming service receiving method, wherein the server is the time of receipt of the second TCP packet expected by the server extracted from the second TCP packet.
상기 제1 클럭 카운트, 제1 타임스탬프, 제2 클럭 카운트 및 제2 타임스탬프에 기반하여 디-지터 버퍼링 시간을 계산하는 동작은, 상기 제1 클럭 카운트 및 상기 제1 타임스템프에 기반하여 제1 TCP 패킷이 경험한 제1 네트워크 지터를 계산하는 동작, 상기 제1 네트워크 지터 및 상기 제2 TCP 패킷이 경험한 제2 네트워크 지터에 기반하여 상기 제2 TCP 패킷 및 상기 제1 TCP 패킷 간의 제1 도착 시간 간격을 계산하는 동작 및 상기 제1 네트워크 지터 및 상기 제1 도착 시간 간격에 기반하여 상기 디-지터 버퍼링 시간을 계산하는 동작을 포함할 수 있다.The operation of calculating a de-jitter buffering time based on the first clock count, the first timestamp, the second clock count, and the second timestamp may include: generating a first jitter based on the first clock count and the first timestamp; Calculating a first network jitter experienced by a TCP packet, a first arrival between the second TCP packet and the first TCP packet based on the first network jitter and the second network jitter experienced by the second TCP packet Calculating a time interval and calculating the de-jitter buffering time based on the first network jitter and the first arrival time interval.
상기 제1 네트워크 지터 및 상기 제1 도착 시간 간격에 기반하여 상기 디-지터 버퍼링 시간을 계산하는 동작은, 상기 제2 TCP 패킷의 제2 도착 간격 지터 및 상기 제1 도착 시간 간격에 기반하여 상기 제1 TCP 패킷의 제1 도착 간격 지터를 계산하는 동작 - 상기 도착 간격 지터는 연속적으로 도착하는 패킷들 간의 도착 간격 지연 변이임 -, 상기 제2 TCP 패킷의 제2 도착 간격 분산, 상기 제1 도착 시간 간격 및 상기 제1 도착 시간 간격에 기반하여 상기 제1 TCP 패킷의 제1 도착 간격 분산을 계산하는 동작 - 상기 도착 시간 분산은 상기 도착 시간 간격에 대한 분산임 - 및 싱기 제1 도착 간격 지터 및 상기 제1 도착 간격 분산에 기반하여 상기 디-지터 버퍼링 시간을 계산하는 동작을 포함할 수 있다.The calculating of the de-jitter buffering time based on the first network jitter and the first arrival time interval may include: determining the de-jitter buffering time based on the second arrival interval jitter and the first arrival time interval of the second TCP packet. Calculating a first arrival interval jitter of one TCP packet, wherein the arrival interval jitter is an arrival interval delay variation between successive arriving packets, a second arrival interval variance of the second TCP packet, the first arrival time Calculating a first arrival interval variance of the first TCP packet based on an interval and the first arrival time interval, wherein the arrival time variance is a variance for the arrival time interval and a first first arrival interval jitter and the Calculating the de-jitter buffering time based on a first arrival interval variance.
상기 제1 타임스탬프는 상기 제1 TCP 패킷의 헤더 내의 옵션들 필드 내에 있을 수 있다.The first timestamp may be in an options field in the header of the first TCP packet.
상기 스트리밍 서비스 수신 방법은, 상기 디-지터 버퍼링 시간 및 분석 시간 중 최종 디-지터 버퍼링 시간으로 결정하는 동작을 더 포함할 수 있고, 상기 분석 시간은 수신되는 TCP 패킷들이 수신 및 분석되기에 충분한 시간일 수 있다.The streaming service receiving method may further include determining a final de-jitter buffering time among the de-jitter buffering time and the analyzing time, wherein the analyzing time is a time sufficient to receive and analyze the received TCP packets. Can be.
상기 스트리밍 서비스 수신 방법은, 상기 디-지터 버퍼링 시간을 상기 스트리밍 클라이언트의 트랜스포트 스트림 시스템 타겟 디코더의 버퍼링 시간으로 설정하는 동작을 더 포함할 수 있다.The streaming service receiving method may further include setting the de-jitter buffering time to a buffering time of a transport stream system target decoder of the streaming client.
본 발명의 또 다른 일측에 따르면, 제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 패킷의 수신 시각인, 스트리밍 서비스 수신 장치가 제공된다.According to yet another aspect of the present invention, a receiver for receiving a first TCP packet, a clock count measuring unit for measuring a first clock count of the system time clock at the moment the first TCP packet is received, from the first TCP packet A timestamp extractor extracting a first timestamp of the first TCP packet and a de-jitter buffering time calculated based on the first clock count, first timestamp, second clock count, and second timestamp A jitter buffering time calculation unit, wherein the first timestamp is a reception time of the first TCP packet expected by the server, and the second clock count is a value of receiving a second TCP packet received before the TCP packet; And a second system time clock, wherein the second time stamp is a reception time of the second TCP packet expected by the server extracted from the second TCP packet. It is provided.
도착 간격 지터를 계산하기 위해 필요한 정보를 포함하는 TCP 패킷을 전송하는 스트리밍 서비스 송/수신 장치 및 방법이 제공된다.Provided are a streaming service transmitting / receiving apparatus and method for transmitting a TCP packet including information necessary to calculate arrival interval jitter.
TCP 패킷의 도착 시각 및 예상 도착 시각에 기반하여 도착 간격 지터를 계산하는 스트리밍 서비스 송/수신 장치 및 방법이 제공된다.Provided are a streaming service transmitting / receiving apparatus and method for calculating arrival interval jitter based on arrival time and expected arrival time of a TCP packet.
도 1은 본 발명의 일 예에 따른 HTTP 기반의 프로그레시브 스트리밍 서비스의 개요를 설명한다.1 illustrates an overview of an HTTP-based progressive streaming service according to an example of the present invention.
도 2는 본 발명의 일 예에 따른 MPEG TS 기반의 프로그레시브 스트리밍 서비스 개요를 나타낸다.2 shows an overview of an MPEG TS based progressive streaming service according to an embodiment of the present invention.
도 3은 본 발명의 일 예에 따른 MPEG TS 패킷의 구조를 도시한다.3 illustrates a structure of an MPEG TS packet according to an embodiment of the present invention.
도 4는 본 발명의 일 예에 따른 표준 T-STD 버퍼 모델을 설명한다.4 illustrates a standard T-STD buffer model according to an example of the present invention.
도 5는 본 발명의 일 예에 따른 IP 망에서의 패킷 도착 지연 시간의 변화를 설명한다.5 illustrates a change in packet arrival delay time in an IP network according to an embodiment of the present invention.
도 6은 본 발명의 일 예에 따른 n 개의 MPEG TS 패킷들로 구성되는 TCP 페이로드 포맷을 도시한다.6 illustrates a TCP payload format composed of n MPEG TS packets according to an embodiment of the present invention.
도 7은 본 발명의 일 예에 따른 PCR 정보를 헤더에 포함하는 TS 패킷들을 TCP 페이로드에 담고 있는 TCP 패킷의 구조를 나타낸다.7 illustrates a structure of a TCP packet including TS packets including PCR information in a header according to an embodiment of the present invention in a TCP payload.
도 8은 본 발명의 일 예에 따른 TCP 패킷이 수신측에 도착하는 시각을 송신측에서 예측하기 위한 타이밍 모델을 나타낸다.8 illustrates a timing model for estimating the time at which a TCP packet arrives at a receiver according to an example of the present invention.
도 9는 본 발명의 일 실시예에 따른 송신측의 동작 방법을 나타내는 흐름도이다.9 is a flowchart illustrating a method of operating a transmitting side according to an embodiment of the present invention.
도 10은 본 발명의 일 예에 따른 TCP 패킷의 헤더(310)의 기본적인 구조 및 선택적으로 활용될 수 있는 확장 필드의 구조를 나타낸다.10 illustrates a basic structure of a header 310 of a TCP packet and an extension field that may be selectively used according to an embodiment of the present invention.
도 11은 본 발명의 일 실시예에 따른 송신측(1100)의 구조도이다.11 is a structural diagram of a transmitting side 1100 according to an embodiment of the present invention.
도 12는 본 발명의 일 실시예에 따른 수신측의 동작 방법을 나타내는 흐름도이다.12 is a flowchart illustrating a method of operating a receiving side according to an embodiment of the present invention.
도 13은 본 발명의 일 예에 따른 디-지터 버퍼링이 포함된 T-STD 버퍼 모델을 나타낸다.13 illustrates a T-STD buffer model including de-jitter buffering according to an embodiment of the present invention.
도 14는 본 발명의 일 예에 따른 수신측(1400)의 구조도이다.14 is a structural diagram of a receiving side 1400 according to an example of the present invention.
도 15는 본 발명의 일 예에 따른 설정된 디-지터 버퍼링에 의한 미디어 재생 시간의 지연을 나타낸다.15 illustrates a delay of media playback time due to de-jitter buffering configured according to an embodiment of the present invention.
이하에서, 본 발명의 일 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by the embodiments. Like reference numerals in the drawings denote like elements.
도 1은 본 발명의 일 예에 따른 HTTP 기반의 프로그레시브 스트리밍 서비스의 개요를 설명한다.1 illustrates an overview of an HTTP-based progressive streaming service according to an example of the present invention.
단말(즉, 클라이언트(client))(110)은 원하는 콘텐츠 파일에 대한 서비스 요청을 서버(120)에게 알리기 위해 HTTP 프로토콜의 "GET Request"(130)를 전송한다.The terminal (ie, client) 110 transmits a "GET Request" 130 of the HTTP protocol to inform the server 120 of the service request for the desired content file.
서버(120)는 콘텐츠 파일을 단말(110)로 전송한다. 서버(120)는 QoS 보장을 위해 콘텐츠 파일을 전송하기 위한 전송 프로토콜로써 TCP를 사용한다.The server 120 transmits the content file to the terminal 110. The server 120 uses TCP as a transport protocol for transmitting the content file to guarantee QoS.
콘텐츠 파일은 TCP에 의해 단말(110)에 도착한다.The content file arrives at the terminal 110 by TCP.
단말(110)은 초기에 도착한 콘텐츠 파일의 일부 데이터를 버퍼링한다.The terminal 110 buffers some data of an initially arrived content file.
단말(110)은, 기존의 다운로드 방식의 문제점인 서비스 지연 시간을 감소시키기 위해, 단말(110)에 도착한 TCP 패킷이 일정량만큼 버퍼에 찼을 때부터 실시간으로 도착한 TCP 패킷 내의 데이터를 디스플레이(display)한다. 즉, 단말(110)은 버퍼링된 콘텐츠 파일의 일부 데이터를 파싱(parsing)하여 비디오 및 오디오를 재생(playout)한다.The terminal 110 displays the data in the TCP packet arriving in real time from when the TCP packet arriving at the terminal 110 fills the buffer by a predetermined amount in order to reduce the service delay time, which is a problem of the conventional download scheme. . That is, the terminal 110 parses some data of the buffered content file to play out video and audio.
따라서, HTTP 기반의 프로그래시브 스트리밍 서비스는 콘텐츠 파일의 모든 데이터가 단말(110)에 도착한 후에야 비로소 콘텐츠 파일이 재생되는 다운로드(download) 방식과 차별화된다. 또한, HTTP 기반의 프로그래시브 스트리밍 서비스는 기존의 다운로드 방식의 문제점인 서비스 지연 시간을 단축시킬 수 있으며, QoS를 보장할 수 있다.Therefore, the HTTP-based progressive streaming service is differentiated from the download method in which the content file is played only after all data of the content file arrives at the terminal 110. In addition, the progressive streaming service based on HTTP can reduce service delay time, which is a problem of the conventional download method, and can guarantee QoS.
기존의 프로그레시브 스트리밍 서비스에서 전송되는 콘텐츠 파일은, 압축된 비디오 및 오디오를 하나의 파일로 저장하기 위해서, 퀵타임(QuickTime)(.mov), MPEG-4(.mp4), 윈도우 미디어 비디오(Windows Media Video)(.wmv), 플래쉬 비디오(Flash Video)(.flv) 및 3GPP(.3gp) 등의 파일 포맷 규격에 의해 생성된다.Content files transmitted from existing progressive streaming services are QuickTime (.mov), MPEG-4 (.mp4) and Windows Media Video (Windows Media Video) to store compressed video and audio as a single file. (.wmv), Flash Video (.flv), and 3GPP (.3gp) file formats.
이러한 파일 포맷 규격들은 ISO/IEC MPEG에서 개발한 ISO 기반 미디어 파일 포멧(ISO based media file format)(ISO/IEC 14496-12 (MPEG-4 Part 12))에 기반하여 확장된 것이다. 이러한 다양한 파일 포맷 규격들을 바탕으로 제작된 멀티미디어 콘텐츠 파일은 프로그레시브 스트리밍 서비스에 의해 유무선 IP 망을 통해 광범위하게 제작, 배포 및 유통된다.These file format specifications are extended based on the ISO based media file format (ISO / IEC 14496-12 (MPEG-4 Part 12)) developed by ISO / IEC MPEG. Multimedia content files produced based on these various file format standards are widely produced, distributed, and distributed through wired and wireless IP networks by progressive streaming services.
한편, 방송 및 통신의 융합(convergence)에 의해, 방송 서비스를 IP망을 통해 제공하는 인터넷 TV, IPTV 서비스 등이 확대되었다.Meanwhile, due to convergence of broadcasting and communication, Internet TV and IPTV services, which provide broadcasting services through an IP network, have been expanded.
기존의 mov, mp4, wmv, flv, 3gp 등의 파일 포맷 대신, MPEG TS 규격으로 제작된 방송용 콘텐츠를 사용하는 프로그레시브 스트리밍이 제공될 수 있다.Instead of the existing mov, mp4, wmv, flv, and 3gp file formats, progressive streaming using broadcast contents produced in the MPEG TS standard may be provided.
도 2는 본 발명의 일 예에 따른 MPEG TS 기반의 프로그레시브 스트리밍 서비스 개요를 나타낸다.2 shows an overview of an MPEG TS based progressive streaming service according to an embodiment of the present invention.
도 2는 MPEG TS 규격에 의해 제작된 멀티미디어 콘텐츠를 HTTP 프로그래시브 스트리밍에 의해 제공하는 서비스의 개요를 나타낸다.2 shows an overview of a service for providing multimedia content produced by the MPEG TS standard by HTTP progressive streaming.
HTTP 프로그레시브 스트리밍 서버는 MPEG TS 방송용 콘텐츠로서 사용하기 위해 다양한 멀티미디어 인코더로 압축된 비디오/오디오 압축 데이터를 MPEG TS 규격으로 제작(즉, 인코딩)할 수 있다. 제작된 MPEG TS 콘텐츠는 HTTP 프로그레시브 스트리밍을 통해 서비스될 수 있다.The HTTP progressive streaming server can produce (i.e. encode) video / audio compressed data in MPEG TS standards compressed with various multimedia encoders for use as MPEG TS broadcast content. The produced MPEG TS content may be serviced through HTTP progressive streaming.
또한, HTTP 프로그레시브 스트리밍 서버는 기존의 파일 포맷 규격으로 제작된 콘텐츠 파일을 MPEG TS로 변환함으로써 획득한 MPEG TS 콘텐츠를 HTTP 프로그레시브 스트리밍 서비스에 활용할 수 있다.In addition, the HTTP progressive streaming server may utilize the MPEG TS content obtained by converting a content file produced by an existing file format standard into MPEG TS for the HTTP progressive streaming service.
HTTP 프로그래시브 스트리밍을 사용하는 클라이언트는 단순히 HTTP GET 요청(Request)을 통해 원하는 MPEG TS 콘텐츠를 서버에게 요청한다.A client using HTTP progressive streaming simply requests the desired MPEG TS content from the server through an HTTP GET request.
후술될 본 발명의 실시예들에서는, 프로그레시브 스트리밍 서비스에 의해 MPEG TS 콘텐츠가 IP 망(예컨대, 유무선 인터넷)을 통해 클라이언트로 전송될 때, MPEG TS 패킷의 헤더에 포함된 프로그램 클럭 레퍼런스(Program Clock Reference; PCR) 클럭(clock) 정보를 활용함으로써 네트워크 지터(jitter)를 효과적으로 추정하는 방법과 장치가 개시된다. 네트워크 지터는 수신측에 도착하는 TCP 패킷들 간의 도착 시간 지연 변이(delay variation)이다.In embodiments of the present invention to be described below, when MPEG TS content is transmitted to a client through an IP network (eg, a wired or wireless Internet) by a progressive streaming service, a program clock reference included in a header of an MPEG TS packet. A method and apparatus for effectively estimating network jitter by utilizing PCR clock information are disclosed. Network jitter is the arrival time delay variation between TCP packets arriving at the receiving end.
본 발명의 실시예들은, 네트워크 지터에 기반하여 패킷들 간의 도착 간격 지연 변이(delay variation in arrival time)인 도착 간격(inter-arrival) 지터를 추정할 수 있다.Embodiments of the present invention may estimate inter-arrival jitter, which is a delay variation in arrival time between packets based on network jitter.
추정된 패킷의 도착-내 지터를 바탕으로, 수신측의 트랜스포트 스트림 시스템 타겟 디코더(Transport Stream System Target Decoder; T-STD) 버퍼 모델을 설계함에 있어서, 네트워크 지터를 흡수하기 위해 요구되는 디-지터 버퍼링의 적합한 크기가 결정될 수 있다.De-jitter required to absorb network jitter in designing the Transport Stream System Target Decoder (T-STD) buffer model at the receiving end based on the estimated intra-arrival jitter of the packet. Appropriate size of buffering can be determined.
단말의 디-지터 버퍼링은, 첫번째 패킷이 수신 측에 도착하였을 때 수신 측이 바로 재생 과정을 시작하지 않게 함으로써 뒤에 도착하게 되는 패킷들 과의 도착 시간에 있어서의 차이를 흡수한다. 따라서, 디-지터 버퍼링은, 패킷들 간의 원래의 시간 간격이 유지될 수 있도록, 수신 측이 패킷들을 어느 정도 버퍼에 모아둔 후에 재생을 시작할 수 있게 한다.The de-jitter buffering of the terminal absorbs the difference in arrival time with the packets arriving later by not allowing the receiving side to start the playback process immediately when the first packet arrives at the receiving side. Thus, the de-jitter buffering allows the receiving side to start playing after collecting the packets to some extent so that the original time interval between the packets can be maintained.
따라서, 디-지터 버퍼링의 길이는, 첫 번째 패킷이 수신 측에 도착한 후, 수신 측이 본격적인 비디오 및 오디오 재생 과정을 수행하기 이전에, 상기의 첫 번째 패킷이 파일 버퍼(file buffer) 내에서 기다려야 하는 시간을 결정한다.Therefore, the length of de-jitter buffering is that after the first packet arrives at the receiver, before the receiver performs the full video and audio playback process, the first packet must wait in the file buffer. Decide when to do it.
디-지터 버퍼링 시간의 크기가 너무 작게 설정된 경우, 네트워크 지터들을 흡수하기 위해 요구되는 충분한 시간적 여유가 제공될 수 없다. 따라서, 수신 측의 재생 후, 이른 시간 내에 버퍼 언더플로우(underflow)의 문제가 발생할 가능성이 크다. 이는, 송신측(sender) 및 수신측(receiver) 간의 스트리밍 도중에 수신 측에서의 잦은 리버퍼링 (rebuffering)을 유발한다. 이러한 리버퍼링은 재생의 중단을 초래하여 서비스 품질을 심각하게 저하시킨다.If the size of the de-jitter buffering time is set too small, sufficient time margin required to absorb network jitters cannot be provided. Therefore, a problem of buffer underflow is likely to occur within an early time after the reproduction on the receiving side. This causes frequent rebuffering at the receiver during streaming between the sender and receiver. Such refurbishing causes interruption of playback, which severely degrades the quality of service.
반대로, 디-지터 버퍼링 시간의 크기가 너무 크게 설정된 경우, 디-지터 버퍼링 직후에 시작되는 초기 재생(initial playout) 과정이 버퍼링의 크기에 비례하여 지연된다. 따라서, 사용자가 겪는 서비스에 대한 레이턴시(latency)가 증가한다.Conversely, if the size of the de-jitter buffering time is set too large, the initial playout process immediately following the de-jitter buffering is delayed in proportion to the size of the buffering. Thus, the latency for services experienced by the user increases.
본 발명의 실시예들은, MPEG TS 기반의 프로그레시브 스트리밍 서비스에서 TCP 패킷의 도착 간격 지터 추정을 통해, 도착 간격 지터를 흡수하기 위해 필요한 적합한 디-지터 버퍼링 시간의 크기 및 상기 디-지터 버퍼링의 크기에 대응하는 초기 재생 지연 시간(initial playout delay)을 결정하는 방법과 장치를 개시한다.Embodiments of the present invention are directed to the size of the appropriate de-jitter buffering time and the size of the de-jitter buffering required to absorb arrival interval jitter through estimation of arrival interval jitter of TCP packets in an MPEG TS based progressive streaming service. A method and apparatus for determining a corresponding initial playout delay is disclosed.
초기 재생 지연 시간은 첫 번째 패킷이 수신측에 도착한 후, 상기의 첫 번째 패킷이 T-STD 버퍼 모델로 패킷이 전달되기 이전에 TCP의 파일 버퍼에서 디-지터 버퍼링을 위해 머무르는 시간에 해당한다. 따라서, 초기 재생 지연 시간은 수신된 미디어(또는, 콘텐츠)에 대한 초기 재생 시점을 결정한다.The initial play delay time corresponds to the time after the first packet arrives at the receiver, and the first packet stays for de-jitter buffering in the TCP file buffer before the packet is delivered to the T-STD buffer model. Thus, the initial playback delay time determines the initial playback time point for the received media (or content).
도 3은 본 발명의 일 예에 따른 MPEG TS 패킷의 구조를 도시한다.3 illustrates a structure of an MPEG TS packet according to an embodiment of the present invention.
MPEG TS 패킷(300)은 188 바이트들 크기의 고정된 길이의 패킷이다.The MPEG TS packet 300 is a fixed length packet of size 188 bytes.
MPEG TS는 MPEG TS 패킷(300)의 연속적인 스트림이다.MPEG TS is a continuous stream of MPEG TS packets 300.
도 3에서, MPEG TS 패킷(300)의 헤더(310) 및 페이로드(320)의 구조가 도시되었다. 또한, 헤더(310) 내의 필드들이 계층적으로 도시되었다. 필드 아래의 숫자는 필드의 크기(비트)를 나타낸다.In FIG. 3, the structure of the header 310 and payload 320 of the MPEG TS packet 300 is shown. In addition, the fields in the header 310 are shown hierarchically. The number below the field indicates the size (in bits) of the field.
헤더(310)는 기본적으로 4 바이트 크기(sync byte 필드 내지 continuity counter 필드)이다. 다양한 확장된 정보를 전달하기 위해 존재하는 adaptation 필드 및 optional 필드의 유무에 따라, 헤더(310)의 크기가 커질 수 있다.The header 310 is basically 4 bytes in size (sync byte field to continuity counter field). The size of the header 310 can be increased according to the presence or absence of an adaptation field and an optional field existing to deliver various extended information.
MPEG TS는 디지털 방송 서비스에서 전송되는 비디오 및 오디오 압축 데이터를 효과적으로 다중화(multiplexing)하여 전달하기 위한 규격이다.MPEG TS is a standard for effectively multiplexing and delivering video and audio compressed data transmitted from a digital broadcasting service.
압축된 비디오/오디오의 기초(elementary) 스트림은 패킷화된 기초 스트림(packetized elementary stream; PES) 패킷화된다. PES 패킷은 188 바이트 크기의 고정된 길이의 TS 패킷들으로 잘게 분할되고, 분할된 TS 패킷들은 비디오 및 오디오가 적절히 다중화되어 전송된다.The elementary stream of compressed video / audio is packetized elementary stream (PES) packetized. The PES packet is finely divided into fixed length TS packets of 188 bytes in size, and the divided TS packets are transmitted by properly multiplexing video and audio.
도 4는 본 발명의 일 예에 따른 표준 T-STD 버퍼 모델을 설명한다.4 illustrates a standard T-STD buffer model according to an example of the present invention.
MPEG TS는 통상적으로 디지털방송 서비스를 목적으로 개발된 규격이다. 따라서, TS 패킷들은 채널 품질이 비교적 안정적인 서킷 스위치 망(Circuit switched network)인 방송망을 통해 수신기에 전달된다. 따라서, MPEG TS 패킷들이 전송 채널에서 경험하는 패킷 지연 시간은 비교적 짧고 일정하다. 또한, 수신기에 도착한 TS 패킷들을 순차적으로 처리하기 위한 타이밍 버퍼 모델(timing buffer model)도 효과적으로 적용될 수 있다.MPEG TS is a standard developed for the purpose of digital broadcasting service. Therefore, TS packets are delivered to the receiver through a broadcasting network which is a circuit switched network in which channel quality is relatively stable. Therefore, the packet delay time experienced by MPEG TS packets in the transport channel is relatively short and constant. In addition, a timing buffer model for sequentially processing TS packets arriving at the receiver may also be effectively applied.
MPEG 시스템 표준 (ISO/IEC 13818-1 (Part 1))에서는, MPEG TS를 처리하기 위한 수신측에서의 타이밍 버퍼 모델을 트랜스포트 스트림 시스템 타겟 디코더(Transport Stream System Target Decoder; T-STD) 버퍼 모델이라고 부른다.In the MPEG system standard (ISO / IEC 13818-1 (Part 1)), the timing buffer model at the receiving side for processing MPEG TS is called a Transport Stream System Target Decoder (T-STD) buffer model. .
도 4에서, MPEG TS로 다중화되어 수신되는 비디오, 오디오 및 시스템 정보 관련 TS 패킷들을 역다중화하고, 역다중화된 스트림들이 각각 순차적으로 버퍼를 거치게하는 표준 T-STD 버퍼 모델의 구조가 개시되었다.In FIG. 4, a structure of a standard T-STD buffer model is disclosed in which multiplexed TS packets related to video, audio, and system information received by multiplexing MPEG MPEG are demultiplexed, and the demultiplexed streams are sequentially buffered.
MPEG TS는, 방송 망 또는 비동기 전송 모드(Asynchronous Transfer Mode; ATM) 망과 같은, 비교적 대역폭 품질이 높고 전달 지연이 낮은 서킷 스위치 망(circuit switched network)을 통해 멀티미디어 데이터를 전달하는 것을 목표로 규격이 개발되었다.MPEG TS aims to deliver multimedia data over circuit switched networks with relatively high bandwidth quality and low propagation delay, such as broadcast networks or Asynchronous Transfer Mode (ATM) networks. Developed.
따라서, IP 망과 같은 패킷 스위치 망(packet switched network)인 인터넷을 통해 MPEG TS를 전송하기 위해서는, 인터넷의 고질적인 문제점인 패킷들 간의 도착 지연 시간 변이(delay variation in arrival time)가 정확하게 추정될 것이 요구된다. 또한, 방송망을 통한 MPEG TS 전송에 적합하게 설계된 도 4의 표준 T-STD 모델도 이러한 추정을 바탕으로 수정될 것이 요구된다.Therefore, in order to transmit MPEG TS over the Internet, which is a packet switched network such as an IP network, the delay variation in arrival time between packets, which is a chronic problem of the Internet, may be estimated accurately. Required. In addition, the standard T-STD model of FIG. 4 designed for MPEG TS transmission through a broadcasting network is also required to be modified based on this estimation.
IP 망에 기반한 유무선 인터넷을 통해 패킷들이 전달될 경우, 기존의 방송망을 통해 패킷들이 전달될 경우와 달리, 패킷들 각각이 거치게 되는 라우팅 경로가 서로 상이할 수 있다. 또한, 패킷들 각각이 거치는 라우터들 마다 처리해야 할 트래픽의 양 및 처리 시간이 서로 상이하기 때문에 패킷들 각각의 목적지 도착 시간들이 서로 상이할 수 있다.When packets are transmitted through the wired / wireless Internet based on the IP network, the routing paths through which each of the packets may be different from each other, unlike when the packets are transmitted through the existing broadcasting network. In addition, since the amount of traffic to be processed and the processing time for each router through each of the packets are different from each other, the destination arrival times of each of the packets may be different from each other.
후술될 본 발명의 실시예는, MPEG TS가 유무선 인터넷 환경에서 프로그레시브 스트리밍 서비스를 통해 클라이언트로 전달될 때 발생하는 TCP 패킷들 간의 도착 지연 시간 변이를 정확하게 추정하는 방법을 개시한다. 또한, 후술될 본 발명의 실시예는 추정된 도착 지연시간 변이를 바탕으로 수정된 T-STD 모델을 개시한다. An embodiment of the present invention to be described below discloses a method for accurately estimating arrival delay time variation between TCP packets occurring when MPEG TS is delivered to a client via a progressive streaming service in a wired or wireless Internet environment. In addition, embodiments of the present invention to be described below disclose a modified T-STD model based on the estimated arrival delay variation.
도 5는 본 발명의 일 예에 따른 IP 망에서의 패킷 도착 지연 시간의 변화를 설명한다.5 illustrates a change in packet arrival delay time in an IP network according to an embodiment of the present invention.
도 5는, 패킷들이 일반적인 IP 망을 통해 전달될 때, 패킷들이 겪게 되는 도착 지연 시간에 있어서의 다이내믹한 변동의 예를 나타내고 있다.FIG. 5 shows an example of a dynamic variation in the arrival delay time that packets undergo when they are delivered over a general IP network.
도 5에서, h 바이트 크기의 패킷들이 IP 망을 통해 전송된다.In FIG. 5, packets of size h bytes are transmitted through the IP network.
패킷들은 IP 망을 거치면서 x1, x2 및 x3만큼의 전송 지연(transmission delay)을 겪고, t1, t2 및 t3 시점(time instant)에 각각 수신측에 도착하였다.The packets undergo a transmission delay of x1, x2 and x3 through the IP network and arrive at the receiver at t1, t2 and t3 time instants, respectively.
그런데, 시간 x1 및 시간 x2는 서로 동일하지만, 시간 x3는 x1 및 x2 보다 더 크다. 따라서, t2 및 t3 사이에는 b 초만큼의 도착 지연 시간의 변이(variation)가 발생한다. 이러한 변이와 같은, 재생 시간 갭(playout gap)이 제거되어야지만 T-STD 버퍼 모델 기반의 디코더가 버퍼 오버플로우(overflow) 및 버퍼 언더플로우(underflow)를 겪지 않고 원활하게 동작한다.By the way, while time x1 and time x2 are equal to each other, time x3 is larger than x1 and x2. Thus, a variation of arrival delay time by b seconds occurs between t2 and t3. Although the playout gap, such as this variation, should be eliminated, the decoder based on the T-STD buffer model operates smoothly without experiencing buffer overflow and buffer underflow.
따라서, 도착한 패킷들이 디코더로 전달되기 이전에 이러한 시간적 갭을 흡수하기 위해, 디-지터 버퍼링과 같은 별도의 버퍼링 과정을 통한 재생 시간 지연(playout delay)이 요구된다.Therefore, to absorb this temporal gap before arriving packets are delivered to the decoder, a playout delay through a separate buffering process such as de-jitter buffering is required.
이러한 별도의 버퍼링 과정에 필요한 적합한 크기를 결정하기 위해서는, 패킷들 간의 도착 시간 지연 변이를 정확하게 추정할 수 있는 방법이 요구된다.In order to determine an appropriate size required for such a separate buffering process, a method for accurately estimating the arrival time delay variation between packets is required.
디-지터 버퍼링의 크기가 너무 작으면, 버퍼 언더플로우의 위험이 증가하여 잦은 리버퍼링이 발생한다. 반대로, 디-지터 버퍼링의 크기가 너무 크면, 도착한 데이터에 대한 버퍼링 시간이 길어지기 때문에, 서비스의 레이턴시(latency)가 발생하여 서비스 품질이 저하된다.If the size of the de-jitter buffering is too small, the risk of buffer underflow increases, resulting in frequent refurbishing. Conversely, if the size of the de-jitter buffering is too large, the buffering time for the arrived data becomes long, resulting in latency of service resulting in poor service quality.
이러한 문제를 해결하기 위해, 후술될 본 발명의 실시예에서는, 수신 측에서 프로그램 클럭 레퍼런스(program clock reference; PCR) 값을 활용함으로써 도착-간 지터(inter-arrival jitter)를 효과적으로 추정할 수 있는 방법 및 장치를 개시한다. 도착-간 지터는 패킷들 간의 도착 지연 시간의 변이이다.In order to solve this problem, in an embodiment of the present invention to be described later, a method for effectively estimating inter-arrival jitter by utilizing a program clock reference (PCR) value at the receiver side. And a device. Inter-arrival jitter is a variation in arrival delay time between packets.
PCR은 TCP 패킷에 실리는 MPEG TS 패킷 헤더 내에 존재할 수 있다. TS 패킷 내에 기록된 PCR 정보를 활용함으로써 도착-간 지터를 추정할 수 있는 방법 및 장치의 계산 복잡도 및 구현 복잡도는 낮다.PCR may be present in an MPEG TS packet header carried in a TCP packet. The computational and implementation complexity of the method and apparatus for estimating inter-arrival jitter by utilizing the PCR information recorded in the TS packet is low.
도 6은 본 발명의 일 예에 따른 n 개의 MPEG TS 패킷들로 구성되는 TCP 페이로드 포맷을 도시한다.6 illustrates a TCP payload format composed of n MPEG TS packets according to an embodiment of the present invention.
MPEG TS 패킷은 188바이트의 고정된 크기를 갖는다. 따라서, 여러 개의 TS 패킷들이 하나의 TCP 패킷의 페이로드에 실릴 수 있다. 이더넷(Ethernet)의 최대 전송 유닛(maximum transfer unit; MTU)의 크기가 1500 바이트임을 감안하면, 이론적으로 최대 7개의 TS 패킷들이 TCP의 페이로드에 실릴 수 있다.MPEG TS packets have a fixed size of 188 bytes. Therefore, several TS packets may be carried in the payload of one TCP packet. Considering that the size of the Ethernet maximum transfer unit (MTU) is 1500 bytes, theoretically, up to seven TS packets may be carried in the payload of TCP.
도 6에서, n 개의 TS 패킷들을 하나의 TCP 패킷의 페이로드에 사상 (mapping)하는 TCP 페이로드 포맷이 도시되었다.In FIG. 6, a TCP payload format is shown that maps n TS packets into the payload of one TCP packet.
전송단 및 수신단에서 사용되는 시스템 타임 클럭(System Time Clock; STC)들 간의 동기화에 사용되는 시간 정보를 전달하기 위해, TS 패킷의 헤더에는 PCR이 존재한다.In order to transfer time information used for synchronization between System Time Clocks (STCs) used at the transmitter and the receiver, PCR is present in the header of the TS packet.
PCR의 값은 시스템 인코더에서의 시각을 27 MHz의 시스템 클럭 주파수(system_clock_frequency; SCF)로 샘플링한 값이다.The PCR value is a value obtained by sampling the time at the system encoder at a system clock frequency (SCF) of 27 MHz.
PCR 클럭은 총 42 비트로 구성될 수 있다. PCR 클럭은 90 KHz(즉, SCF/300) 단위로 표현되는 33 비트 길이의 PCR_base 및 27 MHz 단위(즉, SCF)로 표현되는 9비트의 PCR_ext로 구성될 수 있다.The PCR clock can consist of a total of 42 bits. The PCR clock may consist of a 33-bit PCR_base expressed in units of 90 KHz (ie, SCF / 300) and 9 bits of PCR_ext expressed in units of 27 MHz (ie, SCF).
PCR은 전송단 및 수신단 간의 STC 동기화를 지속적으로 유지하기 위해, 통상적으로 100 ms 이내에 주기적으로 전송된다.PCR is typically transmitted periodically within 100 ms to maintain STC synchronization between the transmitter and receiver.
따라서, TCP 패킷의 페이로드 포맷을 구성하는 TS 패킷들 중 PCR 정보를 헤더에 포함하는 TS 패킷이 존재할 수 있다. Accordingly, there may be a TS packet including PCR information in a header among TS packets constituting the payload format of the TCP packet.
도 7은 본 발명의 일 예에 따른 PCR 정보를 헤더에 포함하는 TS 패킷들을 TCP 페이로드에 담고 있는 TCP 패킷의 구조를 나타낸다.7 illustrates a structure of a TCP packet including TS packets including PCR information in a header according to an embodiment of the present invention in a TCP payload.
도 7에서, TCP(n)(710) 및 TCP(n+1)(750)의 페이로드 포맷들이 각각 도시되었다.In FIG. 7, payload formats of TCP (n) 710 and TCP (n + 1) 750 are shown, respectively.
TCP(n)(710)은 헤더 내에 PCR 정보를 포함하는 TS 패킷들을 TCP 페이로드에 담고 있는 n 번째 TCP 패킷이다.TCP (n) 710 is an n th TCP packet containing TS packets including PCR information in a header in a TCP payload.
TCP(n+1)(750)은 헤더 내에 PCR 정보를 포함하는 TS 패킷들을 TCP 페이로드에 담고 있는 n+1 번째 TCP 패킷이다.TCP (n + 1) 750 is the n + 1 th TCP packet which contains TS packets including PCR information in the header in the TCP payload.
즉, TCP(n) 및 TCP(n+1)은 헤더 내에 PCR 정보를 포함하는 TS 패킷을 하나 이상 TCP 페이로드 내에 포함하면서, 전송 순서가 순차적으로 이웃하는 2 개의 TCP 패킷들이다.That is, TCP (n) and TCP (n + 1) are two TCP packets whose transmission order sequentially neighbors, while including at least one TS packet including PCR information in a header in the TCP payload.
후술될 본 발명의 실시예에서는, 수신측에 도착한 TCP 패킷의 도착 시간 지연 변이를 추정하기 위하여 TCP 페이로드에 포함된 PCR 정보를 사용하는 방법을 개시한다.In an embodiment of the present invention to be described below, a method of using PCR information included in the TCP payload to estimate the arrival time delay variation of the TCP packet arriving at the receiving side.
도 8은 본 발명의 일 예에 따른 TCP 패킷이 수신측에 도착하는 시각을 송신측에서 예측하기 위한 타이밍 모델을 나타낸다.8 illustrates a timing model for estimating the time at which a TCP packet arrives at a receiver according to an example of the present invention.
n번째 TCP 패킷인, TCP(n)은 도 7을 참조하여 전술된 것과 같은 포맷으로, 복수 개의 연속적인 TS 패킷들을 페이로드 내에 포함한다. 여기서, n은 0이상의 정수이다.TCP (n), which is the nth TCP packet, includes a plurality of consecutive TS packets in the payload, in a format as described above with reference to FIG. 7. N is an integer of 0 or more.
도 8의 가로 축(horizontal axis)은 수신측에 TCP 패킷이 도착하는 이론적인 시각 및 이에 대응하는 TCP 타임스탬프 값을 나타낸다. 세로 축(vertical axis)은 수신측으로 전송되는 연속적인 데이터 바이트들 각각의 인덱스 값을 나타낸다.The horizontal axis of FIG. 8 represents a theoretical time at which a TCP packet arrives at a receiving side and a corresponding TCP timestamp value. The vertical axis represents the index value of each successive data byte sent to the receiver.
TCP(n)은 PCR 정보를 포함하는 첫 번째 TS 패킷의 PCR 값을 TCP(n)을 대표하는 PCR 값인 PCR(n)으로 활용한다.TCP (n) utilizes the PCR value of the first TS packet including PCR information as PCR (n), which is a PCR value representative of TCP (n).
n은 TCP의 인덱스이다. 즉, TCP(n)에서 n의 값이다.n is the index of TCP. That is, the value of n in TCP (n).
PCR(n)은 TCP(n) 내에서의 첫 번째 PCR의 인덱스이다.PCR (n) is the index of the first PCR in TCP (n).
in은 PCR(n)의 바이트 인덱스이며, in+1은 PCR(n+1)의 바이트 인덱스이다.i n is the byte index of PCR (n), and i n + 1 is the byte index of PCR (n + 1).
i번째 데이터 바이트가 수신측에 도착하는 시각 t(i)는 하기의 수학식 1에 따라 추정될 수 있다.The time t (i) at which the i-th data byte arrives at the receiver may be estimated according to Equation 1 below.
Figure PCTKR2011007827-appb-I000001
Figure PCTKR2011007827-appb-I000001
여기서, R(n)은 PCR(n) 및 PCR(n+1) 클럭 사이의 데이터 전송률(즉, 트랜스포트 스트림의 트랜스포트 비율(transport rate))이다. R(n)은 하기의 수학식 2에 따라 계산될 수 있다.Where R (n) is the data rate between the PCR (n) and PCR (n + 1) clocks (ie, the transport rate of the transport stream). R (n) may be calculated according to Equation 2 below.
Figure PCTKR2011007827-appb-I000002
Figure PCTKR2011007827-appb-I000002
TCP(n+1)의 페이로드의 첫 번째 바이트가 수신측에 도착하는 시각 t(n+1)은 하기의 수학식 3에 따라 계산될 수 있다.The time t (n + 1) at which the first byte of the payload of TCP (n + 1) arrives at the receiver may be calculated according to Equation 3 below.
Figure PCTKR2011007827-appb-I000003
Figure PCTKR2011007827-appb-I000003
여기서, I는 TCP(n+1) 내에 포함되는 모든 데이터 중, PCR(n+1)의 정보를 나타내는 마지막 비트를 포함하는 바이트보다 앞서 위치하여 전송된 모든 데이터의 크기를 바이트 단위로 나타낸 것이다.Here, I represents the size of all the data transmitted in bytes by being located ahead of the byte including the last bit indicating the information of PCR (n + 1) among all data included in TCP (n + 1).
즉, t(n+1)은 PCR(n+1), I 및 R(n)에 기반하여 계산된다.That is, t (n + 1) is calculated based on PCR (n + 1), I and R (n).
도 9는 본 발명의 일 실시예에 따른 송신측의 동작 방법을 나타내는 흐름도이다.9 is a flowchart illustrating a method of operating a transmitting side according to an embodiment of the present invention.
송신측은 스트리밍 서비스 송신 장치이며, 수신측은 스트리밍 서비스 수신 장치이다.The transmitting side is a streaming service transmitting apparatus, and the receiving side is a streaming service receiving apparatus.
동작들(910 내지 970)은, 송신측이 수행하는 스트리밍 서비스 송신 방법을 나타낸다. Operations 910 to 970 show a streaming service transmission method performed by a transmitting side.
동작(910)에서, TCP(n+1) 내에 하나 이상의 TS 패킷들이 매핑된다. 즉, TCP(n+1)의 페이로드 내에 하나 이상의 TS 패킷들이 로드된다.At operation 910, one or more TS packets are mapped in TCP (n + 1). That is, one or more TS packets are loaded into the payload of TCP (n + 1).
동작(920)에서, TS 헤더 내에 PCR 정보를 포함하는 TS 패킷이 TCP(n+1)의 페이로드 내에 존재하는지 여부가 검사된다. 즉, TCP(n+1)의 페이로드 내에 로드된 하나 이상의 TS 패킷들 중 TS 헤더 내에 PCR 정보를 포함하는 TS 패킷이 있는지 여부가 검사된다.In operation 920, it is checked whether a TS packet containing PCR information in the TS header exists in the payload of TCP (n + 1). That is, it is checked whether there is a TS packet including PCR information in the TS header among one or more TS packets loaded in the payload of TCP (n + 1).
TS 헤더 내에 PCR 정보를 포함하는 TS 패킷이 TCP(n+1)의 페이로드 내에 존재할 경우, 동작(930)이 수행되고, 그렇지 않을 경우 동작(960)이 수행된다.If a TS packet including PCR information in the TS header exists in the payload of TCP (n + 1), operation 930 is performed, otherwise operation 960 is performed.
즉, TCP(n+1)의 페이로드 내의 하나 이상의 TS 패킷들의 헤더들에 PCR 정보가 기록되지 않은 경우, TCP(n+1)에 대해서는 후술될 TCP 타임스탬프가 계산 및 기록되지 않는다.That is, when PCR information is not recorded in the headers of one or more TS packets in the payload of TCP (n + 1), TCP time stamps to be described later are not calculated and recorded for TCP (n + 1).
동작(930)에서, PCR(n+1)이 설정된다.In operation 930, PCR (n + 1) is set.
TCP(n+1)의 페이로드 내의 하나 이상의 TS 패킷들 내의 최초의 PCR 정보가 TCP(n+1)의 PCR(n+1)로 설정된다.Initial PCR information in one or more TS packets in the payload of TCP (n + 1) is set to PCR (n + 1) of TCP (n + 1).
동작(940)에서, TCP(n+1)의 타임스탬프 TCPt(n+1)가 계산된다.In operation 940, a timestamp TCPt (n + 1) of TCP (n + 1) is calculated.
타임스탬프 TCPt(n+1)는 이론적으로 예상된 TCP(n+1)의 수신측으로의 예상 도착 시각이다.The timestamp TCPt (n + 1) is the expected arrival time to the receiver side of the theoretically expected TCP (n + 1).
TCP의 타임스탬프는 TCP 패킷 스트림에서, 스트리밍 데이터에 대한 시각 기준 값을 나타낼 수 있다. 상기의 시각 기준 값은 PCR이 유도되는 STC에 기반하여 계산될 수 있다.The timestamp of TCP may represent a time reference value for streaming data in the TCP packet stream. The visual reference value may be calculated based on the STC from which the PCR is derived.
TCPt(n+1)는 도 8의 t(n+1)에 해당하는 시각(즉, TCP(n+1)의 페이로드의 첫 번째 바이트가 수신측에 도착할 것으로 추정된 시각)을, 27MHz SCF를 사용한 STC의 클럭 카운트 값으로 표현한 것일 수 있다.TCPt (n + 1) is a time corresponding to t (n + 1) of FIG. 8 (that is, the time at which the first byte of the payload of TCP (n + 1) is estimated to arrive at the receiving side). It may be expressed as a clock count value of the STC using.
TCPt(n+1)는, PCR(n+1)과 마찬가지로, 기본(base) 클럭 TCPt_base(n+1)및 확장(extension) 클럭 TCPt_ext(n+1)으로 나뉘어질 수 있다. 즉, TCPt(n+1)는 기본 클럭 및 확장 클럭을 포함할 수 있다.TCPt (n + 1), like PCR (n + 1), can be divided into a base clock TCPt_base (n + 1) and an extension clock TCPt_ext (n + 1). That is, TCPt (n + 1) may include a base clock and an extended clock.
기본 클럭은 확장 클럭 보다 더 작은 주파수 단위를 사용할 수 있다.The base clock can use smaller frequency units than the extended clock.
기본 클럭은 90KHz(즉, SCF/300) 단위로 표한될 수 있다. 확장 클럭은 27Mhz(즉, SCF) 단위로 표현될 수 있다.The base clock may be expressed in units of 90 KHz (ie SCF / 300). The extended clock may be expressed in units of 27 MHz (ie SCF).
타임스탬프 TCPt(n+1), 기본 클럭 TCPt_base(n+1) 및 확장 클럭 TCPt_ext(n+1)은 하기의 수학식 4에 따라 계산될 수 있다.The timestamp TCPt (n + 1), the base clock TCPt_base (n + 1) and the extended clock TCPt_ext (n + 1) can be calculated according to Equation 4 below.
Figure PCTKR2011007827-appb-I000004
Figure PCTKR2011007827-appb-I000004
즉, TCPt(n+1), TCPt_base(n+1) 및 TCPt_ext(n+1)은 시스템 클럭 주파수 및 t(n+1)에 기반하여 계산될 수 있다. TCPt(n+1)는 27MHz의 정밀도를 갖는다.That is, TCPt (n + 1), TCPt_base (n + 1) and TCPt_ext (n + 1) may be calculated based on the system clock frequency and t (n + 1). TCPt (n + 1) has a precision of 27 MHz.
수학식 4에 의해, TCPt_base(n+1)는 총 33 비트들의 길이로 표현될 수 있고, TCPt_ext(n+1)는 총 9 비트들의 길이로 표현될 수 있으며, TCPt_base(n+1) 및 TCPt_ext(n+1)를 합한 TCPt(n+1)는 PCR과 마찬가지로 총 42 비트들의 길이로 표현될 수 있다.By Equation 4, TCPt_base (n + 1) may be represented by a total of 33 bits in length, TCPt_ext (n + 1) may be represented by a total of 9 bits in length, and TCPt_base (n + 1) and TCPt_ext TCPt (n + 1), which is the sum of (n + 1), can be represented by a total length of 42 bits as in PCR.
TCPt(n+1)가 최대값에 도착한 경우 TCPt(n+1)이 다시 0으로 리셋(reset)되는 모듈로(modulo) 연산이 TCPt(n+1)의 계산을 위해 사용될 수 있다.A modulo operation in which TCPt (n + 1) is reset to zero again when TCPt (n + 1) has reached its maximum value can be used for the calculation of TCPt (n + 1).
90 KHz 단위의 클럭으로 시각을 표현했을 때 발생하는 최대의 오차는
Figure PCTKR2011007827-appb-I000005
이다.
The maximum error that occurs when the time is expressed in a clock of 90 KHz is
Figure PCTKR2011007827-appb-I000005
to be.
따라서, 응용의 요구에 따라, 도착 시각 지연 변이의 정밀도가 11μs를 초과하여도 무방할 경우에는 TCPt_base(n+1)만이 사용될 수도 있다. TCPt_base(n+1)만이 사용됨에 인하여 발생할 수 있는 최대 11μs의 오차는 도착 시각 지연 변이 자체에 포함된다.Therefore, depending on the requirements of the application, only TCPt_base (n + 1) may be used when the accuracy of the arrival time delay variation may exceed 11 μs. The maximum error of 11 μs that can occur due to the use of only TCPt_base (n + 1) is included in the arrival time delay variation itself.
반면, 도착 시간 지연 변이의 정밀도에 있어서, 11μs의 오차가 허용될 수 없는 응용에서는, 42비트들의 완전한 길이(full length)의 TCPt(n+1)가 사용될 수 있다.On the other hand, in an application where an error of 11 mu s cannot be tolerated in the precision of the arrival time delay variation, a full length of 42 bits TCPt (n + 1) may be used.
즉, TCPt(n+1)의 비트들의 길이는 수신측에서 요구하는 도착 시간 지연 변이의 정밀도에 기반하여 결정될 수 있다.That is, the length of the bits of TCPt (n + 1) may be determined based on the precision of the arrival time delay variation required by the receiver.
동작(950)에서, TCPt(n+1)가 TCP(n+1) 내에 기록된다.In operation 950, TCPt (n + 1) is written into TCP (n + 1).
TCPt(n+1)는 TCP(n+1)의 헤더 내에 저장될 수 있으며, 헤더 내의 옵션들(options) 필드 내에 저장될 수 있다.TCPt (n + 1) may be stored in the header of TCP (n + 1) and may be stored in the options field in the header.
TCPt(n+1)를 TCP(n+1)의 헤더 내에 저장하는 구체적인 방법이 도 10을 참조하여 하기에서 상세히 설명된다.A specific method of storing TCPt (n + 1) in the header of TCP (n + 1) is described in detail below with reference to FIG.
동작(960)에서, TCPt(n+1)가 수신측으로 전송된다.In operation 960, TCPt (n + 1) is sent to the receiving side.
동작(970)에서, 다음 TCP 패킷이 처리되기 위해 n이 1 증가하고, 동작(910)이 다시 수행된다.In operation 970, n is incremented by 1 for the next TCP packet to be processed, and operation 910 is performed again.
본 실시예에서, TCP 패킷을 생성 및 전송하는 송신측은 스트리밍 서버일 수 있으며, HTTP 스트리밍 서버일 수 있다. 또한, TCP 패킷을 수신하는 수신측은 클라이언트, 단말일 수 있다. 수신측의 HTTP 스트리밍을 통해 TCP 패킷을 수신할 수 있다.In the present embodiment, the transmitting side for generating and transmitting the TCP packet may be a streaming server and may be an HTTP streaming server. In addition, the receiving side receiving the TCP packet may be a client or a terminal. It is possible to receive a TCP packet through HTTP streaming on the receiving side.
앞서 도 1 내지 도 8을 참조하여 설명된 본 발명의 일 실시예에 따른 기술적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.Technical contents according to an embodiment of the present invention described above with reference to FIGS. 1 to 8 may be applied to the present embodiment as it is. Therefore, more detailed description will be omitted below.
도 10은 본 발명의 일 예에 따른 TCP 패킷의 헤더(310)의 기본적인 구조 및 선택적으로 활용될 수 있는 확장 필드의 구조를 나타낸다.10 illustrates a basic structure of a header 310 of a TCP packet and an extension field that may be selectively used according to an embodiment of the present invention.
기본적으로, TCP 패킷의 헤더(310)는 20 바이트의 크기를 갖는다. 또한, TCP 패킷은 추가적인 정보를 포함하기 위해 옵션들(Options) 필드(1010)를 활용함으로써 최대 32 바이트까지 헤더 정보를 추가할 수 있다.By default, the header 310 of the TCP packet is 20 bytes in size. In addition, the TCP packet may add header information up to 32 bytes by utilizing the Options field 1010 to include additional information.
옵션들 필드(1010)의 추가 여부 및 크기는 데이터 옵셋(1020)(헤더의 길이를 나타냄) 값을 통해 지정될 수 있다.Whether the options field 1010 is added or not may be specified through a data offset 1020 (indicating the length of the header).
도 9를 참조하여 전술된 실시예에서는, 계산된 TCP 타임스탬프 값을 옵션들 필드(1010)에 추가할 수 있다.In the embodiment described above with reference to FIG. 9, the calculated TCP timestamp value may be added to the options field 1010.
옵션들 필드는 크게 종류(Kind), 길이(Length), 및 데이터(Data) 등의 3가지의 필드들로 구성될 수 있다.The options field can be largely composed of three fields, such as Kind, Length, and Data.
1바이트 크기의 종류 필드는 용도를 나타낸다.The 1-byte type field indicates the purpose.
1바이트 크기의 길이 필드는 현재의 종류 필드에 해당하는 옵션들 필드의 전체 크기를 나타낸다.The 1-byte length field indicates the total size of the options field corresponding to the current type field.
데이터 필드는 종류 필드가 나타내는 용도의 목적을 위해 필요한 실제 데이터를 포함한다.The data field contains the actual data needed for the purpose indicated by the kind field.
도 11은 본 발명의 일 실시예에 따른 송신측(1100)의 구조도이다.11 is a structural diagram of a transmitting side 1100 according to an embodiment of the present invention.
송신측(110)은 스트리밍 서비스 송신 장치(예컨대, 스트리밍 서버)이다.The transmitting side 110 is a streaming service transmitting apparatus (eg, a streaming server).
송신측(1100)은 TS 패킷 로드부(1110), PCR 설정부(1120), 타임스탬프 계산부(1130), 타임스탬프 기록부(1140) 및 전송부(1150)를 포함한다.The transmitting side 1100 includes a TS packet load unit 1110, a PCR setting unit 1120, a time stamp calculation unit 1130, a time stamp recording unit 1140, and a transmission unit 1150.
TS 패킷 로드부(1110)는 동작(910), 동작(920) 및 동작(970)을 수행한다. 예컨대, TS 패킷 로드부(1110)는 TCP 패킷의 패이로드 내에 하나 이상의 TS 패킷들을 로드한다.The TS packet load unit 1110 performs operations 910, 920, and 970. For example, the TS packet load unit 1110 loads one or more TS packets in the payload of the TCP packet.
PCR 설정부(1120)는 동작(930)을 수행한다. 예컨대, PCR 설정부(1120)는 페이로드 내의 하나 이상의 TS 패킷들 내의 최초의 PCR 정보를 TCP 패킷의 PCR로 설정한다.The PCR setting unit 1120 performs operation 930. For example, the PCR setting unit 1120 sets first PCR information in one or more TS packets in a payload to PCR of a TCP packet.
타임스탬프 계산부(1130)는 동작(940)을 수행한다. 예컨대, 타임스탬프 계산부(1130)는 PCR에 기반하여 TCP 패킷의 타임스탬프를 계산한다.The time stamp calculator 1130 performs operation 940. For example, the time stamp calculator 1130 calculates a time stamp of the TCP packet based on the PCR.
타임스탬프 기록부(1140)는 동작(950)을 수행한다. 예컨대, 타임스탬프 기록부(1140)는 TCP 패킷 내에 계산된 타임스탬프를 기록한다.The time stamp recording unit 1140 performs operation 950. For example, the time stamp recording unit 1140 records the calculated time stamp in the TCP packet.
전송부(1150)는 동작(960)을 수행한다. 예컨대, 전송부(1150)는 TCP 패킷을 단말에게 전송한다.The transmitter 1150 performs operation 960. For example, the transmitter 1150 transmits a TCP packet to the terminal.
도 12는 본 발명의 일 실시예에 따른 수신측의 동작 방법을 나타내는 흐름도이다.12 is a flowchart illustrating a method of operating a receiving side according to an embodiment of the present invention.
동작들(1210 내지 1295)은, 수신측이 수행하는 스트리밍 서비스 수신 방법을 나타낸다.The operations 1210 to 1295 illustrate a streaming service receiving method performed by the receiving side.
수신측은 도 9를 참조하여 설명된 송신측에서 전송한 TCP 패킷을 수신한다. 수신측은 TCP 패킷에 실려서 전송되는 TCP 타임스탬프 TCPt(n+1)의 값을 활용한다. The receiving side receives the TCP packet transmitted by the transmitting side described with reference to FIG. The receiving side utilizes the value of TCP timestamp TCPt (n + 1), which is carried in a TCP packet.
즉, 이론적인 수신측 도착 시각인 TCPt(n+1)의 값 및 수신측의 T-STD로의 실제 도착 순간의 STC 클럭의 카운트 값 간의 차이를 통해, 수신측은 IP 망을 통해 TCP 패킷이 전송되면서 겪게되는 도착 시각의 지연 변이를 추정할 수 있다.That is, through the difference between the theoretical value of TCPt (n + 1), which is the arrival time of the receiver, and the count value of the STC clock at the actual arrival of the receiver, the receiver receives the TCP packet through the IP network. Estimates of the delay variation of the arrival time experienced.
동작(1210)에서, TCP 패킷을 수신한다. 수신된 TCP 패킷은 n+1번째 패킷이다. n+1번째 TCP 패킷을 제1 TCP 패킷으로 명명한다. 또한, n+1번째 패킷 이전에 수신된 n번째 패킷을 제2 TCP 패킷으로 명명한다. 또한, 후술된 제1 TCP 패킷의 클럭 카운트는 제1 클럭 카운트로 명명될 수 있다.In operation 1210, receive a TCP packet. The received TCP packet is the n + 1 th packet. Name the n + 1th TCP packet as the first TCP packet. In addition, the n th packet received before the n + 1 th packet is referred to as a second TCP packet. In addition, the clock count of the first TCP packet described below may be referred to as a first clock count.
동작(1220)에서, 클럭 카운트 TCPa(n+1)이 측정된다.In operation 1220, the clock count TCPa (n + 1) is measured.
TCPa(n+1)은 n+1 번째 TCP 패킷이 수신된 순간의 수신측 STC의 클럭 카운트 값이다. 즉, TCPa(n+1)은 제1 TCP 패킷의 클럭 카운트이다. STC는 27Mhz에 기반한 것일 수 있다.TCPa (n + 1) is a clock count value of the receiving STC at the moment when the n + 1th TCP packet is received. In other words, TCPa (n + 1) is the clock count of the first TCP packet. STC may be based on 27Mhz.
동작(1230)에서, 수신된 TCP 패킷 내에 TCP 타임스탬프인, 타임스템프 TCPt(n+1)가 존재하는지 여부가 검사된다.In operation 1230, it is checked whether a timestamp TCPt (n + 1), which is a TCP timestamp, is present in the received TCP packet.
TCPt(n+1)은 TCP 패킷의 송신측이 예상한 수신측이 TCP 패킷을 수신하는 시각이다.TCPt (n + 1) is the time when the receiving side expected by the transmitting side of the TCP packet receives the TCP packet.
TCP 타임스탬프는 TCP 패킷의 헤더 내의 옵션들 필드에 존재할 수 있다. 따라서, 수신된 TCP 패킷의 헤더 내의 옵션들 필드 내에 TCP 타임스탬프가 존재하는지 여부가 검사될 수 있다.The TCP timestamp may be in the options field in the header of the TCP packet. Thus, it can be checked whether a TCP timestamp exists in the options field in the header of the received TCP packet.
수신된 TCP 패킷 내에 TCPt(n+1)가 존재하면 동작(1240)이 수행되고, 그렇지 않으면 동작(1260)이 수행된다.If TCPt (n + 1) is present in the received TCP packet, operation 1240 is performed, otherwise operation 1260 is performed.
동작(1240)에서, TCP 패킷으로부터 TCPt(n+1)이 추출된다.In operation 1240, TCPt (n + 1) is extracted from the TCP packet.
TCPt(n+1)은 TCP 패킷의 헤더 내의 옵션들 필드로부터 추출될 수 있다.TCPt (n + 1) may be extracted from the options field in the header of the TCP packet.
동작(1245)에서, TCP(n+1)이 경험한 네트워크 지터 N(n+1)이 계산된다. 네트워크 지터 N(n+1)는 하기의 수학식 5에 따라 계산될 수 있다.In operation 1245, network jitter N (n + 1) experienced by TCP (n + 1) is calculated. The network jitter N (n + 1) may be calculated according to Equation 5 below.
Figure PCTKR2011007827-appb-I000006
Figure PCTKR2011007827-appb-I000006
90KHz 정밀도를 갖는 33 비트들의 길이의 TCPt_base(n+1)가 타임스탬프로서 TCP 패킷 TCP(n+1)(또는, TCP 패킷의 헤더의 옵션 필드들) 내에 기록된 경우, 네트워크 지터 Nbase(n+1)는 하기의 수학식 6에 따라 계산될 수 있다.Network jitter N base (n when TCPt_base (n + 1) of length 33 bits with a 90 KHz precision is recorded in the TCP packet TCP (n + 1) (or optional fields of the header of the TCP packet) as a timestamp. +1) may be calculated according to Equation 6 below.
Figure PCTKR2011007827-appb-I000007
Figure PCTKR2011007827-appb-I000007
TCPa_base(n+1)는 TCPa(n+1)의 베이스 클럭이고, 90KHz 단위를 갖는다.TCPa_base (n + 1) is a base clock of TCPa (n + 1) and has a unit of 90 KHz.
수학식 6에 따른 네트워크 지터 Nbase(n+1)는 수학식 5에 따른 네트워크 지터 N(n+1)에 비해, 하기의 수학식 7과 같은 범위의 오차를 갖는다.The network jitter N base (n + 1) according to Equation 6 has an error in the range as shown in Equation 7 below, compared to the network jitter N (n + 1) according to Equation 5.
Figure PCTKR2011007827-appb-I000008
Figure PCTKR2011007827-appb-I000008
따라서, 수신측에서 수행되는 응용에 있어서, 11μs 정도의 오차기 크게 문제시되지 않는 경우, 90 KHz의 정밀도를 갖는 베이스 클럭만이 네트워크 지터를 계산하기 위해 사용될 수 있다.Thus, in an application performed at the receiving side, only a base clock with a precision of 90 KHz can be used to calculate network jitter, unless an error of about 11 s is largely a problem.
TCP(n)은 TCP(n+1)이 수신측에 도착하기 전에 도착한 패킷이다. 즉, TCP(n) 및 TCP(n+1)은 서로 이웃하는 패킷들이다. TCPt(n)은 TCP(n)의 타임스탬프이다. TCPa(n)은 TCP(n)이 수신된 순간의 수신측 STC의 클럭 카운트 값이다. N(n)은 TCP(n)이 경험한 네트워크 지터이다.TCP (n) is a packet that arrives before TCP (n + 1) arrives at the receiving end. In other words, TCP (n) and TCP (n + 1) are neighboring packets. TCPt (n) is the timestamp of TCP (n). TCPa (n) is the clock count value of the receiving STC at the moment when TCP (n) is received. N (n) is the network jitter experienced by TCP (n).
동작(1250)에서, TCP(n) 및 TCP(n+1) 간의 도착 시간 간격(inter packet spacing) D(n+1)이 계산된다.In operation 1250, an inter packet spacing D (n + 1) between TCP (n) and TCP (n + 1) is calculated.
27 MHz의 정밀도를 갖는 42 비트들의 길이의 TCP 타임스탬프들인, TCPt(n+1) 및 TCPt(n)이 사용될 경우, TCP(n) 및 TCP(n+1) 간의 도착 시간 간격 D(n+1)은 하기의 수학식 8에 따라 계산될 수 있다.Arrival time interval D (n +) between TCP (n) and TCP (n + 1) when TCPt (n + 1) and TCPt (n) are used, TCP time stamps of 42 bits in length with a precision of 27 MHz 1) may be calculated according to Equation 8 below.
Figure PCTKR2011007827-appb-I000009
Figure PCTKR2011007827-appb-I000009
또한, 90 KHz의 정밀도를 갖는 33 비트들의 길이의 TCP 타임스탬프들인, TCPt_base(n+1) 및 TCPt_base(n)이 사용될 경우, TCP(n) 및 TCP(n+1) 간의 도착 시간 간격 Dbase(n+1)은 하기의 수학식 9에 따라 계산될 수 있다.In addition, when TCPt_base (n + 1) and TCPt_base (n), which are 33-bit long TCP timestamps with a precision of 90 KHz, are used, the arrival time interval D base between TCP (n) and TCP (n + 1) (n + 1) may be calculated according to Equation 9 below.
Figure PCTKR2011007827-appb-I000010
Figure PCTKR2011007827-appb-I000010
수학식 8 및 수학식 9에 기반하여 획득된 TCP(n) 및 TCP(n+1) 간의 도착 시간 간격은 D(n+1)로 표시될 수 있다.An arrival time interval between TCP (n) and TCP (n + 1) obtained based on Equations 8 and 9 may be represented by D (n + 1).
동작(1255)에서, 도착 간격 지터 및 상기 도착 간격 지터의 분산 및 디-지터 버퍼링 시간이 계산된다.In operation 1255, arrival interval jitter and variance and de-jitter buffering times of the arrival interval jitter are calculated.
도착 간격 지터는 연속적으로 도착하는 패킷들 간의 도착 간격 지연 변이이다.Arrival interval jitter is the arrival interval delay variation between successive arriving packets.
TCP(n+1)의 도착 간격 지터 J(n+1)는 이동 평균(moving average)에 의해 하기의 수학식 10에 따라 계산될 수 있다.The arrival interval jitter J (n + 1) of TCP (n + 1) may be calculated according to Equation 10 below by a moving average.
Figure PCTKR2011007827-appb-I000011
Figure PCTKR2011007827-appb-I000011
여기서, J(n)은 TCP(n)의 도착 간격 지터이다.Where J (n) is the arrival interval jitter of TCP (n).
α (0 ≤ α ≤ 1)는 제1 스무딩 팩터(smoothing factor)이다. α는 최근에 새롭게 업데이트된 네트워크 지터의 반영 비율을 조절할 수 있다.α (0 ≦ α ≦ 1) is the first smoothing factor. α can adjust the reflectance ratio of recently updated network jitter.
υ(n+1)은 J(n+1)에 대한 분산(variance)이다. 즉, υ(n+1)은 J(n+1)의 도착 간격 분산이다. υ(n)은 J(n)에 대한 분산이다.ν (n + 1) is the variance for J (n + 1). In other words, v (n + 1) is the arrival interval variance of J (n + 1). v (n) is the variance over J (n).
υ(n+1)은 이동 평균에 의해 하기의 수학식 11에 따라 계산될 수 있다.ν (n + 1) may be calculated by the moving average according to Equation 11 below.
Figure PCTKR2011007827-appb-I000012
Figure PCTKR2011007827-appb-I000012
여기서, β(0 ≤ β ≤ 1)는 제2 스무딩 팩터이다. β는 최근에 새롭게 업데이트된 네트워크 지터와 기존의 평균적인 지터 간의 변이에 대한 반응 속도를 조절할 수 있다.Where β (0 ≦ β ≦ 1) is the second smoothing factor. β can control the rate of response to variations between recently updated network jitter and existing average jitter.
B(n+1)은 J(n+1)을 효과적으로 흡수하기 위한 디-지터 버퍼링 시간이다.B (n + 1) is the de-jitter buffering time for effectively absorbing J (n + 1).
수학식 10 및 수학식 11에 기반하여, B(n+1)은 하기의 수학식 12에 따라 계산될 수 있다.Based on Equations 10 and 11, B (n + 1) may be calculated according to Equation 12 below.
Figure PCTKR2011007827-appb-I000013
Figure PCTKR2011007827-appb-I000013
여기서, K는 디-지터 버퍼링 시간을 결정함에 있어서 평균적인 도착 간격 지터 값을 벗어나는 변이인 분산 υ(n+1)의 변동 폭을 반영하기 위한 파라메터(parameter)이다.Here, K is a parameter for reflecting the fluctuation range of the variance υ (n + 1), which is a deviation from the average arrival interval jitter value in determining the de-jitter buffering time.
동작(1255)에 의해, N(n+1) 및 D(n+1)에 기반하여 B(n+1)이 계산된다.By operation 1255, B (n + 1) is calculated based on N (n + 1) and D (n + 1).
동작(1240) 내지 동작(1255)에 의해, TCPt(n+1), TCPt(n), TCPa(n+1) 및 TCPa(n)에 기반하여 B(n+1)이 계산된다.By operations 1240 through 1255, B (n + 1) is calculated based on TCPt (n + 1), TCPt (n), TCPa (n + 1) and TCPa (n).
K의 값이 커질수록, 망 내의 특수한 상황에서 발생할 수 있는 일반적이지 않은 큰 폭의 변동 폭이 디-지터 버퍼링에 의해 흡수될 수 있는 확률이 증대된다.The larger the value of K, the greater the probability that an unusually large fluctuation that can occur in a particular situation in the network can be absorbed by de-jitter buffering.
B(n+1)에 의해, 특정한 파일(또는, 콘텐츠)에 대한 패킷들 중, 수신측에 첫 번째로 도착하는 패킷이 디-지터 버퍼링을 통해 겪게 되는 초기 재생 지연(initial playout delay) 시간이 결정될 수 있다. 또한, 결정된 초기 재생 지연 시간에 기반하여, IP 망을 통한 패킷의 전송 도중에 발생한 네트워크 지터의 흡수를 고려한 프로그레시브 스트리밍 서비스의 초기 재생 시점이 결정될 수 있다.By B (n + 1), among the packets for a particular file (or content), the initial playout delay time for the first packet to arrive at the receiver is experienced through de-jitter buffering. Can be determined. In addition, based on the determined initial reproduction delay time, an initial reproduction time of the progressive streaming service may be determined in consideration of absorption of network jitter occurring during transmission of a packet through the IP network.
동작(1260)에서, 디-지터 버퍼링 시간 결정을 위한 분석 시간이 경과되었는지 여부가 검사된다.In operation 1260, it is checked whether the analysis time for de-jitter buffering time determination has elapsed.
수신되는 TCP 패킷(즉, TCP(n+1))의 타임스탬프를 활용함으로써 적절한 디-지터 버퍼링 시간을 추정하기 위해서는, 어느 정도의 충분한 시간 동안 TCP 패킷들이 수신 및 분석되어야 한다. 이러한 수신 및 분석을 위해 요구되는 시간을 분석 시간 T로 명명한다.In order to estimate the appropriate de-jitter buffering time by utilizing the timestamp of the received TCP packet (ie TCP (n + 1)), TCP packets must be received and analyzed for some sufficient time. The time required for such reception and analysis is called the analysis time T.
TCP 패킷의 전송이 시작되어 안정적인 패킷 송수신 상태에 이르는데 충분한 시간은 분석 시간으로서 충분한 시간이 될 수 있다. 따라서, 대략 3 내지 4초 정도의 시간은 분석 시간으로서 충분하다.Sufficient time for the transmission of a TCP packet to a stable packet transmission and reception state may be sufficient as analysis time. Thus, a time of about 3 to 4 seconds is sufficient as the analysis time.
디-지터 버퍼링 시간 결정을 위한 분석 시간 T가 경과된 경우 동작(1280)이 수행되고, 그렇지 않으면 동작(1270)이 수행된다. Operation 1280 is performed when analysis time T for determining the de-jitter buffering time has elapsed, otherwise operation 1270 is performed.
동작(1270)에서, 다음 패킷을 처리하기 위해 n은 1 증가하고, 동작(1210)이 수행된다.At operation 1270, n is incremented by 1 to process the next packet, and operation 1210 is performed.
동작(1280)에서, 계산된 디-지터 버퍼링 시간 B(n+1)이 분석 시간 T보다 큰지 여부가 검사된다. 계산된 디-지터 버퍼링 시간 B(n+1)이 분석 시간 T보다 큰 경우 동작(1290)이 수행되고, 그렇지 않으면 동작(1295)가 수행된다.In operation 1280, it is checked whether the calculated de-jitter buffering time B (n + 1) is greater than the analysis time T. Operation 1290 is performed if the calculated de-jitter buffering time B (n + 1) is greater than analysis time T; otherwise operation 1295 is performed.
동작(1290)에서, 계산된 디-지터 버퍼링 시간 B(n+1)이 최종적인 디-지터 버퍼링 시간 tdj로 결정된다.In operation 1290, the calculated de-jitter buffering time B (n + 1) is determined as the final de-jitter buffering time t dj .
동작(1295)에서, 분석 시간 T가 최종적인 디-지터 버퍼링 시간 tdj로 결정된다.In operation 1295, analysis time T is determined as the final de-jitter buffering time t dj .
즉, 동작들(1280, 1290 및 1295)에서, 하기의 수학식 13과 같이, B(n+1) 및 T 중 더 큰 값이 최종 적인 디-지터 버퍼링 시간 tdj로 결정된다.That is, in operations 1280, 1290 and 1295, the larger of B (n + 1) and T is determined as the final de-jitter buffering time t dj, as shown in Equation 13 below.
Figure PCTKR2011007827-appb-I000014
Figure PCTKR2011007827-appb-I000014
동작(1290) 또는 동작(1295)가 수행된 다음, 동작(1270)이 수행된다. Operation 1290 or operation 1295 is performed, followed by operation 1270.
도 13은 본 발명의 일 예에 따른 디-지터 버퍼링이 포함된 T-STD 버퍼 모델을 나타낸다.13 illustrates a T-STD buffer model including de-jitter buffering according to an embodiment of the present invention.
T-STD 버퍼 모델은, 전술된 본 발명의 실시예에 따른 도착 간격 지터를 바탕으로, IP 망을 통한 프로그레시브 스트리밍 서비스를 제공받을 때 발생하는 지터를 흡수하기 위한 디-지터 버퍼링을 제공한다.The T-STD buffer model provides de-jitter buffering to absorb jitter that occurs when receiving progressive streaming service over an IP network, based on the arrival interval jitter according to the embodiment of the present invention described above.
즉, 도 12에서 계산된 디-지터 버퍼링 시간(B(n+1) 또는 tdj)이 수신측의 T-STD의 버퍼링 시간으로 설정될 수 있다.That is, the de-jitter buffering time B (n + 1) or t dj calculated in FIG. 12 may be set as the buffering time of the T-STD of the receiving side.
네트워크 지터를 흡수하기 위한 IP 네트워크 디-지터 버퍼링이 수신측의 파일 버퍼의 내부에서 이루어진다.IP network de-jitter buffering to absorb network jitter takes place inside the file buffer at the receiving end.
디-지터 버퍼링이 된 후, 기존의 T-STD 버퍼 모델에 전달되는 TS 패킷들은 기존의 T-STD 버퍼 모델의 작동 원리에 따라 처리될 수 있다.After de-jitter buffering, TS packets delivered to the existing T-STD buffer model may be processed according to the operating principle of the existing T-STD buffer model.
도 14는 본 발명의 일 예에 따른 수신측(1400)의 구조도이다.14 is a structural diagram of a receiving side 1400 according to an example of the present invention.
수신측(1410)은 스트리밍 서비스 수신 장치(예컨대, 단말)이다.The receiving side 1410 is a streaming service receiving apparatus (eg, a terminal).
수신측(1400)은 수신부(1410), 클럭 카운트 측정부(1420), 타임스탬프 추출부(1430) 및 디-지터 버퍼링 시간 계산부(1440)를 포함한다.The receiving side 1400 includes a receiving unit 1410, a clock count measuring unit 1420, a timestamp extracting unit 1430, and a de-jitter buffering time calculating unit 1440.
수신부(1410)는 T-STD 버퍼(1450)를 포함할 수 있다.The receiver 1410 may include a T-STD buffer 1450.
수신부(1410)는 동작(1210)을 수행한다. 예컨대, 수신부(1410)는 TCP(n+1) 및 TCP(n)을 수신한다.The receiver 1410 performs operation 1210. For example, the receiver 1410 receives TCP (n + 1) and TCP (n).
클럭 카운트 측정부(1420)는 동작(1220)을 수행한다. 예컨대, 클럭 카운트 측정부(1420)는 TCP(n+1)이 수신된 순간의 클럭 카운트 TCPa(n+1)를 측정하고, TCP(n)이 수신된 순간의 클럭 카운트 TCPa(n)을 측정한다.The clock count measurer 1420 performs operation 1220. For example, the clock count measuring unit 1420 measures the clock count TCPa (n + 1) at the moment when TCP (n + 1) is received, and measures the clock count TCPa (n) at the moment when TCP (n) is received. do.
타임스탬프 추출부(1430)는 동작들(1230 및 1240)을 수행한다. 예컨대, 타임스탬프 추출부(1430)는 TCP(n+1) 내에 TCPt(n+1)가 존재하는지 여부를 검사하며, TCP(n+1)로부터 TCPt(n+1)를 추출한다.The time stamp extractor 1430 performs operations 1230 and 1240. For example, the time stamp extractor 1430 checks whether TCPt (n + 1) exists in TCP (n + 1), and extracts TCPt (n + 1) from TCP (n + 1).
디-저터 버퍼링 시간 계산부(1440)는 동작들(1244 내지 1260, 1280, 1290 및 1295)을 수행한다. 예컨대, 디-저터 버퍼링 시간 계산부(1440)는 TCPt(n+1), TCPt(n), TCPa(n+1) 및 TCPa(n)에 기반하여 디-지터 버퍼링 시간 B(n+1) 또는 tdj를 계산한다.The de-jitter buffering time calculator 1440 performs operations 1244 to 1260, 1280, 1290, and 1295. For example, the de-jitter buffering time calculator 1440 may calculate the de-jitter buffering time B (n + 1) based on TCPt (n + 1), TCPt (n), TCPa (n + 1), and TCPa (n). Or t dj .
또한, 디-저터 버퍼링 시간 계산부(1440)는 N(n+1), N(n), Nbase(n+1), J(n+1), J(n), D(n+1), υ(n+1) 및 υ(n) 등을 계산한다.In addition, the de-jitter buffering time calculator 1440 may include N (n + 1), N (n), N base (n + 1), J (n + 1), J (n), and D (n + 1). ), υ (n + 1), υ (n) and the like.
앞서 도 1 내지 도 13을 참조하여 설명된 본 발명의 일 실시예에 따른 기술 적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.Technical contents according to an embodiment of the present invention described above with reference to FIGS. 1 to 13 may be applied to the present embodiment as it is. Therefore, more detailed description will be omitted below.
도 15는 본 발명의 일 예에 따른 설정된 디-지터 버퍼링에 의한 미디어 재생 시간의 지연을 나타낸다.15 illustrates a delay of media playback time due to de-jitter buffering configured according to an embodiment of the present invention.
도 15가 나타내는 시간적 모델링은 하기의 1) 내지 3)과 같다.The temporal modeling shown in FIG. 15 is as follows 1) to 3).
1) 파일 버퍼에 도착한 첫 번째 TCP 패킷은 전술된 본 발명의 실시예에 의해 결정된 디-지터 버퍼링 시간동안 파일 버퍼 내에 머무른다.1) The first TCP packet arriving at the file buffer stays in the file buffer for the de-jitter buffering time determined by the embodiment of the present invention described above.
2) 첫 번째 TCP 패킷이 파일 버퍼 내에 머무르기 때문에, TCP 패킷들이 나타내는 콘텐츠의 재생 시간이 지연된다. 2) Since the first TCP packet stays in the file buffer, the playback time of the content represented by the TCP packets is delayed.
3) 설정된 디-지터 버퍼링 시간 직후, 첫 번째 패킷 내에 포함된 TS 패킷들은 기존의 T-STD 버퍼 모델로 전달된다.3) Immediately after the set de-jitter buffering time, TS packets included in the first packet are transferred to the existing T-STD buffer model.
도 15에서, x 축은 송신측 및 수신측에서의 시각을 나타내고, y 축은 전송 또는 수신된 TCP 패킷의 인덱스를 나타낸다.In Fig. 15, the x axis represents the time at the transmitting side and the receiving side, and the y axis represents the index of the transmitted or received TCP packet.
도 15에서, 송신측이 TCP 패킷들을 전송한 시각(1510), 수신측이 TCP 패킷들을 수신한 시각(1520), 통상적인 T-STD 버퍼 모델에서의 전달 데드라인(1530)이 도시되었다. 또한, 재생을 위해 첫 번째 TCP 패킷 내의 TS 패킷들이 통상적인 T-STD 버퍼로 전달되는 시점(1540)이 도시되었다.In FIG. 15, the time 1510 at which the sender transmitted TCP packets, the time 1520 at which the receiver received TCP packets, and the delivery deadline 1530 in the conventional T-STD buffer model are shown. Also shown is a time point 1540 where TS packets in the first TCP packet are delivered to a conventional T-STD buffer for playback.
말단-말단(end-to-end) 전송 지연은 TCP 패킷들을 전송한 시각(1510) 및 TCP 패킷들의 수신 시각(1520) 간의 차이이고, 디-지터 버퍼링 시간(즉, 재생 지연 시간)은 TCP 패킷들의 수신 시각(1520) 및 통상적인 T-STD 버퍼 모델에서의 전달 데드라인(1530) 간의 차이이다.The end-to-end transmission delay is the difference between the time at which the TCP packets were sent 1510 and the time at which the TCP packets were received 1520, and the de-jitter buffering time (ie, the playback delay time) is the TCP packet. Difference between the reception time 1520 and the propagation deadline 1530 in a typical T-STD buffer model.
전술된 본 발명의 실시예에 의한 디-지터 버퍼링 시간은 고품질의 프로그레시브 스트리밍 서비스를 제공하기 위해서 수신측의 T-STD 버퍼 모델과 통합적으로 고려되어야 한다.The de-jitter buffering time according to the embodiment of the present invention described above should be considered integrally with the T-STD buffer model of the receiver in order to provide a high quality progressive streaming service.
따라서, 디-지터 버퍼링 과정을 포함하는 새로운 T-STD 버퍼 모델에서는, 새롭게 추가된 디-지터 버퍼링 과정을 제외하고는, 기존의 T-STD 버퍼 모델의 동작 원리를 그대로 따를 수 있으며, 따라서, 기존에 표준으로 개발된 T-STD 버퍼 모델이 본 발명의 실시예들에 따른 방법 및 장치에서 수정없이 활용될 수 있다.Therefore, in the new T-STD buffer model including the de-jitter buffering process, except for the newly added de-jitter buffering process, the operation principle of the existing T-STD buffer model can be followed as it is. The T-STD buffer model developed as a standard can be utilized without modification in the method and apparatus according to embodiments of the present invention.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Method according to an embodiment of the present invention is implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.

Claims (20)

  1. TCP 패킷의 패이로드 내에 하나 이상의 TS 패킷들을 로드하는 동작;Loading one or more TS packets into the payload of the TCP packet;
    상기 페이로드 내의 상기 하나 이상의 TS 패킷들 내의 최초의 PCR 정보를 상기 TCP 패킷의 PCR로 설정하는 동작;Setting initial PCR information in the one or more TS packets in the payload to PCR of the TCP packet;
    상기 PCR에 기반하여 상기 TCP 패킷의 타임스탬프를 계산하는 동작;Calculating a timestamp of the TCP packet based on the PCR;
    상기 TCP 패킷 내에 상기 타임스탬프를 기록하는 동작; 및Recording the timestamp in the TCP packet; And
    상기 TCP 패킷을 단말에게 전송하는 동작Transmitting the TCP packet to a terminal
    을 포함하고 상기 타임스탬프는 상기 TCP 패킷의 상기 단말로의 예상 도착 시각인, 스트리밍 서비스 송신 방법.And the timestamp is an expected arrival time of the TCP packet to the terminal.
  2. 제1항에 있어서,The method of claim 1,
    상기 페이로드 내에 로드된 상기 하나 이상의 TS 패킷들 중 TS 헤더 내에 상기 PCR 정보를 포함하는 TS 패킷이 있는지 여부를 검사하는 단계Checking whether there is a TS packet including the PCR information in a TS header among the one or more TS packets loaded in the payload
    를 더 포함하는, 스트리밍 서비스 송신 방법.Further comprising, the streaming service transmission method.
  3. 제1항에 있어서,The method of claim 1,
    상기 타임스탬프는 상기 페이로드의 첫 번째 바이트가 상기 단말에 도착할 것으로 추정된 시각을 상기 스트리밍 서버의 시스템 클럭 주파수를 사용한 시스템 타임 클럭 카운트 값으로 표현한, 스트리밍 서비스 송신 방법.And the timestamp expresses the time at which the first byte of the payload arrives at the terminal as a system time clock count value using the system clock frequency of the streaming server.
  4. 제3항에 있어서,The method of claim 3,
    상기 추정된 시각은 하기의 수학식 1에 기반하여 계산되는, 스트리밍 서비스 송신 방법.The estimated time is calculated based on Equation 1 below.
    Figure PCTKR2011007827-appb-I000015
    Figure PCTKR2011007827-appb-I000015
    여기서, t(n+1)은 상기 추정된 시각이고, PCR(n+1)은 상기 PCR이고, R(n)은 상기 TCP 패킷의 이전에 수신된 이전 TCP 패킷의 PCR 및 상기 PCR 사이의 데이터 전송률이고, I는 상기 TCP 패킷 내에 포함되는 모든 데이터 중 PCR의 정보를 나타내는 마지막 비트를 포함하는 바이트보다 앞서 위치하여 전송된 모든 데이터의 크기를 바이트 단위로 나타낸 것임.Where t (n + 1) is the estimated time, PCR (n + 1) is the PCR, and R (n) is the data between the PCR of the previous TCP packet received before the TCP packet and the PCR It is a transmission rate, and I represents the size of all data transmitted in bytes in advance of the byte including the last bit indicating PCR information among all data included in the TCP packet.
  5. 제4항에 있어서,The method of claim 4, wherein
    상기 R(n)은 하기의 수학식 2에 기반하여 계산되는, 스트리밍 서비스 송신 방법.R (n) is calculated based on Equation 2 below.
    Figure PCTKR2011007827-appb-I000016
    Figure PCTKR2011007827-appb-I000016
    여기서, in은 PCR(n)의 바이트 인덱스이고, in+1은 PCR(n+1)의 바이트 인덱스임.Where i n is the byte index of PCR (n) and in + 1 is the byte index of PCR (n + 1).
  6. 제1항에 있어서,The method of claim 1,
    상기 타임스탬프는 기본 클럭 및 확장 클럭을 포함하고, 상기 기본 클럭은 상기 확장 클럭 보다 더 작은 주파수 단위를 사용하는, 스트리밍 서비스 송신 방법.The timestamp includes a base clock and an extended clock, and the base clock uses a frequency unit smaller than the extended clock.
  7. 제6항에 있어서,The method of claim 6,
    상기 타임스탬프는 하기의 수학식 3에 기반하여 계산되는, 스트리밍 서비스 송신 방법.The timestamp is calculated based on Equation 3 below, streaming service transmission method.
    Figure PCTKR2011007827-appb-I000017
    Figure PCTKR2011007827-appb-I000017
    여기서, TCPt_base(n+1)은 상기 기본 클럭이고, TCPt_ext(n+1)은 상기 확장 클럭이고, TCPt(n+1)은 상기 타임스탬프고, system_clock_freq는 상기 스트리밍 서버의 시스틈 클럭 주파수이고, 상기 t(n+1)은 상기 페이로드의 첫 번째 바이트가 상기 단말에 도착할 것으로 추정된 시각임.Where TCPt_base (n + 1) is the base clock, TCPt_ext (n + 1) is the extended clock, TCPt (n + 1) is the timestamp, system_clock_freq is the system clock frequency of the streaming server, T (n + 1) is a time when the first byte of the payload is estimated to arrive at the terminal.
  8. 제1항에 있어서,The method of claim 1,
    상기 타임스탬프의 비트들의 길이는 상기 단말에서 요구하는 도착 시간 지연 변이의 정밀도에 기반하여 결정되는, 스트리밍 서비스 송신 방법.The length of the bits of the timestamp is determined based on the precision of the arrival time delay variation required by the terminal.
  9. 제1항에 있어서,The method of claim 1,
    상기 TCP 패킷 내에 상기 타임스탬프를 기록하는 동작은 상기 TCP 패킷의 헤더 내의 옵션들 필드 내에 상기 타임스탬프를 저장하는, 스트리밍 서비스 송신 방법.Recording the timestamp in the TCP packet stores the timestamp in an options field in a header of the TCP packet.
  10. TCP 패킷의 패이로드 내에 하나 이상의 TS 패킷들을 로드하는 TS 패킷 로드부;A TS packet load unit that loads one or more TS packets in a payload of the TCP packet;
    상기 페이로드 내의 상기 하나 이상의 TS 패킷들 내의 최초의 PCR 정보를 상기 TCP 패킷의 PCR로 설정하는 PCR 설정부;A PCR setting unit for setting first PCR information in the one or more TS packets in the payload to PCR of the TCP packet;
    상기 PCR에 기반하여 상기 TCP 패킷의 타임스탬프를 계산하는 타임스탬프 계산부;A timestamp calculator for calculating a timestamp of the TCP packet based on the PCR;
    상기 TCP 패킷 내에 상기 타임스탬프를 기록하는 타임스탬프 기록부; 및A timestamp recorder for recording the timestamp in the TCP packet; And
    상기 TCP 패킷을 단말에게 전송하는 전송부Transmitter for transmitting the TCP packet to the terminal
    을 포함하고 상기 타임스탬프는 상기 TCP 패킷의 상기 단말로의 예상 도착 시각인, 스트리밍 서비스 송신 장치.And the timestamp is an expected arrival time of the TCP packet to the terminal.
  11. 제1 TCP 패킷을 수신하는 동작;Receiving a first TCP packet;
    상기 제1 TCP 패킷이 수신된 순간의 시스템 타임 클럭의 제1 클럭 카운트를 측정하는 동작;Measuring a first clock count of a system time clock at the moment the first TCP packet is received;
    상기 제1 TCP 패킷으로부터 상기 제1 TCP 패킷의 제1 타임스탬프를 추출하는 동작;Extracting a first timestamp of the first TCP packet from the first TCP packet;
    상기 제1 클럭 카운트, 제1 타임스탬프, 제2 클럭 카운트 및 제2 타임스탬프에 기반하여 디-지터 버퍼링 시간을 계산하는 동작Calculate a de-jitter buffering time based on the first clock count, a first timestamp, a second clock count, and a second timestamp
    을 포함하고, 상기 제1 타임스탬프는 상기 서버가 예상한 상기 제1 TCP 패킷의 수신 시각이고, 상기 제2 클럭 카운트는 상기 TCP 패킷 이전에 수신된 제2 TCP 패킷이 수신된 순간의 시스템 타임 클럭이고, 상기 제2 타임스탬프는 상기 제2 TCP 패킷으로부터 추출된 상기 서버가 예상한 상기 제2 TCP 패킷의 수신 시각인, 스트리밍 서비스 수신 방법.Wherein the first timestamp is a reception time of the first TCP packet expected by the server, and the second clock count is a system time clock at the moment a second TCP packet received before the TCP packet is received. And the second timestamp is a reception time of the second TCP packet expected by the server extracted from the second TCP packet.
  12. 제11항에 있어서,The method of claim 11,
    상기 제1 클럭 카운트, 제1 타임스탬프, 제2 클럭 카운트 및 제2 타임스탬프에 기반하여 디-지터 버퍼링 시간을 계산하는 동작은,Computing a de-jitter buffering time based on the first clock count, the first timestamp, the second clock count, and the second timestamp,
    상기 제1 클럭 카운트 및 상기 제1 타임스템프에 기반하여 제1 TCP 패킷이 경험한 제1 네트워크 지터를 계산하는 동작;Calculating first network jitter experienced by a first TCP packet based on the first clock count and the first timestamp;
    상기 제1 네트워크 지터 및 상기 제2 TCP 패킷이 경험한 제2 네트워크 지터에 기반하여 상기 제2 TCP 패킷 및 상기 제1 TCP 패킷 간의 제1 도착 시간 간격을 계산하는 동작; 및Calculating a first arrival time interval between the second TCP packet and the first TCP packet based on the second network jitter experienced by the first network jitter and the second TCP packet; And
    상기 제1 네트워크 지터 및 상기 제1 도착 시간 간격에 기반하여 상기 디-지터 버퍼링 시간을 계산하는 동작Calculate the de-jitter buffering time based on the first network jitter and the first arrival time interval.
    을 포함하는, 스트리밍 서비스 수신 방법.Receiving, streaming service receiving method.
  13. 제12항에 있어서,The method of claim 12,
    상기 제1 네트워크 지터 및 상기 제1 도착 시간 간격에 기반하여 상기 디-지터 버퍼링 시간을 계산하는 동작은,Computing the de-jitter buffering time based on the first network jitter and the first arrival time interval,
    상기 제2 TCP 패킷의 제2 도착 간격 지터 및 상기 제1 도착 시간 간격에 기반하여 상기 제1 TCP 패킷의 제1 도착 간격 지터를 계산하는 동작 - 상기 도착 간격 지터는 연속적으로 도착하는 패킷들 간의 도착 간격 지연 변이임 -;Calculating a first arrival interval jitter of the first TCP packet based on a second arrival interval jitter of the second TCP packet and the first arrival time interval, wherein the arrival interval jitter is arrival between successive arriving packets. Interval delay variation-;
    상기 제2 TCP 패킷의 제2 도착 간격 분산, 상기 제1 도착 시간 간격 및 상기 제1 도착 시간 간격에 기반하여 상기 제1 TCP 패킷의 제1 도착 간격 분산을 계산하는 동작 - 상기 도착 시간 분산은 상기 도착 시간 간격에 대한 분산임 -; 및Calculate a first arrival interval variance of the first TCP packet based on a second arrival interval variance of the second TCP packet, the first arrival time interval and the first arrival time interval, wherein the arrival time variance is Variance over arrival time intervals; And
    싱기 제1 도착 간격 지터 및 상기 제1 도착 간격 분산에 기반하여 상기 디-지터 버퍼링 시간을 계산하는 동작Calculate the de-jitter buffering time based on a first arrival interval jitter and the first arrival interval variance
    을 포함하는, 스트리밍 서비스 수신 방법.Receiving, streaming service receiving method.
  14. 제13항에 있어서,The method of claim 13,
    상기 제1 도착 간격 지터는 하기의 수학식 4에 기반하여 계산되는, 스트리밍 서비스 수신 방법.The first arrival interval jitter is calculated based on Equation 4 below.
    Figure PCTKR2011007827-appb-I000018
    Figure PCTKR2011007827-appb-I000018
    여기서, J(n+1)은 상기 제1 도착 간격 지터이고, J(n)은 상기 제2 도착 간격 지터이고, D(n+1)은 상기 제1 도착 시간 간격이고, α는 0 이상 1이하의 스무딩 팩터임.Where J (n + 1) is the first arrival interval jitter, J (n) is the second arrival interval jitter, D (n + 1) is the first arrival time interval, and α is 0 or more 1 It is the following smoothing factor.
  15. 제13항에 있어서,The method of claim 13,
    상기 제1 도착 간격 분산은 하기의 수학식 5에 기반하여 계산되는, 스트리밍 서비스 수신 방법.The first arrival interval variance is calculated based on Equation 5 below.
    Figure PCTKR2011007827-appb-I000019
    Figure PCTKR2011007827-appb-I000019
    여기서, υ(n+1)은 상기 제1 도착 간격 분산이고, υ(n)은 상기 제2 도착 간격 분산이고, D(n+1)은 상기 제1 도착 시간 간격이고, J(n)은 상기 제2 도착 간격 지터이고, β는 0 이상 1이하의 스무딩 팩터임.Where υ (n + 1) is the first arrival interval variance, υ (n) is the second arrival interval variance, D (n + 1) is the first arrival time interval, and J (n) is The second arrival interval jitter, and β is a smoothing factor of 0 or more and 1 or less.
  16. 제13항에 있어서,The method of claim 13,
    상기 디-지터 버퍼링 시간은 하기의 수학식 6에 기반하여 계산되는, 스트리밍 서비스 수신 방법.The de-jitter buffering time is calculated based on Equation 6 below.
    Figure PCTKR2011007827-appb-I000020
    Figure PCTKR2011007827-appb-I000020
    여기서, B(n+1)은 상기 디-지터 버퍼링 시간이고, J(n+1)은 상기 제1 도착 간격 지터이고, υ(n+1)은 상기 제1 도착 간격 분산이고, 상기 k는 상기 제1 도착 간격 분산의 변동 폭을 반영하기 위한 파라메터임.Where B (n + 1) is the de-jitter buffering time, J (n + 1) is the first arrival interval jitter, υ (n + 1) is the first arrival interval variance, and k is A parameter for reflecting a fluctuation range of the first arrival interval variance.
  17. 제11항에 있어서,The method of claim 11,
    상기 제1 타임스탬프는 상기 제1 TCP 패킷의 헤더 내의 옵션들 필드 내에 있는, 스트리밍 서비스 수신 방법.And the first timestamp is in an options field in a header of the first TCP packet.
  18. 제11항에 있어서,The method of claim 11,
    상기 디-지터 버퍼링 시간 및 분석 시간 중 최종 디-지터 버퍼링 시간으로 결정하는 동작Determining a final de-jitter buffering time among the de-jitter buffering time and the analysis time
    을 더 포함하고, 상기 분석 시간은 수신되는 TCP 패킷들이 수신 및 분석되기에 충분한 시간인, 스트리밍 서비스 수신 방법.Further comprising the analysis time being a time sufficient for received TCP packets to be received and analyzed.
  19. 제11항에 있어서,The method of claim 11,
    상기 디-지터 버퍼링 시간을 상기 스트리밍 클라이언트의 트랜스포트 스트림 시스템 타겟 디코더의 버퍼링 시간으로 설정하는 동작Setting the de-jitter buffering time to the buffering time of the transport stream system target decoder of the streaming client.
    을 더 포함하는, 스트리밍 서비스 수신 방법.Further comprising, the streaming service receiving method.
  20. 제1 TCP 패킷을 수신하는 수신부;A receiving unit for receiving a first TCP packet;
    상기 제1 TCP 패킷이 수신된 순간의 시스템 타임 클럭의 제1 클럭 카운트를 측정하는 클럭 카운트 측정부;A clock count measuring unit measuring a first clock count of a system time clock at the moment the first TCP packet is received;
    상기 제1 TCP 패킷으로부터 상기 제1 TCP 패킷의 제1 타임스탬프를 추출하는 타임스탬프 추출부; 및A timestamp extracting unit for extracting a first timestamp of the first TCP packet from the first TCP packet; And
    상기 제1 클럭 카운트, 제1 타임스탬프, 제2 클럭 카운트 및 제2 타임스탬프에 기반하여 디-지터 버퍼링 시간을 계산하는 디-지터 버퍼링 시간 계산부;A de-jitter buffering time calculator configured to calculate a de-jitter buffering time based on the first clock count, a first timestamp, a second clock count, and a second timestamp;
    를 포함하고, 상기 제1 타임스탬프는 상기 서버가 예상한 상기 제1 TCP 패킷의 수신 시각이고, 상기 제2 클럭 카운트는 상기 TCP 패킷 이전에 수신된 제2 TCP 패킷이 수신된 순간의 시스템 타임 클럭이고, 상기 제2 타임스탬프는 상기 제2 TCP 패킷으로부터 추출된 상기 서버가 예상한 상기 제2 TCP 패킷의 수신 시각인, 스트리밍 서비스 수신 장치.Wherein the first timestamp is a reception time of the first TCP packet expected by the server, and the second clock count is a system time clock at the moment a second TCP packet received before the TCP packet is received. And the second timestamp is a reception time of the second TCP packet expected by the server extracted from the second TCP packet.
PCT/KR2011/007827 2010-10-20 2011-10-20 Streaming service transmitting/receiving device and method WO2012053834A2 (en)

Priority Applications (1)

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

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20100102574 2010-10-20
KR10-2010-0102574 2010-10-20
KR1020110030790A KR101180540B1 (en) 2010-10-20 2011-04-04 Apparatus and method for transmitting/receiving streaming service
KR10-2011-0030790 2011-04-04

Publications (2)

Publication Number Publication Date
WO2012053834A2 true WO2012053834A2 (en) 2012-04-26
WO2012053834A3 WO2012053834A3 (en) 2012-08-02

Family

ID=45975739

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2011/007827 WO2012053834A2 (en) 2010-10-20 2011-10-20 Streaming service transmitting/receiving device and method

Country Status (1)

Country Link
WO (1) WO2012053834A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113949896A (en) * 2021-09-30 2022-01-18 中央广播电视总台 IP media stream processing method, device, computer equipment and readable storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050071491A1 (en) * 2003-09-27 2005-03-31 Lg Electronics Inc. Multimedia streaming service system and method
JP2005522916A (en) * 2002-04-09 2005-07-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Transmission method combining download and streaming
KR20060114080A (en) * 2005-04-27 2006-11-06 삼성전자주식회사 System and method of providing multimedia streaming service
US20090271525A1 (en) * 2006-04-24 2009-10-29 Electronics And Telecommunications Research Instit Rtsp-based progressive streaming method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005522916A (en) * 2002-04-09 2005-07-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Transmission method combining download and streaming
US20050071491A1 (en) * 2003-09-27 2005-03-31 Lg Electronics Inc. Multimedia streaming service system and method
KR20060114080A (en) * 2005-04-27 2006-11-06 삼성전자주식회사 System and method of providing multimedia streaming service
US20090271525A1 (en) * 2006-04-24 2009-10-29 Electronics And Telecommunications Research Instit Rtsp-based progressive streaming method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113949896A (en) * 2021-09-30 2022-01-18 中央广播电视总台 IP media stream processing method, device, computer equipment and readable storage medium
CN113949896B (en) * 2021-09-30 2023-11-17 中央广播电视总台 IP media stream processing method, device, computer equipment and readable storage medium

Also Published As

Publication number Publication date
WO2012053834A3 (en) 2012-08-02

Similar Documents

Publication Publication Date Title
WO2011071290A2 (en) Streaming method and apparatus operating by inserting other content into main content
WO2012011724A2 (en) Method for transceiving media files and device for transmitting/receiving using same
WO2015002500A1 (en) Method and apparatus for transmitting/receiving media broadcasting signal in real time transport protocol-based broadcasting system
WO2011059286A2 (en) Method and apparatus for providing and receiving data
WO2011059291A2 (en) Method and apparatus for transmitting and receiving data
WO2012060581A2 (en) Method for transreceiving media content and device for transreceiving using same
WO2014171718A1 (en) Broadcasting transmission device, broadcasting reception device, operating method of broadcasting transmission device and operating method of broadcasting reception device
WO2013089437A1 (en) Device and method for receiving media content
WO2016129974A1 (en) Transmitting apparatus and receiving apparatus and controlling method thereof
WO2011105811A2 (en) Method and apparatus for transmitting and receiving data
WO2012033319A2 (en) Apparatus and method for providing streaming content
WO2012177041A2 (en) Media content transceiving method and transceiving apparatus using same
WO2016018042A1 (en) Apparatus and method for transmitting/receiving processes of a broadcast signal
US7778173B2 (en) Clock recovery algorithm for remultiplexing MPEG-2 SPTSs and/or MPTSs in the presence of network jitter
WO2019080022A1 (en) Method and device for network video stream transmission congestion control
WO2017126889A1 (en) Receiving apparatus and control method thereof
KR101180540B1 (en) Apparatus and method for transmitting/receiving streaming service
WO2017209574A1 (en) Method and device for providing media content
WO2013077670A1 (en) Method and apparatus for streaming service for providing scalability and view information
WO2011132879A2 (en) Method for transmitting/receving internet-based content and transmitter/receiver using same
WO2011132882A2 (en) Method for transmitting/receiving internet-based content and transmitter/receiver using same
WO2020096148A1 (en) Method and device for switching media service channels
WO2021066445A1 (en) Method, apparatus and computer-readable recording medium for transmitting or receiving vpcc data
JP2003249922A (en) Data receiver, method for processing received data and computer program
KR100640467B1 (en) IP Streaming Apparatus Capable of Smoothness

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11834634

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13880941

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 11834634

Country of ref document: EP

Kind code of ref document: A2