KR20150084632A - 통신 시스템에서 패킷 송수신 방법 및 장치 - Google Patents

통신 시스템에서 패킷 송수신 방법 및 장치 Download PDF

Info

Publication number
KR20150084632A
KR20150084632A KR1020140083810A KR20140083810A KR20150084632A KR 20150084632 A KR20150084632 A KR 20150084632A KR 1020140083810 A KR1020140083810 A KR 1020140083810A KR 20140083810 A KR20140083810 A KR 20140083810A KR 20150084632 A KR20150084632 A KR 20150084632A
Authority
KR
South Korea
Prior art keywords
packet
fec
repair
source
payload
Prior art date
Application number
KR1020140083810A
Other languages
English (en)
Inventor
황성희
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to JP2016546519A priority Critical patent/JP2017509201A/ja
Priority to CN201580013883.2A priority patent/CN106134204B/zh
Priority to KR1020167022057A priority patent/KR102305410B1/ko
Priority to EP15735291.5A priority patent/EP3096523B1/en
Priority to US15/111,322 priority patent/US10153863B2/en
Priority to PCT/KR2015/000358 priority patent/WO2015105404A1/ko
Publication of KR20150084632A publication Critical patent/KR20150084632A/ko
Priority to US16/137,231 priority patent/US10498485B2/en
Priority to US16/660,291 priority patent/US10985870B2/en

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
    • 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
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear 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/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/2707Simple row-column interleaver, i.e. pure block interleaving
    • 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • 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/0045Arrangements at the receiver end
    • 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/0075Transmission of coding parameters to receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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/0057Block codes

Abstract

본 개시의 실시 예에 따라 FEC를 이용하는 통신 시스템에서 패킷을 송신하는 방법은, 전송하고자 하는 Asset들 및 Signaling message를 위한 MMT packet들을 생성하는 과정과, 상기 Asset들 중 FEC protection하고자 하는 Asset들에 해당하는 MMT packet, 즉 source packet들에 대해 AL-FEC message에 정의되어 있는 FEC configuration에 대해 FEC encoding을 수행하여 repair symbol block을 생성하는 과정과, repair symbol에 FEC repair payload ID를 추가하여 FEC repair packet을 생성하는 과정과, AL-FEC message를 포함하는 Signaling message와 함께 상기 MMT packet, FEC repair packet을 MMT packet stream으로 전송하는 과정을 포함한다.

Description

