KR20210019848A - 송신 장치 및 그의 제어 방법 - Google Patents

송신 장치 및 그의 제어 방법 Download PDF

Info

Publication number
KR20210019848A
KR20210019848A KR1020190098978A KR20190098978A KR20210019848A KR 20210019848 A KR20210019848 A KR 20210019848A KR 1020190098978 A KR1020190098978 A KR 1020190098978A KR 20190098978 A KR20190098978 A KR 20190098978A KR 20210019848 A KR20210019848 A KR 20210019848A
Authority
KR
South Korea
Prior art keywords
symbols
decoding
punctured
receiving device
condition
Prior art date
Application number
KR1020190098978A
Other languages
English (en)
Inventor
한윤경
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190098978A priority Critical patent/KR20210019848A/ko
Priority to US16/985,318 priority patent/US20210050867A1/en
Priority to PCT/KR2020/010727 priority patent/WO2021029690A1/en
Publication of KR20210019848A publication Critical patent/KR20210019848A/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/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1816Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of the same, encoded, message
    • 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/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • 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/353Adaptation to the channel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • H03M13/6368Error control coding in combination with rate matching by puncturing using rate compatible puncturing or complementary puncturing
    • H03M13/6393Rate compatible low-density parity check [LDPC] 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/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • H04L1/0013Rate matching, e.g. puncturing or repetition of code symbols
    • 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/0042Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • 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/0056Systems characterized by the type of code used
    • H04L1/0061Error detection 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/0056Systems characterized by the type of code used
    • H04L1/0067Rate matching
    • H04L1/0068Rate matching by puncturing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • 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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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/0071Use of interleaving

Abstract

송신 장치가 개신된다. 본 송신 장치는 인코더, 송신부 및 수신 장치로부터 수신된 정보에 기초하여 소스 심볼들에 대한 인코딩을 수행하여 리페어 심볼들을 생성하도록 인코더를 제어하고, 상기 소스 심볼들 및 상기 인코딩에 의해 생성된 리페어 심볼들 중 적어도 일부를 송신부를 통해 수신 장치로 전송하는 프로세서를 포함한다.

Description

송신 장치 및 그의 제어 방법 { TRANSMITTING APPARATUS AND METHOD FOR CONTROLLING THE TRANSMITTING APPARATUS }
본 개시는 송신 장치 및 그의 제어 방법에 대한 것으로, 보다 구체적으로, 패킷을 전송하는 송신 장치 및 그의 제어 방법에 대한 것이다.
AL-FEC(Application Layer Forward Error Correction)는 전송 도중 소실된 패킷을 복구하기 위한 응용 계층의 FEC(Forward Error Correction) 기술이다. 일반적으로, 패킷이 소실된 경우, 수신 단에서 소실된 패킷에 대한 재전송을 요구하는 ARQ(Automatic Repeat request) 방식과 달리, AL-FEC 방법은 송신 측으로부터 수신된 오버헤드 패킷을 이용하여 수신된 패킷들로부터 스스로 소실된 패킷을 복구하므로, 전송 계층에서 발생하는 지연이 낮다.
한편, MPEG-DASH(Dynamic Adaptive Streaming over HTTP) 기술은 기존 HTTP 웹 서버로부터 인터넷 상 미디어 컨텐츠의 고품질 스트리밍을 가능하게 하는 적응형 비트 전송률 스트리밍 기술이다.
구체적으로, 컨텐츠를 작은 HTTP 기반 파일 세그먼트로 분할하며, 각 세그먼트에는 많은 재생 시간의 컨텐츠가 포함될 수 있다. 이때, MPEG-DASH 클라이언트는 컨텐츠가 재생되는 동안, 현재 네트워크 조건에 따라 다운로드 및 재생할 다음 세그먼트를 자동으로 선택한다. 따라서 MPEG-DASH 클라이언트는 변화하는 네트워크 조건에 원활하게 적응하고 멈춤 또는 재 버퍼링이 적은 고품질 재생을 제공할 수 있다.
하지만, 최근 고용량 멀티미디어 서비스에 대한 수요가 증가하고, 시청자가 동시에 라이브 스트리밍을 시청하는 경우, 트래픽으로 인해 네트워크 혼잡이 발생되고, 망부하 증가로 패킷 소실이 발생될 수 있다.
이 경우, 많은 ARQ가 발생하여 네트워크 혼잡이 더 심화될 수 있으며, AL-FEC의 경우, ARQ를 발생시키지 않는 대신 고정적인 전송 오버헤드를 발생시킬 수 있다. 이에 따라, 혼잡이 적은 경우, 네트워크 자원이 고정적으로 낭비 될 수 있다.
또한, MPEG-DASH의 경우, 지상파 방송 대비 수십 초에 이르는 장면 지연이 발생되어 라이브 스트리밍에 취약한 문제가 있다. 이는 세그먼트 단위의 인코딩에 따른 지연 및 패킷 재전송에 따른 버퍼링 정책에 기인한 것이다.
이에 따라, 보다 효율적인 전송 효율을 달성할 수 있는 방안의 모색이 요청된다.
본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은 수신 장치의 디코딩 성공 여부에 따라 수신 장치로 전송되는 리페어 심볼들의 개수를 적응적으로 조절하는 송신 장치 및 그의 제어 방법을 제공함에 있다.
본 개시의 일 실시 예에 따른 송신 장치는 인코더, 송신부 및 수신 장치로부터 수신된 정보에 기초하여 소스 심볼들에 대한 인코딩을 수행하여 리페어 심볼들을 생성하도록 상기 인코더를 제어하고, 상기 리페어 심볼들 중 적어도 일부 및 상기 소스 심볼들을 상기 송신부를 통해 상기 수신 장치로 전송하는 프로세서를 포함하며, 상기 수신된 정보는 상기 수신 장치에서 수신된 심볼들의 디코딩 성공 여부에 대한 정보를 포함하며, 상기 수신 장치로 전송되는 리페어 심볼들의 개수는 상기 수신 장치의 디코딩 성공 여부에 따라 달라진다.
여기에서, 상기 인코더는 파라미터에 기초하여 결정된 코드 레이트를 갖는 QC-LDPC(Quasi-Cyclic Low Density Parity Check) 코드에 기초하여 상기 소스 심볼들을 인코딩하고, 상기 송신부는 상기 소스 심볼들 및 천공 이후 남은 리페어 심볼들을 상기 수신 장치로 전송하고, 상기 프로세서는, 상기 수신된 정보에 기초하여 상기 파라미터를 결정하고, 상기 결정된 파라미터에 기초하여 인코딩을 수행하도록 상기 인코더를 제어하고, 상기 수신된 정보에 기초하여 천공될 심볼들의 개수를 결정하고, 상기 결정된 수에 기초하여 상기 천공을 수행할 수 있다.
또한, 상기 프로세서는 상기 수신 장치에서 디코딩이 성공한 경우, 상기 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 작아지도록 상기 파라미터 및 상기 천공될 심볼들의 개수를 결정하며, 상기 수신 장치에서 상기 디코딩이 실패한 경우, 상기 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 많아지도록 상기 파라미터 및 상기 천공될 심볼들의 개수를 결정할 수 있다.
그리고, 상기 수신 장치는 제1 디코딩 알고리즘에 기초하여 상기 송신 장치로부터 수신된 심볼들을 디코딩하고, 상기 제1 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 상기 제1 디코딩 알고리즘 보다 상대적으로 성능이 우수한 제2 디코딩 알고리즘에 기초하여 상기 송신 장치로부터 수신된 심볼들을 디코딩하고, 상기 제1 디코딩 알고리즘 및 상기 제2 디코딩 알고리즘에 기초한 디코딩 성공 여부에 대한 정보를 상기 송신 장치로 전송할 수 있다.
또한, 상기 프로세서는 상기 제1 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전에 천공된 심볼의 개수가 기설정된 제1 조건을 만족하는지를 판단하고, 상기 기설정된 제1 조건이 만족되는지 여부에 기초하여 상기 파라미터 및 상기 천공될 심볼들의 개수를 결정하며, 상기 기설정된 제1 조건은 천공 가능한 최대 심볼의 개수에 기초한 조건일 수 있다.
그리고, 상기 프로세서는 상기 기설정된 제1 조건이 만족된 경우, 코드 레이트가 이전보다 높아지도록 상기 파라미터를 결정하고, 상기 천공될 심볼들의 개수를 0으로 결정하고, 상기 기설정된 제1 조건이 만족되지 않는 경우, 이전과 동일하게 파라미터를 결정하고, 이전보다 더 많은 심볼들이 천공되도록 상기 천공될 심볼들의 개수를 결정할 수 있다.
또한, 상기 프로세서는 상기 제1 디코딩 알고리즘 및 제2 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 이전에 천공된 심볼의 개수가 기설정된 제2 조건을 만족하는지를 판단하고, 상기 기설정된 제2 조건이 만족되는지 여부에 기초하여 상기 파라미터 및 상기 천공될 심볼들의 개수를 결정하며, 상기 기설정된 제2 조건은 천공 가능한 최대 심볼의 수에 기초한 조건일 수 있다.
그리고, 상기 프로세서는 상기 기설정된 제2 조건이 만족되는 경우, 코드 레이트가 이전보다 낮아지도록 상기 파라미터를 결정하고, 상기 결정된 파라미터에 따라 정의되는 천공 가능한 최대 심볼의 개수를 상기 천공될 심볼의 개수로 결정하고, 상기 기설정된 제2 조건이 만족되지 않는 경우, 이전보다 더 적은 심볼들이 천공되도록 상기 천공될 심볼들의 개수를 결정할 수 있다.
또한, 상기 프로세서는 상기 제1 디코딩 알고리즘에 기초한 디코딩이 실패하고 상기 제2 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전과 동일한 파라미터에 기초하여 상기 인코딩을 수행하도록 상기 인코더를 제어하고 이전과 동일하게 천공될 심볼들의 개수를 결정할 수 있다.
그리고, 상기 파라미터는 상기 QC-LDPC 코드에서 정의되는 행분리 계수를 포함할 수 있다.
한편, 본 개시의 일 실시 예에 따른 송신 장치의 제어 방법은 수신 장치로부터 정보를 수신하는 단계, 상기 수신된 정보에 기초하여 소스 심볼들에 대한 인코딩을 수행하여 리페어 심볼들을 생성하는 단계 및 상기 리페어 심볼들 중 적어도 일부 및 상기 소스 심볼들을 상기 수신 장치로 전송하는 단계를 포함하며, 상기 수신된 정보는, 상기 수신 장치에서 수신된 심볼들의 디코딩 성공 여부에 대한 정보를 포함하며, 상기 수신 장치로 전송되는 리페어 심볼들의 개수는, 상기 수신 장치의 디코딩 성공 여부에 따라 달라진다.
여기에서, 본 개시의 일 실시 예에 따른 제어 방법은 상기 리페어 심볼들에 대한 천공을 수행하는 단계를 더 포함하며, 상기 리페어 심볼들을 생성하는 단계는 상기 수신된 정보에 기초하여 파라미터를 결정하고, 상기 파라미터에 기초하여 결정된 코드 레이트를 갖는 QC-LDPC(Quasi-Cyclic Low Density Parity Check) 코드에 기초하여 상기 소스 심볼들을 인코딩하고, 상기 천공을 수행하는 단계는 상기 수신된 정보에 기초하여 천공될 심볼들의 개수를 결정하고, 상기 결정된 수에 기초하여 천공을 수행하며, 상기 전송하는 단계는 상기 소스 심볼들 및 상기 천공 이후 남은 리페어 심볼들을 상기 수신 장치로 전송할 수 있다.
또한, 상기 리페어 심볼들을 생성하는 단계는 상기 수신 장치에서 디코딩이 성공한 경우, 상기 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 작아지도록 상기 파라미터를 결정하고, 상기 수신 장치에서 상기 디코딩이 실패한 경우, 상기 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 많아지도록 상기 파라미터를 결정하고, 상기 천공을 수행하는 단계는 상기 수신 장치에서 디코딩이 성공한 경우, 상기 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 작아지도록 상기 천공될 심볼들의 개수를 결정하며, 상기 수신 장치에서 상기 디코딩이 실패한 경우, 상기 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 많아지도록 상기 천공될 심볼들의 개수를 결정할 수 있다.
그리고, 상기 수신 장치는 제1 디코딩 알고리즘에 기초하여 상기 송신 장치로부터 수신된 심볼들을 디코딩하고, 상기 제1 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 상기 제1 디코딩 알고리즘 보다 상대적으로 성능이 우수한 제2 디코딩 알고리즘에 기초하여 상기 송신 장치로부터 수신된 심볼들을 디코딩하고, 상기 제1 디코딩 알고리즘 및 상기 제2 디코딩 알고리즘에 기초한 디코딩 성공 여부에 대한 정보를 상기 송신 장치로 전송할 수 있다.
또한, 본 개시의 일 실시 예에 따른 제어 방법은 상기 제1 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전에 천공된 심볼의 개수가 기설정된 제1 조건을 만족하는지를 판단하는 단계를 더 포함하며, 상기 기설정된 제1 조건은 천공 가능한 최대 심볼의 개수에 기초한 조건일 수 있다.
그리고, 상기 리페어 심볼들을 생성하는 단계는 상기 기설정된 제1 조건이 만족되는 경우, 코드 레이트가 이전보다 높아지도록 상기 파라미터를 결정하고, 상기 기설정된 제1 조건이 만족되지 않는 경우, 이전과 동일하게 파라미터를 결정하며, 상기 천공을 수행하는 단계는 상기 기설정된 제1 조건이 만족되는 경우, 상기 천공될 심볼들의 개수를 0으로 결정하고, 상기 기설정된 제1 조건이 만족되지 않는 경우, 이전보다 더 많은 심볼들이 천공되도록 상기 천공될 심볼들의 개수를 결정할 수 있다.
또한, 본 개시의 일 실시 예에 따른 제어 방법은 상기 제1 디코딩 알고리즘 및 제2 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 이전에 천공된 심볼의 수가 기설정된 제2 조건을 만족하는지를 판단하는 단계를 더 포함하고, 상기 기설정된 제2 조건은, 천공 가능한 최대 심볼의 수에 기초한 조건일 수 있다.
그리고, 상기 리페어 심볼들을 생성하는 단계는 상기 기설정된 제2 조건이 만족되는 경우, 코드 레이트가 이전보다 낮아지도록 상기 파라미터를 결정하며, 상기 천공을 수행하는 단계는 상기 기설정된 제2 조건이 만족되는 경우, 상기 결정된 파라미터에 따라 정의되는 천공 가능한 최대 심볼의 개수를 상기 천공될 심볼의 개수로 결정하고, 상기 기설정된 제2 조건이 만족되지 않는 경우, 이전보다 더 적은 심볼들이 천공되도록 상기 천공될 심볼들의 개수를 결정할 수 있다.
또한, 상기 리페어 심볼들을 생성하는 단계는 상기 제1 디코딩 알고리즘에 기초한 디코딩이 실패하고 상기 제2 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전과 동일한 파라미터에 기초하여 상기 인코딩을 수행하고, 상기 천공을 수행하는 단계는 상기 제1 디코딩 알고리즘에 기초한 디코딩이 실패하고 상기 제2 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전과 동일하게 천공될 심볼들의 개수를 결정할 수 있다.
그리고, 상기 파라미터는 상기 QC-LDPC 코드에서 정의되는 행분리 계수를 포함할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 수신 장치의 디코딩 성공 여부에 따라 수신 장치로 전송되는 리페어 심볼들의 개수가 적응적으로 변경될 수 있다는 점에서, 고정 오버헤드를 발생시키지 않고, 전송 오버헤드를 최소화하여 전송 효율을 높일 수 있게 된다.
도 1은 본 개시의 일 실시 예에 따른 송신 장치의 구성을 설명하기 위한 블록도,
도 2는 본 개시의 일 실시 예에 따른 송신 장치의 세부 구성을 설명하기 위한 블록도,
도 3은 본 개시의 일 실시 예에 따른 수신 장치의 구성을 설명하기 위한 블록도,
도 4는 본 개시의 일 실시 예에 따른 디코딩 방법을 설명하기 위한 도면,
도 5는 본 개시의 일 실시 예에 따른 수신 장치의 동작을 설명하기 위한 도면,
도 6은 본 개시의 일 실시 예에 따른 수신 장치의 세부 구성을 설명하기 위한 블록도, 그리고
도 7은 본 개시의 일 실시 예에 따른 송신 장치의 제어 방법을 설명하기 위한 흐름도이다.
이하, 본 문서의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 문서의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 문서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 부프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 송신 장치의 구성을 설명하기 위한 블록도이다.
도 1을 참조하면, 송신 장치(100)는 인코더(110), 송신부(120) 및 프로세서(130)를 포함할 수 있다.
한편, 송신 장치(100)는 컨텐츠(가령, 방송 컨텐츠)를 제공하는 컨텐츠 프로바이더가 운용하는 다양한 송신 장치를 포함할 수 있다.
먼저, 인코더(110)는 소스 심볼들(또는, 정보 심볼들)을 인코딩하여 리페어 심볼들(또는, 패리티 심볼들)을 생성할 수 있다.
구체적으로, 인코더(110)는 파라미터에 기초하여 결정된 코드 레이트(code rate)를 갖는 QC-LDPC(Quasi-Cyclic Low Density Parity Check) 코드에 기초하여 소스 심볼들을 인코딩하여, 리페어 심볼들을 생성할 수 있다.
여기에서, QC-LDPC 코드는 S-LDPC(Structured Low Density Parity Check) 코드를 포함할 수 있다. S-LDPC 코드는 MMT(MPEG Media Transport) AL-FEC(Application Layer Forward Error Correction) 규격 중 하나의 코드이다.
이 경우, 인코더(110)는 베이스 매트릭스(Base Matrix)에 대해 스케일링(scaling), 행분리(row splitting) 및 천공(puncturing) 등을 적용하여, 다양한 사이즈 및 코드 레이트(code rate)를 갖는 패리티 체크 매트릭스(Parity Check Matrix)를 생성하고, 패리티 체크 매트릭스를 이용하여 인코딩을 수행할 수 있다.
이를 위해, QC-LDPC 코드에서는 파라미터가 정의될 수 있다. 여기에서, 파라미터는 스케일링 다운 팩터 S1 및 행분리 계수 S2를 포함할 수 있다.
예를 들어, 베이스 매트릭스의 사이즈가 320×6720인 경우, S1 및 S2에 따라 통해 베이스 매트릭스로부터 (n-k)×n의 사이즈 즉, (S2×320/S1)×((6400+S2×320)/S1)의 사이즈를 갖는 패리티 체크 매트릭스가 생성될 수 있다. 이 경우, 패리티 검사 행렬에 따른 코드 길이(code length) n는 n=(6400+S2×320)/S1이고, 소스 심볼의 개수 k는 k=6400/S1이 될 수 있다.
한편, 하기의 표 1은, S1 및 S2에 따른 QC-LDPC 코드의 코드 길이 n 및 소스 심볼의 개수 k를 나타낸다.
S1 S2 n k overhead coderate max_Np
1 1 6720 6400 320 0.95 320
1 2 7040 6400 640 0.91 319
1 4 7680 6400 1280 0.83 639
1 8 8960 6400 2560 0.71 1279
1 16 11520 6400 5120 0.56 2559
2 1 3360 3200 160 0.95 160
2 2 3520 3200 320 0.91 159
2 4 3840 3200 640 0.83 319
2 8 4480 3200 1280 0.71 639
2 16 5760 3200 2560 0.56 1279
4 1 1680 1600 80 0.95 80
4 2 1760 1600 160 0.91 79
4 4 1920 1600 320 0.83 159
4 8 2240 1600 640 0.71 319
4 16 2880 1600 1280 0.56 639
8 1 840 800 40 0.95 40
8 2 880 800 80 0.91 39
8 4 960 800 160 0.83 79
8 8 1120 800 320 0.71 159
8 16 1440 800 640 0.56 319
16 1 420 400 20 0.95 20
16 2 440 400 40 0.91 19
16 4 480 400 80 0.83 39
16 8 560 400 160 0.71 79
16 16 720 400 320 0.56 159
상기의 표 1에서, overhead는 인코딩에 의해 생성되는 리페어 심볼들의 개수 n-k를 나타내고, 코드 레이트는 k/n과 같다.
그리고, max_Np는 리페어 심볼들에 대해 천공을 수행할 때, 최대로 천공이 허용 가능한 심볼들의 개수(이하, 천공 가능한 최대 심볼들의 개수)를 나타내며, max_Np는 아래의 수학식 1과 같다.
Figure pat00001
여기에서, n은 코드 길이이고, k는 소스 심볼들의 개수이다.
한편, 상기의 표 1과 같이, S1 및 S2에 따라 다양한 사이즈 및 코드 레이트를 갖는 패리티 체크 매트릭스가 생성될 수 있다. 이에 따라, 인코더(110)는 패리티 체크 매트릭스를 이용하여, 다양한 코드 레이트에 따라 소스 심볼들을 인코딩하여, 리페어 심볼들을 생성할 수 있다. 이때, 코드 레이트는 S1 및 S2에 따라 결정될 수 있다.
한편, 어떠한 S1 및 S2 값을 이용하여 인코딩을 수행할 것인지는 수신 장치(미도시)로부터 수신된 정보에 따라 결정 또는 조정될 수 있는데, 이에 대한 구체적인 내용은 후술하도록 한다.
송신부(120)는 소스 심볼들 및 인코딩에 의해 생성된 리페어 심볼들 중 적어도 일부를 수신 장치(미도시)로 전송할 수 있다.
이를 위해, 송신부(120)는 안테나 등을 포함할 수 있다.
즉, 리페어 심볼들 중 적어도 일부는 수신 장치(미도시)로 전송되고, 나머지 리페어 심볼들은 수신 장치(미도시)로 전송되지 않을 수 있는데, 구체적으로는, 리페어 심볼들 중에서 천공된 심볼들이 수신 장치(미도시)로 전송되지 않을 수 있다.
이 경우, 송신부(120)는 패킷을 통해 소스 심볼들 및 천공 이후 남은 리페어 심볼들을 수신 장치(미도시)로 전송할 수 있다.
이때, 심볼이 패킷의 페이로드(payload)를 구성하고, 패킷 헤더는 페이로드에 포함된 심볼에 대한 정보 및 해당 심볼의 인코딩 시 이용된 파라미터(즉, S1 및 S2)에 대한 정보를 포함할 수 있다.
여기에서, 심볼에 대한 정보는 SBN(Source Block Number) 및 ESI(Encoding Symbol ID)를 포함할 수 있다.
구체적으로, 인코더(110)는 k 개의 소스 심볼들을 인코딩하여 n-k 개의 리페어 심볼들을 생성할 수 있다. 이 경우, k 개의 소스 심볼들 및 n-k 개의 리페어 심볼들이 하나의 코드워드를 구성할 수 있다.
이때, SBN는 하나의 코드워드에 포함되는 심볼들이 공통적으로 갖게 되는 인덱스를 나타내고, ESI는 하나의 코드워드를 구성하는 복수의 심볼들 각각에 대한 인덱스를 나타낸다.
예를 들어, 수신 장치(미도시)로 전송하고자 하는 소스 심볼들의 개수가 2×k 개인 경우를 가정한다.
이 경우, 인코더(110)는 먼저, k 개의 소스 심볼들 (i0,i1,...,ik-1)를 인코딩하여 n-k 개의 리페어 심볼들 (p0,p1,...,pn-k-1)를 생성할 수 있다. 이 경우, 코드워드는 (i0,i1,...,ik-1,p0,p1,...,pn-k-1)로 구성될 수 있다.
이때, 해당 코드워드에 포함되는 소스 심볼들 및 리페어 심볼들의 SBN은 0이 될 수 있다.
그리고, 코드워드를 구성하는 심볼들 (i0,i1,...,ik-1,p0,p1,...,pn-k-1)은 각각 순차적으로 인덱싱되어, 각 심볼의 ESI가 결정될 수 있다. 즉, i0의 ESI는 0이고, i1의 ESI는 1이고,..., pn-k-1의 ESI는 n-1이 될 수 있다.
결국, i0의 (SBN, ESI)는 (0, 0)이고, i1의 (SBN, ESI)는 (0, 1)이고,..., pn-k-1의 (SBN, ESI)는 (0, n-1)이다.
한편, 인코더(110)는 다음 k 개의 소스 심볼들 (i'0,i'1,...,i'k-1)를 인코딩하여 n-k 개의 리페어 심볼들 (p'0,p'1,...,p'n-k-1)를 생성할 수 있다. 이 경우, 다음 코드워드는 (i'0,i'1,...,i'k-1,p'0,p'1,...,p'n-k-1)로 구성될 수 있다.
이때, 코드워드에 포함되는 소스 심볼들 및 리페어 심볼들의 SBN은 1이 될 수 있다.
그리고, 코드워드를 구성하는 심볼들 (i'0,i'1,...,i'k-1,p'0,p'1,...,p'n-k-1)은 각각 순차적으로 인덱싱되어, 각 심볼의 ESI가 결정될 수 있다. 즉, i'0의 ESI는 0이고, i'1의 ESI는 1이고,..., p'n-k-1의 ESI는 n-1이 될 수 있다.
결국, i'0의 (SBN, ESI)는 (1, 0)이고, i'1의 (SBN, ESI)는 (1, 1)이고,..., p'n-k-1의 (SBN, ESI)는 (1, n-1)이다.
이와 같은 방식에 따라, 각 심볼에 대한 SBN 및 ESI가 결정될 수 있다.
한편, 프로세서(130)는 송신 장치(100)의 전반적인 동작을 제어할 수 있다. 구체적으로, 프로세서(130)는 수신 장치(미도시)로부터 수신된 정보에 기초하여 소스 심볼들에 대해 인코딩을 수행하여 리페어 심볼들을 생성하도록 인코더(110)를 제어하고, 소스 심볼들 및 리페어 심볼들 중 적어도 일부를 송신부(120)를 통해 수신 장치(미도시)로 전송할 수 있다.
여기에서, 수신 장치(미도시)로부터 수신된 정보는 수신 장치(미도시)에서 수신된 심볼들의 디코딩 성공 여부에 대한 정보를 포함할 수 있다. 이 경우, 수신 장치(미도시)로 전송되는 리페어 심볼들의 개수는 수신 장치(미도시)의 디코딩 성공 여부에 따라 달라질 수 있다.
구체적으로, 수신 장치(미도시)는 송신 장치(100)로부터 수신된 심볼들을 디코딩하고, 디코딩이 성공한 경우, 디코딩이 성공하였음을 나타내는 정보를 송신 장치(100)로 전송하고, 디코딩이 실패한 경우, 디코딩이 실패하였음을 나타내는 정보를 송신 장치(100)로 전송할 수 있다.
이에 따라, 프로세서(130)는 수신 장치(미도시)로부터 수신된 정보에 기초하여, 수신 장치(미도시)에서 디코딩 성공 여부를 판단하고, 디코딩 성공 또는 실패에 따라 수신 장치(미도시)로 전송되는 심볼들의 개수를 결정할 수 있다.
즉, 프로세서(130)는 수신된 정보에 기초하여, 인코딩 시 이용되는 파라미터를 결정하고, 수신된 정보에 기초하여 천공되는 리페어 심볼들의 개수를 결정하고, 이를 기초로 인코딩 및 천공이 수행되도록 제어할 수 있다.
구체적으로, 프로세서(130)는 수신 장치(미도시)로부터 수신된 정보에 기초하여 파라미터를 결정하고, 결정된 파라미터에 기초하여 인코딩을 수행하도록 인코더(110)를 제어할 수 있다. 그리고, 프로세서(130)는 수신 장치(미도시)로부터 수신된 정보에 기초하여 천공될 심볼들의 개수를 결정하고, 결정된 개수에 기초하여 천공을 수행할 수 있다.
이에 따라, 수신 장치(미도시)의 디코딩 성공 여부에 따라 파라미터 및 천공되는 심볼들의 개수는 달라질 수 있다.
구체적으로, 프로세서(130)는 수신 장치(미도시)에서 디코딩이 성공한 경우, 수신 장치(미도시)로 전송되는 리페어 심볼들의 개수가 이전보다 작아지도록, 파라미터 및 천공될 심볼들의 개수를 결정하고, 수신 장치(미도시)에서 디코딩이 실패한 경우, 수신 장치(미도시)로 전송될 리페어 심볼들의 개수가 이전보다 많아지도록, 파라미터 및 천공될 심볼들의 개수를 결정할 수 있다.
즉, 송신 장치(100)는 전송 과정에서 네트워트 혼잡 등으로 인해 소실되는 패킷을 수신 장치(미도시)가 복원할 수 있도록 하기 위해, 오버헤드 즉, 리페어 심볼들을 수신 장치(미도시)로 전송하게 된다. 이때, 수신 장치(미도시)의 디코딩 성공 여부를 고려하지 않고, 송신 장치(100)가 고정적으로 리페어 심볼들을 전송하게 된다면, 전송 효율 면에서 적절하지 못하다. 따라서, 본 개시의 일 실시 예에 따르면, 수신 장치(미도시)의 디코딩 성공 여부에 따라, 송신 장치(100)가 수신 장치(미도시)로 전송되는 리페어 심볼들의 개수를 적응적으로 조절하여, 전송 효율을 높이면서도, 최소한의 전송 오버헤드를 통해 수신 측에서 패킷을 효과적으로 복원할 수 있도록 할 수 있다.
한편, 수신 장치(미도시)는 복수의 디코딩 알고리즘을 이용하여 송신 장치(100)로부터 수신된 심볼들을 디코딩할 수 있다.
구체적으로, 수신 장치(미도시)는 제1 디코딩 알고리즘에 기초하여 송신 장치(100)로부터 수신된 심볼들을 디코딩하고, 제1 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 제2 디코딩 알고리즘에 기초하여 송신 장치(100)로부터 수신된 심볼들을 디코딩할 수 있다.
여기에서, 제2 디코딩 알고리즘은 제1 디코딩 알고리즘보다 상대적으로 성능이 우수한 디코딩 알고리즘일 수 있다.
예를 들어, 제1 디코딩 알고리즘은 반복 디코딩(Iterative decoing) 알고리즘을 포함하고, 제2 디코딩 알고리즘은 GE(Gaussian Elimination) 디코딩 알고리즘을 포함할 수 있다. 여기에서, GE 디코딩 알고리즘은 반복 디코딩 알고리즘에 비해 연산 복잡도는 높지만 디코딩 성능은 우수한 알고리즘에 해당한다.
즉, 수신 장치(미도시)는 연산 복잡도 및 디코딩 성능을 고려하여, 먼저 제1 디코딩 알고리즘을 이용하여 디코딩을 수행하고, 제1 디코딩 알고리즘을 이용한 디코딩이 실패한 경우, 제2 디코딩 알고리즘을 이용하여 디코딩을 수행할 수 있다.
한편, 상술한 예에서, 연산 복잡도 및 디코딩 성능을 고려하여, 다양한 디코딩 알고리즘이 이용될 수 있음은 물론이다.
이 경우, 수신 장치(미도시)는 디코딩 성공 여부에 대한 정보를 송신 장치(100)로 전송할 수 있다.
구체적으로, 수신 장치(미도시)는 제1 디코딩 알고리즘을 이용하여 송신 장치(100)로부터 수신된 심볼들에 대한 디코딩을 수행하고, 디코딩 성공 여부 즉, 심볼들의 복원을 성공했는지 여부에 대한 정보를 송신 장치(100)로 전송할 수 있다. 또한, 수신 장치(미도시)는 제1 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 제2 디코딩 알고리즘을 이용하여 송신 장치(100)로부터 수신된 심볼들에 대한 디코딩을 수행하는데, 이 경우에도, 디코딩 성공 여부에 대한 정보를 송신 장치(100)로 전송할 수 있다.
또한, 수신 장치(미도시)는 디코딩 성공 여부에 대한 정보 뿐만 아니라, 다른 정보도 송신 장치(100)로 전송할 수 있다.
구체적으로, 수신 장치(미도시)는 송신 장치(100)로부터 수신된 심볼들의 개수, 디코딩이 수행된 SBN 및 ESI, 해당 심볼의 인코딩 시 이용된 파라미터 즉, S1 및 S2에 대한 정보를 송신 장치(100)로 전송할 수 있다.
이 경우, 수신 장치(미도시)는 SBN, ESI 및 파라미터(즉, S1 및 S2)에 대한 정보는 패킷 헤더로부터 획득할 수 있다.
구체적으로, 수신 장치(미도시)는 패킷의 페이로드로부터 심볼을 획득하고, 해당 심볼을 이용하여 디코딩을 수행하며, 이 경우, 패킷의 패킷 헤더로부터 해당 심볼의 SBN, ESI 및 파라미터(즉, S1 및 S2)에 대한 정보를 획득할 수 있다.
그리고, 수신 장치(미도시)는 심볼의 디코딩 성공 여부 및 SBN, ESI 및 파라미터(즉, S1 및 S2)에 대한 정보를 송신 장치(100)로 전송할 수 있다.
이와 같이, 디코딩 성공 여부에 대한 정보 이외에, 심볼의 SBN, ESI 및 파라미터(즉, S1 및 S2)를 송신 장치(100)로 전송하는 것은, 송신 장치(100)가 어떠한 파라미터 값을 이용하여 심볼에 대한 인코딩을 수행하였는지 및 해당 심볼에 대한 인코딩에 따라 생성된 리페어 심볼들 중 몇 개의 심볼들을 천공하였는지를 확인하기 위함이다.
한편, 송신 장치(100)는 수신 장치(미도시)로부터 수신된 정보에 기초하여 다음 소스 심볼들에 대한 인코딩 시 이용될 파라미터를 결정하고, 또한, 인코딩에 의해 생성된 리페어 심볼들에 대한 천공 시, 천공될 심볼들의 개수를 결정할 수 있다. 그리고, 송신 장치(100)는 결정된 파라미터에 따라 소스 심볼들을 인코딩하여 리페어 심볼들을 생성하고, 생성된 리페어 심볼들 중에서 결정된 개수만큼의 리페어 심볼들을 천공하고, 소스 심볼들 및 천공 이후 남은 리페어 심볼들을 수신 장치(미도시)로 전송할 수 있다.
이를 위해, 프로세서(130)는 수신 장치(미도시)로부터 수신된 SBN에 기초하여 수신 장치(미도시)에서 디코딩이 수행된 코드워드를 판단하고, 해당 코드워드에 대한 천공 시, 몇 개의 리페어 심볼들이 천공되었는지를 판단할 수 있다.
또한, 프로세서(130)는 수신 장치(미도시)로부터 수신된 파마리터(즉, S1 및 S2)에 기초하여, 디코딩이 수행된 심볼의 인코딩 시 이용된 QC-LDPC 코드에 따라 정의되는 천공 가능한 최대 심볼들의 개수를 판단할 수 있다.
예를 들어, 표 1을 참조하면, S1, S2가 1, 1인 경우, S1=1, S2=1인 QC-LDPC 코드에서 천공 가능한 최대 심볼들의 개수는 max_Np=320인 것을 알 수 있다.
한편, 프로세서(140)는 수신 장치(미도시)로부터 수신된 정보에 기초하여 제1 디코딩 알고리즘에 기초한 디코딩이 성공된 경우, 이전에 천공된 심볼의 개수가 기설정된 제1 조건을 만족하는지를 판단하고, 기설정된 제1 조건이 만족되는지 여부에 기초하여 파라미터 및 천공될 심볼들의 개수를 결정할 수 있다.
여기에서, 기설정된 제1 조건은 천공 가능한 최대 심볼의 개수에 기초한 조건일 수 있다.
구체적으로, 기설정된 제1 조건은 이전에 천공된 심볼들의 개수와 기설정된 값(가령, α)를 합산한 값이 천공 가능한 최대 심볼들의 개수보다 크다는 조건일 수 있다. 즉, 기설정된 제1 조건은 Np+α>max_Np일 수 있다.
여기에서, 기설정된 값은 천공되는 심볼의 변경 단위(즉, 천공되는 심볼의 개수를 변경할 때, 변경되는 심볼의 개수)를 나타내며, 일 예로, 8이 될 수 있다. 다만, 이는 일 예일 뿐이고, 기설정된 값은 다양하게 변경될 수 있음은 물론이다.
이에 따라, 프로세서(130)는 기설정된 제1 조건이 만족되는 경우, 코드 레이트가 이전보다 높아지도록 파라미터를 결정하고, 천공될 심볼들의 개수를 0으로 결정할 수 있다.
이 경우, 프로세서(130)는 코드 레이트가 이전보다 높아지도록 파라미터 값을 새롭게 결정하는데, 일 예로, 기존의 파라미터 값이 (S1, S2)인 경우, (S1, S2/2)와 같이 파라미터를 결정할 수 있다.
예를 들어, 제1 디코딩 알고리즘에 의한 디코딩이 성공되고, α=8, S1=8, S2=4이고, SBN=4에 해당하는 코드워드의 리페어 심볼들 중 Np=72 개의 심볼들을 천공된 경우를 가정한다. 이 경우, S1=8, S2=4일 때, 천공 가능한 최대 심볼들의 개수는 max_Np=79와 같다.
이 경우, 프로세서(130)는 80(=Np+α)>79(=max_Np)를 만족한다는 점에서, S1=8, S2=2와 같이 파라미터를 결정하고, 결정된 파라미터에 따른 QC-LDPC 코드를 이용하여 다음 소스 심볼들을 인코딩하여 리페어 심볼들을 생성할 수 있다. 즉, S1=8, S2=2의 경우, n=880, k=800이므로, 프로세서(130)는 S1=8, S2=2에 따른 패리티 체크 매트릭스를 이용하여, 800 개의 소스 심볼들을 인코딩하여, 80 개의 리페어 심볼들을 생성할 수 있다. 그리고, 프로세서(130)는 80 개의 리페어 심볼들에 대한 천공을 수행하지 않고, 800 개의 소스 심볼들 및 80 개의 리페어 심볼들을 수신 장치(미도시)로 전송할 수 있다.
이에 따라, S1=8, S2=4, Np=72일 때, 800 개의 소스 심볼들 및 88 개의 리페어 심볼들이 수신 장치(미도시)로 전송되는 경우보다, 더 적은 양의 리페어 심볼들이 수신 장치(미도시)로 전송되게 된다.
한편, 프로세서(130)는 기설정된 제1 조건이 만족되지 않는 경우, 이전과 동일하게 파라미터를 결정하고, 이전보다 더 많은 심볼들이 천공되도록 천공될 심볼들의 개수를 결정할 수 있다.
구체적으로, 기설정된 제1 조건이 만족되지 않는다는 것은, 파라미터에 기초하여 결정된 QC-LDPC 코드의 천공 가능한 최대 심볼들의 개수를 고려할 때, 이전에 천공된 심볼들의 개수에 비해 기설정된 값만큼의 심볼들을 더 천공될 수 있다는 것을 의미한다.
이에 따라, 프로세서(130)는 기설정된 제1 조건이 만족되지 않는 경우, 이전과 동일한 파리미터를 이용하여 소스 심볼들에 대한 인코딩을 수행하되, 이전보다 기설정된 값(가령, α)만큼의 심볼들이 더 천공되도록 천공될 심볼들의 개수를 결정할 수 있다.
예를 들어, 제1 디코딩 알고리즘에 의한 디코딩이 성공되고, α=8, S1=8, S2=4이고, SBN=3에 해당하는 코드워드의 리페어 심볼들 중 Np=64 개의 심볼들이 천공된 경우를 가정한다. 이 경우, S1=8, S2=4일 때, 천공 가능한 최대 심볼들의 개수는 max_Np=79와 같다.
이 경우, 프로세서(130)는 72(=Np+α)>79(=max_Np)를 만족하지 않는다는 점에서, 다음 소스 심볼들의 인코딩 시, 인코딩을 위한 파리미터는 이전과 동일하게 유지하되, 다음 소스 심볼들의 인코딩에 의해 생성된 리페어 심볼들에서 이전보다 많은 수의 심볼들을 천공할 수 있다. 즉, 프로세서(130)는 이전과 동일한 S1=8, S2=4에 따른 패리티 체크 매트릭스를 이용하여, 800 개의 소스 심볼들을 인코딩하여, 160 개의 리페어 심볼들을 생성할 수 있다. 그리고, 프로세서(130) 160 개의 리페어 심볼들 중에서 72(=Np+α) 개의 심볼들을 천공하고, 800 개의 소스 심볼들 및 88 개의 리페어 심볼들을 수신 장치(미도시)로 전송할 수 있다.
이에 따라, S1=8, S2=4, Np=64일 때, 800 개의 소스 심볼들 및 96 개의 리페어 심볼들이 수신 장치(미도시)로 전송되는 경우보다, 더 적은 양의 리페어 심볼들이 수신 장치(미도시)로 전송되게 된다.
즉, 수신 장치(미도시)가 제1 디코딩 알고리즘을 이용하여 심볼들에 대한 디코딩을 성공한 경우, 네트워크 상황이 다소 양호한 것으로 볼 수 있다. 이 경우, 이전보다 상대적으로 더 적은 리페어 심볼들만으로도 수신 장치(미도시)가 디코딩을 성공할 가능성이 높다는 점에서, 송신 장치(100)는 보다 효율적인 전송 효율을 위해, 이전보다 더 적은 양의 리페어 심볼들을 수신 장치(미도시)로 전송하게 된다.
한편, 프로세서(130)는 수신 장치(미도시)로부터 수신된 정보에 기초하여 제1 디코딩 알고리즘 및 제2 디코딩 알고리즘에 기초한 디코딩이 실패한 것으로 판단된 경우, 이전에 천공된 심볼의 수가 기설정된 제2 조건을 만족하는지를 판단하고, 기설정된 제2 조건이 만족되는지 여부에 기초하여 파라미터 및 천공될 심볼들의 개수를 결정할 수 있다.
여기에서, 기설정된 제2 조건은 천공 가능한 최대 심볼의 수에 기초한 조건일 수 있다.
구체적으로, 기설정된 제2 조건은 이전에 천공된 심볼들의 개수에서 기설정된 값(가령, α)을 뺀 값이 0 보다 작다는 조건일 수 있다. 즉, 기설정된 제2 조건은 Np-α<0일 수 있다.
여기에서, 기설정된 값은 천공되는 심볼의 변경 단위(즉, 천공되는 심볼의 개수를 변경할 때, 변경되는 심볼의 개수)를 나타내며, 일 예로, 8이 될 수 있다. 다만, 이는 일 예일 뿐이고, 기설정된 값은 다양하게 변경될 수 있음은 물론이다.
이에 따라, 프로세서(130)는 기설정된 제2 조건이 만족되는 경우, 코드 레이트가 이전보다 낮아지도록 파라미터를 결정하고, 결정된 파라미터에 따라 천공 가능한 최대 심볼들의 개수를 천공될 심볼의 개수로 결정할 수 있다.
구체적으로, 프로세서(130)는 코드 레이트가 이전보다 낮아지도록 파라미터 값을 새롭게 결정하는데, 일 예로, 기존의 파라미터 값이 (S1, S2)인 경우, (S1, S2×2)와 같이 파라미터를 결정할 수 있다. 그리고, 프로세서(130)는 새롭게 결정된 파라미터에 기초하여 결정된 QC-LDPC 코드의 천공 가능한 최대 심볼들의 개수를 천공될 심볼들의 개수로 결정할 수 있다.
예를 들어, 제1 디코딩 알고리즘 및 제2 디코딩 알고리즘에 기초한 디코딩이 실패하고, α=8, S1=8, S2=4이고, SBN=4에 해당하는 코드워드의 리페어 심볼들 중 Np=6 개의 심볼들이 천공된 경우를 가정한다.
이 경우, 프로세서(130)는 -2(=Np-α)<0를 만족한다는 점에서, S1=8, S2=8과 같이 파라미터를 결정하고, 결정된 파라미터에 따른 QC-LDPC 코드를 이용하여 다음 소스 심볼들을 인코딩하여 리페어 심볼들을 생성할 수 있다. 즉, S1=8, S2=8의 경우, n=1120, k=800이므로, 프로세서(130)는 S1=8, S2=8에 따른 패리티 체크 매트릭스를 이용하여, 800 개의 소스 심볼들을 인코딩하여, 320 개의 리페어 심볼들을 생성할 수 있다. 그리고, 프로세서(130)는 S1=8, S2=8일 때, 천공 가능한 최대 심볼들의 개수는 max_Np=159이므로, 320 개의 리페어 심볼들 중 159 개의 심볼들을 천공하고, 800 개의 소스 심볼들 및 161 개의 리페어 심볼들을 수신 장치(미도시)로 전송할 수 있다.
이에 따라, S1=8, S2=4, Np=6 일 때, 800 개의 소스 심볼들 및 154 개의 리페어 심볼들이 수신 장치(미도시)로 전송되는 경우, 더 많은 양의 리페어 심볼들이 수신 장치(미도시)로 전송되게 된다.
한편, 프로세서(130)는 기설정된 제2 조건이 만족되지 않는 경우, 이전보다 더 적은 심볼들이 천공되도록 천공될 심볼들의 개수를 결정할 수 있다.
구체적으로, 기설정된 제2 조건이 만족되지 않는다는 것은, 이전에 천공된 심볼들의 개수를 고려할 때, 이전에 천공된 심볼들의 개수에 비해 기설정된 값만큼더 적은 심볼들이 천공될 수 있다는 것을 의미한다.
이에 따라, 프로세서(130)는 기설정된 제2 조건이 만족되지 않는 경우, 이전 보다 기설정된 값(가령, α)만큼 더 적은 심볼들이 천공되도록 천공될 심볼들의 개수를 결정할 수 있다.
이에 따라, 프로세서(130)는 기설정된 제2 조건이 만족되지 않는 경우, 이전과 동일한 파리미터를 이용하여 소스 심볼들에 대한 인코딩을 수행하되, 이전보다 기설정된 값만큼 더 적은 심볼들이 더 천공되도록 천공될 심볼들의 개수를 결정할 수 있다.
예를 들어, 제1 디코딩 알고리즘 및 제2 디코딩 알고리즘에 기초한 디코딩이 실패하고, α=8, S1=8, S2=4이고, SBN=4에 해당하는 코드워드의 리페어 심볼들 중 Np=10 개의 심볼들이 천공된 경우를 가정한다.
이 경우, 프로세서(130)는 2(=Np-α)<0를 만족하지 않는다는 점에서, 다음 소스 심볼들의 인코딩 시, 인코딩을 위한 파라미터는 이전과 동일하게 유지하되, 다음 소스 심볼들의 인코딩에 의해 생성된 리페어 심볼들 중에서 천공될 심볼들의 개수를 이전보다 줄일 수 있다. 즉, 프로세서(130)는 이전과 동일한 S1=8, S2=4에 따른 패리티 체크 매트릭스를 이용하여, 800 개의 소스 심볼들을 인코딩하여, 160 개의 리페어 심볼들을 생성할 수 있다. 그리고, 프로세서(130)는 160 개의 리페어 심볼들 중에서 2(=Np-α) 개의 심볼들을 천공하고, 800 개의 소스 심볼들 및 158 개의 리페어 심볼들을 수신 장치(미도시)로 전송할 수 있다.
이에 따라, S1=8, S2=4, Np=64일 때, 800 개의 소스 심볼들 및 150 개의 리페어 심볼들이 수신 장치(미도시)로 전송되는 경우보다, 더 많은 양의 리페어 심볼들이 수신 장치(미도시)로 전송되게 된다.
즉, 수신 장치(미도시)가 제1 디코딩 알고리즘 및 제2 디코딩 알고리즘을 이용하여 디코딩을 실패한 경우, 네트워크 상황이 다소 좋지 않은 것으로 볼 수 있다. 이 경우, 소실된 패킷의 복원을 위해 이전보다 상대적으로 더 많은 리페어 심볼들이 요구된다는 점에서, 송신 장치(100)는 이전보다 더 많은 양의 리페어 심볼들을 수신 장치(미도시)로 전송하게 된다.
한편, 프로세서(130)는 제1 디코딩 알고리즘에 기초한 디코딩이 실패하고 제2 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전과 동일한 파라미터에 기초하여 인코딩을 수행하도록 인코더(110)를 제어하고, 이전과 동일하게 천공될 심볼들의 개수를 결정할 수 있다.
즉, 프로세서(130)는 다음 소스 심볼들에 대해, 이전과 동일한 파라미터에 기초하여 인코딩을 수행하고, 다음 소스 심볼들에 대한 인코딩에 의해 생성된 리페어 심볼들 중에서 이전과 동일한 개수의 심볼들을 천공할 수 있다. 이는 현재 수신 장치(미도시)에서 제1 디코딩 알고리즘은 아니지만, 제2 디코딩 알고리즘을 통해 디코딩을 성공적으로 수행할 수 있기 때문이다.
이와 같이, 본 개시의 일 실시 예에 따르면, 송신 장치(100)는 수신 장치(미도시)의 디코딩 성공 여부에 따라 수신 장치(미도시)로 전송되는 리페어 심볼들의 개수를 적응적으로 변경할 수 있게 된다. 이에 따라, 본 개시의 일 실시 예에 따르면, AL-FEC를 적용하면서 고정 오버헤드를 발생시키지 않고, 전송 오버헤드를 최소화하여 전송 효율을 높일 수 있게 된다.
도 2는 본 개시의 일 실시 예에 따른 송신 장치의 세부 구성을 설명하기 위한 블록도이다.
도 2를 참조하면, 송신 장치(100)는 제1 인코더(110), 송신부(120), 프로세서(130), 제2 인코더(140), 먹스(150) 및 인터리버(160)를 포함할 수 있다.
여기에서, 제1 인코더(110), 송신부(120) 및 프로세서(130)는 도 1에서 설명한 인코더(110), 송신부(120) 및 프로세서(130)의 내용이 각각 적용될 수 있으며, 중복되는 부분에 대한 구체적인 설명은 생략하도록 한다.
제2 인코더(140)는 복수의 AV 인코더(140-1,140-2,...,140-L)를 포함할 수 있다. 여기에서, 각 AV 인코더는 HEVC, H.264, H.265 등과 같은 다양한 코덱을 이용하여 컨텐츠(가령, 방송 컨텐츠)를 압축할 수 있다.
한편, 제2 인코더(140)는 복수의 AV 인코더(140-1,140-2,...,140-L)를 포함하는데, 이 경우, AV 인코더 별로 서로 다른 해상도를 갖는 컨텐츠 가령, SD, HD, Full HD, 4K-UHD, 8K-UHD 등의 해상도를 갖는 컨텐츠가 입력될 수 있다. 예를 들어, AV 인코더(140-1)에는 4K-UHD의 해상도를 갖는 컨텐츠가 입력될 수 있고, AV 인코더(140-2)에는 8K-UHD의 해상도를 갖는 컨텐츠가 입력될 수 있고,..., AV 인코더(140-L)에는 Full HD의 해상도를 갖는 컨텐츠가 입력될 수 있다. 이에 따라, 각 AV 인코더에서 출력되는 압축된 컨텐츠는 서로 다른 비트 레이트를 가질 수 있다.
제1 인코더(110)는 복수의 QC-LDPC 인코더(110-1,110-2,...,110-L)를 포함할 수 있다.
이 경우, 각 QC-LDPC 인코더는 도 1의 인코더(110)와 동일한 기능을 수행할 수 있다. 즉, 각 QC-LDPC 인코더는 각 AV 인코더로부터 입력받은 압축된 컨텐츠를 소스 심볼들로 하여, QC-LDPC 코드를 이용하여 소스 심볼들을 인코딩하여, 리페어 심볼들을 생성할 수 있다. 이 경우, 각 QC-LDPC 인코더는 소스 심볼들 및 리페어 심볼들로 구성된 코드워드를 출력할 수 있다.
여기에서, QC-LDPC 코드의 파라미터 S1 및 S2는 수신 장치(미도시)로부터 수신된 정보에 기초하여 결정될 수 있으며, 이는 프로세서(130)에 의해 제어될 수 있다. 한편, 이에 대한 구체적인 내용은 도 1에서 설명한 바 있다.
먹스(150)는 복수의 QC-LDPC 인코더(110-1,110-2,...,110-L)의 출력을 입력받고, 복수의 QC-LDPC 인코더(110-1,110-2,...,110-L)의 출력 중에서 하나를 출력할 수 있다. 이러한 먹스(150)의 스위칭 동작은 프로세서(130)에 의해 제어될 수 있다.
인터리버(160)는 먹스(150)로부터 입력된 소스 심볼들 및 리페어 심볼들을 포함하는 코드워드를 인터리빙할 수 있다.
이 경우, 인터리버(160)는 기설정된 인터리빙 룰에 기초하여 코드워드에 포함된 심볼들을 인터리빙하고, 인터리빙된 코드워드를 송신부(120)로 출력할 수 있다.
한편, 프로세서(130)는 인터리빙된 코드워드에 포함된 리페어 심볼들 중에서 적어도 일부를 천공할 수 있다.
이 경우, 천공되는 리페어 심볼들의 개수는 수신 장치(미도시)로부터 수신된 정보에 따라 결정될 수 있으며, 이는 프로세서(130)에 의해 제어될 수 있다. 한편, 이에 대한 구체적인 내용은 도 1에서 설명한 바 있다.
송신부(120)는 소스 심볼들 및 천공 후 남은 리페어 심볼들을 수신 장치(미도시)로 전송할 수 있다.
구체적으로, 송신부(120)는 각 심볼에 패킷 헤더를 부가하여 패킷을 생성하고, 생성된 복수의 패킷을 수신 장치(미도시)로 전송할 수 있다. 이때, 패킷 헤더는 패킷에 포함된 심볼의 SBN 및 ESI, 심볼의 인코딩 시 이용된 파라미터 S1 및 S2에 대한 정보가 포함될 수 있다.
도 3은 본 개시의 일 실시 예에 따른 수신 장치의 구성을 설명하기 위한 블록도이다.
도 3을 참조하면, 수신 장치(200)는 수신부(210), 디코더(220) 및 프로세서(230)를 포함할 수 있다.
한편, 수신 장치(200)는 컨텐츠(가령, 방송 컨텐츠)를 수신할 수 있는 TV, 셋탑 박스 등으로 구현될 수 있다.
수신부(210)는 송신 장치(100)가 전송한 복수의 패킷을 수신할 수 있다. 이 경우, 각 패킷은 페이로드 및 패킷 헤더를 포함할 수 있다. 여기에서, 페이로드는 심볼로 구성되며, 패킷 헤더는 페이로드에 포함된 심볼에 대한 정보(즉, SBN 및 ESI) 및 인코딩 시 이용된 파라미터(즉, S1 및 S2)에 대한 정보를 포함할 수 있다.
이 경우, 수신부(210)는 각 패킷의 패킷 헤더로부터 SBN, ESI, S1 및 S2에 대한 정보를 파싱할 수 있다.
디코더(220)는 심볼들에 대한 디코딩을 수행할 수 있다.
구체적으로, 디코더(220)는 파라미터에 기초하여 결정된 코드 레이트를 갖는 QC-LDPC 코드에 기초하여 심볼들을 디코딩할 수 있다.
먼저, 디코더(220)는 제1 디코딩 알고리즘에 기초하여 심볼들을 디코딩할 수 있다.
여기에서, 제1 디코딩 알고리즘은 반복 디코딩 알고리즘을 포함할 수 있다. 이하에서, 도 4를 참조하여 반복 디코딩 알고리즘에 기초한 디코딩 방법을 설명하도록 한다.
도 4는 본 개시의 일 실시 예에 따라 4 개의 소스 심볼들에 대한 4 개의 패킷과 2 개의 리페어 심볼에 대한 2 개의 리페어 패킷이 수신된 경우, 해당 심볼들을 이용하여 반복 디코딩을 수행하는 방법을 나타낸다.
이를 위해, 수신 장치(200)는 디코딩을 위한 버퍼를 포함할 수 있으며, 버퍼는 소스 심볼 버퍼(source symbol buffer)(420) 및 디코딩 버퍼(decoding buffer)(430)를 포함할 수 있다.
도 4를 참조하면, 디코더(220)는 소스 심볼의 SBN 및 ESI에 기초하여, 버퍼에서 SBN 및 ESI에 대응되는 위치에 소스 심볼을 저장할 수 있다. 그리고, 디코더(220)는 버퍼에 저장된 소스 심볼들 중에서, 파라미터 S1 및 S2에 따라 정의되는 QC-LDPC 코드의 패리티 체크 매트릭스의 1의 위치에 대응되는 소스 심볼들을 누적하여 리페어 심볼을 업데이트할 수 있다. 이와 같은 방식을 통해, 디코더(220)는 반복 디코딩을 수행하여, 전송 과정에서 소실된 소스 심볼을 복원할 수 있다.
예를 들어, 소스 심볼을 포함하는 패킷(411)의 경우, SBN=0, ESI=1이므로, 디코더(220)는 버퍼의 0 번째 로우의 1 번째 컬럼에 패킷(411)의 소스 심볼을 저장할 수 있다. 이 경우, 디코더(220)는 패리티 검사 행렬에서 SBN=0, ESI=1에 대응되는 위치에 1이 존재하는 경우, 버퍼의 0 번째 로우의 1 번째 컬럼에 저장된 소스 심볼을 이용하여 0 번째 로우의 리페어 심볼을 업데이트할 수 있다.
또한, 리페어 심볼을 포함하는 패킷(412)의 경우, SBN=0, ESI=4이므로, 디코더(220)는 버퍼의 0 번째 로우의 4 번째 컬럼을 패킷(411)의 리페어 심볼을 이용하여 업데이트할 수 있다.
또한, 소스 심볼을 포함하는 패킷(413)의 경우, SBN=0, ESI=0이므로, 디코더(220)는 버퍼의 0 번째 로우의 0 번째 컬럼에 패킷(411)의 소스 심볼을 저장할 수 있다. 이 경우, 디코더(220)는 패리티 검사 행렬에서 SBN=0, ESI=0에 대응되는 위치에 1이 존재하는 경우, 버퍼의 0 번째 로우의 0 번째 컬럼에 저장된 소스 심볼을 이용하여 0 번째 로우에 저장된 리페어 심볼을 업데이트할 수 있다.
또한, 디코더(220)는 패킷(414,415,416)에 대해서도, 상술한 과정을 수행할 수 있다.
한편, 도 4를 참조하면, SBN=0의 경우, ESI=2,3을 갖는 소스 심볼들을 포함하는 패킷들은 전송 과정에서 소실되었다. 하지만, 디코더(220)는 ESI=0,1,4,5인 심볼들을 포함하는 4 개의 패킷을 통해, ESI=2,3에 해당하는 소스 심볼들을 복원할 수 있다. 이와 같이, 하나의 로우에 저장된 소스 심볼들을 이용한 디코딩이 완료되면, 디코더(220)는 해당 로우에 대해 디코딩된 심볼들을 출력할 수 있다. 이에 따라, 버퍼의 로우는 다시 이용될 수 있게 된다.
결과적으로, 디코더(220)는 상술한 과정을 통해 디코딩을 수행하여, 소스 심볼들을 복원할 수 있다.
한편, 프로세서(230)는 제1 디코딩 알고리즘에 기초한 디코딩을 수행하고, 디코딩 수행 결과에 대한 정보를 송신 장치(100)로 전송할 수 있다.
구체적으로, 프로세서(230)는 제1 디코딩 알고리즘에 기초한 디코딩 결과, 소실된 모든 심볼이 복원된 경우, 제1 디코딩 알고리즘에 기초한 디코딩이 성공하였음을 나타내는 정보를 송신 장치(100)로 전송할 수 있다. 그리고, 프로세서(230)는 제1 디코딩 알고리즘에 기초한 디코딩 결과, 소실된 심볼이 복원되지 않은 경우, 제1 디코딩 알고리즘에 기초한 디코딩이 실패하였음을 나타내는 정보를 송신 장치(100)로 전송할 수 있다.
또한, 프로세서(230)는 디코딩이 수행된 심볼의 SBN 및 해당 심볼의 인코딩 시 이용된 파라미터 S1 및 S2에 대한 정보를 송신 장치(100)로 전송할 수 있다.
한편, 디코더(220)는 제1 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 제2 디코딩 알고리즘을 이용하여 심볼들에 대한 디코딩을 수행할 수 있다.
여기에서, 제2 디코딩 알고리즘은 GE(Gaussian Elimination) 디코딩 알고리즘을 포함할 수 있다. 이 경우, GE 디코딩 알고리즘은 반복 디코딩 알고리즘에 비해 연산 복잡도는 높지만 디코딩 성능은 보다 우수한 알고리즘에 해당한다.
그리고, 프로세서(230)는 제2 디코딩 알고리즘에 기초한 디코딩 수행 결과에 대한 정보를 송신 장치(100)로 전송할 수 있다.
구체적으로, 프로세서(230)는 제2 디코딩 알고리즘에 기초한 디코딩 결과, 소실된 모든 심볼이 복원된 경우, 제2 디코딩 알고리즘에 기초한 디코딩이 성공하였음을 나타내는 정보를 송신 장치(100)로 전송할 수 있다. 그리고, 프로세서(230)는 제2 디코딩 알고리즘에 기초한 디코딩 결과, 소실된 심볼이 복원되지 않은 경우, 제2 디코딩 알고리즘에 기초한 디코딩이 실패하였음을 나타내는 정보를 송신 장치(100)로 전송할 수 있다.
또한, 프로세서(230)는 디코딩이 수행된 심볼의 SBN 및 해당 심볼의 인코딩 시 이용된 파라미터 S1 및 S2에 대한 정보를 송신 장치(100)로 전송할 수 있다.
한편, 프로세서(230)는 수신 장치(200)의 전반적인 동작을 제어할 수 있다. 구체적으로, 프로세서(230)는 수신된 패킷으로부터 페이로드에 포함된 심볼에 대한 정보(즉, SBN 및 ESI) 및 인코딩 시 이용된 파라미터(즉, S1 및 S2)에 대한 정보를 획득하도록 수신부(210)를 제어하고, 수신된 패킷에 포함된 심볼을 이용하여 디코딩을 수행하도록 디코더(220)를 제어할 수 있다.
또한, 프로세서(230)는 디코더(220)에서 디코딩이 수행된 경우, 디코딩 성공 여부에 대한 정보 및 디코딩이 수행된 심볼의 SBN 및 ESI, 및 파라미터(즉, S1 및 S2)에 대한 정보를 송신 장치(100)로 전송할 수 있다.
도 5는 본 개시의 일 실시 예에 따른 수신 장치의 동작을 설명하기 위한 도면이다.
먼저, 수신 장치(200)는 송신 장치(100)로부터 패킷을 수신할 수 있다(S611).
그리고, 수신 장치(200)는 수신된 패킷의 패킷 헤더로부터 패킷의 페이로드에 포함된 심볼에 대한 정보(즉, SBN, ESI) 및 심볼의 인코딩 시 이용된 파라미터(S1 및 S2)에 대한 정보를 파싱할 수 있다(S612).
그리고, 수신 장치(200)는 디코딩 메모리 즉, 버퍼가 이용 가능한지를 판단할 수 있다.
이에 따라, 수신 장치(200)는 버퍼가 이용 가능한 경우(S613-Y), 제1 디코딩 알고리즘을 이용하여 디코딩을 수행할 수 있다(S614).
구체적으로, 수신 장치(200)는 수신된 심볼이 소스 심볼인 경우, 버퍼에 소스 심볼을 저장하여 리페어 심볼을 업데이트하고, 수신된 심볼이 리페어 심볼인 경우 이를 이용하여 리페어 심볼을 업데이트하여, 디코딩을 수행할 수 있다.
이후, 수신 장치(200)는 소실된 심볼이 있는 경우, 소실된 심볼이 모두 복구되었는지를 판단할 수 있다(S615).
이에 따라, 수신 장치(200)는 소실된 심볼이 모두 복구된 경우(S615-Y), 즉, 제1 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 그에 대한 정보를 송신 장치(100)로 피드백할 수 있다(S616).
구체적으로, 수신 장치(200)는 제1 디코딩 알고리즘에 기초한 디코딩이 성공되었음을 나타내는 정보, 디코딩이 수행된 심볼의 SBN, S1 및 S2에 대한 정보를 송신 장치(100)로 전송할 수 있다.
한편, 수신 장치(200)는 소실된 심볼이 모두 복구되지 않은 경우(S615-N), 즉, 제1 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 기설정된 시간 내에 새로운 패킷이 수신되는지를 판단할 수 있다.
이에 따라, 수신 장치(200)는 새로운 패킷이 수신되는 경우(S617-Y), 새로운 패킷에 대해 전술한 과정을 수행할 수 있다.
한편, 수신 장치(200)는 새로운 패킷이 수신되지 않는 경우(S617-N), 제2 디코딩 알고리즘을 이용하여 디코딩을 수행할 수 있다(S618).
이후, 수신 장치(200)는 소실된 심볼이 모두 복구되었는지를 판단할 수 있다.
이에 따라, 수신 장치(200는 소실된 심볼이 모두 복구된 경우(S619-Y), 즉, 제2 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 그에 대한 정보를 송신 장치(100)로 피드백할 수 있다(S620).
구체적으로, 수신 장치(200)는 제2 디코딩 알고리즘에 기초한 디코딩이 성공되었음을 나타내는 정보, 디코딩이 수행된 심볼의 SBN, S1 및 S2에 대한 정보를 송신 장치(100)로 전송할 수 있다.
한편, 수신 장치(200)는 소실된 심볼이 모두 복구되지 않은 경우(S619-N), 즉, 제2 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 그에 대한 정보를 송신 장치(100)로 피드백할 수 있다(S621).
구체적으로, 수신 장치(200)는 제1 디코딩 알고리즘 및 제2 디코딩 알고리즘에 기초한 디코딩이 실패하였음을 나타내는 정보, 디코딩이 수행된 심볼의 SBN, S1 및 S2에 대한 정보를 송신 장치(100)로 전송할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 수신 장치의 세부 구성을 설명하기 위한 블록도이다.
도 6을 참조하면, 수신 장치(200)는 수신부(210), 디코더(220), 프로세서(230), 디인터리버(240) 및 AV 디코더(250)를 포함할 수 있다.
여기에서, 수신부(210), 디코더(220) 및 프로세서(230)는 도 3에서 설명한 수신부(210), 디코더(220) 및 프로세서(230)의 내용이 각각 적용될 수 있다는 점에서, 중복되는 부분에 대한 구체적인 설명은 생략하도록 한다.
수신부(210)는 송신 장치(100)가 전송한 복수의 패킷을 수신할 수 있다. 그리고, 수신부(210)는 각 패킷의 패킷 헤더로부터 페이로드에 포함된 심볼에 대한 정보 및 정보(즉, SBN 및 ESI) 및 인코딩 시 이용된 파라미터(즉, S1 및 S2)에 대한 정보를 획득할 수 있다. 이러한 수신부(210)의 동작은 프로세서(230)에 의해 제어될 수 있다.
그리고, 수신부(210)는 패킷으로부터 획득된 심볼을 디인터리버(240)로 출력할 수 있다.
디인터리버(240)는 수신부(210)로부터 입력된 심볼들을 디인터리빙할 수 있다.
이 경우, 디인터리버(240)는 송신 장치(200)의 인터리빙 룰에 대응되는 디인터리빙 룰에 기초하여 심볼들을 디인터리빙하고, 디인터리빙된 심볼들을 디코더(220)로 출력할 수 있다.
디코더(220)는 디인터리버(240)로부터 입력된 심볼들을 디코딩할 수 있다. 한편, 디코딩 방법에 대해서는 도 3과 함께 설명한 바 있다는 점에서, 구체적인 설명은 생략하도록 한다.
그리고, 디코더(220)는 디코딩에 의해 복원된 소스 심볼들을 AV 디코더(250)로 출력할 수 있다.
AV 디코더(250)는 소스 심볼들에 대해 디코딩을 수행할 수 있다. 구체적으로, AV 디코더(250)는 소스 심볼들에 대한 압축을 해제하여, 송신 장치(200)가 전송한 컨텐츠를 출력할 수 있다.
한편, 프로세서(240)는 디코딩 성공 여부에 대한 정보, 심볼의 SBN, S1 및 S2에 대한 정보 이외에도, 수신된 심볼의 개수 및 컨텐츠가 전송된 비트 레이트에 대한 정보를 송신 장치(200)로 전송할 수도 있다.
한편, 본 개시의 일 실시 예에 따른 송신 장치는 수신 장치의 디코딩 성공 여부에 따라 코드 레이트가 변경되거나 또는 천공되는 심볼들의 개수가 달라질 수 있다. 이에 따라, 네트워크 상황에 따라, 수신 장치가 송신 장치로부터 수신되는 리페어 심볼들의 개수가 적응적으로 달라지는 경우, 본 개시에 따른 수신 장치 및 송신 장치를 실시 하는 것으로 볼 수 있다.
도 7은 본 개시의 일 실시 예에 따른 송신 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 수신 장치로부터 정보를 수신할 수 있다(S710). 여기에서, 수신된 정보는 수신 장치에서 수신된 심볼들의 디코딩 성공 여부에 대한 정보를 포함할 수 있다.
이후, 수신된 정보에 기초하여 소스 심볼들에 대한 인코딩을 수행하여 리페어 심볼들을 생성할 수 있다(S720).
그리고, 리페어 심볼들 중 적어도 일부 및 소스 심볼들을 수신 장치로 전송할 수 있다(S730).
이 경우, 수신 장치로 전송되는 리페어 심볼들의 개수는 수신 장치의 디코딩 성공 여부에 따라 달라질 수 있다.
구체적으로, S720 단계는 수신된 정보에 기초하여 파라미터를 결정하고, 파라미터에 기초하여 결정된 코드 레이트를 갖는 QC-LDPC(Quasi-Cyclic Low Density Parity Check) 코드에 기초하여 소스 심볼들을 인코딩할 수 있다. 여기에서, 파라미터는 QC-LDPC 코드에서 정의되는 행분리 계수를 포함할 수 있다.
또한, 본 개시의 일 실시 예에 따른 제어 방법은 리페어 심볼들에 대한 천공을 수행할 수 있다. 이 경우, 천공을 수행하는 단계는 수신된 정보에 기초하여 천공될 심볼들의 개수를 결정하고, 결정된 수에 기초하여 천공을 수행할 수 있다.
이에 따라, S730 단계는 소스 심볼들 및 천공 이후 남은 리페어 심볼들을 수신 장치로 전송할 수 있다.
한편, S720 단계는 수신 장치에서 디코딩이 성공한 경우, 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 작아지도록 파라미터를 결정하고, 수신 장치에서 디코딩이 실패한 경우, 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 많아지도록 파라미터를 결정할 수 있다. 또한, 천공을 수행하는 단계는 수신 장치에서 디코딩이 성공한 경우, 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 작아지도록 천공될 심볼들의 개수를 결정하며, 수신 장치에서 상기 디코딩이 실패한 경우, 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 많아지도록 천공될 심볼들의 개수를 결정할 수 있다.
한편, 수신 장치는 제1 디코딩 알고리즘에 기초하여 송신 장치로부터 수신된 심볼들을 디코딩하고, 제1 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 제1 디코딩 알고리즘 보다 상대적으로 성능이 우수한 제2 디코딩 알고리즘에 기초하여 송신 장치로부터 수신된 심볼들을 디코딩하고, 제1 디코딩 알고리즘 및 제2 디코딩 알고리즘에 기초한 디코딩 성공 여부에 대한 정보를 송신 장치로 전송할 수 있다.
한편, 제1 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전에 천공된 심볼의 개수가 기설정된 제1 조건을 만족하는지를 판단할 수 있다. 여기에서, 기설정된 제1 조건은 천공 가능한 최대 심볼의 개수에 기초한 조건일 수 있다.
이 경우, S720 단계는 기설정된 제1 조건이 만족되는 경우, 코드 레이트가 이전보다 높아지도록 파라미터를 결정하고, 기설정된 제1 조건이 만족되지 않는 경우, 이전과 동일하게 파라미터를 결정할 수 있다. 또한, 천공을 수행하는 단계는 기설정된 제1 조건이 만족되는 경우, 천공될 심볼들의 개수를 0으로 결정하고, 기설정된 제1 조건이 만족되지 않는 경우, 이전보다 더 많은 심볼들이 천공되도록 천공될 심볼들의 개수를 결정할 수 있다.
한편, 제1 디코딩 알고리즘 및 제2 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 이전에 천공된 심볼의 수가 기설정된 제2 조건을 만족하는지를 판단할 수 있다. 여기에서, 기설정된 제2 조건은 천공 가능한 최대 심볼의 수에 기초한 조건일 수 있다.
이 경우, S720 단계는 기설정된 제2 조건이 만족되는 경우, 코드 레이트가 이전보다 낮아지도록 파라미터를 결정할 수 있다. 또한, 천공을 수행하는 단계는 기설정된 제2 조건이 만족되는 경우, 결정된 파라미터에 따라 정의되는 천공 가능한 최대 심볼의 개수를 천공될 심볼의 개수로 결정하고, 기설정된 제2 조건이 만족되지 않는 경우, 이전보다 더 적은 심볼들이 천공되도록 천공될 심볼들의 개수를 결정할 수 있다.
한편, S720 단계는 제1 디코딩 알고리즘에 기초한 디코딩이 실패하고 제2 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전과 동일한 파라미터에 기초하여 인코딩을 수행할 수 있다. 또한, 천공을 수행하는 단계는 제1 디코딩 알고리즘에 기초한 디코딩이 실패하고 제2 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전과 동일하게 천공될 심볼들의 개수를 결정할 수 있다.
한편, 송신 장치가 인코딩 시 이용되는 파라미터 및 천공될 심볼들의 개수를 결정하는 구체적인 방법에 대해서는 상술한 바 있다.
본 개시의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 송신 장치(예: 송신 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일 실시예에 따르면, 본 개시에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
100 : 송신 장치 110 : 인코더
120 : 천공부 130 : 송신부
140 : 프로세서

Claims (20)

  1. 송신 장치에 있어서,
    인코더;
    송신부; 및
    수신 장치로부터 수신된 정보에 기초하여 소스 심볼들에 대한 인코딩을 수행하여 리페어 심볼들을 생성하도록 상기 인코더를 제어하고, 상기 소스 심볼들 및 상기 리페어 심볼들 중 적어도 일부를 상기 송신부를 통해 상기 수신 장치로 전송하는 프로세서;를 포함하며,
    상기 수신된 정보는, 상기 수신 장치에서 수신된 심볼들의 디코딩 성공 여부에 대한 정보를 포함하며,
    상기 수신 장치로 전송되는 리페어 심볼들의 개수는, 상기 수신 장치의 디코딩 성공 여부에 따라 달라지는 송신 장치.
  2. 제1항에 있어서,
    상기 인코더는, 파라미터에 기초하여 결정된 코드 레이트를 갖는 QC-LDPC(Quasi-Cyclic Low Density Parity Check) 코드에 기초하여 상기 소스 심볼들을 인코딩하고,
    상기 송신부는, 상기 소스 심볼들 및 천공 이후 남은 리페어 심볼들을 상기 수신 장치로 전송하고,
    상기 프로세서는,
    상기 수신된 정보에 기초하여 상기 파라미터를 결정하고, 상기 결정된 파라미터에 기초하여 인코딩을 수행하도록 상기 인코더를 제어하고, 상기 수신된 정보에 기초하여 천공될 심볼들의 개수를 결정하고, 상기 결정된 수에 기초하여 상기 천공을 수행하는 송신 장치.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 수신 장치에서 디코딩이 성공한 경우, 상기 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 작아지도록 상기 파라미터 및 상기 천공될 심볼들의 개수를 결정하며, 상기 수신 장치에서 상기 디코딩이 실패한 경우, 상기 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 많아지도록 상기 파라미터 및 상기 천공될 심볼들의 개수를 결정하는 송신 장치.
  4. 제2항에 있어서,
    상기 수신 장치는,
    제1 디코딩 알고리즘에 기초하여 상기 송신 장치로부터 수신된 심볼들을 디코딩하고, 상기 제1 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 상기 제1 디코딩 알고리즘 보다 상대적으로 성능이 우수한 제2 디코딩 알고리즘에 기초하여 상기 송신 장치로부터 수신된 심볼들을 디코딩하고, 상기 제1 디코딩 알고리즘 및 상기 제2 디코딩 알고리즘에 기초한 디코딩 성공 여부에 대한 정보를 상기 송신 장치로 전송하는 송신 장치.
  5. 제4항에 있어서,
    상기 프로세서는,
    상기 제1 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전에 천공된 심볼의 개수가 기설정된 제1 조건을 만족하는지를 판단하고, 상기 기설정된 제1 조건이 만족되는지 여부에 기초하여 상기 파라미터 및 상기 천공될 심볼들의 개수를 결정하며,
    상기 기설정된 제1 조건은, 천공 가능한 최대 심볼의 개수에 기초한 조건인 송신 장치.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 기설정된 제1 조건이 만족된 경우, 코드 레이트가 이전보다 높아지도록 상기 파라미터를 결정하고, 상기 천공될 심볼들의 개수를 0으로 결정하고, 상기 기설정된 제1 조건이 만족되지 않는 경우, 이전과 동일하게 파라미터를 결정하고, 이전보다 더 많은 심볼들이 천공되도록 상기 천공될 심볼들의 개수를 결정하는 송신 장치.
  7. 제4항에 있어서,
    상기 프로세서는,
    상기 제1 디코딩 알고리즘 및 제2 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 이전에 천공된 심볼의 개수가 기설정된 제2 조건을 만족하는지를 판단하고, 상기 기설정된 제2 조건이 만족되는지 여부에 기초하여 상기 파라미터 및 상기 천공될 심볼들의 개수를 결정하며,
    상기 기설정된 제2 조건은, 천공 가능한 최대 심볼의 수에 기초한 조건인 송신 장치.
  8. 제7항에 있어서,
    상기 프로세서는,
    상기 기설정된 제2 조건이 만족되는 경우, 코드 레이트가 이전보다 낮아지도록 상기 파라미터를 결정하고, 상기 결정된 파라미터에 따라 정의되는 천공 가능한 최대 심볼의 개수를 상기 천공될 심볼의 개수로 결정하고, 상기 기설정된 제2 조건이 만족되지 않는 경우, 이전보다 더 적은 심볼들이 천공되도록 상기 천공될 심볼들의 개수를 결정하는 송신 장치.
  9. 제4항에 있어서,
    상기 프로세서는,
    상기 제1 디코딩 알고리즘에 기초한 디코딩이 실패하고 상기 제2 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전과 동일한 파라미터에 기초하여 상기 인코딩을 수행하도록 상기 인코더를 제어하고 이전과 동일하게 천공될 심볼들의 개수를 결정하는 송신 장치.
  10. 제2항에 있어서,
    상기 파라미터는, 상기 QC-LDPC 코드에서 정의되는 행분리 계수를 포함하는 송신 장치.
  11. 송신 장치의 제어 방법에 있어서,
    수신 장치로부터 정보를 수신하는 단계;
    상기 수신된 정보에 기초하여 소스 심볼들에 대한 인코딩을 수행하여 리페어 심볼들을 생성하는 단계; 및
    상기 소스 심볼들 및 상기 리페어 심볼들 중 적어도 일부를 상기 수신 장치로 전송하는 단계;를 포함하며,
    상기 수신된 정보는, 상기 수신 장치에서 수신된 심볼들의 디코딩 성공 여부에 대한 정보를 포함하며,
    상기 수신 장치로 전송되는 리페어 심볼들의 개수는, 상기 수신 장치의 디코딩 성공 여부에 따라 달라지는 제어 방법.
  12. 제11항에 있어서,
    상기 리페어 심볼들에 대한 천공을 수행하는 단계;를 더 포함하며,
    상기 리페어 심볼들을 생성하는 단계는, 상기 수신된 정보에 기초하여 파라미터를 결정하고, 상기 파라미터에 기초하여 결정된 코드 레이트를 갖는 QC-LDPC(Quasi-Cyclic Low Density Parity Check) 코드에 기초하여 상기 소스 심볼들을 인코딩하고,
    상기 천공을 수행하는 단계는, 상기 수신된 정보에 기초하여 천공될 심볼들의 개수를 결정하고, 상기 결정된 수에 기초하여 천공을 수행하며,
    상기 전송하는 단계는,
    상기 소스 심볼들 및 상기 천공 이후 남은 리페어 심볼들을 상기 수신 장치로 전송하는 제어 방법.
  13. 제12항에 있어서,
    상기 리페어 심볼들을 생성하는 단계는,
    상기 수신 장치에서 디코딩이 성공한 경우, 상기 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 작아지도록 상기 파라미터를 결정하고, 상기 수신 장치에서 상기 디코딩이 실패한 경우, 상기 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 많아지도록 상기 파라미터를 결정하고,
    상기 천공을 수행하는 단계는,
    상기 수신 장치에서 디코딩이 성공한 경우, 상기 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 작아지도록 상기 천공될 심볼들의 개수를 결정하며, 상기 수신 장치에서 상기 디코딩이 실패한 경우, 상기 수신 장치로 전송되는 리페어 심볼들의 개수가 이전보다 많아지도록 상기 천공될 심볼들의 개수를 결정하는 제어 방법.
  14. 제12항에 있어서,
    상기 수신 장치는,
    제1 디코딩 알고리즘에 기초하여 상기 송신 장치로부터 수신된 심볼들을 디코딩하고, 상기 제1 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 상기 제1 디코딩 알고리즘 보다 상대적으로 성능이 우수한 제2 디코딩 알고리즘에 기초하여 상기 송신 장치로부터 수신된 심볼들을 디코딩하고, 상기 제1 디코딩 알고리즘 및 상기 제2 디코딩 알고리즘에 기초한 디코딩 성공 여부에 대한 정보를 상기 송신 장치로 전송하는 제어 방법.
  15. 제14항에 있어서,
    상기 제1 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전에 천공된 심볼의 개수가 기설정된 제1 조건을 만족하는지를 판단하는 단계;를 더 포함하며,
    상기 기설정된 제1 조건은, 천공 가능한 최대 심볼의 개수에 기초한 조건인 제어 방법.
  16. 제15항에 있어서,
    상기 리페어 심볼들을 생성하는 단계는,
    상기 기설정된 제1 조건이 만족되는 경우, 코드 레이트가 이전보다 높아지도록 상기 파라미터를 결정하고, 상기 기설정된 제1 조건이 만족되지 않는 경우, 이전과 동일하게 파라미터를 결정하며,
    상기 천공을 수행하는 단계는,
    상기 기설정된 제1 조건이 만족되는 경우, 상기 천공될 심볼들의 개수를 0으로 결정하고, 상기 기설정된 제1 조건이 만족되지 않는 경우, 이전보다 더 많은 심볼들이 천공되도록 상기 천공될 심볼들의 개수를 결정하는 제어 방법.
  17. 제14항에 있어서,
    상기 제1 디코딩 알고리즘 및 제2 디코딩 알고리즘에 기초한 디코딩이 실패한 경우, 이전에 천공된 심볼의 수가 기설정된 제2 조건을 만족하는지를 판단하는 단계;를 더 포함하고,
    상기 기설정된 제2 조건은, 천공 가능한 최대 심볼의 수에 기초한 조건인 제어 방법.
  18. 제17항에 있어서,
    상기 리페어 심볼들을 생성하는 단계는,
    상기 기설정된 제2 조건이 만족되는 경우, 코드 레이트가 이전보다 낮아지도록 상기 파라미터를 결정하며,
    상기 천공을 수행하는 단계는,
    상기 기설정된 제2 조건이 만족되는 경우, 상기 결정된 파라미터에 따라 정의되는 천공 가능한 최대 심볼의 개수를 상기 천공될 심볼의 개수로 결정하고, 상기 기설정된 제2 조건이 만족되지 않는 경우, 이전보다 더 적은 심볼들이 천공되도록 상기 천공될 심볼들의 개수를 결정하는 제어 방법.
  19. 제14항에 있어서,
    상기 리페어 심볼들을 생성하는 단계는,
    상기 제1 디코딩 알고리즘에 기초한 디코딩이 실패하고 상기 제2 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전과 동일한 파라미터에 기초하여 상기 인코딩을 수행하고,
    상기 천공을 수행하는 단계는,
    상기 제1 디코딩 알고리즘에 기초한 디코딩이 실패하고 상기 제2 디코딩 알고리즘에 기초한 디코딩이 성공한 경우, 이전과 동일하게 천공될 심볼들의 개수를 결정하는 제어 방법.
  20. 제12항에 있어서,
    상기 파라미터는, 상기 QC-LDPC 코드에서 정의되는 행분리 계수를 포함하는 제어 방법.
KR1020190098978A 2019-08-13 2019-08-13 송신 장치 및 그의 제어 방법 KR20210019848A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190098978A KR20210019848A (ko) 2019-08-13 2019-08-13 송신 장치 및 그의 제어 방법
US16/985,318 US20210050867A1 (en) 2019-08-13 2020-08-05 Transmitting apparatus and method for controlling the transmitting apparatus
PCT/KR2020/010727 WO2021029690A1 (en) 2019-08-13 2020-08-13 Transmitting apparatus and method for controlling the transmitting apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190098978A KR20210019848A (ko) 2019-08-13 2019-08-13 송신 장치 및 그의 제어 방법

Publications (1)

Publication Number Publication Date
KR20210019848A true KR20210019848A (ko) 2021-02-23

Family

ID=74567452

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190098978A KR20210019848A (ko) 2019-08-13 2019-08-13 송신 장치 및 그의 제어 방법

Country Status (3)

Country Link
US (1) US20210050867A1 (ko)
KR (1) KR20210019848A (ko)
WO (1) WO2021029690A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022250308A1 (ko) * 2021-05-25 2022-12-01 삼성전자 주식회사 신경망 자기 정정 최소합 복호기 및 이를 포함하는 전자 장치
US11955987B2 (en) 2021-05-25 2024-04-09 Samsung Electronics Co., Ltd. Neural self-corrected min-sum decoder and an electronic device comprising the decoder

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660245B1 (en) * 2004-09-16 2010-02-09 Qualcomm Incorporated FEC architecture for streaming services including symbol-based operations and packet tagging
WO2007095551A2 (en) * 2006-02-13 2007-08-23 Digital Fountain, Inc. Fec streaming with aggregation of concurrent streams for fec computation
US7971129B2 (en) * 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US20120208580A1 (en) * 2011-02-11 2012-08-16 Qualcomm Incorporated Forward error correction scheduling for an improved radio link protocol
KR102127685B1 (ko) * 2013-04-17 2020-06-29 삼성전자주식회사 순방향 오류 정정 패킷 송수신 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022250308A1 (ko) * 2021-05-25 2022-12-01 삼성전자 주식회사 신경망 자기 정정 최소합 복호기 및 이를 포함하는 전자 장치
US11955987B2 (en) 2021-05-25 2024-04-09 Samsung Electronics Co., Ltd. Neural self-corrected min-sum decoder and an electronic device comprising the decoder

Also Published As

Publication number Publication date
US20210050867A1 (en) 2021-02-18
WO2021029690A1 (en) 2021-02-18

Similar Documents

Publication Publication Date Title
US7853856B2 (en) Forming of error correction data
US9246630B2 (en) Method, device, and system for forward error correction
EP2820785B1 (en) Packet transmission/reception apparatus and method using forward error correction scheme
KR101995221B1 (ko) 통신 시스템에서 패킷 송수신 장치 및 방법
US7779336B2 (en) Assembling forward error correction frames
US9894421B2 (en) Systems and methods for data representation and transportation
US20130254611A1 (en) Recovering data in multimedia file segments
EP1514378B1 (en) Multimedia server with simple adaptation to dynamic network loss conditions
US7480848B2 (en) Methods and apparatus to select tornado error correction parameters
US20120110420A1 (en) Universal packet loss recovery for delivery of real-time streaming multimedia content over packet-switched networks
JP2008527862A (ja) Fecフィードバックを使用する適応型情報配送システム
US7594154B2 (en) Encoding and decoding modules with forward error correction
KR101656969B1 (ko) 계층 인식 순방향 에러 정정을 위한 인터리빙
US20110099449A1 (en) Method and apparatus for fec encoding and decoding
JP6486684B2 (ja) 移動通信システムにおける順方向誤り訂正パケットを送受信する装置及び方法
US20210050867A1 (en) Transmitting apparatus and method for controlling the transmitting apparatus
US11438097B2 (en) Media content-based adaptive method, device and system for forward error correction (FEC) coding and decoding of systematic code, and medium
JP6104044B2 (ja) 映像データ伝送装置及び映像データ伝送方法
KR101967884B1 (ko) 방송 및 통신 시스템에서 패킷 송/수신 장치 및 방법
US9203427B2 (en) System and method for mitigating the cliff effect for content delivery over a heterogeneous network
Neckebroek et al. Comparison of Reed-Solomon and Raptor codes for the protection of video on-demand on the erasure channel
Mattoussi et al. HbbTV based push-VOD services over DVB networks: Analysis and AL-FEC code application
JP7307613B2 (ja) 送信サーバ、送信装置、受信装置及びプログラム
CN117749322A (zh) 一种数据传输方法和装置
JP4485383B2 (ja) データ送受信システム及びデータ送信装置

Legal Events

Date Code Title Description
A201 Request for examination