KR101829923B1 - 데이터 통신 시스템에서 부호화 장치 및 방법 - Google Patents

데이터 통신 시스템에서 부호화 장치 및 방법 Download PDF

Info

Publication number
KR101829923B1
KR101829923B1 KR1020110104870A KR20110104870A KR101829923B1 KR 101829923 B1 KR101829923 B1 KR 101829923B1 KR 1020110104870 A KR1020110104870 A KR 1020110104870A KR 20110104870 A KR20110104870 A KR 20110104870A KR 101829923 B1 KR101829923 B1 KR 101829923B1
Authority
KR
South Korea
Prior art keywords
block
source
payloads
symbol
payload
Prior art date
Application number
KR1020110104870A
Other languages
English (en)
Other versions
KR20130040087A (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 KR1020110104870A priority Critical patent/KR101829923B1/ko
Priority to US13/651,928 priority patent/US9288011B2/en
Priority to PCT/KR2012/008385 priority patent/WO2013055180A1/en
Priority to CN201280050511.3A priority patent/CN103858352B/zh
Priority to EP12839262.8A priority patent/EP2766995B1/en
Priority to JP2014535655A priority patent/JP6181654B2/ja
Publication of KR20130040087A publication Critical patent/KR20130040087A/ko
Application granted granted Critical
Publication of KR101829923B1 publication Critical patent/KR101829923B1/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
    • 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
    • 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/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
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • 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
    • 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
    • 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/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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 데이터 통신 시스템에서 부호화 및 복호화를 수행하는 방법 및 장치를 개시한다. 본 발명의 부호화 방법은, 복수의 소스 페이로드들로 구성된 소스 블록을 입력하는 과정과, 복수의 생성 모드들 중 하나의 생성 모드에 따라, 상기 소스 블록으로부터 복수의 심볼 페이로드들로 구성된 심볼 블록을 생성하는 과정과, 소정의 부호화 방식에 따라 상기 심볼 블록을 부호화하여 적어도 하나의 패킷을 생성하는 과정과, 상기 적어도 하나의 패킷을 수신기로 전송하는 과정과, 상기 심볼 블록을 생성하는데 사용된 생성 모드를 지시하는 정보 필드를 포함하는 시그널링 메시지를 상기 수신기로 전송하는 과정을 포함한다.

Description

데이터 통신 시스템에서 부호화 장치 및 방법 {APPARATUS AND METHOD FOR ENCODING IN DATA COMMUNICATION SYSTEM}
본 발명은 데이터 통신 시스템에서 전진 오류 수정(FEC: Forward Error Correction, 이하 'FEC'라 칭함) 부호화(encoding) 및 복호화를 수행하는 장치 및 방법에 관한 것이다.
다양한 컨텐츠(Contents)들의 증가와 고화질(HD: High Definition, 이하 'HD'라 칭함) 컨텐츠, 초 고화질(UHD: Ultra High Definition) 컨텐츠들과 같은 고용량 컨텐츠들의 증가로 네트워크 상에서 데이터 혼잡이 점점 더 심화되고 있다. 이러한 상황으로 인하여 송신기, 일례로 호스트(Host) A가 보낸 컨텐츠들이 수신기, 일례로 Host B에게 온전이 전달되지 않고 상기 컨텐츠들의 일부가 라우트 상에서 손실되는 상황이 발생한다.
일반적으로 데이터는 패킷 단위로 전송되며 따라서 상기 데이터의 손실은 전송 패킷 단위로 발생하게 된다. 이로 인하여 네트워크 상에서 전송 패킷이 손실되면, 수신기는 손실된 전송 패킷을 수신할 수 없게 되므로 상기 손실된 전송 패킷 내의 데이터를 알 수 없으며, 따라서 오디오(Audio)의 품질 저하, 비디오(Video)의 화질 열화나 화면 깨짐, 자막 누락, 파일의 손실 등과 같은 다양한 형태로 사용자의 불편을 초래하게 된다.
이와 같이 네트워크상에서 손실된 데이터를 복구하기 위한 방법이 필요하게 된다. 이를 위해 일정 개수의 패킷들로 구성된 소스 블록(소스 블록)에 FEC 부호화에 의한 패리티 블록(패리티 block)을 추가하여 전송하게 된다. 일반적으로 패킷내에 전송되는 데이터 또는 소스 페이로드 크기는 고정된 패킷 사이즈로 운용될 수도 있고, 가변 패킷 사이즈로 운용될 수도 있다. 예를 들어 MPEG2(Moving Picture Experts Group2) 전송 스트림(TS: Transport Stream)은 그 패킷의 크기가 188bytes, 즉 헤더 4 bytes, 페이로드 184bytes로 하여 고정된 패킷 크기를 가지지만, 실시간 전송 프로토콜(RTP: Real-Time Transport Protocol, 이하 'RTP'라 칭함)이나 MPEG 미디어 전송(Media Transport)(이하 'MMT'라 칭함)와 같은 프로토콜은 그 패킷의 크기가 반드시 동일할 필요는 없다.
가변 패킷 사이즈로 운영되는 경우 그 각각의 패킷의 크기를 동일하게 하기 위하여 패딩 데이터(padding data)를 추가하여 소스 블록을 구성하여 부호화 하는 경우, 상기 패딩 데이터의 추가로 인하여 응용 계층의 FEC(이하 'AL-FEC'라 칭함) 효율성이 떨어진다. 또한 상기 패딩 데이터의 양이 크면 클수록 이러한 비효율성은 더욱 더 커지게 마련이므로 가변 패킷 사이즈로 전송되는 경우 효율적인 소스 블록 구성 방법 및 그에 따른 AL-FEC 부호화가 필요하게 된다.
본 발명은 가변 패킷 사이즈의 데이터에 대한 효율적인 AL-FEC 부호화 장치 및 방법을 제공한다.
본 발명은 가변 사이즈의 소스 페이로드들을 2차원 배열상에 배치하여 부호화될 정보 심볼들을 포함하는 정보 블록을 구성하는 장치 및 방법을 제공한다.
본 발명은 부호화될 정보 심볼들을 포함하는 정보 블록 내에 2차원 배열된 소스 페이로드들의 길이를 시그널링하고 복구하는 장치 및 방법을 제공한다.
본 발명은 부호화될 정보 심볼들을 포함하는 정보 블록 내에서 각 패킷의 위치를 검출하는 부호화 장치 및 방법을 제안한다.
또한 본 발명은 복수개의 AL-FEC 부호화 방법 중 하나를 선택하여 적용하는 AL-FEC 부호화 장치 및 방법을 제안한다.
본 발명의 일 실시예에서 제안하는 방법은; 데이터 통신 시스템에서 부호화 방법에 있어서, 복수의 소스 페이로드들로 구성된 소스 블록을 입력하는 과정과, 복수의 생성 모드들 중 하나의 생성 모드에 따라, 상기 소스 블록으로부터 복수의 심볼 페이로드들로 구성된 심볼 블록을 생성하는 과정과, 소정의 부호화 방식에 따라 상기 심볼 블록을 부호화하여 적어도 하나의 패킷을 생성하는 과정과, 상기 적어도 하나의 패킷을 수신기로 전송하는 과정과, 상기 심볼 블록을 생성하는데 사용된 생성 모드를 지시하는 정보 필드를 포함하는 시그널링 메시지를 상기 수신기로 전송하는 과정을 포함한다.
본 발명의 일 실시예에서 제안하는 장치는; 데이터 통신 시스템에서 부호화 장치에 있어서, 복수의 소스 페이로드들로 구성된 소스 블록을 입력받아, 복수의 생성 모드들 중 하나의 생성 모드에 따라, 상기 소스 블록으로부터 복수의 심볼 페이로드들로 구성된 심볼 블록을 생성하는 변환기와, 소정의 부호화 방식에 따라 상기 심볼 블록을 부호화하여 적어도 하나의 패킷을 생성하는 부호기와, 상기 적어도 하나의 패킷을 수신기로 전송하며, 상기 심볼 블록을 생성하는데 사용된 생성 모드를 지시하는 정보 정보를 포함하는 시그널링 메시지를 상기 수신기로 전송하는 송신기를 포함한다.
본 발명의 일 실시예에서 제안하는 방법은; 데이터 통신 시스템에서 복호화 방법에 있어서, 적어도 하나의 패킷을 송신기로부터 수신하는 과정과, 복수의 생성 모드들 중 상기 적어도 하나의 패킷의 생성에 적용된 하나의 생성 모드를 지시하는 정보 필드를 포함하는 시그널링 메시지를 상기 송신기로부터 수신하는 과정과, 상기 적어도 하나의 패킷을 복호화하여 복수의 심볼 페이로드들을 포함하는 심볼 블록을 생성하는 과정과, 상기 정보 필드에 의해 지시된 상기 생성 모드에 따라 상기 심볼 블록으로부터, 복수의 소스 페이로드들을 포함하는 하나의 소스 블록을 생성하는 과정을 포함한다.
본 발명의 일 실시예에서 제안하는 장치는; 데이터 통신 시스템에서 복호화 장치에 있어서, 적어도 하나의 패킷을 송신기로부터 수신하고, 상기 복수의 생성 모드들 중 상기 적어도 하나의 패킷의 생성에 적용된 하나의 생성 모드를 지시하는 정보 필드를 포함하는 시그널링 메시지를 상기 송신기로부터 수신하는 수신기와, 상기 적어도 하나의 패킷을 복호화하여 복수의 심볼 페이로드들을 포함하는 심볼 블록을 생성하는 복호기와, 상기 정보 필드에 의해 지시된 상기 생성 모드에 따라 상기 심볼 블록으로부터, 복수의 소스 페이로드들을 포함하는 하나의 소스 블록을 생성하는 변환기를 포함한다.
본 발명은 가변 패킷 사이즈로 송수신되는 환경에서 AL-FEC를 효율적으로 운용할 수 있고 또한 데이터 전송 효율을 높일 수 있다.특히 프레임 단위로 압축을 수행하는 경우 상기 프레임은 여러 개의 동일 길이를 가지는 패킷으로 나누고 마지막 패킷만 패딩이 일어날 것이므로 패딩이 많이 일어나지 않는다. 하지만, 프레임을 여러 개의 조각(slice)로 나누고 상기 조각 단위로 부호화하는 경우 각각의 조각이 하나의 비디오 패킷으로 구성될 수 있다. 상기와 같은 부호화의 경우는 그 크기가 서로 다를 수 있으므로 상대적으로 많은 패딩이 일어날 수밖에 없다.
또한 비디오 패킷, 오디오 패킷, 텍스트 패킷 등 여러 종류의 패킷이 동일 스트림으로 전송되고 AL-FEC 부호화가 필요한 경우 각 종류별 패킷 크기가 달라 패딩이 많이 일어날 수 있으며 또한 스칼러블(Scalable) 비디오 부호화의 경우 각 계층마다 패킷의 크기가 달라질 수 있으므로 패딩이 많이 일어난다. 이와 같이 서비스에 따라서도 필요한 패딩 데이터의 비율이 달라질 수 있어 본 발명에 의한 AL-FEC 부호화 방법이 전송 효율을 높일 수 있게 된다.
도 1은 통신 시스템에서의 네트워크 토폴로지와 데이터 흐름을 도시한 도면,
도 2는 통신 시스템에서 소스 블록의 구성 방법에 따른 AL-FEC 부호화 방법을 도시한 도면,
도 3은 AL-FEC 블록을 위한 2차원 배열의 구성을 도시한 도면,
도 4는 AL-FEC 블록을 위한 2차원 배열에서 각 패킷의 오프셋 정보를 도시한 도면,
도면 5a는 본 발명의 제1실시예에 따른 AL-FEC 부호화 방법을 도시한 도면,
도면 5b는 본 발명의 제1실시예에 따른 AL-FEC 복호 방법을 도시한 도면,
도 6a은 본 발명의 제1실시예에 따라 소스 블록을 구성하고, 구성된 소스 블록으로부터 부호화될 정보 심볼들을 포함하는 정보 블록을 생성하는 방법,
도 6b는 본 발명의 제1실시예에 따른 소스 블록이 복수의 서브 블록들로 구성된 경우, 정보 블록을 생성하는 방법을 도시한 도면,
도 7은 본 발명의 제1실시예에 따른 페이로드 길이를 위한 FEC 블록을 도시한 도면,
도 8a는 본 발명의 제1실시예에 따른 FEC 블록과 FEC 딜리버리 블록을 도시한 도면,
도 8b는 본 발명의 제1실시예에 따른 2단계 FEC 구조를 위한 FEC 블록과 FEC 딜리버리 블록을 도시한 도면,
도 9는 본 발명의 제1실시예에 따른 페이로드 길이를 위한 FEC 블록을 도시한 도면,
도 10은 본 발명의 일 실시예에 따른 MMT 시스템 구조와 딜리버리 펑션 레이어의 구조를 도시한 도면,
도 11은 본 발명의 일 실시예에 따른 MMT 시스템에서의 AL-FEC 소스 블록 부호화 및 복호 흐름을 도시한 도면,
도 12는 본 발명의 일 실시예에 따른 FEC 블록의 구성을 도시한 도면,
도 13은 본 발명의 일 실시예에 따른 RS 프레임의 구성을 도시한 도면,
도 14는 본 발명의 일 실시예에 따른 LDPC 프레임의 구성을 도시한 도면,
도 15는 본 발명의 일 실시예에 따른 홀수/짝수 소스 블록의 구성을 도시한 도면,
도 16은 본 발명의 일 실시예에 따른 홀수/짝수 블록의 페이로드 길이를 위한 FEC 블록의 구성을 도시한 도면,
도 17은 본 발명의 일 실시예에 따른 홀수 블록의 페이로드 길이를 위한 FEC 블록의 구성을 도시한 도면,
도 18은 본 발명의 일 실시예에 따른 페이로드 길이를 위한 FEC 블록의 구성을 도시한 도면,
도 19는 본 발명의 일 실시예에 따른 FEC 딜리버리 블록의 구성을 도시한 도면,
도 20은 본 발명의 일 실시예에 따른 MMT 페이로드의 포맷을 도시한 도면,
도 21은 본 발명의 일 실시예에 따른 MMT 페이로드에 포함되는 페이로드 헤더의 포맷을 도시한 도면,
도 22는 본 발명의 제2실시예에 따른 페이로드 헤더 포맷을 도시한 도면,
도 23은 본 발명의 제3실시예에 따른 페이로드 헤더 포맷을 도시한 도면,
도 24는 본 발명의 일 실시예에 따른 IP 프로토콜을 사용하여 전송되는 프로토콜 스택을 도시한 도면.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명의 동작을 이해하는데 필요한 부분만을 설명하며 그 이외의 배경 기술은 본 발명의 요지를 흩트리지 않도록 생략한다.
도 1은 통신 시스템에서의 네트워크 토폴로지와 데이터 흐름을 도시한 도면이다.
도 1을 참조하면, 네트워크 토폴로지는 호스트 A와 호스트 B를 포함하며, 상기 호스트 A 및 호스트 B는 하나 이상의 라우터를 통해 연결된다.
데이터 흐름은 링크 계층, 인터넷 계층, 전송 계층, 및 응용 계츨 각각에서의 데이터를 도시하고 있으며, 여기서 데이터는 오디오/비디오(Audio/Video: AV) 코덱(codec) 단에서 압축된 데이터를 RTP를 사용하여 패킷으로 나누고 이후의 RTP 패킷 데이터로 간주되거나 MMT에서 진행되고 있는 MMT 패킷 데이터로 간주되는 것이 바람직하다.
후술되는 실시예들은 상기의 RTP 패킷 데이터 또는 MMT 패킷 데이터와 같은 전송 프로토콜 내의 저장되어 전송되는 실제 데이터의 양이 가변적인 경우, 즉 가변 패킷 사이즈로 운용될 경우의 효율적인 AL-FEC 부호화 방법 및 장치에 관한 것이다.
도 2는 통신 시스템에서 소스 블록의 구성 방법에 따른 AL-FEC 부호화 방법을 도시한 도면이다.
도 2를 참조하면, 가변 패킷 사이즈를 가지는 k개의 소스 페이로드(PL: Payload)들, 즉 소스 PL #0 내지 소스 PL #k-1이 입력되면, 각각의 페이로드 크기를 최대 길이, 일례로 S_max를 가지는 페이로드와 동일하게 하기 위해 패딩 데이터, 즉 패리티 PL #0 내지 패리티 PL #n-k-1을 추가한 후 n-k개로 구성된 패리티 블록을 생성한다.
그러나 도 2와 같은 방법은 패딩 데이터의 양이 크면 클 수록 비효율을 양산하는데, 예를 들어 패딩 데이터의 양이 패딩 동작 이후의 소스 블록, 즉 S_max x k 배열의 50%라고 하면 패리티 블록의 50%가 패딩 데이터를 위해 부가된 셈이 되는 것이므로 비효율적이다. 또한 도 2와 같은 방법은 FEC 복호(decoding) 후 복원된 페이로드가 패딩 데이터를 포함하므로 수신 단에서 전송된 페이로드들의 실제 길이를 알 수 있게 하는 방법이 필요하다. 이는 물리 채널 특성과 달리 패킷 손실 채널 특성을 가지는 응용 채널 환경에서는 패킷 손실이 발생한 경우 해당하는 페이로드 자체가 유실되므로 페이로드에 저장된 데이터의 길이를 알 수 없다.
이하의 도 3 내지 도 4에서는 상기와 같은 문제점을 해결하기 위한 AL-FEC 블록을 위한 2차원 배열(array)을 설명한다.
도 3은 AL-FEC 블록을 위한 2차원 배열의 구성을 도시한 도면이다.
도 3을 참조하면, 소스 블록은 입력 데이터 패킷, 일례로 MP1 내지 MP 4와 패리티 패킷, 일례로 PP1 내지 PP2로 구성되며, 상기 소스 블록을 2차원 배열 상에 패딩 데이터 없이 배열하여 부호화를 수행한다.
도 4는 AL-FEC 블록을 위한 2차원 배열에서 각 패킷의 오프셋 정보를 도시한 도면이다.
도 4를 참조하면, 소스 블록 전송 시 각 패킷의 2차원 배열 상에서의 오프셋 정보를 전송하며, 따라서 복호시 수신된 각 패킷의 오프셋 정보로부터 2차원 배열을 재 배열하여 복호를 수행하는 것이 가능하다.
하지만, 도 3 내지 도 4에 도시된 AL-FEC 블록을 위한 2차원 배열은 추가적으로 2차원 배열 상에서의 각 패킷의 오프셋 정보를 필요로 하고 또한 상기 오프셋 정보가 전송되어야 하기 때문에 오버헤드를 발생시킨다. 다시 말해서 2차원 배열로 구성함에 의한 효과보다 상기 오버헤드의 양이 크다면 도 3 내지 도 4와 같은 2차원 배열의 적용은 오히려 더 비효율적이 될 수 있다. 따라서 가변 패킷 사이즈 환경에서의 효율적인 AL-FEC 운용 방법이 필요로 하게 된다.
삭제
본 발명의 제1실시예에 따른 제1방안은, 2차원 배열상에서 각 패킷의 위치를 알 수 있도록 하는 AL-FEC 부호화 장치 및 방법을 제안한다.
도 3 내지 도 4에서와 같이 2차원 배열 상에서의 오프셋 정보는 (x,y) 좌표로 표현이 가능한데, 상기 2차원 배열의 크기에 따라 그 정보의 양은 다르지만, 통상 전송되는 패킷의 페이로드 크기가 최대 전송 단위(MTU: Maximum Transfer Unit, 이하 'MTU'라 칭함) 일례로 1500bytes에 의해 제약되고 또한 풀(Full) HD, 3차원(3D: 3 Dimensions), 초고화질과 같은 고속 고용량 데이터를 전송의 경우 AL-FEC 블록 구간(Duration)을 200ms 정도로 했을 때 2차원 배열에 저장되는 패킷의 개수는 수백개에서 수천개이다. 그러므로 상기 오프셋 정보는 한 패킷당 3~4 bytes 정도가 필요하다. 하지만 각 패킷의 길이 정보를 정보화하여 생성된 패리티 데이터를 전송하는 경우 추가로 요구되어 지는 것은 상기 패리티 데이터이다. 각 패킷의 길이 정보는 상기 MTU 사이즈의 경우로 하면 2 bytes면 충분하다. 그러므로 패리티 데이터의 양을 패킷당 요구되어 지는 오버헤드로 계산해 보면 2 bytes x (1 - 부호율)이므로 통상적으로 부호율(Code Rate)을 50%로 한다고 하여도 1 bytes이다.
본 발명의 제2실시예에 따른 제2방안은, 앞서 설명한 제1방안이 도 2의 방법 대비 항상 효율성을 보장하는 것이 아니기 때문에, 상기 제1방안과 도 2의 방법 중 하나를 선택하여 적용하는 AL-FEC 부호화 장치 및 방법을 제안한다.
도 2에서는 복호시 복구된 페이로드의 패딩 데이터를 제외한 실제 데이터를 상위 레이어에 출력하여야 하는데, 이로 인하여 각 페이로드의 실제 데이터 크기를 AL-FEC 복호기가 알아야 한다. 이로 인하여 각 페이로드의 실제 데이터 길이에 대한 패리티 데이터를 필요로 한다. 반면 본 발명의 제1방안은 복호시 수신된 각각의 페이로드가 2차원 배열상에서 존재하는 위치를 미리 알고 2차원 배열을 배치하여 소스 블록을 복원할 수 있다. 이로 인하여 소스 블록은 복호 가능한 범위 내에 패킷 손실이 발생했음에도 불구하고 각 페이로드의 길이 정보를 복원할 수 없어 2차원 배열상에 배치하지 못하는 상황은 피해야 한다. 이는 통상적으로 도 2의 방법에서 손실된 패킷의 개수가 2차원 배열상에서 손실된 페이로드들의 수보다 크기 때문이다. 이로 인하여 각 페이로드의 길이 정보에 대한 패리티 데이터 의 부가율은 2차원 배열을 위한 패리티 데이터의 부가율보다 통상적으로 높게 설계되어야 한다.
이러한 상황으로 본 발명의 제1방안은 도 2의 방법 대비 각 페이로드의 길이 정보에 대한 패리티 데이터가 더 많이 필요하므로 더 필요한 패리티 데이터의 양이 2차원 배열로 구성함에 의해 발생하는 효과보다 작아야 의미가 있을 수 있다.
예를 들어 도 2의 방법과 본 발명의 제1방안이 동일한 복구 성능을 가지게 설계된다고 했을 때 상기 제1방안에 의한 2차원 배열로 부호화 했을 때 도 2의 방법보다 하나의 패리티 페이로드를 적게 붙여 부호화할 수 있다고 했을 때 상기 제1방안에 의한 각 페이로드의 길이 정보에 대한 패리티 데이터의 추가되는 양이 하나의 패리티 페이로드보다 크다면 도 2의 방법을 적용하고 반대의 경우라면 상기 제1방안을 적용하여 부호화하는 것이 바람직하다.
본 발명의 제3실시예에 따른 제3방안은, 도 3내지 도4의 방법이 도 2의 방법 대비 항상 효율성을 보장하는 것이 아니기 때문에, 도 2의 방법과 도 3내지 도4의 방법 중 하나를 선택하여 적용하는 AL-FEC 부호화하는 장치 및 방법을 제안한다.
도 2의 방법과 도 3내지 도 4의 방법은 부호화될 정보 심볼들을 포함하는 정보 블록을 구성하는 방법이 다르지만, 이 외에도 각각의 방법을 적용하기 위해서는 여타의 시그널링(signaling) 정보가 필요하다. 이로 인하여 각 방법을 비교함에 있어서 부호화될 정보 심볼들을 포함하는 정보 블록을 구성하는 방법에 의한 효과 뿐만 아니라 여타의 추가적인 시그널링 정보로 인한 오버헤드도 함께 고려되어야 한다. 만일 동일한 AL-FEC 복호 성능아래 서로를 비교한다고 했을 때 도 2의 방법 대비 도 3내지 도4의 방법을 적용함으로 인해 패리티 페이로드의 수를 줄일 수 있다. 하지만 도 3내지 도4의 방법을 적용하기 위한 추가적인 시그널링 정보가 줄여진 패리티 페이로드에 의한 데이터 양이 도 2의 방법을 적용하기 위한 추가적인 시그널링 정보보다 크다면 도 2의 방법이 더 효율적일 것이다.
통상적으로 도 2의 방법과 도 3내지 도4의 방법 각각의 적용을 위해 요구되어 지는 시그널링 정보는 거의 정해져 있을 것이므로 결국 도 2의 방법 적용 시 요구되어 지는 패딩 데이터의 양에 의해 도 2의 방법과 도 3내지 도4의 방법 중 어떤 것이 더 효율적인지 판명된다. 즉, 패딩 데이터의 양이 작으면 작을 수록 도 2의 방법이 더 효율적일 거이고 반대로 패딩 데이터의 양이 크면 클 수록 도 3내지 도4의 방법이 더 효율적일 것이다.
<제1방안(제1실시예)>
본 발명의 제1방안은, 2차원 배열상에서 각 패킷의 위치를 알 수 있도록 하는 AL-FEC 부호화 장치 및 방법을 제안한다.
도면 5a는 본 발명의 제1실시예에 따른 AL-FEC 부호화 방법을 도시한 도면이다.
도 5a를 참조하면, 가변 길이를 가지는 k'개의 소스 페이로드로 구성된 소스 블록은 동일한 길이를 가지는 k개의 정보 페이로드로 구성된 2차원 배열인 정보 블록상에 차례로 배치된다. 마지막 정보 페이로드는 패딩 데이터를 가질 수도 있다. 한편 입력되는 소스 블록의 각각의 소스 페이로드에 대한 길이 정보 S0, S1, ..., Sk'-2, Sk'-1 로 구성된 페이로드 길이에 대한 길이 블록을 구성한다. FEC 부호기는 정보 블록으로부터 n-k개의 동일한 길이를 가지는 패리티 페이로드로 구성된 패리티 블록을 생성하고 또한 상기 길이 블록으로부터 p0,p1,...,pn-k-1로 구성된 길이 패리티 블록을 생성한다. 생성된 길이 패리티 블록과 패리티 블록은 소스 블록과 함께 FEC 딜리버리(Delivery) 블록으로 구성되어 전송된다.
도면 5b는 본 발명의 제1실시예에 따른 AL-FEC 복호 방법을 도시한 도면이다.
도 5 b를 참조하면, 패킷 손실 채널 특성으로 인하여 수신된 FEC 딜리버리 블록은 손실된 페이로드를 가지게 되는데 우선 수신된 소스 페이로드들로부터 S0, S1, ..., Sk'-1를 계산해 낸다.(IP Protocol과 같은 Layer상에서는 Packet 단위를 구분할 수 있으므로 Decoding시 수신된 FEC 딜리버리 블록의 각 페이로드들의 경계는 상기 IP 패킷 단위의 구분으로부터 알 수 있어 각 페이로드의 길이를 계산(count)할 수 있다. 또는 MMT나 RTP와 같은 응용 프로토콜이나 또는 전송 제어 프로토콜(TCP: Transmission Control protocol, 이하 'TCP'라 칭함)이나 사용자 데이터그램 프로토콜(UDP: User datagram Protocol, 이하 'UDP'라 칭함)과 같은 전송 프로토콜에서 수신된 페이로드의 길이 정보를 인계 받아 알 수 있다. 또는 도시하지는 않았지만, FEC 딜리버리 블록의 각 페이로드 헤더(헤더)에 길이 필드(Length field)를 마련하여 전송하고 수신시 수신된 페이로드의 헤더로부터 그 길이 정보를 알 수 있다.
그리고 송신 시 전송된 길이 정보를 위한 패리티 데이터를 길이 패리티 블록으로부터 얻어 FEC 블록을 위한 페이로드 길이를 구성하고 손실된(Lost) 페이로드들에 대한 길이 정보와 패리티 데이터는 삭제(erasure) 처리하여 FEC 복호기에 의한 삭제 복호(erasure decoding)을 수행한 후 페이로드 길이 정보들을 복구해 낸다. 복구된 페이로드 길이 정보로부터 2차원 배열로 이뤄진 정보 블록 상에 각 페이로드의 위치를 알 수 있으므로 수신된 페이로드들을 정보 블록상에 배치하고 수신되지 않은 페이로드들은 삭제 처리를 하여 FEC 복호를 수행함에 의해 정보 블록을 복원하여 최종적으로 소스 블록을 출력한다.
도 6a은 본 발명의 제1실시예에 따라 소스 블록을 구성하고, 구성된 소스 블록으로부터 부호화될 정보 심볼들을 포함하는 정보 블록을 생성하는 방법을 도시한 도면이다.
도 6a를 참조하면, 일반적으로 소스 페이로드(PL)의 크기는 MTU의 크기와 전송에 필요한 각종 헤더 정보의 크기를 고려하여 결정될 것이다. 이를 S_max bytes라 했을 때 구성하고자 하는 2차원 배열의 크기를 S_max x K라 하면, 입력되는 소스 페이로드들의 시퀀스로부터 S_max x K bytes보다 작게 되는 K'개의 소스 페이로드들로 구성된 소스 블록을 구성한다. 상기 구성된 소스 블록의 각각의 소스 페이로드들을 순차적으로 S_max x K array상에 순차적으로 배열하고 마지막 K번째 정보 페이로드에는 필요 시 패딩데이터를 추가하여 정보 블록을 생성한다.
도 6b는 본 발명의 제1실시예에 따른 소스 블록이 복수의 서브 블록들로 구성된 경우, 정보 블록을 생성하는 방법을 도시한 도면이다.
도 6b를 참조하면, 생성된 정보블록 역시 복수의 서브 블록들, 즉 제1 정보 서브 블록 내지 제M 정보 서브 블록을 포함한다.
도 7은 본 발명의 제1실시예에 따른 페이로드 길이를 위한 FEC 블록을 도시힌 도면이다.
도 7을 참조하면, 도 6a 및 6b를 통해 설명한 바와 같이 각각의 소스 페이로드에 대한 길이 정보 Si (i=1,2,...,K')로부터 구성된 페이로드 길이를 위한 소스 블록으로부터 FEC 부호화를 수행함에 의해 상기 페이로드 길이를 위한 패리티 블록을 생성한다. 패리티 블록을 더 두껍게 표시한 이유는 앞서 설명한 바와 같이 페이로드 길이를 위한 패리티 데이터는 소스 블록을 위한 패리티 데이터의 비율보다 높게 부호화 되어야 하기 때문이다.
예를 들어 페이로드 길이 정보들 중에서 홀수번째 정보들을 구성하여 N-K개의 패리티 데이터를 생성하고 또한 짝수번째 정보들을 구성하여 N-K개의 패리티 데이터를 생성하여 페이로드 길이를 위한 패리티 블록을 생성할 수 있다. 또는 상기 페이로드 길이 정보들로부터 2x(N-K)개의 패리티 데이터를 생성하여 페이로드 길이를 위한 패리티 블록을 생성할 수 있다. 이렇게 함으로써 페이로드 길이를 위한 FEC 블록은 FEC 블록 보다 항상 더 좋은 복호 성능을 보장할 수 있다.
도 8a는 본 발명의 제1실시예에 따른 FEC 블록과 FEC 딜리버리 블록을 도시한 도면이다.
도 8a를 참조하면, FEC 부호기는 정보 블록으로부터 패리티 블록을 생성하여 FEC 블록을 구성하고, 상기 생성된 페이로드 길이를 위한 패리티 블록과 소스 블록을 포함하여 FEC 딜리버리 블록을 구성한 후 전송한다.
도 8b는 본 발명의 제1실시예에 따른 2단계(stage) FEC 구조를 위한 FEC 블록과 FEC 딜리버리 블록을 도시한 도면이다.
도 8b를 참조하면, 페이로드 길이를 위한 패리티 블록을 전체 패리티 블록의 선두에 배치하여 FEC 딜리버리 블록을 구성한다. 그러나 본 발명의 제1실시예는 여기에 국한하지 않고 상기 페이로드 길이를 위한 패리티 블록이 패리티 블록을 위한 헤더나 소스 블록을 위한 헤더 정보로 저장되어 전송될 경우 FEC 딜리버리 블록은 소스 블록과 패리티 블록으로 구성된다.
<제2방안(제2실시예)>
본 발명의 제2방안은, 본 발명의 제1방안과 도 2의 방법 중 하나를 선택하여 적용하는 AL-FEC 부호화 장치 및 방법을 제안한다. 이를 위해 전송시 적용된 AL-FEC 부호화 방법을 나타내는 플래그(Flag) 정보를 두며, 예를 들어 상기 플래그 정보가 0이면 도2의 방법을 적용하여 AL-FEC 부호화를 수행하고, 상기 플래그 정보가 1이면 본 발명의 제1방안을 적용하여 AL-FEC 부호화를 수행하고, 이에 따라 FEC 딜리버리 블록을 전송한다.
좀 더 상세하게는 주어진 패킷 손실 채널 환경에서 AL-FEC 복호후 달성하고자 하는 패킷 에러율(PER: Packet Error Rate, 이하 'PER'이라 칭함) 또는 비트 에러율(BER: Bit Error Rate 이하 'BER'이라 칭함)등이 정해지면, 소스 블록을 위한 K'개의 소스 페이로드에 대해 도 2의 방법을 위해서는 P'개의 패리티 페이로드를 부가할 것이고, 본 발명의 제1방안을 위해서는 상기 K개의 정보 페이로드로 구성된 정보 블록에 대해 P개의 패리티 페이로드를 부가할 것이다. 이 때, 도 2의 방법은 본 발명의 제1방안 대비 P'-P개의 패리티 페이로드를 더 필요로 하는 셈이고, 본 발명의 제1방안은 도 2의 방법 대비 추가되는 페이로드 길이를 위한 패리티 데이터만큼 더 필요로 하는 셈이다.
결국 추가되는 페이로드 길이를 위한 패리티 데이터가 P'-P개의 패리티 페이로드보다 작다면 상기 플래그를 1로 설정하여, 본 발명의 제1방안에 의한 AL-FEC 부호화를 적용하여 전송하고 그렇지 않다면 상기 플래그를 0으로 설정하여 도 2의 방법에 의한 AL-FEC 부호화를 적용하여 전송한다.
P' = P + p라 하면, 도 2의 방법에 의해 요구되어지는 패리티 data의 양은 (S_max + L)×(P+p)로 계산되며, 도 3의 방법에 의해 요구되어지는 패리티 data의 양은 (S_max + L x (1+r))×P로 계산되고, 따라서 데이터 패리티의 차이는 (S_max + L) × p - L × r × P 로 계산된다. 여기서 L은 각 소스 페이로드의 길이를 표현하기 위해 요구되는 bytes를 의미하며, r은 길이 소스 블록을 분할한 횟수를 의미한다. 즉 길이 필드들은 보다 강력한(Robust) 부호화를 위하여 하나 혹은 그 이상의 서브블록으로 분할되어 개별적으로 부호화될 수 있는데, r=1인 경우 길이 필드들이 2개의 서브블록으로 분할됨을 의미한다.
만약 r=1이라 두면 상기 값은 S_max × p - L × P (여기서 p는 본 발명의 제1방안의 적용으로 줄일 수 있는 패리티 페이로드의 개수로 확률적으로 PR × (K'-K)보다는 항상 작다. 여기서 PR은 패리티 레이트(Parity Rate)로 패리티 길이/정보 길이로 나타내어 진다. 왜냐하면 PR = P'/K' = P/K로 동일하게 했을 때 p = P'- P = PR × (K'-K)로 나타내어 진다. 동일한 PR에서는 정보 길이가 길수록 성능이 좋으므로 동일한 성능을 위해서는 p는 PR × (K'-K)보다 작을 수 밖에 없으며 이는 하기 수학식 1과 같이 나타낼 수 있다.
Figure 112011080221616-pat00001
이를 도 2의 방법에 따라 정리하면 P = P' - p = PR x K' - p이므로 L x P = L x (P' - p) = L x PR x K' - L x p이므로 하기 수학식 2와 같이 나타낼 수 있다.
Figure 112011080221616-pat00002
결국, 상기 S_max와 L은 전송 시 고정된다고 보면 패리티 레이트가 높을 수록 그리고 K'-K값이 클수록, 즉 도 2의 방법에서 패딩 데이터 양이 많은 경우 본 발명의 제1방안을 적용하는 것이 더 바람직하다 하겠다.
하기 표1 내지 표3은 S_max = 1000 bytes, L = 2 bytes, r=1이라고 했을 때, K' = 100, 200, 400의 경우 패리티 레이트와 패딩 레이트의 양에 따른 본 발명의 제1방안과 도2의 방법에 필요한 총 패리티 양을 비교한 것이다.
하기 표 1은 K' = 100일 경우 본 발명의 제1방안과 도2의 방법 각각에 필요한 총 패리티 양을 나타낸다.
Figure 112011080221616-pat00003
하기 표2는 K'=200일 경우 본 발명의 제1방안과 도2의 방법 각각에 필요한 총 패리티 양을 나타낸다.
Figure 112011080221616-pat00004
하기 표3는 K'=400일 경우 본 발명의 제1방안과 도2의 방법 각각에 필요한 총 패리티 양을 나타낸다.
Figure 112011080221616-pat00005
표1 내지 표3에서 가로 축 상단은 패리티 레이트를 의미하고, 세로축 좌측은 (S_max x K) / (S_max x K') 즉, 도 2의 방법 적용시의 패딩 데이터 비율을 의미한다. 표1 내지 표3 내의 xxx / xxx 값 중 위쪽은 본 발명의 제1방안을 위해 최소한으로 요구되는 패리티 데이터 양을 아래쪽은 도 2의 방법을 위해 필요한 패리티 데이터 양을 나타낸다.
본 발명의 제1방안과 도 2의 방법에 의해 요구되어지는 데이터 양의 차가 0.5%(데이터 양의 차 / (S_max x K'))보다 작은 경우는 붉은색으로 표시하였다. 물론 이것은 FEC 딜리버리 기준으로 나타낸 것이며 페이로드의 헤더 양, 응용 프로토콜 헤더(Application Protocol Header), 전송 프로토콜 헤더(Transport Protocol Header), 인터넷 프로토콜 헤더(Internet Protocol Header)의 양에 따라 달라질 수 있는데 도2의 방법 대비 본 발명의 제1방안에 의한 페이로드의 개수가 작거나 같으므로 작은 경우 상기 헤더들을 고려할 때 본 발명의 효과는 더 커진다고 할 수 있겠다.
가변 패킷 크기로 인하여 소스 블록으로부터 본 발명의 제1방안에 의해 정보 블록으로 전환될 때 얼마나 많은 정보 페이로드를 줄일 수 있는지(K'-K)와 패리티 레이트에 의해 결정되어 진다고 볼 수 있다. 그러므로 패리티 레이트가 수학식 1에 의해 음의 값을 가지면 도 2의 방법으로 운용되는 것이 바람직하다.
도 9는 본발명의 제1실시예에 따른 페이로드 길이를 위한 FEC 블록을 도시한 도면이다.
도 9를 참조하면, 도 2의 방법에 의해 정보 블록을 생성했을 때 복호시 수신기가 페이로드의 길이를 알 수 있도록 하기 위해, 페이로드 길이를 위한 소스 블록으로부터 FEC 코드를 사용하여 페이로드 길이를 위한 패리티 블록을 생성하는 페이로드를 위한 FEC 블록을 나타낸다. 상기 FEC 코드는 소스 블록을 부호화하기 위해 사용한 FEC 코드와 동일한 것을 사용하여 시스템 부담을 최소화 하는 것이 바람직하다.
<제3방안(제3실시예)>
본 발명의 제3방안은, 도 2의 방법과 도 3내지 도4의 방법 중 하나를 선택하여 적용하는 AL-FEC 부호화 장치 및 방법을 제안한다. 이를 위해 전송 시 적용된 AL-FEC 부호화 방법을 나타내는 플래그 정보를 두며, 예를 들어 상기 플래그 정보가 0이면 도 2의 방법을 적용하여 AL-FEC 부호화를 수행하고, 상기 플래그 정보가 1이면 도 3 내지 도4의 방법을 적용하여 AL-FEC 부호화를 수행하고, 이에 따라 FEC 딜리버리 블록을 전송한다.
좀 더 상세하게는 주어진 패킷손실 channel 환경에서 AL-FEC 복호 후 달성하고자 하는 PER 또는 BER등이 정해지면, 소스 블록을 위한 K'개의 소스 페이로드에 대해 도 2의 방법을 위해서는 P'개의 Parity 페이로드를 부가할 것이고 도 3내지 도4의 방법를 위해서는 상기 K개의 정보 페이로드로 구성된 정보 블록에 대해 P개의 패리티 페이로드를 부가할 것이다. 이 때,기존 발명1은 도 3내지 도4의 방법 대비 P'-P개의 패리티 페이로드를 더 필요로 하는 셈이고,도 3내지 도4의 방법은 도 2의 방법 대비 추가되는 오프셋 정보만큼 더 필요로 하는 셈이다.
결국 추가되는 오프셋 정보의 양이 P'-P개의 패리티 페이로드보다 작다면 상기 플래그를 1로 설정하여 도 3내지 도4의 방법에 의한 AL-FEC 부호화를 적용하여 전송하고, 그렇지 않다면 상기 플래그를 0으로 설정하여 도 2의 방법에 의한 AL-FEC 부호화를 적용하여 전송한다.
P' = P + p라 두면 도 2의 방법에 의해 요구되어지는 Parity data의 양: (S_max + L)x(P+p) -도 3내지 도4의 방법에 의해 요구되어지는 Parity data의 양 + Offset: S_max x P + K' x Off_lng= (S_max x L) x p + L x P - K' x Off_lng 이다. 여기서 Off_lng는 오프셋을 위해 필요한 정보양이다.
여기서 p는 도 2의 방법의 적용으로 줄일 수 있는 패리티 페이로드의 개수로 확률적으로 PR x (K'-K)보다는 항상 작다. 여기서 패리티 레이트는 패리티 길이/정보 길이로 나타내어 진다. 왜냐하면 PR = P'/K' = P/K로 동일하게 했을 때 p = P'- P = PR x (K'-K)로 나타내어 진다. 동일한 패리티 레이트에서는 정보길이가 길수록 성능이 좋으므로 동일한 성능을 위해서는 p는 PR x (K'-K)보다 작을 수 밖에 없으며 이는 하기 수학식 3과 같이 나타낼 수 있다.
Figure 112011080221616-pat00006
이를 다시 도 2의 방법에 따라 정리하면 P = P' - p = PR x K' - p이므로 L x P = L x (P' - p) 이므로 (S_max + L) x p + L x P = (S_max + L) x p + L x P' - L x p = S_max x p + L x P'로 나타내어 지고 결국 하기 수학식 4와 같이 나타낼 수 있다.
Figure 112011080221616-pat00007
결국, 상기 값은 S_max와 L은 전송 시 고정된다고 보면 패리티 레이트가 높을 수록 그리고 K'-K값이 클수록, 즉 도 2의 방법에서 패딩 데이터 양이 많은 경우 도 3내지 도4의 방법에 의한 방법이 더 효과를 발휘할 수 있다는 것을 나타낸다. 또한 K'의 개수는 S_max가 작을수록 커지므로 상기 S_max가 큰 값을 가질 수록 도 3내지 도4의 방법의 효과를 더 발휘할 수 있다는 것을 나타낸다.
하기 표4내지 표6은 S_max = 1000 bytes, L = 2 bytes, Off_lng = 4bytes라고 했을 때, K' = 100, 200, 400의 경우 패리티 레이트와 패딩 레이트의 양에 따른 도 2의 방법과 도 3내지 도4의 방법에서 요구되어 지는 패리티 데이터와 추가 정보의 데이터 양을 비교한 것이다.
하기 표 4는 K' = 100일 경우 도 3내지 도4의 방법과 도 2의 방법 각각에 필요한 데이터 양을 나타낸다.
Figure 112011080221616-pat00008
하기 표 5는 K' = 200일 경우 도 3내지 도4의 방법과 도 2의 방법 각각에 필요한 데이터 양을 나타낸다.
Figure 112011080221616-pat00009
하기 표 6은 K' = 400일 경우 도 3내지 도4의 방법과 도 2의 방법 각각의 데이터 양을 나타낸다.
Figure 112011080221616-pat00010
하기 표 7 내지 표9는 S_max = 500 bytes, L = 2 bytes, Off_lng = 4bytes라고 했을 때, K' = 100, 200, 400의 경우 패리티 레이트와 패딩 레이트의 양에 따른 도 3내지 도4의 방법과 도 2의 방법에서 요구되어 지는 패리티 데이터와 추가 정보의 데이터 양을 비교한 것이다.
하기 표 7은 K' = 100일 경우 도 3내지 도4의 방법과 도 2의 방법 각각에 필요한 데이터 양을 나타낸다.
Figure 112011080221616-pat00011
하기 표 8은 K' = 200일 경우 도 3내지 도4의 방법과 도 2의 방법 각각에 필요한 데이터 양을 나타낸다.
Figure 112011080221616-pat00012
하기 표 9은 K' = 400일 경우 도 3내지 도 4의 방법과 도 2의 방법 각각에 필요한 데이터 양을 나타낸다.
Figure 112011080221616-pat00013
상기 표 4 내지 표9에서 가로 축 상단은 패리티 레이트를 의미하고, 세로축 좌측은 (S_max x K) / (S_max x K') 즉, 도 2의 방법 적용시의 Padding 데이터 비율을 의미한다. 표 4 내지 표9내의 xxx / xxx 값 중 위쪽은 도 3내지 도4의 방법을 위해 최소한으로 요구되는 패리티 데이터 양을 아래쪽은 도 2의 방법을 위해 필요한 패리티 데이터 양을 나타낸다.
도 3내지 도4의 방법과 도 2의 방법에 의해 요구되어지는 데이터 양의 차가 0.5%(데이터 양의 차 / (S_max x K'))보다 작은 경우는 붉은색으로 표시하였다. 물론 이것은 FEC 딜리버리 기준으로 나타낸 것이며 페이로드의 헤더, 응용 프로토콜 헤더, 전송 프로토콜 헤더, 인터넷 프로토콜 헤더의 양에 따라 달라질 수 있는데 도 2의 방법 대비 도 3내지 도4의 방법에 의한 페이로드의 개수가 작거나 같으므로 작은 경우 상기 헤더들을 고려할 때 본 발명의 효과는 더 커진다고 할 수 있겠다.
본 발명의 제2방안과 제3방안에 따른 표 1내지 표9에서 예시한 바와 같이 도 3내지 도4의 방법은 S_max가 작을 수록 효과가 줄어드는 것을 볼 수 있다. 하지만 본 발명의 제1방안은 S_max와 거의 상관없이 효과가 발생함을 볼 수 있다.
표 1내지 표3 및 표 4 내지 표6에서 볼 수 있듯이, 본 발명의 제1방안과 도 3내지 도4의 방법에 의해 필요한 패리티 데이터와 추가 정보의 양의 차이를 보면 다음과 같다.
소스 블록과 패리티 블록은 동일하게 적용되므로 이 이외의 정보를 살펴보면,본 발명의 제1방안은 (1+r) x L x P의 데이터가 필요하고, 도 3내지 도4의 방법은 Off_set x K'의 데이터가 필요하다. L = 2 bytes라 하고 Off_set = 4 bytes라 한다면, P <K'보다 작다면 본 발명의 제1방안이 도 3내지 도4의 방법보다 더 효율적이다. 채널의 패킷 손실율을 설사 10%라 하더라도 P보다는 K'의 값이 훨씬 크므로 본 발명의 제1방안이 도 3내지 도4의 방법보다 오버헤드 측면에서 더 효율적이라 할 수 있겠다.
하기 표 10은 S_max 1000 bytes, L = 2 bytes, r=1, K'=200인 경우 패리티 레이트와 패딩 레이트에 관계해서 본 발명의 제1방안과 도 3내지 도4의 방법 각각에서 요구되는 데이터 양, 즉 bytes 수를 나타낸 것이다. 여기서 소스 블록 및 패리티 블록은 동일하므로 제외하기로 한다.
Figure 112011080221616-pat00014
도 10은 본 발명의 일 실시예에 따른 MMT 시스템 구조와 딜리버리 펑션 레이어의 구조를 도시한 도면이다.
도 10을 참조하면, 왼쪽에 도시된 구조는 MMT 시스템 구조를 도시한 것이고, 오른쪽에 도시된 구조는 딜리버리 펑션 레이어의 구조를 도시한 것이다. 미디어 코딩 레이어(Media Coding Layer)로부터 압축된 AV 데이터는 캡슐화(Encapsulation) 펑션 레이어를 거쳐 파일 포맷과 유사한 형태로 패키지화되어 출력되고, 딜리버리 펑션 레이어에서는 이를 MMT 페이로드 포맷화한 후 MMT 전송 패킷 헤더를 부가하여 MMT 전송 패킷으로 출력하거나 또는 기존 RTP 프로토콜을 사용하여 RTP 패킷으로 출력한다. 그 이후 UDP/TCP의 전송 프로토콜 레이어를 거쳐 최종적으로 인터넷 프로토콜 레이어에서 인터넷 프로토콜(이하 'IP'라 칭함) 패킷화되어 전송된다.
도 11은 본 발명의 일 실시예에 따른 MMT 시스템에서의 AL-FEC 소스 블록 부호화 및 복호 흐름을 도시한 도면이다.
도 11을 참조하면, AL-FEC 소스 블록의 부호화 동작을 살펴보면, MMT D.1 레이어는 MMT E.1 레이어로부터 MMT 패키지, 일례로 AV 데이터, 파일, 텍스트 등을 스토리지에 저장하거나 또는 전송을 고려한 목적으로 만들어진 포맷을 입력 받아 전송을 위한 일정 단위, 즉 소스 페이로드로 나누어 소스 블록을 구성한다. AL-FEC 모듈 변환기(Convertor)는 소스 블록을 동일 길이를 가지는 정보 페이로드들로 구성된 2차원 배열인 정보 블록으로 전환한다. FEC 부호기는 정보 블록으로부터 주어진 FEC 코드에 의해 FEC 부호화를 수행하여 패리티 블록 을 생성하여 페이로드 포맷 생성기에게 전송한다. 페이로드 포맷 생성기는 소스 블록에 상기 패리티 블록을 추가하고 각각의 페이로드에 페이로드 헤더(PLH)를 부가하여 패킷화한 MMT 페이로드 포맷을 MMT D.2 레이어 또는 국제 인터넷 표준화 기구(IETF: internet Engineering Task Force) 응용 프로토콜 레이어에 전송한다. 그리고 도 1에 도시된 바와 같이 전송 레이어에서 UDP 헤더를 부가하고 인터넷 레이어에서 IP 헤더를 부가하여 전송되게 된다.
도 11에서는 페이로드 길이를 위한 소스 블록으로부터 페이로드 길이를 위한 패리티 블록을 생성하는 과정을 도시하지 않았으며, 이는 이하에서 도면 없이 별도로 기술하고자 한다.
이하의 도 12 내지 14를 통해 FEC 딜리버리 블록의 생성에 대해 설명하기로 한다.
도 12는 본 발명의 일 실시예에 따른 FEC 블록의 구성을 도시한 도면이다.
도 12를 참조하면, K개의 정보 페이로드(INFO PL)로 구성된 정보 블록으로부터 패리티 블록을 생성하고, 상기 정보 블록 및 페리티 블록을 포함하도록 FEC 블록을 구성한다. 즉 정보 블록에 포함되며 m개의 행으로 구성된 정보 심볼들(Information Symbols)은 주어진 FEC 코드에 따라 패리티 심볼들(Parity Symbols)을 생성하여 FEC 블록을 구성한다. 여기서 m은 8*S로 계산되는 양의 약수를 의미한다.
도 13은 본 발명의 일 실시예에 따른 리드 솔로몬(RS: Read Solomon, 이하 'RS'라 칭함) 프레임의 구성을 도시한 도면이다.
도 13을 참조하면, m=8인 경우 RS (240,200) code over GF(2^8)에 의한 RS 프레임을 나타낸다.이 경우 K 페이로드로 구성된 정보 블록의 p번째 byte 행이 p번째 정보 심볼 K bytes가 되고, 여기에 200-K bytes를 00h로 패딩하여 부호화하여 40 bytes의 패리티 bytes를 생성하여 p번째 RS 프레임을 생성한다. 그런 다음 첫 번째 200-K 패딩 bytes를 쇼트닝(shortening)하고 마지막 40-Pbytes를 펑쳐링(Puncturing)하여 정보 심볼 K bytes와 패리티 심볼 P bytes만을 최종 전송하게 된다.
도 14는 본 발명의 일 실시예에 따른 저밀도 패리티 체크 코드(LDPC: Low Density Parity Check code, 이하 'LDPC'라 칭함) 프레임의 구성을 도시한 도면이다.
도 14를 참조하면, LDPC(m x (K+P), m x K) code over GF(2)에 의한 LDPC 프레임을 나타낸다.이 경우 K 페이로드로 구성된 정보 블록의 p번째 m 행(row(s))가 p번째 정보 심볼 m x K bits가 되고, 여기에 m x P 패리티 bits를 생성하여 p번째 LDPC 프레임을 생성한 다음 생성된 m x P 패리티 bits를 패리티 심볼로 전환한다. 여기서 m은 양의 정수를 의미한다.
즉 m이 1보다 큰 경우에 있어서 도 14은 왼쪽부터 위에서 아래로 번호를 부여하고 있으나, 여기에 한정하지 않고 반대 방향으로 윗쪽부터 왼쪽에서 오른쪽으로 번호를 부여할 수도 있다.
이하의 도 15 내지 19를 통해 페이로드 길이를 위한 패리티 블록의 생성에 대해 설명하기로 한다.
소스 블록에 대한 페이로드 길이 정보는 상기 페이로드 포맷 생성기가 소스 페이로드로 구성된 소스 블록을 구성할 때 각각의 소스 페이로드에 대한 길이를 알기 때문에 이를 입력 받아 구성할 수도 있고, 아니면 시스템 제어기로부터 제공 받을 수도 있다. 또는 도 11에서 도시하지는 않았으나, 페이로드 길이 정보가 페이로드 헤더에 저장되어 전송되는 경우 상기 페이로드 포맷 생성기는 상기 소스 페이로드와 페이로드 길이 정보를 함께 AL-FEC 모듈에 전달하여 생성될 수도 있다.
도 15는 본 발명의 일 실시예에 따른 홀수(odd)/짝수(even)번째 소스 블록의 구성을 도시한 도면이다.
도 15를 참조하면, K'개의 소스 페이로드 각각에 대한 페이로드 길이 필드로 L bits를 할당한 경우 페이로드 길이를 위한 소스 블록을 나타나며, 편의상 K'이 짝수인 경우를 도시하였다. K'이 홀수인 경우 홀수 소스 블록이 짝수 소스 블록보다 페이로드 길이 필드가 하나 더 많다.
도 16은 본 발명의 일 실시예에 따른 홀수/짝수번째 블록의 페이로드 길이를 위한 FEC 블록의 구성을 도시한 도면이다.
도 16을 참조하면, 도 15에서의 페이로드 길이를 위한 홀수/짝수 소스 블록에 대해 페이로드 길이를 위한 홀수/짝수 패리티 블록을 생성하여 페이로드 길이를 위한 홀수/짝수 FEC 블록을 구성한다. 본 발명의 제1방안에 의해 페이로드 길이를 위한 FEC 성능은 소스 블록을 위한 FEC 성능보다 좋아야 함을 이미 기술하였다. 이로 인하여 하나의 실시 예로써 도 15와 같이 페이로드 길이를 두 개의 블록으로 나누고 각각의 블록에 대해 N-K 열(column)으로 이루어진 패리티 데이터를 생성하였다. 상기 N-K는 소스 블록으로부터 패리티 블록을 생성할 때 생성된 패리티 블록의 패리티 페이로드의 개수와 동일하다. 이로 인하여 동일한 패리티 데이터 수를 확보할 수 있는 반면 정보 데이터는 소스 블록 대비 반으로 줄어들기 때문에 더 좋은 FEC 성능을 발휘할 수 있다.
하지만, 본 발명의 제1방안은 본 실시 예로 한정하지 않고 소스 블록을 위한 FEC 성능보다 페이로드 길이를 위한 FEC 성능이 더 좋게 설계되면, 본 발명의 제1방안을 구현하는데 문제가 없다 하겠다. 즉 소스 블록의 복구가 가능한데 페이로드 길이는 복구 불가능한 경우가 확률적으로 발생할 경우가 거의 없도록 하며, 예를 들어 소스 블록을 위한 복구 성능이 10^(-7)의 패킷 에러 레이트를 요구한다고 했을 때 페이로드 길이를 위한 복구 성능은 10^(-7)이하, 일례로 10^(-9)으로 설계된다면 문제가 없는 것으로 본다.
본 개시에서는 도 15 및 도 16에 의한 방법만을 기재하였으나, 페이로드 길이를 위한 전체 소스 블록에 2x(N-K) 열로 구성된 패리티 블록을 생성하는 것도 하나의 실시 예가 될 수 있음은 물론이다.
또한 도 16의 페이로드 길이를 위한 패리티 블록은 소스 블록으로부터 패리티 블록을 생성하는 방법과 동일한 방법 및 동일한 FEC 코드를 사용하여 생성할 수 있다. 한가지 차이는 소스 블록으로부터 패리티 블록을 생성할 경우보다 정보 길이가 더 짧아서 페이로드 길이를 위한 소스 블록의 각 정보 심볼들에 패딩 데이터를 추가하여 패리티 데이터를 생성한 후 다시 패딩 데이터를 쇼트닝함에 의한다. 통상적으로 도2의 방법의 패딩 데이터가 50%보다는 훨씬 작을 것이므로 K가 K'/2보다는 훨씬 큰 숫자가 될 것이다. 예를 들어 패딩 레이트가 10%라 했을 때 K'=200이라고 하면 K=180이므로, 페이로드 길이를 위한 홀수/짝수 소스 블록은 L x 100 Columns array로 구성되기 때문에 K=180보다는 훨씬 작은 숫자이므로 더 좋은 FEC 성능을 가질 수 있다.
도 17은 본 발명의 일 실시예에 따른 홀수 블록의 페이로드 길이를 위한 FEC 블록의 구성을 도시한 도면이다.
도 17을 참조하면, 페이로드 길이가 통상적으로 2 bytes로 구성되기 때문에 그에 따라 2 bytes x K'/2 열로 구성된 홀수 소스 블록에 대해 K'/2가 200보다 작거나 같은 경우 RS(240,40) 코드로 부호화된 모습을 나타내는데 K'/2 정보 bytes에 200-K'/2 bytes를 00h로 패딩한 후 40 bytes의 패리티 bytes를 생성한 후 200-K'/2 패딩된 bytes를 쇼트닝하고 또한 40-P bytes를 펑쳐링하여 RS 프레임 당 N-K bytes의 패리티 bytes만 전송된다.
여기서 S2*i-1,j는 페이로드 길이를 위한 소스 블록의 i번째 열의 j번째 bytes를 나타낸다. 또한 i=1,2,...,K'/2을 나타내고, j=1 또는 2를 나타낸다. 도시하지는 않았지만, 짝수 소스 블록도 동일한 방식으로 부호화됨은 물론이다.
도시하지는 않았지만, 만일 2x(N-K)가 40보다 작다면 페이로드 길이의 첫번째 bytes들로 구성된 페이로드 길이를 위한 소스 블록의 첫 번째 byte와 RS (240,40) 코드를 활용하여 2 x (N-K)개의 패리티 bytes를 생성한 후 페이로드 길이를 위한 패리티 블록을 생성하는 것이 가능하다.
도 18은 본 발명에 따른 페이로드 길이를 위한 FEC 블록의 구성을 도시한 도면이다.
도 18을 참조하면, 도 15 내지 도 17을 통해 생성된 페이로드 길이를 위한 홀수/짝수 패리티 블록과 FEC 딜리버리 블록을 결합하기 위한 형태로 전환한 것이다.
도 19는 본 발명에 따른 FEC 딜리버리 블록의 구성을 도시한 도면이다.
도 19를 참조하면, 도 18에서 생성된 페이로드 길이를 위한 패리티 블록의 각 열을 패리티 블록의 각 페이로드의 선두에 배치하여 전송되는 FEC 딜리버리 블록을 나타낸 도면이다. 본 발명의 제1방안에 의한 페이로드 길이를 위한 패리티 블록의 위치는 도 19에 한정되지 않으며, 소스 블록의 각 소스 페이로드는 선두 또는 후미에 배치하여 전송하는 것도 모두 가능하다. 또한 소스 페이로드들을 위한 페이로드 헤더에 배치하거나 또는 패리티 페이로드를 위한 페이로드 헤더 내에 배치하는 등 다양한 방법에 의한 전송이 가능하다. 상기 페이로드 길이를 위한 패리티 블록이 상기 패리티 블록을 위한 헤더나 소스 블록을 위한 헤더 정보로 저장되어 전송될 경우 FEC 딜리버리 블록은 소스 블록과 패리티 블록으로 구성된다.
도시하지는 않았지만, RS 코드로 부호화한 경우 만일 2x(N-K)가 40보다 작다면 페이로드 길이의 첫 번째 bytes들로 구성된 페이로드 길이를 위한 소스 블록의 첫 번째 byte와 RS (240,40) 코드를 활용하여 2 x (N-K)개의 패리티 bytes를 생성한 후 페이로드 길이를 위한 패리티 블록을 생성하는 것이 가능하다. 본 실시 예에서는 RS (240,40) 코드를 일례로 설명하였으나, 여기에 한정되지 않으며 다양한 정보 길이 또는 다양한 패리티 길이를 가지는 코드의 적용이 가능하다. 또한 LDPC 코드를 사용하여 페이로드 길이를 위한 소스 블록을 부호화하는 경우 도 15 및 도 16과 같이 페이로드 길이를 위한 소스 블록을 두 개의 블록으로 나누고, 각각의 블록에 대해 소스 블록을 부호화 시 사용한 LDPC 코드를 그대로 사용하기 위해 패딩 데이터를 추가하여 부호화 한 후 상기 패딩 데이터를 제외하여 도면 18과 같은 형태로 페이로드 길이를 위한 FEC 블록을 구성하는 것이 가능하다. 이와 같이 소스 블록을 부호화 시 사용한 FEC 코드를 그대로 활용하여 페이로드 길이를 위한 소스 블록을 부호화함에 의해 FEC 코드 사용 효율을 높이고 시스템 부담을 줄일 수 있다.
또한 부가율이 높은 코드로부터 펑쳐링해서 사용하는 것과 같이 Rateless code와 같은 방식을 적용하면 L x K' 배열로 구성된 페이로드 길이를 위한 소스 블록으로부터 L x 2(N-K) 배열로 구성된 페이로드 길이를 위한 패리티 블록을 생성하는데, L x 2(N-K) 중 첫 번째 N-K 열, 즉 L x (N-K) 열은 소스 블록을 부호화 하여 패리티 블록을 생성하는 방법과 동일한 방법으로 생성하고 나머지 L x (N-K)는 상기 부호화시 사용한 코드의 확장을 통해 생성하는 것도 가능하다. 이를 H(Hermitian) 매트릭스(matrix) 관점에서 살펴보면 2(N-K) x (K' + 2(N-K)) H 매트릭스가 있다고 가정했을 때 소스 블록 부호화 시는 상기 H 매트릭스의 서브 매트릭스인 (N-K) x N을 사용하여 패리티 블록을 생성하고 페이로드 길이를 위한 패리티 블록을 위해서는 상기 H 매트릭스를 그대로 사용하는 것이 가능하다. 이로 인하여 하나의 H 매트릭스를 활용하여 두 가지의 부호화를 가능케 함으로써 시스템 부담을 줄일 수 있다. 이러한 방법은 LDPC, Raptor, RaptorQ 코드에 모두 적용 가능하다.
도 20은 본 발명에 따른 MMT 페이로드의 포맷을 도시한 도면이다.
도 20을 참조하면, MMT 페이로드는 페이로드 헤더와 MMT 페이로드를 포함하여 구성된다.
도 21은 본 발명에 따른 MMT 페이로드에 포함되는 페이로드 헤더의 포맷을 도시한 도면이다.
도 21을 참조하면, 페이로드 타입(Type)은 해당 MMT 페이로드 포맷의 페이로드가 소스 페이로드인지 또는 패리티 페이로드인지를 나타낸다.
시퀀스 넘버(Sequence Number)는 전송되는 페이로드들의 순서를 나타내기 위하여 순차적으로 증가하거나 감소하여 할당하며, 상기 시퀀스 넘버로부터 패킷의 손실 여부를 알 수 있다. 또한 상기 시퀀스 넘버는 전송 프로토콜 헤더, 일례로 MMT 패킷 헤더 또는 RTP 헤더 내에 저장되어 전송되는 경우 생략될 수 있다.
FEC 플래그는 FEC 적용 여부를 나타낸다. 예를 들어 FEC 플래그 값이 0을 가리키고 있으면 패리티 페이로드 없이 소스 블록만 전송하고, FEC 플래그 값이 1이면 소스 블록에 패리티 블록을 추가하여, 즉 FEC 방식이 적용되어 전송된다는 것을 의미한다.
블록 경계(Boundary) 정보는 FEC 딜리버리 블록의 경계를 알려주는데 FEC 딜리버리 블록의 첫 번째 소스 페이로드의 시퀀스 넘버 값을 모든 헤더에 할당한다. 일종의 FEC 딜리버리 블록 식별자(ID: Identifier) 역할을 하며, FEC 딜리버리 블록의 모든 페이로드의 헤더에 저장되어 전송된다.
페이로드 사이즈 플래그는 소스 블록 내 모든 소스 페이로드의 길이가 일정한지 아닌지를 나타낸다. 예를 들어 페이로드 사이즈 플래그 값이 0이면 소스 블록 내의 모든 소스 페이로드 길이가 일정한 것을 나타내고, 즉 소스 블록 = 정보 블록이 되고, 따라서 본 발명의 제1방안에 의한 페이로드 길이를 위한 패리티 블록을 생성할 필요가 없다. 페이로드 사이즈 플래그 값이 1이면 소스 블록 내의 모든 소스 페이로드 길이가 일정하지 않아 본 발명의 제1방안에 의한 방법에 의해 정보 블록을 구성하고 또한 페이로드 길이를 위한 패리티 블록이 생성되어 전송됨을 나타낸다.
FEC 딜리버리 블록 길이는 FEC 딜리버리 블록에 포함되어 있는 페이로드들의 개수를 말한다.
소스 블록 길이는 소스 블록에 포함되어 있는 소스 페이로드들의 개수를 말한다.수신기는 복호시 FEC 딜리버리 블록의 경계와 FEC 딜리버리 블록 내의 소스 페이로드들의 개수 K'과 패리티 페이로드들의 개수 P를 헤더 정보로부터 파악한다. 헤더 정보에 각 페이로드에 대한 길이 정보가 없는 경우는 수신된 소스 페이로드들로부터 그 길이를 계산(Count)하여 페이로드 길이를 위한 소스 블록을 생성하고 또한 수신된 패리티 블록의 선두로부터 페이로드 길이를 위한 패리티 블록을 얻어 페이로드 길이를 위한 FEC 블록을 구성하는데 수신되지 못한 페이로드들에 해당하는 길이 정보와 패리티 데이터는 삭제(erasure) 처리를 하여 약속된 FEC 코드로 복호를 수행한 후 패리티 길이를 위한 소스 블록을 복구한다. 복구된 패리티 길이를 위한 소스 블록으로부터 소스 블록을 위한 모든 소스 페이로드들의 길이 정보를 모두 알게 되므로 수신된 소스 페이로드를 2차원 S x K 배열 상에 배치할 수 있다. 또한 수신된 패리티 페이로드들 또한 대응되는 S x P 배열 상에 그대로 배치되어 FEC 블록을 구성한다. 즉 수신되지 못한 페이로드들에 대한 위치는 삭제 처리한다. 약속된 FEC 코드로 복호를 수행하여 정보 블록을 복구해 낸다. 복구된 정보 블록의 마지막 페이로드에 패딩된 데이터가 있다면 이를 제거하여 소스 블록으로 출력한다. 즉 시스템상에서 실제 데이터가 스트림으로 전송되는 경우 패딩 데이터를 제외한 정보 블록과 소스 블록은 동일하다. 만일 페이로드 단위로 전송되는 경우는 상기 복구된 길이 정보를 바탕으로 정보 블록을 다시 소스 블록으로 전환할 수 있다.
도 22는 본 발명의 제2실시예에 따른 페이로드 헤더 포맷을 도시한 도면이다.
도 22를 참조하면, 페이로드 타입와 시퀀스 번호와 FEC 플래그와 블록 경계 정보와 FEC 딜리버리 블록 길이와 소스 블록 길이의 설명은 도 21에서와 같으며, 정보 블록 생성 모드(IBG_Mode: Information Block Generation Mode) 및 페이로드 길이에 대한 패리티 데이터의 설명은 하기와 같다.
정보 블록 생성 모드(IBG_Mode: Information Block Generation Mode)는, IBG_Mode = 0이면 소스 페이로드의 길이가 모두 동일하여 소스 블록 = 정보 블록임을 나타내며 페이로드 길이를 위한 패리티 블록의 생성 없이 FEC 딜리버리 블록이 구성되어 전송됨을 나타내고, IBG_Mode = 1이면 도 2의 방법과 같은 방법에 의해 정보 블록을 생성하여 AL-FEC 부호화되고, IBG_Mode = 2이면 본 발명의 제1방안에 의해 AL-FEC 부호화된다는 것을 나타낸다.
도 22는, 도 19와 같이, 페이로드 길이를 위한 패리티 블록이 전체 패리티 블록의 선두에 위치하여 페이로드 헤더 내에 저장하여 전송되는 경우를 위한 페이로드 헤더 포맷을 나타낸 것이다. 앞서 기술한 바와 같이 IBG_Mode = 2인 경우 각각의 페이로드 헤더에 저장되는 패리티 데이터는 IBG_Mode = 1인 경우 각각의 페이로드 헤더에 저장되는 패리티 데이터는 보다 많다. 이는 IBG_Mode = 1인 경우 페이로드 길이를 위한 FEC 성능은 소스 블록을 위한 FEC 성능과 동일하기만 해도 되지만, IBG_Mode = 2인 경우 페이로드 길이를 위한 FEC 성능은 소스 블록을 위한 FEC 성능보다 더 좋아야 하기 때문이다. 예를 들어 페이로드 길이를 위해 2bytes가 필요하고 IBG_Mode=2를 위해 IBG_Mode=1인 경우보다 2배로 페이로드 길이를 위한 패리티 데이터를 생성하는 경우 IBG_Mode = 1인 경우 각 페이로드 헤더에 필요한 패리티 데이터는 2 bytes가 필요하고 IBG_Mode = 2를 위한 각 페이로드 헤더에 필요한 패리티 데이터는 4bytes가 필요하다.
도 23은 본 발명의 제3실시예에 따른 페이로드 헤더 포맷을 도시한 도면이다.
도 23을 참조하면, 페이로드 타입와 시퀀스 번호와 FEC 플래그와 블록 경계 정보와 FEC 딜리버리 를록 길이와 소스 블록 길이의 설명은 도 21에서와 같으며, IBG_Mode와 마지막 필드에 대한 설명은 하기와 같다.
IBG_Mode = 0이면 소스 페이로드의 길이가 모두 동일하여 소스 블록 = 정보 블록임을 나타내어 페이로드 길이를 위한 패리티 블록의 생성 없이 FEC 딜리버리 블록이 구성되어 전송됨을 나타내고, IBG_Mode = 1이면 도2의 방법과 같은 방법에 의해 정보 블록을 생성하여 AL-FEC 부호화되고, IBG_Mode = 2이면 도 3 내지 도4의 방법에 의해 정보 블록을 생성하여 AL-FEC 부호화된다는 것을 나타낸다.
도 3내지 도4의 방법의 경우 복호시 FEC 딜리버리 블록 길이와 소스 블록 길이, 블록 경계 정보, 및 오프셋 등과 같은 헤더 정보로부터 S x K 배열인 정보 블록을 생성할 수 있다.
두 단계 FEC 부호화 구조를 위해 페이로드 길이를 위한 서브 블록을 위한 페이로드 길이를 위한 패리티 데이터는 페이로드 타입 = 패리티 1 페이로드를 나타내는 경우의 헤더에 저장될 것이고, 페이로드 길이를 위한 소스 블록을 위한 페이로드 길이를 위한 패리티 데이터는 페이로드 타입 = 패리티 2 페이로드를 나타내는 경우의 헤더에 저장된다.
도 24는 본 발명에 따른 IP 프로토콜을 사용하여 전송되는 프로토콜 스택을 도시한 도면이다.
도 24를 참조하면, 프로토콜 스택에 따른 IP 패킷은 IP 프로토콜 헤더와, UDP/TCP 헤더와, MMT 프로토콜/응용 프로토콜과, MMT 페이로드 포맷 헤더와, MMT 페이로드를 포함한다. MMT 페이로드는 소스 페이로드 혹은 본 발명의 실시예들 중 하나에 따라 생성된 패리티 페이로드를 포함하며, MMT 페이로드 포맷 헤더는 MMT 페이로드에 포함되는 페이로드에 관련된 정보를 포함한다. 특히 MMT 페이로드 포맷 헤더는 정보 블록 구성의 모드를 나타내는 IBG_Mode와 필요한 경우 페이로드 길이에 대한 패리티 데이터를 포함한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (24)

  1. 데이터 통신 시스템에서 부호화 방법에 있어서,
    복수의 소스 페이로드들로 구성된 소스 블록을 입력하는 과정과,
    복수의 생성 모드들 중 하나의 생성 모드에 따라, 상기 소스 블록으로부터 복수의 심볼 페이로드들로 구성된 심볼 블록을 생성하는 과정과,
    소정의 부호화 방식에 따라 상기 심볼 블록을 부호화하여, 상기 부호화된 심볼 블록의 적어도 일부 데이터를 페이로드 내에 포함하는 적어도 하나의 패킷을 생성하는 과정과,
    상기 적어도 하나의 패킷을 수신기로 전송하는 과정과,
    상기 심볼 블록을 생성하는데 사용된 생성 모드를 지시하는 정보 필드를 포함하는 시그널링 메시지를 상기 수신기로 전송하는 과정을 포함하며,
    상기 복수의 생성 모드들의 각각은 상기 심볼 블록이 상기 소스 블록 내에 포함되는 상기 복수의 소스 페이로드들에 의해 구성되는 방식을 지시하며,
    상기 복수의 생성 모드들 중 적어도 하나에서, 상기 소스 블록은 복수의 서브 블록들로 분할되고, 각 서브 블록은 상기 복수의 소스 페이로드들 중 적어도 하나를 포함하고, 상기 서브 블록들 중 하나의 서브 블록의 적어도 일부는 상기 심볼 페이로드들 중 하나의 심볼 페이로드에 포함되며, 상기 소스 페이로드들 중 하나의 소스 페이로드는 상기 심볼 블록 내의 심볼 페이로드들 중 적어도 하나의 심볼 페이로드 내에 배치되는 것을 특징으로 하는 부호화 방법.
  2. 삭제
  3. 제 1 항에 있어서, 상기 복수의 생성 모드들은,
    상기 소스 페이로드들이 동일한 크기를 가지는 경우 상기 심볼 페이로드들을 상기 소스 페이로드들과 동일하게 생성하는 제1 생성 모드와,
    상기 소스 페이로드들이 가변 크기를 가지는 경우, 상기 심볼 페이로드들이 동일한 크기 S를 가지도록 만들기 위하여, 상기 소스 페이로드들 중 적어도 하나에 패딩 데이터를 부가함으로써 상기 심볼 페이로드들을 생성하는 제2 생성 모드와,
    상기 소스 페이로드들이 가변 크기를 가지는 경우, 상기 소스 블록을 적어도 하나의 소스 페이로드들을 각각 포함하는 복수의 서브 블록들로 분할하고, 각 서브 블록의 소스 페이로드들을 직렬화하며, 상기 직렬화된 소스 페이로드들의 각 S 바이트를 하나의 심볼 페이로드로 구성하며, 상기 직렬화된 소스 페이로드들의 나머지에 패딩 데이터를 부가함으로써 상기 심볼 페이로드들을 구성하는 제3 생성 모드 중 적어도 하나를 포함함을 특징으로 하는 부호화 방법.
  4. 제 1 항에 있어서,
    상기 소스 페이로드들의 길이 필드들을 포함하는 길이 소스 블록을 부호화하여 페이로드 길이에 대한 패리티 블록을 생성하는 과정과,
    상기 페이로드 길이에 대한 패리티 블록을 상기 수신기로 전송하는 과정을 더 포함하는 것을 특징으로 하는 부호화 방법.
  5. 제 4 항에 있어서, 상기 페이로드 길이에 대한 패리티 블록은,
    상기 길이 소스 블록 중 홀수번째 길이 필드들로 구성된 홀수 소스 블록을 부호화하여 생성되는 홀수 패리티 블록과, 짝수번째 길이 필드들로 구성된 짝수 소스 블록을 부호화하여 생성되는 짝수 패리티 블록을 포함하며,
    상기 홀수 소스 블록과 상기 짝수 소스 블록은 상기 심볼 블록을 부호화하는데 사용된 것과 동일한 부호화 방식을 사용하여 부호화됨을 특징으로 하는 부호화 방법.
  6. 제 4 항에 있어서,
    상기 적어도 하나의 패킷은 소정 패킷 포맷에 따라 패킷화하여 전송되며, 각 패킷의 헤더는 해당하는 하나의 소스 페이로드의 페이로드 길이를 지시하는 길이 필드를 포함함을 특징으로 하는 부호화 방법.
  7. 데이터 통신 시스템에서 부호화 장치에 있어서,
    복수의 소스 페이로드들로 구성된 소스 블록을 입력받아, 복수의 생성 모드들 중 하나의 생성 모드에 따라, 상기 소스 블록으로부터 복수의 심볼 페이로드들로 구성된 심볼 블록을 생성하는 변환기와,
    소정의 부호화 방식에 따라 상기 심볼 블록을 부호화하여 적어도 하나의 패킷을 생성하는 부호기와,
    상기 적어도 하나의 패킷을 수신기로 전송하며, 상기 심볼 블록을 생성하는데 사용된 생성 모드를 지시하는 정보 정보를 포함하는 시그널링 메시지를 상기 수신기로 전송하는 송신기를 포함하고,
    상기 복수의 생성 모드들의 각각은 상기 심볼 블록이 상기 소스 블록 내에 포함되는 상기 복수의 소스 페이로드들에 의해 구성되는 방식을 지시하며,
    상기 복수의 생성 모드들 중 적어도 하나에서, 상기 소스 블록은 복수의 서브 블록들로 분할되고, 각 서브 블록은 상기 복수의 소스 페이로드들 중 적어도 하나를 포함하고, 상기 서브 블록들 중 하나의 서브 블록의 적어도 일부는 상기 심볼 페이로드들 중 하나의 심볼 페이로드에 포함되며, 상기 소스 페이로드들 중 하나의 소스 페이로드는 상기 심볼 블록 내의 심볼 페이로드들 중 적어도 하나의 심볼 페이로드 내에 배치되는 것을 특징으로 하는 부호화 장치.
  8. 삭제
  9. 제 7 항에 있어서, 상기 복수의 생성 모드들은,
    상기 소스 페이로드들이 동일한 크기를 가지는 경우 상기 심볼 페이로드들을 상기 소스 페이로드들과 동일하게 생성하는 제1 생성 모드와,
    상기 소스 페이로드들이 가변 크기를 가지는 경우, 상기 심볼 페이로드들이 동일한 크기 S를 가지도록 만들기 위하여, 상기 소스 페이로드들 중 적어도 하나에 패딩 데이터를 부가함으로써 상기 심볼 페이로드들을 생성하는 제2 생성 모드와,
    상기 소스 페이로드들이 가변 크기를 가지는 경우, 상기 소스 블록을 적어도 하나의 소스 페이로드들을 각각 포함하는 복수의 서브 블록들로 분할하고, 각 서브 블록의 소스 페이로드들을 직렬화하며, 상기 직렬화된 소스 페이로드들의 각 S 바이트를 하나의 심볼 페이로드로 구성하며, 상기 직렬화된 소스 페이로드들의 나머지에 패딩 데이터를 부가함으로써 상기 심볼 페이로드들을 구성하는 제3 생성 모드 중 적어도 하나를 포함함을 특징으로 하는 부호화 장치.
  10. 제 7 항에 있어서, 상기 부호기는, 상기 소스 페이로드들의 길이 필드들을 포함하는 길이 소스 블록을 부호화하여 페이로드 길이에 대한 패리티 블록을 생성하고,
    상기 송신기는, 상기 페이로드 길이에 대한 패리티 블록을 상기 송신기를 통해 상기 수신기로 전송하는 것을 특징으로 하는 부호화 장치.
  11. 제 10 항에 있어서, 상기 페이로드 길이에 대한 패리티 블록은,
    상기 길이 소스 블록 중 홀수번째 길이 필드들로 구성된 홀수 소스 블록을 부호화하여 생성되는 홀수 패리티 블록과, 짝수번째 길이 필드들로 구성된 짝수 소스 블록을 부호화하여 생성되는 짝수 패리티 블록을 포함하며,
    상기 홀수 소스 블록과 상기 짝수 소스 블록은 상기 심볼 블록을 부호화하는데 사용된 것과 동일한 부호화 방식을 사용하여 부호화됨을 특징으로 하는 부호화 장치.
  12. 제 10 항에 있어서,
    상기 적어도 하나의 패킷은 소정 패킷 포맷에 따라 패킷화하여 전송되며, 각 패킷의 헤더는 해당하는 하나의 소스 페이로드의 페이로드 길이를 지시하는 길이 필드를 포함함을 특징으로 하는 부호화 장치.
  13. 데이터 통신 시스템에서 복호화 방법에 있어서,
    적어도 하나의 패킷을 송신기로부터 수신하는 과정과,
    복수의 생성 모드들 중 상기 적어도 하나의 패킷의 생성에 적용된 하나의 생성 모드를 지시하는 정보 필드를 포함하는 시그널링 메시지를 상기 송신기로부터 수신하는 과정과,
    상기 적어도 하나의 패킷을 복호화하여 복수의 심볼 페이로드들을 포함하는 심볼 블록을 생성하는 과정과,
    상기 정보 필드에 의해 지시된 상기 생성 모드에 따라 상기 심볼 블록으로부터, 복수의 소스 페이로드들을 포함하는 하나의 소스 블록을 생성하는 과정을 포함하며,
    상기 복수의 생성 모드들의 각각은 상기 심볼 블록이 상기 소스 블록 내에 포함되는 상기 복수의 소스 페이로드들에 의해 구성되는 방식을 지시하며,
    상기 복수의 생성 모드들 중 적어도 하나에서, 상기 소스 블록은 복수의 서브 블록들로 분할되고, 각 서브 블록은 상기 복수의 소스 페이로드들 중 적어도 하나를 포함하고, 상기 서브 블록들 중 하나의 서브 블록의 적어도 일부는 상기 심볼 페이로드들 중 하나의 심볼 페이로드에 포함되며, 상기 소스 페이로드들 중 하나의 소스 페이로드는 상기 심볼 블록 내의 심볼 페이로드들 중 적어도 하나의 심볼 페이로드 내에 배치되는 것을 특징으로 하는 복호화 방법.
  14. 삭제
  15. 제 13 항에 있어서, 상기 생성 모드들은,
    상기 소스 페이로드들이 동일한 크기를 가지는 경우 상기 심볼 페이로드들을 상기 소스 페이로드들과 동일하게 생성하는 제1 생성 모드와,
    상기 소스 페이로드들이 가변 크기를 가지는 경우, 상기 심볼 페이로드들이 동일한 크기 S를 가지도록 만들기 위하여, 상기 소스 페이로드들 중 적어도 하나에 패딩 데이터를 부가함으로써 상기 심볼 페이로드들을 생성하는 제2 생성 모드와,
    상기 소스 페이로드들이 가변 크기를 가지는 경우, 상기 소스 블록을 적어도 하나의 소스 페이로드들을 각각 포함하는 복수의 서브 블록들로 분할하고, 각 서브 블록의 소스 페이로드들을 직렬화하며, 상기 직렬화된 소스 페이로드들의 각 S 바이트를 하나의 심볼 페이로드로 구성하며, 상기 직렬화된 소스 페이로드들의 나머지에 패딩 데이터를 부가함으로써 상기 심볼 페이로드들을 구성하는 제3 생성 모드 중 적어도 하나를 포함함을 특징으로 하는 복호화 방법.
  16. 제 13 항에 있어서,
    상기 소스 페이로드들의 길이 필드들을 포함하는 길이 소스 블록을 부호화하여 생성된, 페이로드 길이에 대한 패리티 블록을 상기 송신기로부터 수신하는 과정과,
    상기 페이로드 길이에 대한 패리티 블록을 복호하여 상기 소스 페이로드들의 길이들을 획득하는 과정과,
    상기 소스 페이로드들의 길이들을 이용하여, 상기 복호된 소스 페이로드들을 포함하는 상기 심볼 블록을 상기 소스 블록으로 전환하는 과정을 더 포함하는 것을 특징으로 하는 복호화 방법.
  17. 제 16 항에 있어서, 상기 페이로드 길이에 대한 패리티 블록은,
    상기 길이 소스 블록 중 홀수번째 길이 필드들로 구성된 홀수 소스 블록을 부호화하여 생성되는 홀수 패리티 블록과, 짝수번째 길이 필드들로 구성된 짝수 소스 블록을 부호화하여 생성되는 짝수 패리티 블록을 포함하며,
    상기 홀수 소스 블록과 상기 짝수 소스 블록은 상기 심볼 블록을 부호화하는데 사용된 것과 동일한 부호화 방식을 사용하여 부호화됨을 특징으로 하는 복호화 방법.
  18. 제 16 항에 있어서,
    상기 적어도 하나의 패킷은 소정 패킷 포맷에 따라 패킷화하여 전송되며, 각 패킷의 헤더는 해당하는 하나의 소스 페이로드의 페이로드 길이를 지시하는 길이 필드를 포함함을 특징으로 하는 복호화 방법.
  19. 데이터 통신 시스템에서 복호화 장치에 있어서,
    적어도 하나의 패킷을 송신기로부터 수신하고, 복수의 생성 모드들 중 상기 적어도 하나의 패킷의 생성에 적용된 하나의 생성 모드를 지시하는 정보 필드를 포함하는 시그널링 메시지를 상기 송신기로부터 수신하는 수신기와,
    상기 적어도 하나의 패킷을 복호화하여 복수의 심볼 페이로드들을 포함하는 심볼 블록을 생성하는 복호기와,
    상기 정보 필드에 의해 지시된 상기 생성 모드에 따라 상기 심볼 블록으로부터, 복수의 소스 페이로드들을 포함하는 하나의 소스 블록을 생성하는 변환기를 포함하고,
    상기 복수의 생성 모드들의 각각은 상기 심볼 블록이 상기 소스 블록 내에 포함되는 상기 복수의 소스 페이로드들에 의해 구성되는 방식을 지시하며,
    상기 복수의 생성 모드들 중 적어도 하나에서, 상기 소스 블록은 복수의 서브 블록들로 분할되고, 각 서브 블록은 상기 복수의 소스 페이로드들 중 적어도 하나를 포함하고, 상기 서브 블록들 중 하나의 서브 블록의 적어도 일부는 상기 심볼 페이로드들 중 하나의 심볼 페이로드에 포함되며, 상기 소스 페이로드들 중 하나의 소스 페이로드는 상기 심볼 블록 내의 심볼 페이로드들 중 적어도 하나의 심볼 페이로드 내에 배치되는 것을 특징으로 하는 복호화 장치.
  20. 삭제
  21. 제 19 항에 있어서, 상기 생성 모드들은,
    상기 소스 페이로드들이 동일한 크기를 가지는 경우 상기 심볼 페이로드들을 상기 소스 페이로드들과 동일하게 생성하는 제1 생성 모드와,
    상기 소스 페이로드들이 가변 크기를 가지는 경우, 상기 심볼 페이로드들이 동일한 크기 S를 가지도록 만들기 위하여, 상기 소스 페이로드들 중 적어도 하나에 패딩 데이터를 부가함으로써 상기 심볼 페이로드들을 생성하는 제2 생성 모드와,
    상기 소스 페이로드들이 가변 크기를 가지는 경우, 상기 소스 블록을 적어도 하나의 소스 페이로드들을 각각 포함하는 복수의 서브 블록들로 분할하고, 각 서브 블록의 소스 페이로드들을 직렬화하며, 상기 직렬화된 소스 페이로드들의 각 S 바이트를 하나의 심볼 페이로드로 구성하며, 상기 직렬화된 소스 페이로드들의 나머지에 패딩 데이터를 부가함으로써 상기 심볼 페이로드들을 구성하는 제3 생성 모드 중 적어도 하나를 포함함을 특징으로 하는 복호화 장치.
  22. 제 19 항에 있어서, 상기 수신기는, 상기 소스 페이로드들의 길이 필드들을 포함하는 길이 소스 블록을 부호화하여 생성된, 페이로드 길이에 대한 패리티 블록을 상기 송신기로부터 수신하며,
    상기 복호기는, 상기 페이로드 길이에 대한 패리티 블록을 복호하여 상기 소스 페이로드들의 길이들을 획득하고,
    상기 변환기는, 상기 소스 페이로드들의 길이들을 이용하여, 상기 복호된 소스 페이로드들을 포함하는 상기 심볼 블록을 상기 소스 블록으로 전환하는 것을 특징으로 하는 복호화 장치.
  23. 제 22 항에 있어서, 상기 페이로드 길이에 대한 패리티 블록은,
    상기 길이 소스 블록 중 홀수번째 길이 필드들로 구성된 홀수 소스 블록을 부호화하여 생성되는 홀수 패리티 블록과, 짝수번째 길이 필드들로 구성된 짝수 소스 블록을 부호화하여 생성되는 짝수 패리티 블록을 포함하며,
    상기 홀수 소스 블록과 상기 짝수 소스 블록은 상기 심볼 블록을 부호화하는데 사용된 것과 동일한 부호화 방식을 사용하여 부호화됨을 특징으로 하는 복호화 장치.
  24. 제 22 항에 있어서,
    상기 적어도 하나의 패킷은 소정 패킷 포맷에 따라 패킷화하여 전송되며, 각 패킷의 헤더는 해당하는 하나의 소스 페이로드의 페이로드 길이를 지시하는 길이 필드를 포함함을 특징으로 하는 복호화 장치.
KR1020110104870A 2011-10-13 2011-10-13 데이터 통신 시스템에서 부호화 장치 및 방법 KR101829923B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020110104870A KR101829923B1 (ko) 2011-10-13 2011-10-13 데이터 통신 시스템에서 부호화 장치 및 방법
US13/651,928 US9288011B2 (en) 2011-10-13 2012-10-15 Encoding apparatus and encoding method in data communication system
PCT/KR2012/008385 WO2013055180A1 (en) 2011-10-13 2012-10-15 Encoding apparatus and encoding method in data communication system
CN201280050511.3A CN103858352B (zh) 2011-10-13 2012-10-15 数据通信系统中的编码装置及编码方法
EP12839262.8A EP2766995B1 (en) 2011-10-13 2012-10-15 Encoding apparatus and encoding method in data communication system
JP2014535655A JP6181654B2 (ja) 2011-10-13 2012-10-15 データ通信システムにおける符号化装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110104870A KR101829923B1 (ko) 2011-10-13 2011-10-13 데이터 통신 시스템에서 부호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20130040087A KR20130040087A (ko) 2013-04-23
KR101829923B1 true KR101829923B1 (ko) 2018-02-22

Family

ID=48082119

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110104870A KR101829923B1 (ko) 2011-10-13 2011-10-13 데이터 통신 시스템에서 부호화 장치 및 방법

Country Status (6)

Country Link
US (1) US9288011B2 (ko)
EP (1) EP2766995B1 (ko)
JP (1) JP6181654B2 (ko)
KR (1) KR101829923B1 (ko)
CN (1) CN103858352B (ko)
WO (1) WO2013055180A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180104661A (ko) * 2016-03-21 2018-09-21 이노바 세미컨덕터스 게엠베하 효율적인 제어 어셈블리 및 제어 방법

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141468B2 (en) * 2011-12-12 2015-09-22 Cleversafe, Inc. Managing memory utilization in a distributed storage and task network
US8966339B1 (en) * 2012-12-18 2015-02-24 Western Digital Technologies, Inc. Decoder supporting multiple code rates and code lengths for data storage systems
KR101519952B1 (ko) 2013-05-03 2015-05-14 고려대학교 산학협력단 목적지 노드 기반 네트워크 혼잡 감지 장치 및 방법
JP6313170B2 (ja) * 2013-09-30 2018-04-18 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 送信方法、受信方法、送信装置、及び受信装置
WO2015045362A1 (ja) * 2013-09-30 2015-04-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 送信方法、受信方法、送信装置、及び受信装置
KR20150047082A (ko) * 2013-10-23 2015-05-04 한국전자통신연구원 Mmt 페이로드 헤더 구성 장치 및 방법
KR20150050133A (ko) 2013-10-31 2015-05-08 삼성전자주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
US9596218B1 (en) * 2014-03-03 2017-03-14 Google Inc. Methods and systems of encrypting messages using rateless codes
EP3125455B1 (en) * 2014-03-28 2022-05-04 Samsung Electronics Co., Ltd. Method and apparatus for generating and recovering packet in broadcasting and/or communication system
US9455750B2 (en) * 2014-07-28 2016-09-27 Qualcomm Incorporated Source block size selection
JP6618252B2 (ja) * 2014-12-16 2019-12-11 ソニーセミコンダクタソリューションズ株式会社 符号化装置、符号化方法、復号装置、復号方法、プログラム、および通信システム
US10721538B2 (en) * 2015-03-08 2020-07-21 Lg Electronics Inc. Apparatus and method for transmitting and receiving broadcast signal
WO2016148537A1 (ko) * 2015-03-19 2016-09-22 엘지전자(주) 방송 신호 송수신 장치 및 방법
KR20170086145A (ko) * 2016-01-15 2017-07-26 주식회사 에치에프알 Ofdm 기반의 무선통신시스템에서 채널 부호화/복호화 방법 및 그를 위한 장치
US10003434B2 (en) * 2016-04-08 2018-06-19 Cisco Technology, Inc. Efficient error correction that aggregates different media into encoded container packets
CN108667559B (zh) * 2017-03-31 2020-12-15 华为技术有限公司 一种通信方法及设备
US11218171B2 (en) * 2017-04-12 2022-01-04 Sony Semiconductor Solutions Corporation Shortened LDPC codes with repetition of code bits for low throughput networks
US10761743B1 (en) 2017-07-17 2020-09-01 EMC IP Holding Company LLC Establishing data reliability groups within a geographically distributed data storage environment
US10817388B1 (en) 2017-07-21 2020-10-27 EMC IP Holding Company LLC Recovery of tree data in a geographically distributed environment
US10684780B1 (en) 2017-07-27 2020-06-16 EMC IP Holding Company LLC Time sensitive data convolution and de-convolution
JP7083694B2 (ja) * 2017-07-27 2022-06-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 送信装置及び送信方法
US10880040B1 (en) 2017-10-23 2020-12-29 EMC IP Holding Company LLC Scale-out distributed erasure coding
US10528260B1 (en) 2017-10-26 2020-01-07 EMC IP Holding Company LLC Opportunistic ‘XOR’ of data for geographically diverse storage
US10382554B1 (en) 2018-01-04 2019-08-13 Emc Corporation Handling deletes with distributed erasure coding
US10817374B2 (en) * 2018-04-12 2020-10-27 EMC IP Holding Company LLC Meta chunks
US10579297B2 (en) 2018-04-27 2020-03-03 EMC IP Holding Company LLC Scaling-in for geographically diverse storage
US10936196B2 (en) 2018-06-15 2021-03-02 EMC IP Holding Company LLC Data convolution for geographically diverse storage
US11023130B2 (en) 2018-06-15 2021-06-01 EMC IP Holding Company LLC Deleting data in a geographically diverse storage construct
US10719250B2 (en) 2018-06-29 2020-07-21 EMC IP Holding Company LLC System and method for combining erasure-coded protection sets
US11436203B2 (en) 2018-11-02 2022-09-06 EMC IP Holding Company LLC Scaling out geographically diverse storage
US10901635B2 (en) 2018-12-04 2021-01-26 EMC IP Holding Company LLC Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns
US11119683B2 (en) 2018-12-20 2021-09-14 EMC IP Holding Company LLC Logical compaction of a degraded chunk in a geographically diverse data storage system
US10931777B2 (en) 2018-12-20 2021-02-23 EMC IP Holding Company LLC Network efficient geographically diverse data storage system employing degraded chunks
US10892782B2 (en) 2018-12-21 2021-01-12 EMC IP Holding Company LLC Flexible system and method for combining erasure-coded protection sets
US10768840B2 (en) 2019-01-04 2020-09-08 EMC IP Holding Company LLC Updating protection sets in a geographically distributed storage environment
US11023331B2 (en) 2019-01-04 2021-06-01 EMC IP Holding Company LLC Fast recovery of data in a geographically distributed storage environment
US10942827B2 (en) 2019-01-22 2021-03-09 EMC IP Holding Company LLC Replication of data in a geographically distributed storage environment
US10942825B2 (en) 2019-01-29 2021-03-09 EMC IP Holding Company LLC Mitigating real node failure in a mapped redundant array of independent nodes
US10936239B2 (en) 2019-01-29 2021-03-02 EMC IP Holding Company LLC Cluster contraction of a mapped redundant array of independent nodes
US10866766B2 (en) 2019-01-29 2020-12-15 EMC IP Holding Company LLC Affinity sensitive data convolution for data storage systems
US10846003B2 (en) 2019-01-29 2020-11-24 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage
US10944826B2 (en) 2019-04-03 2021-03-09 EMC IP Holding Company LLC Selective instantiation of a storage service for a mapped redundant array of independent nodes
US11029865B2 (en) 2019-04-03 2021-06-08 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes
US11121727B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Adaptive data storing for data storage systems employing erasure coding
US11113146B2 (en) 2019-04-30 2021-09-07 EMC IP Holding Company LLC Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system
US11119686B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Preservation of data during scaling of a geographically diverse data storage system
US11748004B2 (en) 2019-05-03 2023-09-05 EMC IP Holding Company LLC Data replication using active and passive data storage modes
US11209996B2 (en) 2019-07-15 2021-12-28 EMC IP Holding Company LLC Mapped cluster stretching for increasing workload in a data storage system
US11449399B2 (en) 2019-07-30 2022-09-20 EMC IP Holding Company LLC Mitigating real node failure of a doubly mapped redundant array of independent nodes
US11023145B2 (en) 2019-07-30 2021-06-01 EMC IP Holding Company LLC Hybrid mapped clusters for data storage
KR20220029751A (ko) 2019-09-10 2022-03-08 후아웨이 테크놀러지 컴퍼니 리미티드 패킷 처리 방법 및 장치, 그리고 컴퓨터 저장 매체
US10841357B1 (en) * 2019-09-12 2020-11-17 Dialpad, Inc. Using transport layer protocol packet headers to encode application layer attributes in an audiovisual over internet protocol (AVoIP) platform
US11228322B2 (en) 2019-09-13 2022-01-18 EMC IP Holding Company LLC Rebalancing in a geographically diverse storage system employing erasure coding
US11449248B2 (en) 2019-09-26 2022-09-20 EMC IP Holding Company LLC Mapped redundant array of independent data storage regions
US11435910B2 (en) 2019-10-31 2022-09-06 EMC IP Holding Company LLC Heterogeneous mapped redundant array of independent nodes for data storage
US11119690B2 (en) 2019-10-31 2021-09-14 EMC IP Holding Company LLC Consolidation of protection sets in a geographically diverse data storage environment
US11288139B2 (en) 2019-10-31 2022-03-29 EMC IP Holding Company LLC Two-step recovery employing erasure coding in a geographically diverse data storage system
US11435957B2 (en) 2019-11-27 2022-09-06 EMC IP Holding Company LLC Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes
US11144220B2 (en) 2019-12-24 2021-10-12 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes
US11231860B2 (en) 2020-01-17 2022-01-25 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage with high performance
WO2021179287A1 (en) * 2020-03-13 2021-09-16 Qualcomm Incorporated Raptor code feedback
US11507308B2 (en) 2020-03-30 2022-11-22 EMC IP Holding Company LLC Disk access event control for mapped nodes supported by a real cluster storage system
US11288229B2 (en) 2020-05-29 2022-03-29 EMC IP Holding Company LLC Verifiable intra-cluster migration for a chunk storage system
US11693983B2 (en) 2020-10-28 2023-07-04 EMC IP Holding Company LLC Data protection via commutative erasure coding in a geographically diverse data storage system
US11847141B2 (en) 2021-01-19 2023-12-19 EMC IP Holding Company LLC Mapped redundant array of independent nodes employing mapped reliability groups for data storage
US11625174B2 (en) 2021-01-20 2023-04-11 EMC IP Holding Company LLC Parity allocation for a virtual redundant array of independent disks
US11354191B1 (en) 2021-05-28 2022-06-07 EMC IP Holding Company LLC Erasure coding in a large geographically diverse data storage system
US11449234B1 (en) 2021-05-28 2022-09-20 EMC IP Holding Company LLC Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes
WO2022264538A1 (ja) * 2021-06-16 2022-12-22 ソニーグループ株式会社 通信装置、及び通信方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060077890A1 (en) 2004-10-07 2006-04-13 Nokia Corporation Efficient source blocking algorithm for FEC for MBMS streaming

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0719065A1 (en) 1994-12-20 1996-06-26 International Business Machines Corporation Multipurpose packet switching node for a data communication network
JP2002074862A (ja) * 2000-08-25 2002-03-15 Toshiba Corp データ処理方法及び装置及び記録媒体及び再生方法及び装置
WO2003040920A1 (en) 2001-11-05 2003-05-15 Nokia Corporation Partially filling block interleaver for a communication system
JP2003199075A (ja) * 2001-12-27 2003-07-11 Matsushita Electric Ind Co Ltd データ伝送方法、データ伝送装置及びデータ受信装置
JP3822508B2 (ja) * 2002-03-08 2006-09-20 日本電信電話株式会社 パケット伝送システムとそのデータ送信装置及びデータ受信装置
KR100458878B1 (ko) 2002-05-03 2004-12-03 학교법인 경희대학교 Fec 코딩 방식에 기초한 가변길이 패킷 송수신 방법
US7177658B2 (en) * 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
US7369548B2 (en) * 2002-12-20 2008-05-06 Intel Corporation Communicating information using a configurable protocol
EP1501226B1 (en) * 2003-07-24 2007-09-19 Matsushita Electric Industrial Co., Ltd. Method, encoder and communication device for encoding parallel concatenated data
US7581155B2 (en) 2003-12-18 2009-08-25 Electronics And Telecommunications Research Institute Apparatus for FEC supporting transmission of variable-length frames in TDMA system and method of using the same
US7447978B2 (en) * 2004-11-16 2008-11-04 Nokia Corporation Buffering packets of a media stream
KR100772390B1 (ko) 2006-01-23 2007-11-01 삼성전자주식회사 방향 보간 방법 및 그 장치와, 그 보간 방법이 적용된부호화 및 복호화 방법과 그 장치 및 복호화 장치
JP5184527B2 (ja) * 2006-07-25 2013-04-17 トムソン ライセンシング スタガーキャスティング及びクロスパケット前方誤り訂正を用いたインターネットプロトコル型無線ネットワークでのバーストパケット損失からの回復
US8990663B2 (en) * 2006-12-21 2015-03-24 Thomson Licensing Method to support forward error correction for real-time audio and video data over internet protocol networks
US7930616B2 (en) * 2007-04-12 2011-04-19 Cisco Technology, Inc. Variable forward error correction for optical communication links
KR101286912B1 (ko) * 2009-12-18 2013-07-16 한국전자통신연구원 3차원 저장장치를 이용한 가변길이 패킷의 fec 인코딩 및 fec 디코딩 방법
JP5492618B2 (ja) * 2010-03-19 2014-05-14 日本電信電話株式会社 誤り訂正符号化装置及び方法及びプログラム及び誤り訂正復号化装置及び方法及びプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060077890A1 (en) 2004-10-07 2006-04-13 Nokia Corporation Efficient source blocking algorithm for FEC for MBMS streaming

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180104661A (ko) * 2016-03-21 2018-09-21 이노바 세미컨덕터스 게엠베하 효율적인 제어 어셈블리 및 제어 방법
KR102110064B1 (ko) * 2016-03-21 2020-05-12 이노바 세미컨덕터스 게엠베하 효율적인 제어 어셈블리 및 제어 방법

Also Published As

Publication number Publication date
CN103858352A (zh) 2014-06-11
JP6181654B2 (ja) 2017-08-16
EP2766995B1 (en) 2018-09-19
US9288011B2 (en) 2016-03-15
KR20130040087A (ko) 2013-04-23
WO2013055180A1 (en) 2013-04-18
CN103858352B (zh) 2018-06-05
JP2014532371A (ja) 2014-12-04
EP2766995A4 (en) 2015-07-22
EP2766995A1 (en) 2014-08-20
US20130097470A1 (en) 2013-04-18

Similar Documents

Publication Publication Date Title
KR101829923B1 (ko) 데이터 통신 시스템에서 부호화 장치 및 방법
KR101995221B1 (ko) 통신 시스템에서 패킷 송수신 장치 및 방법
US9667275B2 (en) Apparatus and method for transmitting and receiving packet in broadcasting and communication system
KR101933465B1 (ko) 이동 통신 시스템에서 패킷 송수신 장치 및 방법
KR101983032B1 (ko) 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법
KR20130101967A (ko) 순방향 오류정정스킴을 사용하는 패킷 송수신 장치 및 방법
JP6486684B2 (ja) 移動通信システムにおける順方向誤り訂正パケットを送受信する装置及び方法
JP6519474B2 (ja) 情報処理装置、情報処理方法及びプログラム
KR102163338B1 (ko) 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법
EP2842253B1 (en) Apparatus and method for transmitting a packet in a communication system
JP6511472B2 (ja) ブロードキャスティング及び/又は通信システムにおけるパケットの生成及び復元のための方法及び装置
KR102127685B1 (ko) 순방향 오류 정정 패킷 송수신 장치 및 방법
KR101874116B1 (ko) 멀티미디어 시스템에서 순방향 오류 정정 부호화 방법 및 장치
KR101829464B1 (ko) 패킷 데이터의 인코딩 방법 및 장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant