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

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

Info

Publication number
KR102383892B1
KR102383892B1 KR1020207003904A KR20207003904A KR102383892B1 KR 102383892 B1 KR102383892 B1 KR 102383892B1 KR 1020207003904 A KR1020207003904 A KR 1020207003904A KR 20207003904 A KR20207003904 A KR 20207003904A KR 102383892 B1 KR102383892 B1 KR 102383892B1
Authority
KR
South Korea
Prior art keywords
data packet
priority
recovery
types
data packets
Prior art date
Application number
KR1020207003904A
Other languages
English (en)
Other versions
KR20200024319A (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/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/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
    • 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 112020013765154-pct00001
개의 데이터 심볼로 분할하고 이러한 데이터 심볼들을 코딩하여 하나의 임의 길이의 코딩 심볼 코드 스트림을 출력하며, 수신단에서
Figure 112020013765154-pct00002
(
Figure 112020013765154-pct00003
Figure 112020013765154-pct00004
보다 약간 큼)개의 코딩 심볼을 정확하게 수신하기만 하면 매우 큰 확률로
Figure 112020013765154-pct00005
개의 데이터 심볼을 모두 복구시킬 수 있다. 디지털 파운틴 코드 자체가 UEP 성능을 가지고 있어 중요성이 다른 데이터를 보호할 수 있다.
종래 기술의 결함을 감안하여, 본 발명의 목적은 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법, 장치, 시스템 및 매체를 제공하는 것이다.
본 발명에 따른 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법은,
미디어 콘텐츠의 중요도에 근거하여 소스 데이터를 우선순위에 따라 N(1보다 큰 정수) 종류의 소스 데이터 패킷으로 구분하는 단계;
소스 데이터와 N 종류의 소스 데이터 패킷의 우선순위에 따라 N 종류의 중간 코드를 생성하는 단계;
상기 N 종류의 중간 코드에 근거하여 채널 상황에 따라 N 종류의 소스 데이터의 복구 데이터를 설정하고, N 종류의 코딩 심볼을 생성하는 단계;
상기 코딩 심볼을 수신하고, 디코딩 수요에 따라 상기 코딩 심볼을 정렬하여 상기 코딩 심볼을 디코딩하는 단계; 및
수신한 코딩 심볼에 따라 우선순위가 높은 중간 코드를 먼저 디코딩하고, 해당 중간 코드에 따라 상응하는 소스 데이터 패킷을 복구하는 단계를 포함한다.
바람직하게는, 상기 소스 데이터와 N 종류의 소스 데이터 패킷의 우선순위에 따라 N 종류의 중간 코드를 생성하는 단계는 다음과 같은 단계를 포함한다.
N 종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스를 구성하여
Figure 112020013765154-pct00006
(i=1, 2, ..., N)로 기록한다.
Figure 112020013765154-pct00007
식에서
Figure 112020013765154-pct00008
i번째 소스 데이터 패킷에 대응하는 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00009
i번째 소스 데이터 패킷에 대응하는 LDPC 매트릭스와 단위 매트릭스로 구성된 공동 매트릭스를 나타내며,
Figure 112020013765154-pct00010
i번째 소스 데이터 패킷에 대응하는 LT 코딩 매트릭스를 나타낸다.
N 종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스에 따라 소스 데이터의 코딩 매트릭스
Figure 112020013765154-pct00011
를 구성한다.
Figure 112020013765154-pct00012
Figure 112020013765154-pct00013
이면,
Figure 112020013765154-pct00014
식에서
Figure 112020013765154-pct00015
,
Figure 112020013765154-pct00016
, ...,
Figure 112020013765154-pct00017
, ...,
Figure 112020013765154-pct00018
은 각각 N 종류의 소스 데이터 패킷의 중간 코드에 대응하고,
Figure 112020013765154-pct00019
,
Figure 112020013765154-pct00020
,...,
Figure 112020013765154-pct00021
, ...,
Figure 112020013765154-pct00022
은 각각 N 종류의 소스 데이터 패킷의 데이터에 대응하며, 위 첨자
Figure 112020013765154-pct00023
은 역매트릭스 연산자이다.
바람직하게는, 상기 N 종류의 중간 코드에 근거하여 채널 상황에 따라 N 종류의 소스 데이터의 복구 데이터를 설정하는 단계는,
Figure 112020013765154-pct00024
를 포함하고,
식에서
Figure 112020013765154-pct00025
,
Figure 112020013765154-pct00026
,...,
Figure 112020013765154-pct00027
, ...,
Figure 112020013765154-pct00028
은 각각 N개의 소스 데이터 패킷의 복구 데이터에 대응하고,
Figure 112020013765154-pct00029
Figure 112020013765154-pct00030
과 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내며,
Figure 112020013765154-pct00031
Figure 112020013765154-pct00032
와 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내고, i=1, 2, ..., N이다.
바람직하게는, N의 값이 2인 경우, 중요도가 다른 데이터에 대해 다음과 같은 상응하는 중간 코드를 생성할 수 있다.
Figure 112020013765154-pct00033
LT 코딩 매트릭스의 구조를 변경하여
Figure 112020013765154-pct00034
,
Figure 112020013765154-pct00035
,
Figure 112020013765154-pct00036
을 획득하며,
Figure 112020013765154-pct00037
Figure 112020013765154-pct00038
의 생성방식이 동일하고,
Figure 112020013765154-pct00039
Figure 112020013765154-pct00040
의 생성방식이 동일하며,
Figure 112020013765154-pct00041
Figure 112020013765154-pct00042
과 동일한 생성방식을 가진 LT 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00043
Figure 112020013765154-pct00044
와 동일한 생성방식을 가진 LT 코딩 매트릭스를 나타내며,
Figure 112020013765154-pct00045
Figure 112020013765154-pct00046
과 동일한 생성방식을 가진 LT 코딩 매트릭스를 나타낸다.
획득한 복구 데이터
Figure 112020013765154-pct00047
은 단지 우선순위가 1인 데이터와 관련이 있고, 복구 데이터
Figure 112020013765154-pct00048
는 우선순위 1과 2의 데이터와 모두 관련이 있으며,
Figure 112020013765154-pct00049
를 획득한다.
바람직하게는, N의 값이 2인 경우, 상기 코딩 심볼을 수신하고 상기 코딩 심볼을 디코딩하는 단계는 다음과 같은 단계를 포함한다.
제1단계의 디코딩에서 복구 매트릭스
Figure 112020013765154-pct00050
및 수신한 소스 데이터 패킷에 따라 중간 코드를 획득하는데, 구체적으로는 다음과 같다.
Figure 112020013765154-pct00051
Figure 112020013765154-pct00052
식에서
Figure 112020013765154-pct00053
은 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure 112020013765154-pct00054
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00055
은 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure 112020013765154-pct00056
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
Figure 112020013765154-pct00057
는 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure 112020013765154-pct00058
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00059
는 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure 112020013765154-pct00060
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
Figure 112020013765154-pct00061
은 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure 112020013765154-pct00062
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타낸다.
Figure 112020013765154-pct00063
로 하고, 수신한 대응하는 우선순위 하의 소스 데이터 패킷 수 및 수신한 데이터 패킷 총수에 따라 디코딩을 수행한다.
수신한 코딩 심볼의 총수가 소스 데이터에서 생성한 코딩 심볼의 개수보다 작고
Figure 112020013765154-pct00064
의 행수가 열수보다 작은 경우,
Figure 112020013765154-pct00065
,
Figure 112020013765154-pct00066
는 모두 디코딩할 수 없으며,
수신한 코딩 심볼의 총수가 소스 데이터에서 생성한 코딩 심볼의 개수보다 작고
Figure 112020013765154-pct00067
의 행수가 열수보다 크거나 같은 경우, 만약
Figure 112020013765154-pct00068
의 행수가 열수보다 크거나 같으면
Figure 112020013765154-pct00069
은 가역적이며, 대응하는 역매트릭스는
Figure 112020013765154-pct00070
로 기록되고,
Figure 112020013765154-pct00071
을 획득할 수 있으며,
Figure 112020013765154-pct00072
는 디코딩할 수 없고,
식에서
Figure 112020013765154-pct00073
은 수신한 우선순위가 1인 소스 데이터를 나타내고,
Figure 112020013765154-pct00074
은 수신한 우선순위가 1인 소스 데이터의 복구 데이터를 나타낸다.
수신한 코딩 심볼의 총수가 소스 데이터에서 생성한 코딩 심볼의 개수보다 크거나 같고
Figure 112020013765154-pct00075
의 행수가 열수보다 크거나 같은 경우, 만약
Figure 112020013765154-pct00076
의 행수가 열수보다 크거나 같으면
Figure 112020013765154-pct00077
은 가역적이며, 대응하는 역매트릭스는
Figure 112020013765154-pct00078
로 기록되고, 만약
Figure 112020013765154-pct00079
의 행수가 열수보다 크거나 같으면
Figure 112020013765154-pct00080
는 가역적이고, 대응하는 역매트릭스는
Figure 112020013765154-pct00081
로 기록되며, 만약
Figure 112020013765154-pct00082
Figure 112020013765154-pct00083
가 모두 가역적이면
Figure 112020013765154-pct00084
는 가역적이고 대응하는 역매트릭스는
Figure 112020013765154-pct00085
로 기록되며,
Figure 112020013765154-pct00086
로 기록되고
Figure 112020013765154-pct00087
이며,
Figure 112020013765154-pct00088
를 획득하고,
만약
Figure 112020013765154-pct00089
의 행수가 열수보다 작으면
Figure 112020013765154-pct00090
는 역매트릭스가 존재하지 않고
Figure 112020013765154-pct00091
만을 구할 수 있으며,
식에서
Figure 112020013765154-pct00092
는 수신한 우선순위가 2인 소스 데이터를 나타내고,
Figure 112020013765154-pct00093
는 수신한 우선순위가 1과 2인 소스 데이터의 복구 데이터를 나타낸다.
수신한 코딩 심볼의 총수가 소스 데이터에서 생성한 코딩 심볼의 개수보다 크거나 같고
Figure 112020013765154-pct00094
의 행수가 열수보다 작으며
Figure 112020013765154-pct00095
의 행수가 열수보다 크거나 같은 경우, 가우스 소거법을 사용하여 직접 매트릭스
Figure 112020013765154-pct00096
를 구하는데, 즉 하기 선형 방정식를 구하여
Figure 112020013765154-pct00097
,
Figure 112020013765154-pct00098
를 획득한다.
Figure 112020013765154-pct00099
바람직하게는, 일부 데이터의 손실로 인해, 수신한 코딩 심볼에 따라 복구 매트릭스를 생성해야 하는데, 이는 손실된 코딩 심볼에 대응하는 매트릭스 행을 소거하여 상응하는 복구 매트릭스를 형성하고
Figure 112020013765154-pct00100
로 기록하는 것과 같다. 수신한 데이터 패킷 수가 상이한 것을 기반으로 상황에 따라 중간 코드를 생성하는데, 구체적으로는 다음과 같은 단계를 포함한다.
l 종류의 우선순위의 데이터 패킷이 수신되면, 다음과 같은 복구 매트릭스 방정식을 획득한다(단계 A1).
Figure 112020013765154-pct00101
복구 매트릭스 방정식에 대해 기본 행 변환을 수행하여
Figure 112020013765154-pct00102
을 획득하는데,
식에서
Figure 112020013765154-pct00103
은 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure 112020013765154-pct00104
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00105
은 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure 112020013765154-pct00106
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
Figure 112020013765154-pct00107
는 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure 112020013765154-pct00108
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00109
는 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure 112020013765154-pct00110
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
Figure 112020013765154-pct00111
은 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure 112020013765154-pct00112
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00113
은 수신한 우선순위가 1인 소스 데이터를 나타내며,
Figure 112020013765154-pct00114
은 수신한 우선순위가 1인 소스 데이터의 복구 데이터를 나타내고,
Figure 112020013765154-pct00115
는 수신한 우선순위가 2인 소스 데이터를 나타내며,
Figure 112020013765154-pct00116
는 수신한 우선순위가 1과 2인 소스 데이터를 나타내고,
Figure 112020013765154-pct00117
는 수신한 코딩 심볼의 패킷 손실 상황에 따라
Figure 112020013765154-pct00118
에서 손실된 패킷에 대응하는 행을 제거한 후의 LT 코딩 매트릭스를 나타내며,
Figure 112020013765154-pct00119
는 수신한 우선순위가 l인 소스 데이터를 나타내고,
Figure 112020013765154-pct00120
은 수신한 우선순위가 1에서 l인 소스 데이터의 복구 데이터를 나타내며,
Figure 112020013765154-pct00121
은 생성한 제l 종류의 중간 코드를 나타낸다.
Figure 112020013765154-pct00122
로 하며,
Figure 112020013765154-pct00123
는 수신하고 확장한 후의
Figure 112020013765154-pct00124
Figure 112020013765154-pct00125
순위의 코딩 심볼 수이고,
Figure 112020013765154-pct00126
는 코딩단 각 순위의 심볼 길이이며, 여기서
Figure 112020013765154-pct00127
이다.
각 순위가 생성한 매트릭스의 랭크를 계산하는데,
Figure 112020013765154-pct00128
식에서
Figure 112020013765154-pct00129
는 우선순위가 i인 데이터에 대응하는 서브 매트릭스의 랭크를 나타내고, 여기서 i=2일 때 대응하는 서브 매트릭스는
Figure 112020013765154-pct00130
이며,
Figure 112020013765154-pct00131
는 수신한 우선순위가 i인 코드 심볼 수의 길이를 나타내고,
Figure 112020013765154-pct00132
는 우선순위가 i인 서브 매트릭스의 열수를 나타내며,
Figure 112020013765154-pct00133
는 최솟값 연산을 나타낸다.
누적 매트릭스의 랭크를 계산하는데,
Figure 112020013765154-pct00134
식에서
Figure 112020013765154-pct00135
은 우선순위 1에서 우선순위 i가 대응하는 서브 매트릭스 랭크의 합을 나타내고,
Figure 112020013765154-pct00136
은 우선순위 1에서 우선순위 i-1이 대응하는 서브 매트릭스 랭크의 합을 나타낸다.
여기서,
Figure 112020013765154-pct00137
이고,
순차적으로
Figure 112020013765154-pct00138
를 판단하며, 성립하면
Figure 112020013765154-pct00139
이고, 그렇지 않으면
Figure 112020013765154-pct00140
이며,
Figure 112020013765154-pct00141
Figure 112020013765154-pct00142
는 우선순위 1에서 우선순위 i가 대응하는 서브 매트릭스가 구성한 매트릭스 풀 랭크를 나타낸다.
수신한 각 순위의 코딩 심볼 수에 근거하여 경우에 따라 각각 중간 코드
Figure 112020013765154-pct00143
,
Figure 112020013765154-pct00144
, ...,
Figure 112020013765154-pct00145
을 구하고, i의 초기값을 l로 설정한다(단계 A3).
Figure 112020013765154-pct00146
&&
Figure 112020013765154-pct00147
을 만족하면, RFC 6330 디코딩 방법을 사용하여
Figure 112020013765154-pct00148
~
Figure 112020013765154-pct00149
를 디코딩하는데, 여기서 &&는 AND 연산을 나타내고,
Figure 112020013765154-pct00150
은 우선순위 1에서 우선순위 i까지의 각 서브 매트릭스가 구성한 매트릭스 풀 랭크를 나타내며,
Figure 112020013765154-pct00151
은 우선순위가 1인 데이터에 대응하는 중간 코드 워드를 나타내고,
Figure 112020013765154-pct00152
는 우선순위가 i인 데이터에 대응하는 중간 코드를 나타낸다.
Figure 112020013765154-pct00153
로 설정하면,
Figure 112020013765154-pct00154
를 획득하는데,
여기서,
Figure 112020013765154-pct00155
,
Figure 112020013765154-pct00156
이고,
식에서
Figure 112020013765154-pct00157
는 우선순위 i까지의 모든 서브 매트릭스가 구성한 풀 랭크 매트릭스를 나타내고,
Figure 112020013765154-pct00158
는 서브 매트릭스
Figure 112020013765154-pct00159
를 나타내며,
Figure 112020013765154-pct00160
는 서브 매트릭스
Figure 112020013765154-pct00161
에 대해 역연산을 한 후의 서브 매트릭스를 나타내고,
Figure 112020013765154-pct00162
는 서브 매트릭스
Figure 112020013765154-pct00163
에 대해 역연산을 한 후 획득한 서브 매트릭스를 나타내며,
Figure 112020013765154-pct00164
는 서브 매트릭스
Figure 112020013765154-pct00165
를 나타내고, a의 값 범위는 1 ~ i이며, b의 값 범위는 2 ~ i이고,
Figure 112020013765154-pct00166
은 서브 매트릭스
Figure 112020013765154-pct00167
의 역매트릭스를 나타낸다.
Figure 112020013765154-pct00168
로 하며, 여기서
Figure 112020013765154-pct00169
이고,
Figure 112020013765154-pct00170
Figure 112020013765154-pct00171
의 역매트릭스이며,
Figure 112020013765154-pct00172
Figure 112020013765154-pct00173
Figure 112020013765154-pct00174
를 획득한다.
수학적 귀납법에 의해
Figure 112020013765154-pct00175
를 획득하고,
Figure 112020013765154-pct00176
,
Figure 112020013765154-pct00177
, …,
Figure 112020013765154-pct00178
를 구하는데, 여기서
Figure 112020013765154-pct00179
, ...,
Figure 112020013765154-pct00180
을 디코딩할 수 없다.
만약
Figure 112020013765154-pct00181
을 만족하고
Figure 112020013765154-pct00182
를 만족하지 않는 경우, 가우스 소거법을 사용하여
Figure 112020013765154-pct00183
~
Figure 112020013765154-pct00184
을 디코팅한다.
Figure 112020013765154-pct00185
로 설정하고, 가우스 소거법을 통해 다음과 같은 선형 방정식을 디코딩하면
Figure 112020013765154-pct00186
,
Figure 112020013765154-pct00187
, …,
Figure 112020013765154-pct00188
를 구하는데, 여기서
Figure 112020013765154-pct00189
, ...,
Figure 112020013765154-pct00190
을 디코딩할 수 없다.
Figure 112020013765154-pct00191
임의의 i 값에 대해여,
Figure 112020013765154-pct00192
를 만족하지 못하면 상응하게
Figure 112020013765154-pct00193
를 디코딩할 수 없고,
Figure 112020013765154-pct00194
될 때까지
Figure 112020013765154-pct00195
를 만족하지 못하면
Figure 112020013765154-pct00196
,
Figure 112020013765154-pct00197
, …,
Figure 112020013765154-pct00198
를 모두 디코딩될 수 없어 디코딩이 실패된다.
i의 값이 1 줄이도록 하고 단계 A3으로 돌아간다(단계 A4).
바람직하게는, 소스 데이터 패킷 중의 각 서브 데이터 패킷 헤더의 중요성 정보를 해석하는 단계;
상기 중요성 정보에 따라 상기 소스 데이터 패킷 중의 각 서브 데이터 패킷을 각각 상이한 우선순위로 매핑하는 단계;
서브 데이터 패킷의 우선순위에 따라 서브 데이터 패킷을 재배열하여 중간 데이터 패킷을 획득하는 단계;
상기 중간 데이터 패킷을 복수개의 심볼(symbol)로 변환하고, 복수개의 심볼(symbol)로 변환된 중간 데이터 패킷에 대해 순방향 에러 정정 FEC 코딩을 수행하여 복수개의 심볼(symbol)을 포함하는 복구 데이터 패킷을 획득하는 단계;
상기 복구 데이터 패킷에 복구 데이터 패킷 중의 서브 데이터 패킷의 순서 및/또는 복구 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내기 위한 인덱스 필드 및/또는 우선순위 지시 필드를 추가하며, 상기 중간 데이터 패킷에도 중간 데이터 패킷 중의 서브 데이터 패킷의 순서 및/또는 중간 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내기 위한 인덱스 필드 및/또는 우선순위 지시 필드를 추가하는 단계;
상기 복구 데이터 패킷과 중간 데이터 패킷에 상응하는 지시 정보를 추가하거나, 복구 데이터 패킷과 중간 데이터 패킷을 전송할 때 복구 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및 상응하는 우선순위에 속하는 서브 데이터 패킷 수 또는 상기 서브 데이터 패킷이 상기 복구 데이터 패킷에서 차지하는 비례를 나타내고, 또한 중간 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및 상응하는 우선순위에 속하는 서브 데이터 패킷 수 또는 상기 서브 데이터 패킷이 상기 중간 데이터 패킷에서 차지하는 비례를 나타내기 위한 상응하는 지시 정보를 전송하는 단계;
단말 측으로 지시 정보를 포함하는 복구 데이터 패킷, 중간 데이터 패킷을 발송하거나, 또는 단말 측으로 복구 데이터 패킷, 중간 데이터 패킷 및 상응하는 지시 정보를 발송하는 단계를 더 포함한다.
바람직하게는, 상기 소스 데이터 패킷 중의 각 서브 패킷 헤더의 중요성 정보를 해석하는 단계는 각 서브 데이터 패킷 헤더 중의 우선순위(priority) 필드를 판독하고, 상기 우선순위(priority) 필드 중의 정보에 따라 대응하는 서브 데이터 패킷의 우선순위를 결정하는 단계를 포함한다.
바람직하게는, 상기 중요성 정보에 따라 상기 소스 데이터 패킷 중의 각 서브 데이터 패킷을 각각 상이한 기정 우선순위로 매핑하는 단계는,
상기 소스 데이터 패킷이 실제로 채택한 우선순위의 개수, 및 각 우선순위 하에서 상기 우선순위(priority) 필드와의 매핑 관계를 결정하는 단계;
상기 매핑 관계에 따라 서브 데이터 패킷을 상응하는 기정 우선순위로 매핑하는 단계를 포함한다.
바람직하게는, 상기 중간 데이터 패킷을 복수개의 심볼(symbol)로 변환하고, 복수개의 심볼(symbol)로 변환된 중간 데이터 패킷에 대해 순방향 에러 정정 FEC 코딩을 수행하여 복수개의 심볼(symbol)을 포함하는 복구 데이터 패킷을 획득하는 단계는 다음과 같은 단계를 포함한다.
RaptorQ 시스템 코드의 자가 적응 FEC 코딩 방식으로 상기 중간 데이터 패킷에 대해 FEC 코딩을 수행하여 다음과 같은 중간 코드 워드를 획득한다.
Figure 112020013765154-pct00199
식에서
Figure 112020013765154-pct00200
는 제i 종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00201
,
Figure 112020013765154-pct00202
,…,
Figure 112020013765154-pct00203
, …,
Figure 112020013765154-pct00204
은 각각 N 종류의 소스 데이터 패킷의 중간 코드에 대응하며,
Figure 112020013765154-pct00205
,
Figure 112020013765154-pct00206
, …,
Figure 112020013765154-pct00207
, …,
Figure 112020013765154-pct00208
은 각각 N 종류의 소스 데이터 패킷의 데이터에 대응하고, 위 첨자 -1은 역매트릭트 연산자이다.
상기 중간 코드 워드에 따라 복구 데이터 패킷을 획득하고, 상기 복구 데이터 패킷에 FEC payload ID를 추가하는데, 여기서 상기 복구 데이터 패킷 중의 복구 데이터는 다음과 같다.
Figure 112020013765154-pct00209
식에서
Figure 112020013765154-pct00210
,
Figure 112020013765154-pct00211
, …,
Figure 112020013765154-pct00212
, …,
Figure 112020013765154-pct00213
은 각각 1 ~ N개의 소스 데이터 패킷의 복구 데이터에 대응하고,
Figure 112020013765154-pct00214
i번째 소스 데이터 패킷에 대응하는 LT 코딩 매트릭스를 나타내며,
Figure 112020013765154-pct00215
Figure 112020013765154-pct00216
과 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00217
Figure 112020013765154-pct00218
와 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내며, i=1, 2, …, N이다.
본 발명에 따른 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 방법은,
서버가 발송한 복구 데이터 패킷, 중간 데이터 패킷을 수신하거나, 또는 복구 데이터 패킷, 중간 데이터 및 상응하는 지시 정보를 수신하는 단계;
상기 복구 데이터 패킷과 중간 데이터 패킷에 포함한 인덱스 필드를 해석하고, 서브 데이터 패킷의 복구 데이터 패킷에서의 순서, 및 중간 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷을 나타내기 위한 상기 인덱스 필드에 따라 코딩 매트릭스를 생성하는 단계; 또는
복구 데이터 패킷과 중간 데이터 패킷의 우선순위 지시 필드를 통해 인덱스 정보를 직접 획득하고, 서브 데이터 패킷의 복구 데이터 패킷에서의 순서, 및 중간 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷을 나타내기 위한 상기 인덱스 정보에 따라 코딩 매트릭스를 생성하는 단계;
상기 코딩 매트릭스에 대해 순방향 에러 정정 FEC 디코딩을 수행하여 중간 데이터 패킷을 복구하는 단계;
상기 중간 데이터 패킷 헤더 중의 정보를 해석하고, 중간 데이터 패킷의 서브 데이터 패킷의 순서를 재배열하여 소스 데이터 패킷을 복구하는 단계를 포함한다.
바람직하게는, 상기 복구 데이터 패킷과 중간 데이터 패킷에 포함된 인덱스 필드를 해석하는 단계는 다음과 같은 단계를 포함한다.
하기 공식을 통해 소스 데이터에 대응하는 코딩 매트릭스의 상응하는 행의 인덱스 필드를 획득한다.
Figure 112020013765154-pct00219
Figure 112020013765154-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 112020013765154-pct00221
식에서
Figure 112020013765154-pct00222
는 제i 종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00223
,
Figure 112020013765154-pct00224
, …,
Figure 112020013765154-pct00225
, …,
Figure 112020013765154-pct00226
은 각각 N 종류의 소스 데이터 패킷의 중간 코드에 대응하며,
Figure 112020013765154-pct00227
,
Figure 112020013765154-pct00228
, …,
Figure 112020013765154-pct00229
, …,
Figure 112020013765154-pct00230
은 각각 N 종류의 소스 데이터 패킷의 데이터에 대응하고, 위 첨자 -1은 역매트릭트 연산자이다.
상기 중간 코드 워드에 따라 복구 데이터 패킷을 획득하고, 상기 복구 데이터 패킷에 FEC payload ID를 추가하는데, 여기서 상기 복구 데이터 패킷 중의 복구 데이터는 다음과 같다.
Figure 112020013765154-pct00231
식에서
Figure 112020013765154-pct00232
,
Figure 112020013765154-pct00233
, …,
Figure 112020013765154-pct00234
, …,
Figure 112020013765154-pct00235
은 각각 1 ~ N개의 소스 데이터 패킷의 복구 데이터에 대응하고,
Figure 112020013765154-pct00236
i번째 소스 데이터 패킷에 대응하는 LT 코딩 매트릭스를 나타내며,
Figure 112020013765154-pct00237
Figure 112020013765154-pct00238
과 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00239
Figure 112020013765154-pct00240
와 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내며, i=1, 2, …, N이다.
본 발명에 따른 미디어 콘텐츠 기반의 자가 적응 시스템 코드 FEC의 코딩 및 디코딩 장치는,
서버가 발송한 복구 데이터 패킷, 중간 데이터 패킷을 수신하거나, 또는 복구 데이터 패킷, 중간 데이터 및 상응하는 지시 정보를 수신하기 위한 수신 모듈;
상기 복구 데이터 패킷과 중간 데이터 패킷에 포함된 인덱스 필드를 해석하고 상기 인덱스 필드에 따라 코딩 매트릭스를 생성하거나, 또는 복구 데이터 패킷과 중간 데이터 패킷의 우선순위 지시 필드를 통해 복구 데이터 패킷 중의 서브 데이터 패킷의 순서, 및 중간 데이터의 각 우선순위 하에서의 서브 데이터 패킷을 나타내기 위한 인덱스 정보를 직접 획득하고 상기 인덱스 정보에 따라 코딩 매트릭스를 생성하기 위한 코딩 매트릭스 생성 모듈;
상기 코딩 매트릭스에 대해 순방향 에러 정정 FEC 디코딩을 수행하여 중간 데이터 패킷을 복구하기 위한 디코딩 모듈;
상기 중간 데이터 패킷 헤더 중의 정보를 해석하고, 상기 중간 데이터 패킷의 서브 데이터 패킷의 순서를 재배열하여 소스 데이터 패킷을 복구하기 위한 복구 모듈;을 포함한다.
바람직하게는, 상기 코딩 매트릭스 생성 모듈은 구체적으로 하기 공식을 통해 소스 데이터에 대응하는 코딩 매트릭스의 상응하는 행의 인덱스 필드를 획득한다.
Figure 112020013765154-pct00241
Figure 112020013765154-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 112020013765154-pct00243
개의 데이터 심볼로 분할하고 이러한 데이터 심볼들을 코딩하여 하나의 임의 길이의 코딩 심볼 코드 스트림을 출력하며, 수신단에서
Figure 112020013765154-pct00244
(
Figure 112020013765154-pct00245
Figure 112020013765154-pct00246
보다 약간 큼)개의 코딩 심볼을 정확하게 수신하기만 하면 매우 큰 확률로
Figure 112020013765154-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 112020013765154-pct00248
(1)
Figure 112020013765154-pct00249
(2)
FEC 코딩 시, 소스 데이터와 도 6에 도시된 코딩 매트릭스에 의해 중간 코드를 생성한다.
Figure 112020013765154-pct00250
(3)
그 후, 코딩 매트릭스 중의 LT 매트릭스와 획득한 중간 코드를 통해 소스 데이터와 복구 데이터를 생성한다. 여기서 R은 코딩 후 획득한 복구 데이터를 나타내고,
Figure 112020013765154-pct00251
는 G_ENC와 동일한 생성방식으로 생성한 LT 매트릭스이다.
Figure 112020013765154-pct00252
(4)
상기 방법으로 소스 데이터를 코딩하면, 소스 데이터를 우선순위로 구분하고 차등 오류 보호 코딩을 채택할 수 없기 때문에 코딩 매트릭스 A 및 LT 매트릭스 G_ENC의 매트릭스 구조를 재설계해야 한다. 소스 데이터에 2개의 상이한 우선순위의 데이터가 있는 경우를 예로 들면, 우선순위를 각각 우선순위 1과 2로 설정하고, 소스 데이터 중의 상이한 우선순위의 데이터를 구분한 후 그에 상이한 중복성을 분배하여 차등 오류 보호의 효과를 구현한다.
코딩 과정:
그 코딩 매트릭스 구조는 도 7에 도시된 바와 같다. 그 코딩 매트릭스는 공식 (6)에 나타낸 바와 같은데, 그 중
Figure 112020013765154-pct00253
Figure 112020013765154-pct00254
는 상이한 규칙으로 생성한 코딩 매트릭스이며, 중요 데이터에 대한 보호를 확보하기 위해서는
Figure 112020013765154-pct00255
매트릭스의 차수 분포를 향상시킬 수 있다.
Figure 112020013765154-pct00256
(5)
Figure 112020013765154-pct00257
(6)
이에 따라, 중요도가 다른 데이터에 대해 상응하는 중간 코드를 생성할 수 있다.
Figure 112020013765154-pct00258
(7)
중요도가 다른 데이터에 대한 차등 오류 보호를 구현하기 위해, 도 8에 도시된 바와 같이 중요 데이터 보호에 대한 중복 데이터를 증가하여 LT 코딩 매트릭스의 구조를 더 변경해야 한다. 여기서
Figure 112020013765154-pct00259
Figure 112020013765154-pct00260
과 생성방식이 동일하고,
Figure 112020013765154-pct00261
Figure 112020013765154-pct00262
와 생성방식이 동일하다. 획득한 복구 데이터 R1은 단지 우선순위가 1인 데이터와 관련이 있고, 복구 데이터 R은 우선순위 1 및 2의 데이터와 모두 관련된다. 이에 따라, 중요 데이터의 중복이 증가되고 보호 강도가 향상된다. 여기서, 채널 조건의 제한으로 인해 데이터의 전체 중복도에 한계가 있으면,
Figure 112020013765154-pct00263
Figure 112020013765154-pct00264
를 생성하는 비율은
Figure 112020013765154-pct00265
Figure 112020013765154-pct00266
의 행수 비율에 의해 결정되고,
Figure 112020013765154-pct00267
의 행수를 증가시킴으로써 우선순위가 1인 데이터의 보호 강도를 더욱 향상시킬 수 있다.
Figure 112020013765154-pct00268
(8)
디코딩 과정:
손실 채널을 거친 후 일부 데이터 패킷이 손실되기 때문에, 수신한 심볼 ISI에 따라 복구 매트릭스를 생성하고, 손실된 심볼 ISI에 대응하는 매트릭스 행을 소거해야 하는데, 예를 들어 매트릭스
Figure 112020013765154-pct00269
의 경우, 수신한
Figure 112020013765154-pct00270
과 송신단의
Figure 112020013765154-pct00271
에 따라 손실 데이터의 ISI를 획득하여
Figure 112020013765154-pct00272
에 상응하는 행을 삭제할 수 있다. 코딩 과정과 유사하게, 제1단계 디코딩을 수행할 때 복구 매트릭스 및 수신한 데이터 패킷에 따라 중간 코드 워드를 획득한다.
Figure 112020013765154-pct00273
(9)
상기 매트릭스 방정식에 대해 기본 행 변환을 수행하여 하기 형식을 획득한다.
Figure 112020013765154-pct00274
(10)
Figure 112020013765154-pct00275
로 하고, 수신한 각 우선순위 하의 데이터 패킷 수 및 수신한 데이터 패킷 총수에 근거하여 경우에 따라 디코딩을 수행한다.
수신한 디코딩 심볼의 총수는 소스 데이터 코딩 심볼의 개수보다 작고,
Figure 112020013765154-pct00276
의 행수는 열수보다 작으며,
Figure 112020013765154-pct00277
,
Figure 112020013765154-pct00278
는 모두 구할 수 없다.
수신한 코딩 심볼의 총수가 소스 데이터 코딩 심볼의 개수보다 작으나
Figure 112020013765154-pct00279
의 행수는 열수보다 크거나 같다.
Figure 112020013765154-pct00280
의 행수가 열수보다 크거나 같으면
Figure 112020013765154-pct00281
은 가역적이며, 그 역매트릭스는
Figure 112020013765154-pct00282
로 기록되고,
Figure 112020013765154-pct00283
(11)
을 획득할 수 있으나,
Figure 112020013765154-pct00284
는 구할 수 없다.
수신한 코딩 심볼의 총수가 소스 데이터 코딩 심볼의 개수보다 크고,
Figure 112020013765154-pct00285
의 행수는 열수보다 크거나 같다.
Figure 112020013765154-pct00286
의 행수가 열수보다 크거나 같으면
Figure 112020013765154-pct00287
은 가역적이고 그 역매트릭스는
Figure 112020013765154-pct00288
로 기록되며,
Figure 112020013765154-pct00289
의 행수가 열수보다 크거나 같으면
Figure 112020013765154-pct00290
는 가역적이고 그 역매트릭스는
Figure 112020013765154-pct00291
로 기록된다.
Figure 112020013765154-pct00292
Figure 112020013765154-pct00293
Figure 112020013765154-pct00294
가 모두 가역적이면,
Figure 112020013765154-pct00295
는 가역적이고 그 역매트릭스는
Figure 112020013765154-pct00296
로 기록되며,
Figure 112020013765154-pct00297
로 기록되고,
Figure 112020013765154-pct00298
을 쉽게 알 수 있으며,
Figure 112020013765154-pct00299
(12)를 획득할 수 있다.
그러나,
Figure 112020013765154-pct00300
의 행수가 열수보다 작으면
Figure 112020013765154-pct00301
는 역매트릭스가 존재하지 않고
Figure 112020013765154-pct00302
만을 구할 수 있다.
수신한 코딩 심볼의 총수가 소스 데이터 코딩 심볼의 개수보다 크거나 같고,
Figure 112020013765154-pct00303
의 행수가 열수보다 작으나
Figure 112020013765154-pct00304
의 행수는 열수보다 크거나 같다.
가우스 소거법을 사용하여 매트릭스
Figure 112020013765154-pct00305
를 직접 구하는데, 즉 하기의 선형 방정식을 구함으로써
Figure 112020013765154-pct00306
,
Figure 112020013765154-pct00307
를 용이하게 구할 수 있다.
Figure 112020013765154-pct00308
(13)
상기 디코딩 과정의 제1단계에 따르면, 어떤 상황에서도 모두 먼저
Figure 112020013765154-pct00309
의 정확한 디코딩을 확보하는 것을 알 수 있고, 중간 코드 워드
Figure 112020013765154-pct00310
Figure 112020013765154-pct00311
는 제2단계에서 소스 데이터가 복구되는 중요 데이터이기 때문에,
Figure 112020013765154-pct00312
의 디코딩 성공률을 향상시키면 소스 데이터를 정확하게 복구하는 확률을 더욱 높일 수 있다.
획득한 중간 코드 워드에 따라 시스템 코드의 코딩 심볼을 생성한다.
Figure 112020013765154-pct00313
(14)
제1단계에서
Figure 112020013765154-pct00314
Figure 112020013765154-pct00315
를 구하지 못하면 디코딩이 실패되고 소스 심볼을 디코딩할 수 없으며,
Figure 112020013765154-pct00316
만을 구하면 우선순위의 소스 코드 데이터
Figure 112020013765154-pct00317
이 정확하게 디코딩될 수 있도록 확보할 수 있으며,
Figure 112020013765154-pct00318
Figure 112020013765154-pct00319
를 모두 구하면 상기 식을 이용하여 최종적인 소스 코드
Figure 112020013765154-pct00320
Figure 112020013765154-pct00321
를 획득할 수 있다.
아울러, 상기 방안은 2개의 우선순위 시나리오에 적용될 수 있을 뿐만 아니라 복수개의 우선순위의 소스 데이터로 확장할 수 있는데, 구체적인 과정은 다음과 같다.
코딩 과정:
먼저 소스 데이터 및 소스 데이터의 우선순위에 따라 중간 코드 워드를 생성한다. 소스 데이터가 l개의 데이터 패킷으로 구분된 것으로 가정하면,
Figure 112020013765154-pct00322
(15)를 획득한다.
식 (16)을 통해 중간 코드 워드
Figure 112020013765154-pct00323
,
Figure 112020013765154-pct00324
, ...,
Figure 112020013765154-pct00325
를 획득할 수 있다.
Figure 112020013765154-pct00326
(16)
획득한 중간 코드 워드에 따라 소스 데이터와 복구 데이터를 생성한다.
Figure 112020013765154-pct00327
(17)
전체 코딩 프로세스는 도 9에 도시된 바와 같다. 소스 데이터와 복구 데이터를 송신단에서 수신단으로 전송하면, 채널의 감쇠로 인해 일부 데이터가 손실될 수 있고, 수신단은 데이터를 수신한 후, 수신한 데이터 상황에 따라 디코딩하여 소스 데이터를 복구한다.
디코딩 과정:
일부 데이터의 손실로 인해, 수신한 심볼 ISI에 따라 복구 매트릭스를 생성해야 하는데, 이는 손실된 심볼 ISI에 대응하는 매트릭스 행을 소거하여 상응하는 매트릭스를 형성하고
Figure 112020013765154-pct00328
로 기록하는 것과 같다. 수신한 데이터의 수를 기반으로 상황에 따라 중간 코드를 생성한다.
Figure 112020013765154-pct00329
(18)
상기 매트릭스 방정식에 대해 기본 행 변환을 수행하여 하기 형식을 획득한다.
Figure 112020013765154-pct00330
(19)
Figure 112020013765154-pct00331
로 설정하고,
Figure 112020013765154-pct00332
를 수신하고 확장한 제i순위의 심볼 수로 설정하며,
Figure 112020013765154-pct00333
는 코딩단 각 순위의 심볼 길이이고,
Figure 112020013765154-pct00334
에 대해서는 각 순위가 생성한 매트릭스의 랭크
Figure 112020013765154-pct00335
를 계산한 후 누적 매트릭스의 랭크
Figure 112020013765154-pct00336
를 계산하는데, 여기서
Figure 112020013765154-pct00337
이다. 순차적으로
Figure 112020013765154-pct00338
를 판단하는데, 성립하면
Figure 112020013765154-pct00339
이고, 그렇지 않으면
Figure 112020013765154-pct00340
이다. 이하에서는 수신한 각 순위의 심볼 수를 기반으로 경우에 따라 각각 중간 코드
Figure 112020013765154-pct00341
,
Figure 112020013765154-pct00342
, …,
Figure 112020013765154-pct00343
를 구하고, i의 초기값은 l로 설정한다.
Figure 112020013765154-pct00344
&&
Figure 112020013765154-pct00345
을 만족하면, RFC 6330 디코딩 방법을 사용하여 C(1) ~ C(i)를 디코딩한다.
Figure 112020013765154-pct00346
로 설정하고,
Figure 112020013765154-pct00347
를 용이하게 알 수 있는데, 그 중
Figure 112020013765154-pct00348
Figure 112020013765154-pct00349
이고, 중간 코드는 하기 식을 통해 구할 수 있다.
Figure 112020013765154-pct00350
Figure 112020013765154-pct00351
Figure 112020013765154-pct00352
Figure 112020013765154-pct00353
...(수학적 귀납법)
Figure 112020013765154-pct00354
Figure 112020013765154-pct00355
,
Figure 112020013765154-pct00356
, ...,
Figure 112020013765154-pct00357
를 구할 수 있으나, 다른
Figure 112020013765154-pct00358
, ...,
Figure 112020013765154-pct00359
를 구할 수 없다.
Figure 112020013765154-pct00360
을 만족하나
Figure 112020013765154-pct00361
을 만족하지 못할 경우, 가우스 소거 디코딩 방법을 사용하여 C(1) ~ C(i)를 디코딩한다.
Figure 112020013765154-pct00362
로 설정하고, 가우스 소거법을 통해 선형 방정식을 디코딩할 수 있다.
Figure 112020013765154-pct00363
(20)
Figure 112020013765154-pct00364
,
Figure 112020013765154-pct00365
, ...,
Figure 112020013765154-pct00366
를 구할 수 있으나, 다른
Figure 112020013765154-pct00367
, ...,
Figure 112020013765154-pct00368
은 구할 수 없다.
어느 i값의 경우,
Figure 112020013765154-pct00369
를 만족하지 못하면
Figure 112020013765154-pct00370
를 상응하게 디코딩할 수 없다.
Figure 112020013765154-pct00371
될 때까지 상기 2개 조건을 모두 만족시킬 수 없으면,
Figure 112020013765154-pct00372
,
Figure 112020013765154-pct00373
, ...,
Figure 112020013765154-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 112020013765154-pct00375
식에서
Figure 112020013765154-pct00376
는 제i종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00377
,
Figure 112020013765154-pct00378
, ...,
Figure 112020013765154-pct00379
, ...,
Figure 112020013765154-pct00380
은 각각 N 종류의 소스 데이터 패킷의 중간 코드에 대응하며,
Figure 112020013765154-pct00381
,
Figure 112020013765154-pct00382
, ...,
Figure 112020013765154-pct00383
, …,
Figure 112020013765154-pct00384
은 각각 N 종류의 소스 데이터 패킷의 데이터에 대응하고, 위 첨자 -1은 역매트릭스 연산자이다.
상기 중간 코드 워드에 따라 복구 데이터 패킷을 획득하고, 상기 복구 데이터 패킷에 FEC payload ID를 추가하며, 그 중 상기 복구 데이터 패킷 중의 복구 데이터는 다음과 같다.
Figure 112020013765154-pct00385
식에서
Figure 112020013765154-pct00386
,
Figure 112020013765154-pct00387
, ...
Figure 112020013765154-pct00388
, …,
Figure 112020013765154-pct00389
은 각각 1 ~ N개의 소스 데이터 패킷의 복구 데이터에 대응하고,
Figure 112020013765154-pct00390
i번째 소스 데이터 패킷의 LT 코딩 매트릭스에 대응하며,
Figure 112020013765154-pct00391
Figure 112020013765154-pct00392
과 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00393
Figure 112020013765154-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 112020013765154-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 112020013765154-pct00396
식에서
Figure 112020013765154-pct00397
는 제i종류의 소스 데이터 패킷에 대응하는 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00398
,
Figure 112020013765154-pct00399
, ...,
Figure 112020013765154-pct00400
, …,
Figure 112020013765154-pct00401
은 각각 N 종류의 소스 데이터 패킷의 중간 코드에 대응하며,
Figure 112020013765154-pct00402
,
Figure 112020013765154-pct00403
, ...,
Figure 112020013765154-pct00404
, …,
Figure 112020013765154-pct00405
은 각각 N 종류의 소스 데이터 패킷의 데이터에 대응하고, 위 첨자 -1은 역매트릭트 연산자이다.
상기 중간 코드 워드에 따라 복구 데이터 패킷을 획득하고, 상기 복구 데이터 패킷에 FEC payload ID를 추가하는데, 여기서 상기 복구 데이터 패킷 중의 복구 데이터는 다음과 같다.
Figure 112020013765154-pct00406
식에서
Figure 112020013765154-pct00407
,
Figure 112020013765154-pct00408
, ...,
Figure 112020013765154-pct00409
, …,
Figure 112020013765154-pct00410
은 각각 1 ~ N개의 소스 데이터 패킷의 복구 데이터에 대응하고,
Figure 112020013765154-pct00411
i번째 소스 데이터 패킷에 대응하는 LT 코딩 매트릭스를 나타내며,
Figure 112020013765154-pct00412
Figure 112020013765154-pct00413
과 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내고,
Figure 112020013765154-pct00414
Figure 112020013765154-pct00415
와 동일한 생성 규칙을 가진 LT 코딩 매트릭스를 나타내며, i=1, 2, …, N이다.
데이터 패킷 헤더의 확장에서 상응하는 지시 정보를 생성하고, 수신단이 데이터를 수신한 후 데이터를 정확하게 복구하도록 각 우선순위 하의 데이터 패킷 수, 및 각 우선순위 하에서 대응하는 복구 데이터 패킷 수를 나타낸다(S4). 구체적으로는 표 2와 같다.
표 2
Figure 112020013765154-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 112020013765154-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 (31)

  1. 소스 데이터를 우선순위에 따라 N(1보다 큰 정수) 종류의 소스 데이터 패킷으로 구분하는 단계;
    우선순위에 따라 N 종류의 상기 소스 데이터 패킷 중의 서브 데이터 패킷을 재배열하여 N 종류의 중간 데이터 패킷을 생성하는 단계;
    N 종류의 중간 데이터 패킷에 대해 FEC 코딩을 수행하여 N 종류의 중간 코드 워드를 생성하는 단계;
    N 종류의 중간 코드 워드에 따라 N 종류의 복구 데이터 패킷을 생성하는 단계;
    상기 중간 데이터 패킷 및/또는 상기 복구 데이터 패킷에 인덱스 필드 및/또는 우선순위 지시 필드를 추가하는 단계;
    상기 중간 데이터 패킷, 상기 복구 데이터 패킷 및 상응하는 지시 정보를 전송하는 단계;를 포함하는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 방법.
  2. 제1항에 있어서,
    소스 데이터를 우선순위에 따라 N 종류의 상기 소스 데이터 패킷으로 구분하는 단계 이전에 상기 소스 데이터 패킷 중의 각 서브 데이터 패킷의 헤더 정보를 해석하여 상기 서브 데이터 패킷에 대응하는 우선순위를 결정하는 단계를 포함하는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 방법.
  3. 제1항에 있어서,
    N 종류의 중간 데이터 패킷에 대해 FEC 코딩을 수행하여 N 종류의 중간 코드 워드를 생성하는 단계는,
    각 종류의 중간 데이터 패킷에 대응하는 코딩 매트릭스를 구성하는 단계;
    각 종류의 중간 데이터 패킷에 대응하는 코딩 매트릭스에 따라 상기 N 종류의 중간 데이터 패킷에 대응하는 코딩 매트릭스를 구성하는 단계;
    N 종류의 중간 데이터 패킷 및 그에 대응하는 코딩 매트릭스에 따라 N 종류의 중간 코드 워드를 생성하는 단계;를 포함하는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 방법.
  4. 제1항에 있어서,
    각 종류의 상기 중간 데이터 패킷에 대응하는 코딩 매트릭스는 모두 2개의 서브 매트릭스를 포함하며, 그 중 하나의 서브 매트릭스는 상기 중간 데이터 패킷에 대응하는 LDPC 매트릭스와 단위 매트릭스로 구성한 공동 매트릭스이고, 다른 하나의 서브 매트릭스는 상기 중간 데이터 패킷에 대응하는 LT 코딩 매트릭스인 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 방법.
  5. 제1항에 있어서,
    N 종류의 중간 코드 워드에 따라 N 종류의 복구 데이터 패킷을 생성하는 단계는,
    N 종류의 중간 데이터 패킷에 대응하는 LT 코딩 매트릭스에 따라 N 종류의 중간 데이터 패킷에 대응하는 LT 코딩 매트릭스의 확장 매트릭스를 구성하는 단계;
    N 종류의 중간 데이터 패킷에 대응하는 LT 코딩 매트릭스의 확장 매트릭스와 N 종류의 중간 코드 워드에 따라 N 종류의 복구 데이터 패킷을 생성하는 단계;를 포함하는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 방법.
  6. 제5항에 있어서,
    N 종류의 중간 데이터 패킷에 대응하는 LT 코딩 매트릭스의 확장 매트릭스의 구성은 증가된 중복 정보와 관련되는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 방법.
  7. 제1항에 있어서,
    상기 복구 데이터 패킷에 추가한 상기 인덱스 필드는 상기 복구 데이터 패킷 중의 서브 데이터 패킷의 순서, 및/또는 복구 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서, 및/또는 상응하는 우선순위에 속하는 서브 데이터 패킷 수 또는 상기 서브 데이터 패킷이 상기 복구 데이터 패킷에서 차지하는 비례를 나타내는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 방법.
  8. 제1항에 있어서,
    상기 중간 데이터 패킷에 추가한 상기 인덱스 필드는 중간 데이터 패킷 중의 서브 데이터 패킷의 순서, 및/또는 중간 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 방법.
  9. 제1항에 있어서,
    상기 지시 정보는 상기 복구 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및/또는 상기 중간 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷을 나타내는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 방법.
  10. 전송한 복구 데이터 패킷, 중간 데이터 패킷 및 상응하는 지시 정보를 수신하는 단계;
    상기 복구 데이터 패킷과 중간 데이터 패킷에 포함된 인덱스 필드 및/또는 우선순위 지시 필드, 및 상기 지시 정보를 해석하고, 복구 데이터 패킷과 중간 데이터 패킷의 손실 상황, 복구 데이터 패킷과 중간 데이터 패킷의 상기 인덱스 필드, 및 상기 지시 정보에 따라 복구 매트릭스를 생성하는 단계;
    상기 복구 매트릭스와 수신한 복구 데이터 패킷, 중간 데이터 패킷에 따라 중간 코드 워드를 생성하는 단계;
    중간 코드 워드에 대해 FEC 디코딩을 수행하여 디코딩된 중간 데이터 패킷을 복구하는 단계;
    디코딩된 중간 데이터 패킷 중의 서브 데이터 패킷 헤더의 전체 정보를 해석하고, 디코딩된 상기 중간 데이터 패킷 중의 서브 데이터 패킷을 재배열하여 소스 데이터 패킷을 복구하는 단계;를 포함하는 것을 특징으로 하는 FEC 코딩 코드 워드의 디코딩 방법.
  11. 제10항에 있어서,
    상기 복구 데이터 패킷에 포함된 상기 인덱스 필드는 상기 복구 데이터 패킷 중의 서브 데이터 패킷의 순서, 및/또는 복구 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서, 및/또는 상응하는 우선순위에 속하는 서브 데이터 패킷의 수 또는 상기 서브 데이터 패킷이 상기 복구 데이터 패킷에서 차지하는 비례를 나타내는 것을 특징으로 하는 FEC 코딩 코드 워드의 디코딩 방법.
  12. 제10항에 있어서,
    상기 중간 데이터 패킷에 포함된 상기 인덱스 필드는 상기 중간 데이터 패킷 중의 서브 데이터 패킷의 순서, 및/또는 중간 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내는 것을 특징으로 하는 FEC 코딩 코드 워드의 디코딩 방법.
  13. 제10항에 있어서,
    상기 지시 정보는 상기 복구 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및/또는 상기 중간 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷을 나타내는 것을 특징으로 하는 FEC 코딩 코드 워드의 디코딩 방법.
  14. 제10항에 있어서,
    복구 데이터 패킷과 중간 데이터 패킷의 손실 상황, 복구 데이터 패킷과 중간 데이터 패킷의 상기 인덱스 필드, 및 상기 지시 정보에 따라 복구 매트릭스를 생성하는 단계는,
    복구 데이터 패킷, 중간 데이터 패킷에 포함된 인덱스 필드 및/또는 우선순위 지시 필드와 상기 지시 정보에 따라 중간 데이터 패킷의 코딩 매트릭스를 생성하는 단계;
    중간 데이터 패킷의 코딩 매트릭스와 복구 데이터 패킷, 중간 데이터 패킷의 손실 상황에 따라 복구 매트릭스를 생성하는 단계;를 포함하는 것을 특징으로 하는 FEC 코딩 코드 워드의 디코딩 방법.
  15. 제14항에 있어서,
    중간 코드 워드에 대해 FEC 디코딩을 수행하여 디코딩된 중간 데이터 패킷을 복구하는 단계는 중간 데이터 패킷의 LT 코딩 매트릭스와 중간 코드 워드에 따라, 디코딩된 중간 데이터 패킷을 생성하는 단계를 포함하는 것을 특징으로 하는 FEC 코딩 코드 워드의 디코딩 방법.
  16. 소스 데이터를 우선순위에 따라 N(1보다 큰 정수) 종류의 소스 데이터 패킷으로 구분하기 위한 매핑 모듈;
    우선순위에 따라 N 종류의 상기 소스 데이터 패킷 중의 서브 데이터 패킷을 재배열하여 N 종류의 중간 데이터 패킷을 생성하기 위한 배열 모듈;
    N 종류의 중간 데이터 패킷에 대해 FEC 코딩을 수행하여 N 종류의 중간 코드 워드를 생성하고, N 종류의 중간 코드 워드에 따라 N 종류의 복구 데이터 패킷을 생성하기 위한 코딩 모듈;
    상기 중간 데이터 패킷 및/또는 상기 복구 데이터 패킷에 인덱스 필드 및/또는 우선순위 지시 필드를 추가하기 위한 인덱스 모듈;
    상기 중간 데이터 패킷, 상기 복구 데이터 패킷 및 상응하는 지시 정보를 전송하기 위한 전송 모듈;을 포함하는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 장치.
  17. 제16항에 있어서,
    상기 소스 데이터 패킷 중의 각 서브 데이터 패킷의 헤더 정보를 해석하여 상기 서브 데이터 패킷에 대응하는 우선순위를 결정하기 위한 해석 모듈을 더 포함하는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 장치.
  18. 제16항에 있어서,
    N 종류의 중간 데이터 패킷에 대해 FEC 코딩을 수행하여 N 종류의 중간 코드 워드를 생성하기 위한 상기 코딩 모듈은,
    각 종류의 중간 데이터 패킷에 대응하는 코딩 매트릭스를 구성하고;
    각 종류의 중간 데이터 패킷에 대응하는 코딩 매트릭스에 따라 상기 N 종류의 중간 데이터 패킷에 대응하는 코딩 매트릭스를 구성하고;
    N 종류의 중간 데이터 패킷 및 그에 대응하는 코딩 매트릭스에 따라 N 종류의 중간 코드 워드를 생성하는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 장치.
  19. 제18항에 있어서,
    각 종류의 상기 중간 데이터 패킷에 대응하는 코딩 매트릭스는 모두 2개의 서브 매트릭스를 포함하며, 그 중 하나의 서브 매트릭스는 상기 중간 데이터 패킷에 대응하는 LDPC 매트릭스와 단위 매트릭스로 구성한 공동 매트릭스이고, 다른 하나의 서브 매트릭스는 상기 중간 데이터 패킷에 대응하는 LT 코딩 매트릭스인 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 장치.
  20. 제16항에 있어서,
    N 종류의 중간 코드 워드에 따라 N 종류의 복구 데이터 패킷을 생성하는 상기 코딩 모듈은,
    N 종류의 중간 데이터 패킷에 대응하는 LT 코딩 매트릭스에 따라 N 종류의 중간 데이터 패킷에 대응하는 LT 코딩 매트릭스의 확장 매트릭스를 구성하고;
    N 종류의 중간 데이터 패킷에 대응하는 LT 코딩 매트릭스의 확장 매트릭스와 N 종류의 중간 코드 워드에 따라 N 종류의 복구 데이터 패킷을 생성하는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 장치.
  21. 제20항에 있어서,
    N 종류의 중간 데이터 패킷에 대응하는 LT 코딩 매트릭스의 확장 매트릭스의 구성은 증가된 중복 정보와 관련되는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 장치.
  22. 제16항에 있어서,
    상기 인덱스 모듈은 상기 복구 데이터 패킷에 추가된 상기 인덱스 필드에서 상기 복구 데이터 패킷 중의 서브 데이터 패킷의 순서, 및/또는 복구 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서, 및/또는 상응하는 우선순위에 속하는 서브 데이터 패킷 수 또는 상기 서브 데이터 패킷이 상기 복구 데이터 패킷에서 차지하는 비례를 나타내는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 장치.
  23. 제16항에 있어서,
    상기 인덱스 모듈은 중간 데이터 패킷에 추가된 상기 인덱스 필드에서 중간 데이터 패킷 중의 서브 데이터 패킷의 순서, 및/또는 중간 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 장치.
  24. 제16항에 있어서,
    상기 지시 정보는 상기 복구 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및/또는 상기 중간 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷을 나타내는 것을 특징으로 하는 FEC 코딩 코드 워드의 전송 장치.
  25. 전송한 복구 데이터 패킷, 중간 데이터 패킷 및 상응하는 지시 정보를 수신하기 위한 수신 모듈;
    상기 복구 데이터 패킷과 중간 데이터 패킷에 포함된 인덱스 필드 및/또는 우선순위 지시 필드, 및 상기 지시 정보를 해석하고, 복구 데이터 패킷과 중간 데이터 패킷의 손실 상황, 복구 데이터 패킷과 중간 데이터 패킷의 상기 인덱스 필드, 및 상기 지시 정보에 따라 복구 매트릭스를 생성하기 위한 복구 매트릭스 생성 모듈;
    상기 복구 매트릭스와 수신한 복구 데이터 패킷, 중간 데이터 패킷에 따라 중간 코드 워드를 생성하고, 중간 코드 워드에 대해 FEC 디코딩을 수행하여 디코딩된 중간 데이터 패킷을 복구하기 위한 디코딩 모듈;
    디코딩된 중간 데이터 패킷 중의 서브 데이터 패킷 헤더의 전체 정보를 해석하고, 디코딩된 상기 중간 데이터 패킷 중의 서브 데이터 패킷을 재배열하여 소스 데이터 패킷을 복구하기 위한 복구 모듈을 포함하는 것을 특징으로 하는 FEC 코딩 코드 워드의 디코딩 장치.
  26. 제25항에 있어서,
    상기 복구 데이터 패킷에 포함된 상기 인덱스 필드는 상기 복구 데이터 패킷 중의 서브 데이터 패킷의 순서, 및/또는 복구 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서, 및/또는 상응하는 우선순위에 속하는 서브 데이터 패킷의 수 또는 상기 서브 데이터 패킷이 상기 복구 데이터 패킷에서 차지하는 비례를 나타내는 것을 특징으로 하는 FEC 코딩 코드 워드의 디코딩 장치.
  27. 제25항에 있어서,
    상기 중간 데이터 패킷에 포함된 상기 인덱스 필드는 상기 중간 데이터 패킷 중의 서브 데이터 패킷의 순서, 및/또는 중간 데이터 패킷 중의 서브 데이터 패킷의 상기 우선순위 지시 필드에 대응하는 우선순위 하에서의 순서를 나타내는 것을 특징으로 하는 FEC 코딩 코드 워드의 디코딩 장치.
  28. 제25항에 있어서,
    상기 지시 정보는 상기 복구 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷, 및/또는 상기 중간 데이터 패킷의 각 우선순위 하에서의 서브 데이터 패킷을 나타내는 것을 특징으로 하는 FEC 코딩 코드 워드의 디코딩 장치.
  29. 제25항에 있어서,
    복구 데이터 패킷과 중간 데이터 패킷의 손실 상황, 복구 데이터 패킷과 중간 데이터 패킷의 상기 인덱스 필드, 및 상기 지시 정보에 따라 복구 매트릭스를 생성하기 위한 상기 복구 매트릭스 생성 모듈은,
    복구 데이터 패킷, 중간 데이터 패킷에 포함된 인덱스 필드 및/또는 우선순위 지시 필드와 상기 지시 정보에 따라 중간 데이터 패킷의 코딩 매트릭스를 생성하고;
    중간 데이터 패킷의 코딩 매트릭스와 복구 데이터 패킷, 중간 데이터 패킷의 손실 상황에 따라 복구 매트릭스를 생성하는 것을 특징으로 하는 FEC 코딩 코드 워드의 디코딩 장치.
  30. 제29항에 있어서,
    중간 데이터 패킷의 LT 코딩 매트릭스와 중간 코드 워드에 따라 디코딩된 중간 데이터 패킷을 생성하기 위한 디코딩 모듈을 포함하는 것을 특징으로 하는 FEC 코딩 코드 워드의 디코딩 장치.
  31. 컴퓨터 프로그램이 프로세서에 의해 실행될 때 제1항 내지 제9항 중 어느 한 항에 따른 FEC 코딩 코드 워드의 전송 방법 및/또는 제10항 내지 제15항 중 어느 한 항에 따른 FEC 코딩 코드 워드의 디코딩 방법이 구현되는 것을 특징으로 하는 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체.


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 KR20200024319A (ko) 2020-03-06
KR102383892B1 true 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
EP3654556A1 (en) 2020-05-20
JP2020526979A (ja) 2020-08-31
KR20200024319A (ko) 2020-03-06

Similar Documents

Publication Publication Date Title
KR102383892B1 (ko) 미디어 콘텐츠 기반의 자가 적응 시스템 코드 fec의 코딩 및 디코딩 방법, 장치, 시스템 및 매체
KR101159432B1 (ko) 스케일러블 정보 신호, 스케일러블 정보 내용를 인코딩하기 위한 장치와 방법 및 스케일러블 정보 신호의 에러를 정정하기 위한 장치 및 방법
US8429503B2 (en) Encoding device and decoding device
US10652580B2 (en) Video data processing method and apparatus
CN1134131C (zh) 数据比特流的差错保护方法
WO1998058468A1 (fr) Systeme de transmission avec multiplexage de donnees d&#39;information, multiplexeur et demultiplexeur utilises a cet effet et codeur et decodeur pour correction d&#39;erreurs
CN110224793B (zh) 一种基于媒体内容的自适应fec方法
KR20050113665A (ko) 멀티미디어 송신을 위한 사이드 정보를 인코딩 및디코딩하는 방법, 장치 및 시스템
US10469202B2 (en) Fec mechanism based on media content
JP2000165865A (ja) ビデオデ―タ送受信装置及びその方法
CN101917625A (zh) 一种基于联合信源-网络编码的可分级视频流传输方法
JP6519474B2 (ja) 情報処理装置、情報処理方法及びプログラム
Hussain et al. Adaptive video-aware forward error correction code allocation for reliable video transmission
CN109245863B (zh) 用于传输和接收前向纠错分组的装置和方法
CN109687934B (zh) 基于媒体内容的自适应***码fec方法、装置及***
KR20070034532A (ko) 확장형 컨벌루션 인코더 디바이스, 무선 시스템, 컨벌루션코드 확장 방법
CN108667557B (zh) 一种基于媒体内容的自适应fec编码矩阵设计方法
CN1881866A (zh) 数据传输错误监测与纠正的方法及其架构
US20130198582A1 (en) Supercharged codes
CN109245850B (zh) 基于媒体内容的自适应***码fec编译码方法
WO2015101280A1 (zh) 一种信道的码率分配方法及***
CN112769523A (zh) 一种基于媒体内容的自适应fec方法及***
KR101429398B1 (ko) 스케일러블 코딩 기반의 데이터 처리 방법
Badr Error-correcting codes for low-delay streaming communications
Hsiao et al. An analysis modeling of frame-level forward error correction for H. 264/AVC over burst-loss channels

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