KR102027916B1 - 순방향 오류정정스킴을 사용하는 패킷 송수신 장치 및 방법 - Google Patents

순방향 오류정정스킴을 사용하는 패킷 송수신 장치 및 방법 Download PDF

Info

Publication number
KR102027916B1
KR102027916B1 KR1020120112032A KR20120112032A KR102027916B1 KR 102027916 B1 KR102027916 B1 KR 102027916B1 KR 1020120112032 A KR1020120112032 A KR 1020120112032A KR 20120112032 A KR20120112032 A KR 20120112032A KR 102027916 B1 KR102027916 B1 KR 102027916B1
Authority
KR
South Korea
Prior art keywords
payload
source
repair
block
packet
Prior art date
Application number
KR1020120112032A
Other languages
English (en)
Other versions
KR20130101967A (ko
Inventor
황성희
명세호
양현구
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US13/777,313 priority Critical patent/US9043682B2/en
Priority to EP13754486.2A priority patent/EP2820785B1/en
Priority to PCT/KR2013/001587 priority patent/WO2013129842A1/en
Priority to MX2014010252A priority patent/MX336523B/es
Priority to CN201380016464.5A priority patent/CN104205698B/zh
Priority to JP2014559828A priority patent/JP6628390B2/ja
Publication of KR20130101967A publication Critical patent/KR20130101967A/ko
Priority to US14/720,141 priority patent/US9425920B2/en
Priority to US15/243,055 priority patent/US10177784B2/en
Priority to JP2018150839A priority patent/JP6689511B2/ja
Application granted granted Critical
Publication of KR102027916B1 publication Critical patent/KR102027916B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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/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/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
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
    • 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
    • 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/0041Arrangements at the transmitter 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/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/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/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0084Formats for payload data
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/098Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
    • 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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] 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/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
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon 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/2957Turbo codes and decoding
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • 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

Abstract

본 발명은 방송 및 통신 시스템에서 패킷을 송수신하기 위한 방법 및 장치에 관한 것이다. 본 발명에 따른 방송 및 통신 시스템에서 패킷을 송신하기 위한 방법은, 주어진 소스 페이로드들을 포함하는 소스 블록을 구성하는 과정과, 상기 소스 블록에 포함된 소스 페이로드들을 선별하여 복수 개의 소스 부블록들을 구성하는 과정과, 상기 소스 블록에 속한 소스 페이로드들을 주어진 페이로드 크기 T와 m개의 영역으로 구분된 구조를 가지는 2차원 배열에 배치하여 정보 블록을 구성하는 과정과, 상기 정보 블록에 에러 정정 부호를 적용하여 상기 정보 블록에 연관된 패리티 블록을 구성하는 과정과, 상기 소스 부블록들 중 i번 째 소스 부블록에 속한 소스 페이로드들을 주어진 페이로드 크기 T(i)와 m(i)개의 영역으로 구분된 구조를 가지는 2차원 배열에 배치하여 i번 째 정보 부블록을 구성하는 과정과, 상기 정보 부블록에 에러 정정 부호를 적용하여 상기 정보 부블록에 연관된 패리티 블록을 구성하는 과정과, 상기 소스 블록 및 상기 패리티 블록에 포함된 페이로드에 에러 정정 헤더를 추가하여 에러 정정 소스 패킷과 에러 정정 패리티 패킷을 구성하는 과정과, 상기 에러 정정 소스 패킷과 상기 에러 정정 패리티 패킷을 포함하는 에러 정정 패킷을 전송하는 과정을 포함한다.

Description

