WO2013109113A1 - 스트리밍 서비스를 제공하는 방법 및 장치 - Google Patents

스트리밍 서비스를 제공하는 방법 및 장치 Download PDF

Info

Publication number
WO2013109113A1
WO2013109113A1 PCT/KR2013/000468 KR2013000468W WO2013109113A1 WO 2013109113 A1 WO2013109113 A1 WO 2013109113A1 KR 2013000468 W KR2013000468 W KR 2013000468W WO 2013109113 A1 WO2013109113 A1 WO 2013109113A1
Authority
WO
WIPO (PCT)
Prior art keywords
fec
decoding
encoding
block
packet
Prior art date
Application number
PCT/KR2013/000468
Other languages
English (en)
French (fr)
Inventor
황성희
명세호
양현구
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to US14/372,509 priority Critical patent/US9485297B2/en
Priority to EP13738984.7A priority patent/EP2806589B1/en
Priority to CN201380009066.0A priority patent/CN104137455B/zh
Priority to JP2014553262A priority patent/JP6504820B2/ja
Publication of WO2013109113A1 publication Critical patent/WO2013109113A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0083Formatting with frames or packets; Protocol or part of protocol for error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques

Definitions

  • the present invention relates to a method and apparatus for providing a streaming service. More specifically, the present invention relates to a method and apparatus for providing a higher quality streaming service to users in various communication environments.
  • PLR Packet Loss Rate
  • users of a good channel environment can reduce the delay of the FEC block to reduce the delay and transmit the streaming service.
  • relatively low code rate is needed to provide fast service to users in channel environment with poor communication environment.
  • transmission efficiency may be burdened, thus increasing the size of the FEC block to increase the transmission efficiency.
  • you increase the size of the FEC Block you can enjoy the service with a relatively long delay.
  • each user receives the service in a good channel environment (e.g., 1% PLR), while others receive a relatively bad channel environment (e.g., For example, PLR 10%) will receive the service.
  • a good channel environment e.g., 1% PLR
  • a relatively bad channel environment e.g., For example, PLR 10%
  • some users receive a random packet loss environment, while others receive a service in a burst packet loss environment. In such a case, a method for efficiently transmitting data for each user is required.
  • the present invention has been proposed to solve the above problems, and an object thereof is to provide a method and an apparatus for easily providing a streaming service to a plurality of users located in various environments or a plurality of users whose communication status changes according to movement. .
  • the streaming data encoding method comprises the steps of dividing the Forward Error Correction (FEC) source block into one or more FEC sub-blocks; A first encoding step of FEC encoding the one or more FEC subblocks; A second encoding step of encoding the FEC source block; And generating third encoded data including first encoded data encoded in the first encoding step and second encoded data encoded in the second encoding step.
  • FEC Forward Error Correction
  • a method of a terminal for decoding streaming data includes receiving streaming data; Determining a communication environment of the terminal; Determining a method of decoding the received streaming data according to the determined communication environment of the terminal; And decoding the received streaming data with the determined decoding method.
  • a streaming service can be smoothly provided to a plurality of users whose communication environment changes according to various environments or changes in mobile and communication states.
  • FIG. 1 is a block diagram illustrating an encoding method according to an embodiment.
  • FIG. 2 is a diagram illustrating a decoding method according to a first embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a decoding method according to a second embodiment of the present invention.
  • FIG. 4 is a diagram illustrating a flow of data during encoding according to an embodiment of the present invention.
  • 5A is a flowchart illustrating a decoding method according to an embodiment of the present invention.
  • 5B is a diagram illustrating the flow of data during decoding according to an embodiment of the present invention.
  • User Group A When a streaming service is multicasted or broadcasted, some of the user groups that receive the streaming server (hereafter User Group A) receive the service in a relatively good channel environment (e.g. 1% PLR) and the other users ( Hereinafter, the user group B) may receive a service in a relatively bad channel environment (for example, 10% PLR) than the user group A.
  • the user group A may receive a service in a random packet loss
  • the user group B may receive a service in a burst packet loss environment.
  • a user of a different user group A may correspond to a user group B because the communication channel environment is changed from a good channel environment to a bad channel environment due to a change in channel state or a user's position shift.
  • a group of users receives a streaming service in a good channel state (low PLR and random loss)
  • some or all users of the group are relatively bad (high PLR) due to data congestion or the like.
  • burst loss may be considered.
  • there is a communication radius covered by a cell of a base station and among users located within the radius, users who are relatively close to the base station may be classified as user group A. Users at the boundary of the radius covered by the cell can be classified as user group B.
  • a streaming service is provided to user group A and user group B in the same manner.
  • the streaming service is performed with a small FEC block, a low code rate should be used for the user group B. Therefore, the transmission efficiency is low.
  • the streaming service is performed with a large FEC block, although the user group A is in a channel environment in which the service can be quickly watched according to the delay, a delay may occur in providing the service due to the large FEC block.
  • a streaming service is provided to users by multicast or broadcast.
  • the service provider transmits the code rate and FEC block size by assuming a general channel state.
  • a channel state is worse than expected due to a user's movement, or a burst packet loss occurs due to data congestion at the network side during service transmission.
  • a phenomenon may occur in which the screen is opened or stopped during the streaming service without recovering the packet loss in the previously transmitted FEC block. Therefore, if a bad channel condition persists later, the user may not receive the service smoothly.
  • FIG. 1 is a block diagram illustrating an encoding method according to an embodiment.
  • the same FEC source block 100 may be encoded through a plurality of encoders 120 and 130 during FEC encoding to provide a streaming service.
  • the FEC 1 encoder 120 and the FEC 2 130 may perform encoding using the same code. In some cases, encoding may be performed by applying different code rates.
  • the FEC Source Block 100 is a block including data to be provided to a streaming service.
  • the FEC Source Block 100 may be divided into M FEC Sub-Blocks 112, 114, and 116.
  • the sub-blocks may vary in size depending on a communication situation. For example, one FEC sub-block can be set to be played back within a preset time during playback, and more preferably, the data corresponding to the divided FEC sub-block can be played for the same time. You can adjust the size. In addition, considering the general communication environment, the size of the FEC sub-block can be adjusted to minimize the transmission load according to the code rate required by the user.
  • the code used by the FEC 1 encoder 120 for encoding may be referred to as an FEC 1 code
  • the code used by the FEC 2 encoder 130 for encoding may be referred to as an FEC 2 code.
  • the first to Mth FEC sub-blocks may be encoded through the FEC 1 encoder 120.
  • the data encoded by the first encoder may include first to M th FEC sub-blocks 141, 143, and 145.
  • the first to Mth FEC Sub-Blocks 141, 143, and 145 may be the same as or different from the first to Mth FEC Sub-Blocks.
  • the first to Mth P1 parity payload 1 for recovering the sub-blocks of each of the first to Mth FEC sub-blocks 141, 143, and 145 ( 142, 144, 146.
  • a user who receives the first FEC Sub-Block 141 may recover an error through the first P1 142 even when there is a loss to the first FEC Sub-Block 141.
  • the FEC Source Block 100 may be encoded through the FEC 2 encoder 130.
  • the FEC 2 encoder 130 encodes the entire FEC Source Block 100 in the drawing
  • the FEc Source is a sub-block having a larger size than the sub-block encoded by the FEC 1 encoder 120 according to an embodiment.
  • the block 100 may be divided and encoded.
  • the P2 (parity payload 2) 150 of the FEC Source Block 100 encoded in the FEC 2 encoder 130 may be attached to the transmitted data.
  • the data 141 to 150 encoded by the two encoders 120 and 130 may be transmitted to the user. The user can recover the error through the P2 150 even if there is a certain level of loss in the received FEC Source Block.
  • a user who receives data by the encoding method of FIG. 1 may play a streaming service in the following manner.
  • User group A recovers the lost packet using the code of the FEC 1 encoder 120 to enjoy the service with a relatively low delay (fast start-up)
  • the user group B may recover by using the code of the FEC 2 encoder 130 when the lost packet recovery failure using the code of the FEC 1 encoder 120. Also, depending on the situation, the lost packet is recovered by using the code of the FEC 2 encoder 130 to enjoy the service. This is a method that can be suggested when user group B monitors its communication environment through channel condition measurement.
  • the lost packet can be recovered by the decoding method of 2 to enjoy the service.
  • a user in user group B can enjoy the service by maintaining the decoding method by 2 even after switching to user group A after recovering the lost packet by the decoding method by 2 and listening to the service.
  • the MMT package includes MMT-CI, MMT ADC, MMT Asset (Video), and MMT Asset (Audio).
  • MMT-CI Media Processing Units
  • MPUs constituting the Video MMT Asset are packetized into MMT Payload according to the MMT Payload Format to be composed of a stream of MMT Payloads, and MPUs configuring the Audio MMT Asset are also transmitted according to the MMT Payload Format.
  • the packetized packet is composed of MMT payloads and composed of a stream of MMT payloads.
  • an MMT packet header is added to each MMT payload to form a stream composed of MMT packets.
  • an MMT packet header is added to each MMT payload to configure an MMT packet stream by multiplexing after configuring a video stream and an audio stream including MMT packets.
  • multiplexing may include a procedure of mixing MMT payload by MMT payload or MMT Packet by MMT Packet.
  • the MMT Packet Stream that is, the FEC Source Payload Stream
  • the FEC Source Block 100 is a case 3 proposed in FIG. It may be FEC encoded by the method as follows.
  • the FEC Source Block 100 may be divided into M FEC Sub-Blocks 112, 114, and 116.
  • each FEC sub-block may also include a predetermined number of FEC source payloads.
  • Each FEC Sub-Block generates a predetermined number of FEC Parity Payloads using the code of the FEC 1 Encoder 120, and the FEC Source Block 100 uses a code of the FEC 2 Encoder 130. Generate Payload (P2 150 in the drawing).
  • FEC Parity Packet Each generated FEC Parity Payload is added to the MMT Packet Header to MMT packet. And MMT FEC Payload ID is added to each MMT Packet to make FEC Packet (FEC Packet for Source Payload is called FEC Source Packet and FEC Packet for Parity Payload is called FEC Parity Packet). ) Can be sent.
  • the MMT FEC Payload ID may be divided into an MMT FEC Payload ID for FEC Source Payload and an MMT FEC Payload ID for Parity Payload, which is a block ID information for distinguishing between FEC Blocks at the receiving end.
  • Number Information of FEC Parity Payload Number Information of FEC Source Payload and ID (or Sequence Number) information indicating an order in the FEC Block of FEC Parity Payloads may be included.
  • the ID is information for enabling FEC decoding from received packets in the FEC Packet Block and the FEC Packet Sub-Block at the receiving end.
  • information indicating that the FEC encoding is FEC encoded may be previously transmitted to the receiver through a message.
  • the message may be stored in an MMT Packet different from the MMT Packet for FEC Source Payload and FEC Parity Payload in the FEC Block or in the same MMT Packet.
  • the message is transmitted so that the receiver knows the FEC coding structure applied by the transmitter in advance.
  • FEC 1 code ID, FEC 2 code ID, and FEC source block may be stored in MMT packet different from the FMT source payload and the FMT parity payload in the MMT packet. It may include FEC related messages such as mode information converted to an information block.
  • information related to transmission and content consumption such as MMT-CI and MMT-ADC, is transmitted.
  • the receiving end acquires information related to transmission and content consumption and FEC related message transmitted in a separate MMT packet, and acquires FEC Block ID and FEC Decoding related information from the MMT FEC Payload IDs of the received MMT packets, thereby obtaining the corresponding FEC Packet Block. And lost packets in the FEC Packet Sub-Block.
  • the user group A regenerates the FEC Block from the FEC Source Packet and the associated FEC Parity Packets in the FEC Packet Sub-Block encoded by the FEC 1 code, and performs FEC source payload lost by performing FEC decoding therefrom.
  • the user group B regenerates the FEC block from the FEC source packet and the associated FEC parity packets in the FEC packet block encoded by the FEC 2 code, and performs FEC decoding therefrom. To recover lost FEC Source Payload.
  • FIG. 2 shows an FEC buffering model and decoding block diagram by user group A
  • FIG. 3 shows an FEC buffering model and decoding block diagram by user group B.
  • the AL-FEC decoding buffer 240 includes the received FEC Source Payload and FEC Parity included in each FEC Packet Sub-Block 210 to 224. Payloads can be stored in the order indicated by the MMT FEC Payload ID. At this time, the position of the FEC source payload that is not received may be left blank, and in some embodiments, the FEC source payload may be simultaneously received through a plurality of buffers.
  • the AL-FEC decoding buffer 240 secures at least the number of FEC Source Payloads of the FEC Block and transmits them to the FEC 1 decoder 250 when the decoding is ready, and deletes the FEC Source or Parity Payload not received. Can be processed and sent.
  • the FEC 1 decoder 250 may store the recovered FEC Source Payload in the AL-FEC decoding buffer 240 by performing FEC 1 decoding using the input FEC Source Payload, FEC Parity Payload, and Erasure location information. After decoding of the corresponding FEC block, the AL-FEC decoding buffer 240 de-packetizes the FEC Source Payload (in reverse order of the process of MMT packetization through the MMT Payload in the MPU) to the video decoding buffer 260 and the video decoding buffer. 270 may be sent.
  • each media decoding buffer displays and then performs media decoding to finally provide a streaming service to a user.
  • the user group A does not store the FEC Packet Block 205 in the AL-FEC decoding buffer 240 but stores the FEC Packet Sub-Block in FEC Packet Sub-Block units to perform FEC decoding. Can be.
  • the AL-FEC decoding buffer 340 receives received FEC Source Payload including each FEC Packet Sub-Block in the order of FEC Packet Sub-Blocks 310 to 324. And the FEC Parity Payload are stored in the order indicated by the MMT FEC Payload ID, and FEC decoding is performed using the FEC 1 decoder like user group A. If all the FEC Packet Sub-Blocks in the FEC Packet Block successfully decode using the FEC 1 decoder, the source payloads corresponding to the Source Block are de-packetized and transmitted to each Media Decoding buffer (360, 370). It can provide a streaming service.
  • the FEC Source Payload that is not recovered may be additionally recovered using the FEC Parity Payload 345 for the FEC Source Block 305.
  • the AL-FEC decoding buffer 340 de-packetizes the source payloads corresponding to the FEC source block 305 and transmits them to respective media decoding buffers 360 and 370 to finally provide a streaming service to the user. can do.
  • the user may change his AL-FEC Decoding Buffer to FIG.
  • the FEC decoding may be performed like a user in user group B to provide a service. For example, when FEC decoding is suddenly generated in the channel while performing FEC decoding in the user group A, it is possible to provide a good service by switching to the user group B when decoding using the FEC 1 decoder is impossible.
  • the decoding terminal may include one or more decoders capable of FEC decoding and a control unit for controlling the decoders.
  • FIG. 4 is a diagram illustrating a flow of data during encoding according to an embodiment of the present invention.
  • the video encoder 410 and the audio encoder 415 encode and output the generated video content and audio content.
  • Video creates a Video Asset 420 consisting of one or more MPUs
  • Audio creates an Audio Asset consisting of one or more MPUs, with each MPU paying for the MMT Payload Format.
  • the packetizer is packetized to generate MMT Payload Streams 430 and 435.
  • MMT packet streams 440 and 445 are generated by adding an MMT packet header to each MMT payload.
  • the generated Video MMT Packet Stream 440 and Audio MMT Packet Stream 445 are multiplexed and then composed of one multiplexed MMT Packet Stream 450.
  • the multiplexed MMT Packet Stream 450 is then divided into a source block consisting of a predetermined number of MMT packets for FEC encoding.
  • Each of the divided source blocks may be encoded 460 by Case 3, the FEC 1 encoder, and the FEC 2 encoder of FIG. 1 to generate parity payloads.
  • An MMT FEC Payload ID is added to each of the FEC protected MMT Packets, and an MMT FEC Payload ID and an MMT Packet Header are added to the Parity Payload to create and transmit the FEC Packet Stream 470 to the user.
  • 5A is a flowchart illustrating a decoding method according to an embodiment of the present invention.
  • a terminal of a receiving side receives an FEC message for FEC decoding of a streaming service (500).
  • the terminal may determine an encoding method of the received FEC packet stream based on the received FEC message (502). If the received FEC Packet Stream is encoded in the same manner as in Case 3 of the present invention, the process proceeds to step 506. Otherwise, in step 504, decoding can be performed as in the conventional method.
  • the terminal may determine whether the current communication environment of the terminal corresponds to user group A or B.
  • FIG. The terminal may determine a communication environment through channel environment measurement.
  • after decoding the received FEC Packet Stream it is possible to determine the communication environment of the terminal according to the decoding success.
  • an example of determining whether the receiving end belongs to user group A or user group B includes estimating a ratio of lost MMT packets from sequences of received MMT packets, and further comprising FEC encoding related information of an FEC message (eg, The number of FEC Source Packet and FEC Parity Packet of FEC Packet Sub-Block) may be used to determine the channel status of the FEC Packet Sub-Block.
  • the terminal may prepare an FEC decoding buffer so that the FEC 1 decoder can perform decoding in units of FEC Packet Sub-Block (508).
  • the FEC 1 decoder and the FEC 2 decoder may prepare an FEC decoding buffer for decoding in units of FEC Packeet Sub-Block and FEC Packet Block (510).
  • 5B is a diagram illustrating the flow of data during decoding according to an embodiment of the present invention.
  • the UE when the UE is ready for FEC decoding after receiving the FEC message, the UE receives the FEC packet stream (520).
  • MMT FEC Payload ID information is acquired in each FEC Packet, and FEC decoding is performed from received FEC Source Payload (MMT Packet) and FEC Parity Payload corresponding to each FEC Block (530).
  • the decoding method may be performed through the decoding method described in FIGS. 2 and 3.
  • the FEC source payload lost through FEC decoding is recovered to generate a recovered multiplexed MMT packet stream (540).
  • the video MMT payload stream 560 and the audio MMT payload stream 565 are distinguished and MMT header and de-packetizing are performed to generate a video asset 570 and an audio asset 575 formed of MPUs, respectively.
  • the video decoders 580 and the audio decoders 585 of the respective MPUs are decompressed and reproduced.

Abstract

본 발명의 일 실시 예에 따르는 스트리밍 데이터 인코딩 방법은 순방향 오류 정정(Forward Error Correction, FEC) 소스 블록을 1개 이상의 FEC 서브 블록으로 나누는 단계; 상기 1개 이상의 FEC 서브 블록을 FEC 인코딩 하는 제1인코딩 단계; 상기 FEC 소스 블록을 인코딩 하는 제2인코딩 단계; 및 상기 제1인코딩 단계에서 인코딩 된 제1인코딩 데이터 및 상기 제2인코딩 단계에서 인코딩 된 제2인코딩 데이터를 포함하는 제3인코딩 데이터를 생성하는 단계를 포함한다. 본 발명의 일 실시 예에 따르면 다양한 환경 또는 이동 및 통신 상태의 변경에 따라 통신 환경이 변하는 다수의 사용자에게 스트리밍 서비스를 원활하게 제공할 수 있다. 또한 복수의 패러티 정보를 전송하여 보다 신뢰도 높은 데이터 복구가 가능한 스트리밍 서비스를 제공할 수 있는 효과가 있다.

Description

스트리밍 서비스를 제공하는 방법 및 장치
본 발명은 스트리밍 서비스를 제공하기 위한 방법 및 장치에 관한 것이다. 보다 구체적으로 다양한 통신 환경에 있는 사용자에게 보다 품질 높은 스트리밍 서비스를 제공하기 위한 방법 및 장치에 관한 것이다.
일반적으로 스트리밍 서비스를 위해서는 Block (N,K) code가 사용되어지는데 동일한 Code Rate (= K/N)에서 채널 상황이 동일한 PLR(Packet Loss Rate)을 가진다 하더라도 N을 크게 하면 Code Rate을 높일 수 있다. 반면 N을 작게 하면 Code Rate이 낮아져야 한다.
또한 동일한 PLR이라 하더라도 Random loss에서는 작은 N을 Burst loss에서는 큰 N을 필요로 하게 된다. 여기서 N을 크게 한다는 의미는 순방향 에러 정정(Forward Error Correction, FEC) Block 주기가 길어진다는 의미로 수신 단에서의 delay를 유발하게 된다.
이는 패킷(Packet) 단위로 전송되는 네트워크(Network) 특성에 기인한 것으로 N개의 Packet으로 구성된 FEC Block내의 손실된 packet을 복구하기 위해서는 FEC Block내의 적어도 K개 이상의 packet을 수신한 이후 복구가 가능하기 때문에 수신단에서 FEC 디코딩(decoding)을 위해 FEC Block 주기 내외에 해당하는 시간을 기다려야 하기 때문이다.
일반적으로 단일 사용자에게 전송하는 유니캐스트(Unicast) 환경에서는 좋은 채널 환경에 있는 사용자들에게는 FEC Block의 크기를 작게 하여 딜래이(Delay)를 최소화하여 전송함으로써 사용자는 스트리밍 서비스 감상을 빨리 할 수 있다. 하지만 통신 환경이 나쁜 채널 환경에 있는 사용자들에게는 빠른 서비스를 제공하기 위해서는 상대적으로 낮은 Code Rate이 필요하다. 이와 같이 낮은 Code Rate확보를 위해서 전송 효율에 부담이 발생할 수 있으므로 FEC Block의 크기를 크게 하여 전송 효율을 높이다. 다만 FEC Block의 크기를 크개 할 경우 상대적으로 긴 딜레이(Delay)로 서비스를 감상하게 한다.
스트리밍 전송 서비스가 다수의 사용자에게 멀티케스트(multicast) 또는 브로드케스트(broadcast) 될 때 사용자들은 각각 좋은 채널 환경(예를 들어 PLR 1%)에서 서비스를 수신하고 다른 사용자들은 상대적으로 나쁜 채널 환경(예를 들어 PLR 10%)에서 서비스를 수신하게 된다. 또는 일부의 사용자는 랜덤 패킷 로스(random packet loss) 환경 다른 사용자들은 버스트 패킷 로스(burst packet loss) 환경에서 각각 서비스를 수신하게 된다. 이와 같은 경우에 각 사용자를 위해 데이터를 효율적으로 전송할 수 있는 방법이 요구된다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로 다양한 환경에 위치하는 다수의 사용자 또는 이동에 따라 통신 상태가 변하는 다수의 사용자에게 스트리밍 서비스를 용이하게 제공하는 방법 및 장치를 제공하는데 그 목적이 있다.
상술한 과제를 달성하기 위하여, 본 발명의 일 실시 예에 따르는 스트리밍 데이터 인코딩 방법은 순방향 오류 정정(Forward Error Correction, FEC) 소스 블록을 1개 이상의 FEC 서브 블록으로 나누는 단계; 상기 1개 이상의 FEC 서브 블록을 FEC 인코딩 하는 제1인코딩 단계; 상기 FEC 소스 블록을 인코딩 하는 제2인코딩 단계; 및 상기 제1인코딩 단계에서 인코딩 된 제1인코딩 데이터 및 상기 제2인코딩 단계에서 인코딩 된 제2인코딩 데이터를 포함하는 제3인코딩 데이터를 생성하는 단계를 포함한다.
본 발명의 다른 실시 예에 따르는 스트리밍 데이터 디코딩하는 단말에서의 방법은 스트리밍 데이터를 수신하는 단계; 상기 단말의 통신 환경을 판단하는 단계; 상기 판단된 단말의 통신 환경에 따라 상기 수신한 스트리밍 데이터를 디코딩할 방법을 결정하는 단계; 및 상기 결정된 디코딩 방법으로 상기 수신된 스트리밍 데이터를 디코딩하는 단계를 포함한다.
본 발명의 일 실시 예에 따르면 다양한 환경 또는 이동 및 통신 상태의 변경에 따라 통신 환경이 변하는 다수의 사용자에게 스트리밍 서비스를 원활하게 제공할 수 있다. 또한 복수의 패러티 정보를 전송하여 보다 신뢰도 높은 데이터 복구가 가능한 스트리밍 서비스를 제공할 수 있는 효과가 있다.
도 1은 실시 예에 따른 인코딩 방법을 나타내는 블록도이다.
도 2는 본 발명의 제1실시 예에 따른 디코딩 방법을 나타내는 도면이다.
도 3은 본 발명의 제2실시 예에 따른 디코딩 방법을 나타내는 도면이다.
도 4는 본 발명의 실시 예에 따른 인코딩시 데이터의 흐름을 나타내는 도면이다.
도 5a는 본 발명의 실시 예에 따른 디코딩 방법을 나타내는 순서도이다.
도 5b는 본 발명의 실시 예에 따른 디코딩시 데이터의 흐름을 나타내는 도면이다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 이하, 본 발명의 실시 예들에 의하여 휴대 단말기를 설명하기 위한 도면들을 참고하여 본 발명에 대해 설명하도록 한다.
스트리밍 서비스가 멀티케스트 혹은 브로드케스트 될 때 상기 스트리밍 서버스를 수신하는 사용자 그룹 중 어떤 사용자들은(이하 사용자 그룹 A) 상대적으로 좋은 채널 환경(예를 들어 PLR 1%)에서 서비스를 수신하고 나머지 사용자들은 (이하 사용자 그룹 B) 상기 사용자 그룹 A에 비해 상대적으로 나쁜 채널 환경(예를 들어 PLR 10%)에서 서비스를 수신할 수 있다. 또는 사용자 그룹 A는 랜덤 패킷 로스(random packet loss), 사용자 그룹 B는 버스트 패킷 로스(burst packet loss) 환경에서 각각 서비스를 수신할 수 있다. 떠한 사용자 그룹 A의 사용자가 채널 상태의 변화 또는 사용자의 위치 이동 등으로 인해 좋은 채널환경에서 나쁜 채널환경으로 통신 채널 환경이 변하게 됨으로써 사용자 그룹 B에 해당하게 될 수 있다. 일 예로 일 그룹의 사용자가 좋은 채널 상태(낮은 PLR 및 random loss)에서 스트리밍 서비스를 수신하다가 데이터 컨제스쳔(data congestion)등의 이유로 상기 일 그룹중 일부 또는 전부의 사용자가 상대적으로 나쁜 (높은 PLR 및 burst loss) 환경으로 이동하게 되는 경우를 고려해볼 수도 있다. 또한 무선 이동 통신 환경에서 기지국(Base Station)의 셀(Cell)이 커버하는 통신 반경이 있고, 상기 반경 안에 위치하는 사용자들 중, 기지국에 비교적 가까이 있는 사용자들을 사용자 그룹 A로 분류할 수 있고, 상기 셀이 커버하는 반경의 경계에 있는 사용자들을 사용자 그룹 B로 분류할 수 있다.
이와 같이 다수의 사용자가 동일한 스트리밍 서비스를 수신하는 상황에서 각 사용자 그룹의 통신 환경이 다양할 경우 일 그룹의 사용자에 맞춰 스트리밍 코드를 조절하기 어려울 수 있다. 보다 구체적으로 Unicast와 달리 Multicast나 Broadcast에서는 사용자 그룹 A와 사용자 그룹 B에 하나의 방식으로 스트리밍 서비스를 전송해야 하므로 상기의 Unicast와 같이 사용자의 상태에 따라 다른 코드레이트를 적용하는 등의 사용자 기반 서비스를 제공할 수 없다는 문제점이 있다.
만약 사용자 그룹 A 및 사용자 그룹 B에게 동일하게 스트리밍 서비스를 제공하는 경우를 가정해본다. 이때 작은 FEC Block으로 스트리밍 서비스를 하게 되면 사용자 그룹 B를 위해 낮은 Code Rate을 사용해야 하므로 전송 효율이 낮을 수 밖에 없다. 또한 큰 FEC Block으로 스트리밍 서비스를 하게 되면 사용자 그룹 A는 서비스를 딜레이이 따라 빨리 감상할 수 있는 채널 환경에 있음에도 불구하고 큰 FEC Block으로 인해 서비스를 제공하는데 딜레이가 발생할 수 있다.
또한 스트리밍 서비스가 멀티캐스트나 브로드캐스트로 사용자들에게 서비스 되는 상황을 가정한다. 이 때 서비스 제공자는 일반적인 채널 상태를 가정하여 Code Rate 및 FEC Block크기를 결정하여 전송하게 된다. 이 때 사용자의 이동으로 채널 상태가 예상보다 나빠지거나 또는 서비스 전송 도중 네트워크단에서 데이터 컨제스쳔(data congestion)으로 인하여 버스트 패킷 로스(burst packet loss)가 발생하는 경우를 가정해 볼 수 있다. 이와 같은 경우 발생한 상기 버스트 패킷 로스로 인하여, 기 전송된 FEC Block내의 packet loss를 복구하지 못하고 스트리밍 서비스 도중에 화면이 개지거나 멈추는 현상이 발생할 수 있다. 따라서 이후 나쁜 채널 상태가 지속되는 경우 사용자는 서비스를 원활하게 수신할 수 없게 된다.
도 1은 실시 예에 따른 인코딩 방법을 나타내는 블록도이다.
도 1을 참고 하면 스트리밍 서비스제공을 위해 FEC 인코딩 시 동일한 FEC 소스 블록(Source Block)(100)을 복수개의 인코더(120, 130)를 통해 인코딩 할 수 있다.
이와 같은 인코딩 환경에서 가능한 인코딩 환경은 아래와 같다.
1. Case 0: No coding
2. Case 1: 1단계(One Stage) FEC coding (FEC 2 인코더(130) 제외(skipped))
3. Case 2: 1단계(One Stage) FEC coding (FEC 1 인코더(120) 제외(skipped))
4. Case 3: 2단계(Two Stages) FEC coding (FEC 1, 2 인코드(120, 130)모두 인코딩 진행)
참고로 FEC 1 인코더(120) 및 FEC 2(130)은 각기 동일한 코드를 사용하여 인코딩을 진행할 수 있다. 또한 경우에 따라 각기 다른 코드레이트를 적용하여 인코딩을 진행할 수도 있다.
FEC Source Block(100)은 스트리밍 서비스에 제공될 데이터를 포함하는 블록이다. FEC Source Block(100)을 M개의 FEC Sub-Block(112, 114, 116)으로 분할 할 수 있다. 상기 Sub-Block들은 통신 상황에 따라 그 크기가 달라질 수 있다. 일 예로 1개의 FEC Sub-Block이 재생시 기 설정된 시간 내외로 재생될 수 있도록 설정할 수 있으며, 보다 바람직하게는 나누어진 FEC Sub-Block에 해당하는 데이터가 동일한 시간동안 재생될 수 있도록 Sub-Block의 크기를 조절할 수 있다. 또한 일반적인 통신환경을 고려하여 사용자가 수신할 때 필요한 코드 레이트에 따라 전송 부하를 최소화 할 수 있또록 FEC Sub-Block의 크기를 조절할 수도 있다. 상기 FEC 1 인코더(120)가 인코딩 시 사용하는 코드를 FEC 1 code라 칭할 수 있고, 상기 FEC 2 인코더(130)가 인코딩 시 사용하는 코드를 FEC 2 code라 칭할 수 있다.
상기 제1 내지 제M FEC Sub-Block은 FEC 1 인코더(120)를 통해 인코딩 될 수 있다. 상기 제1인코더에 의해 인코딩된 데이터는 제1 내지 제M FEC Sub-Block(141, 143, 145)을 포함할 수 있다. 상기 제1 내지 제M FEC Sub-Block(141, 143, 145)은 상기 제1내지 제M FEC Sub-Block 과 동일한 내용일 수도 다른 내용일 수도 있다. 또한 FEC 1 인코더(120)의 인코딩 결과에 따라 제1 내지 제M FEC Sub-Block(141, 143, 145)각각의 Sub-Block의 복구를 위한 제1 내지 제M P1(패러티 페이로드1)(142, 144, 146)을 포함할 수 있다.
일 예로 제1 FEC Sub-Block(141)을 수신한 사용자는 수신한 제1 FEC Sub-Block(141)에 어느 정도 손실이 있는 경우에도 제1 P1(142)를 통해 오류를 복구 할 수 있다.
또한 FEC Source Block(100)을 FEC 2 인코더(130)을 통해 인코딩을 진행할 수 있다. 도면 상에는 FEC Source Block(100) 전체를 FEC 2 인커더(130)가 인코딩하는 것으로 도시되었으나, 실시 예에 따라 FEC 1 인코더(120)가 인코딩 하는 Sub-Block 보다 큰 사이즈의 Sub-Block으로 FEc Source Block(100)을 분할하여 인코딩 할 수도 있다.
FEC 2 인코더(130)에 인코딩 된 FEC Source Block(100)의 P2(패러티 페이로드2)(150)이 전송되는 데이터에 첨부될 수 있다. 실시 예에서 상기 2개의 인코더(120, 130)에 의해 인코딩 된 데이터(141 내지 150)를 사용자에게 전송할 수 있다. 상기 P2(150)를 통해 사용자는 수신된 FEC Source Block에 일정 수준의 손실이 있는 경우에도 P2(150)를 통해 오류를 복구하는 것이 가능하다.
실시예에 따르면 도 1에 해당하는 인코딩 방법에 의해 데이터를 수신한 사용자는 아래와 같은 방법으로 스트리밍 서비스를 재생하는 것이 가능하다.
1. 사용자 그룹 A는 FEC 1 인코더(120)의 code를 이용하여 손실된 packet을 복구하여 비교적 낮은 delay (fast start-up)로 서비스를 감상하고
2. 사용자 그룹 B는 FEC 1 인코더(120)의 code를 이용한 손실된 packet 복구 실패 시 FEC 2 인코더(130)의 code를 이용하여 복구할 수 있다. 또한 상황에 따라 바로 FEC 2 인코더(130)의 code를 이용하여 손실된 packet을 복구하여 서비스를 감상한다. 이는 사용자 그룹 B가 채널 상황 측정 등을 통해 자신의 통신 환경을 모니터한 경우에 제안 될 수 있는 방법이다.
3. 사용자 그룹 A에 있는 사용자가 사용자 그룹 B로 전환되는 경우 2에 의한 decoding 방법으로 손실된 packet을 복구하여 서비스를 감상할 수 있다.
4. 사용자 그룹 B에 있는 사용자는 2에 의한 decoding 방법으로 손실된 packet을 복구하여 서비스를 감상한 이후 사용자 그룹 A로 전환되더라도 2에 의한 decoding 방법을 계속 유지하여 서비스를 감상할 수 있다.
MMT 패키지(Package)는 MMT-CI, MMT ADC, MMT Asset(Video), MMT Asset(Audio)를 포함한다. 각각의 Asset은 1개 이상의 MPU(Media Processing Unit)로 구성되어 있다.
Video MMT Asset을 구성하는 MPU들은 MMT Payload Format에 따라 전송 순서에 맞게 MMT Payload로 패킷화(Packetization)되어 MMT Payload들의 stream으로 구성되고, Audio MMT Asset을 구성하는 MPU들도 MMT Payload Format에 따라 전송 순서에 맞게 MMT Payload로 Packetization되어 MMT Payload들의 stream으로 구성된다.
Video를 위한 MMT Payload stream과 Audio를 위한 MMT Payload stream은 서로 다중화(Multiplexing)된 후 각각의 MMT Payload에 MMT Packet Header를 추가하여 MMT Packet으로 구성된 stream을 구성한다.
또는 Video를 위한 MMT Payload stream에서 각각의 MMT Payload에 MMT Packet Header를 추가하여 MMT Packet으로 구성된 Video Stream과 Audio도 마찬가지로 MMT Packet으로 구성된 Audio Stream을 구성한 이후 다중화(Multiplexing)하여 MMT Packet Stream을 구성한다. 여기서 다중화(Multiplexing)이라 함은 MMT payload by MMT payload 또는 MMT Packet by MMT Packet으로 서로 섞는 절차를 포함할 수 있다.
MMT Packet을 FEC Source Payload라 부르면, 상기 MMT Packet Stream 즉, FEC Source Payload Stream은 소정 개수로 구성된 FEC Source Block(100)으로 나누어 지고 각각의 FEC Source Block(100)은 상기 도 1에서 제안된 Case 3와 같은 방법에 의해 FEC encoding될 수 있다. 이때, FEC Source Block(100)은 M개의 FEC Sub-Block(112, 114, 116)으로 나누어 질 수 있다.
또한 각각의 FEC Sub-Block 역시 소정 개수의 FEC Source Payload를 포함할 수 있다. 각각의 FEC Sub-Block은 FEC 1 인코더(120)의 code를 이용하여 소정개수의 FEC Parity Payload를 생성하고 FEC Source Block(100)은 FEC 2 인코더(130)의 code를 이용하여 소정개수의 FEC Parity Payload(도면상의 P2(150))를 생성한다.
그 이후 생성된 각각의 FEC Parity Payload는 MMT Packet Header를 추가하여 MMT 패킷화 한다. 그리고 MMT FEC Payload ID를 각각의 MMT Packet에 추가하여 FEC Packet (Source Payload를 위한 FEC Packet을 FEC Source Packet이라 하고 Parity Payload를 위한 FEC Packet을 FEC Parity Packet이라 한다.)화 하여 최종적으로 하위 레이어(Layer)에 전송할 수 있다.
상기의 MMT FEC Payload ID는 FEC Source Payload를 위한 MMT FEC Payload ID와 Parity Payload를 위한 MMT FEC Payload ID로 구분될 수도 있는데, 이는 수신단에서 FEC Block간의 구분을 위한 Block ID 정보 해당 FEC Block 내의 FEC Source Payload의 개수 정보 FEC Parity Payload의 개수 정보 FEC Source Payload와 FEC Parity Payload들의 FEC Block내의 순서를 나타내는 ID(or Sequence Number) 정보 등을 포함할 수 있다. 상기 ID는 수신단에서 FEC Packet Block 및 FEC Packet Sub-Block내의 수신된 Packet들로부터 FEC decoding을 가능하게 하기 위한 정보들이다.
또한 송신단에서 적용한 FEC coding structure를 수신단이 알게 하기 위해 상기 도 1의 case 3와 같이 FEC encoding되어 있다는 정보를 메시지를 통해 수신단에 미리 전달할 수 있다. 상기 메시지는 FEC Block내의 FEC Source Payload와 FEC Parity Payload를 위한 MMT Packet과는 다른 MMT Packet내에 저장하거나, 같은 MMT Packet내에 저장할 수 있다. 또한 상기 메시지를 전송하여 수신단이 미리 송신단에서 적용한 FEC coding structure를 알게 한다. 상기와 같이 FEC Block내의 FEC Source Payload와 FEC Parity Payload를 위한 MMT Packet과는 다른 MMT Packet내에 저장하여 전송하는 정보로는 FEC coding structure외에 FEC 1 code ID, FEC 2 code ID, 그리고 FEC Source Block이 FEC Information Block으로 전환된 Mode 정보등 FEC 관련 message들을 포함할 수 있다. 또 다를 별도의 MMT Packet으로 MMT-CI, MMT-ADC등의 전송 및 content 소비 관련 정보가 전송된다.
이 후 수신 단에서는 별도의 MMT Packet으로 전송된 전송 및 content 소비 관련 정보 및 FEC 관련 Message를 습득하고 수신된 MMT Packet들의 MMT FEC Payload ID로부터 FEC Block ID 및 FEC Decoding 관련 정보를 습득하여 해당 FEC Packet Block 및 FEC Packet Sub-Block내의 손실된 Packet을 복구할 수 있다.
이 때 사용자 그룹 A는 FEC 1 code에 의해 encoding된 FEC Packet Sub-Block내의 FEC Source Packet과 그와 관련된 FEC Parity Packet들로부터 FEC Block을 재생성하여 이로부터 FEC decoding을 수행함에 의해 손실된 FEC Source Payload를 복구하고 사용자 그룹 B는 FEC 1 code에 의한 FEC decoding 실패 시 FEC 2 code에 의해 encoding된 FEC Packet Block내의 FEC Source Packet과 그와 관련된 FEC Parity Packet들로부터 FEC Block을 재 생성하여 이로부터 FEC decoding을 수행하여 손실된 FEC Source Payload를 복구할 수 있다.
또한 도면 상으로 2개의 FEC 인코더가 개시되었으나, 상기의 인코딩 절차는 동일한 인코더에서 병렬적으로 처리될 수 있다.
도 2는 사용자 그룹 A에 의한 FEC 버퍼링 모델(buffering model) 및 디코딩 블록도(decoding block diagram)를 나타내고, 도 3은 사용자 그룹 B에 의한 FEC buffering model 및 decoding block diagram을 나타낸다.
도 2 및 도 3을 참조하면 사용자 그룹 A에 속해 있는 사용자의 경우 AL-FEC decoding buffer(240)는 각각의 FEC Packet Sub-Block(210 내지 224)에 포함되어 있는 수신된 FEC Source Payload와 FEC Parity Payload를 MMT FEC Payload ID에서 가리키고 있는 순서대로 저장할 수 있다. 이 때 수신되지 않는 FEC Source payload의 자리는 비워둘 수 있으며 실시 예에 따라 복수개의 버퍼를 통해 FEC Source payload를 동시에 수신할 수 있다.
AL-FEC decoding buffer(240)는 해당 FEC Block의 적어도 FEC Source Payload 개수 이상의 Payload를 확보하여 Decoding 준비가 되면 이를 FEC 1 디코더(250)에 전송하는데 수신하지 못한 FEC Source 또는 Parity Payload는 삭제(Erasure)처리를 하여 전송할 수 있다.
FEC 1 디코더(250)는 입력되는 FEC Source Payload와 FEC Parity Payload, Erasure 위치 정보를 이용하여 FEC 1 decoding을 수행하여 복구된 FEC Source Payload를 AL-FEC decoding buffer(240)에 저장할 수 있다. 해당 FEC block의 decoding이 끝나면 AL-FEC decoding buffer(240)는 FEC Source Payload를 De-packetizer(MPU에서 MMT Payload를 거쳐 MMT Packet화 된 과정의 역순)하여 비디오 디코딩 버퍼(260) 및 모디오 디코딩 버퍼(270)로 전송할 수 있다.
그 이후 각각의 Media decoding buffer는 media decoding을 수행 한 후 display하여 최종적으로 사용자에게 스트리밍 서비스를 제공한다. 이와 같이 사용자 그룹 A는 FEC Packet Block(205)을 AL-FEC decoding buffer(240)에 저장하는 것이 아니라 FEC Packet Sub-Block단위로 저장하여 FEC decoding을 수행하기 때문에 FEC에 의한 낮은 delay로 contents를 재생할 수 있다.
도 3을 참조하면 사용자 그룹 B에 속해 있는 사용자의 경우 AL-FEC decoding buffer(340)는 FEC Packet Sub-Block(310 내지 324) 순서대로 각각의 FEC Packet Sub-Block 포함되어 있는 수신된 FEC Source Payload와 FEC Parity Payload를 MMT FEC Payload ID에서 가리키고 있는 순서대로 저장하고 사용자 그룹 A처럼 FEC 1 디코더를 이용한 FEC decoding을 수행한다. 만일 FEC Packet Block내의 모든 FEC Packet Sub-Block 모두 FEC 1 디코더를 이용한 디코딩을 성공하면 Source Block에 해당하는 Source Payload들을 De-packetizer하여 각각의 Media Decoding buffer(360, 370)에 전송하여 최종적으로 사용자에게 스트리밍 서비스를 제공할 수 있다.
만일 FEC Packet Block내의 적어도 하나의 FEC Packet Sub-Block이 FEC decoding 실패하게 되면 FEC Source Block(305)을 위한 FEC Parity Payload(345)를 이용하여 미쳐 복구하지 못한 FEC Source Payload를 추가적으로 복구한다.
상기 추가적인 복구 후 AL-FEC Decoding buffer(340)는 FEC Source Block(305)에 해당하는 Source Payload들을 De-packetizer하여 각각의 Media Decoding buffer(360, 370)에 전송하여 사용자에게 최종적으로 스트리밍 서비스를 제공할 수 있다.
실시 예에 따라, 사용자 그룹 A에 있는 사용자가 FEC Packet Sub-Block에 대한 FEC decoding이 빈번히 실패하여 사용자에 불편을 초래할 것으로 판단되면 사용자 그룹 B로 전환하기 위해 자신의 AL-FEC Decoding Buffer를 도 3과 같이 확장하여 사용자 그룹 B에 있는 사용자처럼 FEC decoding을 수행하여 서비스를 제공하면 된다. 이러한 예로는 사용자 그룹 A에서 FEC decoding을 수행하는 도중 갑자기 채널에서 burst packet loss가 발생해서 FEC 1 디코더를 이용한 decoding이 불가한 경우 사용자 그룹 B로 전환함에 의해 양질의 서비스를 제공할 수 있다.
상기 디코딩을 하는 단말은 FEC 디코딩을 할 수 있는 1개 이상의 디코더와 상기 디코더를 제어하는 제어부를 포함할 수 있다.
도 4는 본 발명의 실시 예에 따른 인코딩시 데이터의 흐름을 나타내는 도면이다.
도 4를 참고하면, Streaming 서비스를 위해 비디오 인코더(410)와 오디오 인코더(415)는 생성된 각각의 비디오 컨텐츠(Video content)와 오디오 컨텐츠(Audio content)를 인코딩(encoding)하여 출력하게 되고 이로부터 비디오는 하나 또는 그 이상의 MPU들로 구성된 비디오 에셋(Video Asset)(420)을 오디오는 하나 또는 그 이상의 MPU들로 구성된 오디오 에셋(Audio Asset)을 생성하고 각각의 MPU들은 MMT Payload Format에 맞게 MMT Payload로 패킷화(Packetizer)되어 MMT Payload Stream(430, 435)을 생성한다. 이후 각각의 MMT Payload에 MMT 패킷 헤더(Packet Header)를 추가하여 MMT 패킷 스트림(Packet Stream)(440, 445)을 생성한다. 생성된 Video MMT Packet Stream(440)과 Audio MMT Packet Stream(445)은 다중화(Multiplexing)된 후 하나의 다중화된 MMT Packet Stream(450)으로 구성된다.
다중화된 MMT Packet Stream(450)은 이후 FEC encoding을 위해 소정 개수의 MMT Packet으로 구성된 Source Block으로 나누어 진다. 상기 나눠진 각각의 Source Block은 도 1의 Case 3와 FEC 1 인코더 및 FEC 2 인코더에 의해 인코딩되어(460) Parity Payload들을 생성할 수 있다.
상기 FEC 프로텍션(Protection)된 MMT Packet 각각에 MMT FEC Payload ID를 추가하고, Parity Payload에는 MMT FEC Payload ID 및 MMT Packet Header를 추가하여 FEC Packet Stream(470)을 만들어 사용자에게 전송하게 된다.
도 5a는 본 발명의 실시 예에 따른 디코딩 방법을 나타내는 순서도이다.
도 5a를 참조하면, 수신측의 단말기는 Streaming 서비스의 FEC decoding을 위해 FEC 메시지를 수신한다(500). 상기 단말기는 수신한 FEC 메시지를 기반으로 수신된 FEC Packet stream의 인코딩 방식을 판단할 수 있다(502). 만약 상기 수신한 FEC Packet Stream이 본 발명의 Case 3과 같은 방식으로 인코딩 되었을 경우 단계 506으로 진행하고, 그렇지 않을 경우 단계 504에서 기존의 방식과 같이 디코딩을 수행할 수 있다.
단계 506에서 단말은 현재 단말의 통신 환경이 사용자 그룹 A 또는 B에 해당하는지 판단할 수 있다. 상기 단말은 채널 환경 측정을 통해 통신 환경을 판단할 수 있다. 또한 수신한 FEC Packet Stream을 디코딩 한 후 디코딩 성공 여부에 따라 상기 단말의 통신 환경을 판단할 수도 있다. 또한 수신 단이 사용자 그룹 A에 속하는지 사용자 그룹 B에 속하는지 판단하는 일 예는 수신된 MMT Packet들의 Sequence들로부터 손실된 MMT Packet들의 비율을 예측하고 또한 FEC message의 FEC encoding 관련 정보(예를 들어 FEC Packet Sub-Block의 FEC Source Packet 및 FEC Parity Packet의 개수 정보)를 바탕으로 판단하거나 또는 Feedback channel을 위한 자신이 처해 있는 채널 상황을 알 수 있다.
만약 상기 단말의 통신 환경이 사용자 그룹 A에 있다고 판단될 경우, 상기 단말은 FEC 1 디코더가 FEC Packet Sub-Block단위로 decoding을 수행할 수 있도록 FEC Decoding buffer를 준비할 수 있다(508).
만약 상기 단말의 통신 환경이 사용자 그룹 B에 있다고 판단되면 FEC 1 디코더 및 FEC 2 디코더가 FEC Packeet Sub-Block 및 FEC Packet Block단위로 decoding을 수행하기 위한 FEC Decoding buffer를 준비할 수 있다(510).
도 5b는 본 발명의 실시 예에 따른 디코딩시 데이터의 흐름을 나타내는 도면이다.
도 5b를 참조하면, 단말은 FEC message의 수신 이후 FEC decoding 준비가 되면 FEC 패킷 스트림(Packet Stream)을 수신(520)한다.
각각의 FEC Packet내의 MMT FEC Payload ID 정보를 획득하여 각각의 FEC Block에 해당하는 수신된 FEC Source Payload (MMT Packet)와 FEC Parity Payload를로부터 FEC decoding을 수행한다(530). 상기 디코딩 방식은 도 2 및 도 3에서 기술된 디코딩 방식을 통해 이루어 질 수 있다.
FEC 디코딩을 통해 손실된 FEC Source Payload를 복원하여 복원된 다중화된 MMT 패킷 스트림(Multiplexed MMT Packet Stream)을 생성한다(540).
Multiplexed MMT Packet stream을 비디오 MMT 패킷 스트림(550) 및 오디오 MMT 페킷 스트림(555)으로 나누어서
또한 비디오 MMT Payload Stream(560) 및 오디오 MMT Payload Stream(565)을 구분하고 MMT Header 및 De-packetizing을 수행하여 MPU들로 구성된 Video Asset(570)과 Audio Asset(575)을 각각 생성한다. 각각의 MPU들의 비디오 디코더(580)와 오디오 디코더(585)에 입력되어 압축을 푼 후 재생된다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (10)

  1. 스트리밍 데이터 인코딩 방법에 있어서,
    순방향 오류 정정(Forward Error Correction, FEC) 소스 블록을 1개 이상의 FEC 서브 블록으로 나누는 단계;
    상기 1개 이상의 FEC 서브 블록을 FEC 인코딩 하는 제1인코딩 단계;
    상기 FEC 소스 블록을 인코딩 하는 제2인코딩 단계; 및
    상기 제1인코딩 단계에서 인코딩 된 제1인코딩 데이터 및 상기 제2인코딩 단계에서 인코딩 된 제2인코딩 데이터를 포함하는 제3인코딩 데이터를 생성하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 1개 이상의 FEC 서브 블록으로 나누는 단계는
    상기 나누어진 FEC 서브 블록에 포함되는 데이터의 재생 시간이 기 설정된 범위 내의 시간이 될 수 있도록 상기 FEC 서브 블록을 나누는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    제3인코딩 데이터를 생성하는 단계는 상기 제1인코딩 데이터 및 상기 제2인코딩 단계에서 생성된 FEC 소스 블록에 대한 패러티 패킷을 포함하는 데이터를 생성하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 1개 이상의 FEC 서브 블록으로 나누는 단계는
    상기 스트리밍 데이터가 전송되는 환경에 따라 FEC 서브 블록의 크기를 유동적으로 결정하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 제1인코딩 단계 및 상기 제2인코딩 단계에서 사용되는 인코딩 방법은 동일한 것을 특징으로 하는 방법.
  6. 스트리밍 데이터 디코딩하는 단말에서의 방법에 있어서,
    스트리밍 데이터를 수신하는 단계;
    상기 단말의 통신 환경을 판단하는 단계;
    상기 판단된 단말의 통신 환경에 따라 상기 수신한 스트리밍 데이터를 디코딩할 방법을 결정하는 단계; 및
    상기 결정된 디코딩 방법으로 상기 수신된 스트리밍 데이터를 디코딩하는 단계를 포함하는 디코딩 방법.
  7. 제6항에 있어서,
    상기 스트리밍 데이터를 수신하는 단계는 순방향 오류 정정(Forward Error Correction, FEC) 메시지를 수신하는 단계를 포함하고,
    상기 수신한 FEC 메시지를 기반으로 디코딩 방법의 집합을 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제6항에 있어서,
    상기 단말의 통신 환경을 판단하는 단계는
    상기 단말이 측정하거나, 보고 받은 통신 채널 환경 기반으로 상기 단말의 통신 환경을 판단하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제6항에 있어서,
    상기 수신된 스트리밍 데이터를 디코딩하는 단계는,
    상기 결정된 디코딩 방법을 통해 디코딩이 실패 할 경우, 상기 결정된 디코딩 방법과 다른 디코딩 방법을 통해 디코딩 하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 다른 디코딩 방법은 수신된 스트리밍 데이터의 FEC 패킷 블록의 패러티 패킷을 기반으로 상기 수신된 스트리밍 데이터를 디코딩하는 것을 특징으로 하는 방법.
PCT/KR2013/000468 2012-01-20 2013-01-21 스트리밍 서비스를 제공하는 방법 및 장치 WO2013109113A1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US14/372,509 US9485297B2 (en) 2012-01-20 2013-01-21 Method and apparatus for providing streaming data encoding
EP13738984.7A EP2806589B1 (en) 2012-01-20 2013-01-21 Method for providing streaming service
CN201380009066.0A CN104137455B (zh) 2012-01-20 2013-01-21 提供流传输服务的方法和装置
JP2014553262A JP6504820B2 (ja) 2012-01-20 2013-01-21 ストリーミングサービスを提供する方法及び装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261588864P 2012-01-20 2012-01-20
US61/588,864 2012-01-20
KR10-2012-0111998 2012-10-09
KR1020120111998A KR20130094160A (ko) 2012-01-20 2012-10-09 스트리밍 서비스를 제공하는 방법 및 장치

Publications (1)

Publication Number Publication Date
WO2013109113A1 true WO2013109113A1 (ko) 2013-07-25

Family

ID=49218118

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/000468 WO2013109113A1 (ko) 2012-01-20 2013-01-21 스트리밍 서비스를 제공하는 방법 및 장치

Country Status (6)

Country Link
US (1) US9485297B2 (ko)
EP (1) EP2806589B1 (ko)
JP (2) JP6504820B2 (ko)
KR (1) KR20130094160A (ko)
CN (1) CN104137455B (ko)
WO (1) WO2013109113A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016085084A1 (ko) * 2014-11-26 2016-06-02 엘지전자(주) 방송 신호 송수신 장치 및 방법
CN110121840A (zh) * 2016-12-22 2019-08-13 埃克斯普韦公司 用于校正用于恢复数据分组的低等待时间错误的方法和设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017140261A1 (en) * 2016-02-19 2017-08-24 Mediatek Inc. Method and system of adaptive application layer fec for mpeg media transport
US11663073B2 (en) * 2020-12-10 2023-05-30 Advanced Micro Devices, Inc. Method and apparatus for data protection in memory devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010102505A (ko) * 1999-03-05 2001-11-15 추후제출 고성능 코딩을 가능케 하는 멀티플렉서된 cdma채널들에서의 순방향 에러 정정
US7103830B1 (en) * 2002-12-18 2006-09-05 Applied Micro Circuits Corporation DC balanced error correction coding
KR20070118237A (ko) * 2005-02-22 2007-12-14 아답틱스, 인코포레이티드 Ofdma 멀티셀 네트워크에서의 지능형 복조 시스템들및 방법들
US20080168332A1 (en) * 2007-01-05 2008-07-10 Qualcomm Incorporated Fec code and code rate selection based on packet size
KR20110007212A (ko) * 2008-04-21 2011-01-21 퀄컴 인코포레이티드 향상된 스위칭 성능을 위해 송신 데이터 블록들을 인코딩하는 방법 및 장치

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19630343B4 (de) * 1996-07-26 2004-08-26 Telefonaktiebolaget L M Ericsson (Publ) Verfahren und Paket-Übertragungssystem unter Verwendung einer Fehlerkorrektur von Datenpaketen
US7243285B2 (en) * 1998-09-23 2007-07-10 Digital Fountain, Inc. Systems and methods for broadcasting information additive codes
AU2001278717A1 (en) 2000-08-24 2002-03-04 Matsushita Electric Industrial Co., Ltd. Transmitting/receiving method and device therefor
JP3708950B2 (ja) * 2000-08-24 2005-10-19 松下電器産業株式会社 送受信方法およびその装置
US7389463B2 (en) * 2001-05-29 2008-06-17 Thomson Licensing Hierarchical block coding for a packet-based communications system
WO2003071440A1 (en) * 2002-02-15 2003-08-28 Digital Fountain, Inc. System and method for reliably communicating the content of a live data stream
WO2004001976A2 (en) * 2002-06-21 2003-12-31 Thomson Licensing S.A. Method of forward error correction
US7152199B2 (en) * 2004-06-02 2006-12-19 Teknovus, Inc. Method and apparatus for delineating data in an FEC-coded Ethernet frame
DE102004036383B4 (de) * 2004-07-27 2006-06-14 Siemens Ag Codier-und Decodierverfahren , sowie Codier- und Decodiervorrichtungen
JP4405875B2 (ja) 2004-08-25 2010-01-27 富士通株式会社 エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体
EP1797661B1 (en) * 2004-10-06 2011-06-01 Nokia Corporation Assembling forward error correction frames
EP1803245A1 (en) * 2004-10-07 2007-07-04 Nokia Corporation Efficient source blocking algorithm for fec for mbms streaming
WO2006061902A1 (ja) * 2004-12-09 2006-06-15 Mitsubishi Denki Kabushiki Kaisha データ送信装置、データ受信装置、およびデータ配信システム
US7971129B2 (en) * 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US20080022345A1 (en) * 2006-06-29 2008-01-24 Samsung Electronics Co., Ltd. Demodulator and demodulation method
BRPI0622135A2 (pt) * 2006-12-21 2011-12-27 Thomson Licensing mÉtodo para suporte corretivo de erros futuros para dados de vÍdeo e Áudio em tempo real atravÉs de redes de trabalho protocoladas na internet
KR101534076B1 (ko) * 2008-04-30 2015-07-07 삼성전자주식회사 디지털 방송 송신기 및 수신기와 그 스트림 처리방법들
US20100011274A1 (en) * 2008-06-12 2010-01-14 Qualcomm Incorporated Hypothetical fec decoder and signalling for decoding control
EP2720399A1 (en) * 2008-08-25 2014-04-16 Aware, Inc. System and method of sub-carrier indexing for devices with different decoding capabilities
TW201141078A (en) * 2010-05-14 2011-11-16 Nat Univ Chung Cheng Method of handling packet loss using error-correcting codes and block rearrangement
KR101655269B1 (ko) * 2010-05-28 2016-09-07 삼성전자주식회사 무선통신시스템에서 자원분배 장치 및 방법
US20130136193A1 (en) * 2011-11-30 2013-05-30 Samsung Electronics Co. Ltd. Apparatus and method of transmitting/receiving broadcast data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010102505A (ko) * 1999-03-05 2001-11-15 추후제출 고성능 코딩을 가능케 하는 멀티플렉서된 cdma채널들에서의 순방향 에러 정정
US7103830B1 (en) * 2002-12-18 2006-09-05 Applied Micro Circuits Corporation DC balanced error correction coding
KR20070118237A (ko) * 2005-02-22 2007-12-14 아답틱스, 인코포레이티드 Ofdma 멀티셀 네트워크에서의 지능형 복조 시스템들및 방법들
US20080168332A1 (en) * 2007-01-05 2008-07-10 Qualcomm Incorporated Fec code and code rate selection based on packet size
KR20110007212A (ko) * 2008-04-21 2011-01-21 퀄컴 인코포레이티드 향상된 스위칭 성능을 위해 송신 데이터 블록들을 인코딩하는 방법 및 장치

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016085084A1 (ko) * 2014-11-26 2016-06-02 엘지전자(주) 방송 신호 송수신 장치 및 방법
WO2016085083A1 (ko) * 2014-11-26 2016-06-02 엘지전자(주) 방송 신호 송수신 장치 및 방법
US9525515B2 (en) 2014-11-26 2016-12-20 Lg Electronics Inc. Apparatus and method for sending and receiving broadcast signals
CN110121840A (zh) * 2016-12-22 2019-08-13 埃克斯普韦公司 用于校正用于恢复数据分组的低等待时间错误的方法和设备
CN110121840B (zh) * 2016-12-22 2023-09-15 埃克斯普韦公司 用于校正用于恢复数据分组的低等待时间错误的方法和设备

