Nothing Special   »   [go: up one dir, main page]

KR101286912B1 - 3차원 저장장치를 이용한 가변길이 패킷의 fec 인코딩 및 fec 디코딩 방법 - Google Patents

3차원 저장장치를 이용한 가변길이 패킷의 fec 인코딩 및 fec 디코딩 방법 Download PDF

Info

Publication number
KR101286912B1
KR101286912B1 KR1020090127230A KR20090127230A KR101286912B1 KR 101286912 B1 KR101286912 B1 KR 101286912B1 KR 1020090127230 A KR1020090127230 A KR 1020090127230A KR 20090127230 A KR20090127230 A KR 20090127230A KR 101286912 B1 KR101286912 B1 KR 101286912B1
Authority
KR
South Korea
Prior art keywords
packet
data packet
parity
storage device
data
Prior art date
Application number
KR1020090127230A
Other languages
English (en)
Other versions
KR20110070417A (ko
Inventor
김현철
이한규
홍진우
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020090127230A priority Critical patent/KR101286912B1/ko
Priority to US12/878,595 priority patent/US8365034B2/en
Publication of KR20110070417A publication Critical patent/KR20110070417A/ko
Application granted granted Critical
Publication of KR101286912B1 publication Critical patent/KR101286912B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2918Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube
    • 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
    • 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/373Decoding 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6306Error control coding in combination with Automatic Repeat reQuest [ARQ] and diversity transmission, e.g. coding schemes for the multiple transmission of the same information or the transmission of incremental redundancy
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/155Shortening or extension of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes

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)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

입력되는 데이터 패킷을 특정 저장 폭과 데이터 영역 높이를 갖는 3차원 저장 장치에 가상적으로 연결하여 배치하면서 FEC 코딩을 수행하여 대응되는 패리티 패킷을 산출하고, 산출된 패리티 패킷을 3차원 저장장치의 세로 방향과 깊이 방향으로 저장 배치하며, 데이터 패킷의 복원을 위한 정보와 데이터 패킷을 포함한 확장 데이터 패킷, 및 패리티 패킷을 송신하는 단계를 포함하는 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법이 개시된다.
가변길이, 데이터 패킷, FEC(Forward Error Correction)

Description

3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 및 FEC 디코딩 방법{VARIABLE SIZE PACKETS FEC ENCODING AND FEC DECODING METHOD BASED ON 3 DIMENSION BUFFER}
본 발명의 실시예들은 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 및 FEC 디코딩 방법에 관한 것으로, 특히 패딩(padding)없이 가변길이 패킷에 대한 패리티 패킷을 생성하여 손실된 패킷의 복원을 가능하게 함과 동시에 송신측에서 데이터 패킷을 즉시 전송할 수 있도록 하는 FEC 코딩 방식에 기초한 가변길이 패킷의 송수신 방법에 관한 것이다.
디지털 통신 시스템은 데이터 전송 중 채널에서 발생한 잡음이나 오류를 수신측에서 제어할 수 있도록 하는 방법으로 ARQ(Automatic Repeat Request) 방식이나 FEC(Forward Error Correction) 방식을 사용한다.
ARQ 방식은 수신된 데이터 블록에 오류가 존재하는 지를 분석하는 것과 오류를 포함하는 블록의 재전송을 요청하는 것을 포함하는 방식으로 오류가 많고 적은 지연을 요구하는 시스템에서는 적합하지 않다.
한편, FEC 방식은 채널을 통해 데이터를 전송할 때 부가 데이터를 더 전송함 으로써 오류가 발생하더라도 재전송 없이 수신단에서 오류를 검출, 복원할 수 있도록 하는 방식이다. 이러한 FEC 방식에는 Hamming, BCH, RS(Reed Solomon) 코드 등 여러 종류가 있으며, 특히 RS는 바이트 단위의 오류 검출과 정정을 가능하게 한다.
J. Rosenberg 등이 제안하여 IETF 표준으로 채택된 "An RTP Payload Format for Generic Forward Error Correction"(IETF(Internet Engineering Task Force) RFC(Request For Comment Document) 2733, December 1999)에서는 배타적 논리합(exclusive-or) 연산을 사용한다. 하나의 패킷의 집합에 대하여 하나의 패리티 패킷이 별개의 스트림으로 송신된다. 해당 집합에서 하나의 패킷이 손실되면 수신측에서 복구할 수 있다. FEC 방식이 구현되지 않은 호스트와 호환성을 가지기 위하여 패리티 패킷은 특별한 RTP(Real Time Processing) 페이로드(payload) 타입값을 가진다. 이 값을 모르는 호스트는 수신된 패리티 패킷을 무시하고 원래와 같이 진행하면 된다. 호스트가 모르는 페이로드 타입값을 가지는 패킷을 무시하는 것은 이전의 IETF 문서인 H. Schulzrine 등의 "RTP: A Transport Protocol for Real-Time Applications"(IETF RFC 1889, January 1996)에 따른 것이다.
또한, H. Zheng 등의 "An Improved UDP Protocol for Video Transmission Over Internet-to Wireless Networks"(IEEE Tr. On Multimedia, pp 356-365, Setember 2001) 및 S.-W. Yuk 등의 "An Adaptive Redundancy Control Method for Erasure-Code Based Real-Time Data Transmission Over the Internet"(IEEE Tr. On Multimedia, pp 366-374, September 2001)에서 shortened RS 코드는 소거된 패킷의 복구에 사용된다. 만약 k 데이터 패킷이 (n-k) 패리티 패킷과 함께 전송되는 경 우, 최대 (n-k) 패킷까지 손실되어도 수신기에서 재생할 수 있다. 손실된 패킷들의 일련 번호는 RTP 프로토콜을 사용함으로써 수신기에 의해 카운트될 수 있다(소거는 알려져 있는 위치에서의 손실 또는 오류로 정의된다). 이러한 방법을 이용하면 하나 이상의 패킷이 재생될 수 있기 때문에 RFC 2733보다 매우 효과적이다. 하나 이상의 패킷을 재생하는 방법은 Wagner 등이 제안하여 IETF에서 표준화가 진행되고 있다("draft-ietf-avt-uxp-02.txt: An RTP payload format for erasure-resilient transmission of progressive multimedia streams," March 2002).
한편, 상기한 방법들은 패킷 길이가 고정된 것을 가정하여 적용된다. 압축된 오디오의 패킷 길이는 고정되는 반면에, 압축된 비디오의 패킷 길이는 도 1에 도시된 바와 같이 대부분 가변적이다. 도 1은 패킷 크기가 대략 150 바이트와 3000 바이트 사이에서 가변되는 비디오 및 패킷 크기가 112 바이트로 고정된 오디오를 도시한 도면이다.
이와 같이, 최근 인터넷 상에서 많이 제공되고 있는 동영상 서비스처럼, 전송하고자 하는 패킷 길이가 가변적이고 많은 지연이 허용되지 않는 경우에는 FEC 방식을 사용하되 패킷의 길이가 가변적인 스트림에 적합하도록 개선이 요구된다.
도 2는 종래 FEC 코딩 방식에 기초한 가변길이 패킷의 정렬 과정을 도시한 도면이다.
현재의 FEC 부호화 방법에서 가변길이의 패킷이 전송되는 경우 이 가변길이의 패킷에 대해 패리티 패킷을 생성할 수 없으므로, 도 2에 도시된 바와 같이 동일한 길이를 가지는 패킷으로 만들기 위한 패딩(padding) 과정이 수행되어야 하는 문 제점이 있다. 이때, 패리티 패킷의 길이는 연관된 패킷 그룹 내에서 가장 큰 패킷의 길이에 맞추어야 하므로 대역폭이 낭비되며 또한 최대 길이를 가지는 패킷을 알기 위해서 연관된 패킷 그룹인 패킷 1부터 패킷 6까지 모두 입력될 때까지 송신단 측은 입력되는 패킷을 전송하지 못함으로써 지연이 발생되는 문제점이 있다. 이러한 문제점을 극복하기 위해 도 3에 도시된 2차원 저장장치를 이용한 FEC 방법이 제안되었다.
도 3은 종래 2차원 저장장치를 이용한 FEC 코딩 방식에 기초한 가변길이 패킷 수신 방법에서 수신된 패킷의 손실 복원 과정을 도시한 도면이다.
하지만, 이 경우에도 패킷 손실 발생 시 연속적으로 발생하는 인터넷의 특성 때문에 연관된 패킷 그룹들 중 FEC로 복원하지 못하는 부분이 발생할 확률이 높다는 문제점이 있다.
본 발명의 일실시예는 3차원 저장장치에 패딩 과정 없이 가상적으로 연결된 가변 길이 패킷에 대한 세로방향 패리티 패킷과 깊이 방향 패리티 패킷을 생성하고, 패리티 패킷 생성을 위한 연관된 패킷 그룹이 모두 입력되지 않아도 데이터 패킷을 즉시 전송할 수 있도록 함으로써 송신 지연을 최소화할 수 있는 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법을 제공한다.
또한, 3차원 저장장치에 패딩 과정 없이 가상적으로 연결된 가변 길이 패킷에 대한 세로방향 패리티 패킷과 깊이 방향 패리티 패킷을 이용하여 연관된 패킷 그룹 내 한 개 이상의 패킷 손실을 복원할 수 있는 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법을 제공한다.
본 발명의 일실시예에 따른 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법은, 송신될 입력 데이터 패킷이 존재하는 경우 데이터 패킷을 입력받는 단계와, 상기 3차원 저장장치의 저장 폭이 저장 길이가 되도록, 또한 상기 3차원 저장장치의 데이터 영역 높이가 저장 높이가 되도록, 상기 입력된 데이터 패킷을 상기 3차원 저장장치에 연결하여 배치하는 단계와, FEC 코딩을 수행하여, 상기 배치된 데이터 패킷에 대해 세로 방향, 또는 깊이 방향으로 적용되는 각각의 패리티 패킷을 산출하는 단계를 포함한다.
또한, 본 발명의 일측에 있어서, 상기 산출된 패리티 패킷을 상기 3차원 저 장장치의 세로 방향과 깊이 방향으로 저장 배치하며, 상기 데이터 패킷의 복원을 위한 정보와 상기 데이터 패킷을 포함한 확장 데이터 패킷, 및 상기 패리티 패킷을 송신하는 단계를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법은, 수신되는 확장 패킷이 존재하는 경우, 상기 확장 패킷으로부터 데이터 패킷 및 패리티 패킷을 분리하는 단계와, 상기 3차원 저장장치의 저장 폭이 저장 길이가 되도록, 또한 상기 3차원 저장장치의 데이터 영역 높이가 저장 높이가 되도록, 상기 분리된 데이터 패킷을 상기 데이터 패킷의 오프셋에 따라 상기 3차원 저장장치에 배치하는 단계, 및 상기 배치된 데이터 패킷에 대해 세로 방향, 또는 깊이 방향으로 적용되는, 상기 패리티 패킷을 사용하여, 상기 데이터 패킷에 대한 FEC 디코딩을 수행하여 상기 데이터 패킷을 복원한 후 상위 계층으로 전달하는 단계를 포함한다.
본 발명의 일실시예에 따르면, 3차원 저장장치에 가변 길이의 각 데이터 패킷이 입력될 때마다 가상적으로 연결하여 저장하는 동시에, 연관된 패킷 그룹에 대해 패리티 패킷을 갱신시키고 데이터 패킷을 즉시 전송할 수 있도록 함으로써 송신측에서 발생하는 지연을 최소화할 수 있게 된다.
또한, 본 발명의 일실시예에 따르면, 데이터 전송 중 손실된 패킷을 세로 방향 및 깊이 방향으로 FEC를 반복 적용하여 복원할 수 있으므로, 우수한 품질의 서비스 제공을 가능하게 하며, 특히, 인터넷 상에서 고화질의 비디오 서비스를 제공 할 수 있게 한다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 4는 본 발명의 일실시예에 따른 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법의 순서를 도시한 도면이다.
도 4를 참조하면, 본 발명의 실시예에 따른 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법은 송신측에서 수행된다.
먼저, 송신측은 FEC 인코딩 및 디코딩에 필요한 파라미터로 사전에 약속된 값을 사용할 것인지의 여부를 판단한다(단계 410).
만약 사전에 약속된 파라미터를 사용하지 않는 것으로 판단되는 경우, FEC 인코딩 및 디코딩에 필요한 파라미터를 결정하여 수신측으로 송신한다(단계 420).
한편, 사전에 약속된 파라미터를 사용하는 것으로 판단되는 경우, FEC 인코딩 및 디코딩에 필요한 파라미터를 결정하여 수신측으로 송신하는 과정(단계 420)은 생략될 수 있다.
여기서, FEC 인코딩 및 디코딩에 필요한 파라미터는 전송될 패킷이 저장되는 3차원 저장장치의 저장 폭, 3차원 저장장치의 데이터 영역 높이, 세로방향 패리티 패킷의 개수 및 깊이 방향 패리티 패킷의 개수이다.
다음, 입력되는 데이터 패킷, 즉 송신될 데이터 패킷의 존재 여부를 판단하 여(단계 430), 입력 데이터 패킷이 존재하면 데이터 패킷을 입력받은 후(단계 440), 이 입력 데이터 패킷을 저장 폭이 L이고 데이터 영역의 높이가 k1인 3차원 저장장치에 가상적으로 연결하여 차례로 배치하고(단계 450), 상기 배치된 입력 데이터 패킷에 대해 세로 방향 및 깊이 방향으로 FEC 인코딩을 수행하여 패리티 패킷을 산출하고(단계 460), 수신측으로 데이터 패킷의 복원을 위한 정보와 데이터 패킷을 포함하는 확장 데이터 패킷, 및 상기 산출된 패리티 패킷을 송신한다(단계 470).
이와 같이, 송신측은 하나의 데이터 패킷이 입력될 때마다 해당되는 패리티 패킷을 계속 산출한 후(단계 460), 데이터 패킷과 패리티 패킷을 수신측으로 송신할 수 있다(단계 470). 따라서, 입력되는 데이터 패킷이 존재하는 동안, 상기 데이터 패킷 입력 과정(단계 440)과 3차원 저장장치에 연결 배치하는 과정(단계 450), FEC 인코딩을 통한 패리티 패킷 산출 과정(단계 460) 및 패킷 송신 과정(단계 470)이 반복 수행될 수 있다. 한편, 단계 430에서 입력되는 데이터 패킷이 없으면 송신 프로세스가 종료된다.
단계 450에서, 입력 데이터 패킷을 3차원 저장장치에 가상적으로 연결하여 배치한다는 것은, 3차원 저장장치에 저장될 패킷들을 연결하여 저장하되, 그 저장 길이가 3차원 저장장치의 저장 폭(L)이 되도록 하고, 그 저장 높이가 3차원 저장장치의 데이터 영역 높이(k1)가 되도록 한다는 것을 의미한다.
이때, 3차원 저장장치의 폭(L)과 데이터영역의 높이(k1)는 변경 가능하며, 전달 가능한 방법을 통하여 수신측에게 알려진다. 고정된 폭(L)과 높이(k1)는 콜(call) 중에 사용될 수 있으며, 또는 이 폭(L)과 높이(k1)는 채널 상태 및 패킷의 길이에 따라 적응적으로 콜(call) 도중에 변경되어 수신측으로 전달될 수 있다.
입력 데이터 패킷이 3차원 저장장치에 가상적으로 연결되어 배치될 때, 입력 데이터 패킷이 3차원 저장장치의 저장 폭(L)보다 작으면 그대로 배치되고, 만약 입력 데이터 패킷이 3차원 저장장치의 저장 폭(L)보다 크면 3차원 저장장치의 저장 폭(L)만큼 먼저 배치되고, 그 나머지 부분은 다음 라인에 배치될 수 있다.
또한, 입력 데이터 패킷이 3차원 저장장치에 가상적으로 연결되어 배치될 때, 입력 데이터 패킷이 3차원 저장장치의 높이(k1)보다 크게 되면, 상기 3차원 저장장치의 높이(k1)만큼 먼저 배치되고, 그 나머지 부분은 깊이 방향의 다음 프레임에 배치될 수 있다.
상기 3차원 저장장치의 저장 폭과 데이터 영역 높이에 맞추어 데이터 패킷을 연결 배치하는 과정은 각 데이터 패킷이 입력될 때마다 반복될 수 있다.
이하에서는 도 9를 함께 참조하여 도 4를 설명하여 발명의 이해를 도모한다. 도 9는 본 발명의 일실시예에 따른 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법에서 패킷 정렬 과정을 도시한 도면이다.
도 9를 참조하면, 입력 데이터 패킷 1(DP1)의 크기는 3차원 저장장치의 저장 폭(L)보다 크기 때문에, 패킷 1(DP1) 중 3차원 저장장치의 폭(L)에 해당하는 일부만 데이터 영역(910)에 먼저 배치되고, 패킷 1(DP1)의 나머지 부분은 다음 라인에 배치될 수 있다. 또한, 패킷 2(DP2)의 크기는 3차원 저장장치의 저장 폭(L)보다 작을 수 있으나, 이미 먼저 배치된 패킷 1(DP1)의 나머지 부분이 배치되고 남은 부 분에 패킷 2(DP2)의 일부가 배치되며 그 나머지 부분(DP2)은 다음의 라인에 배치될 수 있다. 패킷 3(DP3), 패킷 4(DP4) 등에 대해서도 패킷 2와 마찬가지로 배치될 수 있다. 입력 데이터 패킷 7(DP7)이 입력되면 패킷 6(DP6)에 연결되어 배치되나 3차원 저장장치의 데이터 영역 높이(k1)를 넘게 되므로, 데이터 영역 높이에 맞는 부분까지만 먼저 배치되고 나머지 부분은 다음 프레임(920)의 데이터 영역에 배치될 수 있다.
한편, FEC 알고리즘은 저장 길이 방향의 수직 방향으로 패리티 정보를 산출할 수 있다. 즉, FEC 알고리즘은 세로 방향으로 (n1-k1) 디지트의 패리티 정보를 산출하고, 깊이 방향으로 (n2-k2) 디지트의 패리티 정보를 산출할 수 있다. 이 경우, 여러 체계적인 FEC 알고리즘이 사용될 수 있으나, GF(28)에 따른 shortened RS 코딩이 통상적으로 사용될 수 있다. 도 9에 도시된 3차원 저장장치의 첫 번째 세로 열에 대해, 2 디지트 패리티 정보가 산출되고, 두 번째 세로 열에 대해 2 디지트 패리티 정보, 다른 세로 열에 대해서도 계속 2 디지트 패리티 정보가 산출되고, 마지막으로 3차원 저장장치의 저장 폭(L)에 해당하는 마지막 L번째 세로 열에 대해 2 디지트 패리티 정보가 산출되므로, 최종적으로 생성되는 2개의 패리티 패킷(PP1, PP2)은 각각 길이가 3차원 저장장치의 저장 폭(L)과 동일한 패킷이 될 수 있다.
또한, 송신측은 3차원 저장장치의 데이터 영역에서 가로 및 세로의 위치가 같은 데이터 패킷들에 대해 깊이 방향으로 FEC 알고리즘을 적용하여, (n2-k2) 개의 패리티 프레임을 생성할 수 있다. 즉, 송신측은 (0,0) 위치에 배치된 데이터 패킷들에 대해 깊이 방향으로 FEC 코딩을 수행하여 (n2-k2) 개의 패리티 정보를 산출하 고, (0,1) 위치에 배치된 데이터 패킷들에 대해 역시 깊이 방향으로 FEC 코딩을 수행하여 패리티 정보를 산출할 수 있다. 이 과정이 반복 수행 됨에 따라 (n2-k2) 개의 패리티 정보가 산출되며, 이는 RS(n2, k2)로서, 패리티 프레임(940)이 (n2-k2)개 생성될 수 있다. 데이터 영역(930)의 마지막 부분(950)은 채워 지지 않을 수 있는데, 이 위치에 해당되는 깊이 방향의 패리티 정보는 RS(n2-1, k2-1)로서 생성될 수 있다. 깊이 방향의 패리티 정보가 RS(n2, k2)로 산출된 부분은 n2 바이트 중 (n2-k2) 바이트의 데이터 패킷이 손실되어도 복원 가능하다는 것을 의미하며, 깊이 방향의 패리티 정보가 RS(n2-1, k2-1)로 산출된 부분은 (n2-1) 바이트 중 (n2-k2) 바이트의 데이터 패킷이 손실되어도 복원될 수 있다는 것을 의미한다.
각 데이터 패킷의 3차원 저장장치 내에서의 위치, 즉, 오프셋(offset)은 수신측에 알려져야 하며, 이를 위해 RTP 패킷 헤더 내에 있는 예비 필드(reserved field) 또는 사용자가 정의하여 사용 가능한 확장 필드 (extension field)가 사용될 수 있다.
도 5는 도 4에 도시된 패킷 송신 단계의 순서도이다.
도 5를 참조하면, 도 4에서 데이터 패킷이 입력된 후(단계 440), 패리티 패킷이 산출되는 단계 460까지 진행되면, 단계 510에서 패리티 패킷의 송신 여부를 결정하는 인수의 값을 누적한다. 상기 패리티 패킷의 송신 여부를 결정하는 인수는 입력되는 데이터 패킷의 크기, 입력되는 데이터 패킷의 개수, 또는 시간 정보 등이 될 수 있다.
상기 단계 510 이후, 데이터 패킷 복원을 위한 정보 및 데이터 패킷을 포함 하는 확장 데이터 패킷을 수신측으로 송신한다(단계 520). 여기서, 상기 데이터 패킷 복원을 위한 정보는 확장 데이터 패킷의 헤더 부분에 포함될 수 있다.
또한, 상기 데이터 패킷 복원을 위한 정보는, 데이터 패킷일 경우에는 패킷 종류와 패킷의 오프셋을 포함하고, 패리티 패킷의 경우에는 패킷 종류와, 패킷의 오프셋, 또는 연관된 패킷 그룹 내의 데이터 패킷의 전체 크기와, 각 데이터 패킷의 오프셋을 포함할 수 있다.
실시간 전송에 많이 사용되는 RTP(Real-time Transport Protocol)와 같은 프로토콜이 사용되는 경우 오프셋을 확장 필드에 표시하여 전송할 수 있으며, RTP 패킷 자체가 확장 패킷이 된다.
상기 단계 520 이후, 패리티 패킷을 송신할 시점인지의 여부를 결정한다(단계 530).
상기 패리티 패킷의 송신 여부의 결정은 연관된 패킷 그룹을 결정하는 인수에 따라 달라질 수 있다. 연관된 패킷 그룹을 결정하는 인수가 연관된 패킷 그룹의 문턱치 크기인 경우에는 입력되는 데이터 패킷의 크기의 누적값이 문턱치 크기 이상이면 패리티 패킷을 송신할 시점으로 결정하고, 데이터 패킷의 문턱치 개수인 경우에는 입력되는 데이터 패킷의 개수가 문턱치 개수 이상이면 패리티 패킷을 송신할 시점으로 결정하며, 문턱치 시간인 경우에는 경과한 시간이 문턱치 시간 이상이면 패리티 패킷을 송신할 시점으로 결정할 수 있다. 한편, 기타 여러 가지 인수를 이용해서 송신 여부를 결정할 수 있으므로 상기 기술한 인수를 이용하는 것에 국한되지 않는다.
만약 패리티 패킷의 송신 시점이 아닌 것으로 판단되는 경우, 데이터 패킷의 입력 여부를 판단하는 도 4의 단계 430으로 리턴될 수 있다.
한편, 패리티 패킷의 송신 시점인 것으로 판단되는 경우, 채널 상태에 따라 송신될 패리티 패킷의 개수를 결정한다(단계 540). 즉, 채널 상태가 좋으면 송신하는 패리티 패킷의 수를 줄이고, 채널 상태가 나쁘면 패리티 패킷의 수를 늘려 보냄으로써 보다 나은 화질을 제공할 수 있다. 채널상태에 대한 정보는 RTCP(Real-time Transport Control Protocol)와 같이 이미 개발된 기술을 이용하여 주고 받을 수 있다.
이후, 송신측은 송신된 패리티 패킷의 개수와, 상기 단계 540에서 결정된 송신될 패리티 패킷의 개수를 비교하고(단계 550), 상기 비교 결과, 송신된 패리티 패킷의 개수가 송신될 패리티 패킷의 개수 이내이면, 패킷 복원을 위한 정보와 패리티 패킷을 포함한 확장 패리티 패킷을 송신하고(단계 560), 송신된 패리티 패킷의 개수를 누적한다(단계 570). 이때, 확장 패리티 패킷은 3차원 저장장치에서의 패킷의 위치인 패킷의 오프셋, 패킷의 종류 및 패리티 패킷을 포함할 수 있다. 또한, 확장 패리티 패킷은 각 데이터 패킷의 오프셋을 더 포함할 수 있으며, 이는 패킷 간 경계를 나타내는 코드가 없는 데이터 패킷의 복원에 사용될 수 있다.
상기 비교 결과, 송신된 패리티 패킷의 개수가 송신될 패리티 패킷보다 큰 경우, 다시 말해, 송신될 패리티 패킷 개수 이상 송신된 경우, 송신측은 송신된 패리티 패킷과 패리티 패킷의 개수를 초기화하고(단계 580), 패리티 패킷의 송신 여부를 결정하는 인수의 값 또한 초기화한 후(단계 590), 입력 데이터 패킷 존재 여 부를 판단하는 도 4의 단계 430으로 리턴될 수 있다.
상기 설명한 바와 같이, 연속되어 입력되는 데이터 패킷은 이전 데이터 패킷의 마지막 부분에 연결되어 배치된 후 도 5에 도시된 실시예에 따라 3차원 저장장치를 이용한 FEC 인코딩 및 패킷 송신 과정이 반복 수행된다.
상기에서는 본 발명의 실시예에 따른 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법에 대해 설명하였으며, 이하에서는 디코딩 방법에 대해 설명한다.
도 6은 본 발명의 일실시예에 따른 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법의 순서를 도시한 도면이다.
도 6을 참조하면, 본 발명의 실시예에 따른 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법은 수신측에서 수행된다.
먼저, 수신측은 FEC 디코딩에 필요한 파라미터로 사전에 약속된 값을 사용할 것인지의 여부를 판단하고(단계 610), 사전에 약속된 파라미터를 사용하지 않는 경우에는 송신측으로부터 전송되는 파라미터를 수신하여(단계 620) 사용한다. 그러나 사전에 약속된 파라미터를 사용하는 것으로 판단되는 경우, 파라미터를 수신하는 단계(단계 620)는 생략될 수 있다.
다음, 송신측으로부터 전송되어 수신되는 확장 패킷의 존재 여부를 판단하여(단계 630), 수신되는 확장 패킷이 존재하면 확장 패킷을 수신한 후 3차원 저장장치에 패킷의 오프셋에 따라 연결 배치한 후(단계 640), 3차원 저장장치를 이용하여 FEC 디코딩을 수행하고 데이터 패킷을 복원한 후 상위 계층으로 복원된 데이터 패킷을 전달한다(단계 650). 수신되는 확장 패킷이 존재하는 동안에는 상기 확장 패킷을 수신한 후 연결 배치하는 과정(단계 640)과, FEC 디코딩 및 데이터 패킷 복원과 전달 과정(단계 650)가 반복 수행될 수 있다.
한편, 상기 판단 단계(단계 630)에서 수신되는 확장 패킷이 없으면 수신 프로세스가 종료된다.
도 7은 도 6에 도시된 확장 패킷 수신 및 3차원 저장장치에 패킷의 오프셋에 따라 배치하는 단계의 순서도이다.
도 7을 참조하면, 송신측으로부터 전송되어 오는 확장 패킷이 수신되면(단계 710), 수신된 확장 패킷이 확장 데이터 패킷인지 또는 확장 패리티 패킷인지의 여부를 판단하여(단계 720), 확장 데이터 패킷이면 이 확장 데이터 패킷에서 데이터 패킷과 확장 패킷 헤더 부분에 포함되는 데이터 패킷 복원을 위한 정보를 분리하고(단계 730), 확장 패리티 패킷이면 패리티 패킷과 데이터 패킷 복원을 위한 정보를 분리한다(단계 740).
상기 분리된 데이터 패킷 또는 패리티 패킷은 도 9에 도시된 가상의 3차원 저장장치(또는 3차원 메모리)에 연결하여 배치된 후(단계 750), 3차원 저장장치를 이용하여 FEC 디코딩을 수행하고 데이터 패킷을 복원한 후 상위 계층으로 복원된 데이터 패킷을 전달하는 단계 650으로 리턴된다.
이때, 손실된 데이터 패킷이 없을 경우, 각 데이터 패킷 또는 각 패리티 패킷이 오프셋에 따라 배치된 후의 3차원 저장장치의 배치 형태는, 송신측에서 입력 데이터 패킷 및 패리티 패킷을 저장 배치한 3차원 저장장치의 배치 형태와 동일하 게 된다. 즉, 수신측은 송신측에서 알려주는 3차원 저장장치 내에서의 패킷의 위치(즉, 오프셋)에 따라 데이터 패킷 또는 패리티 패킷을 배치하므로, 송신측과 수신측에서 데이터 패킷 또는 패리티 패킷이 3차원 저장장치에 배치된 형태가 동일하게 된다. 따라서, 도 9를 사용하여 송신측 3차원 저장장치와 수신측 3차원 저장장치를 나타낼 수 있다.
도 8은 도 6에 도시된 3차원 저장장치를 이용한 FEC 디코딩 및 데이터 패킷 복원과 전달 단계의 순서도이다.
도 8을 참조하면, 도 7에서 분리된 데이터 패킷이 3차원 저장장치에 배치되면(단계 750), 연관된 패킷 그룹을 상위 계층으로 전달할 시점인지의 여부를 판단한다(단계 810).
만약 연관된 패킷 그룹을 상위 계층으로 전달할 시점이 아니면 확장 패킷을 수신하는 단계 730 또는 단계 740을 계속 수행하고, 만약 상위 계층으로 전달할 시점이면 수신한 데이터 패킷에 손실이 있는지의 여부를 판단한다(단계 820).
여기서 상기 상위 계층은 동기화 계층이나 디코더 계층 등이 될 수 있으며, 상위 계층으로 전달할 시점은 연관된 패킷 그룹 내의 마지막 패킷이 도착하거나, 또는 다음 연관된 패킷 그룹 내의 패킷이 도착하거나, 또는 패킷이 모두 도착하지 않으면 일정 시간이 경과한 시점이다. 여기서, 상기 연관된 패킷 그룹은 데이터 패킷들과 이에 대응되는 패리티 패킷들의 집합이 될 수 있다.
상기 판단하는 단계 820에서 데이터 패킷에 손실이 없으면, 수신된 데이터 패킷들을 상위 계층으로 전달하고(단계 860), 만약 데이터 패킷에 손실이 있으면 세로 방향의 패리티 패킷을 이용하여 복원이 가능한 부분이 있는지의 여부를 판단한다(단계 830).
상기 판단 결과, 세로 방향의 패리티 패킷을 이용하여 복원이 가능한 부분이 있는 경우, 손실된 데이터 패킷을 세로 방향의 패리티 패킷을 이용하여 복원하고(단계 850), 데이터 패킷에 손실이 있는지의 여부를 다시 판단한다(단계 820).
더 이상 데이터 패킷에 손실이 없으면, 복원한 데이터 패킷을 포함한 수신된 데이터 패킷을 상위 계층으로 전달하고(단계 880), 손실된 데이터 패킷이 아직 존재하는 경우 세로 방향의 패리티 패킷을 이용하여 복원이 가능한 부분이 있는지의 여부를 다시 판단한다(단계 830).
세로 방향의 패리티 패킷을 이용하여 복원이 가능한 부분이 더 있다면, 손실된 데이터 패킷을 세로 방향의 패리티 패킷을 이용하여 복원하고(단계 850), 세로 방향의 패리티 패킷을 이용하여 복원이 가능한 부분이 더 이상 없을 경우, 깊이 방향의 패리티 패킷을 이용하여 복원이 가능한 부분이 있는지의 여부를 판단한다(단계 840).
상기 판단 결과, 깊이 방향의 패리티 패킷을 이용하여 복원이 가능한 부분이 있는 경우, 손실된 데이터 패킷을 깊이 방향의 패리티 패킷을 이용하여 복원하고(단계 860), 데이터 패킷에 손실이 있는지의 여부를 판단한다(단계 820).
더 이상 데이터 패킷에 손실이 없으면, 복원한 데이터 패킷을 포함한 수신된 데이터 패킷을 상위 계층으로 전달하고(단계 880), 만약 데이터 패킷에 손실이 있고, 세로 방향의 패리티 패킷을 이용하여 복원이 가능한 부분이 있을 경우, 손실된 데이터 패킷을 세로 방향의 패리티 패킷을 이용하여 복원한다(단계 850).
이와 같이, 깊이 방향의 패리티 패킷을 이용하여 손실된 데이터 패킷을 복원한 뒤에는, 세로 방향의 패리티 패킷을 이용하여 복원 가능한 데이터 패킷이 생길 수 있으므로, 기존에 세로 방향의 패리티 패킷만을 이용하여 손실된 데이터 패킷을 복원하는 경우 보다 더욱 많은 데이터 패킷을 복원할 수 있게 된다.
세로 방향의 패리티 패킷을 이용하여 복원이 가능한 부분이 더 이상 없을 경우, 깊이 방향의 패리티 패킷을 이용하여 복원이 가능한 부분이 있는지의 여부를 다시 판단한다(단계 840). 깊이 방향의 패리티 패킷을 이용하여 복원이 가능한 부분이 더 있다면, 깊이 방향의 패리티 패킷을 이용하여 손실된 데이터 패킷을 복원하고(단계 860), 깊이 방향의 패리티 패킷을 이용해도 복원이 불가능할 경우, 손실된 데이터 패킷의 위치를 상위 계층으로 전달하고(단계 870), 상위 계층으로 데이터 패킷을 전달한다(단계 880).
이와 같이, 수신측에서는 3차원 저장장치를 이용한 FEC 디코딩 및 데이터 패킷 복원 과정에서, 세로방향 패리티 패킷과 깊이 방향 패리티 패킷을 반복적으로 적용 함으로써, 손실된 데이터 패킷의 복원 기능을 보다 향상시킬 수 있다. 이때, 세로방향 패리티 패킷과 깊이 방향 패리티 패킷을 적용하는 순서는 바뀔 수 있다.
이하에서는 도 3과 도 10을 함께 참조하여 도 8을 설명하여 발명의 이해를 도모한다. 도 10은 본 발명의 일실시예에 따른 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법에서 패킷 복원 과정을 도시한 도면이다.
도 3의 (a)를 참조하면, 손실된 패킷의 복원에 대해 RS(9, 7)를 사용하므로 7개의 입력 디지트가 2개의 패리티 패킷을 산출하고, 9 패킷들 중에서 손실된 패킷이 최대 2개까지는 복원될 수 있다. 여기서, 각 패킷이 자신의 일련 번호를 가지는 RTP 프로토콜을 사용함으로써 수신측에서 손실된 패킷의 위치를 알기 때문에 이러한 손실된 패킷들을 소거 부분이라고 할 수 있다. 예를 들어, 손실된 패킷 2(DP2)과 패킷 3(DP3)가 손실되어(lost) 수신측에 도착하지 않더라도, 패리티 패킷(PP1, PP2)에 의해 복원될 수 있다. 이는 기존의 2차원 저장장치를 이용하는 FEC 방법과 본 발명에 따른 3차원 저장장치를 이용하는 FEC 디코딩 방법 모두에서 가능하다.
한편, 동일한 세로 열 위치에서 2개를 초과하는 디지트가 손실되는 경우, 기존의 2차원 저장장치를 이용하는 FEC 방법에서는 손실된 디지트들은 복원될 수 없다. 예를 들어, 도 3의 (b)에 도시된 바와 같이, 패킷 1(DP1)과 패킷 2(DP2)가 손실된 경우, 화살표로 표시된 세로 열의 위치에서 3개의 디지트에서 손실된 부분이 발생되기 때문에, 기존의 2차원 저장장치를 이용하는 FEC 방법에서는 이 부분에서 손실된 패킷들을 복원할 수 없다.
이 경우, 본 발명에 따른 3차원 저장장치를 이용하는 FEC 디코딩 방법에서는 도 10에 도시된 바와 같이, 세로 방향의 FEC 디코딩으로 복원되지 않는 손실된 3 디지트 데이터(1010) 가운데 깊이 방향의 FEC 디코딩(1)을 적용하여 복원이 가능한 부분이 한 개의 디지트만 있으면, 세로 방향으로 FEC 디코딩(2)을 다시 적용하여 복원되지 못한 부분을 다시 복원할 수 있다. 예컨대, 본 발명에 따른 3차원 저장장치를 이용하는 FEC 디코딩 방법에서는 깊이 방향의 패리티 패킷(1040)을 이용하 여 손실된 3 디지트 데이터(1010) 중 적어도 하나의 디지트 데이터를 복원한 후, 세로 방향의 패리티 패킷(1020, 1030)을 이용하여 손실된 나머지 디지트 데이터를 복원할 수 있다. 즉, 본 발명에 따른 3차원 저장장치를 이용하는 FEC 디코딩 방법에서는 깊이 방향 FEC 디코딩(1)과 세로 방향 FEC 디코딩(2)를 다른 손실된 데이터 영역에 대하여 반복 적용하여 손실된 3 디지트 데이터(1010)를 복원할 수 있다. 만약 손실된 정도가 복원 가능한 범위를 벗어날 경우, 일부 손실된 데이터는 복원되지 않을 수 있으며, 이 때의 손실된 부분의 위치를 상위 계층으로 전달할 수 있다.
상기 예에서는 n이 9인 RS(9, 7)에 대해서만 설명하였지만, 통상적으로 RS(n, k) 코드가 사용되는 경우, GF(28)에서 가장 큰 n인 28=255까지 적용될 수 있다. 또한, 네트워크 상태가 매우 안 좋은 경우, (n-k)를 증가시키기 위해 패리티 패킷의 수를 증가시킬 수 있다.
또한, 상기 예에서는 RS(9, 7)의 경우에 대해서만 설명하였지만, 본 발명의 기술적 범위는 여기에 한정되지 않고 다른 RS 코드에 대해서도 적용될 수 있으며, 또한 RTP와 같이 패킷의 일련 번호를 헤더에 명시하는 프로토콜뿐만 아니라, 패킷의 일련 번호를 알 수 없는 경우에도 적용될 수 있으며, 이 경우에는 손실된 데이터 패킷을 복원할 수 있는 범위가 패리티 패킷 개수의 절반 이내로 한정될 수 있다.
또한, 상기한 본 발명의 실시예에서는 데이터 패킷 및 패리티 패킷을 3차원 저장장치에 배치하는 것으로 설명하였으며, 이러한 3차원 저장장치는 가상의 3차원 저장장치 또는 실제의 메모리일 수 있다. 여기서 송신하기 위해 입력되는 데이터 패킷을 저장하는 3차원 저장장치는 애플리케이션 등에 의해 지정되는 가상의 3차원 저장장치이거나, 또는 하드웨어적으로 데이터 패킷을 별도로 저장하는 실제 메모리일 수 있다.
또한, 본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
도 1은 패킷 크기가 대략 150 바이트와 3000 바이트 사이에서 가변되는 비디오 및 패킷 크기가 112 바이트로 고정된 오디오를 도시한 도면이다.
도 2는 종래 FEC 코딩 방식에 기초한 가변길이 패킷의 정렬 과정을 도시한 도면이다.
도 3은 종래 2차원 저장장치를 이용한 FEC 코딩 방식에 기초한 가변길이 패킷 수신 방법에서 수신된 패킷의 손실 복원 과정을 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법의 순서를 도시한 도면이다.
도 5는 도 4에 도시된 패킷 송신 단계의 순서도이다.
도 6은 본 발명의 일실시예에 따른 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법의 순서를 도시한 도면이다.
도 7은 도 6에 도시된 확장 패킷 수신 및 3차원 저장장치에 패킷의 오프셋에 따라 배치하는 단계의 순서도이다.
도 8은 도 6에 도시된 3차원 저장장치를 이용한 FEC 디코딩 및 데이터 패킷 복원과 전달 단계의 순서도이다.
도 9는 본 발명의 일실시예에 따른 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법에서 패킷 정렬 과정을 도시한 도면이다.
도 10은 본 발명의 일실시예에 따른 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법에서 패킷 복원 과정을 도시한 도면이다.