순방향 오류정정스킴을 사용하는 패킷 송수신 장치 및 방법{APPARATUS AND METHOD FOR TRANSMITTING AND RECEIVING PACKETS WITH FORWARD ERROR CORRECTION SCHEMES}
본 발명은 방송 및/또는 통신 시스템에 관한 것으로, 특히, 방송 및/또는 통신 시스템에서 패킷의 송수신 장치 및 방법에 관한 것이다.
최근의 방송 및 통신 환경은 다양한 멀티미디어 컨텐츠(Contents)가 증가하고 있을 뿐만 아니라 고품질(High Definition: HD) 컨텐츠 또는 초고품질(Ultra High Definition: UHD) 컨텐츠들과 같은 고용량 컨텐츠들이 증가하고 있어 네트워크 상에서 데이터 혼잡(Data Congestion)은 점점 더 심화되고 있다. 이러한 데이터 혼잡으로 인하여 송신기(Sender, 예컨대 호스트(Host) A)가 보낸 컨텐츠들이 수신기(Receiver, 예컨대 호스트 B)에게 정상적으로 전달되지 않고, 컨텐츠의 일부가 경로(Route) 상에서 손실되는 상황이 발생한다. 많은 경우에 데이터는 패킷 단위로 전송되기 때문에 데이터 손실은 패킷 단위로 발생하게 된다. 이와 같은 네트워크 상의 데이터 손실로 인해 수신기는 데이터 패킷을 수신할 수 없게 됨으로써, 상기 손실된 패킷 내의 데이터를 알 수 없다. 따라서 오디오(Audio)의 품질 저하, 비디오(Video)의 화질 열화나 화면 깨짐, 자막 누락, 파일의 손실 등과 같은 다양한 형태의 사용자의 불편이 초래될 수 있다. 이와 같이 이유로 네트워크 상에서 발생된 데이터 손실을 복구하기 위한 기술이 필요하다.
네트워크 상에서 데이터가 손실됐을 때 수신 단에서 손실된 데이터를 복구할 수 있도록 지원하는 기술 중의 하나는, 소스 패킷이라 불리는 다양한 길이를 가질 수 있는 일정 개수의 데이터 패킷들로 소스 블록을 구성하고, 순방향에러정정(Forward Error Correction: FEC) 부호화를 통해 패리티(Parity) 데이터 또는 복구 패킷(Repair packet)과 같은 복구 정보를 소스 블록에 부가하는 기술이다. 수신기에서 손실된 데이터가 있을 경우, 상기 복구 정보를 이용하여 복호(decoding)를 수행할 수 있다.
이때 서로 다른 전송 신뢰도를 요구하는 복수의 컨텐츠들을 포함하는 패킷들이 상기 소스 블록에 포함될 수 있다. 이 경우에 하나의 소스 블록에 가장 높은 신뢰도(reliability)를 요구하는 패킷을 기준으로 복구 패킷의 양을 결정한다면, 낮은 신뢰도를 요구하는 패킷은 과보호되어 네트워크의 효율성을 해친다. 반대로 가장 낮은 신뢰도를 요구하는 패킷을 기준으로 복구 패킷의 양을 결정할 경우에는 높을 신뢰도를 요구하는 컨텐츠를 복원할 수 없다.
이러한 문제점을 해결하기 위하여 소스 블록을 분할하여 효율적으로 오류정정을 수행하는 방법이 필요하게 되었다. 또한 상대적으로 높은 신뢰도를 요구하는 패킷들을 하나 이상의 오류 정정부호를 사용하여 각각 생성된 패리티를 사용하여 보호하는 방법이 필요하게 되었다.
본 발명은 방송 및 통신 시스템에서 패킷을 송수신하기 위한 밴드 내 시그널링 방법 및 장치를 제공한다.
본 발명은 방송 및 통신 시스템에서 패킷에 포함된 데이터 손실 발생시 데이터를 효율적으로 복원하기 위한 방법 및 장치를 제공한다.
본 발명은 방송 및 통신 시스템에서 효율적으로 소스 블록을 분할하여 오류정정 능력 및 네트워크 효율성을 동시에 얻을 수 있는 방법 및 장치를 제공한다.
본 발명은 방송 및 통신 시스템에서 상대적으로 높은 신뢰도를 요구하는 패킷들을 하나 이상의 오류 정정부호를 사용하여 각각 생성된 패리티를 사용하여 보호하는 방법 및 장치를 제공한다.
본 발명의 일 실시 예에 따르는 통신 시스템에서 패킷 송신 방법은 본 발명에 따른 방송 및 통신 시스템에서 패킷을 송신하기 위한 방법은, 주어진 소스 페이로드들을 포함하는 소스 블록을 구성하는 과정과, 상기 소스 블록에 포함된 소스 페이로드들을 선별하여 복수 개의 소스 부블록들을 구성하는 과정과, 상기 소스 블록에 속한 소스 페이로드들을 주어진 페이로드 크기 T와 m개의 영역으로 구분된 구조를 가지는 2차원 배열에 배치하여 정보 블록을 구성하는 과정과, 상기 정보 블록에 에러 정정 부호를 적용하여 상기 정보 블록에 연관된 패리티 블록을 구성하는 과정과, 상기 소스 부블록들 중 i번 째 소스 부블록에 속한 소스 페이로드들을 주어진 페이로드 크기 T(i)와 m(i)개의 영역으로 구분된 구조를 가지는 2차원 배열에 배치하여 i번 째 정보 부블록을 구성하는 과정과, 상기 정보 부블록에 에러 정정 부호를 적용하여 상기 정보 부블록에 연관된 패리티 블록을 구성하는 과정과, 상기 소스 블록 및 상기 패리티 블록에 포함된 페이로드에 에러 정정 헤더를 추가하여 에러 정정 소스 패킷과 에러 정정 패리티 패킷을 구성하는 과정과, 상기 에러 정정 소스 패킷과 상기 에러 정정 패리티 패킷을 포함하는 에러 정정 패킷을 전송하는 과정을 포함할 수 있다.
본 발명의 일 실시 예에 따르면 효율적인 패킷 송수신 장치 및 방법을 제공할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시 예에 따른 송신기(100) 및 수신기(110)의 블록구성도이다.
도 2는 본 발명의 일 실시 예에 따른 송신기(100)의 FEC 부호화 블록(102)의 블록구성도이다.
도 3a 도 3b는 본 발명의 일 실시 예에 따르는 2단계(two-stage) 방식의 FEC 부호화 방법을 도시한다.
도 4는 미디어가 2개의 계층으로 구성되어있을 경우에 LA-FEC를 적용하기 위한 소스 블록 구성방법을 도시한 도면이다.
도 5는 본 발명의 일 실시 예에 따르는 상기 FEC 블록 생성부(220)의 정보어 블록 구성(ibg mode)에 대한 실시 예를 나타낸 도면이다.
도 6은 본 발명의 다른 실시 예에 따르는 상기 FEC 블록 생성부(220)의 정보어 블록 구성을 나타낸 도면이다.
도 7은 본 발명의 일 실시 예에 따르는 상기 FEC 블록 생성부(220)의 정보어 블록 구성에 대한 또 다른 실시 예를 나타낸 도면이다.
도 8a 및 도 8b는 FEC 소스 패킷의 구조를 도시한 도면이다. 도 8은 본 발명의 일 실시예에 따른 소스 패킷의 구조를 도시한 도면
도 9a 및 도 9b는 패리티 패킷의 구조를 도시한 도면이다.
도 10 및 도 11은 상기한 소스 페이로드 식별자와 패리티 페이로드 식별자의 구현을 도시한다.
도 12 및 도 13은 2단계 방식을 운용할 경우에 상기한 소스 페이로드 식별자와 패리티 페이로드 식별자의 구현을 도시한다.
이하 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
후술되는 본 발명의 실시 예들은 네트워크를 통해 고품질(HD) 컨텐츠 또는 초고품질(UHD) 컨텐츠들과 같은 고용량 컨텐츠 뿐만 아니라, 영상 회의 및/또는 영상 통화 등과 같은 다양한 멀티미디어 서비스를 송수신 할 수 있는 휴대폰, TV, 컴퓨터, 전자 칠판, 태블릿 및 전자책 등의 모든 전자 기기에 대해서 적용될 수 있다. 특히 데이터 패킷들에 FEC를 적용할 때 소스 블록을 소스 부블록으로 분할하고 정보 블록과 정보 부블록을 효율적으로 구성하여 복호 성능을 개선하거나 전송 효율 (transmission efficiency)을 높일 수 있는 방법이 제안된다. 본 명세서에서 구체적인 FEC 부호화 방법을 언급하고 있지는 않지만, 본 발명은 RS(Reed-Solomon) 부호, LDPC(Low Density Parity Check) 부호, 터보(Turbo) 부호, 랩터(Raptor) 부호, 랩터Q(RaptorQ) 부호, XOR (Single Parity-Check Code), Pro-MPEG(Moving Picture Experts Group) FEC 부호 등 여러 가지 부호화 방식 중 어느 하나 이상이 선택적으로 사용될 수 있다. 본 발명이 특정 FEC 방법으로 한정되지 않음에 유의하여야 한다.
먼저, 본 발명에서 사용될 용어를 정리하면 다음과 같다.
-FEC 부호: 에러(Error) 또는 이레이져 심볼(Erasure Symbol)을 정정하기 위한 오류 정정 부호.
-FEC 프레임(Frame): 보호하고자 하는 데이터를 FEC 부호화하여 생성된 코드워드(Codeword)로써 정보어 부분(information part)과 패리티 부분(parity part; repair part)로 구성됨.
-심볼(Symbol): 심볼은 데이터의 단위이고, 심볼 사이즈는 심볼을 구성하는 비트의 수를 의미함(A unit of data. Its size, in bits, is referred to as the symbol size.)
-소스 심볼(Source Symbol(s)): FEC 프레임 내 정보어 부분(information part)에서 보호되지 않는 데이터 심볼(들)(Unprotected data Symbol(s) which is the information part of a FEC Frame.)
-정보어 심볼(Information Symbol(s)): FEC 프레임 내 정보어 부분(information part)에서 보호되지 않는 데이터 또는 패딩 심볼(들)(Unprotected data or padding Symbol(s) which is the information part of a FEC Frame)
-코드워드(Codeword): 정보어 심볼(Information Symbol(s))을 FEC 부호화하여 생성된 FEC 프레임.
-패리티 심볼(Parity Symbol(s)): 정보어 심볼(Information Symbol(s))로부터 FEC 부호화에 의해 생성된 FEC 프레임의 패리티 심볼(parity Symbol(s))
-패킷(Packet): 헤더(Header)와 페이로드(Payload)로 구성된 전송 단위.
-페이로드(Payload): 송신자로부터 전송될, 패킷 내에 위치한 사용자 데이터(a piece of user data which is to be transmitted from the sender and which is placed inside of a packet).
-패킷 헤더(Packet Header): 페이로드를 포함하는 패킷을 위한 헤더.
-소스 페이로드(Source Payload): 소스 심볼들로 구성된 페이로드.
-정보어 페이로드(Information Payload): 정보어 심볼(Information Symbol)들로 구성된 페이로드.
-패리티 페이로드(Parity Payload): 패리티 심볼(parity Symbol)들로 구성된 페이로드.
-소스 블록(Source Block): 하나 이상의 소스 페이로드(Source payload)들로 구성된 페이로드들의 집합.
-정보어 블록(Information Block): 하나 이상의 정보어 페이로드(Information Payload)들로 구성된 페이로드들의 집합
-패리티 블록(Parity Block): 하나 이상의 패리티 페이로드(Parity payload)들을 구성된 페이로드들의 집합.
-FEC 블록(Block): 코드워드들의 집합 또는 정보어 블록(Information Block)과 패리티 블록(Parity Block)으로 구성된 페이로드들의 집합.
-FEC 전송 블록(Delivery Block): 소스 블록과 패리티 블록들로 구성된 페이로드들의 집합.
-FEC 패킷(Packet): FEC 블록을 전송하기 위한 패킷.
-소스 패킷(Source Packet): 소스 블록을 전송하기 위한 패킷.
-리페어 패킷(Repair Packet): 리페어 블록(Repair Block)을 전송하기 위한 패킷.
-FEC 패킷 블록(Packet Block): FEC 전송 블록을 전송하기 위한 패킷들의 집합
-MMT(MPEG Media Transport): MPEG 데이터를 효율적으로 전송하기 위하여 설계중인 국제 표준
-소스 흐름(Source Flow): 동일한 소스 흐름 ID를 가지는 소스 패킷 혹은 소스 페이로드의 시퀀스
-패리티 흐름(Parity Flow): 동일한 패리티 흐름 ID를 가지는 소스 패킷 혹은 소스 페이로드의 시퀀스
-FEC 흐름(Flow): 소스 흐름과 상기 소스 흐름을 보호하기 위하여 생성된 하나 이상의 패리티 흐름의 통칭
-MMT 에셋(Asset): 하나 또는 그 이상의 M 유닛으로 구성되는 데이터 엔티티. 구성 정보(composition information)와 전송 특성(transport characteristics)을 정의하기 위한 데이터 유닛.
-MMT 패키지(Package): 구성 정보와 전송 특성과 같은 추가적인 정보에 따라 하나 또는 그 이상의 MMT 에셋들로 구성되는 것.
도 1은 본 발명의 일 실시 예에 따른 송신기(100) 및 수신기(110)의 블록구성도이다.
도 1을 참조하면, 송신기(100)는 FEC 상위 프로토콜에 해당하는 프로토콜 A 블록(101), FEC 부호화 블록(102), FEC 하위 프로토콜에 해당하는 프로토콜 B 블록(103) 및 송신기 물리 계층 블록(104)을 포함한다.
상기 프로토콜 A 블록(101)은 전송 데이터를 소스 페이로드(source payload) (130) 형태로 구성하여 FEC 부호화 블록(102)에 전달한다. 상기 FEC 부호화 블록(102)은 상기 소스 페이로드의 군집인 소스 블록을 구성하고 FEC 부호화를 수행하여 패리티 페이로드(131)들을 생성하며 상기 소스 페이로드와 패리티 페이로드에 FEC 헤더(132)를 추가하여 FEC 패킷을 구성하고 프로토콜 B 블록(103)으로 전달한다. 이 때 상기 FEC 헤더와 결합된 소스 페이로드를 FEC 소스 패킷이라 하고, 상기 FEC 헤더와 결합된 패리티 페이로드를 FEC 패리티 패킷이라 한다. 상기 도 1에서 FEC 소스 패킷은 FEC 헤더와 소스 페이로드가 순차적으로 결합된 데이터 단위이지만 일부 구현에서는 소스 페이로드 이후에 FEC 헤더가 순차적으로 결합된 형태일 수 있다. 또한 상기 도 1에서 FEC 부호화 블록(102)은 프로토콜 A 블록(101)과 프로토콜 B 블록(103)의 사이에 위치하지만 일부 구현에서는 프로토콜 A 블록(101)이 FEC 부호화 블록(102)을 포함할 수 도 있다. 이 경우에 FEC 패리티 패킷에 프로토콜 A 블록(101)의 기능을 수행하기 위한 프로토콜 헤더가 포함될 수 있으며, 상기 프로토콜 A은 소스 패킷과 패리티 패킷을 하나의 패킷 흐름으로 만들기 위한 다중화기(multiplexer)를 포함할 수 있다.
송신기 물리 계층 블록(104)은 상기 FEC 패킷을 전송에 적합한 신호로 변환하여 전송한다. 상기 프로토콜 B 블록(103)과 송신기 물리 계층 블록(104) 사이에는 다양한 계층이 존재할 수 있으며, 그 구체적인 구성은 본 발명의 요지와 관계없으므로 생략한다.
수신기(110)는 수신기 물리 계층 블록(111)과 FEC 하위 프로토콜에 해당하는 프로토콜 B 블록(112)과 FEC 복호화 블록(113)과 FEC 상위 프로토콜에 해당하는 프로토콜 A 블록(114)을 포함한다.
상기 수신기 물리 계층 블록(111)은 전송 채널(120)을 통하여 수신된 신호를 해석하고, 이를 프로토콜 B 블록(112)으로 전달한다. 송신기(100)의 경우와 마찬가지로 상기 프로토콜 B 블록(112)과 수신기 물리 계층 블록(111) 사이에는 다양한 계층이 존재할 수 있으며, 그 구체적인 구성은 본 발명의 요지와 관계없으므로 생략한다. 프로토콜 B 블록(112)은 수신 신호 또는 패킷을 해석하여 수신 FEC 패킷들을 FEC 복호화 블록(113)으로 전달한다. 이 때 송신기에서 송신한 FEC 패킷 중 일부는 네트워크의 혼잡 및 물리 계층에서 발생한 오류의 영향으로 손실되어 FEC 복호화 블록(113)에 전달되지 못할 수 있다. 상기 FEC 복호화 블록(113)은 전달된 FEC 패킷에 대한 FEC 복호화를 수행하여 손실된 소스 페이로드들을 복원하고 이를 수신 페이로드와 함께 상위 프로토콜 A 블록(114)으로 전달한다.
도 2는 본 발명의 일 실시 예에 따른 송신기(100)의 FEC 부호화 블록(102)의 블록구성도이다. 도 2에서는 MMT(MPEG Media Transport) FECFRAME(102)을 이용하여 FEC 부호화 블록(102)을 구현하였다. 상기 MMT FECFRAME(102)은 하나의 FEC 흐름을 생성하기 위한 논리적/물리적 구성 요소이다. 따라서 전송단에서 2개 이상의 FEC 흐름을 운용할 경우에 각각의 FEC 흐름에 대하여 논리적 FECFRAME들은 독립적으로 생성되며, 물리적 FECFRAME은 시간 공유들을 사용하여 공유될 수 있음은 자명하다. 상기 MMT FECFRAME(102)은 FEC 전송정보와 소스 페이로드(Source Payload)를 입력으로 하여 밴드 외 신호(Out-band signal)와 FEC 패킷 블록을 출력한다. 상기 도 2에서 상기 FEC 전송정보는 제어부(210)와 FEC 블록 생성부(220)의 입력으로 표시되어 있지만, 전체 시스템의 관점에서 다른 구성 블록들도 상기 FEC 전송정보를 인지하고 그 동작에 활용할 수 있음은 자명하다.
MMT 표준은 상대적으로 높은 신뢰도를 요구하는 패킷들을 하나 이상의 오류 정정부호를 사용하여 보호하기 위한 2단계(two-stage) 방식을 채용하였다. 상기 2단계(two-stage) 방식에 따르면 MMT FECFRAME(102)은 미리 설정된 개수의 심볼(Symbol)들을 M(M은 1이상의 정수임)개의 제1 소스 심볼(Source Symbol)들로 분할하고, 각각의 제1 소스 심볼들에 대해 제1 FEC 부호화에 의해 생성되는 제1 리페어 심볼(Repair Symbol)들을 포함하는 제1 인코딩 심볼(Encoding Symbol)들을 생성한다. 그 후 MMT FECFRAME(102)은 M개의 제1 인코딩 심볼들을 제2 소스 심볼로 하여 제2 FEC 부호화에 의해 생성되는 제2 리페어 심볼들을 포함하는 제2 인코딩 심볼들을 생성한다. 상기의 제 1 FEC와 제 2 FEC는 동일한 오류 정정 코드를 사용하거나, 또는 서로 다른 오류 정정 코드를 사용할 수 있다. 사용될 수 있는 오류 정정 코드의 후보들로는 RS 코드, LDPC 코드, 터보 코드(Turbo Code), 랩터 코드(Raptor Code), XOR(eXclusive OR; 배타적 논리합)등 현재 알려진 코드 및 미래에 알려질 코드들이 사용될 수 있으며, 특정 코드로 제한되지는 않는다.
도 3a 도 3b는 본 발명의 일 실시 예에 따르는 2단계(two-stage) 방식의 FEC 부호화 방법을 도시한다. 도 3a는 M=1인 경우의 부호화 구조를 도시한 것이고, 도 3b는 M=8인 경우의 부호화 구조를 도시한 것이다.
계층 구조를 가진 미디어 데이터를 효율적으로 보호하기 위한 방법으로 계층인지 FEC (Layer-Aware FEC; LA-FEC)을 사용할 수 있다. 상기 계층 구조를 가진 미디어의 예로 Scalable Video Coding (SVC)나 Multiview Video Coding (MVC)를 사용하여 부호화된 콘텐츠를 들 수 있다.
도 4는 미디어가 2개의 계층으로 구성되어있을 경우에 LA-FEC를 적용하기 위한 소스 블록 구성방법을 도시한 도면이다. 상기 도 4에서 BR (base representation)은 미디어 코덱에서 독립적으로 복호 가능한 데이터이며 ER1 (Enhancement representation)은 BR에 종속되는 데이터이다. 상기 도 4에서 ER1을 위한 패리티를 생성할 때 BR을 함께 사용하는 점에 유의한다.
상기 도 2로 돌아와서, 제어부(210)는 FEC 전송정보를 입력으로 사용하여 제어정보 및 밴드 내 신호(In-band signal)와 밴드 외 신호를 출력한다. 상기 밴드 내 신호는 FEC 패킷의 일부로 포함되어 전송되는 제어정보이고 상기 밴드 외 신호는 별도의 패킷 또는 별도의 프로토콜 또는 별도의 채널을 통하여 전송되는 제어정보이다. 상기 밴드 외 신호의 전송 방법은 본 발명의 요지에 영향을 주지 않으므로 이에 대한 자세한 설명은 생략한다. 또한 상기 FEC 전송정보는 제어부(210)를 거치지 않고 MMT FECFRAME(102)에 포함되지 않은 별도의 제어기에서 처리되어 FEC 블록 생성부(220)와 FEC 패킷 생성부(240)의 입력으로 사용될 수 있으며 이 경우에 상기 도 2에서 상기 제어부(210)는 생략될 수 있다. 상기 제어정보는 FEC 블록의 생성에 필요한 정보로 FEC 부호화부(230)에서 요구하는 제어정보를 포함한다. 특정 FEC 부호는 패리티 생성과정에서 랜덤 생성기의 초기 값을 필요로 한다. 이 때 상위 계층에서 소스 페이로드에 부여한 일련 번호(sequence number)는 상기 랜덤 생성기의 초기 값으로 빈번하게 사용된다. 이 경우에 데이터의 흐름 과정을 고려할 때 MMT FECFRAME(102)에서 상위 계층의 페이로드 구조를 분석하여 필요한 값을 추출하는 것은 비효율적이므로, 상기 식별 숫자는 제어 정보의 형태로 MMT FECFRAME(102)에 입력되고 FEC 부호의 제어 신호로만 사용되며, 밴드 내 신호나 밴드 외 신호로 출력되지 않는다.
상기 FEC 전송정보는 MMT 에셋에 대한 전송 특성을 포함할 수 있으며, MMT FECFRAME(102)을 포함하는 애플리케이션 및 프로토콜에 따라 달라질 수 있다.
상기 도 2에서 FEC 블록 생성부(220)는 소스 페이로드들과 제어정보를 입력으로 하여 패리티 페이로드(Parity Payload) 와 소스 페이로드 식별자(Source Payload ID) 및 패리티 페이로드 식별자(Parity Payload ID)를 출력한다. 상기 패리티 페이로드를 획득하기 위하여 상기 FEC 블록 생성부(220)는 소스 페이로드를 그룹핑하여 소스 블록을 생성하고 이를 프로세싱하여 동일한 길이를 가지는 정보어 페이로드로 구성된 정보어 블록을 생성하여 FEC 부호화부(230)로 전달한다. 상기 소스 페이로드 식별자 및 패리티 페이로드 식별자는 서로 다른 페이로드들을 식별하기 위하여 필요한 식별정보이다. 상기 소스 페이로드 식별자는 MMT FECFRAME을 포함하는 계층 혹은 차상위 계층에서 소스 페이로드를 구별할 수 있는 식별정보가 존재할 경우에는 생략될 수 있다. 또한 FEC 부호화부(230)에 구현에 따라 소스 페이로드 식별자 및 패리티 페이로드 식별자는 FEC 부호화부(230)의 입력으로 사용될 수도 있다.
도 5는 본 발명의 일 실시 예에 따르는 상기 FEC 블록 생성부(220)의 정보어 블록 구성(ibg mode)에 대한 실시 예를 나타낸 도면이다.
도 5를 참조하면, FEC 블록 생성부(220)는 가변 패킷 사이즈를 가지는 8개의 소스 페이로드들, 즉 SPL #0 내지 SPL #7을 입력받는다. FEC 블록 생성부(220)는 소스 페이로드들을 입력받으면, 각각의 페이로드 크기를 최대 길이, 예를 들어 Smax를 가지는 페이로드와 동일하게 하기 위해 패딩 데이터를 추가한 후 8개의 정보어 페이로드들, 즉 IPL#0 내지 IPL#7로 구성된 정보어 블록을 생성한다. 도 4의 실시 예에서는 소스 페이로드의 최대 길이 Smax와 정보어 페이로드의 길이를 동일하게 설정하였지만, 정보어 페이로드의 길이는 시스템 복잡도 및 메모리 요구사항에 따라 Smax보다 작은 값을 가질 수 있다.
도 6은 본 발명의 다른 실시 예에 따르는 상기 FEC 블록 생성부(220)의 정보어 블록 구성을 나타낸 도면이다.
도 6을 참조하면, FEC 블록 생성부(220)는 가변 패킷 사이즈를 가지는 8개의 소스 페이로드들, 즉 SPL #0 내지 SPL #7을 입력받는 다. FEC 블록 생성부(220)는 소스페이로드들을 입력받으면, 각각의 페이로드 크기를 일렬로 배열한 후 정보어 페이로드의 최대 길이, 예를 들어 Smax를 단위로 분할하여 5개의 정보어 페이로드들, 즉 IPL#0 내지 IPL#4로 구성된 정보어 블록을 생성한다. 이 때 마지막 정보어 페이로드에는 패딩 데이터가 포함될수 있는 점에 유의한다. 도 6의 실시 예에 따르면 소스 블록의 경계와 정보어 페이로드의 경계가 일치하지 않으므로 각 소스 페이로드의 길이 등의 정보, 즉 정보어 블록에서 소스 페이로드를 추출하기 위하여 필요한 정보들을 정보어 블록에 포함시키거나 별도의 방식으로 수신단에 전달하여야 한다. 또한, 도 6의 실시 예에서는 소스 페이로드의 최대 길이 Smax와 정보어 페이로드의 길이를 동일하게 설정하였지만, 정보어 페이로드의 길이는 시스템 복잡도 및 메모리 요구사항에 따라 Smax보다 작은 값을 가질 수도 있다.
도 7은 본 발명의 일 실시 예에 따르는 상기 FEC 블록 생성부(220)의 정보어 블록 구성에 대한 또 다른 실시 예를 나타낸 도면이다.
도 7을 참조하면, 상기 FEC 블록 생성부(220)는 심볼 크기 T를 가지는 2차원 배열을 T/m개의 열 단위로 m개의 영역으로 구분한다. 도 7은 m=4인 경우의 예를 도시하였다. 만일 T가 m의 배수가 아닌 경우에 각 영역은 [T/m] + 1개의 열들로 이루어진 영역들과 [T/m]개의 열들로 이루어진 영역들로 나누어진다. 여기서 임의의 실수 A에 대해 [A]는 A 보다 작거나 같은 최대 정수를 의미한다. 각 영역이 얼마나 많은 열을 포함하는지에 대한 설정은 송수신기간에 정해진 약속에 의해 정의되거나 또는 각각의 영역에 대한 열의 개수를 나열하여 나타낼 수 있다.
상기 정해진 약속의 예를 들면 T를 m으로 나눈 나머지가 n(n<m)이라 했을 때 첫 번째 n개의 영역은 [T/m]+1개의 열로 나누어 지고 나머지 m-n개의 영역은 [T/m]개의 열로 나누어지는 것과 같이 정해질 수 있다. 또한 상기한 규칙적인 영역의 구분 외에도 각 영역을 이루는 열의 개수는 송/수신기의 약속에 따라 서로 다르게 임의로 설정될 수도 있다.
필요할 경우에 플로우 ID(예를 들어 UDP(User Datagram Protocol) 플로우 ID)와 같은 패킷의 특성 정보(701)와 소스 페이로드의 길이를 나타내는 정보(702)가 소스 페이로드에 덧붙여진다. 정보(701, 702)가 부가된 소스 페이로드들은 첫 번째 행(row)의 첫 번째 열부터 심볼 크기 T를 넘지 않게 순차적으로 배치된다.
이때 부가 정보가 덧붙은 임의의 소스 페이로드가 배치된 마지막 행에서 해당 소스 페이로드의 마지막 데이터가 할당되어 있는 영역 내의 나머지 부분은 항상 소정의(predetermined) 값으로 할당(혹은 설정)한다. 상기 소정의 값은 편의상 0 값으로 설정될 수 있지만 본 발명이 반드시 이에 한정될 필요는 없다. 예를 들어 상기 도 7에서 첫 번째 소스 페이로드의 마지막 데이터가 4개의 영역 중에서 2번째 영역에 할당되어 있으므로 2번째 영역의 나머지 부분(705)은 0값으로 할당한다.
또한 부가 정보가 덧붙은 하나의 소스 페이로드가 배치된 이후 그 다음으로 배치할 소스 페이로드는 항상 이전 소스 페이로드가 배치된 마지막 행에서 마지막 데이터가 할당되어 있는 영역의 그 다음 영역의 시작점에서부터 배치된다. 다시 말해서 모든 소스 페이로드는 어떤 영역의 시작점에서부터 배치되어야 한다. 예를 들어 도 3에서 두 번째 소스 페이로드는 제로 패딩된(705) 데이터 다음의 3번째 영역의 시작점에서부터 배치되기 시작한다. 만일 네 번째 소스 페이로드의 제로 패딩 부분(706)과 같이 제로 패딩된 데이터가 해당 행의 마지막 영역에 할당되어 있을 경우, 다음 다섯 번째 소스 페이로드는 다음 행의 첫 번째 영역에서 시작한다. 주어진 소스 페이로드들에 대해 상기 과정들을 모두 마친 후 완성된 배열이 정보 블록이 된다.
MMT 시스템과 같이 복수의 정보어 블록 구성 방식을 사용할 경우에는 해당 정보어 블록이 어떤 방식을 사용하여 구성되었는지를 나타내는 ibg_mode 등의 식별자를 수신기에 전달하여야 한다.
상기 2단계(two-stage) 방식을 운용할 경우에 정보어 블록 구성 과정은 다음과 같다. 소스 블록이 M개의 부블록(Sub Block)으로 구성된다고 가정하자. 상기 부블록 중에서 첫 번째 부블록에 속한 소스 페이로드를 사용하여 첫 번째 정보 정보어 부블록를 생성하고 이를 FEC 부호화부(230)에 전달한다. 상기 FEC 부호화부(230)는 상기 정보어 부블록을 사용하여 패리티 페이로드를 생성하고 이를 FEC 블록 생성부(220)에 전달한다. 이 후 2번째부터 부블록부터 M번째 부블록을 사용하여 동일한 과정을 순차적으로 반복한다. 모든 부블록에 대한 패리티 페이로드를 생성한 이후에, 상기 첫 번째 정보어 부블록부터 상기 M번째 부블록까지 모든 정보어 부블록을 결합하여 정보어 블록을 구성하고 이를 FEC 부호화부(230)에 전달한다. 상기 FEC 부호화부(230)는 상기 정보어 블록을 사용하여 패리티 페이로드를 생성하고 이를 FEC 블록 생성부(220)에 전달한다. 상기 과정을 수행한 이후에 상기 M개의 정보어 부블록으로부터 생성된 모든 패리티 페이로드와 상기 정보어 블록으로부터 생성된 패리티 페이로드를 함께 패킷 생성부(240)로 전달한다.
상기 계층인지 FEC(LA-FEC) 방식을 운용할 경우에 정보어 블록 구성 과정은 다음과 같다. 미디어가 M개의 계층을 가지며 i번 째 계층은 1, 2, ..., i-1 번째 계층에 종속되어있다고 가정하자. 이 때 소스 블록은 M개의 부블록(Sub Block)으로 구성되며, i번 째 부블록은 i번째 계층의 데이터에 해당된다. 상기 부블록 중에서 첫 번째 부블록에 속한 소스 페이로드를 사용하여 첫 번째 정보 정보어 부블록를 생성하고 이를 FEC 부호화부(230)에 전달한다. 상기 FEC 부호화부(230)는 상기 정보어 부블록을 사용하여 패리티 페이로드를 생성하고 이를 FEC 블록 생성부(220)에 전달한다. 이 후 첫 번째 정보어 부블록과 2번 째 정보어 부블록을 결합하여 정보어 블록을 구성하고 이를 FEC 부호화부(230)에 전달한다. 상기 FEC 부호화부(230)는 상기 정보어 블록을 사용하여 패리티 페이로드를 생성하고 이를 FEC 블록 생성부(220)에 전달한다. 동일한 과정을 순차적으로 반복하면 마지막으로 상기 첫 번째 정보어 부블록부터 상기 M번째 부블록까지 모든 정보어 부블록을 결합하여 정보어 블록을 구성하고 이를 FEC 부호화부(230)에 전달한다. 상기 FEC 부호화부(230)는 상기 정보어 블록을 사용하여 패리티 페이로드를 생성하고 이를 FEC 블록 생성부(220)에 전달한다. 상기 과정을 수행한 이후에 상기 M개의 정보어 부블록으로부터 생성된 모든 패리티 페이로드와 상기 정보어 블록으로부터 생성된 패리티 페이로드를 함께 FEC 패킷 생성부(240)로 전달한다.
상기 도 2에서 FEC 부호화부(230)는 상기 정보어 블록을 입력으로 정해진 FEC 부호화 알고리즘을 사용하여 패리티 심볼을 계산하고 상기 패리티 심볼로 구성된 패리티 페이로드를 생성하여 상기 패리티 페이로드를 패리티 블록의 형태로 출력한다. 특정한 구현에 있어서 FEC 부호화 알고리즘은 고정된 개수의 정보어 심볼을 입력으로 고정된 개수의 패리티 심볼의 값을 계산한다. 이 경우에 상기 FEC 부호화부(230)는 부가적인 제어정보를 요구하지 않는다. 또 다른 구현에 있어서 FEC 부호화 알고리즘이 정보 심볼의 수와 패리티 심볼의 수 및 정보어 심볼과 패리티 심볼의 관계에 대한 FEC 부호화 정보를 요구할 수 있다. 상기 FEC 부호화 정보는 FEC 전송 정보의 일부로 FEC 블록 생성부(220)에서 상기 FEC 부호화부(230)로 전달될 수도 있지만, 앞서 언급한 바와 같이 전체 시스템의 관점에서 다른 MMT FECFRAME(102)의 모든 구성 블록들은 상기 FEC 전송정보를 인지하고 그 동작에 활용할 수 있음은 자명하다.
상기 도 2에서 FEC 패킷 생성부(240)는 소스 페이로드 혹은 패리티 페이로드와 소스 페이로드 식별자 혹은 패리티 페이로드 식별자와 밴드 내 신호(in-band signals)로 구성된 FEC 패킷을 생성하고 이를 FEC 패킷 블록 의 형태로 출력한다. 상기 도 2에서 소스 혹은 패리티 페이로드 식별자와 밴드 내 신호를 별도의 정보로 표현하였지만, 밴드 내 신호가 소스 혹은 패리티 페이로드 식별자를 포함하고 있다고 간주하여도 무방하다.
MMT 시스템에서 소스 페이로드는 MMT 페이로드 포맷(Payload Format; PF) 혹은 MMT 전송 패킷(Transport Packet; TP)이다. 상기 PF는 MMT의 첫 번째 전송 계층인 D1 프로토콜의 출력이며 상기 TP는 MMT의 두 번째 전송 계층인 D2 프로토콜의 출력이다. 상기 D1 프로토콜의 입력을 D1 Payload라 한다. 상기 D1 프로토콜과 D2 프로토콜은 각각의 헤더를 가진다.
도 8a 및 도 8b는 FEC 소스 패킷의 구조를 도시한 도면이다. 도 8a는 소스 페이로드가 MMT PF일 경우를 도시한 도면이며, 도 8b는 소스 페이로드가 MMT TP일 경우를 도시한 도면이다. 상기 도 8a, 도 8b에서 빗금친 부분이 FEC에 의해 보호되는 데이터 즉, 소스 페이로드를 의미한다. 상기 도 8a 및 도 8b에서 FEC 밴드 내 신호 (FEC in-band signals)의 위치를 프로토콜 패킷 구조의 일관성을 유지하고 소스 패킷 내에서 소스 페이로드가 연속적으로 위치하도록 하기 위하여 FEC 소스 패킷의 마지막 부분으로 설정하였다. 소스 페이로드가 MMT PF일 경우 D1 헤더 및 D1 페이로드가 소스 페이로드이다. 소스 페이로드가 MMT TP일 경우 D2헤더, D1 헤더 및 D1 페이로드소스 페이로드이다.
FEC 패리티 패킷은 하나 혹은 그 이상의 패리티 페이로드를 전달한다. 상기 패리티 페이로드는 PF 혹은 TP로 구성된 정보어 블록의 복원에 사용된다.
도 9a 및 도 9b는 패리티 패킷의 구조를 도시한 도면이다. 도 9a는 소스 페이로드가 MMT PF일 경우를 도시한 도면이며, 도 9b는 소스 페이로드가 MMT TP일 경우를 도시한 도면이다. 상기 도 9a, 도 9b에서 빗금친 부분이 정보어 블록을 복원하기 위하여 사용되는 데이터 (패리티 페이로드)를 의미한다. 상기 도 9에서 FEC 밴드 내 신호 (FEC in-band signals)의 위치를 수신단에서 FEC 관련 정보를 빠르고 쉽게 획득하게 하기 전송 프로토콜 헤더와 패리티 페이로드의 사이에 위치하도록 설정하였다. 소스 페이로드가 MMT TP일 때 패리티 페이로드의 역할은 MMT TP로 구성된 정보어 블록을 복원하는 것으로 끝나므로 상기 도 9b에서 FEC 패리티 패킷은 D1 헤더를 포함하지 않는 것에 유의한다. 상기 2단계(two-stage) 방식을 운용하고 상기 FEC 패리티 패킷이 제1 FEC에 부호화에 의해 생성된 패리티 페이로드를 포함할 경우에는 상기 패리티 패킷을 제1 FEC 패리티 패킷이라 칭하고, 제2 FEC에 부호화에 의해 생성된 패리티 페이로드를 포함할 경우에는 상기 패리티 패킷을 제2 FEC 패리티 패킷이라 칭한다. 상기 2단계 방식에서 M=1이고 제1 FEC 부호가 패리티가 없는 부호일 경우에는 1단계 방식과 동일하므로 이 경우에는 상기 제2 FEC 패리티 패킷을 FEC 패리티 패킷으로 간주할 수 있다.
본 발명의 실시 예에 의한 소스 페이로드 식별자 및 패리티 페이로드 식별자의 생성방법을 설명하기 위하여 몇 가지 기호를 하기와 같이 정의하자.
- k: 하나의 소스 블록에 포함된 소스 페이로드의 개수
- M: 소스 블록을 구성하는 소스 부블록의 개수
- k(i): i 번째 소스 부블록에 포함된 소스 페이로드의 개수
- S(j): 소스 흐름을 구성하는 j 번 째 소스 페이로드의 길이
- Smax = max {S(j)}
- T: 정보 페이로드의 길이
- A(j) = ceil (S(j)/T), ceil(x)는 x보다 크거나 같은 최소 정수
- K: 정보어 블록에 포함된 정보 페이로드의 개수
- K(i): i 번 째 정보어 부블록에 포함된 정보 페이로드의 개수
- P: 정보어 블록을 보호하기 위한 패리티 블록에 포함된 패리티 페이로드의 개수
- P(i): i 번 째 정보어 부블록을 보호하기 위한 패리티 블록에 포함된 패리티 페이로드의 개수
- B: 하나의 패리티 패킷에 포함된 패리티 페이로드의 개수
- p: 소스 블록을 보호하기 위하여 생성된 패리티 블록을 전송하기 위하여 필요한 패리티 패킷의 개수 ( = ceil(P/B))
- p(i): i 번 째 소스 부블록을 보호하기 위하여 생성된 패리티 블록을 전송하기 위하여 필요한 패리티 패킷의 개수 ( = ceil(P(i)/B))
본 발명의 실시 예에 의한 소스 페이로드 식별자와 패리티 페이로드 식별자는 각각 표 1 및 표 2와 같다.
ESI_SN
ESI_SN_Base
ESI_SN_Base
ESI_P
IBL
PBL
상기 <표 1>과 <표 2>에서 각 필드의 의미는 다음과 같다.
- ESI_SN (Encoding Symbol ID Sequence Number): 소스 패킷에 포함된 정보 페이로드의 일련번호를 의미한다. 현재 패킷과 다음 패킷의 ESI_SN의 차이는 현재 패킷에 포함된 정보 페이로드의 개수와 같다. 상기 일련 번호의 초기 값은 랜덤하게 생성된 임의의 값으로 설정할 수 있으며 2 바이트 혹은 그 이상의 정해진 길이의 바이트로 표현할 수 있는 정수의 최대값에 도달한 이후에는 0으로 회귀한다.
- ESI_SN_Base: 소스 패킷에서 이 필드는 선택적으로 사용할 수 있다. 소스 패킷에 상기 필드가 포함될 경우에 상기 필드는 상기 패킷이 속한 소스 블록의 첫 번째 소스 패킷의 ESI_SN과 동일한 값을 가지며 이는 상기 소스 패킷이 속한 소스 블록의 경계 정보에 해당한다. 제1 FEC 패리티 패킷에 포함된 상기 필드는 상기 패리티 패킷에 포함된 패리티 페이로드들에 의하여 보호되는 소스 부블록에 속한 첫 번째 소스 패킷의 ESI_SN 값으로 설정된다. 제2 FEC 패리티 패킷에 포함된 상기 필드는 상기 패리티 패킷에 포함된 패리티 페이로드들에 의하여 보호되는 소스 블록에 속한 첫 번째 소스 패킷의 ESI_SN 값으로 설정된다.
- ESI_P: 패리티 패킷에 포함된 패리티 페이로드의 일련 번호를 의미한다. 각각의 패리티 블록 내에서 상기 필드는 0부터 시작되어 1씩 증가하는 값이며, 하나의 패리티 패킷이 복수의 패리티 페이로드를 포함할 경우에는 상기 복수개의 패리티 페이로드들의 일련 번호 중 최소값을 표시한다.
- IBL: 패리티 패킷에 속한 패리티 페이로드(들)이 보호하는 정보어 (부)블록에 포함된 정보 페이로드의 개수를 의미한다.
- PBL: 패리티 패킷에 포함된 패리티 페이로드(들)이 속한 패리티 블록을 구성하는 패리티 페이로드의 개수를 의미한다. 이 필드는 FEC 부호의 특성에 따라 필요하지 않을 수 있다. 보다 구체적으로 설명하면, 이론적으로 무한개의 패리티 페이로드를 생성할 수 있는 파운틴 부호의 경우에는 상기 필드가 필요하지 않지만 통산적인 (N, K) 블록 부호의 경우에는 상기 필드가 반드시 필요하다.
도 10 및 도 11은 상기한 소스 페이로드 식별자와 패리티 페이로드 식별자의 구현을 도시한다. 도 10은 파운틴 부호를 사용할 경우를 도시하고 도 11은 블록 부호를 사용할 경우를 도시한다. 도 10의 패리티 페이로드 식별자에서 P가 생략된 점에 유의한다.
도 12 및 도 13은 2단계 방식을 운용할 경우에 상기한 소스 페이로드 식별자와 패리티 페이로드 식별자의 구현을 도시한다. 도 12는 파운틴 부호를 사용할 경우를 도시하고 도 13은 블록 부호를 사용할 경우를 도시한다. 도 12의 패리티 페이로드 식별자에서 P가 생략된 점에 유의한다.
상기 도 10, 11, 12, 13에서 각 필드의 생성 규칙은 다음과 같다.
- j=0이면 ESI_SN = RN, 그 밖의 경우 ESI_SN = ESI_SN_pre + A(j-1) 여기서 RN은 랜덤 숫자 또는 0이고 ESI_SN_pre는 이전 소스 패킷의 ESI_SN이다. (ESI_SN = RN if j = 0, otherwise ESI_SN_pre + A(j - 1) where RN is a random number or 0 and ESI_SN_pre is ESI_SN of the previous Source Packet)
- ESI_SN_Base = FEC 패리티 패킷을 포함하는 패리티 블록에 연관된 소스/서브블록의 최초 소스 페이로드의 ESI_SN(ESI_SN of the first Source Payload of Source/Sub- Block associated to the Parity Block which includes the FEC Parity Packet)
- ESI_P = r*B, 여기서 r = 0, 1, 2, ..., p-1
- FEC 패리티 패킷을 포함하는 패리티 블록이 소스 블록의 i번째 서브블록을 위한 것이라면 IBL = K(i), 그 밖의 경우 IBL=K (IBL = K(i) if the Parity Block which includes the FEC Parity Packet is for ith Sub-Block of the Source Block, otherwise K)
- FEC 패리티 패킷을 포함하는 패리티 블록이 소스 블록의 i번째 서브블록을 위한 것이라면 PBL = P(i), 그 밖의 경우 PBL=P (PBL = P(i) if the Parity Block which includes the FEC Parity Packet is for ith Sub-Block of the Source Block, otherwise P)
앞선 도면은 FEC 패킷 내에서의 FEC 식별자를 후미에 배치하였다. 하지만, 본 발명은 이에 한정되지 않고 FEC 소스 패킷을 위해서는 FEC 식별자를 후미에, FEC 패리티 패킷을 위해서는 FEC 식별자를 선두에 배치할 수도 있다. 혹은 두 경우 모두 FEC 식별자를 선두에 배치할 수 있다. 또한 도시하지는 않지만, FEC 페이로드 식별자 형식 (FEC Payload ID Format)은 FEC 흐름 식별자 (FEC Flow Identifier)를 포함할 수 도 있다. FEC 미 적용 시는 밴드 외 신호(Out-band signaling)에 의해 FEC 미 적용 사실을 알려주면 되므로 FEC 흐름 식별자도 사실상 불필요하다. 그러므로 모든 소스 흐름에 FEC가 적용되는 경우 그 사실을 밴드 외 신호(Out-band)로 알려주고 밴드 내 신호(In-band)로는 FEC 식별자 형식에 FEC 흐름 식별자를 포함하여 전송하는 것도 가능하다. 만일 모든 소스 흐름에 FEC를 적용하는 것이 아니라면 소스 페이로드를 위한 헤더 또는 하위 계층 프로토콜 헤더 에 FEC 플래그(Flag)를 두어 FEC 페이로드 식별자의 존재 여부를 나타낸 후 FEC 페이로드 식별자가 존재하는 경우 FEC 흐름 식별자와 함께 나타내어 전송하는 것이 가능하다. 이 경우 수신기는 FEC 페이로드 식별자로부터 FEC 흐름 식별자 별로 FEC 패킷들을 분류하여 동일한 FEC 흐름 식별자를 가지는 FEC 패킷 블럭들에서 해당 FEC 블록을 복호하여 손실된 소스 페이로드를 복구하면 된다.
상기 실시 예에서 송신기의 FEC 부호화 과정은 다음과 같다. 전송할 미디어 콘텐츠(들)을 소스 페이로드 단위로 나누어 소스 페이로드들의 시퀀스로 만드는데 소스 페이로드들의 시퀀스를 FEC 보호 여부, 적용할 FEC 유형(Type), FEC 코딩 구조(coding structure), 미디어의 특성 또는 QoS(Quality of Service - lossy or lossless)에 따라 소스 흐름을 구분하고 각각의 소스 흐름에 FEC 흐름 식별자(Flow Identifier)를 부여한다. 이 때 각각의 소스 흐름에 대한 FEC 흐름 식별자는 소스 흐름을 전송하기 위한 패킷 내에 저장하여 전송하여 수신기가 알게 하는 것이 필요하다. 예를 들어 FEC 흐름 식별자 = 0이면 FEC 보호가 적용되지 않는 경우를 말하고 0이 아니면 FEC 보호가 적용됨을 나타낸다. 물론 그 값에 따라 다른 FEC 보호 방법이 적용될 수 있다.
송신기는 각각의 FEC 흐름 식별자의 값에 따른 FEC 보호 여부, 적용된 FEC 유형, FEC 코딩 구조, 정보어 페이로드 크기(Information Payload Size) T, ibg_mode 등을 밴드 외 신호(Out-band signaling)로 수신기에게 전송한다. 송신기는 이를 통해 수신기가 신호를 수신할 때 FEC 흐름 식별자를 이용하여 상술한 정보들을수신기가 획득할 수 있도록 한다. 이 때 송신기는 SDP(Session Description Protocol)를 이용하여 세션 셋업(Session Set-up)시 이러한 정보를 전송하거나 또는 FEC 패킷과는 별도의 패킷을 활용하여 전송할 수 있다.
송신기는 FEC 흐름 식별자에 맞는 FEC 인코딩을 해당 소스 흐름에 적용한다. 이를 위하여 송신기는 소스 흐름을 소정의 소스 블록으로 나눈다. 송신기는 상기 소스 블록을 각각 적용된 FEC 코딩 구조(1단계 또는 2단계; One stage or Two stages)와 ibg_mode에 맞게 정보어 (부)블록(Information (Sub-)Block)으로 전환한다. 송신기는 적용하고자 하는 FEC 코드(들)를 사용하여 정보어 (부)블록으로 부터 패리티 블록(들)을 생성한다. 송신기는 소스 블록과 생성된 패리티 블록을 전송을 위한 FEC 패킷 블록으로 구성하는데 각각의 FEC 패킷은 FEC 흐름 식별자, FEC 페이로드 식별자, 페이로드 유형 정보를 포함한다. 송신기는 페이로드 유형 정보는 해당 FEC 패킷이 소스 패킷인지, 패리티 패킷인지를 구분하다. 송신기는 또한 2단계 FEC 코딩이 적용된 경우 패리티 1인지 패리티 2인지를 추가적으로 구분한다. 송신기는 FEC 패킷 블록을 네트워크을 통해 전송한다.
상기 실시 예에서 수신기의 FEC 복호 과정은 다음과 같다. 수신기는 송신기가 밴드 외 신호로 전송한 소스 흐름 별 FEC 흐름 식별자와 그에 따른 FEC 보호 여부, FEC 유형, FEC 코딩 구조, 정보어 페이로드 크기 T, ibg_mode 등을 파악하고 FEC 디코딩을 위해 사전 준비 한다. 수신기는 이후 수신된 FEC 패킷들로부터 동일한 FEC 흐름 식별자를 가지는 FEC 패킷들을 분류한다. 수신기는 상기 FEC 흐름 식별자별로 분류된 FEC 패킷 내의 페이로드 유형 정보를 사용하여 해당 FEC 패킷이 FEC 소스 패킷인지 FEC 패리티 패킷인지를 구분한다. 2단계 FEC 코딩이 적용된 경우 필요 시 수신기는 FEC 패리티 패킷이 패리티1인지 패리티2인지를 추가적으로 구분한다. 수신기는 해당 FEC 패킷이 FEC 소스 패킷이면 소스 FEC 페이로드 ID로 부터 ESI_SN을 인식하고 FEC 패리티 패킷이면 패리티 FEC 페이로드 ID로 부터 ESI_SN_Base, ESI_P, IBL, (PBL)등을 인식한다. 수신기는 인식된 FEC 페이로드 ID 및 사전에 인식된 정보어 페이로드 크기 T와 ibg_mode에 따라 FEC 패킷의 페이로드(소스 또는 패리티)들을 해당하는 정보어 블록 또는 패리티 블록 중의 올바른 위치에 배치하여 FEC 디코딩을 위한 수신된 FEC 블록을 생성한다. 수신기는 생성된 FEC 블록에 적용된 FEC 코드를 사용하여 디코딩을 수행하여 전송 도중 손실된 소스 페이로드에 해당하는 정보어 페이로드들을 복원한다. 수신기는 복원된 정보어 페이로드들로부터 패딩 데이터(Padding data)가 추가되어 있으면 패딩 데이터를 제거하여 최종적으로 소스 페이로드들을 복원한다. 만약 수신기가 상기 도 5에 도시된 정보 블록 구성 방식을 사용하고 소스 페이로드들을 위한 길이 필드들이 FEC 블록과는 별도로 구성된 경우 길이 필드를 위한 FEC 블록을 디코딩하여 각각의 소스 페이로드에 대한 길이 정보를 알 수 있어 복원된 정보어 페이로드로 부터 패딩 데이터를 제거할 수 있다.
상기 <표 1>과 <표 2>에 나타낸 각 필드 생성 규칙의 다른 실시 예는 다음과 같다.
- j=0이면 ESI_SN = RN, 그 밖의 경우 ESI_SN = ESI_SN_pre + A(j-1) 여기서 RN은 랜덤 숫자 또는 0이고 ESI_SN_pre는 이전 소스 패킷의 ESI_SN이다. (ESI_SN = RN if j = 0, otherwise ESI_SN_pre + A(j - 1) where RN is a random number or 0 and ESI_SN_pre is ESI_SN of the previous Source Packet)
- ESI_SN_Base
-- 소스 패킷의 경우: FEC 소스 패킷을 포함하는 소스 블록의 최초 소스 페이로드의 ESI_SN(ESI_SN of the first Source Payload of Source Block which includes the FEC Source Packet)
-- 패리티 패킷의 경우: FEC 패리티 패킷을 포함하는 패리티 블록에 연관된 소스/서브블록의 최초 소스 페이로드의 ESI_SN(ESI_SN of the first Source Payload of Source/Sub- Block associated to the Parity Block which includes the FEC Parity Packet)
- ESI_P = r*B, 여기서 r = 0, 1, 2, ..., p-1
- FEC 패리티 패킷을 포함하는 패리티 블록이 소스 블록의 i번째 서브블록을 위한 것이라면 IBL = K(i), 그 밖의 경우 IBL=K (IBL = K(i) if the Parity Block which includes the FEC Parity Packet is for ith Sub-Block of the Source Block, otherwise K)
- FEC 패리티 패킷을 포함하는 패리티 블록이 소스 블록의 i번째 서브블록을 위한 것이라면 PBL = P(i), 그 밖의 경우 PBL=P (PBL = P(i) if the Parity Block which includes the FEC Parity Packet is for ith Sub-Block of the Source Block, otherwise P)
상기 도 6에 도시한 정보어 블록 생성 방법을 사용할 경우에는 다음 필드가 FEC 패리티 페이로드 식별자에 포함될 수 있다.
- SBL: 패리티 패킷에 속한 패리티 페이로드(들)이 보호하는 소스 (부)블록에 포함된 소스 페이로드의 개수를 의미한다.
상기 도 7에 도시한 정보어 블록 생성 방법을 사용할 경우에는 정보 페이로드 단위의 일련 번호와 함께 상기 일련 번호에 해당하는 정보 페이로드 내에서 소스 패킷에 포함된 소스 페이로드의 시작 위치를 알려주는 정보가 필요하다. 상기 도 7에 나타낸 정보어 블록은 6개의 소스 페이로드로 구성된다. 이 때 상기 일련 번호는 (0, 0), (1, 2), (3, 3), (6, 1), (10, 0), (12, 1)의 형태, 즉 행 번호와 해당 행에서 시작 영역의 순번으로 나타낼 수 있다. 또 다른 실시 예에 따르면 분할된 정보 페이로드 단위로 일련번호를 부여하여 소스 페이로드의 시작 위치를 0, 6 ( = 1 * 4 + 2), 15 ( = 3 * 4 + 3), 25 ( = 6 * 4 + 1), 40 ( = 10 * 4), 49 ( = 12 *4 + 1)로 나타낼 수 있다.
본 발명의 다른 실시 예에 의한 소스 페이로드 식별자와 패리티 페이로드 식별자는 각각 표 3 및 표 4와 같다.
SB_ID
IP_ID_SB
SSB_ID
IP_ID_SSB
상기 <표 3>에서 각 필드의 의미는 다음과 같다.
- SB_ID (Source Block IDentifier): 소스 패킷에 포함된 소스 페이로드가 속한 소스 블록의 식별자.
- IP_ID_SB (Information Payload IDentifier within a Source Block): SB_ID로 지칭되는 소스 블록이 변환되어 생성된 정보 블록에서 해당 패킷에 포함된 정보 페이로드의 식별자
- SSB_ID (Source Sub-Block IDentifier): 소스 패킷에 포함된 소스 페이로드가 속한 소스 부블록의 식별자. 2단계 (two-stage) 방식을 사용할 경우에만 포함됨
- IP_ID_SSB (Information Payload IDentifier within a Source Sub-Block): SSB_ID로 지칭되는 소스 부블록이 변환되어 생성된 정보 부블록에서 해당 패킷에 포함된 정보 페이로드의 식별자. 2단계 (two-stage) 방식을 사용할 경우에만 포함됨
SB_ID (SSB_ID)
PP_ID
IBL (ISBL)
PBL
상기 <표 4>에서 각 필드의 의미는 다음과 같다.
- SB_ID or SSB_ID: 패리티 패킷이 전송하는 패리티 페이로드(들)가 속한 패리티 블록이 보호하는 소스 블록 (혹은 소스 부블록)의 식별자. 제1 FEC 패리티 패킷의 경우 SSB_ID, 제2 FEC 패리티 패킷의 경우 SB_ID가 할당된다.
- PP_ID (Parity Payload IDentifier): 패리티 패킷이 전송하는 패리티 페이로드(들)가 속한 패리티 블록에서 상기 패리티 페이로드의 식별자
- IBL (Information Block Length) or ISBL (Information Sub-Block Length): 패리티 패킷이 전송하는 패리티 페이로드(들)가 속한 패리티 블록이 보호하는 정보 블록 (혹은 정보 부블록)에 포함된 정보 페이로드의 개수. 제1 FEC 패리티 패킷의 경우 IBL, 제2 FEC 패리티 패킷의 경우 ISBL이 할당된다.
- PBL (Parity Block Length): 패리티 패킷이 전송하는 패리티 페이로드(들)가 속한 패리티 블록에 포함된 패리티 페이로드의 개수
1단계 방식을 사용할 경우에 상기 <표 3>과 <표 4>에 나타낸 FEC 페이로드 식별자의 각 필드 생성 규칙은 다음과 같다. 먼저 SB_ID는 통상적으로 2 바이트로 표현 가능한 양의 정수 범위 내의 임의의 숫자에서 시작하여 소스 블록당 1씩 증가한다. 표현 가능한 최대 범위에 도달한 이후에는 0으로 재귀한다. IP_ID_SB는 각 소스 블록에서 0부터 시작하여 정보어 페이로드당 1씩 증가한다. 상기 도 7에 나타낸 정보 블록 생성 방법을 사용할 경우에는 분할된 정보 페이로드 단위로 1씩 증가한다. 상기 도 7에 나타낸 정보어 블록의 경우에 각 FEC 소스 페이로드 식별자의 IP_ID_SB 필드 값은 상술한 실시 예와 마찬가지로 각각 0, 6, 15, 25, 40, 49이다. PP_ID는 각 패리티 블록에서 0부터 시작하여 패리티 페이로드당 1씩 증가한다. 통상적으로 상기 IP_ID_SB와 PP_ID는 2 바이트로 표현할 수 있는 양의 정수 범위(<64000) 내의 숫자이다. 특정 FEC 패킷의 페이로드와 연관된 값들은 FEC 패리티 페이로드의 일부로 포함되어 전달되지만, 상기 IBL와 PBL의 최대 값은 FEC 밴드 외 신호의 형태로 전달될 수 있다.
2단계 (two-stage) 방식을 사용할 경우에 상기 <표 3>과 <표 4>에 나타낸 FEC 페이로드 식별자의 각 필드 생성 규칙은 다음과 같다. 먼저 SB_ID는 통상적으로 2 바이트로 표현 가능한 양의 정수 범위 내의 임의의 숫자에서 시작하여 소스 블록당 1씩 증가한다. 표현 가능한 최대 범위에 도달한 이후에는 0으로 재귀한다. IP_ID_SB는 각 소스 블록에서 0부터 시작하여 정보어 페이로드당 1씩 증가한다. SSB_ID는 각 소스 블록에서 0부터 시작하는 양의 정수로 소스 부블록당 1씩 증가한다. IP_ID_SSB는 각 소스 블록에서 0부터 시작하여 정보어 페이로드당 1씩 증가한다. 상기 도 7에 나타낸 정보 블록 생성 방법을 사용할 경우에 IP_ID_SB와 IP_ID_SSB는 분할된 정보 페이로드 단위로 1씩 증가한다. PP_ID는 각 패리티 블록에서 0부터 시작하여 패리티 페이로드당 1씩 증가한다. 통상으로 상기 IP_ID_SB, IP_ID_SSB와 PP_ID는 2 바이트로 표현할 수 있는 양의 정수 범위(<64000) 내의 숫자이다.
상기 2단계 방식을 사용할 경우의 FEC 소스 페이로드 식별자의 생성 규칙을 소스 블록이 2개의 소스 부블록으로 구성되고 각각의 소스 부블록은 2개의 소스 페이로드로 구성된 경우를 예로 들어 보다 상세히 설명한다. 설명의 편의를 위하여 각각의 소스 페이로드와 정보 페이로드는 1:1의 상관 관계를 가진다고 가정하자. 이 때 각각의 소스 패킷 SP#0, SP#1, ..., SP#15의 FEC 소스 페이로드 식별자 (SB_ID, IP_ID_SB, SSB_ID, IP_ID_SSB)는 다음과 같다.
SP#0: (0, 0, 0, 0)
SP#1: (0, 1, 0, 1)
SP#2: (0, 2, 1, 0)
SP#3: (0, 3, 1, 1)
SP#4: (1, 0, 0, 0)
SP#5: (1, 1, 0, 1)
SP#6: (1, 2, 1, 0)
SP#7: (1, 3, 1, 1)
이 때 상기 소스 블록당 소스 부블록의 개수 M (=2)가 밴드 외 신호로 수신단에 전송된다고 가정하면, 상기 SB_ID, SSB_ID 필드를 하나의 필드 B_ID (Block IDentifier) 로 대체할 수 있다. 상기 B_ID는 0에서 시작하여 소스 부블록당 1씩 증가한다. 통상적으로 2 바이트로 표현 가능한 최대 범위에 도달한 이후에는 0으로 재귀한다. 이 때 SB_ID = floor (B_ID / M), SSB_ID = B_ID - M * SB_ID로 계산할 수 있다. 상기 floor(a)는 a를 넘지 않는 최대 정수를 의미한다. 소스 블록이 2개의 소스 부블록으로 구성되고 각각의 소스 부블록은 2개의 소스 페이로드로 구성된 경우를 예로 들면 각각의 소스 패킷 SP#0, SP#1, ..., SP#15의 FEC 소스 페이로드 식별자 (B_ID, IP_ID_SB, IP_ID_SSB)과 이에 대응되는 (SB_ID, IP_ID_SB, SSB_ID, IP_ID_SSB)는 다음과 같다.
SP#0: (0, 0, 0) => (0, 0, 0, 0)
SP#1: (0, 1, 1) => (0, 1, 0, 1)
SP#2: (1, 2, 0) => (0, 2, 1, 0)
SP#3: (1, 3, 1) => (0, 3, 1, 1)
SP#4: (2, 0, 0) => (1, 0, 0, 0)
SP#5: (2, 1, 1) => (1, 1, 0, 1)
SP#6: (3, 2, 0) => (1, 2, 1, 0)
SP#7: (3, 3, 1) => (1, 3, 1, 1)
상기 2단계 방식을 적용할 경우의 FEC 패리티 페이로드 식별자는 FEC 패리티 페이로드 식별자를 포함하는 패리티 패킷이 제1 FEC 패리티 패킷인지 아니면 제2 FEC 패리티 패킷인지에 따라 상기 패리티 패킷이 보호하는 정보의 단위가 정보 부블록 혹은 정보 블록으로 바뀌는 점은 제외하고는 1단계 방식을 적용할 경우와 동일하다.
상기 2단계 방식이나 LA-FEC를 적용할 경우에 FEC 부호의 설계 방식에 따라 제1 FEC와 제2 FEC 복호기를 결합한 합동 복호(joint decoding)가 가능하다. 상기 합동 복호를 수행할 경우에는 각각의 부호에 대한 IBL, PBL이 모두 확보되어야 한다. 상기 실시 예에서 IBL와 PBL은 해당 FEC 블록에 대한 패리티 패킷을 하나만 수신하면 획득 가능하다. 하지만 채널 상황이 매우 열악할 경우에는 특정 FEC 블록을 모두 수신하지 못할 경우가 발생할 수 있으며, 이 경우에는 이론적으로 합동 복호를 사용하여 정보 블록이 복원이 가능하지만 FEC 부호에 대한 IBL, PBL을 획득하지 못하여 복호를 시도조차 못하는 상황이 발생할 수 있다. 이를 위하여 상기 IBL과 PBL의 값을 하기의 <표 5>와 같은 별도의 FEC 밴드 외 신호로 전송할 수 있다. 하기 필드 중에서 M은 M이 FEC 전송정보에 포함될 경우에 <표 5>에서 생략될 수 있으며, IBL은 모든 ISBL 값의 합이므로 역시 생략될 수 있다.
M
For i = 1 to M
ISBL for the i-th SSB
PBL for the i-th SSB
End for
IBL
PBL
상기 2단계 방식의 합동 복호를 위한 밴드 외 신호의 예를 소스 블록이 2개의 소스 부블록으로 구성되고 각각의 소스 부블록은 2개의 소스 페이로드로 구성되며 제1 FEC 부호는 소스 부블록당 1개의 패리티 페이로드를 제2 FEC 부호는 소스 블록당 2개의 패리티 페이로드를 생성하는 경우를 예로 들어 보다 상세히 설명한다. 상기 예에서 <표 5>의 형식으로 구성된 밴드외 신호는 다음 표 6과 같다.
2 // 소스 블록당 소스 부블록 수
2 // 첫번째 정보 부블록의 페이로드 수
1 // 첫번째 정보 부블록을 보호하는 패리티 블록의 페이로드 수
2 // 두번째 정보 부블록의 페이로드 수
1 // 두번째 정보 부블록을 보호하는 패리티 블록의 페이로드 수
4 // 정보 블록의 페이로드 수
2 // 정보 블록을 보호하는 패리티 블록의 페이로드 수
상기 도 2에서 패킷 (디)멀티플렉싱부(250)는 FEC 패킷 블록들을 입력으로 하여 하나의 FEC 패킷 블록을 여러 개의 패킷 흐름으로 디멀티플렉싱하거나 복수의 FEC 패킷 블록을 하나의 패킷 흐름으로 멀티플렉싱하여 출력한다. 상기 패킷 (디)멀티플렉싱부(250)는 MMT FECFRAME(102)의 하위 프로토콜 계층과의 인터페이스를 위한 블록으로 패킷 (디)멀티플렉싱부(250)의 기능을 상기 하위 프로토콜 계층에서 수행할 경우에는 생략된다. 또한 MMT FECFRAME이 상위 프로토콜에 포함되어 상기 상위 프로토콜 계층에서 상기 패킷 (디)멀티플렉싱부(250)의 기능을 수행할 경우 역시 생략된다.
본 발명의 일 실시 예에 따르면 FEC 구성 관련 정보나 기타의 부호화 구성 관련 정보를 시그널링(Signaling)하여 수신기에게 전송함으로써 전송기는 선택적으로 FEC를 적용한 컨텐츠를 전송할 수 있다. 또한 본 발명의 일 실시 예에 따르면, 네트워크 상황이나 컨텐츠의 QoS(Quality of Service)에 따라 선택적으로 FEC를 적용할 수 있다. 또한 본 발명의 일 실시 예에 다르면, FEC 구성 관련 정보나 기타의 부호화 구성 관련 정보를 포함하는 FEC 제어 정보의 전부 또는 그 일부를 주기적으로 반복 전송하거나 또는 본 발명의 밴드 내 시그널링 방법에 의해 FEC 구성 관련 정보의 전부 또는 그 일부를 전송함으로써 이미 서비스가 진행 중인 상황에서 새로운 수신기에게도 FEC 구성 관련 정보를 알게 할 수 있어 새로이 등장한 수신기도 FEC 복호화를 수행하여 손실된 데이터를 복구함으로써 사용자에게 보다 양질의 서비스를 제공할 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐 아니라 이 특허청구의 범위와 균등한 것들에 의해서 정해져야 한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (20)

  1. 패킷 송신 방법에 있어서,
    미리 정의된 복수의 생성 모드들 중 하나의 생성 모드를 식별하는 단계;
    상기 식별된 생성 모드에 기초하여, 제1 소스 페이로드를 포함하는 제1 소스 블록으로부터 제2 소스 블록을 생성하는 단계, 상기 제2 소스 블록은 상기 제1 소스 페이로드와 연관된 적어도 하나의 제1 정보 페이로드를 포함하는;
    상기 제2 소스 블록에 대한 FEC (forward error correction) 인코딩을 수행하여, 리페어 블록을 생성하는 단계, 상기 리페어 블록은 상기 적어도 하나의 제1 정보 페이로드와 연관된 적어도 하나의 제1 리페어 페이로드를 포함하며;
    상기 제1 소스 페이로드와 상기 제1 소스 페이로드에 대한 소스 페이로드 식별자를 포함하는 FEC 소스 패킷을 포함하는 소스 패킷 블록을 생성하는 단계;
    상기 적어도 하나의 제1 리페어 페이로드와 상기 적어도 하나의 제1 리페어 페이로드에 대한 리페어 페이로드 식별자를 포함하는 FEC 리페어 패킷을 포함하는 리페어 패킷 블록을 생성하는 단계;
    상기 소스 패킷 블록을 전송하는 단계;
    상기 리페어 패킷 블록을 전송하는 단계; 및
    상기 식별된 생성 모드에 대한 정보를 전송하는 단계를 포함하며,
    상기 소스 페이로드 식별자는 임의의 값에서 시작하고, 최대 값까지 증가된 후에 0으로 초기화되는 소스 페이로드 시퀀스 번호를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 리페어 페이로드 식별자는 상기 소스 패킷 블록 내의 첫 번째 소스 페이로드에 상응하는 상기 소스 페이로드 시퀀스 번호를 지시하는 시작 시퀀스 번호를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 리페어 페이로드 식별자는 상기 리페어 패킷의 상기 리페어 페이로드를 식별하기 위한 리페어 페이로드 식별자를 포함하며,
    상기 리페어 페이로드 식별자는 0부터 시작하여 상기 리페어 패킷 블록 내의 각 리페어 페이로드마다 1씩 증가하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 리페어 페이로드 식별자는 상기 리페어 패킷 블록에 포함된 리페어 페이로드들의 수를 지시하는 리페어 페이로드 길이 지시자를 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 리페어 페이로드 식별자는 상기 제2 소스 블록에 포함된 정보 페이로드들의 수를 지시하는 길이 지시자를 포함하는 것을 특징으로 하는 방법.
  6. 패킷 수신 방법에 있어서,
    제1 소스 페이로드 및 상기 제1 소스 페이로드에 대한 소스 페이로드 식별자를 포함하는 FEC 소스 패킷을 포함하는 소스 패킷 블록을 수신하는 단계; 및
    적어도 하나의 FEC 리페어 패킷을 포함하는 리페어 패킷 블록을 수신하는 단계를 포함하며,
    상기 적어도 하나의 FEC 리페어 패킷은 리페어 블록에 기초하여 생성되고,
    상기 리페어 블록은, 미리 정의된 복수의 생성 모드들 중 하나의 생성 모드에 기초하여, 상기 제1 소스 페이로드를 포함하는 제1 소스 블록으로부터 생성된 제2 소스 블록에 대한 FEC 인코딩을 수행함으로써 생성되고,
    상기 제2 소스 블록은 상기 제1 소스 페이로드와 연관된 적어도 하나의 제1 정보 페이로드를 포함하고, 상기 상기 리페어 블록은 상기 적어도 하나의 제1 정보 페이로드와 연관된 적어도 하나의 제1 리페어 페이로드를 포함하며,
    상기 적어도 하나의 FEC 리페어 패킷은 상기 적어도 하나의 제1 리페어 페이로드와 상기 적어도 하나의 제1 리페어 페이로드에 대한 리페어 페이로드 식별자를 포함하며,

    상기 소스 페이로드 식별자는 임의의 값에서 시작하고, 최대 값에 도달한 후에 0으로 초기화되는 소스 페이로드 시퀀스 번호를 포함하며,
    상기 방법은:
    상기 하나의 생성 모드에 대한 정보를 더 수신하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 리페어 페이로드 식별자는 상기 소스 패킷 블록 내의 첫 번째 소스 페이로드에 상응하는 상기 소스 페이로드 시퀀스 번호를 지시하는 시작 시퀀스 번호를 포함하는 것을 특징으로 하는 방법.
  8. 제6항에 있어서,
    상기 리페어 페이로드 식별자는 상기 리페어 패킷의 상기 리페어 페이로드를 식별하기 위한 리페어 페이로드 식별자를 포함하며,
    상기 리페어 페이로드 식별자는 0부터 시작하여 상기 리페어 패킷 블록 내의 각 리페어 페이로드마다 1씩 증가하는 것을 특징으로 하는 방법.
  9. 제6항에 있어서,
    상기 리페어 페이로드 식별자는 상기 리페어 패킷 블록에 포함된 리페어 페이로드들의 수를 지시하는 리페어 페이로드 길이 지시자를 포함하는 것을 특징으로 하는 방법.
  10. 제6항에 있어서,
    상기 리페어 페이로드 식별자는 상기 제2 소스 블록에 포함된 정보 페이로드들의 수를 지시하는 길이 지시자를 포함하는 것을 특징으로 하는 방법.
  11. 패킷 송신 장치에 있어서,
    송신부; 및
    제어부를 포함하며,
    상기 제어부는:
    미리 정의된 복수의 생성 모드들 중 하나의 생성 모드를 식별하고,
    상기 식별된 생성 모드에 기초하여, 제1 소스 페이로드를 포함하는 제1 소스 블록으로부터 제2 소스 블록을 생성하는 단계, 상기 제2 소스 블록은 상기 제1 소스 페이로드와 연관된 적어도 하나의 제1 정보 페이로드를 포함하며,
    상기 제2 소스 블록에 대한 FEC (forward error correction) 인코딩을 수행하여, 리페어 블록을 생성하는 단계, 상기 리페어 블록은 상기 적어도 하나의 제1 정보 페이로드와 연관된 적어도 하나의 제1 리페어 페이로드를 포함하며,
    상기 제1 소스 페이로드와 상기 제1 소스 페이로드에 대한 소스 페이로드 식별자를 포함하는 FEC 소스 패킷을 포함하는 소스 패킷 블록을 생성하고,
    상기 적어도 하나의 제1 리페어 페이로드와 상기 적어도 하나의 제1 리페어 페이로드에 대한 리페어 페이로드 식별자를 포함하는 FEC 리페어 패킷을 포함하는 리페어 패킷 블록을 생성하고,
    상기 송신부를 통해, 상기 소스 패킷 블록을 전송하고,
    상기 송신부를 통해, 상기 리페어 패킷 블록을 전송하고, 그리고
    상기 송신부를 통해, 상기 식별된 생성 모드에 대한 정보를 전송하며,
    상기 소스 페이로드 식별자는 임의의 값에서 시작하고, 최대 값에 도달한 후에 0으로 초기화되는 소스 페이로드 시퀀스 번호를 포함하는 것을 특징으로 하는 패킷 송신 장치.
  12. 제11항에 있어서,
    상기 리페어 페이로드 식별자는 상기 소스 패킷 블록 내의 첫 번째 소스 페이로드에 상응하는 상기 소스 페이로드 시퀀스 번호를 지시하는 시작 시퀀스 번호를 포함하는 것을 특징으로 하는 패킷 송신 장치.
  13. 제11항에 있어서,
    상기 리페어 페이로드 식별자는 상기 리페어 패킷의 상기 리페어 페이로드를 식별하기 위한 리페어 페이로드 식별자를 포함하며,
    상기 리페어 페이로드 식별자는 0부터 시작하여 상기 리페어 패킷 블록 내의 각 리페어 페이로드마다 1씩 증가하는 것을 특징으로 하는 패킷 송신 장치.
  14. 제11항에 있어서,
    상기 리페어 페이로드 식별자는 상기 리페어 패킷 블록에 포함된 리페어 페이로드들의 수를 지시하는 리페어 페이로드 길이 지시자를 포함하는 것을 특징으로 하는 패킷 송신 장치.
  15. 제11항에 있어서,
    상기 리페어 페이로드 식별자는 상기 제2 소스 블록에 포함된 정보 페이로드들의 수를 지시하는 길이 지시자를 포함하는 것을 특징으로 하는 패킷 송신 장치.
  16. 패킷 수신 장치에 있어서,
    수신부; 및
    제어부를 포함하며,
    상기 제어부는:
    상기 수신부를 통해, 제1 소스 페이로드 및 상기 제1 소스 페이로드에 대한 소스 페이로드 식별자를 포함하는 FEC 소스 패킷을 포함하는 소스 패킷 블록을 수신하는 단계; 및
    상기 수신부를 통해, 적어도 하나의 FEC 리페어 패킷을 포함하는 리페어 패킷 블록을 수신하는 단계를 포함하며,
    상기 적어도 하나의 FEC 리페어 패킷은 리페어 블록에 기초하여 생성되고,
    상기 리페어 블록은, 미리 정의된 복수의 생성 모드들 중 하나의 생성 모드 에 기초하여, 상기 제1 소스 페이로드를 포함하는 제1 소스 블록으로부터 생성된 제2 소스 블록에 대한 FEC 인코딩을 수행함으로써 생성되고,
    상기 제2 소스 블록은 상기 제1 소스 페이로드와 연관된 적어도 하나의 제1 정보 페이로드를 포함하고, 상기 상기 리페어 블록은 상기 적어도 하나의 제1 정보 페이로드와 연관된 적어도 하나의 제1 리페어 페이로드를 포함하며,
    상기 적어도 하나의 FEC 리페어 패킷은 상기 적어도 하나의 제1 리페어 페이로드와 상기 적어도 하나의 제1 리페어 페이로드에 대한 리페어 페이로드 식별자를 포함하며,
    상기 소스 페이로드 식별자는 임의의 값에서 시작하고, 최대 값에 도달한 후에 0으로 초기화되는 소스 페이로드 시퀀스 번호를 포함하며,
    상기 제어부는,
    상기 수신부를 통해, 상기 하나의 생성 모드에 대한 정보를 더 수신하는 것을 특징으로 하는 패킷 수신 장치.
  17. 제16항에 있어서,
    상기 리페어 페이로드 식별자는 상기 소스 패킷 블록 내의 첫 번째 소스 페이로드에 상응하는 상기 소스 페이로드 시퀀스 번호를 지시하는 시작 시퀀스 번호를 포함하는 것을 특징으로 하는 패킷 수신 장치.
  18. 제16항에 있어서,
    상기 리페어 페이로드 식별자는 상기 리페어 패킷의 상기 리페어 페이로드를 식별하기 위한 리페어 페이로드 식별자를 포함하며,
    상기 리페어 페이로드 식별자는 0부터 시작하여 상기 리페어 패킷 블록 내의 각 리페어 페이로드마다 1씩 증가하는 것을 특징으로 하는 패킷 수신 장치.
  19. 제16항에 있어서,
    상기 리페어 페이로드 식별자는 상기 리페어 패킷 블록에 포함된 리페어 페이로드들의 수를 지시하는 리페어 페이로드 길이 지시자를 포함하는 것을 특징으로 하는 패킷 수신 장치.
  20. 제16항에 있어서,
    상기 리페어 페이로드 식별자는 상기 제2 소스 블록에 포함된 정보 페이로드들의 수를 지시하는 길이 지시자를 포함하는 것을 특징으로 하는 패킷 수신 장치.