Also Published As

Publication number Publication date
JP2015504288A (ja) 2015-02-05
US9485297B2 (en) 2016-11-01
JP6504820B2 (ja) 2019-04-24
EP2806589A1 (en) 2014-11-26
CN104137455A (zh) 2014-11-05
EP2806589B1 (en) 2019-06-19
CN104137455B (zh) 2017-08-15
JP2018011365A (ja) 2018-01-18
US20140359392A1 (en) 2014-12-04
EP2806589A4 (en) 2015-09-02
KR20130094160A (ko) 2013-08-23
JP6535718B2 (ja) 2019-06-26

Similar Documents

Publication Publication Date Title
WO2013069983A1 (en) Apparatus and method for transmitting and receiving an application layer-forward error correction packet in multimedia communication system
WO2013055176A1 (en) Apparatus and method for transmitting multimedia data in hybrid network
WO2012047004A2 (ko) Http 스트리밍의 표현 스위칭시 자연스런 재생을 위한 스케일러블한 http 스트리밍 전송 방법
CN101517553A (zh) 用于对内容进行包化以经由网络传输的方法和设备
KR20080106249A (ko) 가변적 fec 오버헤드 및 보호 구간을 이용하는 스트리밍및 버퍼링
WO2011145910A2 (en) Method and system for multiplexing data streaming in audio/video networks
JP6535718B2 (ja) ストリーミングサービスを提供する方法及び装置
JP2009518986A (ja) Mpegフォーマットのマルチメディアデータを伝送するための方法、通信システム、マルチメディア加入者端末機、およびゲートウエイ
WO2016129966A1 (ko) 저지연 생방송 컨텐츠 제공을 위한 프로그램을 기록한 기록매체 및 장치
WO2015194919A1 (ko) 방송 및 통신 시스템에서 패킷 송수신 방법 및 장치
WO2011108852A2 (en) Method and apparatus for adaptive streaming using scalable video coding scheme
WO2012039576A2 (ko) Http 스트리밍에서 표현 스위칭시 처리 방법
WO2014058285A1 (en) Method and apparatus for transceiving data packet for transmitting and receiving multimedia data
US20110088069A1 (en) Network device, information processing apparatus, stream switching method, information processing method, program, and content distribution system
EP1675318A1 (en) Media stream multicast distribution method and apparatus
WO2014171763A1 (en) Apparatus and method for transmitting and receiving forward error correction packet
WO2015147613A1 (ko) 방송 및/또는 통신 시스템에서 패킷 생성 및 복원 방법 및 장치
CN102215425B (zh) 实现实况视频点播的方法及设备
JP2002149316A (ja) データ送信装置、データ受信装置、およびデータ送信方法、並びにプログラム記憶媒体
WO2013048031A1 (ko) 모바일 아이피티브이 서비스 제공 방법 및 이를 실행하는 시스템
WO2017103963A1 (ja) Ipベースの映像伝送装置および放送システム
WO2009139544A2 (en) Digital broadcasting transmitter, digital broadcasting receiver, and methods thereof
WO2015130126A1 (ko) 클라우드 스트리밍 서비스 시스템, 이를 위한 장치 및 클라우드 스트리밍 서비스 방법
WO2014014305A1 (ko) 동일 포트에 멀티플렉싱 된 다중 패킷 스트림의 패킷오류 구분을 선택적으로 수행하는 방법 및 그 장치
WO2018016694A1 (ko) 복호 정보 고속 취득이 가능한 방송 송신기와 수신기 및 그 방법

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: 13738984

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2013738984

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 14372509

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2014553262

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE