KR20130095231A - 데이터 패킷 송수신 장치 및 방법 - Google Patents
데이터 패킷 송수신 장치 및 방법 Download PDFInfo
- Publication number
- KR20130095231A KR20130095231A KR1020130017119A KR20130017119A KR20130095231A KR 20130095231 A KR20130095231 A KR 20130095231A KR 1020130017119 A KR1020130017119 A KR 1020130017119A KR 20130017119 A KR20130017119 A KR 20130017119A KR 20130095231 A KR20130095231 A KR 20130095231A
- Authority
- KR
- South Korea
- Prior art keywords
- source
- packet
- target packet
- area
- symbol
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/373—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/611—Specific encoding aspects, e.g. encoding by means of decoding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
본 발명은 패킷 송수신 방법 및 장치에 관한 것으로서, 본 발명의 일 실시 예에 따르는 패킷 송신 방법은, 제1 송신 대상 패킷을 소스 블록 중 제1 영역에 배치하는 단계 - 여기서 상기 제1 송신 대상 패킷은 제2 송신 대상 패킷이 배치된 마지막 부분 소스 심볼의 잔여 영역으로부터 시작하여 배치됨 -, 상기 제1 송신 대상 패킷에 관련된 정보를 상기 소스 블록 중 제2 영역에 배치하는 단계, 상기 소스 블록을 순방향 오류 정정(FEC; Forward Error Correction) 부호화하는 단계 및 상기 부호화된 소스 블록을 송신하는 단계를 포함할 수 있다. 본 발명의 일 실시 예에 따르면 제로 패딩 데이터의 양을 줄이면서 오류정정 능력을 개선할 수 있는 효과가 있다.
Description
본 발명은 방송 시스템 혹은 통신 시스템에서 데이터의 송수신에 관한 것으로서, 특히, 채널 또는 네트워크 상에서 데이터의 손실(loss)이 발생할 때 데이터를 효율적으로 복원하기 위한 방법 및 장치에 대한 것이다.
최근의 방송 및 통신 환경은 다양한 멀티미디어 컨텐츠(Contents)가 증가하고 있을 뿐만 아니라 고품질(High Definition: HD) 컨텐츠 또는 초고품질(Ultra High Definition: UHD) 컨텐츠들과 같은 고용량 컨텐츠들의 증가로 네트워크 상에서 데이터 혼잡(Data Congestion)은 점점 더 심화되고 있다. 이러한 상황으로 인하여 전송기(Sender, 예컨대 Host A)가 보낸 컨텐츠들이 수신기(Receiver, 예컨대 Host B)에게 정상적으로 전달되지 않고, 컨텐츠의 일부가 경로(Route)상에서 손실되는 상황이 발생한다. 많은 경우에 데이터는 패킷 단위로 전송되기 때문에 데이터 손실은 패킷 단위로 발생하게 된다. 이와 같은 네트워크 상의 데이터 손실로 인해 수신기는 데이터 패킷을 수신할 수 없게 됨으로써, 상기 손실된 패킷 내의 데이터를 알 수 없다. 따라서 오디오(Audio)의 품질 저하, 비디오(Video)의 화질 열화나 화면 깨짐, 자막 누락, 파일의 손실 등과 같은 다양한 형태의 사용자의 불편이 초래될 수 있다. 이와 같이 이유로 네트워크 상에서 발생된 데이터 손실을 복구하기 위한 기술이 필요하다.
네트워크 상에서 데이터가 손실됐을 때 수신 단에서 손실된 데이터를 복구할 수 있도록 지원하는 기술 중의 하나는, 소스 패킷이라 불리는 다양한 길이를 가질 수 있는 일정 개수의 데이터 패킷들로 소스 블록을 구성하고, 순방향에러정정 (Forward Error Correction: FEC) 부호화를 통해 패리티(Parity) 데이터 또는 복구 패킷(Repair packet)과 같은 복구 정보를 소스 블록에 부가하는 것이다. 수신기에서 손실된 데이터가 있을 경우, 상기 복구 정보를 이용하여 복호(decoding)를 수행할 수 있다.
이때 상기 소스 블록을 구성하는 상기 각각의 소스 패킷의 길이가 가변일 때 소스 블록의 구성 방법에 따라 소스 블록의 일부에 0 값으로 패딩(zero padding)될 수 있으며, 소스 블록의 구성 방법 및 패킷의 길이에 따라 상당한 양의 제로 패딩을 포함할 가능성이 있다. 제로 패딩된 데이터는 송신기에서 전송하지 않는 무의미한 값이지만, 소스 블록을 구성하는 심볼의 개수의 증가에 영향을 주고, 패리티 데이터를 만드는데 관여함으로써, 실제로는 불필요한 정보에 대한 패리티를 생성하여 전송하는 것과 동일한 효과를 유발한다.
따라서, 제로 패딩 데이터를 줄여 부호화 심볼 개수를 줄일 수 있으면서 오류정정 능력을 개선할 수 있는 보다 효율적인 소스 블록 구성 방법이 필요하다.
본 발명의 일부 실시 예들은 상술한 문제점을 해결하기 위하여 제안된 것으로, 방송 혹은 통신 시스템에서 패킷 데이터를 송수신하기 위한 방법 및 장치를 제공하는 데 그 목적이 있다.
또한 본 발명의 일부 실시 예들은 방송 혹은 통신 시스템에서 데이터 손실의 발생시 데이터를 효율적으로 복원하기 위한 방법 및 장치를 제공하는 데 그 목적이 있다.
또한, 본 발명의 일부 실시 예들은 방송 혹은 통신 시스템에서 제로 패딩 데이터의 양을 줄이면서 오류정정 능력을 개선할 수 있는 보다 효율적으로 소스 블록을 구성할 수 있는 방법 및 장치를 제공하는 데 그 목적이 있다.
상술한 문제점을 해결하기 위하여, 본 발명의 일 실시 예에 따르는 패킷 송신 방법은, 제1 송신 대상 패킷을 소스 블록 중 제1 영역에 배치하는 단계 - 여기서 상기 제1 송신 대상 패킷은 제2 송신 대상 패킷이 배치된 마지막 부분 소스 심볼의 잔여 영역으로부터 시작하여 배치됨 -, 상기 제1 송신 대상 패킷에 관련된 정보를 상기 소스 블록 중 제2 영역에 배치하는 단계, 상기 소스 블록을 순방향 오류 정정(FEC; Forward Error Correction) 부호화하는 단계 및 상기 부호화된 소스 블록을 송신하는 단계를 포함할 수 있다.
상술한 문제점을 해결하기 위하여, 본 발명의 일 실시 예에 따르는 패킷 송신 장치는, 제1 송신 대상 패킷을 소스 블록 중 제1 영역에 배치하고, 상기 제1 송신 대상 패킷에 관련된 정보를 상기 소스 블록 중 제2 영역에 배치하는 소스 블록 구성부 - 여기서 상기 제1 송신 대상 패킷은 제2 송신 대상 패킷이 배치된 마지막 부분 소스 심볼의 잔여 영역으로부터 시작하여 배치됨 - , 상기 소스 블록을 순방향 오류 정정(FEC; Forward Error Correction) FEC 부호화부 및 상기 부호화된 소스 블록을 송신하는 송신부를 포함할 수 있다.
상술한 문제점을 해결하기 위하여, 본 발명의 일 실시 예에 따르는 패킷 수신 방법은, 소스 블록을 수신하는 단계, 수신한 소스 블록 중 제1 영역을 순방향 오류 정정(FEC; Forward Error Correction) 복호화 하는 단계, 상기 제1 영역의 복호화 결과로부터 제1 수신 대상 패킷에 관련된 정보를 획득하는 단계, 상기 제1 수신 대상 패킷에 관련된 정보를 이용해서 상기 소스 블록 중 제2 영역 에 배치된 상기 제1 수신 대상 패킷의 배치 정보를 획득하는 단계 - 여기서 상기 제1 수신 대상 패킷은 제2 수신 대상 패킷이 배치된 마지막 부분 소스 심볼의 잔여 영역으로부터 시작하여 배치됨 - , 상기 제2 영역을 FEC 복호화하는 단계 및상기 제2 영역의 배치 정보를 이용하여 상기 제2 영역의 복호화 결과로부터 상기 제1 수신 대상 패킷을 획득하는 단계를 포함할 수 있다.
상술한 문제점을 해결하기 위하여, 본 발명의 일 실시 예에 따르는 패킷 수신 장치는, 소스 블록을 수신하는 수신부, 수신한 소스 블록 중 제1 영역을 순방향 오류 정정(FEC; Forward Error Correction) 복호화 하는 FEC 복호화부,
상기 제1 영역의 복호화 결과로부터 제1 수신 대상 패킷에 관련된 정보를 획득하고, 상기 제1 수신 대상 패킷에 관련된 정보를 이용해서 상기 소스 블록 중 제2 영역 에 배치된 상기 제1 수신 대상 패킷의 배치 정보를 획득하는 소스 블록 해석기를 포함할 수 있다. 여기서 상기 제1 수신 대상 패킷은 제2 수신 대상 패킷이 배치된 마지막 부분 소스 심볼의 잔여 영역으로부터 시작하여 배치된다. 상기 FEC 복호화부는 상기 제2 영역을 FEC 복호화한다. 상기 소스 블록 해석기는 상기 제2 영역의 배치 정보를 이용하여 상기 제2 영역의 복호화 결과로부터 상기 제1 수신 대상 패킷을 획득한다.
본 발명의 일 실시 예에 따르면 데이터 손실의 발생시 데이터를 효율적으로 복원할 수 있다.
또한, 본 발명의 일 실시 예에 따르면 제로 패딩 데이터의 양을 줄이면서 오류정정 능력을 개선할 수 있는 효과가 있다.
도 1a는 본 발명의 일 실시 예에 따르는 송신기(100)의 블록구성도이다.
도 1b는 본 발명의 일 실시 예에 따르는 수신기(110)의 블록구성도이다.
도 2는 전형적인 소스 블록의 구성을 도시한 예이다.
도 3a와 도 3b는 본 발명의 제1 실시 예 및 제2 실시 예에 따른 소스 블록의 구성을 도시한 예이다.
도 4는 본 발명의 제1 실시 예에 따르는 데이터 패킷 배치 방법을 나타낸다.
도 5a 및 도 5b는 본 발명의 제1 실시 예에 따를 경우 소스 심볼 손실을 나타낸다.
도 6은 본 발명의 제2 실시 예에 따르는 소스 블록 구성을 나타낸다.
도 7은 본 발명의 제2 실시 예에 따를 경우 소스 심볼 손실을 나타낸다.
도 8은 본 발명의 제3 실시 예에 따르는 영역1(801) 배치 방법을 나타낸다.
도 9는 본 발명의 일 실시 예에 따르는 FEC 패킷 생성 과정을 나타낸다.
도 10은 본 발명의 일 실시 예에 따르는 송신기(100)의 데이터 송신 과정의 순서도이다.
도 11은 <규칙 4>에 따른 도 10의 (1002) 단계를 보다 세분화한 구체적인 실시 예이다.
도 12는 본 발명의 제2 실시 예에 따를 경우 소스 심볼 손실을 나타낸다.
도 13은 본 발명의 일 실시 예에 따르는 수신기(110)의 패킷 복구 과정의 순서도이다.
도 14는 본 발명의 일 실시 예에 따르는 수신기(1410)의 블록구성도이다.
도 1b는 본 발명의 일 실시 예에 따르는 수신기(110)의 블록구성도이다.
도 2는 전형적인 소스 블록의 구성을 도시한 예이다.
도 3a와 도 3b는 본 발명의 제1 실시 예 및 제2 실시 예에 따른 소스 블록의 구성을 도시한 예이다.
도 4는 본 발명의 제1 실시 예에 따르는 데이터 패킷 배치 방법을 나타낸다.
도 5a 및 도 5b는 본 발명의 제1 실시 예에 따를 경우 소스 심볼 손실을 나타낸다.
도 6은 본 발명의 제2 실시 예에 따르는 소스 블록 구성을 나타낸다.
도 7은 본 발명의 제2 실시 예에 따를 경우 소스 심볼 손실을 나타낸다.
도 8은 본 발명의 제3 실시 예에 따르는 영역1(801) 배치 방법을 나타낸다.
도 9는 본 발명의 일 실시 예에 따르는 FEC 패킷 생성 과정을 나타낸다.
도 10은 본 발명의 일 실시 예에 따르는 송신기(100)의 데이터 송신 과정의 순서도이다.
도 11은 <규칙 4>에 따른 도 10의 (1002) 단계를 보다 세분화한 구체적인 실시 예이다.
도 12는 본 발명의 제2 실시 예에 따를 경우 소스 심볼 손실을 나타낸다.
도 13은 본 발명의 일 실시 예에 따르는 수신기(110)의 패킷 복구 과정의 순서도이다.
도 14는 본 발명의 일 실시 예에 따르는 수신기(1410)의 블록구성도이다.
이하 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
후술되는 본 발명의 일부 실시 예들은 네트워크를 통해 고품질(HD) 컨텐츠 또는 초고품질(UHD) 컨텐츠들과 같은 고용량 컨텐츠 뿐만 아니라, 영상 회의/통화 등과 같은 다양한 멀티미디어 서비스를 송수신 할 수 있는 휴대폰, TV, 컴퓨터, 전자 칠판, 태블릿 PC, 전자책 등의 모든 전자 기기에서 적용될 수 있는 데이터 패킷의 손실을 효율적으로 복구하는 방법을 제안한다. 특히 본 발명의 일부 실시 예들은 데이터 패킷들에 FEC를 적용할 때 소스 블록을 효율적으로 구성하여 복호 성능을 개선하거나 전송 효율(transmission efficiency)을 높일 수 있는 방법을 제안한다. 본 명세서에서 구체적인 FEC 부호화 방법을 언급하고 있지는 않지만, 본 발명은 RS(Reed-Solomon) 부호, LDPC(Low Density Parity Check) 부호, 터보(Turbo) 부호, 랩터(Raptor) 부호, 랩터Q(RaptorQ) 부호, XOR (Single Parity-Check Code), Pro-MPEG(Moving Picture Experts Group) FEC 부호 등 특정 FEC 방법으로 한정되지 않음에 유의하여야 한다.
도 1a는 본 발명의 일 실시 예에 따르는 송신기(100)의 블록구성도이다.
도 1b는 본 발명의 일 실시 예에 따르는 수신기(110)의 블록구성도이다.
이하 도 1a 및 도 1b를 통틀어 도 1이라 칭한다.
도 1a를 참조하면, 송신 장치(100)는 소스 블록 구성기(102)와 FEC 부호화기(103)를 포함한다. 송신 장치(100)는 송신부를 더 포함할 수 있다. 소스 블록 구성기(102)는 일정 개수의 소스 패킷(source packet)(101)으로부터 소스 블록을 구성한다. FEC 부호화기(103)는 상기 소스 블록에 FEC를 적용하여 패리티 데이터 또는 복구 패킷과 같은 복구 정보(104)를 부가한다. 송신부는 복구 정보(104)가 부가된 소스 블록을 전송한다. 소스 패킷(101)은 다양한 길이를 가질 수 있는 데이터 패킷이다.
도 1b를 참조하면, 수신 장치(110)는 소스 블록 해석기(112)와 FEC 복호화기(113)를 포함한다. 수신 장치(110)는 수신부를 더 포함할 수 있다. 수신부는 소스 블록으로 구성된 수신 데이터(111)를 수신하여 소스 블록 해석기(112)에게 전달한다. 소스 블록 해석기(112)는 소스 블록으로 구성된 수신 데이터(111)를 복구 블록이 부가된 소스 심볼들로 구분한다. FEC 복호화기(113)는 소스 심볼들에 대한 FEC 복호화를 수행하여 소스 패킷들(114)을 복구한다. 소스 블록 해석기(112)는 수신 데이터(111)와 함께 혹은 별도로 수신된 시그널링 정보(115)를 이용하여 손실된 데이터를 복구한다.
도 2는 전형적인 소스 블록의 구성을 도시한 예이다.
도 2를 참조하면, 주어진 소스 패킷들은 일정한 폭(width) T를 가지는 2차원 배열(array)로 순차적(sequentially)으로 배열(arrange)된다. 상기 배열의 각 행을 심볼이라 부르고 T 값을 심볼 크기(symbol size)라 부른다. 심볼 크기는 통상적으로 바이트(byte) 또는 비트(bit) 단위로 표현된다. 또한 통상적으로 FEC는 심볼을 기준으로 적용된다.
도 2를 자세히 살펴보면, 소스 블록 구성기(102)는, 해당되는 각각의 데이터 패킷의 플로우 식별자(Flow ID)(201)와 패킷의 길이를 나타내는 정보(202)를 소스 패킷(203)에 덧붙인 다음 첫 번째 행(row)의 첫 번째 열부터 심볼 크기 T를 넘지 않게 순차적으로 배치해 나간다. 여기서 상기 플로우 식별자(201)와 패킷의 길이를 나타내는 정보(202)는 시스템에 따라 둘 중에 하나만 포함될 수도 있다. 또는 플로우 식별자(201)와 패킷의 길이를 나타내는 정보(202) 둘 모두 생략될 수도 있다. 또한 소스 패킷의 길이 정보는 특별한 언급이 없으면 통상적으로 바이트 단위 기준의 길이를 나타낸다.
상기 부가 정보(201, 202)가 부가된 각각의 모든 소스 패킷은 항상 각 행의 첫 번째 열에서부터 순차적으로 배치되며, 부가 정보(201,202)를 포함한 소스 패킷의 길이가 심볼 크기 T의 배수가 아닐 경우에는 소스 패킷이 배치된 마지막 행에서 소스 패킷의 데이터가 배치된 이후의 나머지 부분들은 모두 0 값으로 제로 패딩(204)된다. 주어진 소스 패킷들에 대해 상기 과정들을 모두 마친 후 K개의 행들로 이루어진 배열을 소스 블록(206)이라고 한다.
소스 블록(206) 내의 K개의 행들은 FEC 부호화를 적용하기 위한 K개의 소스 심볼들로 간주될 수 있고, K개의 소스 심볼에 FEC 부호화를 적용하여 복구(혹은 패리티) 심볼(205 or 207)을 생성하게 된다. 상기 소스 심볼과 복구 심볼을 통칭하여 부호화 심볼이라고 칭한다.
이상과 같이 소스 블록을 구성하는 경우 제로 패딩의 길이가 길어질 수 있다. 따라서 후술되는 실시 예에서는 제로 패딩 데이터의 양을 줄이면서 오류정정 능력을 개선할 수 있는 효율적인 소스 블록의 구성 방법을 제공한다.
도 3a와 도 3b는 본 발명의 제1 실시 예 및 제2 실시 예에 따른 소스 블록의 구성을 도시한 예이다. 도 3a와 도 3b를 통틀어 도 3이라고 칭한다.
도 3을 참조하면, 본 발명의 제1 실시 예에 따르는 소스 블록은 열의 개수가 T1(303)인 영역1(301)과 열의 개수가 T2(304)인 영역2(302)로 구분된다. 각 영역(301, 302)에는 서로 다른 특성을 가지는 데이터들이 배치된다. 본 발명에서는 각 영역의 열의 개수는 특별한 언급이 없을 경우에는 편의상 각 영역의 부분 소스 심볼의 바이트 단위의 길이를 의미하나, 그 단위를 한정할 필요는 없다. 여기서 소스 블록의 각 행은 소스 심볼을 나타내며, 각 영역 내의 행들은 부분 소스 심볼로 정의할 수 있다.
상기 도 3의 소스 블록을 참조하면, 영역1(301)은 크기가 T1(303)인 K개의 부분 소스 심볼에 해당되며 영역2(302)는 크기가 T2(304)인 K개의 부분 소스 심볼에 해당된다. K 값은 유연하게(flexible) 값이 바뀔 수 있다. 결과적으로 도 3의 소스 블록은 T1 + T2 = T의 관계가 있는 크기가 T(305)인 소스 심볼에 대응됨을 알 수 있다. T1, T2, T 사이의 관계는 어느 2개의 값이 정해지면 다른 하나의 값은 자연스럽게 결정됨을 알 수 있다. 본 명세서에서는 하나의 소스 블록을 심볼 크기 T를 가지는 2차원 배열을 부분 심볼 크기 T1(303), T2(304)를 가지는 2개의 영역으로 구분한 경우에 대해서만 설명하지만, 일반적으로 하나의 소스 블록은 2보다 더 많은 수의 영역으로 구분될 수도 있음을 밝혀둔다.
상기 도 3을 참조하면, 주어진 소스 패킷(307)에 대한 부가 정보와 영역2(302)에 데이터를 배치하는 규칙에 따라 소스 블록의 각 영역에 배치하는 데이터를 적절히 나눌 수 있다. 개념적인 예로서 상기 도 3b를 살펴보면, 소스 블록 구성기(102)는 소스 패킷(307)들에 대응되는 플로우 식별자나 길이 정보와 같은 부가 정보 및/또는 상기 소스 패킷(307)의 일부 데이터를 추출하여 영역1(301)에 배치할 데이터(308)을 생성할 수 있다. 소스 블록 구성기(102)는 상기 영역1(301)에 배치될 데이터(308)에 포함된 소스 패킷(307)의 일부 정보를 제외한 나머지 데이터(309)를 영역2(302)에 대응시킨다. 일반적으로 소스 패킷(307)과 데이터(309)은 서로 차이가 있을 수 있다. 그러나 많은 경우에는 소스 패킷(307)에서 일부 정보를 제외하지 않고 소스 패킷(307)을 그대로 데이터(309)로서 설정하여 영역2(302)에 배치될 수 있다. 본 실시 예에서는 설명의 편의를 위해 특별한 언급이 없을 경우에는 영역1(301)에는 영역2(302)에 배치될 소스 패킷(307)들의 부가 정보에 대한 데이터만 배치하고 상기 소스 패킷(307)의 일부 정보는 영역1(301)에 배치될 데이터(308)에 포함되지 않는 것으로 가정한다. 하지만 본 발명의 권리범위가 이에 한정되는 것은 아니다.
도 4는 본 발명의 제1 실시 예에 따르는 데이터 패킷 배치 방법을 나타낸다. 도 4를 참조하여 데이터(309) (또는 소스 패킷(307))에 해당되는 데이터 패킷을 영역2(302)에 배치하는 방법에 대해 살펴본다. 상기 도 4의 데이터 패킷 규칙을 정리하면 아래와 같이 정리할 수 있다.
< 규칙 1 >
소스 블록 구성기(102)는 각 부호화 심볼의 특정 부분에 해당하는 영역1(401)에는 영역2(402)에 저장될 각 소스 패킷 또는 그 일부의 길이를 나타내는 정보(S)를 순차적으로 배치한다. 소스 블록 구성기(102)는 상기 영역1(401)에서 길이 정보가 배치된 후 남는 부분은 사전에 정해진 값(예: 0)으로 패딩 한다. (T1의 크기에 따라 배치 형태는 달라질 수 있다.)
< 규칙 2 >
소스 블록 구성기(102)는 영역2(402)에는 각 소스 패킷 또는 그 일부를 영역에서 벗어나지 않도록 연속적으로 배치한다. 모든 소스 패킷의 배치가 끝난 후 상기 영역2(402)에서 남는 부분은 사전에 정해진 값(예: 0)으로 패딩 한다.
도 4를 참조하면 도 2의 방식과는 달리 상기 데이터 패킷(309)들이 제로 패딩 데이터 없이 영역 연속적으로 배치됨을 알 수 있다. 한 소스 패킷이 배치된 경우 해당 소스 패킷이 배치된 마지막 소스 심볼에 공간이 남아 있다면 해당 소스 심볼에 다음 소스 패킷이 이어서 배치된다. 단, 영역2(402)의 마지막 부분에 대해 필요에 따라 제로 패딩이 적용될 수 있다. 도 4에 나타낸 방식에 따르면, 배치된 데이터 패킷들 사이에 제로 패딩이 없기 때문에 영역2(402)내에 불필요한 데이터가 최소한으로 배치됨을 알 수 있다. 따라서 동일한 소스 패킷이 주어져있다고 해도 도 2에 나타낸 방식에 비해 소스 심볼의 개수 K가 크게 줄어들 수 있다.
하지만, 도 4와 같은 데이터 패킷 배치 방법은 부분 소스 심볼 단위의 손실(loss) 개수가 증가하는 효과가 있는 단점이 있다. 여기서 부분 소스 심볼 단위의 손실은 영역2(402) 내에서 하나의 부분 소스 심볼 내에서 데이터 일부가 손실될 경우에 부분 소스 심볼 전체를 손실된 것으로 간주함을 의미한다.
도 5a 및 도 5b는 본 발명의 제1 실시 예에 따를 경우 소스 심볼 손실을 나타낸다. 도 5a 및 도 5b를 통틀어 도 5라고 지칭한다.
상기 도 3의 2번째 소스 패킷(B), 4번째 소스 패킷(D)이 전송 도중에 손실되었다고 가정할 때 상기 도 5a 내에서 부분 소스 심볼 단위(행 단위)의 손실 개수는 7개(Lost S-1 ~ Lost S-7)임을 알 수 있다. 참고로 도 2와 같은 배치 방식을 적용할 경우에는 부분 소스 심볼 단위의 손실 개수는 5개가 됨을 쉽게 알 수 있다. 따라서 만일 영역2(402)에 대한 FEC 복호화를 수행하는 기본 단위를 부분 소스 심볼로 설정할 경우에는 7개의 심볼 손실을 고려하여 복호화를 수행해야 한다. 따라서 상기 도 4와 같이 영역2(402)에 대한 데이터 패킷 배치 방식을 적용할 경우에는 심볼 단위의 FEC 복호를 수행하게 될 경우에 성능 열화가 발생할 가능성이 높다.
반면에 도 5b를 살펴보면, 손실을 계산하는 단위를 바이트 단위로 변경할 경우에는 부분(501)은 4개(바이트)의 손실, 부분(502)은 3개(바이트)의 손실, 부분(503)은 5개(바이트)의 손실이 발생했다고 판단할 수 있다. 즉, FEC 복호 단위를 바이트 단위로 설정할 경우에는 최악의 경우(worst case)에 대한 손실의 개수가 5개이므로 심볼 단위 FEC 복호를 수행할 때보다 더 우수한 성능을 얻을 수 있음을 쉽게 예상할 수 있다.
상기 도 5b의 예에서는 바이트 단위의 최악의 손실 개수가 5개이어서 도 2와 같은 방식의 부분 소스 심볼 단위의 손실 개수 5개와 동일하지만, 일반적으로는 상기 도 4 및 도 5의 배치 방식을 통한 바이트 단위의 최악의 손실 개수가 도 2와 같은 배치 방식을 통한 부분 소스 심볼 단위의 손실에 비해 크게 감소함을 전산 실험 등을 통해 쉽게 확인할 수 있다.
결과적으로 상기 도 4에 나타낸 영역2(402)에 대한 데이터 패킷 배치 방식을 적용할 경우에는 제로 패딩이 크게 줄어들기 때문에 소스 심볼의 개수가 줄어들며, 바이트 단위의 손실 개수 또한 크게 줄어들기 때문에 바이트 단위의 FEC 복호를 수행할 경우에 우수한 성능을 얻을 수 있다. 다른 한편으로 우수한 성능을 얻을 수 있다는 것은 동일한 성능을 얻기 위해서 필요한 부가정보(redundancy)가 적게 필요하다는 것을 의미한다. 따라서 도 4의 방식에 따르면 전송되는 복구 패킷의 개수가 줄어들어 전체 전송을 위한 오버헤드(overhead)가 줄어드는 효과가 있다.
반면에 영역2(402)에 대한 부분 소스 심볼 단위의 FEC 복호는 부분 소스 심볼 단위로 볼 때 오류 패턴이 모두 동일하여 FEC 복호가 단순한 장점이 있다. 그런데, 바이트 단위 FEC 복호는 바이트 단위의 손실 패턴이 영역2(402) 전체에 대해 일반적으로 동일하지 않은 특성으로 인해 FEC 복호 과정에서 보다 복잡한 과정이 요구되어 복호 복잡도는 다소 증가하는 단점이 있다.
도 6은 본 발명의 제2 실시 예에 따르는 소스 블록 구성을 나타낸다. 도 3a 및 도 3b에 대한 설명은 제2 실시 예의 설명에도 적용된다.
상기 도 4의 배치 방식이 성능 개선에는 유리하나 복호 복잡도 증가의 단점을 가지는 문제점을 해결하기 위하여 도 6에 본 발명의 제2 실시 예에 따른 소스 블록 구성 방법을 도시하였다. 상기 도 6의 배치 규칙을 정리하면 아래와 같이 정리할 수 있다.
< 규칙 3 >
소스 블록 구성기(102)는 각 부호화 심볼의 특정 부분에 해당하는 영역1(601)에는 영역2(602)에 저장될 각 소스 패킷 또는 그 일부의 길이를 나타내는 정보(S)를 순차적으로 배치한다. 상기 영역1(601)에서 남는 부분은 사전에 정해진 값(예: 0)으로 패딩한다. (T1의 크기에 따라 배치 형태는 달라질 수 있다.) 도 3을 참조하여 상술한 바와 같이 변형 예에 따르면 영역1(601)에는 플로우 식별자나 길이 정보와 같은 부가 정보 및/또는 상기 소스 패킷(307)의 일부 데이터가 저장될 수도 있다.
< 규칙 4 >
소스 블록 구성기(102)는 영역2(602)에는 각 소스 패킷 또는 그 일부를 영역에서 벗어나지 않도록 배치한다. 첫 번째 소스 패킷 또는 그 일부는 영역2(602)의 시작점부터 배치된다. 두 번째 이후의 소스 패킷 또는 그 일부는 그 이전에 배치한 소스 패킷 또는 그 일부의 배치 상황에 따라 가변적으로 배치되는데 그 규칙은 다음과 같다.
1) 소스 블록 구성기(102)는 이전에 배치됐던 이전 소스 패킷 또는 그 부분 소스 패킷이 배치된 소스 심볼 중 마지막 소스 심볼의 이전 (부분) 소스 패킷의 배치된 후의 남은 공간으로부터 시작되는 빈 공간에 다음 소스 패킷 또는 다음 부분 소스 패킷을 배치했을 경우에 추가적으로 발생하는 영역2(602)에 대한 부분 소스 심볼의 개수(추가로 필요한 행의 개수)를 카운트한다.
2) 소스 블록 구성기(102)는 이전에 배치됐던 소스 패킷 또는 그 일부에 대응되는 영역2(602) 내의 마지막 부분 소스 심볼 다음의 부분 소스 심볼의 시작점(즉, 다음 행)부터 다음 소스 패킷 또는 그 일부를 배치했을 경우에 추가적으로 생성되는 영역2(602)내의 부분 소스 심볼의 개수(추가로 필요한 행의 개수)를 카운트한다.
3) 소스 블록 구성기(102)는 1)과 2)에서 계산된 추가적 부분 소스 심볼의 개수가 동일할 경우에는 2)의 방법으로 배치한다. 만일 1)에서 계산된 수가 2)에서 계산된 수 보다 작으면 소스 블록 구성기(102)는 1)의 방법으로 배치한다.
4) 소스 블록 구성기(102)는 모든 소스 패킷의 배치가 끝난 후 상기 영역2(602)에서 남는 부분을 사전에 정해진 값(예: 0)으로 패딩한다.
간단한 예로서 도 6을 참조하여 각 소스 패킷 또는 그 일부를 배치하는 과정을 살펴보자. 먼저 상기 2번째 소스 패킷(B) 또는 그 일부(B')를 <규칙 4>의 단계 1)에 따라 상기 1번째 소스 패킷(A) 또는 그 일부(A') 직후에 연속적으로 배치할 경우에는 영역2(602)내에서 증가하는 부분 소스 심볼의 개수는 2개임을 쉽게 예상할 수 있다. 다음으로 도 6에 나타낸 바와 같이 상기 2번째 소스 패킷(B) 또는 그 일부(B')를 <규칙 4>의 2)처럼 상기 1번째 소스 패킷(A) 또는 그 일부(A')가 배치된 다음 행에 배치할 경우에도 역시 영역2(602)내에서 증가하는 부분 소스 심볼의 개수는 2개임을 쉽게 알 수 있다. 즉, 전자와 후자의 경우에 증가하는 부분 심볼의 개수가 동일하기 때문에 2번째 소스 패킷(B) 또는 그 일부(B')sms 상기 도 6에 나타낸 것처럼 1번째 소스 패킷(A) 또는 그 일부(A')가 배치되는 소스 심볼의 다음 소스 심볼(다음 행)에 배치한다.
다음으로 3번째 소스 패킷(C) 또는 그 일부(C')을 <규칙 4>의 1)처럼 상기 2번째 소스 패킷(B) 또는 그 일부(B') 직후에 연속적으로 배치할 경우에는 도 6에 나타낸 바와 같이 영역2(602)내에서 증가하는 부분 소스 심볼의 개수는 1개임을 쉽게 알 수 있다. 다음으로 상기 3번째 소스 패킷(C) 또는 그 일부(C')를 <규칙 4>의 2)에 따라 상기 2번째 소스 패킷(B) 또는 그 일부(B')가 배치된 다음 행에 배치할 경우에는 영역2(602)내에서 증가하는 부분 소스 심볼의 개수가 2개임을 쉽게 예상할 수 있다. 즉, 전자와 후자의 경우에 증가하는 부분 심볼의 개수를 비교하면 전자가 더 작기 때문에 3번째 소스 패킷(C) 또는 그 일부(C')는 상기 도 6에 나타낸 것처럼 상기 2번째 소스 패킷(B) 또는 그 일부(B') 직후에 배치된다.
마찬가지로 4번째 소스 패킷(D) 또는 그 일부(D')을 <규칙 4>의 1)처럼 상기 3번째 소스 패킷(C) 또는 그 일부(C') 직후에 연속적으로 배치할 경우에는 영역2(602)내에서 증가하는 부분 소스 심볼의 개수는 3개임을 쉽게 예상할 수 있다. 다음으로 도 6에 나타낸 바와 같이 상기 4번째 소스 패킷(D) 또는 그 일부(D')를 <규칙 4>의 2)에 따라 상기 3번째 소스 패킷(C) 또는 그 일부(C')가 배치된 다음 행에 배치할 경우에는 영역2(602)내에서 증가하는 부분 소스 심볼의 개수가 3개임을 쉽게 알 수 있다. 즉, 전자와 후자의 경우에 증가하는 부분 심볼의 개수가 동일하기 때문에 4번째 소스 패킷(D) 또는 그 일부(D')는 상기 도 6에 나타낸 것처럼 3번째 소스 패킷(C) 또는 그 일부(C')가 배치되는 소스 심볼의 다음 소스 심볼(다음 행)에 배치된다.
마찬가지로 5번째 소스 패킷(E) 또는 그 일부(E')는 상기 도 6에 나타낸 것처럼 4번째 소스 패킷(D) 또는 그 일부(D')가 배치되는 소스 심볼의 다음 소스 심볼(다음 행)에 배치된다.
상기 도 6과 같은 데이터 패킷 배치 방법은 데이터 패킷들의 배치 과정에서 제로 패딩이 들어갈 경우도 있고 제외될 경우도 있기 때문에 도 4와 같은 배치 방식에 비해서 전체 소스 심볼의 개수 K는 다소 증가한다. 하지만 도 2와 같은 배치 방식에 비해서는 제로 패딩이 크게 줄기 때문에 소스 심볼의 개수 또한 크게 줄어든다.
도 7은 본 발명의 제2 실시 예에 따를 경우 소스 심볼 손실을 나타낸다.
도 7에서, 도 3의 2번째 소스 패킷(B)과 4번째 소스 패킷(D)이 전송 도중에 손실되었다고 가정하였다. 도 5의 경우(제1 실시 예)에 부분 소스 심볼 단위의 손실 개수가 7개였던 것과 달리, 도 7의 경우(제2 실시 예) 도 2와 같이 배치한 경우와 마찬가지로 부분 소스 심볼 단위의 손실 개수가 5개임을 알 수 있다. 따라서 제2 실시 예에 따를 경우 FEC 복호화 과정에서 심볼 단위 복호를 적용하여도 패킷 손실에 따르는 큰 성능 손실이 없음을 알 수 있다. 일반적으로 도 2와 같이 배치한 경우와 도 6과 같이 배치한 경우에 심볼 단위의 손실 개수는 거의 차이가 없다.
정리하여 말하면, 상기 도 6과 같은 방식으로 데이터를 배치할 경우에는 규칙 4에 따라 제로 패딩을 적절히 적용하여 소스 심볼의 개수가 줄어들 수 있다. 또한 도 6의 FEC 디코딩 방식에 따르면 심볼 단위의 손실된 개수가 일반적으로 도 2의 경우와 차이가 거의 없기 때문에 심볼 단위 FEC 복호를 수행하여도 성능 열화가 없다. 만일 복호 복잡도 증가를 감수하고 바이트 단위 FEC 복호 방법을 적용한다면 바이트 단위의 손실 또한 상당히 줄어들기 때문에 우수한 성능을 얻을 수 있다. 따라서 복호 복잡도와 성능과의 trade-off 관계를 고려하여 복호 방법을 적절히 선택할 수 있는 장점이 있다.
다음으로 도 3에서 소스 패킷(307)들에 대응되는 플로우 식별자나 길이 정보와 같은 부가 정보 또는 상기 소스 패킷(307)의 일부 데이터를 추출하여 얻어진 데이터(308)을 영역1(301)에 배치하는 방법을 살펴보자.
만일 크기가 T2(304)인 영역2(302)에 데이터들의 배치가 끝났을 때 부분 소스 심볼의 개수가 K라 하면, 너비가 T1인 영역1(301)에 대한 부분 소스 심볼의 개수도 K가 된다. 이때 만일 영역1에 배치될 데이터(308)의 총 크기를 N_Total_Data1라 할 때, N_Total_Data1의 값이 K*T1에 비해 너무 작으면 영역1(301)에는 (306)과 같이 많은 양의 불필요한 데이터들이 필요하게 된다. 뒤에서 다시 설명하겠지만, 일반적으로 영역1(301)은 영역2(302)에 비해서 보다 높은 로버스트니스(robustness)가 요구 되는데 이로 인해 제로 패딩된 데이터들(306)이 항상 필요하다. 하지만 제로 패딩된 데이터의 양이 너무 많으면 본 발명의 목적 중 하나인 제로 패딩을 줄이고자 하는 목적에 반한다. 따라서 K 값과 N_Total_Data1이 주어졌을 때 T1을 적절히 조절하여 N_Total_Data1와 K*T1의 값의 차이가 요구되는 범위로 한정하는 방법이 필요하다. 이에 따라 본 발명에서는 다음과 같이 T1 값을 결정하는 일 실시 예를 제안한다.
먼저 영역1(301) 내에 배치될 수 있는 데이터의 총 양에 대해 시스템에서 요구하는 영역1(301)에 대한 로버스트니스로 인해 제로 패딩과 같은 불필요한 데이터(306)의 최소 한계 비율을 R_padding이라고 하자. 제로 패딩된 위치의 데이터는 수신단에서 FEC 복호를 수행할 때 알려진 정보(known information)로서 활용될 수 있기 때문에 제로 패딩된 데이터가 많을수록 로버스트니스는 높아짐은 자명하다. 반면에 제로 패딩된 데이터가 많을수록 소스 블록 내에 불필요한 데이터가 많기 때문에 효율성은 떨어진다. 결과적으로 다음과 같은 수식이 성립함을 알 수 있다.
< 수학식 1 >
(K×T1-N_Total_Data1)/K×T1 ≥ R_padding
T1 ≥ N_Total_Data1/((1-R_padding)×K)
즉, T1 값은 시스템에서 요구하는 영역1(301)의 로버스트니스를 만족시키기 위해 <수학식 1>을 만족해야 한다. 하지만 T1 값이 제한 없이 커질 경우에는 로버스트니스는 점점 좋아지나 소스 블록의 효율성이 감소하기 때문에 T1은 < 수학식 1>을 만족하는 최소 정수로 선택하는 것이 합리적이다.
구체적인 예로서 만일 N_Total_Data1 = 2,400 바이트, R_padding = 0.2, K = 950으로 주어졌다면, T1≥2400(1-0.2)×950=(약)3.16이 성립하므로 T1 = 4로 결정된다.
도 8은 본 발명의 제3 실시 예에 따르는 영역1(801) 배치 방법을 나타낸다.
이와 같이 T1 값이 정해지면, 도 8에 나타낸 것처럼 플로우 식별자나 길이 정보와 같은 부가 정보 또는 상기 소스 패킷(307)의 일부 데이터를 추출하여 얻어진 데이터(308)를 영역1(801)에 행 방향으로 순차적으로 연속하여 배치한다. 통상적으로 상기 데이터 (308)을 구성하는 플로우 식별자나 길이 정보와 같은 부가 정보는 영역2(302)에 배치되는 각 소스 패킷 또는 소스 패킷의 일부가 배치되는 순서와 동일한 순서로 구성한다. 각 소스 패킷에 대해 모두 배치가 끝나면 필요한 만큼 제로 패딩(803)을 한다. 통상적으로 상기 제로 패딩 데이터(803)은 전체 소스 블록 크기에 비해 통상적으로 작은 크기가 되도록 R_padding을 적절히 설정하기 때문에 소스 블록의 크기에 큰 영향을 주지 않는다.
이상에서 설명한 바와 같이 영역1(301)과 영역2(302)에 대한 데이터 배치 방법이 결정된 이후 소스 블록 구성 과정을 정리하면 다음과 같다.
Step 1) 송신기(100)는 순서를 가지는 소정의 개수의 소스 패킷들을 사전에 결정된 T2 값과 정해진 규칙에 따라 영역2(302)에 적절히 배치한다. 배치 과정에서 필요에 따라 제로 패딩이 포함될 수 있다.
Step 2) 송신기(100)는 Step 1)이 끝난 후 결정된 심볼의 개수 K값과 사전에 시스템에서 설정된 영역1(301)의 제로 패딩의 최소 한계 비율 R_padding 값을 통해 적절한 T1값을 구하고 영역1의 범위를 결정한다.
Step 3) 송신기(100)는 영역2(302)에 소스 패킷들이 배치된 순서대로 상기 소스 패킷들의 부가 정보 또한 동일한 순서로 영역1(301)에 배치한다.
참고로 본 명세서에서는 상기 소스 블록 구성 과정의 Step 1)에서 하나의 소스 블록 내의 영역2(302)에 배치할 소스 패킷들을 결정하는 방법에 대해서는 구체적으로 설명하지 않았다. 실제로 시스템에 따라서 하나의 소스 블록에 대응되는 소스 패킷들을 결정하는 방법은 다양하게 설정될 수 있다.
한 가지 구체적인 실시 예에 따르면, 시스템에서 T2 값이 설정되어 있고 하나의 소스 블록에 대한 소스 심볼의 최대 값 K_max 또한 시스템 상에서 정해져 있다. 이 경우 시스템에서 전송하고자 하는 소스 패킷들을 <규칙 2> 또는 <규칙 4>에 따라 영역2(302)에 소스 패킷들을 배치한다고 가정했을 때 영역2(302) 내의 소스 패킷에 대응되는 데이터의 양은 영역2(302)의 크기 T2 * K_max 바이트가 넘지 않아야 한다. 따라서 영역2(302) 내의 소스 패킷의 수는 영역2(302) 내의 소스 패킷에 대응되는 데이터의 양이 영역2(302)의 크기가 넘지 않는 한도에서 최대의 값으로 정해질 수 있다. 하지만, 본 명세서에서는 소스 패킷들 또는 그 개수를 결정하는 방법을 한정하지는 않는다.
송신기(100)는 순서를 가지는 소정의 개수의 소스 패킷들로부터 위와 같이 구성된 소스 블록을 구성하고, 상기 소스 블록에 대해 FEC 부호화를 수행하여 순서를 가지는 소정 개수의 복구 심볼(또는 패킷)들을 생성한다. 여기서 복구 심볼의 크기는 통상적으로 소스 심볼의 크기와 동일한 T(305) 크기를 가진다.
도 9는 본 발명의 일 실시 예에 따르는 FEC 패킷 생성 과정을 나타낸다. 도 9에 나타낸 것처럼 소스 패킷들(901)과 복구 심볼들(902)은 패킷화하여 전송된다. 각각의 소스 패킷에 소스 FEC 페이로드 ID(Source FEC Payload ID)를 추가하면 FEC 패킷(903)이 된다. 하나 또는 그 이상의 복구 심볼에 대해 하나의 복구 FEC 페이로드 ID(Repair FEC Payload ID)를 추가하면 하나의 FEC 패킷(904)이 된다. 패킷으로 형성된 FEC 패킷들(903, 904)은 전송된다.
여기서 FEC 패킷들(903)의 소스 FEC 페이로드 ID는 에 나타낸 바와 같이 SBN(Source Block Number)와 SPS(Source Packet Sequence)를 포함한다. SPS에는 각각의 FEC 패킷의 순서를 위한 시퀀스 번호(Sequence Number)가 할당된다. 또한 FEC 패킷들(904)의 복구 FEC 페이로드 ID는 SBN, ESI(Encoding Symbol ID), SBL(Source Block Length)을 포함한다. ESI에는 영역1(301)의 FEC 복호를 위해 필요한 복구 심볼들의 ID가 포함된다. SBL에는 소스 블록을 위한 소스 패킷들의 개수가 포함된다. 한 가지 유의할 점은 상기 FEC 패킷들(903, 904)에는 소스 블록 구성 시에 영역1(301)에 배치되었던 부가 데이터들(308)이 포함되지 않아도 된다는 점이다. 즉, 상기 부가 데이터(308)와 같은 부가 데이터는 통상적으로 소스 블록 구성과 복구 심볼을 생성할 경우에만 사용된다. 그 이유는 플로우 식별자나 영역2(302)에 배치되는 소스 패킷들의 길이 정보들은 UDP 패킷을 형성할 때 포함되는 데이터이므로 UDP 패킷을 문제없이 수신했을 경우에 자연스럽게 얻을 수 있는 정보이기 때문이다. 이로 인해 상기 부가 정보(308)들은 통상적으로 상기 FEC 패킷에 반드시 포함시키지 않아도 된다.
위에서 설명한 본 발명의 일 실시예에 따라 소스 패킷 및 복구 패킷에 부가되는 시그널링(signaling) 정보에 대해 보다 자세히 살펴보자.
소스 블록 번호(Source Block Number: SBN)는 해당 소스 패킷들(307)과 복구 패킷들이 대응되는 소스 블록을 지시한다. 소스 패킷 수열(Source Packet Sequence: SPS)은 영역2(302)에 배치되는 각 소스 패킷의 순서에 따라 패킷마다 부여된 번호이다. 또한 복구 패킷의 부호화 심볼 식별자(Encoding Symbol ID: ESI)는 상기 복구 패킷이 포함되어 있는 복구 심볼의 순서를 나타낸다. 또한 소스 블록을 구성하는 소스 패킷의 개수를 지시하는 소스 블록 길이(Source Block Length: SBL)가 전송되어, 영역1(301)에 배치된 총 부가 정보들의 양 또는 길이 등을 알 수 있기 때문에 상기 영역1(301)에 대한 FEC 복호를 수행할 때 제로 패딩과 실제 데이터의 경계를 구분하는데 사용될 수 있다. 참고로 각 시그널링은 통상적으로 2~3 바이트 단위로 구성되나 반드시 이에 한정될 필요는 없다.
도 10은 본 발명의 일 실시 예에 따르는 송신기(100)의 데이터 송신 과정의 순서도이다.
송신기(100)는 가장 먼저 T2 값을 설정하고 SBN 값을 초기화한다 (1001). 다음으로 송신기(100)는 상기 설정된 T2 값과 <규칙 4> (또는 <규칙2>)에 따라 주어진 소스 패킷들을 소스 블록 내 영역2(802 또는 402)에 배치한다 (1002). 상기 (1002) 단계에서는 영역2(802 또는 402)에 소스 패킷 (또는 데이터 패킷)의 배치가 모두 끝나면 소스 심볼의 개수 K도 함께 결정됨에 유의한다.
다음으로 송신기(100)는 상기 영역2(802 또는 402)에 배치된 소스 패킷들에 대한 부가 데이터의 총 크기 N_Total_Data1을 계산한다 (1003). 예를 들어 상기 영역2(802)에 배치된 소스 패킷의 개수가 N_packet이고, 각 소스 패킷에 대한 부가 정보의 크기가 3 바이트로 일정하다면, N_Total_Data1 = 3*N_Packet이 된다. 다음으로 영역1(801)에 대한 최소 제로 패딩 비율 R_padding 값으로부터 <수학식 1>을 만족하는 T1의 최소 정수 값을 구한다 (1004). 상기 (1004) 단계는 영역1(801)의 크기를 결정하는 단계이다. 다음으로 상기 (1004)단계에서 결정된 T1 값과 소스 심볼의 개수 K, 그리고 <규칙 3>에 따라 영역1(801)에 부가 데이터를 배치하고 필요에 따라 제로 패딩한다 (1005). 상기 (1005) 단계가 모두 완료되면 하나의 소스 블록이 완성된다. 상기 (1003), (1004) 단계의 경우 시스템에 따라 생략 가능하며 (1005) 단계는 영역1(801)에 부가 데이터를 배치하는 방법에 따라 변경할 수 있다. 예를 들어 시스템에서 영역1(801)에 부가 데이터를 배치할 때 도 4나 도 6처럼 <규칙 1>만 적용하여 각 부가 데이터 크기와 동일하게 T1 값을 고정하여 배치하기로 약속된 경우에는 상기 (1003), (1004) 단계의 동작은 생략하고 (1005) 단계를 상기 <규칙 1>에 따라 상기 부가 데이터를 영역1(801)에 배치하는 과정으로 대체할 수 있다.
상기 (1005) 단계가 완료된 이후 송신기(100)는 단계 1008에서 송신측에서 추가적으로 전송하고자 하는 데이터가 존재하는지, 즉 추가적 소스 블록 구성이 필요한지 판단한다. 추가적 소스 블록 구성이 필요한 경우 과정은 단계 1009로 진행한다. 단계 1009에서 송신기(100)는 SBN을 1 증가시킨다. 이후 단계 1002 내지 단계 1005의 과정이 모든 전송 대상 데이터가 소스 블록으로 구성될 때까지 반복된다.
추가적 소스 블록 구성이 필요없다면 과정은 단계 1006으로 진행한다. 송신기(100)는 생성된 소스 블록에 대해 FEC 부호화를 진행하여 복구 심볼을 생성한 다음(1006), 전송을 위한 FEC 패킷화 한 다음 FEC 부호화 과정을 종료한다 (1007). 상기 FEC 패킷화 과정은 각 소스 패킷에 SBN 및 SPS 등을 추가하는 과정과 복호 심볼을 패킷화하고 SBN, ESI, SBL 등의 시그널링 정보를 추가하는 과정을 포함한다. 참고로 소스 패킷이나 복구 심볼들의 FEC 패킷화 과정에서 플로우 식별자나 영역2(802)에 배치될 소스 패킷들의 길이 정보와 같은 부가 정보 등은 포함되지 않음을 알 수 있다..
도 11은 <규칙 4>에 따른 도 10의 (1002) 단계를 보다 세분화한 구체적인 실시 예이다.
먼저 송신기(100)는 상기 도 10의 (1001) 단계에서 설정된 T2 값에 따라 하나의 소스 블록에 배치할 1번째 소스 패킷을 <규칙 4>처럼 영역2(802)의 시작점에 배치한다(1101). (1102) 단계에서는 송신기(100)는 배치되는 소스 패킷의 순서 인덱스를 의미하는 I = 2로 초기화 한 후 (1103) 단계에서 I 번째 배치될 소스 패킷에 대해 방법 1을 통해 상기 소스 패킷을 배치했을 때 영역2(802)에서 추가적으로 생성되는 부분 소스 심볼의 개수 A1을 계산한다. 여기서 <규칙 4>의 경우에 방법1은 이전 소스 패킷의 배치가 끝나면 다음 소스 패킷을 단순히 이전 소스 패킷 직후에 이어서 연속적으로 쌓는 방법이다. 다음으로 (1104) 단계에서는 송신기(100)는 I 번째 배치될 소스 패킷에 대해 방법2를 통해 상기 소스 패킷을 배치했을 때 영역2(802)에서 추가적으로 생성되는 부분 소스 심볼의 개수 A2를 계산한다. 여기서 <규칙 4>의 경우에 방법2는 이전 소스 패킷의 배치가 끝났을 때 상기 소스 패킷에 대응되는 영역2(802) 내의 마지막 부분 소스 심볼 다음의 부분 소스 심볼의 시작점(즉, 다음 행)부터 다음 소스 패킷을 배치하는 방법을 의미한다. 참고로 (1103) 단계 및 (1104) 단계의 순서는 서로 바뀌어도 무관하다. 다음으로 송신기(100)는 상기 (1103)과 (1104) 단계에서 구한 값 A1, A2을 (1105) 단계에서 비교하여 같은 값일 경우에는 (1106) 단계에서 방법2를 통해 소스 패킷을 영역2(802)에 최종 배치하고, 만일 (1105) 단계에서 비교한 값이 서로 다를 경우에는 (1107) 단계에서 방법1을 통해 소스 패킷을 영역2(802)에 최종 배치한다. 최종적으로 송신기(100)는 (1108) 단계에서 추가 배치할 소스 패킷이 있는지 판단하여 추가 배치할 소스 패킷이 없을 경우에는 모든 과정을 종료하고, 추가 배치할 소스 패킷이 존재할 경우에는 (1109) 단계에서 I 값을 증가 시킨 후 (1103) 단계부터 이상의 과정을 다시 시작한다.
참고로 상기 과정이 종료되는 시점에서의 I 값은 소스 블록 내에 배치될 소스 패킷들의 개수를 의미하기 때문에 시그널링 정보 중에서 SBL 값으로 활용할 수 있다.
송신기(100)가 상기 도 10과 도 11에서 설명한 동작을 완료하여 FEC 패킷들이 생성되면 송신기(100)는 상기 패킷들을 전송한다. 이때 전송 중 소스 패킷에 대응되는 전송 패킷이 손실되면 수신기에서는 최소 1개 이상의 복구 심볼(또는 패킷)에 대응되는 FEC 패킷이 존재해야 FEC 복호를 수행하여 상기 손실된 소스 패킷을 복구할 수 있다. 이때 상기 복구 심볼(또는 패킷)에 대응되는 FEC 패킷에는 해당 복구 심볼을 생성하는데 사용되었던 소스 블록의 번호 SBN, 그리고 복구 심볼의 순서 번호 ESI, 상기 소스 블록을 구성하고 있는 소스 패킷의 개수 SBL 등의 시그널링 정보가 포함되어 있기 때문에 소스 블록을 재구성하는데 활용할 수 있다.
하지만 영역1의 부분 심볼 크기 T1, 영역2의 부분 심볼 크기 T2, 소스 심볼의 크기 T 중에 적어도 2개의 정보를 파악하지 못하면, 수신기(110)가 소스 블록의 영역 구분 및 소스 심볼 크기 또는 부분 소스 심볼 크기 등을 알 수 없기 때문에 소스 블록을 완벽하게 재구성할 수 없다. 상기 T1, T2, T 등은 상기 FEC 패킷들에서 획득할 수 없기 때문에 통상적으로 별도의 방법을 통해 송신기(100)가 수신기(110)에게 전송한다. 물론 사전에 약속된 T1, T2, T 값 만이 사용될 경우에는 별도의 시그널링 정보가 필요 없지만, 가변적인 값이 사용되는 경우에는 시그널링 정보로서 송신기(100)가 수신측(110)에 전송해야 한다. 전송 방법으로는 상기 송신기(100)가 FEC 패킷들에 시그널링 정보로 추가하여 전송할 수도 있지만, 별도의 시스템 시그널링 방법 등을 통해 전송할 수도 있다. 이때 상기 T1, T2, T 값 중에서 2개의 정보를 알게 되면 나머지 하나는 T1+T2=T의 관계를 통해 자연스럽게 알 수 있기 때문에 반드시 상기 T1, T2, T 모두를 시그널링 할 필요는 없다.
또한 전체 소스 심볼의 개수 K 값에 대한 정보를 알 수 없으면, FEC 복호를 수행할 때 소스 심볼과 복구 심볼의 경계가 명확하지 않기 때문에 소스 심볼의 개수 K 또는 상기 소스 심볼 개수 K를 유추할 수 있는 시그널링 정보의 전송도 필요하다. 상기 소스 심볼 개수 K는 송신기(100)가 상기 FEC 패킷들에 시그널링 정보로 추가하여 전송할 수도 있지만, 별도의 시스템 시그널링 방법 등을 통해 전송할 수도 있다. 또한 송신기(100)는 직접 K 값을 시그널링으로 전달하지 않고 FEC 복호를 적용하는 FEC 부호의 특성에 따라 부호 ID 등을 대신 전송하여 수신기(110)가 K 값을 유추하도록 할 수도 있다.
도 12는 본 발명의 제2 실시 예에 따를 경우 소스 심볼 손실을 나타낸다. 도 8에 나타낸 소스 블록을 통해 FEC 부호화를 수행하고, 각 FEC 패킷을 전송했을 때 도 12에서 나타낸 것처럼 2 번째 FEC 패킷과 4 번째 FEC 패킷을 수신하지 못했다고 가정하자. 또한 수신기(110)는 T1, T2, T 및 K와 같은 정보 등을 모두 획득했다고 가정하자. 본 실시 예에서는 수신기(110)가 상기 T1, T2, T 및 K 값들을 획득하는 방법은 특별히 제한하지 않는다.
수신 측에서 손실된 소스 패킷이 존재할 경우에 수신기의 FEC 복호 수행을 위해서는 최소한 1개 이상의 복구 패킷이 필요하다. 복구 패킷이 하나도 수신되지 않았을 경우에는 복구 자체가 불가능하므로 이러한 경우는 FEC 복호를 고려하지 않는다. 최소한 1개 이상의 복구 패킷이 수신되면, 수신기(110)는 복구 패킷에 포함되어 있는 시그널링 정보 중에서 SBL을 통해 도 12를 구성하고 있는 소스 패킷의 개수 N_packet을 알 수 있다. 또한 통상적으로 영역1(1201)에 배치하는 소스 패킷의 길이 정보와 같은 부가 정보의 각 크기는 사전에 약속되어 있기 때문에 수신기(110)는 T1과 N_packet 값을 통해 상기 도 12의 영역1(1201)에 나타낸 것처럼 부가 정보와 제로 패딩이 배치된 구조를 파악할 수 있다. 상기 영역1(1201)에서 특정 소스 패킷이 손실될 경우에는 상기 손실된 소스 패킷의 SPS 또한 손실되기 때문에 수신기(110)가 획득하지 못한 SPS에 해당하는 위치의 부가 정보는 손실 처리하면 된다.
이상과 같이 도 12의 영역1(1201)에 대한 부가 정보 배치 구조를 파악하는 과정이 완료되면 먼저 영역1(1201)에 대해 FEC 복호를 수행한다. FEC 복호는 시스템 설정에 따라 부분 심볼 단위 또는 바이트 단위로 수행될 수 있다. 상기 영역1(1201)에는 제로 패딩(1203)이 다소 포함되어 있기 때문에 FEC 복호 과정에서 이미 알고 있는 정보로 활용할 수 있어 통상적으로 복호 성능이 우수하여 매우 높은 확률로 영역1(1201)은 완벽하게 복구된다.
이렇게 영역1(1201)이 복구 되면 손실 되었던 부가 정보들이 모두 복구되어 영역2(1202)에 배치된 소스 패킷의 구성 방법을 파악할 수 있게 된다. 예를 들어 상기 부가 정보가 상기 영역2(1202)에 배치된 소스 패킷들의 각 길이를 나타낼 경우에 각 소스 패킷을 배치하는 규칙 <규칙 2> 또는 <규칙 4>과 T2 값에 따라 도 12의 영역2(1202)처럼 소스 패킷의 배치 구조를 파악할 수 있다. 여기서 수신하지 못했던 소스 패킷들도 영역1(1201)의 복구를 통해 그 길이 정보는 복구해 낼 수 있기 때문에 손실된 소스 패킷들의 위치도 정확하게 파악할 수 있다.
이상과 같이 도 12의 영역2(1202)에 대한 소스 패킷 배치 구조를 파악하는 과정이 완료되면 수신기(110)는 상기 영역2(1202)에 대해 FEC 복호를 수행한다. FEC 복호는 시스템 설정에 따라 부분 심볼 단위 또는 바이트 단위로 수행될 수 있다. 또한 영역2(1202)에 대한 FEC 복호 과정에서 사용하는 FEC 부호는 상기 영역1(1201)의 복구에 사용하였던 FEC 부호와 동일할 수도 있고 서로 다를 수도 있다. 영역2(1202)에는 일반적으로 부분적인 제로 패딩만이 존재하기 때문에 영역1(1201)의 FEC 복호를 통한 복구 성능에 비해서 영역2(1202)의 복구 성능은 다소 열화된다. 따라서 통상적으로 만일 영역1(1201)이 복구 실패할 경우에는 영역2(1202)의 복구도 실패하기 때문에 결과적으로 손실된 소스 패킷의 복구에 실패하게 된다. 하지만 상기 영역1(1201)의 복구 확률이 매우 높게 유지되도록 제로 패딩을 적절히 설정하기 때문에 이러한 경우는 거의 없다.
도 13은 본 발명의 일 실시 예에 따르는 수신기(110)의 패킷 복구 과정의 순서도이다.
먼저 도 13에서 나타낸 것처럼 (1301) 단계에서 수신기(110)는 FEC 패킷과 같은 데이터 패킷들을 수신한다. 상기 (1301) 단계에서는 시그널링 정보도 함께 수신된다. 다음 (1302) 단계에서 수신기(110)는 손실된 소스 패킷이 존재하는지 판단한다. 만일 손실된 소스 패킷이 존재하지 않는다면 수신기(110)는 FEC 복호를 수행할 필요가 없기 때문에 모든 복구 동작은 종료된다. 만일 손실된 소스 패킷이 존재한다면, 수신기(110)는 수신된 데이터 패킷 및 시그널링 정보 등을 토대로 소스 블록 내의 영역1(1201)을 재구성한다(1303). 상기 (1303) 단계에서 상기 영역1(1201)을 재구성할 때에는 사전에 정해진 <규칙1> 또는 <규칙 3>에 따른다. 다음으로 수신기(110)는 상기 재구성된 영역1(1201)에 대해 FEC 복호를 수행한다 (1304). (1305) 단계에서 수신기(110)는 상기 영역1(1201)에 대한 FEC 복호가 성공했는지 판단하는데, 이때 복호가 실패할 경우에는 소스 패킷을 복구하는 것이 불가능하기 때문에 모든 복구 동작은 종료한다. 상기 영역1(1201)에 대한 FEC 복호가 성공했을 경우에는 수신기(110)는 영역1(1201)에서 복구된 정보와 시그널링 정보로부터 소스 블록 내 영역2(1202)를 재구성한다 (1306). 상기 (1306) 단계에서 상기 영역2(1202)를 재구성할 때에는 사전에 정해진 <규칙2> 또는 <규칙 4>에 따른다.
다음 (1307) 단계에서 수신기(110)는 상기 재구성된 영역2(1202)에 대해 FEC 복호를 수행하고 최종적으로 복구 과정을 모두 종료한다.
상기 도 13에 나타낸 본 발명의 일 실시예에 따른 수신기의 동작을 살펴보면, FEC 복호화 과정이 영역1(1201) 및 영역2(1202)에 대해 순차적으로 2번 이루어짐을 알 수 있다. 따라서 도 1에 나타낸 수신기(110)의 개략적인 구조를 도 14와 같이 변형하여 나타낼 수도 있다.
도 14는 본 발명의 일 실시 예에 따르는 수신기(1410)의 블록구성도이다.
수신기(1410)는 소스 블록 해석기(1402)와 FEC 복호화기(1403)를 포함한다. 소스 블록 해석기(1402)는 수신된 데이터(1401)로부터 먼저 소스 블록의 영역1(1201)의 데이터 배치 구조를 분석한 다음 재구성하고, 상기 재구성된 영역1(1201)과 복구 심볼들의 일부에 대해 FEC 복호화기(1403)를 이용하여 FEC 복호화를 수행하여 상기 영역1(1201)의 데이터를 복구한다. 상기 영역1(1201)의 복구된 데이터는 다시 소스 블록 해석기(1402)로 전달되어 소스 블록 해석기(1402)는 소스 블록의 영역2(1202)의 데이터 배치 구조를 분석한 다음 재구성하고, 상기 재구성된 영역2(1202)와 복구 심볼들의 일부에 대해 FEC 복호화기(1303)를 이용하여 FEC 복호화를 수행하여 상기 영역2(1202)의 데이터를 복구함으로써 최종적으로 소스 패킷을 복구할 수 있다. 소스 블록 해석기(1402)가 각 영역의 데이터 배치 구조를 분석할 때는 수신 데이터(1401)와 함께 혹은 별도로 수신된 시그널링 정보(1405)를 이용하여 분석한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
Claims (14)
- 제1 송신 대상 패킷을 소스 블록 중 제1 영역에 배치하는 단계 - 여기서 상기 제1 송신 대상 패킷은 제2 송신 대상 패킷이 배치된 마지막 부분 소스 심볼의 잔여 영역으로부터 시작하여 배치됨 - ;
상기 제1 송신 대상 패킷에 관련된 정보를 상기 소스 블록 중 제2 영역에 배치하는 단계;
상기 소스 블록을 순방향 오류 정정(FEC; Forward Error Correction) 부호화하는 단계; 및
상기 부호화된 소스 블록을 송신하는 단계를 포함하는 패킷 송신 방법. - 제1항에 있어서,
상기 제1 송신 대상 패킷을 상기 제1 영역에 배치하는 단계는,
상기 제1 송신 대상 패킷이 상기 제2 송신 대상 패킷이 배치된 마지막 소스 심볼의 다음 부분 소스 심볼로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수가, 상기 제1 송신 대상 패킷이 상기 제2 송신 대상 패킷이 배치된 마지막 소스 심볼의 잔여 영역으로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수보다 더 많은 경우 상기 제1 송신 대상 패킷을 상기 제2 송신 대상 패킷이 배치된 마지막 부분 소스 심볼의 잔여 영역으로부터 시작하여 배치하는 단계를 포함하는 패킷 송신 방법. - 제1항에 있어서,
상기 제1 송신 대상 패킷을 상기 제1 영역에 배치하는 단계는,
상기 제1 송신 대상 패킷이 상기 제2 송신 대상 패킷이 배치된 마지막 소스 심볼의 다음 부분 소스 심볼로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수가, 상기 제1 송신 대상 패킷이 상기 제2 송신 대상 패킷이 배치된 마지막 소스 심볼의 잔여 영역으로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수보다 더 많지 않은 경우, 상기 제1 송신 대상 패킷을 상기 제2 송신 대상 패킷이 배치된 마지막 부분 소스 심볼의 다음 소스 심볼로부터 시작하여 배치하는 단계를 더 포함하는 패킷 송신 방법. - 제1항에 있어서,
상기 제1 송신 대상 패킷에 관련된 정보는 상기 제1 송신 대상 패킷의 길이 정보를 포함하고,
상기 제1 송신 대상 패킷에 관련된 정보를 상기 제2 영역에 배치하는 단계는,
상기 제2 영역의 미리 설정된 값 패딩 비율이 미리 설정된 비율을 만족하도록 하는 상기 제2 영역의 최소 너비를 상기 제2 영역의 너비로 설정하는 단계;
상기 제2 영역에 상기 제1 송신 대상 패킷에 관련된 정보를 배치하는 단계; 및
상기 제2 영역에 상기 제1 송신 대상 패킷에 관련된 정보를 배치된 후 상기 제2 영역의 잔여 영역을 미리 설정된 값으로 패딩하는 단계를 포함하는 패킷 송신 방법. - 제1 송신 대상 패킷을 소스 블록 중 제1 영역에 배치하고, 상기 제1 송신 대상 패킷에 관련된 정보를 상기 소스 블록 중 제2 영역에 배치하는 소스 블록 구성부 - 여기서 상기 제1 송신 대상 패킷은 제2 송신 대상 패킷이 배치된 마지막 부분 소스 심볼의 잔여 영역으로부터 시작하여 배치됨 - ;
상기 소스 블록을 순방향 오류 정정(FEC; Forward Error Correction) FEC 부호화부; 및
상기 부호화된 소스 블록을 송신하는 송신부를 포함하는 패킷 송신 장치. - 제5항에 있어서,
상기 소스 블록 구성부는,
상기 제1 송신 대상 패킷이 상기 제2 송신 대상 패킷이 배치된 마지막 소스 심볼의 다음 부분 소스 심볼로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수가, 상기 제1 송신 대상 패킷이 상기 제2 송신 대상 패킷이 배치된 마지막 소스 심볼의 잔여 영역으로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수보다 더 많은 경우 상기 제1 송신 대상 패킷을 상기 제2 송신 대상 패킷이 배치된 마지막 부분 소스 심볼의 잔여 영역으로부터 시작하여 배치하는 것을 특징으로 하는 패킷 송신 장치. - 제6항에 있어서,
상기 소스 블록 구성부는,
상기 제1 송신 대상 패킷이 상기 제2 송신 대상 패킷이 배치된 마지막 소스 심볼의 다음 부분 소스 심볼로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수가, 상기 제1 송신 대상 패킷이 상기 제2 송신 대상 패킷이 배치된 마지막 소스 심볼의 잔여 영역으로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수보다 더 많지 않은 경우, 상기 제1 송신 대상 패킷을 상기 제2 송신 대상 패킷이 배치된 마지막 부분 소스 심볼의 다음 소스 심볼로부터 시작하여 배치하는 것을 특징으로 하는 패킷 송신 장치. - 제5항에 있어서,
상기 제1 송신 대상 패킷에 관련된 정보는 상기 제1 송신 대상 패킷의 길이 정보를 포함하고,
상기 소스 블록 구성부는,
상기 제2 영역의 미리 설정된 값 패딩 비율이 미리 설정된 비율을 만족하도록 하는 상기 제2 영역의 최소 너비를 상기 제2 영역의 너비로 설정하고, 상기 제2 영역에 상기 제1 송신 대상 패킷에 관련된 정보를 배치하고, 상기 제2 영역에 상기 제1 송신 대상 패킷에 관련된 정보를 배치된 후 상기 제2 영역의 잔여 영역을 미리 설정된 값으로 패딩하는 것을 특징으로 하는 패킷 송신 장치. - 소스 블록을 수신하는 단계;
수신한 소스 블록 중 제1 영역을 순방향 오류 정정(FEC; Forward Error Correction) 복호화 하는 단계;
상기 제1 영역의 복호화 결과로부터 제1 수신 대상 패킷에 관련된 정보를 획득하는 단계;
상기 제1 수신 대상 패킷에 관련된 정보를 이용해서 상기 소스 블록 중 제2 영역 에 배치된 상기 제1 수신 대상 패킷의 배치 정보를 획득하는 단계 - 여기서 상기 제1 수신 대상 패킷은 제2 수신 대상 패킷이 배치된 마지막 부분 소스 심볼의 잔여 영역으로부터 시작하여 배치됨 - ;
상기 제2 영역을 FEC 복호화하는 단계;
상기 제2 영역의 배치 정보를 이용하여 상기 제2 영역의 복호화 결과로부터 상기 제1 수신 대상 패킷을 획득하는 단계를 포함하는 패킷 수신 방법. - 제9항에 있어서,
상기 제2 영역의 배치 정보를 이용하여 상기 제2 영역의 복호화 결과로부터 상기 제1 수신 대상 패킷을 획득하는 단계는,
상기 제1 수신 대상 패킷이 상기 제2 수신 대상 패킷이 배치된 마지막 소스 심볼의 다음 부분 소스 심볼로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수가, 상기 제1 수신 대상 패킷이 상기 제2 수신 대상 패킷이 배치된 마지막 소스 심볼의 잔여 영역으로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수보다 더 많은 경우 상기 제1 수신 대상 패킷을 상기 제2 송신 대상 패킷이 배치된 마지막 부분 소스 심볼의 잔여 영역으로부터 시작하여 배치되는 것으로 가정하여 제1 수신 대상 패킷을 획득하는 단계를 포함하는 패킷 수신 방법. - 제10항에 있어서,
상기 제2 영역의 배치 정보를 이용하여 상기 제2 영역의 복호화 결과로부터 상기 제1 수신 대상 패킷을 획득하는 단계는,
상기 제1 수신 대상 패킷이 상기 제2 수신 대상 패킷이 배치된 마지막 소스 심볼의 다음 부분 소스 심볼로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수가, 상기 제1 수신 대상 패킷이 상기 제2 수신 대상 패킷이 배치된 마지막 소스 심볼의 잔여 영역으로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수보다 더 많지 않은 경우 상기 제1 수신 대상 패킷을 상기 제2 송신 대상 패킷이 배치된 마지막 부분 소스 심볼의 다음 소스 심볼로부터 시작하여 배치되는 것으로 가정하여 제1 수신 대상 패킷을 획득하는 단계를 더 포함하는 패킷 수신 방법. - 소스 블록을 수신하는 수신부;
수신한 소스 블록 중 제1 영역을 순방향 오류 정정(FEC; Forward Error Correction) 복호화 하는 FEC 복호화부;
상기 제1 영역의 복호화 결과로부터 제1 수신 대상 패킷에 관련된 정보를 획득하고, 상기 제1 수신 대상 패킷에 관련된 정보를 이용해서 상기 소스 블록 중 제2 영역 에 배치된 상기 제1 수신 대상 패킷의 배치 정보를 획득하는 소스 블록 해석기를 포함하고 - 여기서 상기 제1 수신 대상 패킷은 제2 수신 대상 패킷이 배치된 마지막 부분 소스 심볼의 잔여 영역으로부터 시작하여 배치됨 - ,
상기 FEC 복호화부는 상기 제2 영역을 FEC 복호화하고,
상기 소스 블록 해석기는 상기 제2 영역의 배치 정보를 이용하여 상기 제2 영역의 복호화 결과로부터 상기 제1 수신 대상 패킷을 획득하는 것을 특징으로 하는 패킷 수신 장치. - 제12항에 있어서,
상기 소스 블록 해석기는,
상기 제1 수신 대상 패킷이 상기 제2 수신 대상 패킷이 배치된 마지막 소스 심볼의 다음 부분 소스 심볼로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수가, 상기 제1 수신 대상 패킷이 상기 제2 수신 대상 패킷이 배치된 마지막 소스 심볼의 잔여 영역으로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수보다 더 많은 경우 상기 제1 수신 대상 패킷을 상기 제2 송신 대상 패킷이 배치된 마지막 부분 소스 심볼의 잔여 영역으로부터 시작하여 배치되는 것으로 가정하여 제1 수신 대상 패킷을 획득하는 것을 특징으로 하는 패킷 수신 장치. - 제13항에 있어서,
상기 소스 블록 해석기는,
상기 제1 수신 대상 패킷이 상기 제2 수신 대상 패킷이 배치된 마지막 소스 심볼의 다음 부분 소스 심볼로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수가, 상기 제1 수신 대상 패킷이 상기 제2 수신 대상 패킷이 배치된 마지막 소스 심볼의 잔여 영역으로부터 시작하여 배치되는 경우 추가로 필요한 소스 심볼의 개수보다 더 많지 않은 경우 상기 제1 수신 대상 패킷을 상기 제2 송신 대상 패킷이 배치된 마지막 부분 소스 심볼의 다음 소스 심볼로부터 시작하여 배치되는 것으로 가정하여 제1 수신 대상 패킷을 획득하는 것을 특징으로 하는 패킷 수신 장치.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261600064P | 2012-02-17 | 2012-02-17 | |
US61/600,064 | 2012-02-17 | ||
US201261605855P | 2012-03-02 | 2012-03-02 | |
US61/605,855 | 2012-03-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130095231A true KR20130095231A (ko) | 2013-08-27 |
KR102133930B1 KR102133930B1 (ko) | 2020-07-21 |
Family
ID=48983297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130017119A KR102133930B1 (ko) | 2012-02-17 | 2013-02-18 | 데이터 패킷 송수신 장치 및 방법 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9225357B2 (ko) |
EP (1) | EP2815529B1 (ko) |
KR (1) | KR102133930B1 (ko) |
WO (1) | WO2013122438A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10341049B2 (en) | 2014-03-28 | 2019-07-02 | Samsung Electronics Co., Ltd. | Method and apparatus for performing a forward error correction (FEC) encoding or decoding in a multimedia system |
WO2019198873A1 (ko) * | 2018-04-13 | 2019-10-17 | 삼성전자주식회사 | 송신 장치 및 그 송신 방법 |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9747048B2 (en) | 2014-06-02 | 2017-08-29 | Micron Technology, Inc. | Systems and methods for packing data in a scalable memory system protocol |
US9455750B2 (en) * | 2014-07-28 | 2016-09-27 | Qualcomm Incorporated | Source block size selection |
US10447430B2 (en) | 2016-08-01 | 2019-10-15 | Sony Interactive Entertainment LLC | Forward error correction for streaming data |
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
US10817388B1 (en) | 2017-07-21 | 2020-10-27 | EMC IP Holding Company LLC | Recovery of tree data in a geographically distributed environment |
US10684780B1 (en) | 2017-07-27 | 2020-06-16 | EMC IP Holding Company LLC | Time sensitive data convolution and de-convolution |
US10880040B1 (en) | 2017-10-23 | 2020-12-29 | EMC IP Holding Company LLC | Scale-out distributed erasure coding |
US10528260B1 (en) | 2017-10-26 | 2020-01-07 | EMC IP Holding Company LLC | Opportunistic ‘XOR’ of data for geographically diverse storage |
RU2674316C1 (ru) * | 2017-12-29 | 2018-12-06 | Общество с ограниченной ответственностью "Радио Гигабит" | Способ реализации гибридного автоматического запроса на передачу при использовании многоуровневого кодирования данных |
US11271685B2 (en) | 2017-12-29 | 2022-03-08 | Limited Liability Company “Radio Gigabit” | Method of hybrid automatic repeat request implementation for data transmission with multilevel coding |
US10382554B1 (en) | 2018-01-04 | 2019-08-13 | Emc Corporation | Handling deletes with distributed erasure coding |
US10817374B2 (en) | 2018-04-12 | 2020-10-27 | EMC IP Holding Company LLC | Meta chunks |
US10579297B2 (en) | 2018-04-27 | 2020-03-03 | EMC IP Holding Company LLC | Scaling-in for geographically diverse storage |
US11023130B2 (en) | 2018-06-15 | 2021-06-01 | EMC IP Holding Company LLC | Deleting data in a geographically diverse storage construct |
US10936196B2 (en) | 2018-06-15 | 2021-03-02 | EMC IP Holding Company LLC | Data convolution for geographically diverse storage |
US10719250B2 (en) * | 2018-06-29 | 2020-07-21 | EMC IP Holding Company LLC | System and method for combining erasure-coded protection sets |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US10901635B2 (en) | 2018-12-04 | 2021-01-26 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns |
US10931777B2 (en) | 2018-12-20 | 2021-02-23 | EMC IP Holding Company LLC | Network efficient geographically diverse data storage system employing degraded chunks |
US11119683B2 (en) | 2018-12-20 | 2021-09-14 | EMC IP Holding Company LLC | Logical compaction of a degraded chunk in a geographically diverse data storage system |
US10892782B2 (en) | 2018-12-21 | 2021-01-12 | EMC IP Holding Company LLC | Flexible system and method for combining erasure-coded protection sets |
US11023331B2 (en) | 2019-01-04 | 2021-06-01 | EMC IP Holding Company LLC | Fast recovery of data in a geographically distributed storage environment |
US10768840B2 (en) | 2019-01-04 | 2020-09-08 | EMC IP Holding Company LLC | Updating protection sets in a geographically distributed storage environment |
US10942827B2 (en) | 2019-01-22 | 2021-03-09 | EMC IP Holding Company LLC | Replication of data in a geographically distributed storage environment |
US10942825B2 (en) | 2019-01-29 | 2021-03-09 | EMC IP Holding Company LLC | Mitigating real node failure in a mapped redundant array of independent nodes |
US10846003B2 (en) | 2019-01-29 | 2020-11-24 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage |
US10936239B2 (en) | 2019-01-29 | 2021-03-02 | EMC IP Holding Company LLC | Cluster contraction of a mapped redundant array of independent nodes |
US10866766B2 (en) | 2019-01-29 | 2020-12-15 | EMC IP Holding Company LLC | Affinity sensitive data convolution for data storage systems |
US11029865B2 (en) | 2019-04-03 | 2021-06-08 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes |
US10944826B2 (en) | 2019-04-03 | 2021-03-09 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a mapped redundant array of independent nodes |
US11119686B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Preservation of data during scaling of a geographically diverse data storage system |
US11121727B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Adaptive data storing for data storage systems employing erasure coding |
US11113146B2 (en) | 2019-04-30 | 2021-09-07 | EMC IP Holding Company LLC | Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11209996B2 (en) | 2019-07-15 | 2021-12-28 | EMC IP Holding Company LLC | Mapped cluster stretching for increasing workload in a data storage system |
US11023145B2 (en) | 2019-07-30 | 2021-06-01 | EMC IP Holding Company LLC | Hybrid mapped clusters for data storage |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11228322B2 (en) | 2019-09-13 | 2022-01-18 | EMC IP Holding Company LLC | Rebalancing in a geographically diverse storage system employing erasure coding |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11288139B2 (en) | 2019-10-31 | 2022-03-29 | EMC IP Holding Company LLC | Two-step recovery employing erasure coding in a geographically diverse data storage system |
US11119690B2 (en) | 2019-10-31 | 2021-09-14 | EMC IP Holding Company LLC | Consolidation of protection sets in a geographically diverse data storage environment |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11144220B2 (en) | 2019-12-24 | 2021-10-12 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes |
US11231860B2 (en) | 2020-01-17 | 2022-01-25 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage with high performance |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11288229B2 (en) | 2020-05-29 | 2022-03-29 | EMC IP Holding Company LLC | Verifiable intra-cluster migration for a chunk storage system |
CN114070458B (zh) * | 2020-08-04 | 2023-07-11 | 成都鼎桥通信技术有限公司 | 数据传输方法、装置、设备及存储介质 |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080141094A1 (en) * | 2003-08-21 | 2008-06-12 | Qualcomm Incorporated | Outer coding methods for broadcast/multicast content and related apparatus |
US20090327842A1 (en) * | 2006-07-25 | 2009-12-31 | Hang Liu | Recovery from burst packet loss in internet protocol based wireless networks using staggercasting and cross-packet forward error correction |
KR20100080852A (ko) * | 2002-05-06 | 2010-07-12 | 콸콤 인코포레이티드 | 무선 통신 시스템에서의 멀티-미디어 브로드캐스트 및 멀티캐스트 서비스(mbms) |
KR20110131243A (ko) * | 2009-02-27 | 2011-12-06 | 콸콤 인코포레이티드 | Dvb-t 단말들을 위한 애플리케이션 계층 순방향 에러 정정 |
Family Cites Families (7)
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 |
US8065582B2 (en) * | 2006-02-13 | 2011-11-22 | Digital Fountain, Inc. | FEC streaming with aggregation of concurrent streams for FEC computation |
WO2007126298A1 (en) * | 2006-05-02 | 2007-11-08 | Samsung Electronics Co., Ltd. | Method and apparatus for transmitting/receiving packet in mobile communication system |
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 |
JP5075536B2 (ja) * | 2007-09-03 | 2012-11-21 | 株式会社東芝 | Fec送信処理装置、ならびにfec送信処理のための方法およびプログラム |
EP2058968A1 (en) * | 2007-11-07 | 2009-05-13 | Thomson Licensing | Method and apparatus for FEC encoding and decoding |
KR20100016774A (ko) * | 2008-08-05 | 2010-02-16 | 삼성전자주식회사 | 방송정보 송수신을 위한 장치 및 방법 |
-
2013
- 2013-02-18 EP EP13749181.7A patent/EP2815529B1/en active Active
- 2013-02-18 KR KR1020130017119A patent/KR102133930B1/ko active IP Right Grant
- 2013-02-18 WO PCT/KR2013/001260 patent/WO2013122438A1/en active Application Filing
- 2013-02-19 US US13/770,635 patent/US9225357B2/en active Active
-
2015
- 2015-12-28 US US14/981,042 patent/US10361810B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100080852A (ko) * | 2002-05-06 | 2010-07-12 | 콸콤 인코포레이티드 | 무선 통신 시스템에서의 멀티-미디어 브로드캐스트 및 멀티캐스트 서비스(mbms) |
US20080141094A1 (en) * | 2003-08-21 | 2008-06-12 | Qualcomm Incorporated | Outer coding methods for broadcast/multicast content and related apparatus |
US20090327842A1 (en) * | 2006-07-25 | 2009-12-31 | Hang Liu | Recovery from burst packet loss in internet protocol based wireless networks using staggercasting and cross-packet forward error correction |
KR20110131243A (ko) * | 2009-02-27 | 2011-12-06 | 콸콤 인코포레이티드 | Dvb-t 단말들을 위한 애플리케이션 계층 순방향 에러 정정 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10341049B2 (en) | 2014-03-28 | 2019-07-02 | Samsung Electronics Co., Ltd. | Method and apparatus for performing a forward error correction (FEC) encoding or decoding in a multimedia system |
WO2019198873A1 (ko) * | 2018-04-13 | 2019-10-17 | 삼성전자주식회사 | 송신 장치 및 그 송신 방법 |
KR20190119849A (ko) * | 2018-04-13 | 2019-10-23 | 삼성전자주식회사 | 송신 장치 및 그 송신 방법 |
US11336389B2 (en) | 2018-04-13 | 2022-05-17 | Samsung Electronics Co., Ltd. | Transmitting device which generates a physical layer packet by inserting padding and transmitting method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR102133930B1 (ko) | 2020-07-21 |
EP2815529B1 (en) | 2019-12-11 |
WO2013122438A1 (en) | 2013-08-22 |
US20130219240A1 (en) | 2013-08-22 |
EP2815529A4 (en) | 2015-10-07 |
US20160134393A1 (en) | 2016-05-12 |
US9225357B2 (en) | 2015-12-29 |
US10361810B2 (en) | 2019-07-23 |
EP2815529A1 (en) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102133930B1 (ko) | 데이터 패킷 송수신 장치 및 방법 | |
JP6689511B2 (ja) | 順方向エラー訂正スキームを使用するパケット送受信装置及び方法 | |
KR101983032B1 (ko) | 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법 | |
KR20130040087A (ko) | 데이터 통신 시스템에서 부호화 장치 및 방법 | |
JP6486684B2 (ja) | 移動通信システムにおける順方向誤り訂正パケットを送受信する装置及び方法 | |
KR101951659B1 (ko) | 방송 및 통신 시스템에서 수신 패킷들의 복호 방법 및 장치 | |
US9667384B2 (en) | Apparatus and method for transmitting and receiving forward error correction packet | |
JP6511472B2 (ja) | ブロードキャスティング及び/又は通信システムにおけるパケットの生成及び復元のための方法及び装置 | |
KR102093731B1 (ko) | 오류 정정 부호를 사용하는 통신 시스템에서 패킷 송수신 기법 | |
MX2014012882A (es) | Aparato y metodo para transmitir/recibir paquetes en el sistema de comunicacion. | |
KR101967884B1 (ko) | 방송 및 통신 시스템에서 패킷 송/수신 장치 및 방법 | |
KR20080093923A (ko) | 서브 블록별 순차적 업데이트 방식을 이용한 저지연 파운틴코딩 방법 | |
KR102014710B1 (ko) | 방송 및 통신 시스템에서 패킷 송/수신 장치 및 방법 | |
JP2009049896A (ja) | 通信路符号化方法及び通信路符号化システム及び階層的通信路符号化プログラム及び階層的通信路復号プログラム | |
KR20150057864A (ko) | 순방향 오류 정정 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |