KR20200024319A - 미디어 콘텐츠 기반의 자가 적응 시스템 코드 fec의 코딩 및 디코딩 방법, 장치, 시스템 및 매체 - Google Patents

미디어 콘텐츠 기반의 자가 적응 시스템 코드 fec의 코딩 및 디코딩 방법, 장치, 시스템 및 매체 Download PDF

Info

Publication number
KR20200024319A
KR20200024319A KR1020207003904A KR20207003904A KR20200024319A KR 20200024319 A KR20200024319 A KR 20200024319A KR 1020207003904 A KR1020207003904 A KR 1020207003904A KR 20207003904 A KR20207003904 A KR 20207003904A KR 20200024319 A KR20200024319 A KR 20200024319A
Authority
KR
South Korea
Prior art keywords
data packet
coding
priority
matrix
packet
Prior art date
Application number
KR1020207003904A
Other languages
English (en)
Other versions
KR102383892B1 (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
Priority claimed from CN201710561850.2A external-priority patent/CN109245850B/zh
Priority claimed from CN201710973473.3A external-priority patent/CN109687934B/zh
Application filed by 상하이 지아오통 유니버시티 filed Critical 상하이 지아오통 유니버시티
Publication of KR20200024319A publication Critical patent/KR20200024319A/ko
Application granted granted Critical
Publication of KR102383892B1 publication Critical patent/KR102383892B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0043Realisations of complexity reduction techniques, e.g. use of look-up tables
    • 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/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/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
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • 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/0056Systems characterized by the type of code used
    • H04L1/007Unequal error protection
    • 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/0076Distributed coding, e.g. network coding, involving channel coding
    • H04L65/607
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Error Detection And Correction (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 미디어 콘텐츠의 중요도에 근거하여 소스 데이터를 우선수위에 따라 N 종류의 소스 데이터 패킷으로 구분하는 단계; N 종류의 소스 데이터 패킷 및 그 우선순위에 따라 N 종류의 중간 코드를 생성하는 단계; N 종류의 중간 코드를 기반으로 채널 상황에 따라 N 종류의 소스 데이터의 복구 데이터를 설정하고, N 종류의 시스템 코드 코딩 심볼을 생성하는 단계; 상기 코딩 심볼을 수신하고 디코딩 수요에 따라 코딩 심볼을 정렬하는 단계; 수신한 코딩 심볼 수를 기반으로 경우에 따라 중간 코드 워드를 디코딩하고, 상기 중간 코드에 따라 상응하는 소스 데이터 패킷을 복구하는 단계;를 포함하는 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC 코딩 및 디코딩 방법, 장치, 시스템 및 매체를 제공한다. 본 발명은 미디어 콘텐츠 품질을 최대한 확보하고, FEC로 인한 데이터 중복을 감소시키며, 소스 데이터 스트림을 구분할 필요가 없고, 송신단의 FEC 코딩의 복잡성을 낮추며, FEC 코딩의 효율을 향상시키고, 현재 네트워크 상태의 변화에 따라 동적으로 코딩 방식을 조정할 수 있어 적응성이 더욱 강하다.

Description

미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법, 장치, 시스템 및 매체
본 출원은 출원일이 2017년 10월 18일이고 출원번호가 CN201710973473.3이며, 특허명칭이 "미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 방법, 장치 및 시스템"의 우선권을 주장한다.
본 출원은 출원일이 2017년 07월 11일이고 출원번호가 CN201710561850.2이며, 특허명칭이 "미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법"의 우선권을 주장한다.
본 발명은 멀티미디어 전송 기술 분야에 관한 것으로, 구체적으로는 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC(Forward Error Correction, 순방향 에러 정정)의 코딩 및 디코딩 방법, 장치, 시스템 및 매체에 관한 것이다.
이종 네트워크 미디어 서비스 시스템에서 인터넷 프로토콜 또는 브로드캐스트 프로토콜을 통해 콘텐츠를 단말에 배포하는데, 인터넷은 IP/TCP 또는 UDP 메시지를 사용하여 미디어 데이터를 전송하고, 브로드캐스트는 MPEG2-TS를 통해 콘텐츠를 전송한다. UDP 메시지는 복수개의 네트워크 장치를 거친 후 손실될 가능성이 있으며, 브로드캐스트 TS 스트림은 전송 환경의 영향으로 인해 에러 코드가 발생할 가능성이 있어 단말 측 화면이 파손되거나 사운드가 일시 중지될 수 있다.
FEC(Forward Error Correction, 순방향 에러 정정) 기술은 통신 시스템에서 널리 적용하고 있는 코딩 기술이다. 서버 측에서 미디어 데이터에 대해 에러 정정 코딩을 수행하고 중복 정보를 추가하여 함께 전송하며, 단말 측에서 역방향 FEC 디코딩을 수행함으로써, 손실된 메시지를 복구한다. 전형적인 블록 코드를 예로 들면, 그 기본 원리는 다음과 같다. 즉, 송신단에서 k bit의 정보를 하나의 블록으로 코딩하고 (n-k)bit의 중복 검사 정보를 추가하여 n bit 길이의 코드 워드를 구성한다. 코드 워드는 채널을 거쳐 수신단에 도달한 후, 오류가 에러 정정 범위 내에 있으면 디코딩을 통해 오류 bit를 검사하고 정정할 수 있기 때문에, 채널에 의한 간섭에 저항하여 시스템의 비트 에러율을 효과적으로 낮추고, 통신 시스템의 신뢰성을 향상시킨다. 그러나, FEC 처리는 중복 오버헤드의 대가로 시스템의 비트 에러율을 낮추는 것이므로, 과도한 FEC 코딩은 시스템의 실시간성 및 네트워크 상태에도 부담을 줄 수 있다.
차등 오류 보호(Unequal Error Protection, UEP)는 소스 채널을 결합하여 코딩하는 것 중의 하나이다. 그 핵심 사상은 코드 스트림의 각 부분 데이터의 중요성에 따라 각 부분 데이터에 대해 상이한 채널 보호 메커니즘을 채택하는 것인데, 즉 중요한 코드 스트림을 중점적으로 보호하는 것이다. UEP는 중요하지 않은 코드 스트림의 노이즈 방지 성능을 저하시켰으나, 에러 코드를 방지하는 시스템의 전체 성능을 향상시키는 데 유리하다.
디지털 파운틴 코드(Digital Fountain Code)는 일종의 순방향 에러 정정 코딩 기술로서, 전송 과정에서 피드백 및 자동 재전송 메커니즘이 필요하지 않으므로 신호 왕복 지연 및 브로드캐스트에 적용할 때의 피드백 충돌 문제를 피할 수 있다. 디지털 파운틴의 기본 사상은 다음과 같다. 즉, 송신단에서 원시 데이터를
Figure pct00001
개의 데이터 심볼로 분할하고 이러한 데이터 심볼들을 코딩하여 하나의 임의 길이의 코딩 심볼 코드 스트림을 출력하며, 수신단에서
Figure pct00002
(
Figure pct00003
Figure pct00004
보다 약간 큼)개의 코딩 심볼을 정확하게 수신하기만 하면 매우 큰 확률로
Figure pct00005
개의 데이터 심볼을 모두 복구시킬 수 있다. 디지털 파운틴 코드 자체가 UEP 성능을 가지고 있어 중요성이 다른 데이터를 보호할 수 있다.
종래 기술의 결함을 감안하여, 본 발명의 목적은 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법, 장치, 시스템 및 매체를 제공하는 것이다.
본 발명에 따른 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법은,
미디어 콘텐츠의 중요도에 근거하여 소스 데이터를 우선순위에 따라 N(1보다 큰 정수) 종류의 소스 데이터 패킷으로 구분하는 단계;
소스 데이터와 N 종류의 소스 데이터 패킷의 우선순위에 따라 N 종류의 중간 코드를 생성하는 단계;
상기 N 종류의 중간 코드에 근거하여 채널 상황에 따라 N 종류의 소스 데이터의 복구 데이터를 설정하고, N 종류의 코딩 심볼을 생성하는 단계;
상기 코딩 심볼을 수신하고, 디코딩 수요에 따라 상기 코딩 심볼을 정렬하여 상기 코딩 심볼을 디코딩하는 단계; 및
수신한 코딩 심볼에 따라 우선순위가 높은 중간 코드를 먼저 디코딩하고, 해당 중간 코드에 따라 상응하는 소스 데이터 패킷을 복구하는 단계를 포함한다.
바람직하게는, 상기 소스 데이터와 N 종류의 소스 데이터 패킷의 우선순위에 따라 N 종류의 중간 코드를 생성하는 단계는 다음과 같은 단계를 포함한다.
N 종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스를 구성하여
Figure pct00006
(i=1, 2, ..., N)로 기록한다.
Figure pct00007
식에서
Figure pct00008
i번째 소스 데이터 패킷에 대응하는 코딩 매트릭스를 나타내고,
Figure pct00009
i번째 소스 데이터 패킷에 대응하는 LDPC 매트릭스와 단위 매트릭스로 구성된 공동 매트릭스를 나타내며,
Figure pct00010
i번째 소스 데이터 패킷에 대응하는 LT 코딩 매트릭스를 나타낸다.
N 종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스에 따라 소스 데이터의 코딩 매트릭스
Figure pct00011
를 구성한다.
Figure pct00012
Figure pct00013
이면,
Figure pct00014
식에서
Figure pct00015
,
Figure pct00016
, ...,
Figure pct00017
, ...,
Figure pct00018
은 각각 N 종류의 소스 데이터 패킷의 중간 코드에 대응하고,
Figure pct00019
,
Figure pct00020
,...,
Figure pct00021
, ...,
Figure pct00022
은 각각 N 종류의 소스 데이터 패킷의 데이터에 대응하며, 위 첨자
Figure pct00023
은 역매트릭스 연산자이다.
바람직하게는, 상기 N 종류의 중간 코드에 근거하여 채널 상황에 따라 N 종류의 소스 데이터의 복구 데이터를 설정하는 단계는,
Figure pct00024
를 포함하고,
식에서
Figure pct00025
,
Figure pct00026
,...,
Figure pct00027
, ...,
Figure pct00028
은 각각 N개의 소스 데이터 패킷의 복구 데이터에 대응하고,
Figure pct00029
Figure pct00030
과 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내며,
Figure pct00031
Figure pct00032
와 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내고, i=1, 2, ..., N이다.
바람직하게는, N의 값이 2인 경우, 중요도가 다른 데이터에 대해 다음과 같은 상응하는 중간 코드를 생성할 수 있다.
Figure pct00033
LT 코딩 매트릭스의 구조를 변경하여
Figure pct00034
,
Figure pct00035
,
Figure pct00036
을 획득하며,
Figure pct00037
Figure pct00038
의 생성방식이 동일하고,
Figure pct00039
Figure pct00040
의 생성방식이 동일하며,
Figure pct00041
Figure pct00042
과 동일한 생성방식을 가진 LT 코딩 매트릭스를 나타내고,
Figure pct00043
Figure pct00044
와 동일한 생성방식을 가진 LT 코딩 매트릭스를 나타내며,
Figure pct00045
Figure pct00046
과 동일한 생성방식을 가진 LT 코딩 매트릭스를 나타낸다.
획득한 복구 데이터
Figure pct00047
은 단지 우선순위가 1인 데이터와 관련이 있고, 복구 데이터
Figure pct00048
는 우선순위 1과 2의 데이터와 모두 관련이 있으며,
Figure pct00049
를 획득한다.
바람직하게는, N의 값이 2인 경우, 상기 코딩 심볼을 수신하고 상기 코딩 심볼을 디코딩하는 단계는 다음과 같은 단계를 포함한다.
제1단계의 디코딩에서 복구 매트릭스
Figure pct00050
및 수신한 소스 데이터 패킷에 따라 중간 코드를 획득하는데, 구체적으로는 다음과 같다.
Figure pct00051
Figure pct00052
식에서
Figure pct00053
은 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure pct00054
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
Figure pct00055
은 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure pct00056
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
Figure pct00057
는 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure pct00058
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
Figure pct00059
는 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure pct00060
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
Figure pct00061
은 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure pct00062
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타낸다.
Figure pct00063
로 하고, 수신한 대응하는 우선순위 하의 소스 데이터 패킷 수 및 수신한 데이터 패킷 총수에 따라 디코딩을 수행한다.
수신한 코딩 심볼의 총수가 소스 데이터에서 생성한 코딩 심볼의 개수보다 작고
Figure pct00064
의 행수가 열수보다 작은 경우,
Figure pct00065
,
Figure pct00066
는 모두 디코딩할 수 없으며,
수신한 코딩 심볼의 총수가 소스 데이터에서 생성한 코딩 심볼의 개수보다 작고
Figure pct00067
의 행수가 열수보다 크거나 같은 경우, 만약
Figure pct00068
의 행수가 열수보다 크거나 같으면
Figure pct00069
은 가역적이며, 대응하는 역매트릭스는
Figure pct00070
로 기록되고,
Figure pct00071
을 획득할 수 있으며,
Figure pct00072
는 디코딩할 수 없고,
식에서
Figure pct00073
은 수신한 우선순위가 1인 소스 데이터를 나타내고,
Figure pct00074
은 수신한 우선순위가 1인 소스 데이터의 복구 데이터를 나타낸다.
수신한 코딩 심볼의 총수가 소스 데이터에서 생성한 코딩 심볼의 개수보다 크거나 같고
Figure pct00075
의 행수가 열수보다 크거나 같은 경우, 만약
Figure pct00076
의 행수가 열수보다 크거나 같으면
Figure pct00077
은 가역적이며, 대응하는 역매트릭스는
Figure pct00078
로 기록되고, 만약
Figure pct00079
의 행수가 열수보다 크거나 같으면
Figure pct00080
는 가역적이고, 대응하는 역매트릭스는
Figure pct00081
로 기록되며, 만약
Figure pct00082
Figure pct00083
가 모두 가역적이면
Figure pct00084
는 가역적이고 대응하는 역매트릭스는
Figure pct00085
로 기록되며,
Figure pct00086
로 기록되고
Figure pct00087
이며,
Figure pct00088
를 획득하고,
만약
Figure pct00089
의 행수가 열수보다 작으면
Figure pct00090
는 역매트릭스가 존재하지 않고
Figure pct00091
만을 구할 수 있으며,
식에서
Figure pct00092
는 수신한 우선순위가 2인 소스 데이터를 나타내고,
Figure pct00093
는 수신한 우선순위가 1과 2인 소스 데이터의 복구 데이터를 나타낸다.
수신한 코딩 심볼의 총수가 소스 데이터에서 생성한 코딩 심볼의 개수보다 크거나 같고
Figure pct00094
의 행수가 열수보다 작으며
Figure pct00095
의 행수가 열수보다 크거나 같은 경우, 가우스 소거법을 사용하여 직접 매트릭스
Figure pct00096
를 구하는데, 즉 하기 선형 방정식를 구하여
Figure pct00097
,
Figure pct00098
를 획득한다.
Figure pct00099
바람직하게는, 일부 데이터의 손실로 인해, 수신한 코딩 심볼에 따라 복구 매트릭스를 생성해야 하는데, 이는 손실된 코딩 심볼에 대응하는 매트릭스 행을 소거하여 상응하는 복구 매트릭스를 형성하고
Figure pct00100
로 기록하는 것과 같다. 수신한 데이터 패킷 수가 상이한 것을 기반으로 상황에 따라 중간 코드를 생성하는데, 구체적으로는 다음과 같은 단계를 포함한다.
l 종류의 우선순위의 데이터 패킷이 수신되면, 다음과 같은 복구 매트릭스 방정식을 획득한다(단계 A1).
Figure pct00101
복구 매트릭스 방정식에 대해 기본 행 변환을 수행하여
Figure pct00102
을 획득하는데,
식에서
Figure pct00103
은 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure pct00104
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
Figure pct00105
은 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure pct00106
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
Figure pct00107
는 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure pct00108
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
Figure pct00109
는 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure pct00110
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
Figure pct00111
은 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure pct00112
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
Figure pct00113
은 수신한 우선순위가 1인 소스 데이터를 나타내며,
Figure pct00114
은 수신한 우선순위가 1인 소스 데이터의 복구 데이터를 나타내고,
Figure pct00115
는 수신한 우선순위가 2인 소스 데이터를 나타내며,
Figure pct00116
는 수신한 우선순위가 1과 2인 소스 데이터를 나타내고,
Figure pct00117
는 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure pct00118
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
Figure pct00119
는 수신한 우선순위가 l인 소스 데이터를 나타내고,
Figure pct00120
은 수신한 우선순위가 1에서 l인 소스 데이터의 복구 데이터를 나타내며,
Figure pct00121
은 생성한 제l 종류의 중간 코드를 나타낸다.
Figure pct00122
로 하며,
Figure pct00123
는 수신하고 확장한 후의
Figure pct00124
Figure pct00125
순위의 코딩 심볼 수이고,
Figure pct00126
는 코딩단 각 순위의 심볼 길이이며, 여기서
Figure pct00127
이다.
각 순위가 생성한 매트릭스의 랭크를 계산하는데,
Figure pct00128
식에서
Figure pct00129
는 우선순위가 i인 데이터에 대응하는 서브 매트릭스의 랭크를 나타내고, 여기서 i=2일 때 대응하는 서브 매트릭스는
Figure pct00130
이며,
Figure pct00131
는 수신한 우선순위가 i인 코드 심볼 수의 길이를 나타내고,
Figure pct00132
는 우선순위가 i인 서브 매트릭스의 열수를 나타내며,
Figure pct00133
는 최솟값 연산을 나타낸다.
누적 매트릭스의 랭크를 계산하는데,
Figure pct00134
식에서
Figure pct00135
은 우선순위 1에서 우선순위 i가 대응하는 서브 매트릭스 랭크의 합을 나타내고,
Figure pct00136
은 우선순위 1에서 우선순위 i-1이 대응하는 서브 매트릭스 랭크의 합을 나타낸다.
여기서,
Figure pct00137
이고,
순차적으로
Figure pct00138
를 판단하며, 성립하면
Figure pct00139
이고, 그렇지 않으면
Figure pct00140
이며,
Figure pct00141
Figure pct00142
는 우선순위 1에서 우선순위 i가 대응하는 서브 매트릭스가 구성한 매트릭스 풀 랭크를 나타낸다.
수신한 각 순위의 코딩 심볼 수에 근거하여 경우에 따라 각각 중간 코드
Figure pct00143
,
Figure pct00144
, ...,
Figure pct00145
을 구하고, i의 초기값을 l로 설정한다(단계 A3).
Figure pct00146
&&
Figure pct00147
을 만족하면, RFC 6330 디코딩 방법을 사용하여
Figure pct00148
~
Figure pct00149
를 디코딩하는데, 여기서 &&는 AND 연산을 나타내고,
Figure pct00150
은 우선순위 1에서 우선순위 i까지의 각 서브 매트릭스가 구성한 매트릭스 풀 랭크를 나타내며,
Figure pct00151
은 우선순위가 1인 데이터에 대응하는 중간 코드 워드를 나타내고,
Figure pct00152
는 우선순위가 i인 데이터에 대응하는 중간 코드를 나타낸다.
Figure pct00153
로 설정하면,
Figure pct00154
를 획득하는데,
여기서,
Figure pct00155
,
Figure pct00156
이고,
식에서
Figure pct00157
는 우선순위 i까지의 모든 서브 매트릭스가 구성한 풀 랭크 매트릭스를 나타내고,
Figure pct00158
는 서브 매트릭스
Figure pct00159
를 나타내며,
Figure pct00160
는 서브 매트릭스
Figure pct00161
에 대해 역연산을 한 후의 서브 매트릭스를 나타내고,
Figure pct00162
는 서브 매트릭스
Figure pct00163
에 대해 역연산을 한 후 획득한 서브 매트릭스를 나타내며,
Figure pct00164
는 서브 매트릭스
Figure pct00165
를 나타내고, a의 값 범위는 1 ~ i이며, b의 값 범위는 2 ~ i이고,
Figure pct00166
은 서브 매트릭스
Figure pct00167
의 역매트릭스를 나타낸다.
Figure pct00168
로 하며, 여기서
Figure pct00169
이고,
Figure pct00170
Figure pct00171
의 역매트릭스이며,
Figure pct00172
Figure pct00173
Figure pct00174
를 획득한다.
수학적 귀납법에 의해
Figure pct00175
를 획득하고,
Figure pct00176
,
Figure pct00177
, …,
Figure pct00178
를 구하는데, 여기서
Figure pct00179
, ...,
Figure pct00180
을 디코딩할 수 없다.
만약
Figure pct00181
을 만족하고
Figure pct00182
를 만족하지 않는 경우, 가우스 소거법을 사용하여
Figure pct00183
~
Figure pct00184
을 디코팅한다.
Figure pct00185
로 설정하고, 가우스 소거법을 통해 다음과 같은 선형 방정식을 디코딩하면
Figure pct00186
,
Figure pct00187
, …,
Figure pct00188
를 구하는데, 여기서
Figure pct00189
, ...,
Figure pct00190
을 디코딩할 수 없다.
Figure pct00191
임의의 i 값에 대해여,
Figure pct00192
를 만족하지 못하면 상응하게
Figure pct00193
를 디코딩할 수 없고,
Figure pct00194
될 때까지
Figure pct00195
를 만족하지 못하면
Figure pct00196
,
Figure pct00197
, …,
Figure pct00198
를 모두 디코딩될 수 없어 디코딩이 실패된다.
i의 값이 1 줄이도록 하고 단계 A3으로 돌아간다(단계 A4).
바람직하게는, 소스 데이터 패킷 중의 각 서브 데이터 패킷 헤더의 중요성 정보를 해석하는 단계;
상기 중요성 정보에 따라 상기 소스 데이터 패킷 중의 각 서브 데이터 패킷을 각각 상이한 우선순위로 매핑하는 단계;
서브 데이터 패킷의 우선순위에 따라 서브 데이터 패킷을 재배열하여 중간 데이터 패킷을 획득하는 단계;
상기 중간 데이터 패킷을 복수개의 심볼(symbol)로 변환하고, 복수개의 심볼(symbol)로 변환된 중간 데이터 패킷에 대해 순방향 에러 정정 FEC 코딩을 수행하여 복수개의 심볼(symbol)을 포함하는 복구 데이터 패킷을 획득하는 단계;
상기 복구 데이터 패킷에 복구 데이터 패킷 중의 서브 데이터 패킷의 순서 및/또는 복구 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내기 위한 인덱스 필드 및/또는 우선순위 지시 필드를 추가하며, 상기 중간 데이터 패킷에도 중간 데이터 패킷 중의 서브 데이터 패킷의 순서 및/또는 중간 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내기 위한 인덱스 필드 및/또는 우선순위 지시 필드를 추가하는 단계;
상기 복구 데이터 패킷과 중간 데이터 패킷에 상응하는 지시 정보를 추가하거나, 복구 데이터 패킷과 중간 데이터 패킷을 전송할 때 복구 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및 상응하는 우선순위에 속하는 서브 데이터 패킷 수 또는 상기 서브 데이터 패킷이 상기 복구 데이터 패킷에서 차지하는 비례를 나타내고, 또한 중간 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및 상응하는 우선순위에 속하는 서브 데이터 패킷 수 또는 상기 서브 데이터 패킷이 상기 중간 데이터 패킷에서 차지하는 비례를 나타내기 위한 상응하는 지시 정보를 전송하는 단계;
단말 측으로 지시 정보를 포함하는 복구 데이터 패킷, 중간 데이터 패킷을 발송하거나, 또는 단말 측으로 복구 데이터 패킷, 중간 데이터 패킷 및 상응하는 지시 정보를 발송하는 단계를 더 포함한다.
바람직하게는, 상기 소스 데이터 패킷 중의 각 서브 패킷 헤더의 중요성 정보를 해석하는 단계는 각 서브 데이터 패킷 헤더 중의 우선순위(priority) 필드를 판독하고, 상기 우선순위(priority) 필드 중의 정보에 따라 대응하는 서브 데이터 패킷의 우선순위를 결정하는 단계를 포함한다.
바람직하게는, 상기 중요성 정보에 따라 상기 소스 데이터 패킷 중의 각 서브 데이터 패킷을 각각 상이한 기정 우선순위로 매핑하는 단계는,
상기 소스 데이터 패킷이 실제로 채택한 우선순위의 개수, 및 각 우선순위 하에서 상기 우선순위(priority) 필드와의 매핑 관계를 결정하는 단계;
상기 매핑 관계에 따라 서브 데이터 패킷을 상응하는 기정 우선순위로 매핑하는 단계를 포함한다.
바람직하게는, 상기 중간 데이터 패킷을 복수개의 심볼(symbol)로 변환하고, 복수개의 심볼(symbol)로 변환된 중간 데이터 패킷에 대해 순방향 에러 정정 FEC 코딩을 수행하여 복수개의 심볼(symbol)을 포함하는 복구 데이터 패킷을 획득하는 단계는 다음과 같은 단계를 포함한다.
RaptorQ 시스템 코드의 자가 적응 FEC 코딩 방식으로 상기 중간 데이터 패킷에 대해 FEC 코딩을 수행하여 다음과 같은 중간 코드 워드를 획득한다.
Figure pct00199
식에서
Figure pct00200
는 제i 종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스를 나타내고,
Figure pct00201
,
Figure pct00202
,…,
Figure pct00203
, …,
Figure pct00204
은 각각 N 종류의 소스 데이터 패킷의 중간 코드에 대응하며,
Figure pct00205
,
Figure pct00206
, …,
Figure pct00207
, …,
Figure pct00208
은 각각 N 종류의 소스 데이터 패킷의 데이터에 대응하고, 위 첨자 -1은 역매트릭트 연산자이다.
상기 중간 코드 워드에 따라 복구 데이터 패킷을 획득하고, 상기 복구 데이터 패킷에 FEC payload ID를 추가하는데, 여기서 상기 복구 데이터 패킷 중의 복구 데이터는 다음과 같다.
Figure pct00209
식에서
Figure pct00210
,
Figure pct00211
, …,
Figure pct00212
, …,
Figure pct00213
은 각각 1 ~ N개의 소스 데이터 패킷의 복구 데이터에 대응하고,
Figure pct00214
i번째 소스 데이터 패킷에 대응하는 LT 코딩 매트릭스를 나타내며,
Figure pct00215
Figure pct00216
과 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내고,
Figure pct00217
Figure pct00218
와 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내며, i=1, 2, …, N이다.
본 발명에 따른 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법은,
서버가 발송한 복구 데이터 패킷, 중간 데이터 패킷을 수신하거나, 또는 복구 데이터 패킷, 중간 데이터 및 상응하는 지시 정보를 수신하는 단계;
상기 복구 데이터 패킷과 중간 데이터 패킷에 포함한 인덱스 필드를 해석하고, 서브 데이터 패킷의 복구 데이터 패킷에서의 순서, 및 중간 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷을 나타내기 위한 상기 인덱스 필드에 따라 코딩 매트릭스를 생성하는 단계; 또는
복구 데이터 패킷과 중간 데이터 패킷의 우선순위 지시 필드를 통해 인덱스 정보를 직접 획득하고, 서브 데이터 패킷의 복구 데이터 패킷에서의 순서, 및 중간 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷을 나타내기 위한 상기 인덱스 정보에 따라 코딩 매트릭스를 생성하는 단계;
상기 코딩 매트릭스에 대해 순방향 에러 정정 FEC 디코딩을 수행하여 중간 데이터 패킷을 복구하는 단계;
상기 중간 데이터 패킷 헤더 중의 정보를 해석하고, 중간 데이터 패킷의 서브 데이터 패킷의 순서를 재배열하여 소스 데이터 패킷을 복구하는 단계를 포함한다.
바람직하게는, 상기 복구 데이터 패킷과 중간 데이터 패킷에 포함된 인덱스 필드를 해석하는 단계는 다음과 같은 단계를 포함한다.
하기 공식을 통해 소스 데이터에 대응하는 코딩 매트릭스의 상응하는 행의 인덱스 필드를 획득한다.
Figure pct00219
Figure pct00220
식에서 index는 소스 데이터가 코딩 매트릭스에 대응하는 상응 행의 인덱스를 나타내고, FEC payload ID는 데이터 패킷 헤더의 인덱스 정보를 나타내며, number of packets of all priorities before this packet은 해당 데이터 패킷 이전의 모든 우선순위의 데이터 패킷 총수를 나타낸다.
바람직하게는, 상기 코딩 매트릭스에 대해 순방향 에러 정정 FEC 디코딩을 수행하여 중간 데이터 패킷을 복구하는 단계는,
상기 코딩 매트릭스에 대해 기본 행 변환을 수행하고, 수신한 상응하는 복구 데이터 패킷 중의 심볼(symbol)을 정렬하며, 복구된 데이터 패킷 헤더의 인덱스 정보 FEC_payload_ID의 값, 및 대응하는 우선순위 하의 심볼(symbol) 수에 따라 상기 심볼(symbol)이 속하는 우선순위와 변환 후의 위치를 결정하는 단계; 또는
복구 데이터 패킷 헤더 중의 우선순위 필드와 해당 우선순위 필드에 대응하는 우선순위 하의 인덱스 정보에 따라 심볼(symbol)이 속하는 우선순위와 변환 후의 위치를 직접 결정하는 단계;
복구 데이터 패킷 중의 심볼(symbol)의 순서를 조정하고, 가우스 소거 디코더와 RFC6330 디코더를 통해 디코딩을 수행하여 복수개의 심볼(symbol)을 포함하는 복구된 중간 데이터 패킷을 획득하는 단계;
복수개의 심볼(symbol)을 포함하는 중간 데이터 패킷을 중간 데이터 패킷으로 변환하는 단계를 포함한다.
본 발명에 따른 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 장치는,
소스 데이터 패킷 중의 각 서브 데이터 패킷 헤더의 중요성 정보를 해석하기 위한 해석 모듈;
상기 중요성 정보에 따라 상기 소스 데이터 패킷 중의 각 서브 데이터 패킷을 각각 상이한 기정 우선순위로 매핑하기 위한 매핑 모듈;
기정 우선순위에 따라 서브 데이터 패킷을 재배열하여 중간 데이터 패킷을 획득하기 위한 배열 모듈;
상기 중간 데이터 패킷을 복수개의 심볼(symbol)로 변환하고, 복수개의 심볼(symbol)로 변환된 중간 데이터 패킷에 대해 순방향 에러 정정 FEC 코딩을 수행하여 복수개의 심볼(symbol)을 포함하는 복구 데이터 패킷을 획득하기 위한 코딩 모듈;
상기 복구 데이터 패킷에 복구 데이터 패킷 중의 서브 데이터 패킷의 순서 및/또는 복구 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내기 위한 인덱스 필드 및/또는 우선순위 지시 필드를 추가하고, 상기 중간 데이터 패킷에도 중간 데이터 패킷 중의 서브 데이터 패킷의 순서 및/또는 중간 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내기 위한 인덱스 필드 및/또는 우선순위 지시 필드를 추가하는 인덱스 모듈;
상기 복구 데이터 패킷과 중간 데이터 패킷에 상응하는 지시 정보를 추가하거나, 또는 복구 데이터 패킷과 중간 데이터 패킷을 전송할 때 상응하는 지시 정보(복구 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및 상응하는 우선순위에 속하는 서브 데이터 패킷 수 또는 상기 서브 데이터 패킷이 상기 복구 데이터 패킷에서 차지하는 비례를 나타내기 위한 것이고, 또한 중간 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및 상응하는 우선순위에 속하는 서브 데이터 패킷 수 또는 상기 서브 데이터 패킷이 상기 중간 데이터 패킷에서 차지하는 비례를 나타내기 위한 것)를 전송하기 위한 지시 정보 생성 모듈;
단말 측으로 상기 복구 데이터 패킷, 중간 데이터 패킷 및 상응하는 시그널링 정보를 전송하거나, 또는 단말 측으로 복구 데이터 패킷, 중간 데이터 패킷 및 상응하는 지시 정보를 전송하기 위한 전송 모듈;을 포함한다.
바람직하게는, 상기 코딩 모듈은 구체적으로 RaptorQ 시스템 코드의 자가 적응 FEC 코딩 방식으로 상기 중간 데이터 패킷에 대해 FEC 코딩을 수행하여 다음과 같은 중간 코드 워드를 획득한다.
Figure pct00221
식에서
Figure pct00222
는 제i 종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스를 나타내고,
Figure pct00223
,
Figure pct00224
, …,
Figure pct00225
, …,
Figure pct00226
은 각각 N 종류의 소스 데이터 패킷의 중간 코드에 대응하며,
Figure pct00227
,
Figure pct00228
, …,
Figure pct00229
, …,
Figure pct00230
은 각각 N 종류의 소스 데이터 패킷의 데이터에 대응하고, 위 첨자 -1은 역매트릭트 연산자이다.
상기 중간 코드 워드에 따라 복구 데이터 패킷을 획득하고, 상기 복구 데이터 패킷에 FEC payload ID를 추가하는데, 여기서 상기 복구 데이터 패킷 중의 복구 데이터는 다음과 같다.
Figure pct00231
식에서
Figure pct00232
,
Figure pct00233
, …,
Figure pct00234
, …,
Figure pct00235
은 각각 1 ~ N개의 소스 데이터 패킷의 복구 데이터에 대응하고,
Figure pct00236
i번째 소스 데이터 패킷에 대응하는 LT 코딩 매트릭스를 나타내며,
Figure pct00237
Figure pct00238
과 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내고,
Figure pct00239
Figure pct00240
와 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내며, i=1, 2, …, N이다.
본 발명에 따른 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 장치는,
서버가 발송한 복구 데이터 패킷, 중간 데이터 패킷을 수신하거나, 또는 복구 데이터 패킷, 중간 데이터 및 상응하는 지시 정보를 수신하기 위한 수신 모듈;
상기 복구 데이터 패킷과 중간 데이터 패킷에 포함된 인덱스 필드를 해석하고 상기 인덱스 필드에 따라 코딩 매트릭스를 생성하거나, 또는 복구 데이터 패킷과 중간 데이터 패킷의 우선순위 지시 필드를 통해 복구 데이터 패킷 중의 서브 데이터 패킷의 순서, 및 중간 데이터의 각 우선순위 하에서의 서브 데이터 패킷을 나타내기 위한 인덱스 정보를 직접 획득하고 상기 인덱스 정보에 따라 코딩 매트릭스를 생성하기 위한 코딩 매트릭스 생성 모듈;
상기 코딩 매트릭스에 대해 순방향 에러 정정 FEC 디코딩을 수행하여 중간 데이터 패킷을 복구하기 위한 디코딩 모듈;
상기 중간 데이터 패킷 헤더 중의 정보를 해석하고, 상기 중간 데이터 패킷의 서브 데이터 패킷의 순서를 재배열하여 소스 데이터 패킷을 복구하기 위한 복구 모듈;을 포함한다.
바람직하게는, 상기 코딩 매트릭스 생성 모듈은 구체적으로 하기 공식을 통해 소스 데이터에 대응하는 코딩 매트릭스의 상응하는 행의 인덱스 필드를 획득한다.
Figure pct00241
Figure pct00242
식에서 index는 소스 데이터에 대응하는 코딩 매트릭스의 상응하는 행의 인덱스를 나타내고, FEC payload ID는 데이터 패킷 헤더의 인덱스 정보를 나타내며, number of packets of all priorities before this packet은 해당 데이터 패킷 이전의 모든 우선순위의 데이터 패킷 총수를 나타낸다.
바람직하게는, 상기 디코딩 모듈은 구체적으로 상기 코딩 매트릭스에 대해 기본 행 변환을 수행하고, 수신한 상응하는 복구 데이터 패킷 중의 심볼(symbol)을 정렬하며, 복구된 데이터 패킷 헤더의 인덱스 정보 FEC_payload_ID의 값, 및 대응하는 우선순위 하의 심볼(symbol) 수에 따라 상기 심볼(symbol)이 속하는 우선순위와 변환 후의 위치를 결정하고; 또는
복구 데이터 패킷 헤더 중의 우선순위 필드와 해당 우선순위 필드에 대응하는 우선순위 하의 인덱스 정보에 따라 심볼(symbol)이 속하는 우선순위와 변환 후의 위치를 직접 결정하고;
복구 데이터 패킷 중의 심볼(symbol)의 순서를 조정하고, 가우스 소거 디코더와 RFC6330 디코더를 통해 디코딩을 수행하여 복구된 복수개의 심볼(symbol)을 포함하는 중간 데이터 패킷을 획득하며;
복수개의 심볼(symbol)을 포함하는 중간 데이터 패킷을 중간 데이터 패킷으로 변환한다.
본 발명에 따른 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC 코딩 및 디코딩 시스템은 서버 및 적어도 하나의 단말을 포함하며, 그 중 상기 서버는 제7항 ~ 제10항 중 어느 한 항에 따른 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법을 수행하기 위한 것이고, 상기 단말은 제11항 ~ 제13항 중 어느 한 항에 따른 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC 코딩 및 디코딩 방법을 수행하기 위한 것이다.
본 발명에 따른 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체에서, 상기 컴퓨터 프로그램은 프로세서에 의해 실행될 때 제7항 내지 제13항 중 어느 한 항에 따른 이미지 기반의 스트라이프 천 검출, 위치 결정 및 절단 방법의 단계를 구현한다.
종래 기술에 비해, 본 발명은 다음과 같은 유익한 효과를 가지고 있다.
본 발명에 따른 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 방법은 미디어 콘텐츠의 중요성에 근거하여 우선순위에 따라 배열하고, 차등 오류 보호(UEP)를 채택하여 미디어 콘텐츠 품질을 최대한 확보하는 동시에 FEC로 인한 데이터 중복을 줄인다. 또한, 시스템 코드의 코딩 및 디코딩을 보다 유연하게 하고 소스 데이터 스트림을 분류할 필요가 없으므로, 송신 측의 FEC 코딩의 복잡성을 낮추고 FEC 코딩의 효율을 향상시킨다. 아울러, 현재 네트워크 상황의 변화에 따라 동적으로 코딩 방안을 조정할 수 있기 때문에 시변 네트워크에 대해 더욱 강한 적응성을 가지고 있다.
본 발명의 다른 특징, 목적 및 장점은 첨부 도면을 참조하여 비제한적인 실시예를 상세하게 설명함으로써 더욱 명확해질 것이다.
도 1은 미디어 자원 데이터에 대한 FEC의 2층 구조 모식도이다.
도 2 및 도 3은 이미지 그룹에서 각 프레임의 의존 관계의 모식도이다.
도 4는 파운틴 코드에 대한 차등 오류 보호 코딩 방안의 모식도이다.
도 5는 파운틴 코드를 차등 오류 보호하는 시스템 아키텍처의 모식도이다.
도 6은 시스템 RaptorQ 코드의 코딩 매트릭스의 구조 모식도이다.
도 7은 시스템 RaptorQ 코드를 차등 오류 보호하는 코딩 매트릭스의 구조 모식도이다.
도 8은 LT 코딩 매트릭스 차등 오류 보호의 구조 모식도이다.
도 9는 우선순위 차등 오류 보호 시스템의 파운틴 코드의 코딩 흐름도이다.
도 10은 우선순위 차등 오류 보호 시스템의 파운틴 코드의 디코딩 흐름도이다.
도 11은 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC 시스템 프레임워크의 모식도이다.
도 12는 각 우선순위의 매핑 관계 모식도이다.
도 13은 우선순위에 따라 데이터 패킷 스트림을 재정렬하는 모식도이다.
도 14는 FEC 코딩 후 소스 데이터 패킷과 복구 데이터 패킷을 처리하는 흐름도이다.
도 15는 수신단에서 시그널링 정보와 데이터 패킷 정보를 해석하는 모식도이다.
도 16은 수신한 데이터 패킷에 따라 코딩 매트릭스를 생성하는 모식도이다.
도 17은 수신한 데이터 패킷을 처리하는 흐름도이다.
도 18은 복구 데이터 패킷 스트림의 초기 순서의 결과도이다.
도 19는 수신단에서 데이터 패킷의 헤더 정보를 해석하는 모식도이다.
이하에서는 구체적인 실시예를 참조하여 본 발명을 상세하게 설명한다. 이하의 실시예는 본 발명이 속한 기술분야의 당업자가 본 발명을 더욱 이해하도록 하기 위한 것이고, 본 발명을 임의의 형식으로 제한하기 위한 것이 아니다. 본 발명이 속한 기술분야의 당업자라면 본 발명의 사상을 벗어나지 않고 약간의 변화 및 개선을 실시할 수도 있으며, 이는 모두 본 발명의 보호 범위에 속한다.
이하에서는 본 발명이 속한 기술분야의 당업자가 이해하도록 본 출원의 일부 용어를 설명하기로 한다.
1) 차등 오류 보호(Unequal Error Protection, UEP)는 소스 채널을 결합하여 코딩하는 것 중의 하나이다. 그 핵심 사상은 코드 스트림의 각 부분 데이터의 중요성에 따라 각 부분 데이터에 대해 다른 채널 보호 메커니즘을 채택하는 것인데, 즉 중요한 코드 스트림을 중점적으로 보호하는 것이다. UEP는 중요하지 않은 코드 스트림의 노이즈 방지 성능을 저하시켰으나, 에러 코드를 방지하는 시스템의 전체 성능을 향상시키는 데 유리하다.
2) 디지털 파운틴 코드(Digital Fountain Code)는 전송 과정에서 피드백 및 자동 재전송 메커니즘이 필요하지 않으므로 신호 왕복 지연 및 브로드캐스트에 적용할 때의 피드백 충돌 문제를 피할 수 있다. 디지털 파운틴의 기본 사상은 다음과 같다. 즉, 송신단에서 원시 데이터를
Figure pct00243
개의 데이터 심볼로 분할하고 이러한 데이터 심볼들을 코딩하여 하나의 임의 길이의 코딩 심볼 코드 스트림을 출력하며, 수신단에서
Figure pct00244
(
Figure pct00245
Figure pct00246
보다 약간 큼)개의 코딩 심볼을 정확하게 수신하기만 하면 매우 큰 확률로
Figure pct00247
개의 데이터 심볼을 모두 복구시킬 수 있다.
디지털 파운틴 코드 자체가 UEP 성능을 가지고 있어 중요성이 다른 데이터를 보호할 수 있다. 종래의 고정 비트율의 채널 코딩 방법에 비해, 디지털 파운틴 코드는 다음과 같은 현저한 장점이 있다.
a. 이상적인 확장 가능성이 있다. 단방향 브로드캐스트에 피드백이 없기 때문에 송신측은 사용자 수의 증가에 따른 어떠한 영향도 받지 않다. 따라서, 송신측은 임의의 수의 사용자에게 서비스를 제공할 수 있다.
b. 시변 채널에 적응하고 채널 용량을 고효율적으로 사용한다. 사용자의 디코딩 성능은 채널의 삭제 확률 및 대역폭과 무관하다. 채널의 패킷 손실률이 높고 상황이 좋지 않은 경우 수신단의 디코딩에 영향을 미치지 않는데, 즉 수신단이 충분한 수의 코딩 데이터를 수신하기만 하면 정상적으로 디코딩할 수 있어 적응성이 더 강하다.
c. 코딩 및 디코딩의 복잡성이 낮다. 이상적인 상황에서 파운틴 코드에 의해 생성된 각 코딩 심볼은 선형 코딩 및 디코딩 복잡성을 가지고 있어, 송수신단 인코더 및 디코더의 설계를 간소화시키고 소프트웨어화를 구현하는 데 유리하다.
d. 이종 사용자에 대한 적응성능이 양호하다. 파운틴 코드의 비코드율 특성은 상이한 패킷 손실률 또는 대역폭을 가진 사용자가 서로 영향을 미치지 않도록 하며, 양질 사용자는 저질 사용자의 방해를 받지 않는다. 또한, 디지털 파운틴 코드는 중단 후 지속 전송 및 비동기 접속 등 다양한 서비스 모드를 지원할 수 있다.
도 1에서 도시된 바와 같이, 미디어 자원 데이터에 대한 FEC 2층 구조에서 제1층은 소스 패킷 블록(source packet block)을 많은 작은 블록으로 나누어 각각 FEC 보호를 수행하고, 제2층은 하나의 블록 전체에 대해 FEC 보호를 수행한다. 제1층은 구분이 세밀하여 작은 지연을 제공할 수 있고, 제2층은 복구 성능과 작은 중복을 확보하나, 이러한 방식은 FEC 코딩을 2번 진행해야 하므로 코딩 효율이 떨어지고 유연성이 부족하다.
하나의 데이터 스트림은 그 내용에 따라 상이한 유형의 데이터 패킷으로 구분할 수 있고, 상이한 유형의 데이터 패킷은 상이한 중요도를 갖는다. 예를 들어, 데이터 패킷 중의 I, B, P 프레임의 중요도는 도 2 및 도 3에 도시된 바와 같다. 하나의 이미지 그룹에서 각 프레임의 의존 관계는 하나의 이미지 그룹에서 서로 다른 프레임의 의존도와 중요성이 다르다는 것을 설명하며, I 프레임이 가장 중요하고 B, P 프레임의 중요도가 낮다. 따라서, 데이터 내용의 중요성에 따라 차등 오류 보호를 수행할 수 있다. 구체적으로 소스 데이터의 전송에 2개의 중요 레벨이 있는 경우를 고려하면, 소스 데이터를 상기 표준에 따라 분할하고 이를 중요도에 따라 재배열하며 시스템의 파운틴 코드의 코딩 매트릭스 구조를 변경함으로써 상이한 내용에 대한 차등 오류 보호를 구현한다. 그 시스템의 기본 아키텍처는 도 5에 도시된 바와 같다. 시스템 파운틴 코드의 차등 오류 보호 코딩을 거쳐 생성한 데이터는 도 4에 도시된 바와 같다.
실시예 1
본 실시예는 RaptorQ 시스템 코드를 예로 하는데, 시스템 RaptorQ 코드의 코딩 매트릭스 구조는 도 6에 도시된 바와 같다. 여기서 D는 소스 데이터를 나타내고, C는 중간 코드를 나타내며, G_LDPC는 LDPC 매트릭스를 나타내고, I_S, I_H는 단위 매트릭스를 나타내고, G_ENC는 LT 코딩 매트릭스를 나타내며, 코딩 매트릭스는 다음과 같을 수 있다.
Figure pct00248
(1)
Figure pct00249
(2)
FEC 코딩 시, 소스 데이터와 도 6에 도시된 코딩 매트릭스에 의해 중간 코드를 생성한다.
Figure pct00250
(3)
그 후, 코딩 매트릭스 중의 LT 매트릭스와 획득한 중간 코드를 통해 소스 데이터와 복구 데이터를 생성한다. 여기서 R은 코딩 후 획득한 복구 데이터를 나타내고,
Figure pct00251
는 G_ENC와 동일한 생성방식으로 생성한 LT 매트릭스이다.
Figure pct00252
(4)
상기 방법으로 소스 데이터를 코딩하면, 소스 데이터를 우선순위로 구분하고 차등 오류 보호 코딩을 채택할 수 없기 때문에 코딩 매트릭스 A 및 LT 매트릭스 G_ENC의 매트릭스 구조를 재설계해야 한다. 소스 데이터에 2개의 상이한 우선순위의 데이터가 있는 경우를 예로 들면, 우선순위를 각각 우선순위 1과 2로 설정하고, 소스 데이터 중의 상이한 우선순위의 데이터를 구분한 후 그에 상이한 중복성을 분배하여 차등 오류 보호의 효과를 구현한다.
코딩 과정:
그 코딩 매트릭스 구조는 도 7에 도시된 바와 같다. 그 코딩 매트릭스는 공식 (6)에 나타낸 바와 같은데, 그 중
Figure pct00253
Figure pct00254
는 상이한 규칙으로 생성한 코딩 매트릭스이며, 중요 데이터에 대한 보호를 확보하기 위해서는
Figure pct00255
매트릭스의 차수 분포를 향상시킬 수 있다.
Figure pct00256
(5)
Figure pct00257
(6)
이에 따라, 중요도가 다른 데이터에 대해 상응하는 중간 코드를 생성할 수 있다.
Figure pct00258
(7)
중요도가 다른 데이터에 대한 차등 오류 보호를 구현하기 위해, 도 8에 도시된 바와 같이 중요 데이터 보호에 대한 중복 데이터를 증가하여 LT 코딩 매트릭스의 구조를 더 변경해야 한다. 여기서
Figure pct00259
Figure pct00260
과 생성방식이 동일하고,
Figure pct00261
Figure pct00262
와 생성방식이 동일하다. 획득한 복구 데이터 R1은 단지 우선순위가 1인 데이터와 관련이 있고, 복구 데이터 R은 우선순위 1 및 2의 데이터와 모두 관련된다. 이에 따라, 중요 데이터의 중복이 증가되고 보호 강도가 향상된다. 여기서, 채널 조건의 제한으로 인해 데이터의 전체 중복도에 한계가 있으면,
Figure pct00263
Figure pct00264
를 생성하는 비율은
Figure pct00265
Figure pct00266
의 행수 비율에 의해 결정되고,
Figure pct00267
의 행수를 증가시킴으로써 우선순위가 1인 데이터의 보호 강도를 더욱 향상시킬 수 있다.
Figure pct00268
(8)
디코딩 과정:
손실 채널을 거친 후 일부 데이터 패킷이 손실되기 때문에, 수신한 심볼 ISI에 따라 복구 매트릭스를 생성하고, 손실된 심볼 ISI에 대응하는 매트릭스 행을 소거해야 하는데, 예를 들어 매트릭스
Figure pct00269
의 경우, 수신한
Figure pct00270
과 송신단의
Figure pct00271
에 따라 손실 데이터의 ISI를 획득하여
Figure pct00272
에 상응하는 행을 삭제할 수 있다. 코딩 과정과 유사하게, 제1단계 디코딩을 수행할 때 복구 매트릭스 및 수신한 데이터 패킷에 따라 중간 코드 워드를 획득한다.
Figure pct00273
(9)
상기 매트릭스 방정식에 대해 기본 행 변환을 수행하여 하기 형식을 획득한다.
Figure pct00274
(10)
Figure pct00275
로 하고, 수신한 각 우선순위 하의 데이터 패킷 수 및 수신한 데이터 패킷 총수에 근거하여 경우에 따라 디코딩을 수행한다.
수신한 디코딩 심볼의 총수는 소스 데이터 코딩 심볼의 개수보다 작고,
Figure pct00276
의 행수는 열수보다 작으며,
Figure pct00277
,
Figure pct00278
는 모두 구할 수 없다.
수신한 코딩 심볼의 총수가 소스 데이터 코딩 심볼의 개수보다 작으나
Figure pct00279
의 행수는 열수보다 크거나 같다.
Figure pct00280
의 행수가 열수보다 크거나 같으면
Figure pct00281
은 가역적이며, 그 역매트릭스는
Figure pct00282
로 기록되고,
Figure pct00283
(11)
을 획득할 수 있으나,
Figure pct00284
는 구할 수 없다.
수신한 코딩 심볼의 총수가 소스 데이터 코딩 심볼의 개수보다 크고,
Figure pct00285
의 행수는 열수보다 크거나 같다.
Figure pct00286
의 행수가 열수보다 크거나 같으면
Figure pct00287
은 가역적이고 그 역매트릭스는
Figure pct00288
로 기록되며,
Figure pct00289
의 행수가 열수보다 크거나 같으면
Figure pct00290
는 가역적이고 그 역매트릭스는
Figure pct00291
로 기록된다.
Figure pct00292
Figure pct00293
Figure pct00294
가 모두 가역적이면,
Figure pct00295
는 가역적이고 그 역매트릭스는
Figure pct00296
로 기록되며,
Figure pct00297
로 기록되고,
Figure pct00298
을 쉽게 알 수 있으며,
Figure pct00299
(12)를 획득할 수 있다.
그러나,
Figure pct00300
의 행수가 열수보다 작으면
Figure pct00301
는 역매트릭스가 존재하지 않고
Figure pct00302
만을 구할 수 있다.
수신한 코딩 심볼의 총수가 소스 데이터 코딩 심볼의 개수보다 크거나 같고,
Figure pct00303
의 행수가 열수보다 작으나
Figure pct00304
의 행수는 열수보다 크거나 같다.
가우스 소거법을 사용하여 매트릭스
Figure pct00305
를 직접 구하는데, 즉 하기의 선형 방정식을 구함으로써
Figure pct00306
,
Figure pct00307
를 용이하게 구할 수 있다.
Figure pct00308
(13)
상기 디코딩 과정의 제1단계에 따르면, 어떤 상황에서도 모두 먼저
Figure pct00309
의 정확한 디코딩을 확보하는 것을 알 수 있고, 중간 코드 워드
Figure pct00310
Figure pct00311
는 제2단계에서 소스 데이터가 복구되는 중요 데이터이기 때문에,
Figure pct00312
의 디코딩 성공률을 향상시키면 소스 데이터를 정확하게 복구하는 확률을 더욱 높일 수 있다.
획득한 중간 코드 워드에 따라 시스템 코드의 코딩 심볼을 생성한다.
Figure pct00313
(14)
제1단계에서
Figure pct00314
Figure pct00315
를 구하지 못하면 디코딩이 실패되고 소스 심볼을 디코딩할 수 없으며,
Figure pct00316
만을 구하면 우선순위의 소스 코드 데이터
Figure pct00317
이 정확하게 디코딩될 수 있도록 확보할 수 있으며,
Figure pct00318
Figure pct00319
를 모두 구하면 상기 식을 이용하여 최종적인 소스 코드
Figure pct00320
Figure pct00321
를 획득할 수 있다.
아울러, 상기 방안은 2개의 우선순위 시나리오에 적용될 수 있을 뿐만 아니라 복수개의 우선순위의 소스 데이터로 확장할 수 있는데, 구체적인 과정은 다음과 같다.
코딩 과정:
먼저 소스 데이터 및 소스 데이터의 우선순위에 따라 중간 코드 워드를 생성한다. 소스 데이터가 l개의 데이터 패킷으로 구분된 것으로 가정하면,
Figure pct00322
(15)를 획득한다.
식 (16)을 통해 중간 코드 워드
Figure pct00323
,
Figure pct00324
, ...,
Figure pct00325
를 획득할 수 있다.
Figure pct00326
(16)
획득한 중간 코드 워드에 따라 소스 데이터와 복구 데이터를 생성한다.
Figure pct00327
(17)
전체 코딩 프로세스는 도 9에 도시된 바와 같다. 소스 데이터와 복구 데이터를 송신단에서 수신단으로 전송하면, 채널의 감쇠로 인해 일부 데이터가 손실될 수 있고, 수신단은 데이터를 수신한 후, 수신한 데이터 상황에 따라 디코딩하여 소스 데이터를 복구한다.
디코딩 과정:
일부 데이터의 손실로 인해, 수신한 심볼 ISI에 따라 복구 매트릭스를 생성해야 하는데, 이는 손실된 심볼 ISI에 대응하는 매트릭스 행을 소거하여 상응하는 매트릭스를 형성하고
Figure pct00328
로 기록하는 것과 같다. 수신한 데이터의 수를 기반으로 상황에 따라 중간 코드를 생성한다.
Figure pct00329
(18)
상기 매트릭스 방정식에 대해 기본 행 변환을 수행하여 하기 형식을 획득한다.
Figure pct00330
(19)
Figure pct00331
로 설정하고,
Figure pct00332
를 수신하고 확장한 제i순위의 심볼 수로 설정하며,
Figure pct00333
는 코딩단 각 순위의 심볼 길이이고,
Figure pct00334
에 대해서는 각 순위가 생성한 매트릭스의 랭크
Figure pct00335
를 계산한 후 누적 매트릭스의 랭크
Figure pct00336
를 계산하는데, 여기서
Figure pct00337
이다. 순차적으로
Figure pct00338
를 판단하는데, 성립하면
Figure pct00339
이고, 그렇지 않으면
Figure pct00340
이다. 이하에서는 수신한 각 순위의 심볼 수를 기반으로 경우에 따라 각각 중간 코드
Figure pct00341
,
Figure pct00342
, …,
Figure pct00343
를 구하고, i의 초기값은 l로 설정한다.
Figure pct00344
&&
Figure pct00345
을 만족하면, RFC 6330 디코딩 방법을 사용하여 C(1) ~ C(i)를 디코딩한다.
Figure pct00346
로 설정하고,
Figure pct00347
를 용이하게 알 수 있는데, 그 중
Figure pct00348
Figure pct00349
이고, 중간 코드는 하기 식을 통해 구할 수 있다.
Figure pct00350
Figure pct00351
Figure pct00352
Figure pct00353
...(수학적 귀납법)
Figure pct00354
Figure pct00355
,
Figure pct00356
, ...,
Figure pct00357
를 구할 수 있으나, 다른
Figure pct00358
, ...,
Figure pct00359
를 구할 수 없다.
Figure pct00360
을 만족하나
Figure pct00361
을 만족하지 못할 경우, 가우스 소거 디코딩 방법을 사용하여 C(1) ~ C(i)를 디코딩한다.
Figure pct00362
로 설정하고, 가우스 소거법을 통해 선형 방정식을 디코딩할 수 있다.
Figure pct00363
(20)
Figure pct00364
,
Figure pct00365
, ...,
Figure pct00366
를 구할 수 있으나, 다른
Figure pct00367
, ...,
Figure pct00368
은 구할 수 없다.
어느 i값의 경우,
Figure pct00369
를 만족하지 못하면
Figure pct00370
를 상응하게 디코딩할 수 없다.
Figure pct00371
될 때까지 상기 2개 조건을 모두 만족시킬 수 없으면,
Figure pct00372
,
Figure pct00373
, ...,
Figure pct00374
는 모두 디코딩할 수 없고 디코딩이 실패된다.
i=i-1을 계속 순환시키는데, 즉 i=l:-1:1로 하고 상기 과정을 반복한다.
전체 디코딩 프로세스는 도 10에 도시된 바와 같다.
본 실시예에 따른 방법은 자원을 효과적으로 절약할 수 있으며, 만약 수신단에서 상황에 따라 이미 수신한 데이터(예컨대 B 프레임)를 인위적으로 폐기할 경우 전송 자원의 낭비를 초래할 수 있는데, 상기 방안은 근본적으로 이 문제를 해결하여 원하지 않는 패킷이 전송 과정에서 더 큰 확률로 손실되도록 하고 중요한 패킷을 더욱 보호한다.
본 실시예에 따른 방법은 맞춤형 전송 방안을 제공한다. 채널 상황, 사용자 체험 등에 따라 차등 오류 보호의 방안을 설계하여 비디오가 더욱 유연하고 세밀하게 전송되도록 할 수 있다. 또한, 송신단의 코딩 방식이 유연하더라도 수신단은 리스트 정보에 따라 원시 데이터를 모두 정확하게 복구할 수 있다.
본 실시예에 따른 방법은 코딩 매트릭스의 더욱 유연한 설계를 제공한다. 실제 미디어의 적용 시나리오에 따라 미디어 콘텐츠를 기반으로 데이터의 우선순위를 구분할 수 있으므로, 실제 수요에 따라 FEC 코딩 매트릭스를 더욱 유연하게 설계하여 차등 오류 보호의 효과를 구현할 수 있다.
본 실시예에 따른 방법은 더욱 유연한 디코딩 방식을 제공한다. 수신한 각 우선순위의 데이터 수에 따라 상이한 디코딩 알고리즘을 채택할 수 있으며, 제한된 대역폭 자원 하에서 우선순위가 높은 데이터를 최대한 복구할 수 있어 우선순위가 높은 데이터에 대한 보호 강도를 향상시킬 수 있다.
실시예 2
소스 데이터 패킷 중의 각 서브 데이터 패킷을 각각 상이한 기정 우선순위로 매핑하거나, 또는 실시예 1과 실시예 2를 결합할 수 있다. 구체적으로는 다음과 같다.
도 11은 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 시스템 프레임워크의 모식도인데, 서버와 적어도 하나의 단말을 포함하며, 먼저 서버 측에서 실제 적용 시나리오와 미디어 컨텐츠에 따라 복수개의 우선순위를 구분하고, 데이터 패킷 헤더 중 해당 데이터 패킷에 관한 중요성 정보를 해석하여 각 데이터 패킷을 상이한 우선순위 하에 매핑시킨다. 그 다음, 우선순위 상황과 매핑 관계에 근거하여 순방향 에러 정정 코딩이 필요한 모든 데이터 패킷(FEC)을 우선순위에 따라 높은 우선순위로부터 낮은 우선순위로 재배열한다. 실제 채널 상황에 따라 차등 오류 보호의 FEC 코딩 방식으로 재배열한 소스 데이터를 코딩하여 복구 데이터(repair symbols)를 생성한다. 그리고, FEC 코딩이 종료된 후, 소스 데이터 패킷과 복구 데이터 패킷에 현재 데이터 패킷 순서를 나타내는 인덱스 필드를 추가한다. 각 우선순위 하의 소스 데이터와 복구 데이터를 통계하고 상응하는 시그널링 정보를 생성하며, 수신단이 데이터를 수신한 후 데이터를 정확하게 복구하도록 시그널링에서 각 우선순위 하의 데이터 패킷 수 또는 차지하는 비례, 및 각 우선순위 하에서 대응하는 복구 데이터의 수 또는 차지하는 비례를 나타낸다. 마지막으로, 소스 데이터 패킷, 복구 데이터 패킷 및 시그널링을 단말(클라이언트 또는 수신단)로 전송한다.
이에 상응하여, 단말 측은 먼저 시그널링 정보 및 수신한 데이터 패킷 중의 인덱스 필드를 해석하여 각 우선순위 하에 수신된 소스 데이터 패킷과 복구 데이터 패킷의 수 및 상응하는 데이터 패킷 인덱스를 획득한다. 그 다음 획득한 데이터 패킷 인덱스 정보에 따라 수신단에서 코딩 매트릭스를 생성한다. 마지막으로, 생성한 코딩 매트릭스에 근거하여 경우에 따라 FEC 디코딩을 수행하고 소스 데이터 패킷을 복구한다. 복구된 소스 데이터 패킷의 순서는 재정렬된 후의 순서이기 때문에, 데이터 패킷 헤더 중 소스 데이터 패킷의 순서를 해석함으로써 소스 데이터 패킷을 재배열하여 소스 데이터 패킷의 초기 데이터를 획득한다.
이하에서는 구체적인 실시예를 통해 본 발명의 기술방안을 상세하게 설명한다. 이하의 일부 구체적인 실시예는 상호 결합될 수 있으며, 동일하거나 유사한 개념 또는 과정은 일부 실시예에서 반복 설명하지 않을 수 있다.
실시예 2.1
도 12에 도시된 바와 같이, 다음과 같은 단계를 포함할 수 있다.
코딩하고 패키징한 데이터 패킷의 헤더를 해석하고, DU header 중의 priority 필드를 판독하며, 실제 적용에 따라 실제 채택한 우선순위의 개수 및 각 우선순위 하에서의 priority 필드와의 매핑 관계를 결정한다(S1).
도 13에 도시된 바와 같이, 구분한 우선순위 및 매핑 관계에 따라 원시의 소스 데이터 스트림을 높은 우선순위에서 낮은 우선순위로 재배열하고, 각 우선순위 하의 데이터 패킷 수를 통계한다(S2).
RaptorQ 시스템 코드의 자가 적응 FEC 코딩 방식으로 재배열한 소스 데이터 스트림에 대해 FEC 코딩을 수행하여 복구 데이터를 생성한다(S3).
구체적으로, RaptorQ 시스템 코드의 자가 적응 FEC 코딩 방식으로 상기 중간 데이터 패킷에 대해 FEC 코딩을 수행하여 다음과 같은 중간 코드 워드를 획득한다.
Figure pct00375
식에서
Figure pct00376
는 제i종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스를 나타내고,
Figure pct00377
,
Figure pct00378
, ...,
Figure pct00379
, ...,
Figure pct00380
은 각각 N 종류의 소스 데이터 패킷의 중간 코드에 대응하며,
Figure pct00381
,
Figure pct00382
, ...,
Figure pct00383
, …,
Figure pct00384
은 각각 N 종류의 소스 데이터 패킷의 데이터에 대응하고, 위 첨자 -1은 역매트릭스 연산자이다.
상기 중간 코드 워드에 따라 복구 데이터 패킷을 획득하고, 상기 복구 데이터 패킷에 FEC payload ID를 추가하며, 그 중 상기 복구 데이터 패킷 중의 복구 데이터는 다음과 같다.
Figure pct00385
식에서
Figure pct00386
,
Figure pct00387
, ...
Figure pct00388
, …,
Figure pct00389
은 각각 1 ~ N개의 소스 데이터 패킷의 복구 데이터에 대응하고,
Figure pct00390
i번째 소스 데이터 패킷의 LT 코딩 매트릭스에 대응하며,
Figure pct00391
Figure pct00392
과 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내고,
Figure pct00393
Figure pct00394
와 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내며, i=1, 2, …, N이다.
도 14에 도시된 바와 같이, FEC 인코더에서 출력한 데이터 스트림(재배열된 데이터 스트림)에 따라 소스 데이터 패킷과 복구 데이터 패킷을 생성하고, FEC payload ID를 추가한다.
AL-FEC message를 생성하고, 수신단이 데이터를 수신한 후 데이터를 정확하게 복구하도록 시그널링에서 각 우선순위 하의 데이터 패킷 수, 및 각 우선순위 하에 대응하는 복구 데이터 패킷 수를 나타낸다(S4). 구체적인 시그널링은 표 1과 같다.
표 1 시그널링 정보 대조
문법 비트 수 비고
if (fec_coding_structure == 0100) { number_of__priority
for(i=0;i<N8;i++){
fec_ priority_ value
number_of_source_symbol
number_of_repair_symbol
}

if (private_fec_flag == 1) {
private_flag
private_field_length
private_field
}
repair_flow_id
fec_code_id_for_repair_flow
maximum_k_for_repair_flow
maximum_p_for_repair_flow
protection_window_time
protection_window_size
}