Claims (20)

  1. 3차원 저장장치를 이용한 가변길이 패킷의 FEC(Forward Error Correction) 인코딩 방법에 있어서,
    송신될 입력 데이터 패킷이 존재하는 경우 데이터 패킷을 입력받는 단계;
    상기 3차원 저장장치의 저장 폭이 저장 길이가 되도록, 또한 상기 3차원 저장장치의 데이터 영역 높이가 저장 높이가 되도록, 상기 입력된 데이터 패킷을 상기 3차원 저장장치에 연결하여 배치하는 단계;
    FEC 코딩을 수행하여, 상기 배치된 데이터 패킷에 대해, 세로 방향, 또는 깊이 방향으로 적용되는 각각의 패리티 패킷을 산출하는 단계;
    상기 FEC 코딩에 필요한 특정 파라미터의 사용이 약속되어 있는지의 여부를 판단하는 단계; 및
    상기 특정 파라미터의 사용이 약속되어 있지 않는 것으로 판단되는 경우, 상기 특정 파라미터를 결정하고 송신하는 단계
    를 포함하는 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법.
  2. 제1항에 있어서,
    상기 산출된 패리티 패킷을 상기 3차원 저장장치의 세로 방향과 깊이 방향으로 저장 배치하며, 상기 데이터 패킷의 복원을 위한 정보와 상기 데이터 패킷을 포함한 확장 데이터 패킷, 및 상기 데이터 패킷의 복원을 위한 정보와 상기 패리티 패킷을 포함한 확장 패리티 패킷을 송신하는 단계
    를 더 포함하는 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 특정 파라미터는,
    상기 3차원 저장장치의 저장 폭, 상기 3차원 저장장치의 데이터 영역 높이, 세로 방향으로 배치된 패리티 패킷의 개수, 또는 깊이 방향으로 배치된 패리티 패킷의 개수 중 적어도 하나를 포함하는 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법.
  5. 제2항에 있어서,
    상기 데이터 패킷과, 상기 데이터 패킷에 대응되는 패리티 패킷의 집합을, 연관된 패킷 그룹으로 지정하는 단계
    를 더 포함하는 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법.
  6. 제2항에 있어서,
    상기 데이터 패킷의 복원을 위한 정보와 상기 데이터 패킷을 포함한 확장 데 이터 패킷, 및 상기 데이터 패킷의 복원을 위한 정보와 상기 패리티 패킷을 포함한 확장 패리티 패킷을 송신하는 단계는,
    상기 패리티 패킷의 송신 여부를 결정하는 인수의 값을 누적하는 단계;
    상기 데이터 패킷의 복원을 위한 정보, 및 상기 데이터 패킷을 포함한 확장 데이터 패킷을 송신하는 단계;
    상기 패리티 패킷을 송신할 시점인지의 여부를 판단하는 단계;
    상기 판단 결과, 상기 패리티 패킷을 송신할 시점인 경우, 상기 데이터 패킷의 복원을 위한 정보와 상기 패리티 패킷을 포함한 확장 패리티 패킷을 송신하는 단계; 및
    상기 패리티 패킷의 송신 여부를 결정하는 인수의 값을 초기화하는 단계
    를 포함하는 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법.
  7. 제6항에 있어서,
    상기 데이터 패킷의 복원을 위한 정보와 상기 패리티 패킷을 포함한 확장 패리티 패킷을 송신하는 단계는,
    송신할 패리티 패킷 개수를 결정하는 단계;
    기송신된 패리티 패킷 개수가 상기 결정된 송신할 패리티 패킷 개수 이상인지의 여부를 판단하는 단계; 및
    상기 판단 결과, 기송신된 패리티 패킷 개수가 상기 결정된 송신할 패리티 패킷 개수보다 작은 경우, 데이터 패킷 복원을 위한 정보 및 패리티 패킷을 포함한 확장 패리티 패킷을 송신하는 단계; 또는
    상기 판단 결과, 기송신된 패리티 패킷 개수가 상기 결정된 송신할 패리티 패킷 개수 이상인 경우, 상기 송신된 패리티 패킷 개수를 초기화하는 단계
    를 포함하는 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법.
  8. 제6항에 있어서,
    상기 패리티 패킷의 송신 여부를 결정하는 인수는,
    입력되는 데이터 패킷의 크기, 입력되는 데이터 패킷의 개수, 또는 시간 정보 중 적어도 하나인, 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법.
  9. 제6항에 있어서,
    상기 패리티 패킷을 송신할 시점은,
    입력되는 데이터 패킷의 누적된 크기가 특정 연관된 패킷 그룹의 문턱치 크기 이상이거나, 또는 입력되는 데이터 패킷의 누적된 개수가 특정 연관된 패킷 그룹의 데이터 패킷 문턱치 개수 이상이거나, 또는 특정 연관된 패킷 그룹의 누적된 경과 시간이 문턱치 시간 이상일 경우인, 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법.
  10. 제6항에 있어서,
    상기 데이터 패킷 복원을 위한 정보는,
    상기 확장 데이터 패킷의 헤더 부분, 또는 상기 확장 패리티 패킷의 헤더 부분에 포함되는, 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법.
  11. 제6항에 있어서,
    상기 데이터 패킷 복원을 위한 정보는,
    패킷의 종류 및 패킷의 오프셋을 포함하는, 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법.
  12. 제11항에 있어서,
    상기 데이터 패킷 복원을 위한 정보는,
    상기 패리티 패킷의 경우, 데이터 패킷들의 오프셋을 더 포함하는, 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법.
  13. 제7항에 있어서,
    상기 송신할 패리티 패킷 개수는,
    패킷이 송신될 채널의 상태에 따라 결정되는, 3차원 저장장치를 이용한 가변길이 패킷의 FEC 인코딩 방법.
  14. 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법에 있어서,
    수신되는 확장 패킷이 존재하는 경우, 상기 확장 패킷으로부터 데이터 패킷 및 패리티 패킷을 분리하는 단계;
    상기 3차원 저장장치의 저장 폭이 저장 길이가 되도록, 또한 상기 3차원 저장장치의 데이터 영역 높이가 저장 높이가 되도록, 상기 분리된 데이터 패킷을 상기 데이터 패킷의 오프셋에 따라 상기 3차원 저장장치에 배치하는 단계;
    상기 배치된 데이터 패킷에 대해 세로 방향, 또는 깊이 방향으로 적용되는, 상기 패리티 패킷을 사용하여, 상기 데이터 패킷에 대한 FEC 디코딩을 수행하여 상기 데이터 패킷을 복원한 후 상위 계층으로 전달하는 단계;
    상기 FEC 디코딩에 필요한 특정 파라미터의 사용이 약속되어 있는지의 여부를 판단하는 단계; 및
    상기 특정 파라미터의 사용이 약속되어 있지 않는 것으로 판단되는 경우, 상기 특정 파라미터를 송신측으로부터 수신하는 단계
    를 포함하는, 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법.
  15. 삭제
  16. 제14항에 있어서,
    상기 확장 패킷으로부터 데이터 패킷 및 패리티 패킷을 분리하는 단계는,
    상기 확장 패킷이 확장 데이터 패킷인지 확장 패리티 패킷인지의 여부를 판단하는 단계; 및
    상기 판단 결과, 상기 확장 패킷이 데이터 패킷을 포함하는 확장 데이터 패킷일 경우, 데이터 패킷과 데이터 패킷 복원을 위한 정보를 분리하는 단계; 또는
    상기 판단 결과, 상기 확장 패킷이 패리티 패킷을 포함하는 확장 패리티 패킷일 경우, 상기 패리티 패킷과 데이터 패킷 복원을 위한 정보를 분리하는 단계
    를 포함하는 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법.
  17. 제14항에 있어서,
    상기 데이터 패킷을 복원한 후 상위 계층으로 전달하는 단계는,
    연관된 패킷 그룹을 상기 상위 계층으로 전달할 시점인지의 여부를 판단하는 단계; 및
    상기 판단 결과, 상기 연관된 패킷 그룹을 상기 상위 계층으로 전달할 시점일 경우, 상기 분리된 데이터 패킷을 상기 상위 계층으로 전달하는 단계
    를 포함하는 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법.
  18. 제17항에 있어서,
    상기 연관된 패킷 그룹을 상기 상위 계층으로 전달할 시점은,
    상기 연관된 패킷 그룹 내의 마지막 패킷이거나, 또는 다음 연관된 패킷 그룹 내의 패킷이 도착하거나, 또는 특정 시간이 경과한 시점인, 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법.
  19. 제14항에 있어서,
    상기 데이터 패킷을 복원한 후 상위 계층으로 전달하는 단계는,
    상기 데이터 패킷에 손실이 있는지의 여부를 판단하는 단계;
    상기 데이터 패킷에 손실이 있는 것으로 판단되는 경우, 세로 방향으로 산출된 패리티 패킷, 또는 깊이 방향으로 산출된 패리티 패킷을 이용하여, 상기 손실된 데이터 패킷을 복원하는 단계; 및
    상기 데이터 패킷에 손실이 없는 것으로 판단되는 경우, 수신된 데이터 패킷을 상위 계층으로 전달하는 단계
    를 포함하는 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법.
  20. 제19항에 있어서,
    상기 데이터 패킷을 복원한 후 상위 계층으로 전달하는 단계는,
    복원되지 않은 부분이 있거나, 또는 패리티 패킷을 이용하여 복원 가능한 부분이 없을 경우, 상기 상위 계층으로 손실 위치를 전달하는 단계
    를 더 포함하는 3차원 저장장치를 이용한 가변길이 패킷의 FEC 디코딩 방법.