통신 시스템에서 패킷 송수신 방법 및 장치{METHOD AND APPARATUS FOR TRANSMITTING/RECEIVING PACKET IN A COMMUNICATION SYSTEM}
본 개시는 통신 시스템에서 패킷 송수신 방법 및 장치에 관한 것이다.
통신 시스템에서 다양한 컨텐츠(Contents)의 다양화와 High Definition(HD) 컨텐츠, Ultra High Definition(UHD) 컨텐츠들과 같은 고용량 컨텐츠들의 증가로 인해 데이터 혼잡(Data Congestion)은 점점 더 심화되고 있다. 이러한 상황으로 인하여 송신기(Sender, 예컨대, Host A)가 보낸 컨텐츠들이 수신기(Receiver, 예컨대, Host B)에게 정상적으로 전달되지 않고, 상기 컨텐츠의 일부가 경로(Route)상에서 손실되는 상황이 발생한다.
일반적으로 데이터(Data)는 패킷(Packet) 단위로 전송되므로 컨텐츠의 손실은 패킷 단위로 발생한다. 상기 패킷은 전송하고자 하는 데이터의 한 블록(예컨대, 페이로드(Payload))과 주소지 정보(예컨대, 발신지 주소, 목적지 주소), 관리정보(예컨대, 헤더(Header))로 구성된다. 따라서, 네트워크에서 패킷 손실이 발생할 경우에 수신기는 손실된 패킷을 수신할 수 없게 됨으로써, 상기 손실된 패킷 내의 데이터 및 관리정보를 알 수 없다. 이로 인하여 오디오(Audio)의 품질 저하, 비디오(Video)의 화질 열화나 화면 깨짐, 자막 누락, 파일의 손실 등과 같은 다양한 형태로 사용자의 불편을 초래하게 된다. 이와 같은 이유로 네트워크에서 발생된 데이터 손실을 복구하기 위한 방법으로 응용 계층 순방향 에러 정정(Application Layer Forward Error Correction : AL-FEC)이 필요하고, 이를 위한 FEC 패킷을 구성하여 송수신하는 방법이 필요하다.
MPEG Output Document W13982(ISO/IEC 23008-1 MPEP Media Transfort (MMT)) Final Draft International Specification Annex C는 MMT를 위한 AL-FEC Framework을 정의하고 있다. FEC 보호(protection)할 소스 패킷(source packet)들에 대해 FEC 부호(code)를 이용하여 복구 패킷(repair packet)을 생성하고 상기 source packet들은 FEC protection되어 source FEC 페이로드 식별자(payload ID)를 부가하여 생성된 FEC source packet들로 하여 상기 repair packet과 함께 전송되는데, 상기 FEC 관련 구성(configuration) 정보를 담고 있는 AL-FEC message는 상기 FEC source packet, repair packet 전송 전에 미리 전송되거나 또는 주기적으로 전송하여 수신단이 FEC 관련 configuration 정보를 알 수 있게 한다.
상기 source packet에 source FEC payload ID를 부가하여 전송하게 되므로 동일한 source packet에 또 다른 repair packet을 생성하기 위해서는 또 다른 FEC source payload ID를 부가해야 하므로 하나의 source packet에 서로 다른 FEC configuration을 가지는 여러 개의 repair packet을 생성하는데 제약이 따르거나 비효율적이게 된다.
또한 송신기는 FEC protection 없이 source packet만 전송하고 network의 중간 Node에서 FEC protection할 경우 상기 network Node가 상기 송신기에 의해 전송된 source packet에 source FEC payload ID를 추가하여야 하는 문제점이 있어 source packet에 source FEC payload ID를 부가하지 않고 FEC protection하는 방법이 요구된다.
따라서 본 개시는 FEC를 이용하는 통신 시스템에서 효율적으로 패킷을 송수신하는 방법 및 장치를 제공한다.
또한 본 개시는 FEC를 이용하는 통신 시스템에서 AL-FEC message와 repair packet내에 전송되는 repair FEC payload ID를 이용하여 source packet에 source FEC payload ID를 부가하지 않고 패킷을 송수신하는 방법 및 장치를 제공한다.
본 개시의 일 실시 예에 따른 통신 시스템에서 패킷을 송신하는 방법은, 상기 전송하고자 하는 Asset들 및 Signaling message (AL-FEC message 포함)를 위한 MMT packet들을 생성하는 과정; 상기 Asset들 중 FEC protection하고자 하는 Asset들에 해당하는 MMT packet, 즉 source packet들에 대해 AL-FEC message에 정의되어 있는 FEC coding structure, SSBG mode, FEC code등과 같은 FEC configuration에 대해 FEC encoding을 수행하여 repair symbol block을 생성하는 과정; 상기 repair symbol(s)에 본 개시에서 제안하는 FEC repair payload ID를 추가하여 FEC repair packet을 생성하는 과정; 상기 MMT packet, FEC repair packet을 상기 AL-FEC message를 포함하는 Signaling message와 함께 MMT packet stream으로 하여 전송하는 과정을 포함하는 전송부를 포함한다.
본 개시의 실시 예에 따르면, 사용자에게 보다 양질의 서비스를 제공할 수 있다.
또한 본 개시의 실시 예에 의하면, 수신 장치가 FEC 패킷 내의 Stream 구분 정보 또는 소스 패킷과는 다른 별도의 제어 정보로부터 각각의 데이터 Stream을 구분하고, 각각의 데이터 Stream을 FEC Protection하기 위해 생성된 복구 Stream을 파악하고, FEC 복호화를 원만히 수행할 수 있을 뿐만 아니라, 생성된 source packet flow에 포함되는 소정 개수 데이터 스트림에 대해 repair flow를 source packet에 영향을 주지 않고 생성할 수 있다.
도 1a 및 도 1b는 네트워크 토폴로지(Network Topology) 및 데이터 플로우(Data Flow)를 도시한 도면;
도 2는 본 개시의 실시 예에 따른 MMT 시스템 구성도;
도 3은 본 개시의 실시 예에 따른 MMT 패키지의 구조를 도시한 도면;
도 4는 본 개시의 실시 예에 따른 MMT 패키지에 포함된 설정 정보의 구성을 도시한 도면;
도 5a는 본 개시의 실시 일 예에 따른 Source Packet, Source Symbol, FEC Repair Packet 포맷 구성도;
도 5b와 도 5c는 본 개시의 실시 일 예에 따른 Source Payload, Source Symbol, FEC Repair Packet 포맷 구성도;
도 6a은 본 개시의 일 실시 예에 따른 Source Packet Flow를 구성하는 방법;
도 6b 및 도 6c는 본 개시의 일 실시 예에 따른 Source Packet Flow로부터 2개의 FEC Source Packet Flow를 구성하여 각각의 FEC Source Packet Flow에 대해 하나의 Repair Flow를 생성하는 방법 및 MMT Packet Header, FEC Repair Payload ID 예시;
도 7a은 본 개시의 실시 예에 따른 Packet Protection을 위한 송신 장치 블록 구성도;
도 7b은 본 개시의 실시 예에 따른 Payload Protection을 위한 송신 장치 블록 구성도;
도 8a은 본 개시의 실시 예에 따른 Packet Protection을 위한 수신 장치 블록 구성도;
도 8b는 본 개시의 실시 예에 따른 Payload Protection을 위한 수신 장치 블록 구성도;
도 9는 본 개시의 실시 예에 따른 소스 심벌 블록(Source Symbol block)을 구성하는 동작 흐름도;
도 10은 본 개시의 실시 예에 따른 Dependent Repair FEC payload ID를 설명하기 위한 도면;
도 11a은 본 개시의 실시 예에 따른 AL-FEC message와 repair packet의 Repair FEC payload ID와의 관계를 설명하기 위한 도면
도 11b는 본 개시의 실시 예에 따른 source flow에는 포함되지만 어떤 source packet block에는 포함되지 않는 packet_ID에 대한 repair packet의 repair FEC payload ID의 field 값을 설정하는 방법을 설명하기 위한 도면
도 13a은 본 개시의 다른 실시 예에 따른 Packet Protection을 위한 송신 장치 블록 구성도,
도 13b은 본 개시의 다른 실시 예에 따른 Payload Protection을 위한 송신 장치 블록 구성도,
도 14a은 본 개시의 다른 실시 예에 따른 Packet Protection을 위한 수신 장치 블록 구성도,
도 14b는 본 개시의 다른 실시 예에 따른 Payload Protection을 위한 수신 장치 블록 구성도,
도 15는 본 개시의 다른 실시 예에 따른 소스 심벌 블록(Source Symbol block)을 구성하는 동작 흐름도.
도 16은 본 개시의 또 다른 실시예에 따른 repair FEC payload ID를 설명하는 도면,
도 17a은 본 개시의 또 다른 실시 예에 따른 Independent repair FEC payload ID와 Dependent repair FEC payload ID와의 관계를 설명하기 위한 도면
도 17b는 본 개시의 다른 실시 예에 따른 source flow에는 포함되지만 어떤 source packet block에는 포함되지 않는 packet_ID에 대한 repair packet의 repair FEC payload ID의 field 값을 설정하는 방법을 설명하기 위한 도면.
도 18 및 도 18b는 본 개시의 다른 실시 예에 따른 Independent repair FEC payload ID와 Dependent repair FEC payload ID를 포함하는 FEC source or repair packet block을 나타내는 도면.
하기에서 본 개시를 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
먼저, 본 개시에서 사용될 용어를 정리하면 다음 <표 1> 내지 <표 3>과 같다.
용어 설명
access unit smallest media data entity to which timing information can be attributed
asset any multimedia data entity that is associated with a unique identifier and that is used for building a multimedia presentation
code rate ratio between the number of source symbols and the number of encoding symbols
encoding symbol unit of data generated by the encoding process
encoding symbol block set of encoding symbols
FEC code algorithm for encoding data such that the encoded data flow is resilient to data loss
FEC encoded flow logical set of flows that consists of an FEC source flow and one or more associated FEC repair flows
FEC payload ID identifier that identifies the contents of a MMT packet with respect to the MMT FEC scheme
FEC repair flow data flow carrying repair symbols to protect an FEC source flow
FEC repair packet MMT packet along with repair FEC payload identifier to deliver one or more repair symbols of a repair symbol block
FEC source flow flow of MMT packets protected by an MMT FEC scheme
FEC source packet MMT packet along with source FEC payload identifier
용어 설명
media fragment unit fragment of a media processing unit
media processing unit generic container for independently decodable timed or non-timed data that is media codec agnostic
MMT entity software and/or hardware implementation that is compliant to a profile of MMT
MMT FEC scheme forward error correction procedure that defines the additional protocol aspects required to use an FEC scheme in MMT
MMT packet formatted unit of the media data to be delivered using the MMT protocol.
MMT payload formatted unit of media data to carry MMT packages and/or signaling messages using either the MMT protocol or an Internet application layer transport protocols (e.g. RTP)
MMT protocol application layer transport protocol for delivering MMT payload over IP networks
MMT receiving entity MMT entity that receives and consumes media data
MMT sending entity MMT entity that sends media data to one or more MMT receiving entities
용어 설명
non-timed data media data that do not have inherent timeline for the decoding and/or presentating of its media content
package logical collection of media data, delivered using MMT
repair FEC payload ID FEC payload ID for repair packets
repair symbol encoding symbol that contains redundancy information for error correction
repair symbol block set of repair symbols which can be used to recover lost source symbols
source FEC payload ID FEC payload ID for source packets.
source packet block segmented set of FEC source flow that is to be protected as a single block
source symbol unit of data to be encoded by an FEC encoding process
source symbol block set of source symbols generated from a single source packet block
timed data any data that has inherent timeline information for the decoding and/or presentation of its media contents.
본 개시의 실시 예에서 소스 패킷 또는 FEC repair packet의 header는 소스 패킷 인지 FEC repair packet인지를 구분하는 정보를 가진다. Source Symbol Block내의 소스 심벌들의 순서를 알려주기 위한 별도의 Source Symbol ID(SS_ID)를 상기 소스 패킷에 추가하는 패킷 전송 방법과 본 개시의 패킷 전송 방법이 함께 사용될 경우 본 개시에 의한 소스 패킷 또는 FEC repair packet의 Header는 패킷이 Source Packet + SS_ID인지 , Source Packet 그 자체인지를 나타내는 정보, 기존 FEC Repair Packet과 본 개시의 실시 예에 의한 FEC Repair Packet을 구분하는 정보 중 적어도 하나를 포함한다.
하기 <표 4>는 MMT Packet Header의 FEC type의 실시 예를 나타낸 것으로서, value of FEC_type (or MMT packe type)을 나타낸 것이다.
Value Description
0 MMT packet without FEC Source Payload ID
1 MMT packet with FEC Source Payload ID
2 MMT packet for repair symbol(s) for FEC Payload Mode 0 (FEC repair packet)
3 MMT packet for repair symbol for FEC Payload Mode 1 (FEC repair packet)
NOTE: If FEC type is set to 0, it indicates that FEC is not applied to this MMT packet or that FEC is applied to this MMT packet without adding FEC Source Payload ID. In the latter case, the combination of packet_sequence_number and packet_id in this packet identify the location of this MMT packet within Source Packet Block which is identified by the FEC repair payload ID of its associated FEC repair packet (e.g. replacement of SS_ID).
또한 이러한 packet 구분 정보는 AL-FEC message를 통해 기존 방법으로 FEC 적용하여 패킷 전송하는지 또는 본 개시로 FEC 적용하여 패킷 전송하는지를 나타내는 Payload ID_Mode Flag를 두어 수신단에 전송한다.
Paylaod ID_Mode Flag = 1: 본 개시에 의한 FEC 적용한 패킷 전송 방법(즉, Source Packet에 별도의 SS_ID를 사용하는 것 없이 Source Packet내에 있는 정보가 SS_ID를 대체하고, 본 개시에 의한 FEC repair packet format(예컨대, FEC Repair Payload ID)를 따른다)
Payload ID_Mode Flag = 0: 기존 발명과 같이 FEC 적용한 패킷 전송 방법 (즉, Source Packet에 별도의 SS_ID를 추가하고, 기존 발명에 의한 FEC repair packet format(예컨대, repair FEC Payload ID)을 따른다.)
이하에서, 패리티와 repair는 동일한 의미로, 혼용하여 사용하기로 한다.
먼저 본 개시의 일 실시예의 기본 개념을 설명한다.
<일 실시예>
본 개시의 일 실시 예에 따른 통신 시스템에서 패킷을 송신하는 방법은, 상기 전송하고자 하는 Asset들 및 Signaling message (AL-FEC message 포함)를 위한 MMT packet들을 생성하는 과정; 상기 Asset들 중 FEC protection하고자 하는 Asset들에 해당하는 MMT packet, 즉 source packet들에 대해 AL-FEC message에 정의되어 있는 FEC coding structure, SSBG mode, FEC code등과 같은 FEC configuration에 대해 FEC encoding을 수행하여 repair symbol block을 생성하는 과정; 상기 repair symbol(s)에 본 개시에서 제안하는 FEC repair payload ID를 추가하여 FEC repair packet을 생성하는 과정; 상기 MMT packet, FEC repair packet을 상기 AL-FEC message를 포함하는 Signaling message와 함께 MMT packet stream으로 하여 전송하는 과정을 포함하는 전송부를 포함한다.
여기서, 상기 본 개시에서 제안하는 repair FEC payload ID는 예컨대, M, T, SSM, timestamp, SS_start_seq_nr[0] ~ [N-1], L[0] ~ [N-1], SSB_length [0] ~ [N-1], L2,RSB_length, L3,RS_ID들 중 적어도 하나는 포함한다.
상기 "M"은 본 repair packet의 repair FEC payload ID가 dependent repair FEC payload ID인지 independent repair FEC payload ID인지를 나타낸다(Dependent repair FEC payload ID 정의: repair FEC payload ID에 있는 정보와 AL-FEC message에 저장되어 정보의 조합으로 FEC decoding processing에 필요한 정보를 얻을 수 있음). 반대의 의미로 Independent repair FEC payload ID는 AL-FEC message에 저장되어 있는 정보 없이 상기 Independent repair FEC payload ID를 포함하고 있는 packet의 정보만으로 FEC decoding processing에 필요한 정보를 얻을 수 있음)를 나타낸다. 만일 Independent repair FEC Payload ID가 사용되지 않고 Dependent repair FEC Payload ID만 사용되는 경우 상기 M field는 Reserved Field로 남는다. 하기 정보들은 Dependent repair FEC Payload ID로 사용되는 경우에 있어서 각 Field의 의미를 나타낸다.
상기 "T"는 timestamp field가 있는지 없는지를 나타내는 flag 정보이다.
상기 "SSM"은 SS_start_seq_nr field의 사이즈를 나타내는 정보(예를 들어 SS_start_seq_nr field의 사이즈(in bits) = 8+8*SSM)이다.
상기 "timestamp"는 본 repair packet이 protection하는 source packet block의 첫 번째 source packet에 저장된 timestamp을 나타낸다.
상기 "SS_start_seq_nr[i]"는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet(or symbol) block의 source packet들 중 가장 낮은 packet sequence number에서 8+8*SSM bits 사이즈 만큼의 LSB값(예를 들어 packet_sequence_number가 32bits이고, 8+8*SSM이 24bits이면 packet_sequence_number의 첫 8bits를 제외한 나머지 24bits 값)(i=0,1,...,N-1)를 나타낸다.
상기 "L[i]"는 SSB_length[i] field의 크기를 나타내는 정보로 SSB_length field size = 6+8*L로 주어진다.
상기 "SSB_length[i]"는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet(or symbol) block의 source packet들의 개수(i=0,1,...,N-1), L2는 RSB_length field의 크기를 나타내는 정보로 예컨대, RSB_length field size = 6+8*L2로 주어진다.즉, 도 11a에 예시된 바와 같이 SS_start_seq_nr field와 SSB_length field들의 개수는 AL-FEC message에 기술된 해당 Source Flow에 포함되는 Packet_ID들의 개수와 순서가 일치한다. 만일 Source Flow에 포함되는 Packet_ID들의 수보다 source packet(or symbol) block안에 있는 packet_ID들의 수가 적은 경우 도 11b에 예시된 바와 같이 해당 source packet(or symbol) block을 위한 repair packet의 repair FEC payload ID는 AL-FEC message에 기술된 해당 Source flow에 포함되는 packet_ID들의 개수만큼 SS_start_seq_nr field와 SSB_length field가 존재하고 그 순서도 일치한다. 다만, source packet(symbol) block이 포함하고 있지 않은 packet_ID의 순서에 해당하는 SS_start_seq_nr field 또는 SSB_length field의 값을 특정값으로 설정하여 관계된 source packet (or symbol) block이 해당 packet_ID를 포함하고 있지 않음을 나타낸다. 예로 SSB_length field의 값을 0으로 설정하여 해당 packet_ID를 가지는 packet이 해당 source packet (or symbol) block내에 존재하지 않음을 나타낼 수 있다.
도 11a와 11b의 예시를 상세히 설명하면 AL-FEC message에 기술된 source flow가 3개의 Packet_ID, 0,1,2로 구성되는데 비해 source packet(or symbol) Block #1은 0,1,2로 구성, source packet(or symbol) block #2는 0,1 , source packet(or symbol) block #3은 1,2로 구성되는 경우, 상기 source flow를 위한 repair packet의 repair FEC payload ID는 상기 packet_ID 0,1,2에 대한 순서대로 SS_start_seq_nr와 SSB_length field를 각각 3개씩 포함하지만, 그 field의 값은 source packet(or symbol) block 1을 위한 repair packet의 repair FEC payload ID는 상기 packet_ID 0,1,2에 대한 SS_start_seq_nr와 SSB_length를 설정하고, source packet(or symbol) block2를 위한 repair packet의 repair FEC payload ID는 상기 packet_ID 0,1에 대한 SS_start_seq_nr와 SSB_length를 설정하고, packet_ID 2를 포함하고 있지 않으므로 해당 SSB_length Field에 0을 설정하여 상기 source packet(or symbol) block2가 상기 packet_ID 2를 포함하고 있지 않음을 나타낸다. 또한 source packet(or symbol) block 3을 위한 repair packet의 repair FEC payload ID는 상기 source packet(or symbol) block3가 packet_ID 0을 포함하고 있지 않으므로 해당 SSB_length Field에 0을 설정하고, 상기 packet_ID 1,2에 대한 SS_start_seq_nr와 SSB_length를 설정한다. 또한 source packet (or symbol) block의 포함하고 있지 않은 packet_ID에 해당하는 SSB_length field를 사이즈를 결정하기 위한 L 필드는 0으로 설정하여 SSB_length field의 크기를 최소화 한다.
상기 "RSB_length"는 본 repair packet에 포함하는 repair symbol block의 repair symbol들의 개수 정보이다.
상기 "L3"는 RS_ID field의 크기를 나타내는 정보로 예컨대, RS_ID field size = 6+8*L2로 주어진다.
상기 "RS_ID"는 본 repair packet을 포함하는 repair symbol block에서 본 repair packet내에 있는 repair symbol(s)의 위치를 나타낸다(예를 들어 몇 번째 repair symbol인지 나타낸다.)
본 개시의 일 실시 예에 따른 송신 장치는, 전송하고자 하는 Asset들 및 Signaling message (AL-FEC message 포함)를 위한 MMT packet들을 생성하고 상기 Asset들 중 FEC protection하고자 하는 Asset들에 해당하는 MMT packet, 즉 source packet들에 대해 AL-FEC message에 정의되어 있는 FEC coding structure, SSBG mode, FEC code등과 같은 FEC configuration에 대해 FEC encoding을 수행하여 repair symbol block을 생성하고 본 개시에서 제안하는 FEC repair payload ID를 추가하여 FEC repair packet을 생성하여 상기 AL-FEC message를 포함하는 Signaling message와 함께 MMT packet stream으로 하여 전송하는 전송부를 포함한다.
여기서, 상기 본 개시에서 제안하는 repair FEC payload ID는 M, T, SSM, timestamp, SS_start_seq_nr[0] ~ [N-1], L[0] ~ [N-1], SSB_length [0] ~ [N-1], L2,RSB_length, L3,RS_ID들 중 적어도 하나는 포함하는데, M은 본 repair packet의 repair FEC payload ID가 dependent repair FEC payload ID인지 independent repair FEC payload ID인지 (Dependent repair FEC payload ID정의: repair FEC payload ID에 있는 정보와 AL-FEC message에 저장되어 정보의 조합으로 FEC decoding processing에 필요한 정보를 얻을 수 있음. 반대의 의미로 Independent repair FEC payload ID는 AL-FEC message에 저장되어 있는 정보 없이 상기 Independent repair FEC payload ID를 포함하고 있는 packet의 정보만으로 FEC decoding processing에 필요한 정보를 얻을 수 있음)를 나타내다. 만일 Independent repair FEC Payload ID가 사용되지 않고 Dependent repair FEC Payload ID만 사용되는 경우 상기 M field는 Reserved Field로 남는다. 하기 정보들은 Dependent repair FEC Payload ID로 사용되는 경우에 있어서 각 Field의 의미를 나타낸다. T는 timestamp field가 있는지 없는지를 나타내는 flag 정보, SSM은 SS_start_seq_nr field의 사이즈를 나타내는 정보(예를 들어 SS_start_seq_nr field의 사이즈(in bits) = 8+8*SSM), timestamp는 본 repair packet이 protection하는 source packet block의 첫 번째 source packet에 저장된 timestamp, SS_start_seq_nr[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet block의 source packet들 중 가장 낮은 packet sequence number에서 8+8*SSM bits 사이즈 만큼의 LSB값(예를 들어 packet_sequence_number가 32bits이고, 8+8*SSM이 24bits이면 packet_sequence_number의 첫 8bits를 제외한 나머지 24bits 값)(i=0,1,...,N-1), L[i]는 SSB_length[i] field의 크기를 나타내는 정보로 SSB_length field size = 6+8*L로 주어지며 SSB_length[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet block의 source packet들의 개수(i=0,1,...,N-1), L2는 RSB_length field의 크기를 나타내는 정보로 RSB_length field size = 6+8*L2로 주어지며 RSB_length는 본 repair packet에 포함하는 repair symbol block의 repair symbol들의 개수 정보, L3는 RS_ID field의 크기를 나타내는 정보로 RS_ID field size = 6+8*L2로 주어지며 RS_ID는 본 repair packet을 포함하는 repair symbol block에서 본 repair packet내에 있는 repair symbol(s)의 위치를 나타낸다(예를 들어 몇 번째 repair symbol인지).
본 개시의 일 실시 예에 따른 또 다른 송신 방법은, 전송하고자 하는 Asset들 및 Signaling message를 위한 MMT packet들을 생성하여 전송함에 있어서, network의 중간 Node (e.g. Contribution Network)이 FEC protection하고자 하는 Asset(s)과 FEC configuration 정보를 결정하는 과정; 상기 FEC protection하고자 하는 Asset(s)과 FEC configuration 정보에 기초해서 상기 Asset(s)에 mapping되는 packet_id 리스트와 이에 mapping되는 repair flow ID를 결정하는 것을 포함하는 AL-FEC message를 생성하여 MMT packet화 하는 과정; 상기 Asset(s)에 해당하는 MMT packet들을 FEC protection하기 위한 repair symbol을 생성하여 본 개시에 의한 dependent repair FEC payload ID를 포함하는 repair packet을 생성하는 과정을 포함하는 전송 부를 포함한다. 또한 network 중간 Node는 생성된 AL-FEC message을 source packet block 전에 전송하는 것을 특징으로 하는 전송 부를 포함한다.
여기서, 상기 본 개시에서 제안하는 repair FEC payload ID는 M, T, SSM, timestamp, SS_start_seq_nr[0] ~ [N-1], L[0] ~ [N-1], SSB_length [0] ~ [N-1], L2,RSB_length, L3,RS_ID들 중 적어도 하나는 포함하는데, M은 본 repair packet의 repair FEC payload ID가 dependent repair FEC payload ID인지 independent repair FEC payload ID인지 (Dependent repair FEC payload ID정의: repair FEC payload ID에 있는 정보와 AL-FEC message에 저장되어 정보의 조합으로 FEC decoding processing에 필요한 정보를 얻을 수 있음. 반대의 의미로 Independent repair FEC payload ID는 AL-FEC message에 저장되어 있는 정보 없이 상기 Independent repair FEC payload ID를 포함하고 있는 packet의 정보만으로 FEC decoding processing에 필요한 정보를 얻을 수 있음)를 나타내다. 만일 Independent repair FEC Payload ID가 사용되지 않고 Dependent repair FEC Payload ID만 사용되는 경우 상기 M field는 Reserved Field로 남는다. 하기 정보들은 Dependent repair FEC Payload ID로 사용되는 경우에 있어서 각 Field의 의미를 나타낸다. T는 timestamp field가 있는지 없는지를 나타내는 flag 정보, SSM은 SS_start_seq_nr field의 사이즈를 나타내는 정보(예를 들어 SS_start_seq_nr field의 사이즈(in bits) = 8+8*SSM), timestamp는 본 repair packet이 protection하는 source packet block의 첫 번째 source packet에 저장된 timestamp, SS_start_seq_nr[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet block의 source packet들 중 가장 낮은 packet sequence number에서 8+8*SSM bits 사이즈 만큼의 LSB값(예를 들어 packet_sequence_number가 32bits이고, 8+8*SSM이 24bits이면 packet_sequence_number의 첫 8bits를 제외한 나머지 24bits 값)(i=0,1,...,N-1), L[i]는 SSB_length[i] field의 크기를 나타내는 정보로 SSB_length field size = 6+8*L로 주어지며 SSB_length[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet(or symbol) block의 source packet들의 개수(i=0,1,...,N-1), L2는 RSB_length field의 크기를 나타내는 정보로 RSB_length field size = 6+8*L2로 주어지며 RSB_length는 본 repair packet에 포함하는 repair symbol block의 repair symbol들의 개수 정보, L3는 RS_ID field의 크기를 나타내는 정보로 RS_ID field size = 6+8*L2로 주어지며 RS_ID는 본 repair packet을 포함하는 repair symbol block에서 본 repair packet내에 있는 repair symbol(s)의 위치를 나타낸다(예를 들어 몇 번째 repair symbol인지).
본 개시의 일 실시 예에 따른 또 다른 송신 장치는, 전송하고자 하는 Asset들 및 Signaling message를 위한 MMT packet들을 생성하여 전송함에 있어서, network의 중간 Node (e.g. Contribution Network)이 FEC protection하고자 하는 Asset(s)과 FEC configuration 정보를 결정하고 상기 FEC protection하고자 하는 Asset(s)과 FEC configuration 정보에 기초해서 상기 Asset(s)에 mapping되는 packet_id 리스트와 이에 mapping되는 repair flow ID를 결정하는 것을 포함하는 AL-FEC message를 생성하여 MMT packet화하고 상기 Asset(s)에 해당하는 MMT packet들을 FEC protection하기 위한 repair symbol을 생성하여 본 개시에 의한 dependent repair FEC payload ID를 포함하는 repair packet을 생성하는 제어부를 포함한다. 또한 network 중간 Node는 생성된 AL-FEC message을 전송하는 제어부를 포함한다.
여기서, 상기 본 개시에서 제안하는 repair FEC payload ID는 M, T, SSM, timestamp, SS_start_seq_nr[0] ~ [N-1], L[0] ~ [N-1], SSB_length [0] ~ [N-1], L2,RSB_length, L3,RS_ID들 중 적어도 하나는 포함하는데, M은 본 repair packet의 repair FEC payload ID가 dependent repair FEC payload ID인지 independent repair FEC payload ID인지 (Dependent repair FEC payload ID정의: repair FEC payload ID에 있는 정보와 AL-FEC message에 저장되어 정보의 조합으로 FEC decoding processing에 필요한 정보를 얻을 수 있음. 반대의 의미로 Independent repair FEC payload ID는 AL-FEC message에 저장되어 있는 정보 없이 상기 Independent repair FEC payload ID를 포함하고 있는 packet의 정보만으로 FEC decoding processing에 필요한 정보를 얻을 수 있음)를 나타내다. 만일 Independent repair FEC Payload ID가 사용되지 않고 Dependent repair FEC Payload ID만 사용되는 경우 상기 M field는 Reserved Field로 남는다. 하기 정보들은 Dependent repair FEC Payload ID로 사용되는 경우에 있어서 각 Field의 의미를 나타낸다. T는 timestamp field가 있는지 없는지를 나타내는 flag 정보, SSM은 SS_start_seq_nr field의 사이즈를 나타내는 정보(예를 들어 SS_start_seq_nr field의 사이즈(in bits) = 8+8*SSM), timestamp는 본 repair packet이 protection하는 source packet block의 첫 번째 source packet에 저장된 timestamp, SS_start_seq_nr[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet(or symbol) block의 source packet들 중 가장 낮은 packet sequence number에서 8+8*SSM bits 사이즈 만큼의 LSB값(예를 들어 packet_sequence_number가 32bits이고, 8+8*SSM이 24bits이면 packet_sequence_number의 첫 8bits를 제외한 나머지 24bits 값)(i=0,1,...,N-1), L[i]는 SSB_length[i] field의 크기를 나타내는 정보로 SSB_length field size = 6+8*L로 주어지며 SSB_length[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet(or symbol) block의 source packet들의 개수(i=0,1,...,N-1), L2는 RSB_length field의 크기를 나타내는 정보로 RSB_length field size = 6+8*L2로 주어지며 RSB_length는 본 repair packet에 포함하는 repair symbol block의 repair symbol들의 개수 정보, L3는 RS_ID field의 크기를 나타내는 정보로 RS_ID field size = 6+8*L2로 주어지며 RS_ID는 본 repair packet을 포함하는 repair symbol block에서 본 repair packet내에 있는 repair symbol(s)의 위치를 나타낸다(예를 들어 몇 번째 repair symbol인지).
본 개시의 일 실시 예에 따른 수신 방법은, 통신 시스템에서 패킷을 수신하는 방법에 있어서, 송신기로부터 AL-FEC message를 포함하는 패킷을 수신하여 AL-FEC message를 획득하는 과정; 상기 AL-FEC message로부터 FEC 소스 패킷 플로우에 포함되는 데이터 스트림들을 위한 ID정보인 packet ID 리스트와 이를 protection하는 repair flow ID에 대한 mapping 정보를 획득하는 과정; 송신기로부터 수신된 패킷으로부터 소스 패킷인지 FEC 복구 패킷인지를 구분하는 과정; 상기 FEC 복구 패킷으로부터 복구 심벌을 획득하는 과정을 포함하고, 상기 FEC 복구 패킷의 packet_ID(즉, repair flow ID)가 FEC protection하고 있는 source packet들의 packet_ID 리스트들을 상기 획득된 AL-FEC message 정보로부터 인지하는 과정, 상기 인지된 source packet들의 packet_ID 리스트와 상기 FEC 복구 패킷의 repair FEC payload ID의 SS_start_seq_nr 리스트로부터 상기 FEC 복구 패킷이 protection하고 있는 소스 패킷 블록에 포함되는 소스 패킷들을 구분하는 과정; 상기 구분된 소스 패킷들과 상기 복구 심벌들로부터 인코딩 심벌 블록을 구성하는 과정; 상기 구성된 인코딩 심벌 블록에 FEC 복호를 수행하여 소스 심벌을 복구하는 과정; 상기 복구된 소스 심벌로부터 전송 도중 손실된 소스 패킷 블록의 소스 패킷을 획득하는 과정을 포함한다.
본 개시의 일 실시 예에 따른 수신 장치는, 통신 시스템에서 패킷을 수신하는 장치에 있어서, 송신기로부터 AL-FEC message를 포함하는 패킷을 수신하여 AL-FEC message를 획득하고 상기 AL-FEC message로부터 FEC 소스 패킷 플로우에 포함되는 데이터 스트림들을 위한 ID정보인 packet ID 리스트와 이를 protection하는 repair flow ID에 대한 mapping 정보를 획득하고 송신기로부터 수신된 패킷으로부터 소스 패킷인지 FEC 복구 패킷인지를 구분하고 상기 FEC 복구 패킷으로부터 복구 심벌을 획득하고, 상기 FEC 복구 패킷의 packet_ID(즉, repair flow ID)가 FEC protection하고 있는 source packet들의 packet_ID 리스트들을 상기 획득된 AL-FEC message 정보로부터 인지하여 source packet들의 packet_ID 리스트와 상기 FEC 복구 패킷의 repair FEC payload ID의 SS_start_seq_nr 리스트로부터 상기 FEC 복구 패킷이 protection하고 있는 소스 패킷 블록에 포함되는 소스 패킷들을 구분하고, 상기 구분된 소스 패킷들과 상기 복구 심벌들로부터 인코딩 심벌 블록을 구성하고 상기 구성된 인코딩 심벌 블록에 FEC 복호를 수행하여 소스 심벌을 복구하여 상기 복구된 소스 심벌로부터 전송 도중 손실된 소스 패킷 블록의 소스 패킷을 획득하는 제어부를 포함한다.
이하에서는 도면을 참조하여 본 개시의 일 실시예를 상세히 설명한다.
도 1a 및 도 1b는 네트워크 토폴로지(Network Topology) 및 데이터 흐름(Data Flow)를 도시한 도면이다.
도 1a를 참조하면, 네트워크 토폴로지는 송신기로서 동작하는 호스트 A(102)와 수신기로서 동작하는 호스트 B(108)를 포함하며, 호스트 A(102) 및 호스트 B(108)는 하나 이상의 라우터(104,106)를 통해 연결된다. 호스트 A(102) 및 호스트 B(108)은 이더넷(118,122)을 통해 라우터들(104,106)과 접속되며, 라우터들(104,106)은 광섬유(Fiber), 위성 통신(satellite communication) 혹은 가능한 다른 수단(120)을 통해 서로 간에 연결될 수 있다. 호스트 A(102)와 호스트 B(108) 간의 데이터 흐름은 링크 계층(116), 인터넷 계층(114), 전송 계층(112) 및 응용 계층(110)을 통해 이루어진다.
도 1b를 참조하면, 응용 계층(130)은 AL-FEC를 통해, 전송하고자 하는 데이터(130)를 생성한다. 데이터(130)는 오디오/비디오(Audio/Video: AV) 코덱(codec) 단에서 압축된 데이터를 RTP(Real Time Protocol)를 사용하여 분할한 RTP 패킷 데이터 혹은, MMT에 따른 MMT 패킷 데이터가 될 수 있다. 데이터(130)는 전송 계층(112)에 의해 일 예로 UDP(User Datagram Protocol) 헤더가 삽입된 UDP 패킷(132)으로 변환된다. 인터넷 계층(114)는 UDP 패킷(132)에 IP 헤더를 첨부하여 IP 패킷(134)를 생성하며, 링크 계층(116)은 IP 패킷(134)에 프레임 헤더(136) 및 필요한 경우 프레임 푸터(frame footer)를 첨부하여 전송하고자 하는 프레임(116)을 구성한다.
도 2는 본 개시의 실시 예에 따른 MMT(MPEG Media Transport) 시스템 구성도이다.
도 2의 왼쪽은 MMT 시스템 구성을 나타낸 도면이고, 오른쪽은 전송 기능(Delivery Function)의 세부 구조를 나타내는 도면이다.
미디어 코딩 계층(Media Coding Layer)(205)은 오디오 또는/및 비디오 데이터를 압축하여 캡슐화 기능 계층(Encapsulation Function Layer)(210, E. Layer)으로 전송한다.
상기 캡슐화 기능 계층(210)은 압축된 오디오/비디오 데이터를 파일 포맷과 유사한 형태로 패키지화하여 전송 기능 계층(Delivery Function Layer)(220)으로 전달한다.
전송 기능 계층(220, 또는 "D. Layer")은 상기 캡슐화 기능 계층(210)의 출력을 MMT 페이로드 포맷화한 후, MMT 전송 패킷 헤더를 부가하여 MMT 전송 패킷 형태로 전송 프로토콜 계층(230)에 전달한다. 또는 전송 기능 계층(220)은 상기 캡슐화 기능 계층(210)의 출력을 기존 RTP 프로토콜을 사용하여 RTP 패킷 형태로 전송 프로토콜 계층(230)에 전달한다. 그 이후 전송 프로토콜 계층(230)은 UDP(User Datagram Protocol) 및 TCP(Transmission Control Protocol) 중 어느 하나의 전송 프로토콜로 변환한 후 IP 계층(240)으로 전송한다. 최종적으로 IP 계층(240)은 상기 전송 프로토콜 계층(230)의 출력을 IP 패킷으로 변환하고 IP 프로토콜을 사용하여 전송한다.
본 개시는 MMTP 패킷을 보호하거나, MMT Payload를 보호하거나, 도는 Payload data를 보호하는 것이 가능하다.
제어 기능 계층(Control Function Layer)(200, C. Layer)은 프리젠테이션 세션(Presentation Session)과 전송 세션(Delivery Session)을 관리한다.
도 3은 MMT 패키지의 구조를 도시한 도면이다.
도 3에 도시한 바와 같이 MMT 패키지(310)는 네트워크의 전송 기능 계층(D. Layer)(330-1, 330-2)을 통해 클라이언트(350)와 송수신되며, MMT 에셋(Asset)들(303-1 내지 303-3)과, 구성 정보(composition information)(301), 전송 특성(Transport characteristic)(305-1, 305-2)을 포함한다.
또한 MMT 패키지(310)는 설정 정보를 활용하기 위한 기능성(functionality)과 기능(operation)들을 가진다. 설정 정보는 MMT 에셋(Asset)들(303-1 내지 303-3)의 리스트와, 구성 정보(301), 그리고 전송 특성(305-1, 305-2)으로 구성된다.
설명 정보(description information)는 MMT 패키지(310)와 MMT 에셋들(303-1 내지 303-3)을 설명한다. 구성 정보(301)는 MMT 에셋들(303-1 내지 303-3)의 소비를 돕는다. 전송 특성(305-1, 305-2)은 MMT 에셋들(303-1 내지 303-3)의 전달을 위한 힌트를 제공한다.
상기의 MMT 패키지(310)는 각 MMT 에셋별 전송 특성을 기술한다. 전송 특성(305-1, 305-2)은 오류 복원력(Error Resiliency) 정보를 포함하며, 하나의 MMT 에셋을 위한 단순 전송 특성(Simple Transport Characteristic) 정보는 손실되거나 손실되지 않을 수 있다. 또한 전송 특성들(305-1, 305-2)은 각 MMT 에셋의 QoS(Quality of Service; 손실(Loss) 허용 정도, 지연(Delay) 허용 정도)를 포함할 수 있다.
도 4는 본 개시의 실시 예에 따라 MMT 패키지에 포함된 설정 정보(configuration information)의 구성과 그 하위 정보들을 도시한 것이다.
Configuration information은 도 4와 같이, 패키지의 식별 정보(312), 패키지의 구성요소인 어셋 리스트 정보(314), Composition information(316), Transport Characteristics(318), 컨텐츠와 함께 부가적인 정보를 포함하고, 이러한 구성요소들이 패키지 안에 어떻게 포함되어 있는지와 어디에 포함되어 있는지와 같은 구조적인 정보를 제공한다.
도 5a는 본 개시의 일 실시 예에 따른 Source Packet, Source Symbol, FEC Repair Packet을 나타낸 도면이다.
Source Packet (= MMTP Packet)은 MMT Packet Header, MMT Payload Header, Payload(Data)로 구성된다. Source Symbol은 Source Packet에 Possibly Padding을 추가하여 생성되는데, AL-FEC Message로 주어지거나 또는 미리 정해진 Size of Repair Symbol와의 차이만큼 Padding data(all 00h)가 추가된다. FEC Repair Packet은 MMT Packet Header, repair FEC Payload ID, FEC 부호화에 의해 Source Symbol Block으로부터 생성되는 Repair Symbol로 구성된다.
도 5b는 본 개시의 일 실시 예에 따른 Source Payload, Source Symbol, FEC Repair Packet을 나타낸 도면이다.
Source Payload (= MMT Payload)는 MMT Payload Header와 Payload(Data)로 구성된다. Source Symbol은 Source Payload에 Possibly Padding을 추가하여 생성되는데, AL-FEC Message로 주어지거나 또는 미리 정해진 Size of Repair Symbol와의 차이만큼 Padding data(all 00h) 가 추가된다. FEC Repair Packet은 MMT Packet Header, FEC Repair Payload ID, FEC 부호화에 의해 Source Symbol Block으로부터 생성되는 Repair Symbol로 구성된다.
도 5c은 본 개시의 일 실시 예에 따른 Source Payload, Source Symbol, FEC Repair Packet을 나타낸 도면이다.
Source Payload (= MMT Payload)는 MMT Payload Header와 Payload(Data)로 구성된다. Source Symbol은 Source Payload에 Possibly Padding을 추가하여 생성되는데, AL-FEC Message로 주어지거나 또는 미리 정해진 Size of Repair Symbol와의 차이만큼 Padding data(all 00h) 가 추가된다. FEC Repair Packet은 MMT Packet Header, FEC Repair Payload ID, FEC 부호화에 의해 Source Symbol Block으로부터 생성되는 Repair Symbol로 구성된다.상기 Repair FEC Payload ID는 도 10과 같이 주어진다.
도 10은 본 개시의 일 실시 예에 따른 Dependent Repair FEC payload ID를 설명하기 위한 도면으로서, 도 10에서 도시된 각 정보의 내용은 아래 <표 5>와 같다.
정보 내용
M (1 bit) indicates whether this repair packet carries dependent repair FEC payload ID or independent repair FEC payload ID. It shall be set the same value on all of repair packets of a repair flow. When set to 1, it shall indicate that this packet carries a dependent repair FEC payload ID and when set to 0, it shall indicate that this packet carries an independent repair FEC payload ID.
If independent repair FEC payload ID is not used, then this field is reserved for future use.
T (1 bit) indicates whether timestamp field present or not. When set to 0, timestamp field shall not be present and when set to 1, timestamp field shall present.
SSM (2 bits) indicates the size of the SS_start_seq_nr[i] field. The actual size of the SS_start_seq_nr[i] field is allocated to "8+8*SSM" bits.
RES (4 bits) reserved for future use.
timestamp (32 bits) indicates the timestamp of the first packet of source packet block which is protected by this repair packet.
SS_start_seq_nr[i] (8+8*SSM bits) indicates LSB part (8+8*SSM bits) of the lowest packet_sequence_number of a packet with packet_id[i] in the source symbol block which is protected by this repair packet.
L[i] (2 bits) provides the number of additional words in the SSB_length[i] field.
RSB_length
(6+8*L2 bits)
the number of repair symbols generated in its associated repair symbol block.
L2 (2 bits) provides the number of additional words in the RS_ID field.
RS_ID
(6+8*L2 bits)
an integer number for identifying the first repair symbol in the FEC repair packet. It starts with 0 and is incremented by 1 with each repair symbol in its associated repair symbol block.
도 6a는 본 개시의 일 실시 예에 따른 Source Packet Flow를 생성하는 방법을 설명하기 위한 도면이다.
도 6a를 참조하면, 3개의 Asset A, B, C (e.g. Audio data, Video data, txt, File과 같은 Non-timed Data or Timed Data) 가 있을 때 각각의 Asset은 소정 크기의 데이터로 분리된 후 MMT Payload Header, MMT Packet Header를 부가하여 MMT Packet Flow (Source Packet Flow)를 구성하게 된다. Asset A,B,C 각각은 5개의 데이터 Payload로 분리되어 각각에 Packet_ID와 Packet Sequence Number를 포함하는 Header를 추가하였다. Asset A의 packet들을 Identify하는 Packet_ID = 0, Asset B는 Packet_ID=1 그리고 Asset C는 Packet_ID=2가 할당되고 각각의 Packet_ID에 기반한 Packet Sequence Number가 1 씩 증가하도록 할당되어 있다. 상기 Header의 일 예로 MMT Packet Header를 들 수 있다.
도 6b 및 도 6c는 본 개시의 일 실시 예에 따른 FEC Source Packet Flow와 그에 따른 Repair flow를 생성하는 방법을 설명하기 위한 도면이다. 도 6b 및 도 6c에서 참조 부호 H1 내지 H4는 서로 대응되는 부분을 나타낸 것이다.
도 6b 및 도 6c를 참조하면, 도 6a에서 생성된 Source Packet Flow로부터 FEC Source Packet Flow 1은 Asset A와 B로부터 생성된 Source Packets들로 구성하여 FEC Source Packet Block 1 (or Source Symbol Block)을 생성하고, FEC Source Packet Flow 2는 Asset B와 Asset C로부터 생성된 Source Packets들로 구성하여 도면과 같이 FEC Source Packet Block 2 (or Source Symbol Block)를 생성하여 각각 FEC 부호화를 진행한다. 이로부터 FEC Source Packet Block은 SSBG_MODE들의 한 방법에 의해 Source Symbol Block으로 전환되고 여기에 FEC Encoding을 수행하여 Repair Symbol을 전송하는 FEC Repair packet들을 생성하였다. 도시하지는 않았지만, Source Packet Block으로부터 Source Symbol Block을 생성할 때 Source Packet Block내에서의 Source Packet들의 위치는 전송 순서에 의해 결정된다고 가정하면 각각의 Source Packet에 해당하는 Source Symbol의 위치는 Source Symbol Block내에서 서로 다를 수 있다. 이는 Repair Packet의 repair FEC Payload ID에 명기된 Packet_ID들의 순서에 입각해서 Source Symbol들을 Source Symbol Block에 배치하여야 한다. 즉, Source Packet Block이 Asset A와 B로 구성되는 경우 Source Packet Block내에서는 Asset A와 Asset B를 위한 Source Packet들이 서로 섞여 있어도 Source Symbol Block내에서는 Asset A를 위한 Source Symbol들을 먼저 배치하고, 다음 Asset B를 위한 Source Symbol들을 배치하거나 또는 그 반대로 한 후, FEC Repair Packet의 FEC repair payload ID에 상기 Source Packet Block(or Source Symbol Block)에 포함되는 Packet ID의 개수 및 그 배치 순서에 맞는 Asset들에 mapping되는 Packet_ID들을 리스트 한다. 아니면 도 6b 및 도 6c와 같은 Source Packet Flow에서 구성하고자 하는 FEC Source Packet Flow를 구성하고 각각의 Source Packet Block (or Source Symbol Block)을 구성할 때 Asset A를 위한 Packet들을 Source Packet Block (or Source Symbol Block)내 먼저 배치하고 다음 Asset B를 위한 Packet들을 배치하고 그에 따른 Packet_ID의 개수 및 순서에 입각한 Packet_ID들을 리스트한다. 바람직한 것은 Source Packet Flow는 사실상 전송 순서에 입각한 source packet들의 stream임으로 각각의 Source Packet Block을 위한 source packet들 중에서는 제일 먼저 전송되는 source packet의 Packet_ID에 해당하는 source packet들을 먼저 source packet block (or Source Symbol Block)내 배치하고 그 다음 Packet_ID에 해당하는 source packet들을 배치하는 것이 바람직하다.
도 7a와 도 7b는 Packet Protection과 Payload Protection입장에서의 송신기 동작을 설명하기 위한 도면이다.
도 7a과 도 7b를 참조하면, 우선 Data Stream은 Segmentation, Payloadization, Packetization을 거쳐 송신기에 의해 packet stream으로 해서 전송된다. MMT를 예를 들면 Data Stream = Asset에 배치될 수 있다. Segmentation은 data를 소정 크기로 나눈다. Payloadization은 상기 data에 Header를 부가하는데 수신단에서 수신된 packet으로부터 상기 data를 재 구성할 수 있는 정보가 Header에 저장된다 예로 MMT Payload가 여기에 해당된다. Packetization은 MMT Payload에 MMT Packet Header를 추가한다. 상기 MMT Packet Header는 Packet_ID와 Packet Sequence Number를 가지고 있어 FEC에 활용된다.
Packet Protection이 이루어지는 경우 FEC protection하고자 하는 MMT packet들은 FEC Controller의 제어를 받아 Source Symbol Block Generator로 입력된다. Source Symbol Block Generator는 MMT Packet (Source Packet)들로부터 Source Symbol Block을 생성(도 10의 예시 참조)하고 FEC encoder는 Source Symbol Block을 입력받아 Repair Symbols을 생성하고, 각각의 Repair Symbol은 MMT Packet Header와 FEC Repair Payload ID를 추가하여 FEC Repair Packet으로 전송된다. repair FEC Payload ID는 본 개시에 따라 Table 1과 같이 구성된다.
Payload protection의 경우 MMT Payload나 Payload data가 Source Symbol Block으로 입력되는 것을 제외하고는 동일하다.
AL-FEC Message는 Payloadization을 거쳐 즉, MMT Payload Header를 추가한 후 MMT Packet Header를 추가하여 데이터와는 별도의 패킷으로 전송된다.
도 8a와 도 8b는 Packet Protection과 Payload Protection입장에서의 수신기 동작을 설명하기 위한 도면이다.
도 8a와 도 8b를 참조하면, 우선 패킷을 수신하면 소스 패킷인지 FEC 복구 패킷인지를 구분한다. 만일 여러 종류의 소스 패킷 (예를 들어 별도의 SS_ID를 가지는 MMT Packet (기존 발명)과 그렇지 않은 MMT Packet(본 개시)이 공존하는 경우)과 여러 종류의 FEC 복구 패킷(예를 들어 기존 발명에 의한 FEC 복구 패킷과 본 개시에 의한 FEC 복구 패킷이 공존)이 공존하는 경우 이를 구분하는 정보가 MMT Packet Header에 있고 수신기는 이를 기반으로 각각의 packet을 구분한다. De-packetization(e.g MMT De-packetization or Parse), De-payloadization (MMT Payload Depayloadization or Parse), De-segmentation을 거쳐 Data Stream으로 다시 복원된다. Packet Protection이 적용된 경우의 수신기 동작은 AL-FEC Message로부터 FEC Decoding에 필요한 FEC Configuration에 관한 기본적인 정보를 파악한다. 수신된 패킷이 복구 패킷이 경우 복구 패킷의 복구 심벌과 MMT Packet Header에 있는 Packet_ID와 FEC Repair Payload ID에 리스트되어 있는 # of Packet_IDs, List of Packet_IDs, List of SS_Start_Seq_Nrs, List of SSB_Length[]들과 다른 정보로 부터로부터 해당 복구 패킷이 Protection하고 있는 Source Packet들을 인지하고 수신되는 해당 Source Packet (MMT Packet)을 Encoding Symbol Generator로 입력한다. Encoding Symbol Generator는 Source Packet으로부터 주어진 SSBG mode에 따라 Source Symbol로 전환하고 복구 심벌과 함께 Encoding Symbol Block을 구성한다. FEC Decoder는 복구 심벌을 이용하여 손실된 source symbol을 복원하여 source packet을 획득하여 De-packetiztion 블록으로 전송한다.
Payload Protection이 적용된 경우 Packet이 아닌 Payload를 복원하는 것을 제외하고는 MMT Packet Header의 정보 활용이나 FEC Repair Packet의 FEC Repair Payload ID 정보 활용 측면에서는 Packet Protection과 동일하다.
도 9는 본 개시의 일 실시 예에 따르는 Source Packet Block (or Source Symbol Block) 생성 예를 나타낸 도면이다.
도 9를 참조하면, 3가지 packe_ID로 구성되는 packet들의 flow로부터 packet_ID = 0 or 1을 가지는 2개의 packet_ID들에 해당하는 packet들을 선별하여 FEC Source Packet Flow(=1 Source Packet Block )를 구성하고 PacketID=0를 가지는 packet들을 우선 배치하고 다음 Packet_ID=1을 가지는 패킷들을 배치하여 Source Symbol Block을 생성하였다. Source Packet에 Source Symbol로 전환할 때 Source Packet들의 길이가 서로 다르면 padding이 필요(SSBG_MODE1)하고 모두 동일한 길이이면 padding이 필요 없다(SSBG_MODE0).
이하에서는 본 개시의 다른 실시예의 기본 개념을 설명한다.
<다른 실시예>
본 개시의 다른 실시 예에 따른 송신 방법은, 상기 MPEG output document w13982와 같이 전송하고자 하는 Asset들 및 Signaling message를 위한 MMT packet 들을 생성하는 과정; 상기 Asset들 중 FEC protection하고자 하는 Asset들에 해당하는 MMT packet, 즉 source packet들에 적용할 FEC code, Window Protection Time, 생성할 repair symbol의 크기, FEC protection하는 packet_ID들의 개수등과 같은 FEC configuration을 정보들을 정하는 과정; FEC encoding을 수행하여 w13982 기술된 바와 같이 repair symbol block을 생성하는 과정; 상기 생성된 repair symbol block의 repair symbol(s)에 본 개시에서 제안하는 repair FEC payload ID를 추가하여 FEC repair packet을 생성하여 전송하는 과정을 포함하는 전송부를 포함한다.
여기서, 상기 본 개시에 의한 repair FEC payload ID는 M, T, SSM, PM, C, W, timestamp, # of packet_ID, packet_ID List, CP, PWT, RS_length, SS_start_seq_nr[0] ~ [N-1], L[0] ~ [N-1], SSB_length [0] ~ [N-1], L2,RSB_length, L3,RS_ID들 중 적어도 하나는 포함하는데, M은 본 repair packet의 repair FEC payload ID가 dependent repair FEC payload ID인지 independent repair FEC payload ID인지 (Dependent repair FEC payload ID정의: repair FEC payload ID에 있는 정보와 다른 정보(e.g. AL-FEC message or Independent repair FEC payload ID)에 저장되어 있는 정보의 조합으로 FEC decoding processing에 필요한 정보를 얻을 수 있음. 반대의 의미로 Independent repair FEC payload ID는 AL-FEC message에 저장되어 있는 정보 없이 상기 Independent repair FEC payload ID를 포함하고 있는 packet의 정보만으로 FEC decoding processing에 필요한 정보를 얻을 수 있음)를 나타내다. T는 timestamp field가 있는지 없는지를 나타내는 flag 정보, SSM은 SS_start_seq_nr field의 사이즈를 나타내는 정보(예를 들어 SS_start_seq_nr field의 사이즈(in bits) = 8+8*SSM), PM은 MMT flow 전체를 protection하는지, 하나의 packet_ID를 protection하는지, 두 개의 packet_ID를 protection 하는지, 아니면 2개 초과의 packet_ID를 protection하는지를 나타내고, C는 CP(Code Point) field가 있는지 없는지, W는 PWT(Protection Window Time) field가 있는지 없는지, timestamp는 본 repair packet이 protection하는 source packet block의 첫 번째 source packet에 저장된 timestamp, # of packet_ID field는 PM이 2개 초과의 packet_ID를 protection하고 있다고 나타낼 때 존재하는 field로 packet_ID들의 개수 정보를 나타낸다. Packet_ID list field는 packet_ID들의 리스트하는데, PM이 MMT flow 전체를 protection한다고 나타낼때는 존재하지 않는다. CP(Code Point) field는 C flag가 on되어 있는 경우 존재하는데 본 repair packet을 생성하기 위해 사용된 FEC code의 code point를 나타내고, PWT는 W flag가 on되어 있는 경우 존재하는데 본 repair packet을 포함하는 repair flow에서 FEC source packet block과 해당 FEC repair packet block으로 구성되는 FEC packet block Window time을 나타낸다(W13982의 Protection Window Time과 동일). RS_length는 repair symbol의 크기 정보를 나타낸다. SS_start_seq_nr[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet block의 source packet들 중 가장 낮은 packet sequence number에서 8+8*SSM bits 사이즈 만큼의 LSB값(예를 들어 packet_sequence_number가 32bits이고, 8+8*SSM이 24bits이면 packet_sequence_number의 첫 8bits를 제외한 나머지 24bits 값)(i=0,1,…,N-1), L[i]는 SSB_length[i] field의 크기를 나타내는 정보로 SSB_length field size = 6+8*L로 주어지며 SSB_length[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet block의 source packet들의 개수(i=0,1,…,N-1), L2는 RSB_length field의 크기를 나타내는 정보로 RSB_length field size = 6+8*L2로 주어지며 RSB_length는 본 repair packet에 포함하는 repair symbol block의 repair symbol들의 개수 정보, L3는 RS_ID field의 크기를 나타내는 정보로 RS_ID field size = 6+8*L2로 주어지며 RS_ID는 본 repair packet을 포함하는 repair symbol block에서 본 repair packet내에 있는 repair symbol(s)의 위치를 나타낸다(예를 들어 몇 번째 repair symbol인지).
본 개시의 일 실시 예에 따른 송신 장치는, 상기 MPEG output document w13982와 같이 전송하고자 하는 Asset들 및 Signaling message를 위한 MMT packet 들을 생성하고 상기 Asset들 중 FEC protection하고자 하는 Asset들에 해당하는 MMT packet, 즉 source packet들에 적용할 FEC code, Window Protection Time, 생성할 repair symbol의 크기, FEC protection하는 packet_ID들의 개수등과 같은 FEC configuration을 정보들을 정하고 FEC encoding을 수행하여 w13982 기술된 바와 같이 repair symbol block을 생성하여 상기 생성된 repair symbol block의 repair symbol(s)에 본 개시에서 제안하는 FEC repair payload ID를 추가하여 FEC repair packet을 생성하여 전송하는 제어부를 포함한다.
여기서, 상기 본 개시에 의한 repair FEC payload ID는 M, T, SSM, PM, C, W, timestamp, # of packet_ID, packet_ID List, CP, PWT, RS_length, SS_start_seq_nr[0] ~ [N-1], L[0] ~ [N-1], SSB_length [0] ~ [N-1], L2,RSB_length, L3,RS_ID들 중 적어도 하나는 포함하는데, M은 본 repair packet의 repair FEC payload ID가 dependent repair FEC payload ID인지 independent repair FEC payload ID인지 (Dependent repair FEC payload ID정의: repair FEC payload ID에 있는 정보와 다른 정보(e.g. AL-FEC message or Independent repair FEC payload ID)에 저장되어 있는 정보의 조합으로 FEC decoding processing에 필요한 정보를 얻을 수 있음. 반대의 의미로 Independent repair FEC payload ID는 AL-FEC message에 저장되어 있는 정보 없이 상기 Independent repair FEC payload ID를 포함하고 있는 packet의 정보만으로 FEC decoding processing에 필요한 정보를 얻을 수 있음)를 나타내다. T는 timestamp field가 있는지 없는지를 나타내는 flag 정보, SSM은 SS_start_seq_nr field의 사이즈를 나타내는 정보(예를 들어 SS_start_seq_nr field의 사이즈(in bits) = 8+8*SSM), PM은 MMT flow 전체를 protection하는지, 하나의 packet_ID를 protection하는지, 두 개의 packet_ID를 protection 하는지, 아니면 2개 초과의 packet_ID를 protection하는지를 나타내고, C는 CP(Code Point) field가 있는지 없는지, W는 PWT(Protection Window Time) field가 있는지 없는지, timestamp는 본 repair packet이 protection하는 source packet block의 첫 번째 source packet에 저장된 timestamp, # of packet_ID field는 PM이 2개 초과의 packet_ID를 protection하고 있다고 나타낼 때 존재하는 field로 packet_ID들의 개수 정보를 나타낸다. Packet_ID list field는 packet_ID들의 리스트하는데, PM이 MMT flow 전체를 protection한다고 나타낼 때는 존재하지 않는다. CP(Code Point) field는 C flag가 on되어 있는 경우 존재하는데 본 repair packet을 생성하기 위해 사용된 FEC code의 code point를 나타내고, PWT는 W flag가 on되어 있는 경우 존재하는데 본 repair packet을 포함하는 repair flow에서 FEC source packet block과 해당 FEC repair packet block으로 구성되는 FEC packet block Window time을 나타낸다(W13982의 Protection Window Time과 동일). RS_length는 repair symbol의 크기 정보를 나타낸다. SS_start_seq_nr[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet block의 source packet들 중 가장 낮은 packet sequence number에서 8+8*SSM bits 사이즈 만큼의 LSB값(예를 들어 packet_sequence_number가 32bits이고, 8+8*SSM이 24bits이면 packet_sequence_number의 첫 8bits를 제외한 나머지 24bits 값)(i=0,1,…,N-1), L[i]는 SSB_length[i] field의 크기를 나타내는 정보로 SSB_length field size = 6+8*L로 주어지며 SSB_length[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet block의 source packet들의 개수(i=0,1,…,N-1), L2는 RSB_length field의 크기를 나타내는 정보로 RSB_length field size = 6+8*L2로 주어지며 RSB_length는 본 repair packet에 포함하는 repair symbol block의 repair symbol들의 개수 정보, L3는 RS_ID field의 크기를 나타내는 정보로 RS_ID field size = 6+8*L2로 주어지며 RS_ID는 본 repair packet을 포함하는 repair symbol block에서 본 repair packet내에 있는 repair symbol(s)의 위치를 나타낸다(예를 들어 몇 번째 repair symbol인지).
본 개시의 일 실시 예에 따른 또 다른 송신 방법은, 상기 MPEG output document w13982와 같이 전송하고자 하는 Asset들 및 Signaling message를 위한 MMT packet들을 생성하여 전송함에 있어서, network의 중간 Node (e.g. Contribution Network)이 FEC protection하고자 하는 Asset(s)과 FEC configuration 정보를 결정하는 과정; 상기 FEC protection하고자 하는 Asset(s)과 FEC configuration 정보에 기초해서 상기 Asset(s)에 mapping되는 packet_id 리스트와 이에 mapping되는 repair flow ID를 결정하는 것을 포함하는 과정; 상기 Asset(s)에 해당하는 MMT packet을 protection하는 repair symbol block을 생성하는 과정; 상기 생성된 repair symbol block의 repair symbol(s)에 상기 repair flow ID값을 packet_ID에 설정하고, 본 개시에 의한 repair FEC payload ID를 추가하여 FEC repair packet(MMT packet)을 생성하는 과정을 포함하는 전송 부를 포함한다.
여기서, 상기 본 개시에 의한 repair FEC payload ID는 M, T, SSM, PM, C, W, timestamp, # of packet_ID, packet_ID List, CP, PWT, RS_length, SS_start_seq_nr[0] ~ [N-1], L[0] ~ [N-1], SSB_length [0] ~ [N-1], L2,RSB_length, L3,RS_ID들 중 적어도 하나는 포함하는데, M은 본 repair packet의 repair FEC payload ID가 dependent repair FEC payload ID인지 independent repair FEC payload ID인지 (Dependent repair FEC payload ID정의: repair FEC payload ID에 있는 정보와 다른 정보(e.g. AL-FEC message or Independent repair FEC payload ID)에 저장되어 있는 정보의 조합으로 FEC decoding processing에 필요한 정보를 얻을 수 있음. 반대의 의미로 Independent repair FEC payload ID는 AL-FEC message에 저장되어 있는 정보 없이 상기 Independent repair FEC payload ID를 포함하고 있는 packet의 정보만으로 FEC decoding processing에 필요한 정보를 얻을 수 있음)를 나타내다. T는 timestamp field가 있는지 없는지를 나타내는 flag 정보, SSM은 SS_start_seq_nr field의 사이즈를 나타내는 정보(예를 들어 SS_start_seq_nr field의 사이즈(in bits) = 8+8*SSM), PM은 MMT flow 전체를 protection하는지, 하나의 packet_ID를 protection하는지, 두 개의 packet_ID를 protection 하는지, 아니면 2개 초과의 packet_ID를 protection하는지를 나타내고, C는 CP(Code Point) field가 있는지 없는지, W는 PWT(Protection Window Time) field가 있는지 없는지, timestamp는 본 repair packet이 protection하는 source packet block의 첫 번째 source packet에 저장된 timestamp, # of packet_ID field는 PM이 2개 초과의 packet_ID를 protection하고 있다고 나타낼 때 존재하는 field로 packet_ID들의 개수 정보를 나타낸다. Packet_ID list field는 packet_ID들의 리스트하는데, PM이 MMT flow 전체를 protection한다고 나타낼때는 존재하지 않는다. CP(Code Point) field는 C flag가 on되어 있는 경우 존재하는데 본 repair packet을 생성하기 위해 사용된 FEC code의 code point를 나타내고, PWT는 W flag가 on되어 있는 경우 존재하는데 본 repair packet을 포함하는 repair flow에서 FEC source packet block과 해당 FEC repair packet block으로 구성되는 FEC packet block Window time을 나타낸다(W13982의 Protection Window Time과 동일). RS_length는 repair symbol의 크기 정보를 나타낸다. SS_start_seq_nr[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet block의 source packet들 중 가장 낮은 packet sequence number에서 8+8*SSM bits 사이즈 만큼의 LSB값(예를 들어 packet_sequence_number가 32bits이고, 8+8*SSM이 24bits이면 packet_sequence_number의 첫 8bits를 제외한 나머지 24bits 값)(i=0,1,…,N-1), L[i]는 SSB_length[i] field의 크기를 나타내는 정보로 SSB_length field size = 6+8*L로 주어지며 SSB_length[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet block의 source packet들의 개수(i=0,1,…,N-1), L2는 RSB_length field의 크기를 나타내는 정보로 RSB_length field size = 6+8*L2로 주어지며 RSB_length는 본 repair packet에 포함하는 repair symbol block의 repair symbol들의 개수 정보, L3는 RS_ID field의 크기를 나타내는 정보로 RS_ID field size = 6+8*L2로 주어지며 RS_ID는 본 repair packet을 포함하는 repair symbol block에서 본 repair packet내에 있는 repair symbol(s)의 위치를 나타낸다(예를 들어 몇 번째 repair symbol인지).
본 개시의 일 실시 예에 따른 또 다른 송신 장치는, 상기 MPEG output document w13982와 같이 전송하고자 하는 Asset들 및 Signaling message를 위한 MMT packet들을 생성하여 전송함에 있어서, network의 중간 Node (e.g. Contribution Network)이 FEC protection하고자 하는 Asset(s)과 FEC configuration 정보를 결정하고 상기 FEC protection하고자 하는 Asset(s)과 FEC configuration 정보에 기초해서 상기 Asset(s)에 mapping되는 packet_id 리스트와 이에 mapping되는 repair flow ID를 결정하고 상기 Asset(s)에 해당하는 MMT packet을 protection하는 repair symbol block을 생성하고 상기 생성된 repair symbol block의 repair symbol(s)에 상기 repair flow ID값을 packet_ID에 설정하고, 본 개시에 의한 repair FEC payload ID를 추가하여 FEC repair packet(MMT packet)을 생성하는 제어부를 포함한다.
여기서, 상기 본 개시에 의한 repair FEC payload ID는 M, T, SSM, PM, C, W, timestamp, # of packet_ID, packet_ID List, CP, PWT, RS_length, SS_start_seq_nr[0] ~ [N-1], L[0] ~ [N-1], SSB_length [0] ~ [N-1], L2,RSB_length, L3,RS_ID들 중 적어도 하나는 포함하는데, M은 본 repair packet의 repair FEC payload ID가 dependent repair FEC payload ID인지 independent repair FEC payload ID인지 (Dependent repair FEC payload ID정의: repair FEC payload ID에 있는 정보와 AL-FEC message에 저장되어 정보의 조합으로 FEC decoding processing에 필요한 정보를 얻을 수 있음. 반대의 의미로 Independent repair FEC payload ID는 AL-FEC message에 저장되어 있는 정보 없이 상기 Independent repair FEC payload ID를 포함하고 있는 packet의 정보만으로 FEC decoding processing에 필요한 정보를 얻을 수 있음)를 나타내다. T는 timestamp field가 있는지 없는지를 나타내는 flag 정보, SSM은 SS_start_seq_nr field의 사이즈를 나타내는 정보(예를 들어 SS_start_seq_nr field의 사이즈(in bits) = 8+8*SSM), PM은 MMT flow 전체를 protection하는지, 하나의 packet_ID를 protection하는지, 두 개의 packet_ID를 protection 하는지, 아니면 2개 초과의 packet_ID를 protection하는지를 나타내고, C는 CP(Code Point) field가 있는지 없는지, W는 PWT(Protection Window Time) field가 있는지 없는지, timestamp는 본 repair packet이 protection하는 source packet block의 첫 번째 source packet에 저장된 timestamp, # of packet_ID field는 PM이 2개 초과의 packet_ID를 protection하고 있다고 나타낼 때 존재하는 field로 packet_ID들의 개수 정보를 나타낸다. Packet_ID list field는 packet_ID들의 리스트하는데, PM이 MMT flow 전체를 protection한다고 나타낼때는 존재하지 않는다. CP(Code Point) field는 C flag가 on되어 있는 경우 존재하는데 본 repair packet을 생성하기 위해 사용된 FEC code의 code point를 나타내고, PWT는 W flag가 on되어 있는 경우 존재하는데 본 repair packet을 포함하는 repair flow에서 FEC source packet block과 해당 FEC repair packet block으로 구성되는 FEC packet block Window time을 나타낸다(W13982의 Protection Window Time과 동일). RS_length는 repair symbol의 크기 정보를 나타낸다. SS_start_seq_nr[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet block의 source packet들 중 가장 낮은 packet sequence number에서 8+8*SSM bits 사이즈 만큼의 LSB값(예를 들어 packet_sequence_number가 32bits이고, 8+8*SSM이 24bits이면 packet_sequence_number의 첫 8bits를 제외한 나머지 24bits 값)(i=0,1,…,N-1), L[i]는 SSB_length[i] field의 크기를 나타내는 정보로 SSB_length field size = 6+8*L로 주어지며 SSB_length[i]는 AL-FEC message에 기술된 본 source flow에서 i번째 packet_ID값을 가지는 상기 source packet block의 source packet들의 개수(i=0,1,…,N-1), L2는 RSB_length field의 크기를 나타내는 정보로 RSB_length field size = 6+8*L2로 주어지며 RSB_length는 본 repair packet에 포함하는 repair symbol block의 repair symbol들의 개수 정보, L3는 RS_ID field의 크기를 나타내는 정보로 RS_ID field size = 6+8*L2로 주어지며 RS_ID는 본 repair packet을 포함하는 repair symbol block에서 본 repair packet내에 있는 repair symbol(s)의 위치를 나타낸다(예를 들어 몇 번째 repair symbol인지).
본 개시의 일 실시 예에 따른 수신 방법은, 통신 시스템에서 패킷을 수신하는 방법에 있어서, 송신기로부터 수신된 패킷으로부터 소스 패킷인지 FEC 복구 패킷인지를 구분하는 과정; 상기 FEC 복구 패킷으로부터 복구 심벌을 획득하는 과정을 포함하고, 상기 FEC 복구 패킷의 repair FEC payload ID로부터 상기 FEC 복구 패킷이 protection하고 있는 Protection Mode(즉, MMT flow 전체를 protection하고 있는지, 아니면 하나, 둘 또는 그 이상의 packet_ID들을 protection하고 있는지)를 인지하고 MMT flow 전체를 protection하고 있으면 수신된 소스 패킷의 packet_count field와 repair FEC payload ID의 SS_start_seq_nr들과 SSB_length정보를 바탕으로 source packet들을 획득하거나 또는 MMT flow 전체를 protection하고 있지 않으면 상기 repair FEC payload ID의 정보로부터 protection하고 있는 packet_ID들의 수, packet_ID 리스트, SS_start_seq_nr, SSB_length를 바탕으로 수신된 패킷으로부터 Source packet block에 해당하는 Source packet을 획득하여 상기 복구 심벌들과 함께하여 인코딩 심벌 블록을 구성하는 과정; 상기 구성된 인코딩 심벌 블록에 FEC 복호를 수행하여 소스 심벌을 복구하는 과정; 상기 복구된 소스 심벌로부터 전송 도중 손실된 소스 패킷 블록의 소스 패킷을 획득하는 과정을 포함하는 수신 부를 포함한다.
본 개시의 일 실시 예에 따른 수신 장치는, 통신 시스템에서 패킷을 수신하는 장치에 있어서, 송신기로부터 수신된 패킷으로부터 소스 패킷인지 FEC 복구 패킷인지를 구분하고 상기 FEC 복구 패킷으로부터 복구 심벌을 획득하는 과정을 포함하고, 상기 FEC 복구 패킷의 repair FEC payload ID로부터 상기 FEC 복구 패킷이 protection하고 있는 Protection Mode(즉, MMT flow 전체를 protection하고 있는지, 아니면 하나, 둘 또는 그 이상의 packet_ID들을 protection하고 있는지)를 인지하고 MMT flow 전체를 protection하고 있으면 수신된 소스 패킷의 packet_count field와 repair FEC payload ID의 SS_start_seq_nr들과 SSB_length정보를 바탕으로 source packet들을 획득하거나 또는 MMT flow 전체를 protection하고 있지 않으면 상기 repair FEC payload ID의 정보로부터 protection하고 있는 packet_ID들의 수, packet_ID 리스트, SS_start_seq_nr, SSB_length를 바탕으로 수신된 패킷으로부터 Source packet block에 해당하는 Source packet을 획득하여 상기 복구 심벌들과 함께하여 인코딩 심벌 블록을 구성하고 상기 구성된 인코딩 심벌 블록에 FEC 복호를 수행하여 소스 심벌을 복구하고 상기 복구된 소스 심벌로부터 전송 도중 손실된 소스 패킷 블록의 소스 패킷을 획득하는 것을 특징으로 하는 제어부를 포함한다.
본 개시의 일 실시 예에 따른 송신 방법은, 상기 MPEG output document w13982와 같이 전송하고자 하는 Asset들 및 Signaling message를 위한 MMT packet 들을 생성하는 과정; 상기 Asset들 중 FEC protection하고자 하는 Asset들에 해당하는 MMT packet, 즉 source packet들에 적용할 FEC code, Window Protection Time, 생성할 repair symbol의 크기, FEC protection하는 packet_ID들의 개수등과 같은 FEC configuration을 정보들을 정하는 과정; FEC encoding을 수행하여 w13982 기술된 바와 같이 repair symbol block을 생성하는 과정; 상기 생성된 repair symbol block의 repair symbol(s)에 본 개시에서 제안하는 repair FEC payload ID를 추가하여 FEC repair packet을 생성하여 전송함에 있어서 source packet block을 protection하는 repair packets들 중에서 적어도 하나의 repair packet은 independent repair FEC payload ID를 포함하여 전송하는 과정을 포함하는 전송부를 포함한다.
본 개시의 일 실시 예에 따른 송신 장치는, 상기 MPEG output document w13982와 같이 전송하고자 하는 Asset들 및 Signaling message를 위한 MMT packet 들을 생성하고 상기 Asset들 중 FEC protection하고자 하는 Asset들에 해당하는 MMT packet, 즉 source packet들에 적용할 FEC code, Window Protection Time, 생성할 repair symbol의 크기, FEC protection하는 packet_ID들의 개수등과 같은 FEC configuration을 정보들을 정하고 FEC encoding을 수행하여 w13982 기술된 바와 같이 repair symbol block을 생성하여 상기 생성된 repair symbol block의 repair symbol(s)에 본 개시에서 제안하는 FEC repair payload ID를 추가하여 FEC repair packet을 생성하여 전송함에 있어서 source packet block을 protection하는 repair packets들 중에서 적어도 하나의 repair packet은 independent repair FEC payload ID를 포함하여 전송하는 제어부를 포함한다.
본 개시의 일 실시 예에 따른 또 다른 송신 방법은, 상기 MPEG output document w13982와 같이 전송하고자 하는 Asset들 및 Signaling message를 위한 MMT packet들을 생성하여 전송함에 있어서, network의 중간 Node (e.g. Contribution Network)이 FEC protection하고자 하는 Asset(s)과 FEC configuration 정보를 결정하는 과정; 상기 FEC protection하고자 하는 Asset(s)과 FEC configuration 정보에 기초해서 상기 Asset(s)에 mapping되는 packet_id 리스트와 이에 mapping되는 repair flow ID를 결정하는 것을 포함하는 과정; 상기 Asset(s)에 해당하는 MMT packet을 protection하는 repair symbol block을 생성하는 과정; 상기 생성된 repair symbol block의 repair symbol(s)에 상기 repair flow ID값을 packet_ID에 설정하고, 본 개시에 의한 repair FEC payload ID를 추가하여 FEC repair packet(MMT packet)을 생성함에 있어서 source packet block을 protection하는 repair packets들 중에서 적어도 하나의 repair packet은 independent repair FEC payload ID를 포함하여 전송하는 과정을 포함하는 전송 부를 포함한다.
본 개시의 일 실시 예에 따른 또 다른 송신 장치는, 상기 MPEG output document w13982와 같이 전송하고자 하는 Asset들 및 Signaling message를 위한 MMT packet들을 생성하여 전송함에 있어서, network의 중간 Node (e.g. Contribution Network)이 FEC protection하고자 하는 Asset(s)과 FEC configuration 정보를 결정하고 상기 FEC protection하고자 하는 Asset(s)과 FEC configuration 정보에 기초해서 상기 Asset(s)에 mapping되는 packet_id 리스트와 이에 mapping되는 repair flow ID를 결정하고 상기 Asset(s)에 해당하는 MMT packet을 protection하는 repair symbol block을 생성하고 상기 생성된 repair symbol block의 repair symbol(s)에 상기 repair flow ID값을 packet_ID에 설정하고, 본 개시에 의한 repair FEC payload ID를 추가하여 FEC repair packet(MMT packet)을 생성함에 있어서 source packet block을 protection하는 repair packets들 중에서 적어도 하나의 repair packet은 independent repair FEC payload ID를 포함하여 전송하는 제어부를 포함한다.
본 개시의 일 실시 예에 따른 수신 방법은, 통신 시스템에서 패킷을 수신하는 방법에 있어서, 송신기로부터 수신된 패킷으로부터 소스 패킷인지 FEC 복구 패킷인지를 구분하는 과정; 상기 FEC 복구 패킷으로부터 적어도 하나의 independent repair FEC payload ID를 획득하고, 복구 심벌을 획득하는 과정을 포함하고, 상기 FEC 복구 패킷의 repair FEC payload ID로부터 상기 FEC 복구 패킷이 protection하고 있는 Protection Mode(즉, MMT flow 전체를 protection하고 있는지, 아니면 하나, 둘 또는 그 이상의 packet_ID들을 protection하고 있는지)를 인지하고 MMT flow 전체를 protection하고 있으면 수신된 소스 패킷의 packet_count field와 repair FEC payload ID의 SS_start_seq_nr들과 SSB_length정보를 바탕으로 source packet들을 획득하거나 또는 MMT flow 전체를 protection하고 있지 않으면 상기 repair FEC payload ID의 정보로부터 protection하고 있는 packet_ID들의 수, ssbg_mode, packet_ID 리스트, SS_start_seq_nr, SSB_length를 바탕으로 수신된 패킷으로부터 Source packet block에 해당하는 Source packet을 획득하여 상기 복구 심벌들과 함께하여 인코딩 심벌 블록을 구성하는 과정; 상기 구성된 인코딩 심벌 블록에 FEC 복호를 수행하여 소스 심벌을 복구하는 과정; 상기 복구된 소스 심벌로부터 전송 도중 손실된 소스 패킷 블록의 소스 패킷을 획득하는 과정을 포함하는 수신 부를 포함한다.
본 개시의 일 실시 예에 따른 수신 장치는, 통신 시스템에서 패킷을 수신하는 장치에 있어서, 송신기로부터 수신된 패킷으로부터 소스 패킷인지 FEC 복구 패킷인지를 구분하고 상기 FEC 복구 패킷으로부터 적어도 하나의 independent repair FEC payload ID를 획득하고, 복구 심벌을 획득하는 과정을 포함하고, 상기 FEC 복구 패킷의 repair FEC payload ID로부터 상기 FEC 복구 패킷이 protection하고 있는 Protection Mode(즉, MMT flow 전체를 protection하고 있는지, 아니면 하나, 둘 또는 그 이상의 packet_ID들을 protection하고 있는지)를 인지하고 MMT flow 전체를 protection하고 있으면 수신된 소스 패킷의 packet_count field와 repair FEC payload ID의 SS_start_seq_nr들과 SSB_length정보를 바탕으로 source packet들을 획득하거나 또는 MMT flow 전체를 protection하고 있지 않으면 상기 repair FEC payload ID의 정보로부터 protection하고 있는 packet_ID들의 수, ssbg_mode, packet_ID 리스트, SS_start_seq_nr, SSB_length를 바탕으로 수신된 패킷으로부터 Source packet block에 해당하는 Source packet을 획득하여 상기 복구 심벌들과 함께하여 인코딩 심벌 블록을 구성하고 상기 구성된 인코딩 심벌 블록에 FEC 복호를 수행하여 소스 심벌을 복구하고 상기 복구된 소스 심벌로부터 전송 도중 손실된 소스 패킷 블록의 소스 패킷을 획득하는 것을 특징으로 하는 제어부를 포함한다.
상기에서 소스 패킷 또는 FEC repair packet의 header는 소스 패킷인지 FEC repair packet인지를 구분하는 정보를 가진다. 특히, Source Symbol Block내의 소스 심벌들의 순서를 알려주기 위한 별도의 Source Symbol ID(SS_ID)를 상기 소스 패킷에 추가하는 패킷 전송 방법과 상기 본 개시의 패킷 전송 방법이 함께 사용될 경우 상기 본 개시에 의한 소스 패킷 또는 FEC repair packet의 Header는 패킷이
-Source Packet + SS_ID인지 (기존 발명: P20120112032)
-Source Packet 그 자체인지 (본 개시)
-기존 발명에 의한 FEC Repair Packet
-본 개시에 의한 FEC Repair Packet인지를 구분하는 정보를 가진다.
-하기 <표 1>은 MMT Packet Header의 FEC type의 실시 예를 나타낸다.
<표 1> - value of FEC_type (or MMT packe type)
Figure pat00001
NOTE: If FEC type is set to 0, it indicates that FEC is not applied to this MMT packet or that FEC is applied to this MMT packet without adding FEC Source Payload ID.
또한 이러한 packet 구분 정보는 AL-FEC message를 통해 기존 방법으로 FEC 적용하여 패킷 전송하는지 또는 본 개시로 FEC 적용하여 패킷 전송하는지를 나타내는 Payload ID_Mode Flag를 두어 수신단에 전송한다.
Paylaod ID_Mode Flag = 1: 본 개시에 의한 FEC 적용한 패킷 전송 방법 (즉, Source Packet에 별도의 SS_ID를 사용하는 것 없이 Source Packet내에 있는 정보가 SS_ID를 대체하고, 본 개시에 의한 FEC repair packet format (특히 repair FEC Payload ID)를 따른다)
Payload ID_Mode Flag = 0: 기존 발명과 같이 FEC 적용한 패킷 전송 방법 (즉, Source Packet에 별도의 SS_ID를 추가하고, 기존 발명에 의한 FEC repair packet format (특히 repair FEC Payload ID)을 따른다.)
이하에서는 도면을 참조하여 본 개시의 다른 실시예를 상세히 설명한다.
상술한 본 개시의 일 실시예에서 설명한 도 1 내지 도 5는 본 개시의 다른 실시예에서도 동일하게 적용되므로, 중복되는 설명은 생략한다.
본 개시의 다른 실시예에 따른 Repair FEC Payload ID는 도 12에 도시되었다.
도 12에서 도시된 각 정보의 내용은 아래와 같다.
M (1 bit) - indicates whether this repair packet carries dependent repair FEC payload ID or independent repair FEC payload ID. When set to 1, it shall indicate that this packet carries a dependent repair FEC payload ID and when set to 0, it shall indicate that this packet carries an independent repair FEC payload ID.
T (1 bit) - indicates whether timestamp field present or not. When set to 0, timestamp field shall not be present and when set to 1, timestamp field shall present.
SSM (2 bits) - indicates the size of the SS_start_seq_nr[i] field. The actual size of the SS_start_seq_nr[i] field is allocated to “8+8*SSM” bits.
PM (2 bits)-defines a source flow to be protected. The same value shall be set to this field of all repair packets for a repair flow.
Figure pat00002
Protection Mode
C (1 bit)-indicates whether Code Point field present or not. When set to 0, Code Point field shall not be present and pre-determined Code Point is used. When set to 1, Code Point field shall be present.
W (1 bit)-indicates whether Protection Window Time field present or not. When set to 0, Protection Window Time field shall not be present. When set to 1, Protection Window Time field shall be present.
If the field M indicates that this repair packet carries dependent repair FEC payload ID, then PM, C and W fields are reserved.
timestamp (32 bits)-indicates the timestamp of the first packet of source packet block which is protected by this repair packet.
# of packet_id (6 bits)-indicates the number of packet_ids which consists of a source flow to be protected. This field shall only present when PM set to 3. The same value shall be set to this field of all repair packets for a repair flow.
ssbg_mode (2bits) - indicates the applied source symbol block generation mode to the source packet block which is protected by this repair packet.
list_packet_id (Num*16 bits)-provides list of packet_ID to be protected by a repair flow for this packet. When PM set to 0, then this field shall not present, when PM set to 1 or 2 then Num = 1 or 2, respectively and when PM set to 3, Num = # of packet_id. The same value shall be set to this field of all repair packets for a repair flow.
CP (8 bits)-indicates the Code Point which is used to generate the repair flow. This field shall only present when C set to 1. The same value shall be set to this field of all repair packets for a repair flow.
PWT (32 bits)-indicates Protection Window Time of FEC source or repair packet block which is relevant to this repair packet. This field shall only present when W set to 1. The same value shall be set to this field of all repair packets for a repair flow.
RS_length (16 bits)-indicates the length(in bytes) of repair symbol. The same value shall be set to this field of all repair packets for a repair flow.
If the field M indicates that this repair packet carries dependent repair FEC payload ID, then # of packet_id, list_packet_id, CP, PWT and RS_length fields shall not be present.
SS_start_seq_nr[i] (8+8*SSM bits)-If PM set to 0, it indicates LSB part (8+8*SSM bits) of the lowest packet_count of a packet in the source symbol block which is protected by this repair packet. Otherwise, it indicates LSB part (8+8*SSM bits) of the lowest packet_sequence_number of a packet with the ith packet_ID of list_packet_ID field in the source symbol block which is protected by this repair packet (i=0,1,…,Num-1).
L[i] (2 bits)-provides the number of additional words in the SSB_length[i] field.
SSB_length[i] (6+8*L[i] bits)-indicates the number of packets with ith packet_ID of list_packet_ID field of the source symbol block which is protected by this repair packet.
L2 (2 bits)-provides the number of additional words in the RSB_length field.
RSB_length (6+8*L2 bits)-the number of repair symbols generated in its associated repair symbol block.
L2 (2 bits)-provides the number of additional words in the RS_ID field.
RS_ID (6+8*L2 bits)-an integer number for identifying the first repair symbol in the FEC repair packet. It starts with 0 and is incremented by 1 with each repair symbol in its associated repair symbol block.
도 17a에 예시된 바와 같이 SS_start_seq_nr field와 SSB_length field들의 개수는 Independent repair FEC payload ID에 기술된 source flow에 대한 packet_id들의 개수 및 순서 입각해서 상기 source flow에 대한 repair flow의 모든 repair packet에 기술된다. 만일 Source Flow에 포함되는 Packet_ID들의 수보다 source packet(or symbol) block안에 있는 packet_ID들의 수가 적은 경우 도 17b에 예시된 바와 같이 해당 source packet(or symbol) block을 위한 repair packet의 repair FEC payload ID는 Independent repair FEC payload ID에 기술된 해당 Source flow에 포함되는 packet_ID들의 개수만큼 SS_start_seq_nr field와 SSB_length field가 존재하고 그 순서도 일치한다. 다만, source packet(symbol) block이 포함하고 있지 않은 packet_ID의 순서에 해당하는 SS_start_seq_nr field 또는 SSB_length field의 값을 특정값으로 설정하여 관계된 source packet (or symbol) block이 해당 packet_ID를 포함하고 있지 않음을 나타낸다. 예로 SSB_length field의 값을 0으로 설정하여 해당 packet_ID를 가지는 packet이 해당 source packet (or symbol) block내에 존재하지 않음을 나타낼 수 있다.
도 17a와 17b의 예시를 상세히 설명하면 AL-FEC message에 기술된 source flow가 3개의 Packet_ID, 0,1,2로 구성되는데 비해 source packet(or symbol) Block #1은 0,1,2로 구성, source packet(or symbol) block #2는 0,1 , source packet(or symbol) block #3은 1,2로 구성되는 경우, 상기 source flow를 위한 repair packet의 repair FEC payload ID는 상기 packet_ID 0,1,2에 대한 순서대로 SS_start_seq_nr와 SSB_length field를 각각 3개씩 포함하지만, 그 field의 값은 source packet(or symbol) block 1을 위한 repair packet의 repair FEC payload ID는 상기 packet_ID 0,1,2에 대한 SS_start_seq_nr와 SSB_length를 설정하고, source packet(or symbol) block2를 위한 repair packet의 repair FEC payload ID는 상기 packet_ID 0,1에 대한 SS_start_seq_nr와 SSB_length를 설정하고, packet_ID 2를 포함하고 있지 않으므로 해당 SSB_length Field에 0을 설정하여 상기 source packet(or symbol) block2가 상기 packet_ID 2를 포함하고 있지 않음을 나타낸다. 또한 source packet(or symbol) block 3을 위한 repair packet의 repair FEC payload ID는 상기 source packet(or symbol) block3가 packet_ID 0을 포함하고 있지 않으므로 해당 SSB_length Field에 0을 설정하고, 상기 packet_ID 1,2에 대한 SS_start_seq_nr와 SSB_length를 설정한다. 또한 source packet (or symbol) block의 포함하고 있지 않은 packet_ID에 해당하는 SSB_length field를 사이즈를 결정하기 위한 L 필드는 0으로 설정하여 SSB_length field의 크기를 최소화 한다.한편, 본 개시의 다른 실시 예에 따른 Source Packet Flow를 생성하는 방법은 앞서 설명된 도 6a와 같다.
즉, 3개의 Asset A, B, C (e.g. Audio data, Video data, txt, File과 같은 Non-timed Data or Timed Data) 가 있을 때 각각의 Asset은 소정 크기의 데이터로 분리된 후 MMT Payload Header, MMT Packet Header를 부가하여 MMT Packet Flow (Source Packet Flow)를 구성하게 된다. Asset A,B,C 각각은 5개의 데이터 Payload로 분리되어 각각에 Packet_ID와 Packet Sequence Number를 포함하는 Header를 추가하였다. Asset A의 packet들을 Identify하는 Packet_ID = 0, Asset B는 Packet_ID=1 그리고 Asset C는 Packet_ID=2가 할당되고 각각의 Packet_ID에 기반한 Packet Sequence Number가 1씩 증가하도록 할당되어 있다. 상기 Header의 일 예로 MMT Packet Header를 들 수 있다.
도 13a과 13b는 Packet Protection과 Payload Protection입장에서의 송신기 동작을 나타낸다. 우선 Data Stream은 Segmentation, Payloadization, Packetization을 거쳐 전송기에 의해 packet stream으로 해서 전송된다. MMT를 예를 들면 Data Stream = Asset에 배치될 수 있다. Segmentation은 data를 소정 크기로 나눈다. Payloadization은 상기 data에 Header를 부가하는데 수신단에서 수신된 packet으로부터 상기 data를 재 구성할 수 있는 정보가 Header에 저장된다 예로 MMT Payload가 여기에 해당된다. Packetization은 MMT Payload에 MMT Packet Header를 추가한다. 상기 MMT Packet Header는 Packet_ID와 Packet Sequence Number를 가지고 있어 FEC에 활용된다.
Packet Protection이 이루어지는 경우 FEC protection하고자 하는 MMT packet들은 FEC Controller의 제어를 받아 Source Symbol Block Generator로 입력된다. Source Symbol Block Generator는 MMT Packet (Source Packet)들로부터 Source Symbol Block을 생성(도 10의 예시 참조)하고 FEC encoder는 Source Symbol Block을 입력받아 Repair Symbols을 생성하고, 각각의 Repair Symbol은 MMT Packet Header와 FEC Repair Payload ID를 추가하여 FEC Repair Packet으로 전송된다. 상술한 것처럼 본 개시의 다른 실시예에 따른 repair FEC Payload ID는 도 12와 같이 구성된다.
Payload protection의 경우 MMT Payload나 Payload data가 Source Symbol Block으로 입력되는 것을 제외하고는 동일하다.
본 개시에 의한 방법과 기존의 방법에 의한 AL-FEC 적용 방법이 모두 사용되는 경우 기존 방법에 의해 AL-FEC 적용된 packet들의 AL-FEC decoding을 위해서는 AL-FEC message가 필요하므로 이경우 AL-FEC Message는 Payloadization을 거쳐 즉, MMT Payload Header를 추가한 후 MMT Packet Header를 추가하여 데이터와는 별도의 패킷으로 전송된다. 하지만, 본 개시에 의한 방법만을 AL-FEC가 적용되어 전송될 경우 굳이 AL-FEC messgae를 별도의 packet으로 전송할 필요가 없다. 이유인즉슨, 본 개시에 의한 수신기의 FEC operation 필요한 정보는 repair packet내에 전송되기 때문이다.
도 14a과 14b는 Packet Protection과 Payload Protection입장에서의 수신기 동작을 나타낸다. 우선 패킷을 수신하면 소스 패킷인지 FEC 복구 패킷인지를 구분한다. 만일 여러 종류의 소스 패킷 (예를 들어 별도의 SS_ID를 가지는 MMT Packet (기존 발명)과 그렇지 않은 MMT Packet(본 개시)이 공존하는 경우)과 여러 종류의 FEC 복구 패킷(예를 들어 기존 발명에 의한 FEC 복구 패킷과 본 개시에 의한 FEC 복구 패킷이 공존)이 공존하는 경우 이를 구분하는 정보가 MMT Packet Header에 있고 수신기는 이를 기반으로 각각의 packet을 구분한다. De-packetization(e.g MMT De-packetization or Parse), De-payloadization (MMT Payload Depayloadization or Parse), De-segmentation을 거쳐 Data Stream으로 다시 복원된다. Packet Protection이 적용된 경우의 수신기 동작은 수신된 packet이 source packet인지 repair packet인지를 구분하고 수신된 패킷이 복구 패킷인 경우 복구 패킷의 repair FEC Payload ID의 M field가 independent repair FEC payload ID임을 나타내면 리스트되어 있는 # of Packet_IDs, List of Packet_IDs, List of SS_Start_Seq_Nrs, List of SSB_Length[]들과 다른 정보로 부터로부터 해당 복구 패킷이 Protection하고 있는 Source Packet들을 인지하고 수신되는 해당 Source Packet (MMT Packet)을 Encoding Symbol Generator로 입력한다. Encoding Symbol Generator는 Source Packet으로부터 주어진 SSBG mode에 따라 Source Symbol로 전환하고 복구 심벌과 함께 Encoding Symbol Block을 구성한다. FEC Decoder는 복구 심벌을 이용하여 손실된 source symbol을 복원하여 source packet을 획득하여 De-packetiztion 블록으로 전송한다.
Payload Protection이 적용된 경우 Packet이 아닌 Payload를 복원하는 것을 제외하고는 MMT Packet Header의 정보 활용이나 FEC Repair Packet의 FEC Repair Payload ID 정보 활용 측면에서는 Packet Protection과 동일하다.
도 15는 본 개시의 일 실시 예에 따르는 Source Packet Block (or Source Symbol Block) 생성 예시이다. 3가지 packe_ID로 구성되는 packet들의 flow로부터 packet_ID = 0 or 1을 가지는 2개의 packet_ID들에 해당하는 packet들을 선별하여 FEC Source Packet Flow(=1 Source Packet Block )를 구성하고 PacketID=0를 가지는 packet들을 우선 배치하고 다음 Packet_ID=1을 가지는 패킷들을 배치하여 Source Symbol Block을 생성하였다. Source Packet에 Source Symbol로 전환할 때 Source Packet들의 길이가 서로 다르면 padding이 필요(SSBG_MODE1)하고 모두 동일한 길이이면 padding이 필요 없다(SSBG_MODE0).
도 16은 본 개시의 또 다른 실시예에 따른 repair FEC payload ID를 설명하는 도면이다. 도 16에서 도시된 각 정보의 내용은 아래와 같다.
The order of the fields in the repair FEC payload ID determines the order in which source symbols are concatenated in the source symbol block.
For a given source flow, the order of the SS_start_seq_nr[i], L[i], and SSB_length[i] fields is determined by the order of packet_ids in the independent repair FEC payload ID of a repair FEC packet for the source flow.
M (1 bit) - indicates whether this repair packet carries dependent repair FEC payload ID or independent repair FEC payload ID. When set to 1, it shall indicate that this packet carries a dependent repair FEC payload ID and when set to 0, it shall indicate that this packet carries an independent repair FEC payload ID.
T (1 bit) - indicates whether timestamp field present or not. When set to 0, timestamp field shall not be present and when set to 1, timestamp field shall present.
SSM (2 bits) - indicates the size of the SS_start_seq_nr[i] field. The actual size of the SS_start_seq_nr[i] field is allocated to “8+8*SSM” bits.
I (1 bit) - defines whether length repair data presents in this FEC repair packet or not. If set to 1, length repair data shall be present. Otherwise, length repair data shall not be present.
C (1 bit)-indicates whether Code Point field present or not. When set to 0, Code Point field shall not be present and pre-determined Code Point is used. When set to 1, Code Point field shall be present.
W (1 bit)-indicates whether Protection Window Time field present or not. When set to 0, Protection Window Time field shall not be present. When set to 1, Protection Window Time field shall be present.
If the field M indicates that this repair packet carries dependent repair FEC payload ID, then C and W fields are reserved.
timestamp (32 bits) - indicates the timestamp of the first packet of source packet block which is protected by this repair packet.
ssbg_mode (2bits) - indicates the applied source symbol block generation mode to the source packet block which is protected by this repair packet. The same value shall be set to this field of all repair packets for a repair flow.
# of packet_id (6 bits)-indicates the number of packet_ids which consists of a source flow to be protected. If whole MMT flow is protected, this field shall be set to 0. The same value shall be set to this field of all repair packets for a repair flow.
list_packet_id (Num*16 bits)-provides list of packet_ID to be protected by a repair flow for this packet. When # of packet_id set to 0, then this field shall not present, otherwise Num = # of packet_id. The same value shall be set to this field of all repair packets for a repair flow.
CP (8 bits)-indicates the Code Point which is used to generate the repair flow. This field shall only present when C set to 1. The same value shall be set to this field of all repair packets for a repair flow.
PWT (32 bits)-indicates Protection Window Time of FEC source or repair packet block which is relevant to this repair packet. This field shall only present when W set to 1. The same value shall be set to this field of all repair packets for a repair flow.
RS_length (16 bits)-indicates the length(in bytes) of repair symbol. The same value shall be set to this field of all repair packets for a repair flow.
If the field M indicates that this repair packet carries dependent repair FEC payload ID, then ssbg_mode, # of packet_id, list_packet_id, CP, PWT and RS_length fields shall not be present.
SS_start_seq_nr[i] (8+8*SSM bits) - If PM set to 0, it indicates LSB part (8+8*SSM bits) of the lowest packet_count of a packet in the source symbol block which is protected by this repair packet. Otherwise, it indicates LSB part (8+8*SSM bits) of the lowest packet_sequence_number of a packet with the ith packet_ID of list_packet_ID field in the source symbol block which is protected by this repair packet (i=0,1,…,Num-1).
L[i] (2 bits) - provides the number of additional words in the SSB_length[i] field.
SPB_length[i] (6+8*L[i] bits) - indicates the number of packets with ith packet_ID of list_packet_ID field of the source symbol block which is protected by this repair packet.
L2 (2 bits) - provides the number of additional words in the RSB_length field.
RSB_length (6+8*L2 bits) - the number of repair symbols in its associated repair symbol block.
L3 (2 bits) - provides the number of additional words in the LRSB_length field.
LRSB_length (6+8*L3 bits) - indicates the number of length repair data in its associated length repair data block. This field only presents when length repair data presents in this FEC repair packet. i.e I is set to 1.
L4 (2 bits) - provides the number of additional words in the SSB_length field.
SSB_length (6+8*L4 bits) - indicates the number of source symbols in the source symbol block. This field only presents when SSBG Mode 2 is applied.
L5 (2 bits) - provides the number of additional words in the LRD_ID field.
LRD_ID (6+8*L5 bits) - an integer number for identifying the first length repair data in the FEC repair packet. It starts with 0 and is incremented by 1 with each length repair data in its associated length repair data block. It only presents when length repair data presents in the FEC repair packet. i.e I is set to 1.
도 18a, 도 18b는 본 개시의 실시 예에 의한 source packet block에 FEC 적용하여 생성된 repair symbol들을 전송하기 위한 repair packet blocks을 도시한 도면이다. 첫 번째, 세 번째, 다섯 번째 repair packet에는 independent repair FEC payload ID가 전송되고, 두 번째, 네 번째 repair packet에는 dependent repair FEC payload ID가 전송된다. 수신기는 independent repair FEC payload ID로부터 해당 source flow에 포함되는 packet_id들의 리스트와 순서를 알 수 있을 뿐만 아니라 FEC operation에 필요한 FEC configuration 정보등을 얻을 수 있다. 도시하지는 않지만 dependent repair FEC payload ID는 w13982 기술된 repair FEC payload ID 정보들과 같이 수신된 repair packet내에 있는 repair symbol의 repair symbol block내에서의 위치 정보만을 포함하거나 또는 이마져도 MMTP packet header에는 packet sequence number field를 활용하여 대체할 수 있다. 이경우 dependent repair FEC payload ID는 도 18b와 같이 존재하지 않는다.
본 개시의 일 실시 예에 따르면, 사용자에게 보다 양질의 서비스를 제공할 수 있다. 본 개시는 수신 장치가 FEC 패킷 내의 Stream 구분 정보 또는 소스 패킷과는 다른 별도의 제어정보로부터 각각의 데이터 Stream을 구분하고, 각각의 데이터 Stream을 FEC Protection하기 위해 생성된 복구 Stream을 파악하고, FEC 복호화를 원만히 수행할 수 있을 뿐만 아니라, 생성된 source packet flow에 포함되는 소정 개수 데이터 스트림에 대해 repair flow를 source packet에 영향을 주지 않고 생성할 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐 아니라 이 특허청구의 범위와 균등한 것들에 의해서 정해져야 한다.

Claims (1)

  1. 통신 시스템에서 패킷을 송신하는 방법에 있어서,
    전송하고자 하는 Asset들 및 Signaling message를 위한 MMT packet들을 생성하는 과정;
    상기 Asset들 중 FEC protection하고자 하는 Asset들에 해당하는 MMT packet, 즉 source packet들에 대해 AL-FEC message에 정의되어 있는 FEC configuration에 대해 FEC encoding을 수행하여 repair symbol block을 생성하는 과정;
    repair symbol에 FEC repair payload ID를 추가하여 FEC repair packet을 생성하는 과정;
    AL-FEC message를 포함하는 Signaling message와 함께 상기 MMT packet, FEC repair packet을 MMT packet stream으로 전송하는 과정을 포함하는 패킷을 송신하는 방법.
KR1020140083810A 2014-01-13 2014-07-04 통신 시스템에서 패킷 송수신 방법 및 장치 KR20150084632A (ko)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2016546519A JP2017509201A (ja) 2014-01-13 2015-01-13 通信システムにおけるパケット送受信方法及び装置
CN201580013883.2A CN106134204B (zh) 2014-01-13 2015-01-13 用于在通信系统中传送和接收分组的方法和设备
KR1020167022057A KR102305410B1 (ko) 2014-01-13 2015-01-13 통신 시스템에서 패킷 송수신 방법 및 장치
EP15735291.5A EP3096523B1 (en) 2014-01-13 2015-01-13 Method and device for transmitting and receiving packet in communication system
US15/111,322 US10153863B2 (en) 2014-01-13 2015-01-13 Method and device for transmitting and receiving packet in communication system
PCT/KR2015/000358 WO2015105404A1 (ko) 2014-01-13 2015-01-13 통신 시스템에서 패킷 송수신 방법 및 장치
US16/137,231 US10498485B2 (en) 2014-01-13 2018-09-20 Method and device for transmitting and receiving packet in communication system
US16/660,291 US10985870B2 (en) 2014-01-13 2019-10-22 Method and device for transmitting and receiving packet in communication system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20140004259 2014-01-13
KR20140004256 2014-01-13
KR1020140004259 2014-01-13
KR1020140004256 2014-01-13

Publications (1)

Publication Number Publication Date
KR20150084632A true KR20150084632A (ko) 2015-07-22

Family

ID=53874534

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020140083810A KR20150084632A (ko) 2014-01-13 2014-07-04 통신 시스템에서 패킷 송수신 방법 및 장치
KR1020167022057A KR102305410B1 (ko) 2014-01-13 2015-01-13 통신 시스템에서 패킷 송수신 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020167022057A KR102305410B1 (ko) 2014-01-13 2015-01-13 통신 시스템에서 패킷 송수신 방법 및 장치

Country Status (5)

Country Link
US (3) US10153863B2 (ko)
EP (1) EP3096523B1 (ko)
JP (1) JP2017509201A (ko)
KR (2) KR20150084632A (ko)
CN (1) CN106134204B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150084632A (ko) * 2014-01-13 2015-07-22 삼성전자주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
JP7069542B2 (ja) * 2016-12-16 2022-05-18 ソニーグループ株式会社 送信装置、及び、送信方法
CN112188594B (zh) * 2017-05-04 2023-07-04 Oppo广东移动通信有限公司 传输信号的方法、网络设备和终端设备
CN108989011B (zh) * 2017-06-16 2020-03-10 华为技术有限公司 传输信息的方法和装置
WO2019143208A1 (ko) * 2018-01-19 2019-07-25 삼성전자 주식회사 방송 시스템에서의 통신 장치 및 방법
KR102506507B1 (ko) 2018-01-19 2023-03-07 삼성전자주식회사 통신 시스템에서 신호를 송/수신하는 장치 및 방법
US11196664B2 (en) * 2019-09-16 2021-12-07 Envistacom, Llc Multi-path message distribution and message reassembly for large data flow using forward error correction with high-performance computing (HPC)
US11791961B2 (en) * 2020-07-20 2023-10-17 Qualcomm Incorporated Media access control (MAC) control element (CE) spatial relation information update for sounding reference signal (SRS)

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4971144B2 (ja) * 2004-05-07 2012-07-11 デジタル ファウンテン, インコーポレイテッド ファイルダウンロードおよびストリーミングのシステム
US7660245B1 (en) * 2004-09-16 2010-02-09 Qualcomm Incorporated FEC architecture for streaming services including symbol-based operations and packet tagging
EP1803245A1 (en) * 2004-10-07 2007-07-04 Nokia Corporation Efficient source blocking algorithm for fec for mbms streaming
US7617436B2 (en) * 2005-08-02 2009-11-10 Nokia Corporation Method, device, and system for forward channel error recovery in video sequence transmission over packet-based network
KR101292851B1 (ko) * 2006-02-13 2013-08-02 디지털 파운튼, 인크. 가변적 fec 오버헤드 및 보호 구간을 이용하는 스트리밍및 버퍼링
JP2009052715A (ja) 2007-08-29 2009-03-12 Heiwa Kogyo Kk フレキシブルホースアダプタ
JP5027305B2 (ja) 2007-09-12 2012-09-19 デジタル ファウンテン, インコーポレイテッド 信頼できる通信を可能にするためのソース識別情報の生成および伝達
EP2201777A2 (en) * 2007-10-15 2010-06-30 Thomson Licensing Apparatus and method for encoding and decoding signals
JP5682253B2 (ja) * 2010-11-22 2015-03-11 富士通株式会社 プログラムおよび通信装置
CN103650432A (zh) 2011-07-08 2014-03-19 三星电子株式会社 用于在多媒体系统中生成前向纠错包的方法和用于发送和接收前向纠错包的方法及装置
KR20130008438A (ko) 2011-07-12 2013-01-22 한국전자통신연구원 멀티미디어 패킷 전송망에서 전방향 오류 정정 제어 방법
KR101995221B1 (ko) * 2011-11-24 2019-07-16 삼성전자주식회사 통신 시스템에서 패킷 송수신 장치 및 방법
US9490850B1 (en) * 2011-11-28 2016-11-08 Google Inc. Method and apparatus for decoding packetized data
KR102027916B1 (ko) 2012-02-27 2019-10-02 삼성전자주식회사 순방향 오류정정스킴을 사용하는 패킷 송수신 장치 및 방법
KR20130126876A (ko) 2012-04-30 2013-11-21 삼성전자주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
KR20130122552A (ko) 2012-04-30 2013-11-07 삼성전자주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
KR101983032B1 (ko) 2012-05-07 2019-05-30 삼성전자주식회사 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법
KR102093731B1 (ko) * 2013-10-22 2020-03-26 삼성전자주식회사 오류 정정 부호를 사용하는 통신 시스템에서 패킷 송수신 기법
KR20150050133A (ko) 2013-10-31 2015-05-08 삼성전자주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
KR102215085B1 (ko) 2013-12-23 2021-02-15 삼성전자주식회사 충전 기기 및 그 동작 방법
KR20150084632A (ko) * 2014-01-13 2015-07-22 삼성전자주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
JP6642464B2 (ja) 2017-01-19 2020-02-05 トヨタ自動車株式会社 ワーク払出し装置

Also Published As

Publication number Publication date
CN106134204B (zh) 2020-04-17
EP3096523A1 (en) 2016-11-23
EP3096523B1 (en) 2022-03-09
KR20160108830A (ko) 2016-09-20
KR102305410B1 (ko) 2021-09-29
US20160337076A1 (en) 2016-11-17
US20190028235A1 (en) 2019-01-24
US10153863B2 (en) 2018-12-11
US10498485B2 (en) 2019-12-03
US10985870B2 (en) 2021-04-20
CN106134204A (zh) 2016-11-16
US20200052816A1 (en) 2020-02-13
EP3096523A4 (en) 2017-09-13
JP2017509201A (ja) 2017-03-30

Similar Documents

Publication Publication Date Title
US10985870B2 (en) Method and device for transmitting and receiving packet in communication system
US9673933B2 (en) Method and apparatus for transmitting and receiving packet in a communication system
KR102048452B1 (ko) 멀티미디어 시스템에서 순방향 오류 정정 패킷을 생성하는 방법과 그 오류 정정 패킷을 송수신하는 방법 및 장치
US10958376B2 (en) Method and apparatus for transmitting and receiving packet in communication system
KR102148158B1 (ko) 통신 시스템에서 패킷 송수신 방법 및 장치
US10230646B2 (en) Method and apparatus for transmitting and receiving packets in broadcast and communication system
KR102163338B1 (ko) 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법
US9473264B2 (en) Apparatus and method for transmitting/receiving packet in communication system
EP3125455B1 (en) Method and apparatus for generating and recovering packet in broadcasting and/or communication system
KR20130122552A (ko) 통신 시스템에서 패킷 송수신 방법 및 장치
KR20150079399A (ko) 데이터 전송 디바이스 및 그 전송 방법