KR1020120112032A 2012-02-27 2012-10-09 순방향 오류정정스킴을 사용하는 패킷 송수신 장치 및 방법 KR102027916B1 (ko)

Priority Applications (9)

Application Number Priority Date Filing Date Title
US13/777,313 US9043682B2 (en) 2012-02-27 2013-02-26 Packet transmission/reception apparatus and method using forward error correction scheme
PCT/KR2013/001587 WO2013129842A1 (en) 2012-02-27 2013-02-27 Packet transmission/reception apparatus and method using forward error correction scheme
MX2014010252A MX336523B (es) 2012-02-27 2013-02-27 Aparato de transmision/recepcion de paquete y metodo que utiliza esquema de correccion de error anticipada.
CN201380016464.5A CN104205698B (zh) 2012-02-27 2013-02-27 使用前向纠错方案的分组发送/接收装置和方法
EP13754486.2A EP2820785B1 (en) 2012-02-27 2013-02-27 Packet transmission/reception apparatus and method using forward error correction scheme
JP2014559828A JP6628390B2 (ja) 2012-02-27 2013-02-27 順方向エラー訂正スキームを使用するパケット送受信装置及び方法
US14/720,141 US9425920B2 (en) 2012-02-27 2015-05-22 Packet transmission/reception apparatus and method using forward error correction scheme
US15/243,055 US10177784B2 (en) 2012-02-27 2016-08-22 Packet transmission/reception apparatus and method using forward error correction scheme
JP2018150839A JP6689511B2 (ja) 2012-02-27 2018-08-09 順方向エラー訂正スキームを使用するパケット送受信装置及び方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261603438P 2012-02-27 2012-02-27
US61/603,438 2012-02-27

Publications (2)

Publication Number Publication Date
KR20130101967A KR20130101967A (ko) 2013-09-16
KR102027916B1 true KR102027916B1 (ko) 2019-10-02

Family

ID=49451931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120112032A KR102027916B1 (ko) 2012-02-27 2012-10-09 순방향 오류정정스킴을 사용하는 패킷 송수신 장치 및 방법

Country Status (7)

Country Link
US (3) US9043682B2 (ko)
EP (1) EP2820785B1 (ko)
JP (2) JP6628390B2 (ko)
KR (1) KR102027916B1 (ko)
CN (1) CN104205698B (ko)
MX (1) MX336523B (ko)
WO (1) WO2013129842A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101405966B1 (ko) * 2007-06-26 2014-06-20 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
WO2011068497A1 (en) * 2009-12-03 2011-06-09 Thomson Licensing Reliable diversity architecture for a mobile dtv system
JP5899643B2 (ja) * 2011-04-08 2016-04-06 ソニー株式会社 映像伝送装置、映像受信装置及び映像伝送システム
KR101961736B1 (ko) * 2012-04-23 2019-03-25 삼성전자 주식회사 통신 시스템에서 패킷 송수신 장치 및 방법
EP2946555B1 (en) * 2013-01-18 2018-07-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Forward error correction using source blocks with symbols from at least two datastreams with synchronized start symbol identifiers among the datastreams
KR102127685B1 (ko) * 2013-04-17 2020-06-29 삼성전자주식회사 순방향 오류 정정 패킷 송수신 장치 및 방법
KR20150050133A (ko) * 2013-10-31 2015-05-08 삼성전자주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
KR102191970B1 (ko) * 2013-12-31 2020-12-17 삼성전자주식회사 데이터 전송 디바이스 및 그 전송 방법
KR20150084632A (ko) 2014-01-13 2015-07-22 삼성전자주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
KR102208814B1 (ko) * 2014-03-28 2021-01-28 삼성전자주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
WO2015147613A1 (ko) * 2014-03-28 2015-10-01 삼성전자주식회사 방송 및/또는 통신 시스템에서 패킷 생성 및 복원 방법 및 장치
EP3086497B1 (en) * 2015-04-24 2019-03-06 Alcatel Lucent An apparatus and a method for a regenerative network node between a first and a second link portion
KR102602476B1 (ko) * 2015-07-03 2023-11-14 인텔 코포레이션 웨어러블 디바이스에서 데이터 압축을 위한 장치 및 방법
CN106534760B (zh) * 2015-09-15 2020-07-28 华为技术有限公司 一种媒体流传输方法、设备及系统
CN107949995B (zh) * 2015-09-26 2021-09-07 英特尔公司 用于数据通信的装置、方法和系统
CN106100697B (zh) * 2016-06-07 2021-07-06 中国电力科学研究院 低压电力线载波通信系统和方法
US10447430B2 (en) 2016-08-01 2019-10-15 Sony Interactive Entertainment LLC Forward error correction for streaming data
CN109392077B (zh) * 2017-08-11 2021-03-19 展讯通信(上海)有限公司 同步信号突发集的发送、接收方法及装置、存储介质、基站、用户设备
EP3457601B1 (en) * 2017-09-13 2019-12-25 Siemens Aktiengesellschaft A method for sending digital data over a number of channels
TWI757609B (zh) * 2018-08-03 2022-03-11 日商索尼股份有限公司 用於通訊的傳輸設備和方法、接收設備和方法
US20200125446A1 (en) * 2019-12-20 2020-04-23 Intel Corporation Error Correcting Code Circuitry Compatible with Multi-Width Interfaces
CN114079534B (zh) * 2020-08-20 2023-03-28 腾讯科技(深圳)有限公司 编码、解码方法、装置、介质和电子设备
CN114079535B (zh) * 2020-08-20 2023-02-17 腾讯科技(深圳)有限公司 转码方法、装置、介质和电子设备
US20230031466A1 (en) * 2021-07-29 2023-02-02 Trimed, Incorporated Bone implant and method of controlling the bone implant

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009527151A (ja) * 2006-02-13 2009-07-23 デジタル ファウンテン, インコーポレイテッド 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング
US20110219279A1 (en) * 2010-03-05 2011-09-08 Samsung Electronics Co., Ltd. APPLICATION LAYER FEC FRAMEWORK FOR WiGig

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100833222B1 (ko) * 2000-03-29 2008-05-28 삼성전자주식회사 멀티미디어 송수신 장치 및 방법
JP4349114B2 (ja) 2003-12-10 2009-10-21 ソニー株式会社 送信装置および方法、受信装置および方法、記録媒体、並びにプログラム
US7590922B2 (en) 2004-07-30 2009-09-15 Nokia Corporation Point-to-point repair request mechanism for point-to-multipoint transmission systems
US7660245B1 (en) * 2004-09-16 2010-02-09 Qualcomm Incorporated FEC architecture for streaming services including symbol-based operations and packet tagging
JP4395040B2 (ja) * 2004-09-30 2010-01-06 富士通株式会社 通信装置及びエラー訂正パケット挿入割合制御方法
JP4580278B2 (ja) * 2005-05-20 2010-11-10 財団法人エヌエイチケイエンジニアリングサービス パケット中継装置、コンテンツ送信装置、パケット中継プログラムならびにパケット中継方法
US7676735B2 (en) * 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
BRPI0621900A2 (pt) 2006-07-25 2011-12-20 Thomson Licensing recuperação a partir de perda de pacote em rajadas em redes sem fio baseadas em protocolo internet usando transmissão escalonada e correção antecipada de erro de pacote cruzado
US20090168708A1 (en) 2007-12-26 2009-07-02 Motorola, Inc. Techniques for maintaining quality of service for connections in wireless communication systems
KR20120137198A (ko) 2011-06-11 2012-12-20 삼성전자주식회사 통신 시스템에서 패킷 송수신 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009527151A (ja) * 2006-02-13 2009-07-23 デジタル ファウンテン, インコーポレイテッド 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング
US20110219279A1 (en) * 2010-03-05 2011-09-08 Samsung Electronics Co., Ltd. APPLICATION LAYER FEC FRAMEWORK FOR WiGig