N8







N7



8
16
16



1
7
N7*8

8
8
24
24
32
32

uimbsf

uimbsf
uimbsf
uimbsf



bslbf
bslbf
uimbsf

uimbsf
uimbsf
uimbsf
uimbsf
uimbsf
uimbsf
표 1에서 number_of_priority는 우선순위의 개수를 나타낸다. fec_priority_value는 8 비트로, 각 우선순위에 대응하는 값을 나타내는데, 해당 값은 많아야 DU header 중의 priority에서 정의한 우선순위와 동일할 수 있고, 복수개의 DU header 중의 priority에 대응할 수도 있다. number_of_source_symbol은 16 비트로, 우선순위가 fec_priority_value로 표시되는 값인 경우의 소스 심볼의 수를 나타낸다. number_of_repair_symbol은 16 비트로, 우선순위가 fec_priority_value로 표시되는 값인 경우의 복구 심볼의 수를 나타낸다. private_fec_flag는 지시 비트로, 개인 FEC 코딩 방안을 사용하는지를 나타낸다. private_flag는 지시 비트로, 사용한 개인 FEC 코딩 방안을 설명하기 위한 하나의 private_field가 존재하는지를 나타낸다. private_field_length는 길이 필드로, 개인 FEC 코딩 방안의 필드 길이를 설명하기 위한 것이다. private_field는 개인 FEC 방안의 상세한 정보를 설명하기 위한 것이다. priority_id는 우선순위 id로, MMT 패킷의 우선순위를 나타내기 위한 것이다. fec_code_id_for_repair_flow는 사용한 FEC 코딩 방식을 설명하기 위한 것이다. repair_flow_id는 8 비트 정수로, 생성한 FEC repair flow를 나타내기 위한 것이고, FEC repair 패킷의 헤더 중의 packet id와 대응 관계를 가진다. maximum_k_for_repair_flow는 24 비트 정수로, 하나의 source sysmbol 블록 중 source sysmbol의 최대 수를 나타낸다. maximum_p_for_repair_flow는 24 비트 정수로, 하나의 repair sysmbol 블록 중 repair sysmbol의 최대 수를 나타낸다. protection_window_time은 보호 윈도 시간으로, FEC 코딩에서 첫 번째 source 또는 repair 패킷을 전송할 때와 마지막 source 또는 repair 패킷을 전송할 때의 최대 시간차를 나타내며 단위는 밀리 초이다. protection_window_size는 보호 윈도 값으로, FEC 코딩 스트림에서 첫 번째 FEC 패킷을 전송하는 부하와 마지막 FEC 패킷을 전송하는 부하 사이의 최대 계산값을 나타낸다.도 15에 도시된 바와 같이, FEC의 각 우선순위 하의 데이터 패킷 수에 따라 하기 공식을 통해 소스 데이터에 대응하는 코딩 매트릭스의 상응하는 행의 인덱스를 획득한다.
Figure pct00395
식에서 index는 소스 데이터에 대응하는 코딩 매트릭스의 상응하는 행의 인덱스를 나타내고, FEC payload ID는 데이터 패킷 헤더의 인덱스 정보를 나타내며, number of packets of all priorities before this packet은 해당 데이터 패킷 이전의 모든 우선순위의 데이터 패킷의 총수를 나타낸다.
도 16에 도시된 바와 같이, 각 우선순위의 수가 100인 4개의 우선순위를 예로 하여 설명한다. source_FEC_payload_ID는 재정렬된 소스 데이터 패킷의 순서에 따라 정렬한 것으로, 우선순위가 1인 것은 현재의 source_FEC_payload_ID에 따라 직접 코딩 매트릭스를 생성하는 ISI(인덱스)를 결정할 수 있다. 우선순위가 1보다 크면, 헤더를 해석할 때 그 source_FEC_payload_ID의 값과 각 우선순위 하의 소스 심볼 수에 따라 그가 어느 우선순위에 속하는지를 결정할 수 있는데, 예를 들어 source_FEC_payload_ID=108인 경우에는 우선순위 2에 속하는 것으로 결정할 수 있고, 상기 공식을 통해 ISI=8을 획득할 수 있다. 복구 데이터 패킷은 헤더 중의 repair_FEC_payload_ID에 따라 매트릭스를 생성하는 ISI를 결정할 수 있다. 송신단과 수신단에서 동일한 FEC 코딩 메커니즘을 채택하므로, 상기 2개의 인덱스에 따라 상응하는 코딩 매트릭스를 생성할 수 있다.
도 17에 도시된 바와 같이, 생성한 FEC 코딩 매트릭스에 따라 코딩 매트릭스에 대해 기본 행 변환을 수행하고, 상응하게 수신한 데이터 패킷을 정렬하며, repair_FEC_payload_ID의 값과 각 우선순위 하의 복구 심볼 수에 따라 그가 어느 우선순위에 속하는지를 결정함으로써, 복구 심볼의 심볼 블록에서의 위치를 조정하여 동일한 변화를 구현한다. 도 10에 도시된 흐름도와 같이, 수신한 우선순위가 다른 데이터 패킷 수에 근거하여 경우에 따라 디코딩을 수행한다. 구체적으로, 도 18에 도시된 바와 같이, 복구된 소스 데이터를 최종 획득한 후, 헤더 중의 packet_sequence_number에 따라 획득한 소스 데이터 패킷을 초기 순서로 복구한다.
실시예 2.2: 도 12에 도시된 바와 같이 다음과 같은 단계를 포함할 수 있다.
코딩하고 패키징한 데이터 패킷의 헤더를 해석하고, DU header 중의 priority 필드를 판독하며, 실제 적용에 따라 실제 채택한 우선순위 개수 및 각 우선순위 하에서 priority 필드와의 매핑 관계를 결정한다(S1).
도 13에 도시된 바와 같이, 구분한 우선순위 및 매핑 관계에 따라 원시의 소스 데이터 스트림을 높은 우선순위에서 낮은 우선순위로 재배열하고, 각 우선순위 하의 데이터 패킷 수를 통계한다(S2).
RaptorQ 시스템 코드의 자가 적응 FEC 코딩 방식으로 재배열한 소스 데이터 스트림에 대해 FEC 코딩을 수행하여 복구 데이터를 생성한다(S3).
구체적으로, RaptorQ 시스템 코드의 자가 적응 FEC 코딩 방식으로 상기 중간 데이터 패킷에 대해 FEC 코딩을 수행하여 다음과 같은 중간 코드 워드를 획득한다.
Figure pct00396
식에서
Figure pct00397
는 제i종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스를 나타내고,
Figure pct00398
,
Figure pct00399
, ...,
Figure pct00400
, …,
Figure pct00401
은 각각 N 종류의 소스 데이터 패킷의 중간 코드에 대응하며,
Figure pct00402
,
Figure pct00403
, ...,
Figure pct00404
, …,
Figure pct00405
은 각각 N 종류의 소스 데이터 패킷의 데이터에 대응하고, 위 첨자 -1은 역매트릭트 연산자이다.
상기 중간 코드 워드에 따라 복구 데이터 패킷을 획득하고, 상기 복구 데이터 패킷에 FEC payload ID를 추가하는데, 여기서 상기 복구 데이터 패킷 중의 복구 데이터는 다음과 같다.
Figure pct00406
식에서
Figure pct00407
,
Figure pct00408
, ...,
Figure pct00409
, …,
Figure pct00410
은 각각 1 ~ N개의 소스 데이터 패킷의 복구 데이터에 대응하고,
Figure pct00411
i번째 소스 데이터 패킷에 대응하는 LT 코딩 매트릭스를 나타내며,
Figure pct00412
Figure pct00413
과 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내고,
Figure pct00414
Figure pct00415
와 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내며, i=1, 2, …, N이다.
데이터 패킷 헤더의 확장에서 상응하는 지시 정보를 생성하고, 수신단이 데이터를 수신한 후 데이터를 정확하게 복구하도록 각 우선순위 하의 데이터 패킷 수, 및 각 우선순위 하에서 대응하는 복구 데이터 패킷 수를 나타낸다(S4). 구체적으로는 표 2와 같다.
표 2
Figure pct00416
표 2에서 type은 16 비트로, 현재 헤더의 확장 유형을 나타내고, 여기서는 자가 적응 순방향 에러 정정 코딩을 위한 중간 데이터 패킷 또는 복구 데이터 패킷을 나타낸다. length는 16 비트로, header_extension의 길이를 나타낸다. FEC_priority는 8 비트로, 현재 데이터 패킷이 속하는 우선순위를 나타낸다. sub_encoded_symbol_id는 16 비트로, 해당 우선순위에 하의 중간 데이터 패킷 또는 복구 데이터 패킷 수의 인덱스를 나타낸다. N은 8 비트로, 우선순위의 총수를 나타낸다. SSBL[i]는 24 비트로, 각 우선순위의 소스 데이터 패킷 수를 나타내고, i는 i번째 우선순위를 나타낸다. RSBL[i]는 24 비트로, 각 우선순위의 복구 데이터 패킷 수를 나타내고, i는 i번째 우선순위를 나타낸다.
도 19에 도시된 바와 같이, FEC의 각 우선순위 하의 데이터 패킷 수에 따라 하기 공식을 통해 소스 데이터에 대응하는 코딩 매트릭스의 상응하는 행의 인덱스를 획득한다.
Figure pct00417
식에서 index는 소스 데이터에 대응하는 코딩 매트릭스의 상응하는 행의 인덱스를 나타내고, FEC payload ID는 데이터 패킷 헤더의 인덱스 정보를 나타내며, number of packets of all priorities before this packet은 해당 데이터 패킷 이전의 모든 우선순위의 데이터 패킷의 총수를 나타낸다.
도 17에 도시된 바와 같이, 생성한 FEC 코딩 매트릭스에 따라 코딩 매트릭스에 대해 기본 행 변환을 수행하고, 상응하게 수신한 데이터 패킷을 정렬하며, repair_FEC_payload_ID의 값과 각 우선순위 하의 복구 심볼 수에 따라 그가 어느 우선순위에 속하는지를 결정함으로써, 복구 심볼의 심볼 블록에서의 위치를 조정하여 동일한 변화를 구현한다. 도 10에 도시된 흐름도와 같이, 수신한 우선순위가 다른 데이터 패킷 수에 근거하여 경우에 따라 디코딩을 수행한다. 구체적으로는 도 18에 도시된 바와 같이, 최종적으로 복구된 소스 데이터를 획득한 후 헤더 중의 packet_sequence_number에 따라 획득한 소스 데이터 패킷을 초기 순서로 복구한다.
본 실시예에서, 서버 측은 데이터 스트림 중 상이한 데이터에 대해 중요도 구분함으써, 중요도가 다른 데이터에 상이한 보호를 제공한다. 전송한 데이터 패킷의 헤더 정보와 시그널링 정보를 통해 식별한다. 시스템 코드 방식을 통해 채널 상황과 데이터의 중요도에 따라 자가 적응적으로 시스템 파운틴 코드의 코딩 매트릭스를 조정하여 중요도가 다른 데이터에 대한 차등 오류 보호를 구현한다. 단말 측은 시그널링 정보와 헤더 정보를 해석하는 동시에, 수신한 우선순위가 다른 데이터의 수에 따라 유연한 디코딩 알고리즘을 통해 유연한 코딩 및 디코딩을 구현하며, 헤더 정보에 따라 최종적으로 소스 데이터 스트림을 복구한다. 따라서, 다음과 같은 유익한 효과를 달성할 수 있다.
1) 자원을 절약할 수 있다. 예를 들어 단말 측(수신단)에서 경우에 따라 이미 수신한 데이터(예컨대 B 프레임)를 인위적으로 폐기할 경우 전송 자원의 낭비를 초래할 수 있으나, 본 실시예에 따른 방법은 근본적으로 이 문제를 해결하여 원하지 않는 패킷이 전송 과정에서 더 큰 확률로 손실되도록 하고 중요한 데이터 패킷을 더욱 보호한다.
2) 맞춤형 전송 방식을 구현한다. 예를 들어 채널 상황, 사용자 체험 등에 따라 차등 오류 보호 방안을 설계하여 비디오의 전송이 더욱 유연하고 세밀하도록 할 수 있다. 또한, 송신단의 코딩 방식이 유연하더라도 수신단은 리스트 정보에 따라 원시 데이터를 모두 정확하게 복구할 수 있다.
3) 더욱 유연한 코딩 매트릭스의 설계를 구현한다. 예를 들어, 실제 미디어의 적용 시나리오에 따라 미디어 콘텐츠를 기반으로 데이터의 우선순위를 구분하고, 실제 수요에 따라 FEC 코딩 매트릭스를 더욱 유연하게 설계함으로써, 차등 오류 보호의 효과를 달성할 수 있다.
4) 더욱 유연한 디코딩 방식을 구현한다. 예를 들어, 수신한 각 우선순위의 데이터 수에 따라 상이한 디코딩 알고리즘을 통해 제한된 대역폭 자원 하에서 우선순위가 높은 데이터를 최대한 복구할 수 있어, 우선순위가 높은 데이터에 대한 보호 강도를 향상시킬 수 있다.
설명해야 할 것은, 본 발명에서 제공하는 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC 코딩 및 디코딩 방법의 단계는 상기 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC 시스템 중의 대응하는 모듈, 장치, 유닛 등을 이용하여 구현할 수 있으며, 본 발명이 속한 기술분야의 당업자는 상기 시스템의 기술방안을 참조하여 상기 방법의 단계를 구현할 수 있는데, 즉 상기 시스템의 실시예는 상기 방법을 구현하는 바람직한 예시로 이해할 수 있고, 여기서 반복 설명하지 않는다.
또한, 본 발명은 컴퓨터 판독 가능한 저장 매체에 적용될 수 있으며, 컴퓨터 판독 가능한 저장 매체는 컴퓨터 프로그램을 저장하고 프로세서에 의해 실행될 때, 전술한 실시예에서 설명한 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC 인코딩 및 디코딩 방법의 단계가 구현된다.
본 발명이 속한 기술분야의 당업자라면 단순한 컴퓨터 판독 가능 프로그램 코드 방식으로 본 발명에서 제공하는 시스템 및 그 각 장치, 모듈 및 유닛을 구현하는 것 외에도, 방법 단계를 논리적으로 프로그래밍하여 본 발명에서 제공하는 시스템 및 그 각 장치, 모듈, 유닛이 논리 게이트, 스위치, 전용 집적회로, 프로그램 가능 논리 제어기 및 임베디드 마이크로 컨트롤러 등의 형식으로 동일한 기능을 구현할 수 있음을 알 수 있을 것이다. 따라서, 본 발명에서 제공하는 시스템 및 그 각 장치, 모듈 및 유닛은 하나의 하드웨어 부재로 간주될 수 있고, 다양한 기능을 구현하기 위한 그에 포함된 장치, 모듈 및 유닛도 하드웨어 부재 내의 구조로 간주될 수 있다. 또한, 각종 기능을 구현하기 위한 장치, 모듈, 유닛은 방법을 구현하는 소프트웨어 모듈일 수도 있고, 하드웨어 부재 내의 구조일 수도 있다.
상기에서 본 발명의 구체적인 실시예를 설명하였다. 본 발명은 전술한 특정 실시형태 제한되지 않고, 본 발명이 속한 기술분야의 당업자라면 특허청구범위 내에서 다양한 변화 또는 수정을 실시할 수 있으며, 이는 본 발명의 실질 내용에 영향을 미치지 않음을 이해해야 한다. 충돌이 없는 전제 하에, 본 출원의 실시예와 실시예 중의 특징은 임의로 조합할 수 있다.

Claims (20)

  1. 미디어 컨텐츠의 중요도에 근거하여 소스 데이터를 우선순위에 따라 N(1보다 큰 정수) 종류의 소스 데이터 패킷으로 구분하는 단계;
    소스 데이터와 N 종류의 소스 데이터 패킷의 우선순위에 따라 N 종류의 중간 코드를 생성하는 단계;
    상기 N 종류의 중간 코드에 근거하여 채널 상황에 따라 N 종류의 소스 데이터의 복구 데이터를 설정하고, N 종류의 코딩 심볼을 생성하는 단계;
    상기 코딩 심볼을 수신하고, 디코딩 수요에 따라 상기 코딩 심볼을 정렬하여 상기 코딩 심볼을 디코딩하는 단계;
    수신한 코딩 심볼에 따라 우선순위가 높은 중간 코드를 먼저 디코딩하고, 해당 중간 코드에 따라 상응하는 소스 데이터 패킷을 복구하는 단계;를 포함하는 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법.
  2. 제1항에 있어서,
    상기 소스 데이터와 N 종류의 소스 데이터 패킷의 우선순위에 따라 N 종류의 중간 코드를 생성하는 단계는,
    N 종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스를 구성하여
    Figure pct00418
    (i=1, 2, ..., N)로 기록하고,
    Figure pct00419

    (식에서
    Figure pct00420
    i번째 소스 데이터 패킷에 대응하는 코딩 매트릭스를 나타내고,
    Figure pct00421
    i번째 소스 데이터 패킷에 대응하는 LDPC 매트릭스와 단위 매트릭스로 구성한 공동 매트릭스를 나타내며,
    Figure pct00422
    i번째 소스 데이터 패킷에 대응하는 LT 코딩 매트릭스를 나타냄)
    N 종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스에 따라 소스 데이터의 코딩 매트릭스
    Figure pct00423
    를 구성하며, 상기 소스 데이터의 코딩 매트릭스는
    Figure pct00424

    Figure pct00425
    Figure pct00426
    이면,
    Figure pct00427
    이고,
    (식에서
    Figure pct00428
    Figure pct00429
    ,..,
    Figure pct00430
    …,
    Figure pct00431
    은 각각 N 종류의 소스 데이터 패킷의 중간 코드에 대응하고,
    Figure pct00432
    Figure pct00433
    ,…,
    Figure pct00434
    …,
    Figure pct00435
    은 각각 N 종류의 소스 데이터 패킷의 데이터에 대응하며, 위 첨자
    Figure pct00436
    은 역매트릭스 연산자인 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 FEC의 코딩 및 디코딩 방법.
  3. 제2항에 있어서,
    상기 N 종류의 중간 코드에 근거하여 채널 상황에 따라 N 종류의 소스 데이터의 복구 데이터를 설정하는 단계는,
    Figure pct00437
    를 포함하고,
    식에서
    Figure pct00438
    Figure pct00439
    ,…,
    Figure pct00440
    …,
    Figure pct00441
    은 각각 N개의 소스 데이터 패킷의 복구 데이터에 대응하고,
    Figure pct00442
    Figure pct00443
    과 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내며,
    Figure pct00444
    Figure pct00445
    와 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내고, i=1, 2, …, N인 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 FEC의 코딩 및 디코딩 방법.
  4. 제3항에 있어서,
    N의 값이 2인 경우, 중요도가 다른 데이터에 대해 생성할 수 있는 상응하는 중간 코드는
    Figure pct00446
    이고,
    LT 코딩 매트릭스의 구조를 변경하여
    Figure pct00447
    ,
    Figure pct00448
    ,
    Figure pct00449
    을 획득하며,
    Figure pct00450
    Figure pct00451
    Figure pct00452
    Figure pct00453
    의 생성방식이 동일하고,
    Figure pct00454
    Figure pct00455
    의 생성방식이 동일하며,
    Figure pct00456
    Figure pct00457
    과 동일한 생성방식을 가진 LT 코딩 매트릭스를 나타내고,
    Figure pct00458
    Figure pct00459
    Figure pct00460
    Figure pct00461
    와 동일한 생성방식을 가진 LT 코딩 매트릭스를 나타내며,
    Figure pct00462
    Figure pct00463
    Figure pct00464
    Figure pct00465
    과 동일한 생성방식을 가진 LT 코딩 매트릭스를 나타내고,
    획득한 복구 데이터
    Figure pct00466
    은 단지 우선순위가 1인 데이터와 관련이 있고, 복구 데이터
    Figure pct00467
    Figure pct00468
    는 우선순위 1과 2의 데이터와 모두 관련이 있으며,
    Figure pct00469

    를 획득하는 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 FEC의 코딩 및 디코딩 방법.
  5. 제4항에 있어서,
    N의 값이 2인 경우, 상기 코딩 심볼을 수신하고 상기 코딩 심볼을 디코딩하는 단계는,
    제1단계의 디코딩에서 복구 매트릭스
    Figure pct00470
    및 수신한 소스 데이터 패킷에 따라 중간 코드를 획득하는데, 구체적으로는
    Figure pct00471

    Figure pct00472
    Figure pct00473
    이고,
    식에서
    Figure pct00474
    은 수신한 코딩 심볼의 패킷 손실 상황에 따라
    Figure pct00475
    Figure pct00476
    에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
    Figure pct00477
    은 수신한 코딩 심볼의 패킷 손실 상황에 따라
    Figure pct00478
    Figure pct00479
    에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
    Figure pct00480
    는 수신한 코딩 심볼의 패킷 손실 상황에 따라
    Figure pct00481
    Figure pct00482
    에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
    Figure pct00483
    는 수신한 코딩 심볼의 패킷 손실 상황에 따라
    Figure pct00484
    Figure pct00485
    에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
    Figure pct00486
    은 수신한 코딩 심볼의 패킷 손실 상황에 따라
    Figure pct00487
    Figure pct00488
    에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
    Figure pct00489
    로 하고, 수신한 대응하는 우선순위 하의 소스 데이터 패킷 수 및 수신한 데이터 패킷 총수에 따라 디코딩을 수행하고,
    수신한 코딩 심볼 총수가 소스 데이터에서 생성한 코딩 심볼의 개수보다 작고
    Figure pct00490
    의 행수가 열수보다 작은 경우
    Figure pct00491
    Figure pct00492
    ,
    Figure pct00493
    Figure pct00494
    는 모두 디코딩할 수 없고,
    수신한 코딩 심볼 총수가 소스 데이터에서 생성한 코딩 심볼의 개수보다 작고
    Figure pct00495
    의 행수가 열수보다 크거나 같은 경우, 만약
    Figure pct00496
    의 행수가 열수보다 크거나 같으면
    Figure pct00497
    은 가역적이며, 대응하는 역매트릭스는
    Figure pct00498
    로 기록되고,
    Figure pct00499
    를 획득할 수 있으며,
    Figure pct00500
    는 디코딩할 수 없고,
    식에서
    Figure pct00501
    은 수신한 우선순위가 1인 소스 데이터를 나타내고,
    Figure pct00502
    은 수신한 우선순위가 1인 소스 데이터의 복구 데이터를 나타내며,
    수신한 코딩 심볼 총수가 소스 데이터에서 생성한 코딩 심볼의 개수보다 크거나 같고
    Figure pct00503
    의 행수가 열수보다 크거나 같은 경우, 만약
    Figure pct00504
    의 행수가 열수보다 크거나 같으면
    Figure pct00505
    은 가역적이고, 대응하는 역매트릭스는
    Figure pct00506
    로 기록되며, 만약
    Figure pct00507
    의 행수가 열수보다 크거나 같으면
    Figure pct00508
    는 가역적이고, 대응하는 역매트릭스는
    Figure pct00509
    로 기록되며, 만약
    Figure pct00510
    Figure pct00511
    가 모두 가역적이면
    Figure pct00512
    는 가역적이고, 대응하는 역매트릭스는
    Figure pct00513
    로 기록되며,
    Figure pct00514
    로 기록되고,
    Figure pct00515
    이며,
    Figure pct00516
    를 획득하고,
    만약
    Figure pct00517
    의 행수가 열수보다 작으면
    Figure pct00518
    는 역매트릭스가 존재하지 않으며
    Figure pct00519
    만을 구할 수 있고,
    식에서
    Figure pct00520
    는 수신한 우선순위가 2인 소스 데이터를 나타내고,
    Figure pct00521
    는 수신한 우선순위가 1과 2인 소스 데이터의 복구 데이터를 나타내며,
    수신한 코딩 심볼 총수가 소스 데이터에서 생성한 코딩 심볼의 개수보다 크거나 같고
    Figure pct00522
    의 행수가 열수보다 작고
    Figure pct00523
    의 행수가 열수보다 크거나 같은 경우, 가우스 소거법을 사용하여 직접 매트릭스
    Figure pct00524
    를 구하는데, 즉 선형 방정식
    Figure pct00525
    을 구하여
    Figure pct00526
    ,
    Figure pct00527
    를 획득하는 것을 특징으로 하는 미디어 콘텐츠의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법.
  6. 제3항 에있어서,
    일부 데이터의 손실로 인해, 수신한 코딩 심볼에 따라 복구 매트릭스를 생성해야 하는데, 이는 손실된 코딩 심볼에 대응하는 매트릭스 행을 소거하여 상응하는 복구 매트릭스를 형성하고
    Figure pct00528
    로 기록하는 것과 같으며, 수신한 데이터 패킷 수에 근거하여 경우에 따라 중간 코드를 생성하는데, 구체적으로는
    l 종류의 우선순위의 데이터 패킷이 수신되면, 하기 복구 매트릭스 방정식을 획득하는 단계 A1;
    Figure pct00529

    복구 매트릭스 방정식에 대해 기본 행 변환을 수행하면,
    Figure pct00530
    을 획득하며,
    식에서
    Figure pct00531
    은 수신한 코딩 심볼의 패킷 손실 상황에 따라
    Figure pct00532
    에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
    Figure pct00533
    은 수신한 코딩 심볼의 패킷 손실 상황에 따라
    Figure pct00534
    에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
    Figure pct00535
    는 수신한 코딩 심볼의 패킷 손실 상황에 따라
    Figure pct00536
    에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
    Figure pct00537
    는 수신한 코딩 심볼의 패킷 손실 상황에 따라
    Figure pct00538
    에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
    Figure pct00539
    은 수신한 코딩 심볼의 패킷 손실 상황에 따라
    Figure pct00540
    에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
    Figure pct00541
    은 수신한 우선순위가 1인 소스 데이터를 나타내며,
    Figure pct00542
    은 수신한 우선순위가 1인 소스 데이터의 복구 데이터를 나타내고,
    Figure pct00543
    는 수신한 우선순위가 2인 소스 데이터를 나타내며,
    Figure pct00544
    는 수신한 우선순위가 1과 2인 소스 데이터를 나타내고,
    Figure pct00545
    은 수신한 코딩 심볼의 패킷 손실 상황에 따라
    Figure pct00546
    에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
    Figure pct00547
    은 수신한 우선순위가 l인 소스 데이터를 나타내고,
    Figure pct00548
    은 수신한 우선순위가 1에서 l인 소스 데이터의 복구 데이터이며,
    Figure pct00549
    l 종류의 중간 코드를 나타내며,
    Figure pct00550
    로 하고,
    Figure pct00551
    은 수신하고 확장한 i번째 코딩 심볼 수이며,
    Figure pct00552
    는 코딩단 각 순위의 심볼 길이이고,
    Figure pct00553
    인 단계 A2;
    각 순위가 생성한 매트릭스의 랭크를 계산하고,
    Figure pct00554

    식에서
    Figure pct00555
    는 우선순위가 i인 데이터에 대응하는 서브 매트릭스의 랭크를 나타내며, 여기서 i=2일 때 대응하는 서브 매트릭스는
    Figure pct00556
    이고,
    Figure pct00557
    는 수신한 우선순위가 i인 코딩 심볼 수의 길이를 나타내며,
    Figure pct00558
    는 우선순위가 i인 서브 매트릭스의 열수를 나타내고,
    Figure pct00559
    은 최솟값 연산을 나타내며,
    누적 매트릭스의 랭크를 계산하고,
    Figure pct00560
    ,
    식에서
    Figure pct00561
    은 우선순위 1에서 우선순위 i가 대응하는 서브 매트릭스 랭크의 합을 나타내고,
    Figure pct00562
    은 우선순위 1에서 우선순위 i-1이 대응하는 매트릭스 랭크의 합을 나타내며,
    여기서
    Figure pct00563
    이고,
    순차적으로
    Figure pct00564
    를 판단하며, 성립하면
    Figure pct00565
    이고, 그렇지 않으면
    Figure pct00566
    이며,
    Figure pct00567
    는 우선순위 1에서 우선순위 i가 대응하는 서브 매트릭스로 구성한 매트릭스 풀 랭크를 나타내고,
    수신한 각 순위의 코딩 심볼 수에 근거하여 경우에 따라 각각 중간 코드
    Figure pct00568
    ,
    Figure pct00569
    ,... ,
    Figure pct00570
    을 구하고, i 초기값을 l로 설정하는 단계 A3;
    Figure pct00571
    &&
    Figure pct00572
    를 만족하면, RFC 6330 디코딩 방법을 사용하여
    Figure pct00573
    ~
    Figure pct00574
    를 디코딩하는데, 여기서 &&는 AND 연산을 나타내고,
    Figure pct00575
    은 우선순위 1에서 우선순위 i까지의 각 서브 매트릭스가 구성한 매트릭스 풀 랭크를 나타내며,
    Figure pct00576
    은 우선순위가 1인 데이터에 대응하는 중간 코드 워드를 나타내고,
    Figure pct00577
    는 우선순위가 i인 데이터에 대응하는 중간 코드를 나타내고,
    Figure pct00578
    를 설정하고,
    Figure pct00579
    를 획득하는데,
    여기서
    Figure pct00580
    Figure pct00581
    이고,
    식에서
    Figure pct00582
    는 우선순위가 i일 때 모든 서브 매트릭스로 구성한 풀 랭크 매트릭스를 나타내고,
    Figure pct00583
    는 서브 매트릭스
    Figure pct00584
    를 나타내며,
    Figure pct00585
    는 서브 매트릭스
    Figure pct00586
    에 대해 역연산을 한 후의 서브 매트릭스를 나타내고,
    Figure pct00587
    는 서브 매트릭스
    Figure pct00588
    에 대해 역연산을 한 후 획득한 서브 매트릭스를 나타내며,
    Figure pct00589
    는 서브 매트릭스
    Figure pct00590
    를 나타내고, a의 값 범위는 1 ~ i이며, b의 값 범위는 2 ~ i이고,
    Figure pct00591
    은 서브 매트릭스
    Figure pct00592
    의 역매트릭스를 나타내며,
    Figure pct00593
    로 하는데, 여기서
    Figure pct00594
    이고,
    Figure pct00595
    Figure pct00596
    의 역매트릭스이며,
    Figure pct00597

    Figure pct00598

    Figure pct00599

    를 획득하며,
    수학적 귀납법에 따라,
    Figure pct00600

    를 획득하고,
    Figure pct00601
    ,
    Figure pct00602
    , ...,
    Figure pct00603
    를 구하는데, 여기서
    Figure pct00604
    , ...,
    Figure pct00605
    은 디코딩할 수 없으며,
    Figure pct00606
    를 만족하고
    Figure pct00607
    를 만족하지 않으면, 가우스 소거 디코딩 방법을 사용하여
    Figure pct00608
    ~
    Figure pct00609
    를 디코딩하고,
    Figure pct00610
    로 설정하고, 가우스 소거법을 통해 선형 방정식
    Figure pct00611
    을 디코딩하고,
    Figure pct00612
    ,
    Figure pct00613
    , ...,
    Figure pct00614
    를 구하는데, 여기서
    Figure pct00615
    ,...,
    Figure pct00616
    은 디코딩할 수 없으며,
    임의 i값에 대하여,
    Figure pct00617
    를 만족하지 못하면 상응하게
    Figure pct00618
    를 디코딩할 수 없고,
    Figure pct00619
    될 때까지
    Figure pct00620
    를 만족하기 못하면
    Figure pct00621
    , ...,
    Figure pct00622
    은 모두 디코딩할 수 없고 디코딩이 실패되며,
    i의 값을 1 줄이고 단계 A3으로 돌아가는 단계 A4;를 포함하는 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법.
  7. 제1항에 있어서,
    소스 데이터 패킷 중의 각 서브 데이터 패킷 헤더의 중요성 정보를 해석하는 단계;
    상기 중요성 정보에 따라 상기 소스 데이터 패킷 중의 각 서브 데이터 패킷을 각각 상이한 우선순위로 매핑하는 단계;
    서브 데이터 패킷의 우선순위에 따라 서브 데이터 패킷을 재배열하여 중간 데이터 패킷을 획득하는 단계;
    상기 중간 데이터 패킷을 복수개의 심볼(symbol)로 변환하고, 복수개의 심볼(symbol)로 변환된 중간 데이터 패킷에 대해 순방향 에러 정정 FEC 코딩을 수행하여 복수개의 심볼(symbol)을 포함하는 복구 데이터 패킷을 획득하는 단계;
    상기 복구 데이터 패킷에 복구 데이터 패킷 중의 서브 데이터 패킷의 순서 및/또는 복구 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내기 위한 인덱스 필드 및/또는 우선순위 지시 필드를 추가하고, 상기 중간 데이터 패킷에도 중간 데이터 패킷 중의 서브 데이터 패킷의 순서 및/또는 중간 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내기 위한 인덱스 필드 및/또는 우선순위 지시 필드를 추가하는 단계;
    상기 복구 데이터 패킷과 중간 데이터 패킷에 상응하는 지시 정보를 추가하거나, 복구 데이터 패킷과 중간 데이터 패킷을 전송할 때 상응하는 지시 정보(복구 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및 상응하는 우선순위에 속하는 서브 데이터 패킷 수 또는 상기 서브 데이터 패킷이 상기 복구 데이터 패킷에서 차지하는 비례를 나타내고, 중간 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및 상응하는 우선순위에 속하는 서브 데이터 패킷 수 또는 상기 서브 데이터 패킷이 상기 중간 데이터 패킷에서 차지하는 비례를 나타냄)를 전송하는 단계; 및
    단말 측으로 지시 정보를 포함하는 복구 데이터 패킷, 중간 데이터 패킷을 발송하거나, 또는 단말 측으로 복구 데이터 패킷, 중간 데이터 패킷 및 상응하는 지시 정보를 발송하는 단계;를 더 포함하는 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법.
  8. 제7항에 있어서,
    상기 소스 데이터 패킷 중의 각 서브 패킷 헤더의 중요성 정보를 해석하는 단계는 각 서브 데이터 패킷 헤더 중의 우선순위(priority) 필드를 판독하고, 상기 우선순위(priority) 필드 중의 정보에 따라 대응하는 서브 데이터 패킷의 우선순위를 결정하는 단계를 포함하는 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법.
  9. 제8항에 있어서,
    상기 중요성 정보에 따라 상기 소스 데이터 패킷 중의 각 서브 데이터 패킷을 각각 상이한 기정 우선순위로 매핑하는 단계는,
    상기 소스 데이터 패킷에 실제 채택된 우선순위의 개수, 및 각 우선순위 하에서 상기 우선순위(priority) 필드와의 매핑 관계를 결정하는 단계;
    상기 매핑 관계에 따라 서브 데이터 패킷을 상응하는 기정 우선순위에 매핑시키는 단계;를 포함하는 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법.
  10. 제7항에 있어서,
    상기 중간 데이터 패킷을 복수개의 심볼(symbol)로 변환하고, 복수개의 심볼(symbol)로 변환된 중간 데이터 패킷에 대해 순방향 에러 정정 FEC 코딩을 수행하여 복수개의 심볼(symbol)을 포함하는 복구 데이터 패킷을 획득하는 단계는,
    RaptorQ 시스템 코드의 자가 적응 FEC 코딩 방식으로 상기 중간 데이터 패킷에 대해 FEC 코딩을 수행하여
    Figure pct00623
    과 같은 중간 코드 워드를 획득하는 단계;
    식에서
    Figure pct00624
    는 제i종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스를 나타내고,
    Figure pct00625
    ,
    Figure pct00626
    , ...,
    Figure pct00627
    , ...,
    Figure pct00628
    은 각각 N 종류의 소스 데이터 패킷의 중간 코드에 대응하고,
    Figure pct00629
    ,
    Figure pct00630
    , ...,
    Figure pct00631
    , ...,
    Figure pct00632
    은 각각 N 종류의 소스 데이터 패킷의 데이터에 대응하며, 위 첨자 -1은 역매트릭트 연산자이고,
    상기 중간 코드 워드에 따라 복구 데이터 패킷을 획득하고, 상기 복구 데이터 패킷에 FEC payload ID를 추가하며, 상기 복구 데이터 패킷 중의 복구 데이터는
    Figure pct00633
    인 단계;
    식에서
    Figure pct00634
    ,
    Figure pct00635
    , ...,
    Figure pct00636
    , ...,
    Figure pct00637
    은 각각 1 ~ N개의 소스 데이터 패킷의 복구 데이터에 대응하고,
    Figure pct00638
    i번째 소스 데이터 패킷에 대응하는 LT 코딩 매트릭스를 나타내며,
    Figure pct00639
    Figure pct00640
    과 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내고,
    Figure pct00641
    Figure pct00642
    와 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내며, i=1, 2, …, N인 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법.
  11. 서버가 발송한 복구 데이터 패킷, 중간 데이터 패킷을 수신하거나, 또는 복구 데이터 패킷, 중간 데이터 및 상응하는 지시 정보를 수신하는 단계;
    상기 복구 데이터 패킷과 중간 데이터 패킷에 포함된 인덱스 필드(복구 데이터 패킷 중의 서브 데이터 패킷의 순서, 및 중간 데이터의 각 우선순위 하에서의 서브 데이터 패킷을 나타냄)를 해석하고, 상기 인덱스 필드에 따라 코딩 매트릭스를 생성하는 단계; 또는
    복구 데이터 패킷과 중간 데이터 패킷의 우선순위 지시 필드를 통해 직접 인덱스 정보(복구 데이터 패킷 중의 서브 데이터 패킷의 순서, 및 중간 데이터의 각 우선순위 하에서의 서브 데이터 패킷을 나타냄)를 획득하고, 상기 인덱스 정보에 따라 코딩 매트릭스를 생성하는 단계;
    상기 코딩 매트릭스에 대해 순방향 에러 정정 FEC 디코딩을 수행하여 중간 데이터 패킷을 복구하는 단계;
    상기 중간 데이터 패킷 헤더 중의 정보를 해석하고, 중간 데이터 패킷의 서브 데이터 패킷의 순서를 재배열하여 소스 데이터 패킷을 복구하는 단계;를 포함하는 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법.
  12. 제11항에 있어서,
    상기 복구 데이터 패킷과 중간 데이터 패킷에 포함된 인덱스 필드를 해석하는 단계는,
    하기 공식을 통해 소스 데이터에 대응하는 코딩 매트릭스의 상응하는 행의 인덱스 필드를 획득하고,
    Figure pct00643

    Figure pct00644

    식에서 index는 소스 데이터에 대응하는 코딩 매트릭스의 상응하는 행의 인덱스를 나타내고, FEC payload ID는 데이터 패킷 헤더의 인덱스 정보를 나타내며, number of packets of all priorities before this packet은 해당 데이터 패킷 이전의 모든 우선순위의 데이터 패킷 총수를 나타내는 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법.
  13. 제11항에 있어서,
    상기 코딩 매트릭스에 대해 순방향 에러 정정 FEC 디코딩을 수행하여 중간 데이터 패킷을 복구하는 단계는,
    상기 코딩 매트릭스에 대해 기본 행 변환을 수행하고, 수신한 상응하는 복구 데이터 패킷 중의 심볼(symbol)을 정렬하고, 복구된 데이터 패킷 헤더의 인덱스 정보 FEC_payload_ID의 값과, 대응하는 우선순위 하의 심볼(symbol) 수에 따라 상기 심볼(symbol)이 속하는 우선순위와 변환 후의 위치를 결정하는 단계; 또는
    복구 데이터 패킷 헤더 중의 우선순위 필드와 해당 우선순위 필드에 대응하는 우선순위 하의 인덱스 정보에 따라 심볼(symbol)이 속하는 우선순위와 변환 후의 위치를 직접 결정하는 단계;
    복구 데이터 패킷 중의 심볼(symbol)의 순서를 조정하고, 가우스 소거 디코더와 RFC6330 디코더를 통해 디코딩을 수행하여 복수개의 심볼(symbol)을 포함하는 복구된 중간 데이터 패킷을 획득하는 단계;
    복수개의 심볼(symbol)을 포함하는 중간 데이터 패킷을 중간 데이터 패킷으로 변환하는 단계;를 포함하는 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법.
  14. 소스 데이터 패킷 중의 각 서브 데이터 패킷 헤더의 중요성 정보를 해석하기 위한 해석 모듈;
    상기 중요성 정보에 따라 상기 소스 데이터 패킷 중의 각 서브 데이터 패킷을 상이한 기정 우선순위로 매핑하기 위한 매핑 모듈;
    기정 우선순위에 따라 서브 데이터 패킷을 재배열하여 중간 데이터 패킷을 획득하기 위한 배열 모듈;
    상기 중간 데이터 패킷을 복수개의 심볼(symbol)로 변환하고, 복수개의 심볼(symbol)로 변환된 중간 데이터 패킷에 대해 순방향 에러 정정 FEC 코딩을 수행하여 복수개의 심볼(symbol)을 포함하는 복구 데이터 패킷을 획득하기 위한 코딩 모듈;
    상기 복구 데이터 패킷에 복구 데이터 패킷 중의 서브 데이터 패킷의 순서 및/또는 복구 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내기 위한 인덱스 필드 및/또는 우선순위 지시 필드를 추가하고, 상기 중간 데이터 패킷에도 중간 데이터 패킷 중의 서브 데이터 패킷의 순서 및/또는 중간 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내기 위한 인덱스 필드 및/또는 우선순위 지시 필드를 추가하기 위한 인덱스 모듈;
    상기 복구 데이터 패킷과 중간 데이터 패킷에 상응하는 지시 정보(복구 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및 상응하는 우선순위에 속하는 서브 데이터 패킷 수 또는 상기 서브 데이터 패킷이 상기 복구 데이터 패킷에서 차지하는 비례를 나타내고, 중간 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및 상응하는 우선순위에 속하는 서브 데이터 패킷 수 또는 상기 서브 데이터 패킷이 상기 중간 데이터 패킷에서 차지하는 비례를 나타냄)를 추가하거나, 또는 복구 데이터 패킷과 중간 데이터 패킷을 전송할 때 상응하는 지시 정보를 전송하기 위한 지시 정보 생성 모듈;
    단말 측으로 상기 복구 데이터 패킷, 중간 데이터 패킷 및 상응하는 시그널링 정보를 전송하거나, 또는 단말 측으로 복구 데이터 패킷, 중간 데이터 패킷 및 상응하는 지시 정보를 전송하기 위한 전송 모듈;을 포함하는 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 장치.
  15. 제14항에 있어서,
    상기 코딩 모듈은 구체적으로,
    RaptorQ 시스템 코드의 자가 적응 FEC 코딩 방식으로 상기 중간 데이터 패킷에 대해 FEC 코딩을 수행하여
    Figure pct00645
    과 같은 중간 코드 워드를 획득하고,
    식에서
    Figure pct00646
    는 제i종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스를 나타내고,
    Figure pct00647
    ,
    Figure pct00648
    , ...,
    Figure pct00649
    ,...,
    Figure pct00650
    은 각각 N 종류의 소스 데이터 패킷의 중간 코드에 대응하고,
    Figure pct00651
    ,
    Figure pct00652
    , ...,
    Figure pct00653
    , ...,
    Figure pct00654
    은 각각 N종류 소스 데이터 패킷의 데이터에 대응하며, 위 첨자 -1은 역매트릭트 연산자이고,
    상기 중간 코드 워드에 따라 복구 데이터 패킷을 획득하고, 상기 복구 데이터 패킷에 FEC payload ID를 추가하는데, 상기 복구 데이터 패킷 중의 복구 데이터는
    Figure pct00655
    이며,
    식에서
    Figure pct00656
    ,
    Figure pct00657
    ,...,
    Figure pct00658
    , ...,
    Figure pct00659
    은 각각 1 ~ N 개의 소스 데이터 패킷의 복구 데이터에 대응하고,
    Figure pct00660
    i번째 소스 데이터 패킷에 대응하는 LT 코딩 매트릭스를 나타내며,
    Figure pct00661
    Figure pct00662
    과 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내고,
    Figure pct00663
    Figure pct00664
    와 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내며, i=1, 2, ..., N인 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 장치.
  16. 서버가 발송한 복구 데이터 패킷, 중간 데이터 패킷을 수신하거나, 또는 복구 데이터 패킷, 중간 데이터 및 상응하는 지시 정보를 수신하기 위한 수신 모듈;
    상기 복구 데이터 패킷과 중간 데이터 패킷에 포함된 인덱스 필드(복구 데이터 패킷 중의 서브 데이터 패킷의 순서, 및 중간 데이터의 각 우선순위 하에서의 서브 데이터 패킷을 나타냄)를 해석하고, 상기 인덱스 필드에 따라 코딩 매트릭스를 생성하거나, 또는 복구 데이터 패킷과 중간 데이터 패킷의 우선순위 지시 필드를 통해 인덱스 정보(복구 데이터 패킷 중의 서브 데이터 패킷의 순서, 및 중간 데이터의 각 우선순위 하에서의 서브 데이터 패킷을 나타냄)를 직접 획득하고, 상기 인덱스 정보에 따라 코딩 매트릭스를 생성하기 위한 코딩 매트릭스 생성 모듈;
    상기 코딩 매트릭스에 대해 순방향 에러 정정 FEC 디코딩을 수행하여 중간 데이터 패킷을 복구하기 위한 디코딩 모듈; 및
    상기 중간 데이터 패킷 헤더 중의 정보를 해석하고, 중간 데이터 패킷의 서브 데이터 패킷의 순서를 재배열하여 소스 데이터 패킷을 복구하기 위한 복구 모듈;을 포함하는 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 장치.
  17. 제16항에 있어서,
    상기 코딩 매트릭스 생성 모듈은 구체적으로,
    하기 공식을 통해 소스 데이터에 대응하는 코딩 매트릭스의 상응하는 행의 인덱스 필드를 획득하고,
    Figure pct00665

    Figure pct00666

    식에서 index는 소스 데이터에 대응하는 코딩 매트릭스의 상응하는 행의 인덱스를 나타내고, FEC payload ID는 데이터 패킷 헤더의 인덱스 정보를 나타내며, number of packets of all priorities before this packet은 해당 데이터 패킷 이전의 모든 우선순위의 데이터 패킷 총수를 나타내는 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 장치.
  18. 제16항에 있어서,
    상기 디코딩 모듈은 구체적으로,
    상기 코딩 매트릭스에 대해 기본 행 변환을 수행하고, 수신한 상응하는 복구 데이터 패킷 중의 심볼(symbol)을 정렬하며, 복구된 데이터 패킷 헤더의 인덱스 정보 FEC_payload_ID의 값과, 대응하는 우선순위 하의 심볼(symbol) 수에 따라 상기 심볼(symbol)이 속하는 우선순위와 변환 후의 위치를 결정하고; 또는
    복구 데이터 패킷 헤더 중의 우선순위 필드와 해당 우선순위 필드에 대응하는 우선순위 하의 인덱스 정보에 따라 심볼(symbol)이 속하는 우선순위와 변환 후의 위치를 직접 결정하고;
    복구 데이터 패킷 중의 심볼(symbol)의 순서를 조정하고, 가우스 소거 디코더와 RFC6330 디코더를 통해 디코딩을 수행하여 복수개의 심볼(symbol)을 포함하는 복구된 중간 데이터 패킷을 획득하고;
    다중 심볼(symbol)을 포함하는 중간 데이터 패킷을 중간 데이터 패킷으로 변환시키는 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 장치.
  19. 서버 및 적어도 하나의 단말을 포함하며, 상기 서버는 제7항 ~ 제10항 중 어느 한 항에 따른 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법을 수행하기 위한 것이고, 상기 단말은 제11항 ~ 제13항 중 어느 한 항에 따른 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법을 수행하기 위한 것을 특징으로 하는 미디어 컨텐츠 기반의 자가 적응 시스템 코드 FEC 코딩 및 디코딩 시스템.
  20. 컴퓨터 프로그램이 프로세서에 의해 실행될 때 제7항 내지 제13항 중 어느 한 항에 따른 이미지 기반의 스트라이프 천 검출, 위치 결정 및 절단 방법의 단계가 구현되는 것을 특징으로 하는 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체.
KR1020207003904A 2017-07-11 2018-07-09 미디어 콘텐츠 기반의 자가 적응 시스템 코드 fec의 코딩 및 디코딩 방법, 장치, 시스템 및 매체 KR102383892B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201710561850.2 2017-07-11
CN201710561850.2A CN109245850B (zh) 2017-07-11 2017-07-11 基于媒体内容的自适应***码fec编译码方法
CN201710973473.3 2017-10-18
CN201710973473.3A CN109687934B (zh) 2017-10-18 2017-10-18 基于媒体内容的自适应***码fec方法、装置及***
PCT/CN2018/095051 WO2019011219A1 (zh) 2017-07-11 2018-07-09 基于媒体内容的自适应***码fec编译码方法、装置、***及介质

Publications (2)

Publication Number Publication Date
KR20200024319A true KR20200024319A (ko) 2020-03-06
KR102383892B1 KR102383892B1 (ko) 2022-04-08

Family

ID=65002411

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207003904A KR102383892B1 (ko) 2017-07-11 2018-07-09 미디어 콘텐츠 기반의 자가 적응 시스템 코드 fec의 코딩 및 디코딩 방법, 장치, 시스템 및 매체

Country Status (6)

Country Link
US (1) US11438097B2 (ko)
EP (1) EP3654556A4 (ko)
JP (2) JP7408152B2 (ko)
KR (1) KR102383892B1 (ko)
CA (1) CA3069594C (ko)
WO (1) WO2019011219A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112213578A (zh) * 2020-09-23 2021-01-12 青岛鼎信通讯股份有限公司 一种中压线变关系识别方法
CN113612580B (zh) * 2021-08-03 2022-05-17 四川大学 基于喷泉码编码策略和冗余自适应的屏幕更新传输方法
CN114629596B (zh) * 2022-03-18 2023-09-22 浙江大学 前向纠错码Zigzag轮转解码方法
CN117640015B (zh) * 2024-01-25 2024-05-24 腾讯科技(深圳)有限公司 一种语音编码、解码方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070195894A1 (en) * 2006-02-21 2007-08-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
WO2016110275A1 (zh) * 2015-01-08 2016-07-14 上海交通大学 一种基于媒体内容的fec机制

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6317462B1 (en) * 1998-10-22 2001-11-13 Lucent Technologies Inc. Method and apparatus for transmitting MPEG video over the internet
US6684367B1 (en) * 2000-10-13 2004-01-27 Agere Systems Inc. Channel coding based on hidden puncturing for partial-band interference channels
EP2091205A1 (en) * 2008-02-14 2009-08-19 NTT DoCoMo, Inc. Method and an apparatus for delivering a video stream
US9281847B2 (en) * 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9015564B2 (en) * 2009-08-19 2015-04-21 Qualcomm Incorporated Content delivery system with allocation of source data and repair data among HTTP servers
CN103248897B (zh) * 2013-05-15 2016-08-10 哈尔滨工业大学深圳研究生院 一种图像抗差错编码方法
CN110224793B (zh) * 2015-10-16 2021-03-09 上海交通大学 一种基于媒体内容的自适应fec方法
US10469857B2 (en) * 2016-09-26 2019-11-05 Samsung Display Co., Ltd. System and method for electronic data communication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070195894A1 (en) * 2006-02-21 2007-08-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
WO2016110275A1 (zh) * 2015-01-08 2016-07-14 上海交通大学 一种基于媒体内容的fec机制

Also Published As

Publication number Publication date
EP3654556A4 (en) 2021-04-21
JP7408152B2 (ja) 2024-01-05
JP2023157921A (ja) 2023-10-26
WO2019011219A1 (zh) 2019-01-17
US20200153545A1 (en) 2020-05-14
CA3069594C (en) 2022-07-05
US11438097B2 (en) 2022-09-06
CA3069594A1 (en) 2019-01-17
KR102383892B1 (ko) 2022-04-08
EP3654556A1 (en) 2020-05-20
JP2020526979A (ja) 2020-08-31

Similar Documents

Publication Publication Date Title
US10014977B2 (en) Systems and methods for transmitting data
JP3349114B2 (ja) 誤り訂正符号化装置及び復号装置
KR102383892B1 (ko) 미디어 콘텐츠 기반의 자가 적응 시스템 코드 fec의 코딩 및 디코딩 방법, 장치, 시스템 및 매체
US8429503B2 (en) Encoding device and decoding device
JP2010539832A (ja) 情報信号、情報コンテンツを符号化するための装置及び方法、並びに情報信号の誤り訂正のための装置及び方法
KR20050113665A (ko) 멀티미디어 송신을 위한 사이드 정보를 인코딩 및디코딩하는 방법, 장치 및 시스템
US10469202B2 (en) Fec mechanism based on media content
CN113541856A (zh) 数据恢复方法及装置
CN106571893B (zh) 一种语音数据的编解码方法
JP6519474B2 (ja) 情報処理装置、情報処理方法及びプログラム
CN109245863B (zh) 用于传输和接收前向纠错分组的装置和方法
KR101259659B1 (ko) 중요도에 따라 손실 복원율을 차별화하는 비균일 랩터 코딩방법
CN109687934B (zh) 基于媒体内容的自适应***码fec方法、装置及***
KR20070034532A (ko) 확장형 컨벌루션 인코더 디바이스, 무선 시스템, 컨벌루션코드 확장 방법
CN108667557B (zh) 一种基于媒体内容的自适应fec编码矩阵设计方法
CN1881866A (zh) 数据传输错误监测与纠正的方法及其架构
CN1863311B (zh) 传输视频数据的方法
WO2015101280A1 (zh) 一种信道的码率分配方法及***
CN109245850B (zh) 基于媒体内容的自适应***码fec编译码方法
Hemami Robust image communication over wireless channels
Olayinka et al. Development of Turbo Code Error Detection and Correction Scheme for Wireless Telemedicine Video Transmission
JP7142977B1 (ja) データ通信システム、送信装置、および受信装置
CN112769523A (zh) 一种基于媒体内容的自适应fec方法及***
Hsiao et al. An analysis modeling of frame-level forward error correction for H. 264/AVC over burst-loss channels
Badr Error-correcting codes for low-delay streaming communications

Legal Events

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