KR1020090127230A 2009-12-18 2009-12-18 3차원 저장장치를 이용한 가변길이 패킷의 fec 인코딩 및 fec 디코딩 방법 KR101286912B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090127230A KR101286912B1 (ko) 2009-12-18 2009-12-18 3차원 저장장치를 이용한 가변길이 패킷의 fec 인코딩 및 fec 디코딩 방법
US12/878,595 US8365034B2 (en) 2009-12-18 2010-09-09 Forward error correction (FEC) encoding and decoding method of variable length packet based on three-dimensional storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090127230A KR101286912B1 (ko) 2009-12-18 2009-12-18 3차원 저장장치를 이용한 가변길이 패킷의 fec 인코딩 및 fec 디코딩 방법

Publications (2)

Publication Number Publication Date
KR20110070417A KR20110070417A (ko) 2011-06-24
KR101286912B1 true KR101286912B1 (ko) 2013-07-16

Family

ID=44152896

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090127230A KR101286912B1 (ko) 2009-12-18 2009-12-18 3차원 저장장치를 이용한 가변길이 패킷의 fec 인코딩 및 fec 디코딩 방법

Country Status (2)

Country Link
US (1) US8365034B2 (ko)
KR (1) KR101286912B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5460702B2 (ja) * 2009-05-14 2014-04-02 パナソニック株式会社 ビデオデータのパケット伝送方法
JP2014521245A (ja) * 2011-07-08 2014-08-25 サムスン エレクトロニクス カンパニー リミテッド マルチメディアシステムにおける前方誤り訂正パケットの生成方法とその誤り訂正パケットを送受信する方法及び装置
KR101829923B1 (ko) 2011-10-13 2018-02-22 삼성전자주식회사 데이터 통신 시스템에서 부호화 장치 및 방법
KR101933465B1 (ko) 2011-10-13 2019-01-11 삼성전자주식회사 이동 통신 시스템에서 패킷 송수신 장치 및 방법
KR101922559B1 (ko) * 2011-10-13 2018-12-05 삼성전자주식회사 통신 시스템에서 순방향 에러 정정 패킷을 송수신하는 방법 및 장치
KR101967884B1 (ko) * 2012-07-12 2019-04-12 삼성전자주식회사 방송 및 통신 시스템에서 패킷 송/수신 장치 및 방법
US10356143B2 (en) * 2012-10-10 2019-07-16 Samsung Electronics Co., Ltd. Method and apparatus for media data delivery control
WO2014179937A1 (zh) 2013-05-07 2014-11-13 华为技术有限公司 一种编码及解码的方法、设备和系统
US10382059B2 (en) 2013-07-03 2019-08-13 Samsung Electronics Co., Ltd. Transmitting apparatus, encoding method thereof, receiving apparatus, and decoding method thereof
KR102115895B1 (ko) * 2013-07-03 2020-06-05 삼성전자주식회사 송신 장치, 그의 인코딩 방법, 수신 장치 및 그의 디코딩 방법
CN103593155B (zh) * 2013-11-06 2016-09-07 华为终端有限公司 显示帧生成方法和终端设备
KR102014710B1 (ko) * 2019-04-04 2019-08-27 삼성전자주식회사 방송 및 통신 시스템에서 패킷 송/수신 장치 및 방법
US11240355B2 (en) 2019-05-17 2022-02-01 Arista Networks, Inc. Platform agnostic abstraction for forwarding equivalence classes with hierarchy
US10841197B1 (en) * 2019-05-17 2020-11-17 Arista Networks, Inc. Mechanism to preserve weights assigned to nexthops
US11277304B1 (en) * 2020-05-29 2022-03-15 Amazon Technologies, Inc. Wireless data protocol
US11700201B2 (en) 2021-07-26 2023-07-11 Arista Networks, Inc. Mechanism to enforce consistent next hops in a multi-tier network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997016046A1 (en) * 1995-10-24 1997-05-01 General Instrument Corporation Variable length burst transmission over the physical layer of a multilayer transmission format
US6317462B1 (en) 1998-10-22 2001-11-13 Lucent Technologies Inc. Method and apparatus for transmitting MPEG video over the internet
KR100458878B1 (ko) * 2002-05-03 2004-12-03 학교법인 경희대학교 Fec 코딩 방식에 기초한 가변길이 패킷 송수신 방법
JP2007074440A (ja) 2005-09-07 2007-03-22 Sumitomo Electric Ind Ltd 通信方法、通信システム及び送信装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7134069B1 (en) * 1999-06-16 2006-11-07 Madrone Solutions, Inc. Method and apparatus for error detection and correction
US7827461B1 (en) * 2006-09-18 2010-11-02 Marvell International Ltd. Low-density parity-check decoder apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997016046A1 (en) * 1995-10-24 1997-05-01 General Instrument Corporation Variable length burst transmission over the physical layer of a multilayer transmission format
US6317462B1 (en) 1998-10-22 2001-11-13 Lucent Technologies Inc. Method and apparatus for transmitting MPEG video over the internet
KR100458878B1 (ko) * 2002-05-03 2004-12-03 학교법인 경희대학교 Fec 코딩 방식에 기초한 가변길이 패킷 송수신 방법
JP2007074440A (ja) 2005-09-07 2007-03-22 Sumitomo Electric Ind Ltd 通信方法、通信システム及び送信装置

Also Published As

Publication number Publication date
US8365034B2 (en) 2013-01-29
US20110154161A1 (en) 2011-06-23
KR20110070417A (ko) 2011-06-24

Similar Documents

Publication Publication Date Title
KR101286912B1 (ko) 3차원 저장장치를 이용한 가변길이 패킷의 fec 인코딩 및 fec 디코딩 방법
JP3798387B2 (ja) Fec符号化方式に基づいた可変長パケット送信方法及び受信方法
US10361810B2 (en) Data packet transmission/reception apparatus and method
CN110943800B (zh) 数据包的发送方法、装置及系统、存储介质、电子装置
JP5442816B2 (ja) 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング
JP6893237B2 (ja) データストリーミングの前方誤り訂正
EP2103026B1 (en) A method to support forward error correction for real-time audio and video data over internet protocol networks
JP5847577B2 (ja) より低いレベルのパケット構造から導かれる記号識別子を用いた放送チャネル上の高品質ストリーム保護
US7233264B2 (en) Information additive code generator and decoder for communication systems
CN102668384B (zh) 具有通过单播系统传送的递增冗余的广播系统
CN101272495B (zh) 用于传输基于分组的图像帧的方法和装置
CN101155311B (zh) 一种视频通信中的视频码流错误检测和处理方法
WO2011091769A1 (zh) 一种纠错校验方法、设备和系统
EP2437421B1 (en) Method, device and communication system for retransmitting based on forward error correction
US20050013249A1 (en) Redundant packets for streaming video protection
US20060150055A1 (en) Adaptive information delivery system using FEC feedback
KR20040023568A (ko) 패킷 기반 통신 시스템을 위한 순방향 에러 보정 시스템및 방법
JP4041137B2 (ja) 映像符号化・送信装置,映像符号化・送信方法,映像符号化・送信プログラムおよびその記録媒体
JP5236735B2 (ja) 送信機及び受信機間の改良されたデータ構造境界同期
JPWO2008139882A1 (ja) 通信システムおよび通信方法、並びに、プログラム
JP2004007799A (ja) データ伝送方法およびデータ処理方法

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
LAPS Lapse due to unpaid annual fee