Also Published As

Publication number Publication date
KR20130101967A (ko) 2013-09-16
US9043682B2 (en) 2015-05-26
CN104205698B (zh) 2018-07-17
US20150256290A1 (en) 2015-09-10
EP2820785A1 (en) 2015-01-07
US20160359582A1 (en) 2016-12-08
US20130227376A1 (en) 2013-08-29
US9425920B2 (en) 2016-08-23
JP6689511B2 (ja) 2020-04-28
JP2018196148A (ja) 2018-12-06
EP2820785B1 (en) 2022-05-04
WO2013129842A1 (en) 2013-09-06
MX336523B (es) 2016-01-22
US10177784B2 (en) 2019-01-08
MX2014010252A (es) 2014-11-12
JP6628390B2 (ja) 2020-01-08
EP2820785A4 (en) 2015-09-30
JP2015508979A (ja) 2015-03-23
CN104205698A (zh) 2014-12-10

Similar Documents

Publication Publication Date Title
KR102027916B1 (ko) 순방향 오류정정스킴을 사용하는 패킷 송수신 장치 및 방법
KR102133930B1 (ko) 데이터 패킷 송수신 장치 및 방법
KR101829923B1 (ko) 데이터 통신 시스템에서 부호화 장치 및 방법
KR20120137198A (ko) 통신 시스템에서 패킷 송수신 장치 및 방법
KR101983032B1 (ko) 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법
KR102127685B1 (ko) 순방향 오류 정정 패킷 송수신 장치 및 방법
KR101951659B1 (ko) 방송 및 통신 시스템에서 수신 패킷들의 복호 방법 및 장치
JP6511472B2 (ja) ブロードキャスティング及び/又は通信システムにおけるパケットの生成及び復元のための方法及び装置
KR101961736B1 (ko) 통신 시스템에서 패킷 송수신 장치 및 방법
KR102093731B1 (ko) 오류 정정 부호를 사용하는 통신 시스템에서 패킷 송수신 기법
KR101967884B1 (ko) 방송 및 통신 시스템에서 패킷 송/수신 장치 및 방법
KR102014710B1 (ko) 방송 및 통신 시스템에서 패킷 송/수신 장치 및 방법

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant