KR20080093923A - A sub-block based cyclic updating method for low-delay fountain coding - Google Patents

A sub-block based cyclic updating method for low-delay fountain coding

Info

Publication number
KR20080093923A
KR20080093923A KR1020080035837A KR20080035837A KR20080093923A KR 20080093923 A KR20080093923 A KR 20080093923A KR 1020080035837 A KR1020080035837 A KR 1020080035837A KR 20080035837 A KR20080035837 A KR 20080035837A KR 20080093923 A KR20080093923 A KR 20080093923A
Authority
KR
South Korea
Prior art keywords
symbol
input
symbols
sub
output symbol
Prior art date
Application number
KR1020080035837A
Other languages
Korean (ko)
Other versions
KR101451985B1 (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 삼성전자주식회사
Publication of KR20080093923A publication Critical patent/KR20080093923A/en
Application granted granted Critical
Publication of KR101451985B1 publication Critical patent/KR101451985B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

A coding method and a decoding method are provided to suppress delay of data effectively, when transmitting the data through a wireless Internet, which causes the loss in a real-time multimedia service sensitive to delay. An input symbol is divided into the predetermined number of same sub-blocks. An encoding time section is divided into same sub-time sections corresponding to the number of the divided sub-blocks. Initial input symbols are generated by using symbols having sizes corresponding to the sub-blocks. Initial output symbols are generated by using the initial input symbols. Symbols corresponding to a new sub-block, which is to be encoded every sub-time section, are sequentially received and then added to the input symbols(710). A symbol corresponding to the first received sub-block is removed to update the input symbol(720). An output symbol related to the first received sub-block is updated. A packet is generated by using the updated output symbol(725).

Description

서브 블록별 순차적 업데이트 방식을 이용한 저지연 파운틴 코딩 방법{A SUB-BLOCK BASED CYCLIC UPDATING METHOD FOR LOW-DELAY FOUNTAIN CODING} Low delay fountain coding method using sequential update method for each subblock {A SUB-BLOCK BASED CYCLIC UPDATING METHOD FOR LOW-DELAY FOUNTAIN CODING}

본 발명은 비디오 코딩에 관한 것으로서 특히, 지연에 민감한 실시간 멀티미디어 서비스에서 패킷 손실 복원을 위해 파운틴 코드(Fountain code) 사용시 지연을 최소화하는 방법에 관한 것이다. The present invention relates to video coding, and more particularly, to a method of minimizing delay when using a fountain code for packet loss recovery in a delay sensitive real-time multimedia service.

채널 코딩의 부호율을 '(기존 정보의 양)/(부호화한 데이터의 양)'으로 표현할 경우, 파운틴 코드(Fountain code)는 부호화한 데이터의 양이 미리 정해지지 않아 'Rateless' 코드라고도 불린다. 파운틴 코드는 송신단 측에서 수신단에 대한 정보가 부족하거나 수신단의 수가 매우 많을 때처럼 양방향 정보 전송이 어려울 때에도 단방향 전송만으로 에러 없이 완벽한 수신을 가능하게 한다는 장점을 가지고 있어 컴퓨터 네트워크 내에서의 멀티캐스트 등에서 필요성이 제기되었다. 파운틴 코드는 다음과 같은 방식을 기초로 한다. 먼저 송신단에서는 전송할 파일을 이용하여 끊임없이 부호화된 패킷을 만들어서 전송한다. 그러면 각각의 수신단은 피드백이 필요 없이 복호화가 가능할 정도의 패킷만을 수신하여 복호화한다. 이로써 파운틴 코드는 네트워크의 과부하를 발생시키는 재전송요청을 없애고 수신단에게 비동기 수신을 제공할 수 있다.When the code rate of channel coding is expressed as '(amount of existing information) / (amount of encoded data)', the fountain code is also called a 'rateless' code because the amount of encoded data is not predetermined. The fountain code has the advantage of perfect reception without error even when bidirectional information transmission is difficult, such as when there is insufficient information on the receiver or when the number of receivers is very large. Therefore, it is necessary for multicast in computer network. This was raised. Fountain code is based on the following: First, the transmitter makes a packet continuously encoded using a file to be transmitted and transmits it. Then, each receiving end receives and decodes only packets that can be decoded without requiring feedback. This allows the fountain code to provide asynchronous reception to the receiver, eliminating retransmission requests that cause network overload.

파운틴 코드의 원리 및 장점은 하기의 문헌에 소개된다. The principles and advantages of fountain codes are introduced in the following documents.

- Byers, John W. et al.; "A Digital Fountain Approach to Reliable Distribution of Bulk Data"; 1998, Computer Communication Review, Association for Computing Machinery, vol. 28, No. 4, pp. 56-67. Byers, John W. et al .; "A Digital Fountain Approach to Reliable Distribution of Bulk Data"; 1998, Computer Communication Review, Association for Computing Machinery, vol. 28, No. 4, pp. 56-67.

이처럼 파운틴 코드는 데이터의 출처에 관계없이 원하는 양만큼의 데이터만 받으면 처리가 가능하다는 점에서 의미가 있다. 파운틴 코드는 k개의 입력 심볼을 이용하여 무한대의 출력 심볼을 생성할 수 있다. 각각의 출력 심볼은 임의적으로 입력 심볼들을 이용하여 생성한다. 출력 심볼은 다른 출력 심볼과 상관성을 지니지 않으며 k보다 약간 큰 m개의 출력 심볼을 이용하여 본래의 입력 심볼을 복구하는 것이 가능하다. P2P(Peer-to-Peer network)에서는 수신측은 같은 데이터를 전송하는 여러 송신측과 연결을 하고 어느 송신측에서 보낸 데이터인지에 관계없이 k보다 약간 더 많은 m개의 심볼을 받음으로써 본래 데이터를 복구할 수 있다. 이는 수신측이 네트워크 상황이 다른 여러 송신측과 연결을 한 경우, 네트워크 성능이 좋지 않은 송신측보다 네트워크 성능이 좋은 송신측으로부터 더 많은 심볼들을 수신할 수 있으며, 각각의 심볼들은 연관성을 지니지 않으므로 총 수신한 심볼들의 수가 m개를 넘으면 본래 데이터를 복구할 수 있다.As such, fountain codes are meaningful in that they can be processed by receiving as much data as you want, regardless of where the data comes from. The fountain code can generate an infinite number of output symbols using k input symbols. Each output symbol is randomly generated using input symbols. The output symbols are not correlated with other output symbols and it is possible to recover the original input symbols using m output symbols that are slightly larger than k. In a peer-to-peer network, the receiving side recovers the original data by connecting to multiple transmitting parties that transmit the same data and receiving slightly more m symbols than k, regardless of which sender sent the data. Can be. This means that when the receiving side is connected to multiple transmitting stations with different network conditions, it can receive more symbols from the transmitting side with better network performance than the transmitting side with poor network performance, and each symbol is not related and therefore the total If the number of received symbols exceeds m, the original data can be recovered.

파운틴 코드에 해당되는 첫 번째 발명은 1998년 발표된 LT 코드(Luby Transform codes)이며, 2004년에는 'Amin Shokrollahi'에 의하여 랩터 코드(Raptor code)가 개발되었다.The first invention that corresponds to the fountain code is the LT code (Luby Transform codes) published in 1998, and in 2004, Raptor code was developed by 'Amin Shokrollahi'.

랩터 코드는 DVB-H(Digital Video Broadcasting-Handheld)의 에플리케이션 계층에서의 표준으로 채택되었다. 이 코드는 기존의 파운틴 코드인 LT 코드보다 복호화 과정의 연산량 측면에서 더 좋은 성능을 가지고 있다. LT 코드의 가장 큰 단점은 소스 심볼을 복구하는데 필요한 연산량이 선형적이지 못하다는 것이었는데, 랩터 코드는 이러한 단점을 보완하여 부호화 연산량을 선형 시간 이내로 유지하면서 선형 시간의 복호화 연산량을 얻을 수 있게 한다. Raptor code has been adopted as the standard in the application layer of DVB-H (Digital Video Broadcasting-Handheld). This code has better performance in terms of the amount of computation in the decoding process than the existing code, LT code. The biggest drawback of LT codes is that the amount of computation required to recover the source symbols is not linear, and the Raptor code compensates for these drawbacks and allows to obtain the amount of decoding operations in linear time while keeping the amount of coding within linear time.

이렇게 랩터 코드는 LT코드와 토네이도 코드의 장점을 살린 발전된 형태이다. LT코드에 LDPC(Low Density Parity Check) 전처리 단계를 추가 함으로서 적은 정보량에서의 복호율을 향상시켰다. 또한 LT코드는 체계적인(systematic) 코드가 아니지만 랩터 코드는 전처리 단계를 추가함으로써 체계적인 코드의 특징을 지닌다. 추가로 토네이도와 달리 랩터코드와 LT 코드는 정해진 레이트(rate)가 없다. 이는 필요에 따라 무한대의 추가 패킷을 생성할 수 있음을 의미한다. 또한 랩터 코드는 토네이도 코드와 달리 그래프(graph)가 로그밀도로 생성된다. 또한 랩터 코딩 방식은 선형적인 bitpartite 그래프를 이용함으로써 매우 빠른 확률적 복호화를 수행한다. Thus, raptor code is an advanced form that takes advantage of LT code and tornado code. By adding a low density parity check (LDPC) preprocessing step to the LT code, the decoding rate in the small amount of information is improved. Also, LT code is not systematic code, but raptor code is characterized by systematic code by adding a preprocessing step. In addition, unlike tornadoes, raptor and LT codes do not have a fixed rate. This means that an infinite number of additional packets can be generated as needed. Raptor code also produces graphs with log density, unlike tornado code. In addition, the raptor coding method performs very fast probabilistic decoding by using a linear bitpartite graph.

데이터 심볼 k개에 대해서 n-k개의 패러티 심볼이 계산되는 체계적인 코드(systematic code)에서는 처음 k개의 심볼은 데이터 심볼이 되고, 다음 n-k개의 심볼은 패러티 심볼이 된다. Reed Solomon 코드에서는 k개의 데이터 심볼 모두에 종속적으로 모든 n-k개의 패러티 심볼이 생성된다. 그런데 파운틴 코드에서는 하나의 패러티 심볼은 각각 다른 집합인 일부의 데이터 심볼에 종속적으로 만들어진다. 어떤 데이터 심볼의 집합으로 생성되었는지에 대한 정보는 패러티 심볼과 함께 전송되어야 한다. In systematic code in which n-k parity symbols are calculated for k data symbols, the first k symbols become data symbols and the next n-k symbols become parity symbols. In Reed Solomon code, all n-k parity symbols are generated depending on all k data symbols. However, in fountain code, one parity symbol is made dependent on some data symbols that are different sets. Information about which set of data symbols is generated should be transmitted with the parity symbols.

도 1은 종래의 랩터 코딩의 동작 단계에서 각 심볼들을 보여주는 예시도이다. 도 1을 참조하면, 먼저 입력 심볼(Source Symbols)(110)에 대한 pre-coding(Inverse LT Encoding, LDPC & Half Symbol Encoding)을 통하여 입력 심볼(110)을 중간 심볼(Intermediate Symbols)(120)로 변환시키며, 중간 심볼(120)을 LT 코딩하여 무한대의 크기를 가질 수 있는 출력 심볼(130)을 생성할 수 있다. 또한 체계적인 코드(systematic)의 특징을 지니기 위하여 첫 K개의 출력 심볼(130)은 입력 심볼(110)과 같은 값을 가지게 되며 각 출력 심볼(130)들은 임의로 선택된 중간 심볼(120)들 간의 XOR 결과로서 나타난다.1 is an exemplary diagram showing each symbol in an operation stage of conventional raptor coding. Referring to FIG. 1, first, input symbols 110 are converted into intermediate symbols 120 through pre-coding (inverse LT encoding, LDPC & Half symbol encoding) for input symbols 110. The intermediate symbol 120 may be LT coded to generate an output symbol 130 having an infinite size. Also, in order to have a systematic characteristic, the first K output symbols 130 have the same value as the input symbol 110, and each output symbol 130 is an XOR result between arbitrarily selected intermediate symbols 120. appear.

한편, Reed Solomon 방식을 이용하여 이레이저(erasure)를 복원하는 방법은 하기와 같다. RS[n,k]를 이용하면 k개의 데이터 패킷을 전송할 때, n-k개의 패러티 패킷을 만들어서 전송중에 n-k개 이하의 패킷이 손실되었을 때, 수신측에서 모두 복원할 수 있다. 상기 방식은 재전송을 요구하는 방식보다 시간을 절약할 수 있으므로 실시간 서비스에서 이용된다. 이때 몇 번째 패킷이 손실되었는지 여부는 RTP 패킷 헤더에 있는 시퀀스 번호를 보고 알 수 있다. 이렇게 손실된 위치를 아는 손실을 이레이저라고 한다. 이때 n-k보다 더 많은 손실이 발생하면 잃어버린 패킷을 하나도 복원할 수 없다.Meanwhile, a method of restoring an erasure using the Reed Solomon method is as follows. With RS [n, k], when k data packets are transmitted, n-k parity packets are generated, and when n-k or less packets are lost during transmission, all can be recovered at the receiving side. This method is used in a real-time service because it can save time than the method requiring a retransmission. The number of packets lost can be determined by looking at the sequence number in the RTP packet header. This loss of knowing the lost location is called an erasure. If more loss occurs than n-k, none of the lost packets can be recovered.

Reed Solomon 코드와 같은 블록 코드에서는 콘볼루션널 코드와 달리 입력 심볼을 k개 단위로 나누고 n개의 출력 심볼을 계산한다. 즉, nⅹk 크기의 생성 행렬(generator matrix)을 크기 k인 벡터에 곱하여 n개의 출력 심볼을 계산할 수 있다. 이때 생성 행렬의 앞쪽이 kⅹk indentity 행렬이면 시스테메틱코드(systematic code)가 되어 n개중 처음 k개는 입력 심볼을 그대로 출력한다. 나머지 출력은 하나 이상의 입력 심볼에 계수를 곱하고 더하여 계산한다. 입력을 k개씩 끊어서 처리하고, 이에 대한 n개의 출력이 수신측에 입력되기 전까지는 복원을 할 수 없으므로 항상 k개의 입력이 생성되는 시간(또는 수신측에서 소비되는 시간)동안만큼 지연이 발생하게 된다. 이러한 지연을 최소화하기 위해 입력블록 크기 k를 줄이게 되면 같은 코드율(k/n)이라도 손실 복원능력이 저하된다. 따라서, k는 충분히 크면서도 코딩 지연은 줄일 수 있는 방법이 필요하다.Unlike convolutional code, block code such as Reed Solomon code divides the input symbols into k units and calculates n output symbols. That is, n output symbols may be calculated by multiplying a generator matrix of size nⅹk by a vector having a size k. In this case, if the front of the generation matrix is a kⅹk indentity matrix, it is a systematic code, and the first k of n output the input symbols as they are. The remaining output is calculated by multiplying and adding one or more input symbols with coefficients. Since k inputs are cut off and processed and n outputs are not restored to the receiver, there is always a delay as long as k inputs are generated (or the time spent at the receiver). . To minimize this delay, reducing the input block size k degrades the loss resilience even at the same code rate (k / n). Therefore, there is a need for a method where k is large enough and the coding delay can be reduced.

본 발명은 비디오 폰과 같은 지연에 민감한 실시간 멀티미디어 서비스에서 손실이 발생하는 무선 인터넷망을 통해 데이터가 전송될 경우 지연을 줄일 수 있는 손실 복원 방법을 제공하고자 한다. The present invention is to provide a loss recovery method that can reduce the delay when data is transmitted through a wireless Internet network that causes loss in a delay sensitive real-time multimedia service such as a video phone.

이를 달성하기 위한 본 발명의 일 형태에 따르면, 서브 블록별 순차적 업데이트 방식을 이용한 저지연 파운틴 코딩 방법에 있어서, 입력 심볼을 미리 설정된 개수의 동일한 서브 블록으로 나누는 과정과, 상기 입력 심볼을 미리 설정된 개수의 동일한 서브 블록으로 나눈 것에 대응되도록 상기 입력 심볼의 인코딩 시간을 동일한 서브 시간 구간으로 나누는 과정과, 상기 서브 블록에 해당되는 크기의 심볼을 입력받아, 초기 입력 심볼(Symbols)을 생성하고 상기 초기 입력 심볼을 이용하여 초기 출력 심볼을 생성하여 출력하는 과정과, 상기 서브 시간 구간마다 인코딩할 새로운 서브 블록에 해당되는 심볼들을 순차적으로 입력받아 상기 입력 심볼에 추가하고, 가장 이전에 입력받은 서브 블록에 해당되는 심볼을 상기 입력 심볼에서 제거하여 상기 입력 심볼을 업데이트하는 과정과, 상기 가장 이전에 입력받은 서브 블록에 관련된 출력 심볼을 업데이트하는 과정과, 상기 업데이트된 출력 심볼을 이용하여 패킷을 생성하는 과정을 포함함을 특징으로 한다. According to one embodiment of the present invention for achieving this, in a low delay fountain coding method using a sequential update method for each subblock, dividing an input symbol into a predetermined number of identical subblocks and a predetermined number of input symbols Dividing the encoding time of the input symbol into the same sub-time intervals so as to correspond to the division into the same sub-block of?, Receiving a symbol having a size corresponding to the sub-block, generating initial input symbols and generating the initial input A process of generating and outputting an initial output symbol by using a symbol, sequentially receiving symbols corresponding to a new subblock to be encoded for each sub-time interval, and adding the symbols to the input symbol and correspondingly to a previously inputted subblock. The input symbol by removing a symbol from the input symbol A characterized in that it comprises the step and the step of the process of updating the output symbols associated with the most previously received sub-blocks and to generate a packet using the updated output symbols for updating.

본 발명의 다른 형태에 따르면, 서브 블록별 순차적 업데이트 방식을 이용한 저지연 파운틴 디코딩 방법에 있어서, 초기 출력 심볼을 이용하여 생성된 패킷을 입력받아 디코딩하여 복원 심볼을 생성하는 과정과, 인코딩된 서브 블록의 정보를 포함한 패킷 수신시 상기 복원 심볼을 이용하여 원래의 서브 블록을 복원하는 과정과, 상기 복원 심볼에서 새로 수신한 서브 블록에 해당되는 심볼들은 추가하고, 가장 이전의 수신한 서브 블록에 해당되는 심볼들은 제거하여 상기 복원 심볼을 업데이트하는 과정을 포함함을 특징으로 한다.According to another aspect of the present invention, in the low-delay fountain decoding method using a sequential update method for each subblock, receiving and decoding a packet generated using an initial output symbol to generate a reconstruction symbol, and an encoded subblock Restoring the original subblock by using the reconstruction symbol when receiving a packet including the information, and adding the symbols corresponding to the newly received subblock in the reconstruction symbol, and corresponding to the previously received subblock. And removing the symbols to update the reconstructed symbols.

본 발명은 손실이 발생하는 네트워크 환경에서 멀티미디어 스트림을 전송할 경우, 비디오 폰과 같은 대화형 서비스에 사용되는 파운틴 코드와 같은 손실 복원코드에 의한 지연을 최소화할 수 있는 효과가 있다. According to the present invention, when a multimedia stream is transmitted in a lossy network environment, a delay caused by a loss recovery code such as a fountain code used for an interactive service such as a video phone can be minimized.

특히 랩터 코드(Raptor code)나 LDPC(Low Density Parity Check)와 같은 파운틴 코드를 사용할 경우, 기존에 블록의 크기(입력심볼의 개수) k가 적어도 1000이상 되어야 성능을 발휘하는데 본 발명은 상기 크기를 유지하면서 지연을 효과적으로 줄일 수 있다. In particular, when using a fountain code such as a raptor code or a low density parity check (LDPC), the block size (number of input symbols) k must be at least 1000 to achieve performance. It can effectively reduce the delay while maintaining.

도 1은 종래의 랩터(Raptor) 코딩 방식에서 코딩 동작시 각 단계의 심볼들을 보여주는 예시도1 is an exemplary diagram showing symbols of each step in a coding operation in a conventional Raptor coding scheme.

도 2는 3GPP(The 3rd Generation Partnership Project) MBMS(Multimedia Broadcast/Multicast Service)에서 송수신기의 계층 구조를 나타내는 블록 구성도2 is a block diagram showing a hierarchical structure of a transceiver in 3GPP (The 3rd Generation Partnership Project) Multimedia Broadcast / Multicast Service (MBMS).

도 3은 본 발명의 일 실시 예에 따른 코딩 동작시 심볼의 업데이트 동작을 보여주는 예시도3 is an exemplary diagram illustrating an update operation of a symbol during a coding operation according to an embodiment of the present invention.

도 4는 본 발명의 일 실시 예에 따른 저지연 코딩 방법에서 시간에 따른 프레임 인코딩 동작을 나타낸 예시도4 is an exemplary diagram illustrating a frame encoding operation according to time in a low delay coding method according to an embodiment of the present invention.

도 5는 본 발명의 일 실시 예에 따른 저지연 코딩 방법에서 시간에 따른 프레임 인코딩 동작을 나타낸 예시도5 is a diagram illustrating a frame encoding operation according to time in a low delay coding method according to an embodiment of the present invention.

도 6은 본 발명의 일 실시 예에 따른 저지연 코딩 방법에서 업데이트하며 전송하는 동작을 개략적으로 보여주는 예시도6 is an exemplary view schematically showing an operation of updating and transmitting in a low delay coding method according to an embodiment of the present invention;

도 7은 본 발명의 일 실시 예에 따른 송수신단의 저지연 코딩 동작의 흐름도7 is a flowchart of a low-delay coding operation of a transceiver according to an embodiment of the present invention.

도 8은 본 발명의 일 실시 예에 따른 저지연 코딩 동작을 개략적으로 나타낸 도면 8 is a diagram schematically illustrating a low delay coding operation according to an embodiment of the present invention.

도 9는 본 발명의 일 실시 예에 따른 저지연 디코딩 동작을 개략적으로 나타낸 도면 9 is a diagram schematically illustrating a low delay decoding operation according to an embodiment of the present invention.

도 10은 본 발명의 일 실시 예에 따른 저지연 코딩 방법에서 M의 크기에 따른 업데이트 확률을 나타내는 선형도10 is a linear diagram showing an update probability according to M size in a low delay coding method according to an embodiment of the present invention

도 11은 본 발명의 일 실시 예에 따른 저지연 코딩 방법에서 차수(degree)에 따른 업데이트 확률을 나타내는 선형도11 is a linear diagram showing update probability according to degree in a low delay coding method according to an embodiment of the present invention

이하 첨부된 도면을 참조하여 본 발명을 구성하는 장치 및 동작 방법을 본 발명의 실시 예를 참조하여 상세히 설명한다. 하기 설명에서는 구체적인 구성 소자 등과 같은 특정 사항들이 나타나고 있는데 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들이 본 발명의 범위 내에서 소정의 변형이나 혹은 변경이 이루어질 수 있음은 이 기술분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다.Hereinafter, an apparatus and an operation method of constructing the present invention will be described in detail with reference to the accompanying drawings. In the following description, specific details such as specific components are shown, which are provided to help a more general understanding of the present invention, and it is understood that these specific details may be changed or changed within the scope of the present invention. It is self-evident to those of ordinary knowledge in Esau. In addition, in describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted.

기존의 Reed Solomon 코드에서는 k개의 입력 심볼에 대해서 n개의 출력 심볼이 만들어진다. 따라서, k개의 입력이 만들어지는 시간 T만큼 지연이 발생하게 된다. 예를 들어 1초에 30프레임이 지나가는 비디오의 경우 1초마다 코드를 적용하면 적어도 T=1초의 지연이 생기게 된다. 주문형 비디오와 같이 스트리밍 서비스에서는 이 정도의 지연이 크게 문제되지 않는다. 그러나 비디오폰과 같은 대화형 서비스인 경우에는 이러한 지연이 허용되지 않는다. 대부분의 손실 복원코드는 같은 코드율(k/n)일 때, k가 클수록 복원능력이 향상된다. 따라서, 복원능력과 코딩지연과는 서로 교환조건(trade-off)이 성립한다. 본 발명은 복원능력을 유지하면서 지연을 최소화하는 방법을 제시한다. In conventional Reed Solomon code, n output symbols are generated for k input symbols. Thus, a delay occurs by the time T at which k inputs are made. For example, for a video that passes 30 frames per second, applying a code every second will cause a delay of at least T = 1 second. This delay is not a problem for streaming services, such as video on demand. However, this delay is not allowed for interactive services such as video phones. Most lossy recovery codes have the same code rate (k / n), so that the larger k, the better the recovery capability. Therefore, trade-off is established between the restoring capability and the coding delay. The present invention provides a method of minimizing delay while maintaining resilience.

본 발명은 T시간마다 생성되는 k개의 입력 심볼을 시간적으로 M등분하여 T/M시간마다 출력 심볼들을 업데이트한다. M은 k의 약수가 되는 것이 바람직하다. 이렇게 하여 지연시간을 원래의 지연시간 T에서 T/M로 단축한다. T/M시간마다 가장 오래된 k/M개의 데이터를 지우고 새로운 k/M 데이터를 입력받아 전체 k개의 심볼에 대한 n개의 출력을 생성한다. 이 경우 본 발명은 새로운 k/M개의 입력과 관련 있는 출력 심볼만 업데이트한다. 이에 따라 매 T/M시간 동안에는 새로 들어온 입력 데이터와 업데이트된 출력 심볼만 전송한다. 이러한 출력은 순차적으로 이루어지게 된다. 먼저 k개의 입력에 대한 n개의 출력을 송신과 수신측에서 교환한 이후에는 k/M개의 입력에 대한 출력을 전송하면서 순차적으로 k/M 단위로 진행할 수 있게 된다. The present invention updates k output symbols every T / M time by dividing k input symbols generated every T time by M in time. It is preferable that M becomes a divisor of k. This reduces the delay time from the original delay time T to T / M. Every T / M time, the oldest k / M data is deleted and new k / M data is input to generate n outputs for the total k symbols. In this case the invention only updates the output symbols associated with the new k / M inputs. This ensures that only new incoming data and updated output symbols are transmitted during every T / M time. These outputs are made sequentially. First, n outputs for k inputs are exchanged at the transmitting and receiving sides, and then the outputs for k / M inputs can be sequentially transmitted in k / M units.

업데이트되는 확률은 간단하게 다음과 같이 추정할 수 있다. 출력 심볼당 평균 에지수가 d개이고, k개의 입력 블록을 M개로 나누는 경우, 하나의 에지가 업데이트되는 서브 블록(sub-block)에 속하지 않을 확률은 (M-1)/M이다. d개의 에지가 모두 업데이트되는 서브 블록에 속하지 않을 확률은 Premain = ((M-1)/M)e이 된다. 업데이트가 될 확률은 Pupdate = 1-Premain 이며 본 발명의 오버헤드는 이 비율이 1/M보다 얼마나 큰지로 결정된다.The probability of updating can be estimated simply as follows. If the average number of edges per output symbol is d and k input blocks are divided by M, the probability that one edge does not belong to the sub-block being updated is (M-1) / M. The probability that the d edges do not belong to the updated sub block is Premain = ((M-1) / M) e. The probability of being updated is Pupdate = 1-Premain and the overhead of the present invention is determined by how large this ratio is than 1 / M.

이하 도면을 참조하여 본 발명의 더욱 상세히 설명하기로 한다. Hereinafter, with reference to the drawings will be described in more detail the present invention.

도 2는 3GPP(The 3rd Generation Partnership Project) MBMS(Multimedia Broadcast/Multicast Service)에서 송수신기의 계층 구조를 나타내는 블록 구성도이다(3GPP TS 26.346, 2006.12 참조). FIG. 2 is a block diagram illustrating a hierarchical structure of a transceiver in 3GPP (The 3rd Generation Partnership Project) Multimedia Broadcast / Multicast Service (MBMS) (see 3GPP TS 26.346, 2006.12).

MBMS는 3GPP에서 개발 중인 멀티미디어 브로드캐스트/멀티캐스트 서비스 표준으로서 데이터 패킷을 다수의 사용자들에게 동시에 전송하는 서비스이고 멀티미디어 데이터 전송을 목적으로 한다. 도 2를 참조하면, 먼저 송신측(sender)의 오디오(Audio), 비디오(Video), 텍스트(Text) 데이터는 실시간 전송을 위한 RTP & RTCP(Real-time Transport Control Protocol)와, 미디어의 보안을 위한 SRTP(Secure RTP)를 사용하며, 키 핸들링(Key handling)은 키 관리 프로토콜인 MIKEY(Multimedia Internet KEYing)를 사용한다. 상기 데이터들은 에러 정정을 위한 FEC 계층(FEC Layer)에서 FEC 인코딩되어 UDP(User Datagram Protocol)를 이용하여 MBMS를 위해 다수의 사용자들에게 전송된다. 수신측(Receiver)은 상기 송신측에서 전송된 데이터를 수신하여 UDP를 거쳐 FEC 계층에서 손실된 에러를 정정하고 데이터를 복구한다. 상기 FEC 계층에서는 에러 정정을 위해 손실 복원 코드가 사용되며 본 발명은 상기 손실 복원 코드에 적용하여 사용될 수 있다.MBMS is a multimedia broadcast / multicast service standard under development in 3GPP, which is a service for simultaneously transmitting data packets to multiple users, and aims to transmit multimedia data. Referring to FIG. 2, first of all, audio, video, and text data of a sender is used for real-time transport control protocol (RTP & RTCP) for real-time transmission, and security of media. Secure RTP (SRTP) is used, and key handling uses MIKEY (Multimedia Internet KEYing), a key management protocol. The data are FEC encoded at the FEC layer for error correction and transmitted to a plurality of users for MBMS using User Datagram Protocol (UDP). A receiver receives data transmitted from the transmitter, corrects an error lost in the FEC layer through UDP, and recovers data. In the FEC layer, a loss recovery code is used for error correction, and the present invention can be applied to the loss recovery code.

도 3은 본 발명의 일 실시 예에 따른 코딩 동작시 심볼의 업데이트 동작을 보여주는 예시도이다. 손실 복원 코드에서는 같은 코드율(k/n)이라도 k가 클수록 손실 복원능력이 좋다. 그러나 k가 크면 지연이 그만큼 지연이 더 발생한다. 본 발명은 본 발명의 특징에 따라 k값을 그대로 유지하면서 지연을 최소화하게 하기 위하여 크기 k인 블록을 M개의 서브 블록(sub-block)으로 나누어 한 번의 시간 단위당 하나의 서브 블록의 크기만큼 심볼을 업데이트한다. 서브 블록은 꼭 M으로 나누어진 수가 아니어도 수신측이 총 코드의 길이만 안다면 문제가 되지 않는다. 또한 수신측이 이미 복원한 코드중에서 어떤 부분이 쓰이는지 알 수 있어야 한다. 도 3에 도시한 바와 같이, 도 3의 예에서는 k는 16이고 M은 4이다. 먼저 처음 k개의 입력에 대해서 n개의 출력이 수신측에 전달되고, 다음 n개의 출력 심볼 중에서 가장 오래된 k/M개의 서브 블록에 에지(edge, 계수가 0이 아닌 경우)가 있는 출력 심볼을 선택하여 업데이트한다. 이 출력 심볼에서는 에지가 하나만 있을 수 있다. 해당 입력 심볼과 해당 에지의 계수를 곱하여 나온 수를 해당 출력 심볼에서 빼고 같은 위치의 새로운 입력 심볼에 해당 에지의 계수를 곱하여 나온 수를 수정된 해당 출력 심볼에 더하여 새로운 출력 심볼을 만든다. 3 is an exemplary view illustrating an update operation of a symbol during a coding operation according to an embodiment of the present invention. In the loss recovery code, even if the same code rate (k / n), the larger k, the better the loss recovery ability. However, if k is large, the delay is more delayed. The present invention divides a block of size k into M sub-blocks in order to minimize delay while maintaining the value of k in accordance with the characteristics of the present invention. Update. The subblock is not necessarily divided by M, but it does not matter if the receiver knows the total length of the code. In addition, the receiver should be able to know which part of the code has already been restored. As shown in Fig. 3, in the example of Fig. 3, k is 16 and M is 4. First, n outputs are delivered to the receiver for the first k inputs, and the output symbols with edges (if the coefficient is non-zero) are selected in the oldest k / M subblocks among the next n output symbols. Update. There can be only one edge in this output symbol. A new output symbol is created by subtracting the number multiplied by the corresponding input symbol and the coefficient of the corresponding edge from the output symbol and multiplying the new input symbol at the same location by the coefficient of the corresponding edge to the modified corresponding output symbol.

에를 들어, 도 3에 도시한 바와 같이 과거의 왼쪽에 있는 4개의 심볼이 제거되고 새로운 4개의 입력이 오른쪽에서 왼쪽으로 입력되는 경우를 가정하면, 출력 심볼 y6는 x2에 에지가 연결되어있으므로 과거의 x2와 새로운 x2를 한번씩 y6에 XOR을 하여 새로운 y6로 업데이트 하고 수신측으로 전송해야한다. 그러나, y7은 새로 업데이트되는 4개의 입력과 관계없으므로 다시 전송할 필요가 없다. For example, suppose the four symbols on the left of the past are removed and four new inputs are input from the right to the left, as shown in FIG. 3, and the output symbol y6 has an edge connected to x2. The x2 and the new x2 should be xored at y6 once to update to the new y6 and send to the receiver. However, y7 is independent of the four newly updated inputs and does not need to be retransmitted.

Reed Solomon인 경우에는 계수가 갈로아 체(Galois Field)에 속한 여러 값 중에 하나이지만, LDPC(Low Density Parity Check)나 랩터(Raptor) 코드에서는 0과 1만이 가능하므로 에지가 0이 아닌 경우에 과거의 입력 심볼과 새로운 입력 심볼을 한번씩 XOR을 하면 새로운 출력 심볼이 만들어진다. Reed Solomon인 경우 입력심볼을 그대로 전송하는 부분을 제외하고는 모든 출력 심볼이 모든 입력 심볼과 관련이 있다. 즉, 모든 계수가 대부분 0이 아니다. 이 경우에는 출력 심볼을 거의 다 업데이트해야하므로 본 발명에 의한 오버헤드가 커진다. 그러나, LDPC나 랩터 코드의 경우에는 밀도(desity)가 낮으므로 본 발명을 적용할 경우 오버헤드가 크지 않다. In Reed Solomon, the coefficient is one of several values in the Galois Field, but only 0 and 1 are possible in the Low Density Parity Check (LDPC) or Raptor code, so if the edge is not zero, If you XOR the input symbol and the new input symbol once, a new output symbol is created. In the case of Reed Solomon, all output symbols are related to all input symbols except for the transmission of input symbols as they are. That is, most of the coefficients are mostly nonzero. In this case, almost all of the output symbols must be updated, which increases the overhead of the present invention. However, in the case of LDPC or Raptor code, since the density is low, the overhead of applying the present invention is not large.

본 발명은 본 발명의 특징에 따라 인코딩시 초기 k개의 입력심볼은 하기와 같은 방법을 이용하여 생성한다. 초기에는 k(M-1)/M개의 가상 입력 심볼을 송신측과 수신측이 미리 설정하고, 실제 입력에서 마지막 서브 블록에 해당하는 k/M개의 심볼을 합하여 총 k개의 초기 입력 심볼을 만든다. 이 경우 가상 입력 심볼은 모두 1로 하거나 0으로 하는 것이 바람직하다. According to the present invention, the initial k input symbols during encoding are generated using the following method. Initially, k (M-1) / M virtual input symbols are set in advance by the transmitting side and the receiving side, and a total of k initial input symbols are generated by adding k / M symbols corresponding to the last subblock in the actual input. In this case, the virtual input symbols are all set to 1 or 0.

또한 본 발명은 손실이 전파되는 것을 막기 위해 손실이 많이 발생하는 경우에는 손실이 복원되지 못한 상황이 누적되어 복원력이 떨어질 수 있으며 일정한 시간마다 새로이 시작하도록 하는 리프레쉬 블록을 삽입할 수 있다. 이렇게 새로이 시작할 수 있게 하는 동작은 무작위접근(random access)을 위해서도 필요하다. 여기서도 가상 입력 심볼은 모두 1로 하거나 0으로 하는 것이 바람직하다. 리프레쉬 블록이 자주 삽입될수록 코딩효율이 떨어지므로 리프레쉬 블록의 주기는 손실율과 랜덤접근의 조건에 따라 적절히 결정한다. In addition, the present invention may accumulate a situation in which the loss is not restored when a lot of losses occur to prevent the loss from propagating, and thus the resilience may be reduced, and a refresh block may be inserted to start a new one at a predetermined time. This new start is also necessary for random access. Again, it is preferable that all virtual input symbols be either 1 or 0. As the refresh block is inserted more frequently, the coding efficiency decreases. Therefore, the refresh block period is appropriately determined according to the loss rate and the random access conditions.

또한 본 발명은 백시그널링(back signaling)을 이용하여 현재의 손실율에 따라 적응적으로 동작할 수 있다. 만일 수신기로부터 현재의 손실 복원율을 전달받을 수 있다면 이에 따라 패러티 심볼의 전송율을 조절하여 필요한 만큼의 코딩율을 유지할 수 있다. 즉, 손실 복원율이 나빠지면, 패러티 심볼을 더 많이 전송하고, 좋아지면 덜 보내도록 한다. 현재의 복원율은 미래에 영향을 미치므로 이러한 적응성이 중요하다. 따라서 현재의 손실 복원율이 나쁘면 상기와 같은 방식으로 미래의 손실 복원율을 높일 수 있다. 만일 전혀 복원할 수 없을 만큼 손실된 경우에는 리프레쉬 블록을 전송한다. 상기 적응적 방법을 이용하려면 왕복 지연 시간이 리프레쉬 기간보다 훨씬 짧아야 한다. 상기 왕복 지연 시간은 바람직하게 리프레쉬 기간의 1/4 정도가 적절하다.In addition, the present invention can operate adaptively according to the current loss rate using back signaling. If the current loss recovery rate can be received from the receiver, the rate of parity symbols can be adjusted accordingly to maintain the coding rate as necessary. In other words, if the loss recovery rate is worse, more parity symbols are transmitted, and if it is better, less parity is sent. This adaptability is important because current restoration rates affect the future. Therefore, if the current loss recovery rate is bad, the future loss recovery rate can be increased in the above manner. If it is lost beyond restoration at all, the refresh block is transmitted. To use this adaptive method, the round trip delay time must be much shorter than the refresh period. The round trip delay time is preferably about 1/4 of the refresh period.

또한 본 발명은 에지 분포를 조절하여 업데이트되는 출력 심볼 수를 줄일 수 있다. 각 출력 심볼에 대한 에지의 분포가 연속된 (M-1)/M에 분포하도록 코드를 만들게 되면 업데이트되는 출력의 심볼의 수를 최소화할 수 있다. 만일 모든 출력 심볼이 이 조건을 만족하면 한 서브 블록에 대해서 n/M개의 출력변수만 업데이트 하면 된다. In addition, the present invention can reduce the number of output symbols to be updated by adjusting the edge distribution. Creating code so that the distribution of the edges for each output symbol is distributed over consecutive (M-1) / M can minimize the number of symbols in the output being updated. If all output symbols satisfy this condition, only n / M output variables need to be updated for one subblock.

한편 서브 블록의 크기가 모두 같을 필요는 없다. 모든 서브 블록의 크기의 합은 블록의 크기 k가 되어야 한다. Meanwhile, the subblocks do not have to be all the same size. The sum of the sizes of all subblocks should be the size k of the block.

에지에 무관하게 파운틴 코드의 실시간 생성을 위한 방법은 다음과 같다. 랩터 코드와 같이 송신자와 수신자가 정적인 에지 생성 방법을 매우 많이 가지고 있고, 입력 심볼이 출력 심볼에 존재하는 시스테메틱 코드 일 때 수신받은 코드를 다시 이용하여 미래에 수신될 코드의 실시간 복원을 위한 패러티로 이용할 수 있다. 이 방법은 파운틴 코드를 이용하여 k개의 입력 심볼(k가 매번 정적인 값일 필요는 없다)로 리페어 코드 생성시, k개에 심볼에 M개의 프레임에 해당하는 정보를 넣는다. M개의 프레임에 대한 심볼은 순차적이며 제일 마지막 프레임은 제일 최근에 인코딩된 프레임 또는 현재 전송되지 않은 다음에 전송될 정보이다. 이 이후 또 새로운 프레임이 인코딩되거나 또는 다음 전송될 정보가 준비된다면, 제일 이전의 프레임에 대한 정보를 k에서 제거하고 다음 정보를 k에 순차적으로 추가하여 새로운 k'를 생성한다. 이 k'를 이용하여 파운틴 코딩하여 리페어 코드를 생성한다. 생성된 파운틴 코드는 시스테메틱이라 과거에 보내진 원 심볼들은 동일하게 존재하고 수신단도 복원이 성공하였다면 수신단은 이 심볼들을 알 수 있다. 그러므로 새로 k'에 입력된 정보에 해당하는 파운틴 코드와 생성된 리페어 코드들만 수신측에 전송하면 된다. 수신측이 k개의 심볼을 복원하면 가장 이전의 정보를 제거하고 나머지는 새로 받을 다음 정보의 복원에 이용할 수 있다. 과거, 미래, 또는 최근의 프레임 단위는 단일 프레임이 아닌 여러 프레임의 묶음으로 설정할 수 있다. The method for real-time generation of the fountain code regardless of the edge is as follows. Like the raptor code, the sender and receiver have a lot of static edge generation methods, and when the input symbol is a systematic code existing in the output symbol, the received code is used again for real-time recovery of the code to be received in the future. Can be used as a parity. In this method, when a repair code is generated using k input symbols (k does not need to be a static value each time) using a fountain code, information corresponding to M frames is inserted into k symbols. The symbols for the M frames are sequential and the last frame is the most recently encoded frame or the information to be transmitted next not currently transmitted. After this, if a new frame is encoded or the information to be transmitted next is prepared, information about the previous frame is removed from k and the next information is sequentially added to k to generate a new k '. This k 'is used for fountain coding to generate a repair code. The generated fountain code is systemic, so if the original symbols sent in the past exist and the receiver is successfully restored, the receiver can know these symbols. Therefore, only the fountain code corresponding to the newly input information of k 'and the generated repair codes need to be transmitted to the receiver. When the receiver recovers k symbols, the oldest information is removed and the rest can be used to recover the next information to be newly received. The past, future, or recent frame unit can be set as a bundle of several frames instead of a single frame.

또한 수신측은 각 패킷의 추가 정보로 전달되는 서브 블록의 ID로 프레임을 구분 할 수 있다. 또한 수신측은 수신한 총 코드에서 에지 생성 방법을 이용하여 동일한 에지를 만들 수 있다. 심볼의 프레임별 배열은 순차적이지 않아도 수신측이 배열을 알 수 있다면 바꿀 수 있다. 한편 본 발명은 k개의 심볼의 배열에서 제일 과거의 프레임에 대한 심볼을 시프트하여 제거하고 업데이트될 프레임의 심볼들을 추가하는 논리적 구조를 이용할 수 있으며, 과거의 심볼의 위치에서 과거의 심볼을 제거 한 후 새 심볼을 그 자리를 대체하여 파운틴 코드를 생성할 수도 있다. In addition, the receiving side can identify the frame by the ID of the sub-block delivered as additional information of each packet. The receiving side can also create the same edge using the edge generation method in the total code received. The frame-by-frame arrangement of symbols can be changed if the receiver knows the arrangement even if they are not sequential. Meanwhile, the present invention may use a logical structure that shifts and removes a symbol for a frame in the past in an array of k symbols, and adds symbols of a frame to be updated. You can also create a fountain code by replacing the new symbol with a placeholder.

도 4는 본 발명의 일 실시 예에 따른 저지연 코딩 방법에서 시간에 따른 프레임 인코딩 동작을 나타낸 예시도이다. 도 4의(a)는 두 프레임으로 하나의 패킷을 생성하는 본 발명의 일 실시 예에 따른 저지연 코딩 방식을 개략적으로 나타낸 도면이며, 도 4의(b)는 기존의 방식을 나타낸 도면이다. 기존의 방식은 본 발명과 달리 패킷에 들어가는 프레임 수만큼 지연이 생긴다.4 is an exemplary diagram illustrating a frame encoding operation over time in a low delay coding method according to an embodiment of the present invention. 4A is a diagram schematically illustrating a low delay coding scheme according to an embodiment of the present invention, in which one packet is generated in two frames, and FIG. 4B is a diagram illustrating a conventional scheme. In the conventional scheme, unlike the present invention, there is a delay as many as the number of frames in a packet.

도 5는 본 발명의 일 실시 예에 따른 저지연 코딩 방법에서 시간에 따른 프레임 인코딩 동작을 나타낸 예시도이다. 도 5의 (a)는 두 프레임으로 하나의 패킷을 생성하는 본 발명의 일 실시 예에 따른 저지연 코딩 방식을 개략적으로 나타낸 도면이며, 도 5의(b)는 저지연을 위한 기존의 방식을 나타낸 도면이다. 기존의 방법은 부호화를 위한 패킷의 길이를 줄여서 지연을 줄였지만, 이에 따라 복원 성공 확률이 떨어진다.5 is an exemplary diagram illustrating a frame encoding operation over time in a low delay coding method according to an embodiment of the present invention. FIG. 5 (a) is a diagram schematically showing a low latency coding scheme according to an embodiment of the present invention in which one packet is generated in two frames, and FIG. 5 (b) illustrates an existing scheme for low latency. The figure shown. The conventional method reduces the delay by reducing the length of the packet for encoding, but the probability of success of restoration is lowered accordingly.

도 6은 본 발명의 일 실시 예에 따른 저지연 코딩 방법에서 출력 심볼 n을 업데이트하며 전송하는 동작을 개략적으로 보여주는 예시도이다. 도 6을 참조하면, 프레임 Cx에서 각 k(인코딩되기 위한 입력 심볼)를 두 개의 세그먼트(서브 블록)로 나누어서 파운틴 코드를 생성하고, 한 세그먼트씩 업데이트하며 전송한다. 이때 맨 처음 세트에서는 첫번째 세그먼트가 더미 심볼(Dummy Symbols)이 된며, 세트가 진행됨에 따라 새로운 세그먼트를 입력받아 출력 심볼을 업데이트 하며 이전의 세그먼트는 제거한다. 수신측은 이미 과거의 복원된 심볼을 미래의 수신될 심볼의 복원에 이용함으로서 보다 적은 심볼이 수신되었을 때에도 더욱 높은 복원률을 가질 수 있다. 6 is an exemplary view schematically illustrating an operation of updating and transmitting an output symbol n in a low delay coding method according to an embodiment of the present invention. Referring to FIG. 6, in frame Cx, each k (input symbol to be encoded) is divided into two segments (sub blocks) to generate a fountain code, and updated by one segment. In this first set, the first segment becomes dummy symbols. As the set progresses, new segments are inputted to update output symbols and the previous segment is removed. The receiving side may have a higher recovery rate even when fewer symbols are received by using the previously recovered symbols for the recovery of the future received symbols.

손실 정정 코드의 종류에는 콘볼루셔널 코드와 블록 코드가 있으며, 블록 코드에서는 한 블록에 속한 데이터를 가지고 전체적으로 손실 복원을 하므로 블록 크기만큼의 지연이 발생한다. 블록의 크기는 유지하면서 하나의 블록을 여러 개의 서브 블록으로 나누어서 하나의 서브 블록만큼의 입력 심볼을 교체하며 업데이트해야하는 출력 심볼들은 새로 전송한다. There are two types of loss correction codes, a convolutional code and a block code. In the block code, since the loss recovery is performed entirely with data belonging to one block, a delay of the block size occurs. While maintaining the size of a block, one block is divided into several sub-blocks to replace input symbols of one sub-block, and output symbols that need to be updated are newly transmitted.

도 7은 본 발명의 일 실시 예에 따른 송수신단의 저지연 코딩 동작의 흐름도이다. 먼저 705단계에서 송신단은 새로운 입력 심볼인 서브 블록 k/M을 입력받는다. 다음 710단계에서 이전에 저장된 입력 심볼 k(M-1/M)에 상기 새로운 입력 심볼 k/M을 추가한다. 다음 720단계에서 이전에 사용된 마지막 서브 블록을 제거하며, 새로운 서브 블록 k/M을 입력 심볼 k에 추가하며, 이에 따라 출력 심볼을 업데이트 한다. 다음 725단계에서 상기 720단계에서 업데이트된 입력 심볼 k를 이용하여 인코딩을 수행하며 이에 따른 패킷을 생성한다. 다음 730단계에서 패킷을 수신단으로 전송한다. 이 경우 본 발명은 새로 업데이트 된 출력 심볼만을 수신단으로 전송한다. 다음 735단계에서는 수신단에서 송신단으로부터 데이터 패킷을 수신하며, 다음 740단계에서는 이전에 복원한 심볼(복원 심볼)을 이용하여 코드를 복원한다. 또한 740단계에서 수신단은 필요에 따라 송신단에게 심볼의 종속성을 제거한 초기 전송의 방법으로 전송을 요청하거나, 또는 패러티의 추가 또는 제거를 요청할 수 있다. 다음 745단계에서 새로 입력된 서브 블록을 구분하며, 750단계에서 다음 복원을 위해 사용할 복원 심볼을 메모리에 저장한다. 상기 복원 심볼은 740단계에서 새로 들어올 심볼들에 대한 정보의 복원에 이용할 수 있다. 다음 740단계에서 코드 복원 후 755단계에서 서브 블록 k/M을 복원하여 사용한다. 7 is a flowchart of a low delay coding operation of a transceiver according to an embodiment of the present invention. First, in step 705, the transmitting end receives a new input symbol, sub block k / M. In step 710, the new input symbol k / M is added to the previously stored input symbol k (M-1 / M). In step 720, the last subblock previously used is removed, and a new subblock k / M is added to the input symbol k, and the output symbol is updated accordingly. In operation 725, encoding is performed using the input symbol k updated in operation 720, and a packet is generated accordingly. In step 730, the packet is transmitted to the receiving end. In this case, the present invention transmits only the newly updated output symbol to the receiver. In the next step 735, the receiving end receives the data packet from the transmitting end. In the next step 740, the code is restored using the previously restored symbol (restoration symbol). In addition, in step 740, the receiver may request the transmitter to transmit, or add or remove parity, by an initial transmission method that removes the symbol dependency. In operation 745, the newly input subblock is distinguished, and in operation 750, a restoration symbol to be used for the next restoration is stored in the memory. The reconstructed symbol can be used for reconstructing information on new symbols, in step 740. After the code is restored in step 740, the subblock k / M is restored and used in step 755. FIG.

도 8은 본 발명의 일 실시 예에 따른 저지연 코딩 동작을 개략적으로 나타낸 도면이다. 도 8에 도시한 바와 같이 본 발명의 일 실시 예에 따른 저지연 코딩은 인코더의 메모리 버퍼에 입력 심볼 k를 저장하며 저장된 입력 심볼에 새로 입력되는 서브 블록 k/M을 추가하고 사용이 필요없는 이전 서브 블록을 제거한다. 상기 입력 심볼과 필요한 정보는 시스테메틱 코드 생성기에 보내져 시스테메틱 코드가 생성된다. 이 경우 이미 복원된 정보를 제외한 새로 업데이트 된 부분과 추가 복원된 심볼들만 수신측으로 전달된다.8 is a diagram schematically illustrating a low delay coding operation according to an embodiment of the present invention. As shown in FIG. 8, low-delay coding according to an embodiment of the present invention stores an input symbol k in a memory buffer of an encoder, adds a newly input subblock k / M to a stored input symbol, and uses no previous transfer. Remove the sub block. The input symbol and the necessary information are sent to a systematic code generator to generate a systematic code. In this case, only the newly updated part and the additional recovered symbols are transmitted to the receiver except the already restored information.

도 9는 본 발명의 일 실시 예에 따른 저지연 디코딩 동작을 개략적으로 나타낸 도면이다. 도 9에 도시한 바와 같이 본 발명의 일 실시 예에 따른 저지연 디코딩은 디코더는 이전에 복원한 심볼들(복원심볼)을 송신측에서 수신한 것으로 가정하고 재이용을 할 수 있다. 실제 수신된 심볼과 과거에 복원된(송신측에서 코드생성에 이용한 부분) 부분을 이용하여 필요한 심볼들을 복원하고 이를 또 이용하기 위하여 메모리버퍼에 저장한다. 더 이상 필요가 없는 이전 서브 블록은 제거되고 새로운 서브 블록은 메모리버퍼에 추가되며 상기 새로운 서브 블록은 디코더의 출력이 된다. 9 is a diagram schematically illustrating a low delay decoding operation according to an embodiment of the present invention. As shown in FIG. 9, in the low-delay decoding according to an embodiment of the present invention, the decoder may reuse assuming that previously transmitted symbols (restoration symbols) are received at the transmitter. The actual received symbols and the parts recovered in the past (parts used for code generation at the sender) are used to recover the necessary symbols and store them in the memory buffer to use them again. The old subblock, which is no longer needed, is removed and the new subblock is added to the memory buffer and the new subblock becomes the output of the decoder.

도 10은 본 발명의 일 실시 예에 따른 저지연 코딩 방법에서 M의 크기에 따른 업데이트 확률을 나타내는 선형도이다. 도 10에 도시한 바와 같이 본 발명의 일 실시 예에 따른 저지연 코딩 방식을 사용하는 경우 M이 클수록 심볼이 업데이트될 확률이 줄어든다. 도 11은 본 발명의 일 실시 예에 따른 저지연 코딩 방법에서 차수(degree)에 따른 업데이트 확률을 나타내는 선형도이다. 도 11에 도시한 바와 같이 본 발명의 일 실시 예에 따른 저지연 코딩 방식을 사용하는 경우 차수가 높을수록 업데이트 확률이 커진다. 10 is a linear diagram illustrating an update probability according to the size of M in a low delay coding method according to an embodiment of the present invention. As shown in FIG. 10, in the case of using the low-delay coding scheme according to an embodiment of the present invention, as M increases, the probability that the symbol is updated decreases. 11 is a linear diagram illustrating update probability according to degree in a low delay coding method according to an embodiment of the present invention. As shown in FIG. 11, in the case of using the low delay coding scheme according to an embodiment of the present invention, the higher the order, the greater the update probability.

만일 모든 에지가 매번 업데이트 되고 k가 일정하다 할 때 기존의 방법은 각 k에 포함되는 프레임의 수가 n이라 하면, n*packets 번 코드를 생성하여야 한다. 반면 본 발명은 각 프레임마다 k의 코드를 만들어서 전송하므로, m*n*packets 번의 코드 생성을 하게 된다. 하지만 파운틴 코드는 기존의 Reed-Solomon 방식에 비하여 매우 연산량이 적기 때문에 상기와 같은 오버헤드는 각 프레임을 실시간 처리시에 동시에 처리하기가 용이하다.If all edges are updated each time and k is constant, the existing method should generate code n * packets if the number of frames included in each k is n. On the other hand, the present invention generates and transmits a code of k in each frame, thereby generating code of m * n * packets times. However, since the fountain code is much less computational than the conventional Reed-Solomon method, the overhead is easy to process each frame at the same time in real time processing.

상기와 같이 본 발명의 일 실시 예에 따른 서브 블록별 순차적 업데이트 방식을 이용한 저지연 파운틴 코딩 방법의 동작이 이루어질 수 있으며, 한편 상기한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나 여러 가지 변형이 본 발명의 범위를 벗어나지 않고 실시될 수 있다.As described above, the operation of the low-delay fountain coding method using the sequential update method for each sub-block according to an embodiment of the present invention can be made. Meanwhile, the above-described description of the present invention has been described in detail. It may be practiced without departing from the scope of the invention.

Claims (12)

서브 블록별 순차적 업데이트 방식을 이용한 저지연 파운틴 코딩 방법에 있어서, In the low delay fountain coding method using the sequential update method for each sub-block, 입력 심볼을 미리 설정된 개수의 동일한 서브 블록으로 나누는 과정과,Dividing an input symbol into a predetermined number of identical subblocks, 상기 입력 심볼을 미리 설정된 개수의 동일한 서브 블록으로 나눈 것에 대응되도록 상기 입력 심볼의 인코딩 시간을 동일한 서브 시간 구간으로 나누는 과정과, Dividing an encoding time of the input symbol into equal sub-time intervals so as to correspond to dividing the input symbol into a predetermined number of identical sub-blocks; 상기 서브 블록에 해당되는 크기의 심볼을 입력받아, 초기 입력 심볼(Symbols)을 생성하고 상기 초기 입력 심볼을 이용하여 초기 출력 심볼을 생성하여 출력하는 과정과, Receiving a symbol having a size corresponding to the sub-block, generating initial input symbols and generating and outputting an initial output symbol using the initial input symbol; 상기 서브 시간 구간마다 인코딩할 새로운 서브 블록에 해당되는 심볼들을 순차적으로 입력받아 상기 입력 심볼에 추가하고, 가장 이전에 입력받은 서브 블록에 해당되는 심볼을 상기 입력 심볼에서 제거하여 상기 입력 심볼을 업데이트하는 과정과,Sequentially receiving symbols corresponding to a new subblock to be encoded for each sub time interval, adding the symbols to the input symbol, and removing the symbol corresponding to the previously input subblock from the input symbol to update the input symbol. Process, 상기 가장 이전에 입력받은 서브 블록에 관련된 출력 심볼을 업데이트하는 과정과,Updating an output symbol related to the most recently received sub-block; 상기 업데이트된 출력 심볼을 이용하여 패킷을 생성하는 과정을 포함함을 특징으로 하는 코딩 방법. And generating a packet by using the updated output symbol. 제 1항에 있어서, 상기 가장 이전에 입력받은 서브 블록에 관련된 출력 심볼은, The method of claim 1, wherein the output symbol associated with the most recently received sub-block, 가장 이전에 입력받은 서브 블록에 포함된 심볼들중에서 어느 한 심볼과 에지(edge, 계수가 0이 아닌)가 연결된 출력 심볼임을 특징으로 하는 코딩 방법. A coding method, characterized in that the output symbol is connected to one of the symbols included in the previously input sub-block and the edge (the coefficient is non-zero). 제 2항에 있어서, 상기 출력 심볼을 업데이트하는 과정은,The method of claim 2, wherein updating the output symbol comprises: 업데이트할 상기 출력 심볼에 상기 에지가 연결된 입력 심볼과 해당 에지의 계수를 곱하여 나온 수를 업데이트할 상기 출력 심볼에서 빼 출력 심볼을 수정하는 과정과,Modifying an output symbol by subtracting the number obtained by multiplying an input symbol having an edge connected to the output symbol to be updated by a coefficient of the corresponding edge, from the output symbol to be updated; 상기 출력 심볼의 수정에 사용된 입력 심볼과 서브 블록 내에서 같은 위치에 위치한, 새로 입력된 서브 블록에 포함된 입력 심볼에 해당 에지의 계수를 곱하여 나온 수를 상기 수정된 출력 심볼에 더하여 새로운 출력 심볼로 업데이트 하는 과정을 포함함을 특징으로 하는 코딩 방법. The new output symbol is added to the modified output symbol by adding the input symbol used for the modification of the output symbol and the number of the input symbol included in the newly input subblock multiplied by the coefficient of the corresponding edge located at the same position in the subblock. Coding method comprising the step of updating to. 제 2항에 있어서, 상기 출력 심볼을 업데이트하는 과정은, The method of claim 2, wherein updating the output symbol comprises: 상기 업데이트하는 출력 심볼에 상기 에지가 연결된 입력 심볼과 업데이트할 출력 심볼을 XOR하여 나온 값으로 상기 출력 심볼을 수정하는 과정과, Modifying the output symbol with a value obtained by XORing an input symbol having an edge connected to the output symbol to be updated and an output symbol to be updated; 상기 출력 심볼의 수정에 사용된 입력 심볼과 서브 블록 내에서 같은 위치에 위치한, 새로 입력된 서브 블록에 포함된 입력 심볼과 상기 수정된 출력 심볼을 XOR하여 나온 값으로 출력 심볼을 업데이트 하는 과정을 포함함을 특징으로 하는 코딩 방법. Updating the output symbol with a value obtained by XORing the input symbol included in the newly input subblock and the modified output symbol located at the same position in the subblock and the input symbol used to modify the output symbol. Coding method. 제 1항에 있어서, 상기 초기 입력 심볼은, The method of claim 1, wherein the initial input symbol, 상기 서브 블록에 해당되는 크기의 심볼을 입력받고, 나머지 부분은 가상 입력 심볼로 구성하는 것을 특징으로 하는 코딩 방법.Coding method, characterized in that for receiving a symbol of the size corresponding to the sub-block, the remaining portion is composed of a virtual input symbol. 제 5항에 있어서, 상기 가상 입력 심볼은, The method of claim 5, wherein the virtual input symbol, 모두 '1'의 값을 갖거나, 모두 '0'의 값을 갖는 것을 특징으로 하는 코딩 방법. A coding method, characterized in that all have a value of '1' or all have a value of '0'. 제 1항에 있어서, 미리 설정된 시간마다 입력 심볼을 초기 입력 심볼과 같은 형태로 만드는 리프레쉬 블록을 입력받는 과정을 더 포함함을 특징으로 하는 코딩 방법. The coding method as claimed in claim 1, further comprising receiving a refresh block that makes the input symbol the same as the initial input symbol at a predetermined time. 제 1항에 있어서, 현재 손실 복원율을 입력받아 상기 입력받은 손실 복원율에 따라 패러티 심볼의 전송율을 조절하는 과정을 더 포함함을 특징으로 하는 코딩 방법. The coding method of claim 1, further comprising: receiving a current loss recovery rate and adjusting a transmission rate of a parity symbol according to the received loss recovery rate. 서브 블록별 순차적 업데이트 방식을 이용한 저지연 파운틴 디코딩 방법에 있어서, In the low delay fountain decoding method using a sequential update method for each sub-block, 초기 출력 심볼을 이용하여 생성된 패킷을 입력받아 디코딩하여 복원 심볼을 생성하는 과정과, Generating a reconstructed symbol by receiving and decoding a packet generated using an initial output symbol; 인코딩된 서브 블록의 정보를 포함한 패킷 수신시 상기 복원 심볼을 이용하여 원래의 서브 블록을 복원하는 과정과, Restoring the original subblock by using the reconstruction symbol when receiving a packet including information of an encoded subblock; 상기 복원 심볼에서 새로 수신한 서브 블록에 해당되는 심볼들은 추가하고, 가장 이전의 수신한 서브 블록에 해당되는 심볼들은 제거하여 상기 복원 심볼을 업데이트하는 과정을 포함함을 특징으로 하는 디코딩 방법. And adding symbols corresponding to the newly received sub-blocks in the reconstructed symbols, and removing symbols corresponding to the previously received sub-blocks to update the reconstructed symbols. 제 9항에 있어서, 미리 설정된 기준 이하로 손실 복원률이 낮아질 경우 초기 출력 심볼을 입력받기 위한 백 시그널링(Back signaling) 신호를 출력하는 과정을 더 포함함을 특징으로 하는 디코딩 방법. The decoding method of claim 9, further comprising outputting a back signaling signal for receiving an initial output symbol when the loss recovery rate is lower than a preset reference. 제 9항에 있어서, 미리 설정된 시간마다 초기 출력 심볼을 입력받기 위한 백 시그널링 신호를 출력하는 과정을 더 포함함을 특징으로 하는 디코딩 방법. The decoding method of claim 9, further comprising outputting a back signaling signal for receiving an initial output symbol at a predetermined time. 제 9항에 있어서, 현재 디코딩 동작시의 손실 복원율을 조절하기 위해 현재 손실 복원율 정보를 포함한 백 시그널링 신호를 출력하는 과정을 더 포함함을 특징으로 하는 디코딩 방법.10. The method of claim 9, further comprising outputting a back signaling signal including current loss recovery rate information to adjust a loss recovery rate in a current decoding operation.
KR1020080035837A 2007-04-17 2008-04-17 A sub-block based cyclic updating method for low-delay fountain coding KR101451985B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20070037218 2007-04-17
KR1020070037218 2007-04-17

Publications (2)

Publication Number Publication Date
KR20080093923A true KR20080093923A (en) 2008-10-22
KR101451985B1 KR101451985B1 (en) 2014-10-23

Family

ID=40154306

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080035837A KR101451985B1 (en) 2007-04-17 2008-04-17 A sub-block based cyclic updating method for low-delay fountain coding

Country Status (1)

Country Link
KR (1) KR101451985B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101219611B1 (en) * 2010-12-27 2013-01-21 대구대학교 산학협력단 An efficient dissemination protocol for remote update in 6LoWPAN sensor network
WO2015064828A1 (en) * 2013-10-29 2015-05-07 삼성에스디에스 주식회사 Device and method for data transmission
CN114666024A (en) * 2022-03-11 2022-06-24 成都中科微信息技术研究院有限公司 Reverse signaling retransmission method and communication system based on DVB protocol

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950012207B1 (en) * 1993-08-27 1995-10-14 대우전자 주식회사 Car audio ramp fixing device
DE59802796D1 (en) * 1997-03-26 2002-02-28 Siemens Ag METHOD AND SENDING DEVICE FOR SENDING DATA SYMBOLS FROM SUBSCRIBER SIGNALS VIA A RADIO INTERFACE OF A MOBILE COMMUNICATION SYSTEM
BR0205149A (en) * 2001-05-08 2003-06-24 Sansung Electronics Co Ltd Apparatus and method for code generation in a communication system
US7221680B2 (en) * 2003-09-02 2007-05-22 Qualcomm Incorporated Multiplexing and transmission of multiple data streams in a wireless multi-carrier communication system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101219611B1 (en) * 2010-12-27 2013-01-21 대구대학교 산학협력단 An efficient dissemination protocol for remote update in 6LoWPAN sensor network
WO2015064828A1 (en) * 2013-10-29 2015-05-07 삼성에스디에스 주식회사 Device and method for data transmission
CN114666024A (en) * 2022-03-11 2022-06-24 成都中科微信息技术研究院有限公司 Reverse signaling retransmission method and communication system based on DVB protocol
CN114666024B (en) * 2022-03-11 2024-04-30 成都中科微信息技术研究院有限公司 Reverse command retransmission method and communication system based on DVB protocol

Also Published As

Publication number Publication date
KR101451985B1 (en) 2014-10-23

Similar Documents

Publication Publication Date Title
KR102133930B1 (en) Apparatus and method for transmitting and receiving data packet
KR101184242B1 (en) Forward error-correctingfec coding and streaming
EP2290826B1 (en) Lost packet recovery method for packet transmission protocols
KR101205758B1 (en) File download and streaming system
EP1214793B9 (en) Group chain reaction encoder with variable number of associated input data for each output group code
JP5329239B2 (en) Multi-body code generator and decoder for communication systems
WO2018045459A1 (en) Checksum-filtered decoding, checksum-aided forward error correction of data packets, forward error correction of data using bit erasure channels and sub-symbol level decoding for erroneous fountain codes
JP2004517534A (en) Method for multimedia communication over a packet channel
Arslan et al. Concatenated block codes for unequal error protection of embedded bit streams
US20120151303A1 (en) Forward error correction with bit-wise interleaving
JP2023157921A (en) Method, device, system, and medium for self-adaptive system code fec encoding and decoding based on media content
KR101259659B1 (en) A priority-differential non-uniform raptor coding method
KR20130086552A (en) Method for graceful degradation forward error correction and apparatus for performing the same
KR101451985B1 (en) A sub-block based cyclic updating method for low-delay fountain coding
KR20100044685A (en) Single-stage decoder for raptor codes, its method for recovering symbol and wireless communication network using
CN108667557A (en) A kind of adaptive FEC encoder matrix design method based on media content
Nazir et al. Unequal error protection for data partitioned H. 264/AVC video broadcasting
Tan et al. Error resilient layered stereoscopic video streaming
Chang et al. Unequal-protected LT code for layered video streaming
Zhao et al. A new FEC scheme for real-time transmission of high definition video over IP network
Hamzaoui et al. Video Streaming: Reliable Wireless Streaming with Digital Fountain Codes
El-Gohary et al. Study the performance of fountain codes in wireless communication systems
Botos et al. Study of the decoding complexity for rateless erasure codes
Huo et al. Grouped unequal loss protection for scalable media transmission
Sun et al. Polynomial Interpolation codes for reliable multicast data distribution

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
FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190311

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 6