KR20130140938A - 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법 - Google Patents

방송 및 통신 시스템에서 패킷 송수신 장치 및 방법 Download PDF

Info

Publication number
KR20130140938A
KR20130140938A KR1020120050291A KR20120050291A KR20130140938A KR 20130140938 A KR20130140938 A KR 20130140938A KR 1020120050291 A KR1020120050291 A KR 1020120050291A KR 20120050291 A KR20120050291 A KR 20120050291A KR 20130140938 A KR20130140938 A KR 20130140938A
Authority
KR
South Korea
Prior art keywords
source
packet
source block
packets
block
Prior art date
Application number
KR1020120050291A
Other languages
English (en)
Other versions
KR101983032B1 (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 MX2014013560A priority Critical patent/MX348999B/es
Priority to US13/888,663 priority patent/US10218821B2/en
Priority to AU2013260417A priority patent/AU2013260417B2/en
Priority to JP2015511356A priority patent/JP2015520990A/ja
Priority to CA2873024A priority patent/CA2873024C/en
Priority to CN201380024021.0A priority patent/CN104303470B/zh
Priority to EP13787421.0A priority patent/EP2847953B1/en
Priority to PCT/KR2013/003955 priority patent/WO2013168964A1/en
Publication of KR20130140938A publication Critical patent/KR20130140938A/ko
Application granted granted Critical
Publication of KR101983032B1 publication Critical patent/KR101983032B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • H04L1/0007Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
    • H04L1/0008Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length by supplementing frame payload, e.g. with padding bits
    • 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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)

Abstract

방송 및 통신 시스템에서 패킷을 송수신하기 위한 방법 및 장치를 개시한다. 본 발명의 방법은, 주어진 심볼 크기 T를 가지는 2차원 배열을 소정 개수의 영역으로 구분하는 과정과, 전송하고자 하는 소스 패킷들을 상기 2차원 배열의 첫번째 행의 첫번째 열부터 상기 심볼 크기 T를 넘지 않게 순차적으로 배치하는 과정과, 상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 마지막 행에서, 해당 소스 패킷의 마지막 데이터가 할당되어 있는 영역 내의 나머지 부분을 소정의 값으로 설정하는 과정과, 상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 이후, 다음 소스 패킷을 이전 소스 패킷이 배치된 마지막 행에서 마지막 데이터가 할당된 영역의 다음 영역의 시작점에서부터 배치하는 과정과, 상기 소스 패킷들을 상기 2차원 배열에 모두 배열함으로써 소스 블록을 구성하는 과정과, 상기 소스 블록을 FEC 부호화하여 전송하는 과정을 포함한다. 이러한 본 발명은 방송 혹은 통신 시스템에서 제로 패딩 데이터의 양을 줄이면서 오류정정 능력을 개선할 수 있는 보다 효율적으로 소스 블록을 구성할 수 있다.

Description

방송 및 통신 시스템에서 패킷 송수신 장치 및 방법 {APPARATUS AND METHOD FOR TRANSMITTING AND RECEIVING PACKET IN BROADCASTING AND COMMUNICATION SYSTEM}
본 발명은 방송 혹은 통신 시스템에서 데이터의 송수신에 관한 것으로서, 특히, 채널 또는 네트워크 상에서 데이터의 손실(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)될 수 있다. 즉 기존의 소스 블록 구성은 패킷의 길이에 따라 상당한 양의 제로 패딩을 포함할 가능성이 높다. 제로 패딩된 데이터는 송신기에서 전송하지 않는 무의미한 값이지만, 소스 블록을 구성하는 심볼의 개수의 증가에 영향을 주고, 패리티 데이터를 만드는데 관여함으로써, 실제로는 불필요한 정보에 대한 패리티를 생성하여 전송하는 것과 동일한 효과를 유발한다.
이러한 문제점을 줄이기 위해 소스 패킷의 원하는 길이를 줄임으로써 상대적으로 제로 패딩의 양이 줄어들게 할 수 있다. 하지만, 이 경우 소스 블록을 구성하는 심볼들의 개수가 크게 증가하게 되어 매우 긴 길이의 FEC 부호가 필요하게 된다. 시스템에서 사용할 수 있는 FEC 부호의 길이는 한정적일 뿐만 아니라 부호의 길이가 길어질수록 최대로그우도(maximum log-likelihood: ML) 복호를 진행할 때 복잡도가 크게 증가하게 되므로 복호 대기 시간(latency)이 길어질 우려가 있다.
따라서, 제로 패딩 데이터를 줄여 부호화 심볼 개수를 줄일 수 있으면서 오류정정 능력을 개선할 수 있는 보다 효율적인 소스 블록 구성 방법이 필요하게 되었다.
본 발명은 방송 혹은 통신 시스템에서 패킷 데이터를 송수신하기 위한 방법 및 장치를 제공한다.
본 발명은 방송 혹은 통신 시스템에서 데이터 손실의 발생시 데이터를 효율적으로 복원하기 위한 방법 및 장치를 제공한다.
본 발명은 방송 혹은 통신 시스템에서 제로 패딩 데이터의 양을 줄이면서 오류정정 능력을 개선할 수 있는 보다 효율적으로 소스 블록을 구성할 수 있는 방법 및 장치를 제공한다.
본 발명의 바람직한 실시예에 따른 방법은; 방송 및 통신 시스템에서 패킷을 송신하기 위한 방법에 있어서, 주어진 심볼 크기 T를 가지는 2차원 배열을 소정 개수의 영역으로 구분하는 과정과, 전송하고자 하는 소스 패킷들을 상기 2차원 배열의 첫번째 행의 첫번째 열부터 상기 심볼 크기 T를 넘지 않게 순차적으로 배치하는 과정과, 상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 마지막 행에서, 해당 소스 패킷의 마지막 데이터가 할당되어 있는 영역 내의 나머지 부분을 소정의 값으로 설정하는 과정과, 상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 이후, 다음 소스 패킷을 이전 소스 패킷이 배치된 마지막 행에서 마지막 데이터가 할당된 영역의 다음 영역의 시작점에서부터 배치하는 과정과, 상기 소스 패킷들을 상기 2차원 배열에 모두 배열함으로써 소스 블록을 구성하는 과정과, 상기 소스 블록을 순방향에러정정(FEC) 부호화하여 전송하는 과정을 포함한다.
본 발명의 다른 실시예에 따른 방법은; 방송 및 통신 시스템에서 패킷을 수신하기 위한 방법에 있어서, 소스 블록으로 구성된 수신 데이터를 해석하는 과정과, 상기 소스 블록 해석기로부터 전달된 상기 소스 블록을 FEC 복호화하는 과정을 포함한다.
본 발명의 일 실시예에 따른 장치는; 방송 및 통신 시스템에서 패킷을 수신하기 위한 장치에 있어서, 소스 블록으로 구성된 수신 데이터를 해석하는 소스 블록 해석기과, 상기 소스 블록 해석기로부터 전달된 상기 소스 블록을 FEC 복호화하는 FEC 복호화기를 포함한다. 상기 소스 블록은, 주어진 심볼 크기 T를 가지는 2차원 배열을 소정 개수의 영역으로 구분하고, 전송하고자 하는 소스 패킷들을 상기 2차원 배열의 첫번째 행의 첫번째 열부터 상기 심볼 크기 T를 넘지 않게 순차적으로 배치하고, 상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 마지막 행에서, 해당 소스 패킷의 마지막 데이터가 할당되어 있는 영역 내의 나머지 부분을 소정의 값으로 설정하고, 상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 이후, 다음 소스 패킷을 이전 소스 패킷이 배치된 마지막 행에서 마지막 데이터가 할당된 영역의 다음 영역의 시작점에서부터 배치하고, 상기 소스 패킷들을 상기 2차원 배열에 모두 배열함으로써 구성된다.
도 1은 본 발명의 일 실시예에 따른 송신기 및 수신기의 개략적인 구조를 도시한 블록도이다.
도 2는 전형적인 소스 블록의 구성을 도시한 예이다.
도 3a 및 도 3b는 본 발명의 일 실시예에 따른 소스 블록의 구성을 도시한 예이다.
도 4는 본 발명의 일 실시예에 따라 소스 패킷 및 복구 패킷에 부가되는 시그널링 정보의 예를 나타낸 것이다.
도 5는 본 발명의 일 실시예에 따라 소스 패킷에 부가되는 시그널링 정보의 예를 나타낸 것이다.
도 6은 본 발명의 일 실시예에 따라 복구 패킷에 부가되는 시그널링 정보의 예를 나타낸 것이다.
도 7은 본 발명의 일 실시예에 따라 소스 패킷에 부가되는 시그널링 정보의 다른 예를 나타낸 것이다.
도 8은 본 발명의 일 실시예에 따라 소스 패킷에 부가되는 시그널링 정보의 또 다른 예를 나타낸 것이다.
도 9는 본 발명의 다른 실시예에 따른 소스 블록의 구성을 나타낸 것이다.
도 10a 및 도 10b는 본 발명의 일 실시예에 따른 FEC 객체 전송 정보의 예를 나타낸 것이다.
도 11은 본 발명의 일 실시예에 따른 시그널링 정보에 대한 하나의 세트를 나타낸 것이다.
도 12는 본 발명의 다른 실시예에 따른 시그널링 정보에 대한 하나의 세트를 나타낸 것이다.
도 13a 및 도 13b는 본 발명의 다른 실시예에 따른 FEC 객체 정보의 구조를 나타낸 것이다.
이하 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
후술되는 본 발명의 실시예들은 네트워크를 통해 고품질(HD) 컨텐츠 또는 초고품질(UHD) 컨텐츠들과 같은 고용량 컨텐츠 뿐만 아니라, 영상 회의/통화 등과 같은 다양한 멀티미디어 서비스를 송수신 할 수 있는 휴대폰, TV, 컴퓨터, 전자 칠판, 태블릿, 전자책 등의 모든 전자 기기에서 데이터 패킷의 손실을 효율적으로 복구하는 방법을 제안한다. 특히 데이터 패킷들에 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 방법으로 한정되지 않음에 유의하여야 한다.
도 1은 본 발명의 일 실시예에 따 송신기 및 수신기의 개략적인 구조를 도시한 블록도이다.
도 1을 참조하면, 송신기(100)는 소스 블록 구성기(102)와 FEC 부호화기(103)를 포함하여 구성된다. 소스 블록 구성기(102)는 소스 패킷(source packet)(101)이라 불리는 다양한 길이를 가질 수 있는 일정 개수의 데이터 패킷들로부터 소스 블록을 구성하며, FEC 부호화기(103)는 상기 소스 블록에 FEC를 적용하여 패리티 데이터 또는 복구 패킷과 같은 복구 정보(104)를 부가한 후 전송한다.
수신기(110)는 소스 블록 해석기(112)와 FEC 복호화기(113)로 구성된다. 소스 블록 해석기(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)는, 소스 패킷(203)에, 해당되는 각각의 데이터 패킷의 플로우 식별자(Flow ID)(201)와 패킷의 길이를 나타내는 정보(202)를 덧붙인 다음 첫 번째 행(row)의 첫 번째 열부터 심볼 크기 T를 넘지 않게 순차적으로 배치해 나간다. 여기서 소스 패킷의 길이 정보는 특별한 언급이 없으면 통상적으로 바이트 단위 기준의 길이를 나타낸다.
상기 부가 정보(201,202)가 덧붙은 모든 각각의 소스 패킷은 항상 각 행의 첫 번째 열에서부터 순차적으로 배치되며, 부가 정보(201,202)를 포함한 소스 패킷의 길이가 심볼 크기 T의 배수가 아닐 경우에는 소스 패킷이 배치된 마지막 행에서 소스 패킷의 데이터가 배치된 이후의 나머지 부분들은 모두 0 값으로 제로 패딩(204)된다. 주어진 소스 패킷들에 대해 상기 과정들을 모두 마친 후 K개의 행들로 이루어진 배열을 소스 블록(206)이라고 한다.
소스 블록(206) 내의 K개의 행들은 FEC 부호화를 적용하기 위한 K개의 소스 심볼들로 간주될 수 있고, K개의 소스 심볼에 FEC 부호화를 적용하여 복구(혹은 패리티) 심볼(205 or 207)을 생성하게 된다. 상기 소스 심볼과 복구 심볼을 통칭하여 부호화 심볼이라고 칭한다.
이상과 같이 소스 블록을 구성하는 경우 제로 패딩의 길이가 길어질 수 있다. 따라서 후술되는 실시예에서는 제로 패딩 데이터의 양을 줄이면서 오류정정 능력을 개선할 수 있는 효율적인 소스 블록의 구성 방법을 제공한다.
도 3a와 도 3b(도 3으로 통칭함)는 본 발명의 일 실시예에 따른 소스 블록의 구성을 도시한 예이다.
도 3a를 참조하면, 소스 블록 구성기는 심볼 크기 T를 가지는 2차원 배열을 T/m개의 열 단위로 m개의 영역으로 구분한다. 도 3a는 m=4인 값을 가지는 경우의 예를 도시하였다. 만일 T가 m의 배수가 아닌 경우에 각 영역은 [T/m] + 1개의 열들로 이루어진 영역들과 [T/m]개의 열들로 이루어진 영역들로 나누어진다. 여기서 임의의 실수 A에 대해 [A]는 A 보다 작거나 같은 최대 정수를 의미한다. [T/m] + 1개의 열들로 이루어진 영역과 [T/m]개의 열들로 이루어진 영역들은 송수신기간에 정해진 약속에 의해 정의되거나 또는 각각의 영역에 대한 열의 개수를 나열하여 나타낼 수 있다. 정해진 약속이라 함은, 예를 들어 T를 m으로 나눈 나머지가 n(n<m)이라 했을 때 첫 번째 n개의 영역은 [T/m]+1개의 열로 나누어 지고 나머지 m-n개의 영역은 [T/m]개의 열로 나누어지는 것과 같이 정해질 수 있다. 또한 상기한 규칙적인 영역의 구분 외에도 각 영역을 이루는 열의 개수는 송/수신기의 약속에 따라 서로 다르게 임의로 설정할 수도 있다.
필요할 경우에 플로우 ID(일 예로서 UDP(User Datagram Protocol) 플로우 ID)와 같은 패킷의 특성 정보(301)와 패킷의 길이를 나타내는 정보(302)가 소스 패킷에 덧붙여진다. 정보(301,302)가 부가된 소스 패킷들은 첫 번째 행(row)의 첫 번째 열부터 심볼 크기 T를 넘지 않게 순차적으로 배치된다.
이때 부가 정보가 덧붙은 임의의 소스 패킷이 배치된 마지막 행에서 해당 소스 패킷의 마지막 데이터가 할당되어 있는 영역 내의 나머지 부분은 항상 소정의(predetermined) 값으로 할당(혹은 설정)한다. 상기 소정의 값은 편의상 0 값으로 설정될 수 있지만 반드시 한정될 필요는 없다. 예를 들어 상기 도 3a에서 첫 번째 패킷의 마지막 데이터가 4개의 영역 중에서 2번째 영역에 할당되어 있으므로 2번째 영역의 나머지 부분(305)은 0값으로 할당한다.
또한 부가 정보가 덧붙은 하나의 소스 패킷이 배치된 이후 그 다음으로 배치할 소스 패킷은 항상 이전 소스 패킷이 배치된 마지막 행에서 마지막 데이터가 할당되어 있는 영역의 그 다음 영역의 시작점에서부터 배치된다. 다시 말해서 모든 소스 패킷은 어떤 영역의 시작점에서부터 배치되어야 한다. 예를 들어 도 3a에서 두 번째 소스 패킷은 제로 패딩된(305) 데이터 다음의 3번째 영역의 시작점에서부터 배치되기 시작한다. 만일 네 번째 소스 패킷의 제로 패딩 부분(306)과 같이 제로 패딩된 데이터가 마지막 영역에 할당되어 있을 경우, 다음 다섯 번째 소스 패킷은 다음 행의 첫 번째 영역에서 시작한다.
주어진 소스 패킷들에 대해 상기 과정들을 모두 마친 후 완성된 배열(307)이 소스 블록이 된다.
도 3b는, T= 16이고 m =2로 설정된 경우, 길이가 각각 18, 32, 59, 20, 24인 5개의 UDP 패킷(즉 소스 패킷)을 통해 소스 블록(308)을 구성하는 예를 보인 것이다. 처음 2 개의 패킷은 UDP 플로우 0로부터, 3번째 4번째 패킷은 UDP 플로우 1, 5번째 패킷은 UDP 플로우 2로부터 생성된 패킷들이다. 도시한 바와 같이, 각각의 소스 패킷에 UDP 플로우 ID와 UDP 패킷의 길이 정보가 부가되어 소스 블록을 구성하고 있음을 알 수 있다. 여기서 소스 블록의 각각의 엔트리(entry) Bi,j들은 바이트 단위 데이터로서 (i+1)번째 UDP 패킷의 (j+1) 번째 바이트를 의미한다.
소스 블록(308) 내에서 각 행은 1개의 소스 심볼과 대응되는데 여기서 구분된 각각의 영역을 기준으로 각 소스 심볼을 T/m 크기만큼 세분화(subdivide)한 것을 세분화된 심볼(subdivided symbol)로 정의했을 때, 소스 블록(308)에 대응되는 각 소스 심볼은 309에 나타낸 것처럼 길이가 8인 2개의 세분화된 심볼로 구성됨을 알 수 있다. 즉, 소스 블록(308)은 12개의 소스 심볼, 다시 말해서 24개의 세분화된 심볼(309)로 구성되어 있다.
다음으로 본 발명에서 제안하는 소스 블록의 마지막 행(또는 소스 심볼)의 구성의 실시 예를 설명한다.
소스 패킷들을 통해 소스 블록을 구성함에 있어서 시스템에서 처리 시간(processing time)의 제한 또는 메모리 용량의 제한 등과 같은 이유 등으로 인해 소스 블록의 길이 K에 대해 제약이 있을 수 있. 예를 들어 소스 블록 길이가 가질 수 있는 최대값이 Kmax로 설정된 경우를 설명한. 이 경우, 하나의 소스 블록 내에 포함될 수 있는 최대의 데이터 크기는 T*Kmax 바이트임은 자명하다. 하지만, 소스 패킷을 배치하는 과정에서 젱로 패딩 등이 발생할 수 있으므로 실제 데이터는 T*Kmax 바이트 보다 작을 수 있다.
여기서 특정 패킷이 소스 블록 구성기에 유입되었을 때 상기 유입된 패킷으로 인해 소스 블록 크기 Kmax 보다 더 많은 수의 소스 심볼이 필요한 소스 블록이 구성될 경우, 상기 유입된 패킷은 소스 블록 구성에서 제외된다. 즉, 소스 패킷들을 소스 블록에 순차적으로 대응시킬 때 최대 데이터 크기를 넘어서지 않는 범위 내에서 소스 패킷들을 소스 블록 구성에 적용하여 최대 데이터 용량 T*Kmax를 넘지 않는 소스 블록이 구성된다.
이와 같은 경우에 소스 블록을 구성하는 마지막 패킷의 데이터 일부는 반드시 소스 블록의 마지막 행 (또는 마지막 소스 심볼)에 배치되게 되는데 이때 상기 마지막 행 (또는 마지막 소스 심볼)에서 상기 마지막 패킷이 할당된 이후의 나머지 모든 부분은 영역의 구분과 상관없이 항상 소정의(predetermined) 값으로 할당(혹은 설정)된다. 예를 들어 도 3b에 나타낸 것처럼, 5번째 소스 패킷이 소스 블록의 마지막 패킷이라고 하면, 마지막 패킷의 데이터 일부가 소스 블록(308)의 마지막 12번째 행(또는 소스 심볼)에 첫 번째 영역(또는 첫 번째 세분화된 심볼)에 위치하게 된다. 이 때 첫 번째 영역(또는 첫 번째 세분화된 심볼)의 나머지 부분을 0 값으로 할당될 뿐만 아니라, 나머지 두 번째 영역(또는 두 번째 세분화된 심볼) 또한 모두 0 값으로 할당된다.
본 발명에서 제안하는 소스 블록의 마지막 행(또는 소스 심볼)의 구성에 대한 또 다른 실시예를 하기에서 설명한다.
시스템의 설정 조건에 따라 소스 블록의 마지막 행 (또는 마지막 소스 심볼)의 구성에 대한 제한 조건은 다양한 형태로 표현될 수 있다. 일 예로 소스 블록의 마지막 행 (또는 마지막 소스 심볼)에는 항상 1개의 소스 패킷의 데이터 일부만이 할당되도록 제한된다. 즉, 2개 이상의 패킷의 일부 데이터가 소스 블록의 마지막 행 (또는 소스 심볼)에 동시에 할당되지 않는다.
상기 제한 조건에 대한 구체적인 소스 블록 구성 동작의 예를 설명한다. 소스 블록 길이가 가질 수 있는 최대 값은 Kmax로 설정되어 있고, 소스 블록의 마지막 행(또는 마지막 소스 심볼)에는 항상 1개의 소스 패킷의 데이터 일부만 할당되도록 제한한 상기 제한 조건을 적용할 경우, 소스 블록의 구성 과정은 다음과 같다.
특정 소스 패킷의 유입으로 인해 Kmax 보다 더 많은 수의 소스 심볼이 필요한 소스 블록이 구성되게 될 경우, 소스 블록 구성기는 마지막으로 유입된 소스 패킷을 제외한 그 이전에 유입된 소스 패킷들만을 가지고 소스 블록을 구성한다. 설명의 편의를 위해 소스 블록 구성에서 제외된 상기 소스 패킷을 Packet-0, 그 이전에 유입된 소스 패킷들은 유입 순서에 대해 역순으로 각각 Packet-1, Packet-2, … 와 같이 나타내기로 한다.
소스 블록 구성기는, Packet-0 이전에 유입된 소스 패킷들 중에서 2개 이상의 소스 패킷들의 일부 데이터가 상기 구성된 소스 블록의 마지막 행 (또는 마지막 심볼)에 동시에 할당되어 있는지 아닌지 판단한다. 만일 상기 마지막 행 (또는 마지막 심볼)에 2개 이상의 소스 패킷들의 일부 데이터가 동시에 포함되어 있지 않고, 소스 블록을 구성하는 마지막 소스 패킷 Packet-1의 데이터만이 할당되어 있다면, 상기 소스 블록을 최종 소스 블록으로 결정한다.
반면 상기 마지막 행 (또는 마지막 심볼)에 상기 2개 이상의 소스 패킷들의 데이터 일부가 동시에 포함되어 있다면, 상기 마지막 행 (또는 마지막 심볼)에 1개의 소스 패킷의 일부 데이터만이 포함될 때까지 상기 소스 블록을 구성하고 있는 하나 혹은 그 이상의 소스 패킷들을, 소스 블록 구성기에 유입된 순서와 역순으로 상기 소스 블록에서 제거한다. 예를 들어 상기 마지막 행 (또는 마지막 심볼)에 Packet-1, Packet-2의 일부 데이터가 포함되어 있다면, Packet-1가 상기 소스 블록의 구성에서 제거된다. 다른 예로서, 상기 마지막 행 (또는 마지막 심볼)에 Packet-1, Packet-2, Packet-3의 일부 데이터가 포함되어 있다면, Packet-1, Packet-2가 상기 소스 블록의 구성에서 제거된다. 이와 같이 주어진 제한 조건을 만족하도록 소스 패킷들이 적절히 배치 및 제거되면, 상기 소스 블록을 최종적으로 확정한다.
소스 블록의 마지막 행(또는 소스 심볼)의 구성에 대한 본 발명의 또 다른 실시예는 다음과 같다. 즉 소스 블록 크기로 권장하는 기준 값이 Kb로 설정되어 있다. 이 경우에 하나의 소스 블록 내에 포함될 수 있는 권장되는 데이터 크기는 T*Kb 바이트임은 자명하다. 하지만, 소스 패킷들을 배치하는 과정에서 제로 패딩 등이 발생할 수 있으므로 실제로 소스 블록 내에 포함되는 데이터의 크기는 T*Kb 바이트 보다 작을 수 있다.
여기서 특정 패킷의 유입으로 인해 소스 블록 크기 Kb 보다 더 많은 양의 소스 심볼이 필요한 소스 블록이 구성되게 될 경우, 상기 유입된 패킷은 소스 블록 구성의 마지막 패킷으로 적용된다. 즉, 소스 패킷들을 소스 블록에 순차적으로 대응시킬 때 상기 권장하는 데이터 크기 Kb를 최초로 넘어서는 소스 패킷(즉 마지막으로 유입된 패킷)까지만 소스 블록 구성에 적용한다. 단, 마지막으로 유입된 패킷을 포함하는 소스 블록의 크기가 시스템에서 설정해 놓은 최대 메모리 또는 버퍼 사이즈 등을 초과할 경우에는, 상기 마지막으로 유입된 패킷이 소스 블록 구성에서 제외된다.
상기한 실시예에서 소스 심볼의 개수 즉, 소스 블록 길이는 Kb 보다 다소 증가할 수 있지만, 마지막 패킷의 크기가 너무 커서 시스템에서 설정해 놓은 최대 메모리 또는 버퍼 사이즈 등을 초과하여 소스 블록 구성이 불가능한 경우를 제외하고는 소스 블록의 마지막 행 (또는 마지막 소스 심볼)은 항상 1개의 소스 패킷의 데이터 일부만 할당되도록 제한하는 조건을 자연스럽게 만족시킬 수 있다.
본 발명의 일 실시예에서 제안하는 소스 블록의 구성은 아래와 같이 정리된다.
주어진 심볼 크기 T의 2차원 배열은 T/m 크기를 가지는 m개의 영역으로 열 기준으로 구분된다. 만일 T가 m의 배수가 아닌 경우에 각 영역은 [T/m] + 1개의 열들로 이루어진 영역들과 [T/m]개의 열들로 이루어진다. 그 다음에 주어진 소스 패킷들은, 필요할 경우 부가 정보들이 덧붙여진 다음, 순차적으로 상기 심볼 크기를 넘지 않게 상기 2차원 배열 내에 배치된다. 다른 실시예로서 주어진 영역 m이 정해진 이후 m의 배수가 되게 T를 정의할 수도 있다.
각각의 소스 패킷은 항상 m개로 나누어진 영역이 시작되는 열에서부터 배치되기 시작하여야 하며, 여기서 부가 정보가 덧붙은 임의의 소스 패킷이 배치된 마지막 행에서 해당 소스 패킷의 마지막 데이터가 할당되어 있는 영역 내의 나머지 부분은 항상 0과 같은 소정의 값으로 할당한다.
시스템의 요구에 따라 배치된 소스 패킷들 사이에 T/m 바이트 이상의 제로 패딩이 적용되는 경우도 있을 수 있다. 하지만 통상적으로 제로 패딩의 비율을 최소화 하기 위하여 제로 패딩의 최대 길이는 T/m 보다 작게 설정된다. 따라서 부가 정보가 덧붙은 하나의 소스 패킷이 배치된 이후 그 다음으로 배치할 소스 패킷은 통상적으로 상기 소스 패킷이 배치된 마지막 행에서 마지막 데이터가 할당되어 있는 영역의 그 다음 영역의 시작점에서부터 배치될 수 있다. 만일 상기 마지막 데이터가 마지막 m번째 영역에 할당되어 있을 경우에는 다음 소스 패킷의 배열은 다음 행의 첫 번째 영역에서 시작된다.
도 3a 및 도 3b의 소스 블록 구성은 도 2의 구성에 비해 제로 패딩의 양을 효과적으로 줄일 수 있다. 특히 소스 패킷들의 길이가 가변적으로 변하는 경우에는 2차원 배열을 m개의 영역으로 나누었을 경우에 제로 패딩의 양이 평균적으로 1/m 만큼 줄어드는 효과를 기대할 수 있다. 이러한 결과로 FEC 부호화가 적용되는 소스 심볼의 개수가 줄어드는 효과를 기대할 수 있다.
만일 주어진 소스 패킷들과 심볼 크기 T로부터 기존 방법을 통해 생성된 소스 심볼의 개수를 K1이라 하고, 상기 소스 심볼로부터 FEC를 적용하여 Np개의 복구 심볼을 생성했다고 하자. 또한 동일한 소스 패킷들과 심볼 크기 T로부터 K2개의 소스 심볼이 생성되었고, 동일한 FEC를 적용하여 동일한 양의 Np개의 복구 심볼을 생성했다고 하자. 동일한 양의 소스 패킷들로부터 동일한 양의 복구 심볼이 생성되었기 때문에 두 경우에 모두 오버헤드(overhead)는 동일하다고 볼 수 있다. 하지만, 두 경우의 FEC 부호율 K1/(K1 + Np), K2/(K2 + Np)를 비교해보면, K1>K2이 자명하기 때문에 K1/(K1 + Np) > K2/(K2 + Np)이 성립하게 된다. 통상적으로 동일한 FEC 기법에서 동일한 패리티 정보양에 대해 부호율이 낮은 경우가 보다 더 강인한(robust) 보호(protection) 성능을 보임은 잘 알려져 있다.
따라서 본 발명의 개시된 실시예는 제로 패딩의 양을 효율적으로 줄임으로써 추가적인 오버헤드가 거의 필요 없이 기존 방법에 비해 보다 좋은 오류정정 성능을 제공할 수 있다.
실제로 기존의 소스 블록 구성에서는 하나의 소스 패킷이 손실될 경우 소스 블록 내의 해당 소스 패킷이 배치되었던 모든 행들, 즉, 모든 부호화 심볼들이 손실됐다고 판단하지만, 본 발명의 실시예는 소스 블록 내의 행들 또는 부호화 심볼들을 m개의 영역으로 구분함으로써 손실된 부분과 손실되지 않은 부분으로 구분할 수 있게 된다. 이로 인해 m개의 영역 내에서 손실되지 않은 부분을 복호에 활용할 수 있게 되어 복호 성능이 개선된다.
본 발명의 실시예에서 제안한 소스 블록 구성을 통해 FEC를 적용할 경우에 송신기에서는 소스 블록 내의 구분된 영역의 개수와 각각의 소스 패킷들이 몇 번째 영역에서 시작됐는지에 대한 정보가 수신기 측에 전달되어야 된다. 만일 상기 정보들을 수신기 측에서 획득하지 못하면 임의의 소스 패킷들이 손실 됐을 때 소스 블록 내에서 어떤 위치에 배치되었던 패킷인지 알 수가 없기 때문에 FEC 복호를 수행하기 어려워진다.
심볼 크기 T와 구분된 영역의 개수 m에 대한 시그널링 정보는 각 소스 패킷에 부가되어 전송되거나 혹은 별도의 패킷을 통해 전송될 수 있다. 별도의 패킷을 통해 전송하기 위한 하나의 실시예로서, SDP(Session Description Protocol)와 같은 CDP(Content Delivery Protocol)를 사용하여 FEC 관련 정보들을 전송할 때 T와 m이 함께 전송될 수 있다. T가 m의 배수가 아닌 경우 미리 정해진 약속(예를 들어 상위 영역은 [T/m]+1개의 열을 가지고 하위 영역은 [T/m]개의 열을 가지도록)에 의해 수신기가 T와 m값을 보고 각 영역의 열의 개수를 알 수 있다.
다른 실시예로서, 수신기에서 수신된 소스 패킷이 소스 블록 내에서 배치된 형태를 파악할 수 있도록 하기 위해서는 각 소스 패킷의 배치가 시작되는 행의 위치, 즉 부호화 심볼의 순서와 해당 부호화 심볼 내에서 시작되는 영역의 위치를 나타내는 정보가 각 소스 패킷에 부가되어 전송될 수 있다.
도 4는 본 발명의 일 실시예에 따라 소스 패킷 및 복구 패킷에 부가되는 시그널링 정보의 예를 나타낸 것이다.
도 4를 참조하면, 소스 블록 번호(Source Block Number: SBN)(401)는 해당 소스 패킷이 대응되는 소스 블록을 지시하며, 부호화 심볼 식별자(Encoding Symbol ID: ESI)(402)는 소스 패킷이 시작되는 최초 부호화 심볼, 즉, 소스 블록 내의 행의 위치를 지시하며, 패킷 시작 위치(Packet Start Position: PSP)(403)는 소스 블록 내에서 소스 패킷이 배치되기 시작된 영역을 지시한다. 예를 들어 상기 도 3a에서 m=4라 할 때, 첫 번째 소스 패킷의 ESI 및 PSP의 값은 (0, 0)이 되며, 두 번째 소스 패킷의 ESI 및 PSP 값은 (2, 2)가 되며, 세 번째 소스 패킷의 ESI 및 PSP 값은 (4, 3)이 되며, 4 번째 소스 패킷의 ESI 및 PSP 값은 (7, 1) 등과 같이 나타낼 수 있다.
추가적으로 소스 블록의 총 행의 개수를 지시하는 소스 블록 번호(Source Block Number: SBL)(406)가 전송되어, 정확한 소스 블록의 구조를 지시할 수 있다. 또한 부호화 심볼 식별자(ESI)(405)와 소스 블록 길이(Source Block Length: SBL)(406)이 복구 패킷에 부가되어 전송될 수 있다.
소스 블록 내 소스 심볼의 개수를 K개라 할 때, 통상적으로 소스 패킷의 부호화 심볼 식별자 (ESI)(402)는 각각의 소스 심볼에 대해 순서대로 0, 1, 2, …, (K - 1)의 값이 할당되지만, 복구 패킷의 부호화 심볼 식별자 (ESI)(405)는 시스템의 요구 사항에 따라 다양하게 할당될 수 있다. 예를 들어 복구 패킷의 부호화 심볼 식별자 (ESI)(405)도 상기 소스 패킷의 부호화 심볼 식별자 (ESI)(402)처럼 각각의 복구 심볼에 대해 0, 1, 2, … 와 같이 순차적으로 할당될 수 있다. 이 경우 복구 패킷의 부호화 심볼 식별자 (ESI)(405)를 위해 필요한 옥텟 크기를 최소화 할 수 있는 장점이 있다.
다른 실시예로, 복구 심볼을 소스 심볼 뒤에 이어진 부호화 심볼로 간주하여 각각의 복구 심볼에 대해 ESI (405)는 K, (K + 1), (K + 2), … 와 같은 순서로 할당될 수도 있다.
또 다른 실시예로서, 소스 블록이 m개의 영역으로 나뉘어져 있어 각 소스 심볼을 m개의 세분화된 심볼로 간주할 경우에 소스 블록 내에서 총 m*K개의 세분화된 심볼이 존재하기 때문에 각각의 복구 심볼에 대해 복구 패킷의 부호화 심볼 식별자 (ESI)(405)는 m*K, (m*K + 1), (m*K + 2), … 과 같이 순차적으로 할당될 수 있다.
각 시그널링 필드(401,402,403,404,405,406)의 크기는 시스템의 요구 사항에 따라 정해질 수 있다. 일 실시예로서 SBN(401)은 1 또는 2 바이트, ESI(402)는 2 또는 3 바이트, PSP(403)은 1 또는 2 바이트, SBL(406)은 2 또는 3 바이트가 될 수 있다.
수신기는 각각의 소스 패킷으로부터 SBN(401), ESI(402), PSP(403)을 획득한다. 만일 1개 이상의 소스 패킷의 손실이 발생하여 FEC 복호가 필요할 경우 수신기는 최소 1개 이상의 복구 패킷을 수신하고, 복구 패킷으로부터 SBL(406)를 획득한 다음, 추가적으로 별도의 패킷을 통해 전송되는 소스 블록 내의 영역의 개수에 대한 정보를 획득하면 해당 SBN(401)에 대응되는 소스 블록의 구성에 대해 완벽히 파악할 수 있게 된다. 또한 수신기는 각각의 복구 패킷으로부터 SBN(404)과 ESI(405)를 획득하고, 이들을 이용하여 해당 SBN의 소스 블록에 대한 FEC 복호 과정을 진행하여 손실된 소스 패킷을 복원할 수 있다.
도 5는 본 발명의 일 실시예에 따라 소스 패킷에 부가되는 시그널링 정보의 예를 나타낸 것이다. 도 5를 참조하면, 부호화 심볼 내에서 구분된 각각의 영역을 기준으로 세분화(subdivide) 하여, 즉, 각 부호화된 심볼을 사전에 약속된 숫자와 길이만큼 세분화하여 세분화된(Subdivided) 부호화 심볼로 정의하고, 각각의 영역별로 심볼 순서를 부여함으로써 도 4의 ESI(402), PSP(403)를 결합하여 하나의 시그널링 정보, 즉 세분화된 부호화 심볼 식별자(SESI)(502)가 구성될 수 있다. 여기서 구분된 영역의 개수가 m이라 하면, 세분화된 부호화 심볼의 개수는 총 부호화 심볼 개수의 m배가 되며, 크기는 평균적으로 1/m로 줄어든다. 일 실시예로서 SESI는 2 바이트에서 4 바이트 사이의 값을 가질 수 있다.
예를 들어, 상기 도 3a에서 m=4라 할 때, 각 부호화 심볼들은 T/4 크기로 세분화 되어 기존 부호화 심볼의 개수보다 4배 증가한 세분화된 부호화 심볼로 정의될 수 있다. 따라서 상기 도 3a에서 살펴보면, 첫 번째 소스 패킷의 SESI 값은 0이 되며, 두 번째 소스 패킷의 SESI 값은 10이 되며, 가 되며, 세 번째 소스 패킷의 ESI 및 PSP 값은 19이 되며, 4 번째 소스 패킷의 ESI 및 PSP 값은 29 등과 같이 나타낼 수 있다.
상기 실시 예에서는 SESI = m*ESI + PSP의 관계를 적용하였으나 시스템의 설정에 따라 다양한 일대일 대응 형태로 나타낼 수 있다. 상기 수식 SESI = m*ESI + PSP를 이용하여 수신기는 ESI, PSP의 값들로부터 SESI의 값을 도출할 수 있을 뿐만 아니라, ESI = [SESI/m], PSP = SESI - m*[SEI/m]와 같이 SESI의 값으로부터 ESI, PSP를 각각 획득할 수도 있다. 이와 같이 획득한 값들은 수신기의 FEC 복호화기 구성에 따라 복호 과정에서 활용될 수 있다.
구분된 영역의 개수 m에 대한 시그널링 정보는 SDP와 같은 별도의 패킷을 통해 전송하는 것이 오버헤드 측면에서 효율적이나, 다른 실시예로서 소스 패킷 또는 복구 패킷에 부가하여 전송될 수도 있다.
도 6은 본 발명의 일 실시예에 따라 복구 패킷에 부가되는 시그널링 정보의 예를 나타낸 것이다. 도 6을 참조하면, 복구 패킷에는 SBN(404), ESI(405), SBL(406)과 함께, 구분된 영역의 개수 m을 지시하는 영역 개수(Number of Regions: NOR)(407)이 부가된다.
수신기는, FEC 복호 과정이 필요하게 될 경우 복구 패킷에 포함되어 있는 SBL(406)을 이용하여 소스 블록의 크기를 알 수 있고, 또한 NOR(407)를 이용하여, 소스 블록이 몇 개의 영역으로 구분되어 있는지 판단할 수 있으므로, 소스 블록을 영역 별로 구분하여 복호할 수 있게 된다.
네트워크 또는 채널 상황이 좋지 않아 FEC 복호 과정의 필요성이 예상되는 상황에서, 수신기는 소스 패킷을 수신함과 동시에 소스 블록이 몇 개의 영역으로 구분되어 있는지 사전에 판단하는 것이 유리하다. 따라서 후술되는 실시예에서는 소스 패킷에 NOR가 부가되어 전송될 수 있다.
도 7 및 도 8은 본 발명의 일 실시예에 따라 소스 패킷에 부가되는 시그널링 정보의 다른 예들을 나타낸 것이다. 도 7의 예에서, 소스 패킷에 부가되는 시그널링 정보는, SBN(701), ESI(702), NOR(703) 및 PSP(704)를 포함한다. 도 8의 예에서, 소스 패킷에 부가되는 시그널링 정보는, SBN(801), NOR(802) 및 SESI(803)를 포함한다.
이상에서 설명한 바와 같이, 송신기에서는 소스 블록 구성에 대한 정보를 수신단에 전달하기 위하여, 임의의 소스 패킷이 소스 블록 내의 몇 번째 영역에서 배치가 시작되는지에 대한 정보를 소스 패킷에 부가하여 전송하며, 이에 해당하는 시그널링 정보는 SESI 또는 PSP를 포함한다. 또한, 소스 블록이 몇 개의 영역으로 구분되어 있는지에 대한 정보인 NOR은 소스 패킷 또는 복구 패킷 또는 별도의 패킷을 통해 전송될 수 있다.
수신기는 SBN, SBL, NOR을 수신하고, ESI와 PSP를 획득하거나, SESI를 획득함으로써 소스 블록의 구성을 정확히 알 수 있게 되어 FEC 복호를 진행할 수 있게 된다.
본 발명의 실시예로써 3GPP(3rd Generation Partnership Project) SA4(Service Aspects 4) MBMS(Multimedia Broadcast and Multicast Service) 규격은 AL-FEC(Application Layer-Forward Error Correction)로써 랩터 부호(Raptor code)를 적용하고 있는데 랩터 부호의 대응 가능한 최대 소스 심볼 길이는 8192이다. 이로 인하여 주어진 소스 패킷들의 개수가 일정 이상일 경우 소스 블록을 구성함에 있어서 패딩 바이트의 양을 줄이기 위해 T를 작게 하는 데는 한계를 가진다.
이로 인하여 3GPP SA4 MBMS 규격에 본 발명을 적용할 경우 랩터 부호가 가지고 있는 대응 가능한 최대 소스 심볼 길이 8192 내에서 주어진 소스 패킷들에 대해 T를 m개로 나누어 소스 블록을 구성하면 패딩 바이트의 양을 줄여 부호화 심볼들의 수를 줄이고 오류정정능력을 개선할 수 있다.
구체적인 예를 들어 소스 패킷 1000개가 있고 각 소스 패킷의 길이는 512 바이트 ~ 1024 바이트 사이에서 랜덤하게 선택된다고 했을 때 소스 패킷의 그 평균적인 길이는 768 바이트이므로 전체 데이터 양은 대략 768000라 할 수 있다. T를 128 bytes로 설정한 경우 소스 패킷당 평균 패딩의 양이 64 바이트이므로 총 패딩의 양은 64000이다. 이로 인하여 생성된 소스 블록의 전체 양은 832000이다. T가 128이므로 소스 심볼의 개수는 6500개이다.
여기에 본 발명을 적용해서 m=4라고 하면 서브 소스 심볼 크기 T/4 = 32이고 소스 패킷당 16 bytes의 패딩이 발생하므로 전체 패딩의 양은 16000이다. 이로 인하여 소스 블록의 전체 양은 784000 바이트이다. T/4=32이므로 서브 소스 심볼의 개수는 24500, 이를 소스 심볼의 개수로 환산하면 6125개이다. 이로 인하여 기존 방법 대비 본 발명은 이 경우 6500 - 6125 = 375개의 소스 심볼 개수를 줄일 수 있다. 만일 m=8,16등으로 설정하면 더 많은 효과를 누릴 수 있다.
송신기는, AL-FEC를 적용하는 경우, 주어진 소스 패킷들을 순서대로 소정 개수의 소스 패킷들로 나누고 나누어진 각각의 소정 개수의 소스 패킷을 소스 블록 구성기(120)에 입력한다. 소스 블록 구성기(102)는 각각의 소스 패킷 선두에 UDP 플로우 ID와 소스 패킷의 길이 정보를 삽입한 후 주어진 T와 m값에 의해 K개의 소스 심볼로 구성된 소스 블록을 구성한다. FEC 부호화기(103)는 소스 블록으로부터 소정 개수의 복구 심볼들을 생성한다. 송신기의 시그널링 정보 생성기(도시하지 않음)는, 도 4 혹은 도 5와 같은 방식에 의해 각각의 소스 패킷 후미에는 SBN와 SESI를 부여하고, 하나 또는 그 이상의 복구 심볼을 연결하여 복구 패킷을 만든 후 선두에는 SBN, ESI, SBL를 부여한다 이 때 해당 복구 패킷의 ESI에는 해당 패킷의 첫 번째 복구 심볼 ESI가 할당된다. 그리고 각 패킷의 선두에 UDP 헤더를 부가하는데, 소스 패킷과 복구 패킷은 포트를 달리함에 의해 서로 구분된 UDP 패킷으로 구성된다. 패킷들의 전송 전 T, m을 포함한 FEC 관련 시그널링 정보는 SDP를 통해 미리 전송될 수 있다.
수신기의 소스 블록 해석기(112)는 수신된 패킷에 포함된 UDP 헤더의 포트에 의해 소스 패킷과 복구 패킷인지 구분하여, 소스 패킷인 경우 소스 패킷의 후미에 저장된 SBN, SESI을 획득하고, 복구 패킷인 경우 SBN, ESI, SBL을 획득한다. 이후 송신기로부터 미리 전송받은 T와 m을 바탕으로, 수신된 패킷으로부터 소스 블록과 복구 심볼들을 재구성한다. FEC 복호화기(113)는 m에 의해 나누어진 세분화된(subdivided) 소스 심볼 단위로 복호화를 수행한다. 물론 T 크기를 갖는 소스 심볼 단위로 복호화하는 것도 가능하다. 이 경우 T 크기의 소스 심볼 내에서 세분화된 소스 심볼에 손실이 발생한 경우 해당 T 크기의 소스 심볼 전체를 손실로 간주하여 복호한다.
본 발명의 다른 실시예에서 제안하는 소스 블록의 구성은 아래와 같이 정리할 수 있다.
주어진 FEC 부호가 있을 때 통상적으로 그 소스 심볼의 개수는 한정되어 있는데, 소스 블록 구성기는, 주어진 FEC 부호의 최대 대응 가능한 소스 심볼의 개수를 Kmax라 했을 때 Kmax의 값에 상관없이 주어진 소스 패킷들로부터 FEC 부호의 부호화/복호화 복잡도나 소스 블록 구성시 발생될 패딩의 바이트 양을 고려하여 T 값을 정하고 심볼 크기가 T인 소스 심볼 K개를 생성한 다음, 소스 심볼 [K/m]+1 or [K/m]개로 구성된 m개의 소스 블록을 구성할 수 있다. 예를 들어 소스 심볼 K개가 0,1,2,…,K-1의 순서를 가질 때 첫 번째 소스 블록은 0, m, 2m, 3m,…,([(K-1)]/m)*m 번째 소스 심볼로 구성된 [K/m]개의 소스 심볼로 구성되고, 두 번째 소스 블록은 1, m+1, 2m+1, 3m+1,…, ([(K-1)]/m)*m 번째 소스 심볼로 구성된 [K/m]개의 소스 심볼로 구성되는 식으로, m개의 소스 블록을 구성할 수 있다. 여기에서는 용이한 설명을 위해 K를 m의 배수로 가정하였다.
m*Kmax = K라 하면 K/m (=Kmax)개의 소스 심볼로 구성된 소스 블록을 구성함에 의해 기존 방법에 비해 패딩의 양을 줄일 수 있다. 이 경우, 기존 방법은 소스 패킷 당 평균적으로 m*T/2 바이트 만큼의 패딩이 발생하는 반면, 앞서 설명한 구성 방법은 T/2 바이트 만큼의 패딩이 발생하기 때문에 소스 패킷 당 평균적으로 (m-1)*T/2 만큼의 패딩 바이트를 줄여 최종적으로 부호화 심볼들의 수를 줄일 수 있다.
본 발명의 확장된 실시예로서 K/m개의 소스 심볼로 구성된 m개의 소스 블록들은 서로 결합하여 하나의 큰 소스 블록으로 간주될 수 있다. 이 경우에는 심볼 크기는 m*T로 간주되며, 도 4 내지 도 8에 나타낸 SBN 값은 결합된 소스 블록을 나타내게 된다.
이해를 돕기 위해 도 9에 m = 4인 경우에 대한 간단한 예를 도시하였다.
도 9를 살펴보면, 소스 블록 구성기는 K개의 소스 심볼(901)을 생성한 이후 상기 K개의 소스 심볼 중에서 K/4개의 소스 심볼, 즉 0, 4, 8, 12, …, (K - 4)번째 소스 심볼을 가지고 첫 번째 소스 블록(902)을 구성하고, 상기 K개의 소스 심볼 중에서 K/4개의 1, 5, 9, 13, …, (K - 3)번째 소스 심볼을 가지고 두 번째 소스 블록(903)을 구성하고, 상기 K개의 소스 심볼 중에서 K/4개의 2, 6, 10, 14, …, (K - 2)번째 소스 심볼을 가지고 세 번째 소스 블록(904)을 구성하고, 상기 K개의 소스 심볼 중에서 K/4개의 3, 7, 11, 15, …, (K - 1)번째 소스 심볼을 가지고 네 번째 소스 블록(905)을 구성한다.
송, 수신기에서는 각각의 소스 블록(902, 903, 904, 905)을 별개의 소스 블록들로 다루어 FEC 부호화/복호화를 수행하거나, 혹은 소스 블록(902, 903, 904, 905)을 결합하여 하나의 소스 블록(906)으로 간주하여 결합된 소스 블록(906)에 대해 FEC 부호화/복호화를 수행할 수도 있다. 소스 심볼(901)의 심볼 크기를 T라 할 때, 결합된 소스 블록(906)에 대한 심볼 크기는 4T로 간주된다. 상기 결합된 소스 블록(906)은 도 3a에 나타낸 소스 블록 구조와 동일함에 유의하자.
도 9의 소스 블록에 대응되는 FEC 부호화 및 복호화, 시그널링 방법들은 도 3a 및 3b 내지 도 4에 나타낸 소스 블록 구성과 유사하게 구현 및 실현될 수 있다.
본 발명의 또 다른 실시예에서는 심볼 크기 T와 구분된 영역의 개수 m에 대한 정보를 별도의 패킷 또는 경로를 통해 전송한다. 이해의 편의를 위해 3GPP TS 26.346에서 SDP에 의해 심볼 크기 T를 전송하는 FEC 객체 전송 정보(FEC Object Transmission Information: FEC OTI)를 설명하면 하기와 같다.
즉, FEC 객체 전송 정보는, 심볼 단위의 최대 소스 블록 길이(maximum source block length, in symbols) 및 바이트 단위의 심볼 크기(symbol size, in bytes)로 구성된다. 심볼 크기와 최대 소스 블록 길이는 4 옥텟 필드(4 octet field, Network Byte Order)로 부호화될 수 있다. 소스 블록 길이는 특정 스트림에 대한 FEC 객체 전송 정보에 의해 지시된 최대 소스 블록 길이를 초과하지 않는 특정 패킷의 복구 FEC 페이로드 식별자(Repair FEC payload ID) 내에서 시그널링된다. FEC 객체 전송 정보는 SDP를 통해 전송된다. 여기서 복구 FEC 페이로드 식별자는 소스 블록 구성을 나타내기 위해 복구 패킷에 부가되는 시그널링 정보를 의미한다.
소스 블록 내에서 구분된 영역의 개수 또는 하나의 부호화된 심볼 내에서 세분화된 심볼의 개수를 나타내는 값 m을 위해 소정의 크기를 가지는 시그널링 정보가 FEC OTI에 추가적으로 할당될 수 있다. 도 10a 및 도 10b는 본 발명의 일 실시예에 따른 FEC OTI의 예를 도시한 것이다.
도 10a를 살펴보면, 하나의 부호화된 심볼을 세분화 한 값 m을 나타내는 세분화된 심볼 개수(Number of Subdivided Symbols: NSS)(1002)이, 심볼 크기 T (1001) 및 최대 소스 블록 길이(1003)와 함께 FEC OTI에 포함되어 있다.
도 10b는 도 10a의 NSS(1003)를 NOR(1004)로 대체하여 표현한 FEC OTI의 구성을 나타낸 것이다. 즉, NSS(1002)는 심볼을 기준으로 하나의 심볼을 세분화한 값을 의미하며, NOR(1004)는 소스 블록 내에서 구분된 영역의 개수를 의미하지만, 실제로 동일한 값을 가지고 동일한 역할을 할 수 있다.
NSS(1002) 또는 NOR(1004)은 특정한 제한 없이 시스템의 요구 조건에 따라 다양한 크기를 가질 수 있으며, 일 실시예로서 1 바이트 또는 2 바이트 크기를 가진다. 도 10a 및 도 10b에서 최대 소스 블록 크기(1003)은 시스템에 따라 전송될 수도 있고 전송되지 않을 수도 있다.
하나의 부호화된 심볼을 세분화 하였을 때 상기 심볼 크기 T와 NSS 또는 NOR 값에 해당하는 m과의 관계에 따라 각 세분화된 심볼의 크기를 결정하는 실시 예를 설명한다.
만일 T를 m으로 나눈 몫이 a, 나머지를 b라 할 때, 즉,
Figure pat00001
인 관계가 성립할 때 처음 b개의 세분화된 각 심볼의 크기는 (a + 1), 나머지 (m - b)개의 각 세분화된 심볼의 크기는 a로 설정할 수 있다. (상기 크기가 (a+1) 및 a인 각각의 세분화된 심볼의 순서는 뒤바뀔 수 있음에 유의한다.) 만일 T가 m의 배수일 경우 각 세분화된 심볼의 크기는 a로 동일함을 알 수 있다.
하나의 부호화된 심볼을 세분화 하였을 때 상기 심볼 크기 T와 NSS 또는 NOR 값에 해당하는 m과의 관계에 따라 각 세분화된 심볼의 크기를 결정하는 또 다른 실시 예를 설명한다.
만일 T를 m으로 나눈 몫이 a, 나머지를 b라 할 때, 즉,
Figure pat00002
인 관계가 성립할 때 처음 1개의 세분화된 각 심볼의 크기는 (a + b), 나머지 (m - 1)개의 각 세분화된 심볼의 크기는 a로 설정할 수 있다. 이때 크기가 (a+b) 및 a인 각각의 세분화된 심볼의 순서는 뒤바뀔 수 있음에 유의한다.
앞서 설명한 실시예들처럼 세분화된 심볼의 크기는 다양한 형태로 정의될 수 있다.또한 상기 세분화된 심볼의 크기는 소스 블록 내에서 구분된 각각의 영역을 이루고 있는 열들의 개수로도 표현될 수 있음에 유의하자.
방송 또는 통신 시스템에서 패킷 손실을 복구하기 위한 방법으로서 소스 블록을 구성하고 FEC를 적용하는 과정을 사용할 때, 소스 블록 구성을 지시하기 위해 소스 패킷에 부가되는 시그널링 정보(즉 소스 패킷 부가 정보)인 소스 FEC 페이로드 식별자(Source FEC Payload ID)와 복구 패킷에 부가되는 시그널링 정보(즉 복구 패킷 부가 정보)인 복구 FEC 페이로드 식별자(Repair FEC Payload ID) 및 FEC OTI의 한 세트(suite 또는 set)에 대한 구체적인 예들을 도 11 및 도 12를 참조하여 설명한다.
도 11은 본 발명의 일 실시예에 따라 소스 블록 구성을 나타내기 위해 전송되는 시그널링 정보들의 일 예를 나타낸 것이다. 전송된 소스 패킷의 일부가 손실되어 FEC 복호화가 필요하게 되어 수신기에서 하나 이상의 복구 패킷을 이용하여 복호화를 진행할 때, 수신기는 FEC OTI로부터 심볼 크기 T (1001)와 NSS m(1002)을 획득하고, 소스 패킷 부가 정보로부터 SBN(501)와 SESI (502)를 획득하고, 복구 패킷 부가 정보로부터 SBL(406)을 획득하여 소스 블록 구성을 이해하고, 이들을 이용하여, 수신된 소스 패킷들을 적절하게 배치하여 소스 블록을 재구성(reconstruct)할 수 있다. 여기서 SESI(502)은 수신된 각 소스 패킷이 소스 블록 내에서 세분화된 심볼 기준으로 어느 위치에서 시작되는지를 알려주기 때문에, 수신기는 상기 수신된 각 소스 패킷의 배치를 정확하게 할 수 있다. 손실된 소스 패킷에 해당되는 위치는 소실(erasure)로 처리된다.
또한 수신기는, 소스 패킷 부가 정보로부터 획득한 SBN (501)과 복구 패킷 부가 정보로부터 획득한 SBN(404) 및 ESI (405)로부터 임의의 소스 블록과 복구 패킷들 사이의 대응 관계를 인지하고, FEC 복호를 수행한다. 이때 FEC 복호기는, FEC OTI로부터 NSS, 즉 m 값을 획득하여 소스 블록을 m개의 영역으로 구분하여 복호를 수행한다. 다른 실시예로서 소스 블록을 m개의 영역으로 구분하지 않고 심볼 크기 T 단위로 하나의 영역으로 간주하여 복호를 수행할 수도 있다. 여기서 심볼 크기 T 단위로 하나의 영역으로 간주하여 복호를 수행할 경우, 손실된 소스 패킷과 그 부가 정보의 데이터가 포함되어 있는 모든 행들을 소실로 처리한다.
도 12는 본 발명의 일 실시예에 따른 소스 패킷 부가 정보, 복구 패킷 부가 정보 및 FEC OTI의 한 세트를 나타낸 것이다. 도 11의 예에서와 달리, FEC OTI는 도 10b와 같이 구성되며, 소스 패킷 부가 정보에서 SESI(502) 대신 ESI(405)와 PSP(406)가 구분되어 시그널링된다.
전송된 소스 패킷의 일부가 손실되어 FEC 복호화가 필요하게 되어 수신기에서 하나 이상의 복구 패킷을 이용하여 복호화를 진행할 때, 수신기는 FEC OTI로부터 심볼 크기 T (1001)와 m에 해당하는 NOR (1004)을 획득하고, 소스 패킷 부가 정보로부터 SBN(401), ESI(402), PSP(403)를 획득하고, 복구 패킷 부가 정보로부터 SBL(406)을 획득하여 소스 블록 구성을 이해하고, 이들을 이용하여, 수신된 소스 패킷들을 적절하게 배치하여 소스 블록을 재구성(reconstruct)할 수 있다. 여기서 ESI(402)는 수신된 각 소스 패킷이 소스 블록 내에 몇 번째 행 또는 소스 심볼에 배치 되어 있는지를 나타내며 PSP(403)는 수신된 각 소스 패킷이 시작된 영역의 위치를 나타내기 때문에, 수신기는 수신된 각 소스 패킷을 소스 블록 내에 정확히 재배치할 수 있다. 손실된 소스 패킷에 해당되는 위치는 소실(erasure)로 처리된다.
또한 수신기는, 소스 패킷 부가 정보로부터 획득한 SBN (401)과 복구 패킷 부가 정보에서 획득한 SBN(404) 및 ESI (405)로부터 임의의 소스 블록과 복구 패킷들 사이의 대응 관계를 인지하고, FEC 복호를 수행한다. 이때 FEC 복호기는, FEC OTI로부터 NOR(1004), 즉 m 값을 획득하여, 소스 블록을 m개의 영역으로 구분하여 복호를 수행한다. 다른 실시예로서 소스 블록을 m개의 영역으로 구분하지 않고 심볼 크기 T 단위로 하나의 영역으로 간주하여 복호를 수행할 수도 있다. 여기서 심볼 크기 T 단위로 하나의 영역으로 간주하여 복호를 수행할 경우, 손실된 소스 패킷과 그 부가 정보의 데이터가 포함되어 있는 모든 행들을 소실로 처리한다.
도 11 및 도 12에 나타낸 시그널링 정보의 한 조(suite 또는 set)는 수신기에서 손실된 소스 패킷을 복구하기 위한 과정에 필요한 모든 정보를 포함하고 있다. 도 11 및 도 12에서 최대 소스 블록 길이(1003)는 시스템의 상황에 따라 전송될 수도 있고, 생략될 수도 있다.
도 13a 및 도 13b는 본 발명의 다른 실시예에 따른 FEC OTI의 예를 도시한 것이다.
도 13a 및 도 13b를 살펴보면, 도 10a와 도 10b와 달리 FEC OTI에 심볼 크기 T가 아니라 세분화된 심볼의 크기 Tsub(1301)가 포함되어 있다. 심볼 크기 T와 세분화된 심볼 크기 Tsub(1301), 세분화된 심볼 개수 또는 소스 블록 내에서 구분된 영역의 개수 m(1002, 1004) 사이에는 T/m = Tsub 인 관계가 있으므로, 상기 3 개의 값 중 어느 2 가지 값을 알면 나머지 다른 값도 정해질 수 있다. 예를 들어 도 13a와 도 13b의 경우에는 송신기가 Tsub와 m 값을 전송하므로 수신기에서는 Tsub와 m 값을 수신 후에 T = m*Tsub를 통해 심볼 크기를 계산하여 소스 블록을 구성하는데 사용할 수 있다. 앞선 실시예와 마찬가지로 최대 소스 블록 크기(1003)은 생략될 수 있다.
다음으로 소스 블록 구성을 위한 과정으로서 소스 블록과 소스 패킷 사이의 관계로부터 소스 블록의 크기(소스 블록을 구성하는 데이터의 총 양)를 계산하는 과정에 대해서 설명한다.
n: 소스 블록 내에 있는 UDP 패킷의 수, 소스 블록 구성 과정에서 가변적으로 결정됨.
R(i): 소스 블록 내에 삽입되는 i번째 UDP 패킷의 UDP 페이로드의 옥텟들(octet)
l(i): 옥텟 단위의 R(i)의 길이 (the length of R(i) in octets)
L(i): l(i)의 값을 나타내는 2 옥텟 (network byte order, high order octet first)
f(i): i번재 UDP 패킷의 UDP 플로우 ID를 나타내는 정수
F(i): f(i)의 값을 나타내는 1 옥텟
T: 바이트 단위의 소스 심볼 크기
m: 소스 심볼(또는 부호화 심볼)을 구성하고 있는 세분화된 심볼의 개수 (T/m = T'라 할 때, T'는 세분화된 심볼의 길이가 된다)
s(i): s(i)*T/m = s(i)*T' >= (l(i)+3)을 만족하는 최소 크기의 정수
P(i): s(i)*T' - (l(i)+3) zero 옥텟들. P(i)들은 각 UDP 패킷의 시작이 세분화된 심볼의 시작부에 일치하도록 하는 패딩 옥텟이다.
여기서 i = 1, 2, …, n에 대해 s(i)*T' 값들을 모두 더한 값을 S라 할 때, K = ceil(S/T)은 소스 블록의 길이가 되며, SSB = T*ceil(S/T)는 소스 블록의 크기가 된다. 실수 x에 대해 ceil(x)는 x 보다 크거나 같은 정수 중에서 가장 작은 정수를 의미한다.
결과적으로 소스 블록의 구성은 i = 1, 2, …, n에 대해 상기 F(i), L(i), R(i), P(i)들과 SSB = T*ceil(S/T) 값 등의 연결(concatenating)을 통해 구현될 수 있음을 알 수 있다. 단, S는 i = 1, 2, …, n에 대해 s(i)*T'의 값들을 모두 더한 값이다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (8)

  1. 방송 및 통신 시스템에서 패킷을 송신하기 위한 방법에 있어서,
    주어진 심볼 크기 T를 가지는 2차원 배열을 소정 개수의 영역으로 구분하는 과정과,
    전송하고자 하는 소스 패킷들을 상기 2차원 배열의 첫번째 행의 첫번째 열부터 상기 심볼 크기 T를 넘지 않게 순차적으로 배치하는 과정과,
    상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 마지막 행에서, 해당 소스 패킷의 마지막 데이터가 할당되어 있는 영역 내의 나머지 부분을 소정의 값으로 설정하는 과정과,
    상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 이후, 다음 소스 패킷을 이전 소스 패킷이 배치된 마지막 행에서 마지막 데이터가 할당된 영역의 다음 영역의 시작점에서부터 배치함으로써 소스 블록을 구성하는 과정과,
    상기 소스 블록을 순방향에러정정(FEC) 부호화하여 전송하는 과정을 포함하는 것을 특징으로 하는 패킷 송신 방법.
  2. 제 1 항에 있어서, 상기 2차원 배열은, T/m개의 열들로 각각 구성된 m개의 영역으로 구분되거나, 혹은 [T/m] + 1개의 열들로 이루어진 영역들과 [T/m]개의 열들로 이루어진 영역들로 구분됨을 특징으로 하는 패킷 송신 방법.
  3. 제 2 항에 있어서, 상기 T 및 상기 m에 대한 정보를 SDP(Session Description Protocol)에 따른 FEC(Forward Error Correction) 객체 정보를 통해 전송하는 과정을 더 포함함을 특징으로 하는 패킷 전송 방법.
  4. 제 1 항에 있어서, 상기 소스 패킷들 각각은,
    상기 소스 블록을 지시하는 소스 블록 번호(Source Block Number: SBN)와, 해당 소스 패킷이 시작되는 상기 소스 블록 내의 행의 위치를 지시하는 부호화 심볼 식별자(Encoding Symbol ID: ESI)(402)와, 상기 구분된 영역들의 개수를 지시하는 영역 개수(Number of Regions: NOR)와, 상기 ESI에 해당되는 행 내에서 해당 소스 패킷이 배치 시작된 영역을 지시하는 패킷 시작 위치(Packet Start Position: PSP)와, 상기 소스 블록의 총 행의 개수를 지시하는 소스 블록 번호(Source Block Number: SBL)와, 상기 소스 블록의 각 행 내에서 구분된 각각의 영역을 지시하는 세분화된 부호화 심볼 식별자(Subdivided ESI: SESI) 중 적어도 하나를 포함하는 것을 특징으로 하는 패킷 송신 방법.
  5. 제 1 항에 있어서, 상기 소스 블록들의 FEC 부호화를 통해 생성된 복구 패킷들을 전송하는 과정을 더 포함하며,
    상기 복구 패킷들의 각각은,
    상기 소스 블록을 지시하는 소스 블록 번호(Source Block Number: SBN)와, 해당 소스 패킷이 시작되는 상기 소스 블록 내의 행의 위치를 지시하는 부호화 심볼 식별자(Encoding Symbol ID: ESI)(402)와, 상기 구분된 영역들의 개수를 지시하는 영역 개수(Number of Regions: NOR)와, 상기 ESI에 해당되는 행 내에서 해당 소스 패킷이 배치 시작된 영역을 지시하는 패킷 시작 위치(Packet Start Position: PSP)와, 상기 소스 블록의 총 행의 개수를 지시하는 소스 블록 번호(Source Block Number: SBL)와, 상기 소스 블록의 각 행 내에서 구분된 각각의 영역을 지시하는 세분화된 부호화 심볼 식별자(Subdivided ESI: SESI) 중 적어도 하나를 포함하는 것을 특징으로 하는 패킷 송신 방법.
  6. 방송 및 통신 시스템에서 패킷을 송신하기 위한 장치에 있어서,
    주어진 심볼 크기 T를 가지는 2차원 배열을 소정 개수의 영역으로 구분하고, 전송하고자 하는 소스 패킷들을 상기 2차원 배열의 첫번째 행의 첫번째 열부터 상기 심볼 크기 T를 넘지 않게 순차적으로 배치하고, 상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 마지막 행에서, 해당 소스 패킷의 마지막 데이터가 할당되어 있는 영역 내의 나머지 부분을 소정의 값으로 설정하고, 상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 이후, 다음 소스 패킷을 이전 소스 패킷이 배치된 마지막 행에서 마지막 데이터가 할당된 영역의 다음 영역의 시작점에서부터 배치함으로써 소스 블록을 구성하는 소스 블록 구성기와,
    상기 소스 블록을 순방향에러정정(FEC) 부호화하여 전송하는 FEC 부호화기를 포함하는 것을 특징으로 하는 패킷 송신 장치.
  7. 방송 및 통신 시스템에서 패킷을 수신하기 위한 방법에 있어서,
    소스 블록으로 구성된 수신 데이터를 해석하는 과정과,
    상기 소스 블록 해석기로부터 전달된 상기 소스 블록을 FEC 복호화하는 과정을 포함하며,
    상기 소스 블록은,
    주어진 심볼 크기 T를 가지는 2차원 배열을 소정 개수의 영역으로 구분하고,
    전송하고자 하는 소스 패킷들을 상기 2차원 배열의 첫번째 행의 첫번째 열부터 상기 심볼 크기 T를 넘지 않게 순차적으로 배치하고,
    상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 마지막 행에서, 해당 소스 패킷의 마지막 데이터가 할당되어 있는 영역 내의 나머지 부분을 소정의 값으로 설정하고,
    상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 이후, 다음 소스 패킷을 이전 소스 패킷이 배치된 마지막 행에서 마지막 데이터가 할당된 영역의 다음 영역의 시작점에서부터 배치함으로써 구성됨을 특징으로 하는 패킷 수신 방법.
  8. 방송 및 통신 시스템에서 패킷을 수신하기 위한 장치에 있어서,
    소스 블록으로 구성된 수신 데이터를 해석하는 소스 블록 해석기과,
    상기 소스 블록 해석기로부터 전달된 상기 소스 블록을 FEC 복호화하는 FEC 복호화기를 포함하며,
    상기 소스 블록은,
    주어진 심볼 크기 T를 가지는 2차원 배열을 소정 개수의 영역으로 구분하고,
    전송하고자 하는 소스 패킷들을 상기 2차원 배열의 첫번째 행의 첫번째 열부터 상기 심볼 크기 T를 넘지 않게 순차적으로 배치하고,
    상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 마지막 행에서, 해당 소스 패킷의 마지막 데이터가 할당되어 있는 영역 내의 나머지 부분을 소정의 값으로 설정하고,
    상기 소스 패킷들 중 어느 하나의 소스 패킷이 배치된 이후, 다음 소스 패킷을 이전 소스 패킷이 배치된 마지막 행에서 마지막 데이터가 할당된 영역의 다음 영역의 시작점에서부터 배치함으로써 구성됨을 특징으로 하는 패킷 수신 장치.
KR1020120050291A 2012-05-07 2012-05-11 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법 KR101983032B1 (ko)

Priority Applications (8)

Application Number Priority Date Filing Date Title
MX2014013560A MX348999B (es) 2012-05-07 2013-05-07 Aparato y metodo de transmision y recepcion de paquete en sistema de radiodifusion y comunicacion.
US13/888,663 US10218821B2 (en) 2012-05-07 2013-05-07 Apparatus and method of transmitting and receiving packet in a broadcasting and communication system
AU2013260417A AU2013260417B2 (en) 2012-05-07 2013-05-07 Apparatus and method of transmitting and receiving packet in a broadcasting and communication system
JP2015511356A JP2015520990A (ja) 2012-05-07 2013-05-07 放送及び通信システムにおけるパケット送受信装置及び方法
CA2873024A CA2873024C (en) 2012-05-07 2013-05-07 Apparatus and method of transmitting and receiving packet in a broadcasting and communication system
CN201380024021.0A CN104303470B (zh) 2012-05-07 2013-05-07 在广播和通信***中发送和接收分组的方法
EP13787421.0A EP2847953B1 (en) 2012-05-07 2013-05-07 Apparatus and method of transmitting and receiving packet in a broadcasting and communication system
PCT/KR2013/003955 WO2013168964A1 (en) 2012-05-07 2013-05-07 Apparatus and method of transmitting and receiving packet in a broadcasting and communication system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120048269 2012-05-07
KR20120048269 2012-05-07

Publications (2)

Publication Number Publication Date
KR20130140938A true KR20130140938A (ko) 2013-12-26
KR101983032B1 KR101983032B1 (ko) 2019-05-30

Family

ID=49985161

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120050291A KR101983032B1 (ko) 2012-05-07 2012-05-11 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법

Country Status (9)

Country Link
US (1) US10218821B2 (ko)
EP (1) EP2847953B1 (ko)
JP (1) JP2015520990A (ko)
KR (1) KR101983032B1 (ko)
CN (1) CN104303470B (ko)
AU (1) AU2013260417B2 (ko)
CA (1) CA2873024C (ko)
MX (1) MX348999B (ko)
WO (1) WO2013168964A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015105404A1 (ko) * 2014-01-13 2015-07-16 삼성전자 주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
US10153863B2 (en) 2014-01-13 2018-12-11 Samsung Electronics Co., Ltd. Method and device for transmitting and receiving packet in communication system

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101814402B1 (ko) * 2013-11-25 2018-01-04 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법 및 방송 신호 수신 방법
CN109560822A (zh) 2014-01-23 2019-04-02 华为技术有限公司 一种***码译码方法和装置
JP6511472B2 (ja) * 2014-03-28 2019-05-15 サムスン エレクトロニクス カンパニー リミテッド ブロードキャスティング及び/又は通信システムにおけるパケットの生成及び復元のための方法及び装置
US9455750B2 (en) * 2014-07-28 2016-09-27 Qualcomm Incorporated Source block size selection
KR102519339B1 (ko) * 2018-04-17 2023-04-07 삼성전자주식회사 무선 통신 시스템에서 동기 개선을 위한 방법 및 장치
CN108881306B (zh) * 2018-08-08 2020-04-28 西安交通大学 一种基于数据包大小序列的加密流量分析防御方法
WO2022006850A1 (en) * 2020-07-10 2022-01-13 Qualcomm Incorporated Transmitting encoding symbol identifier of raptor codes using control channel coding
US11385962B2 (en) * 2020-11-05 2022-07-12 Sage Microelectronics Corporation Method and apparatus for error correction encoding compressed data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060120604A (ko) * 2003-08-21 2006-11-27 퀄컴 인코포레이티드 무선 링크 제어 레이어 상의 순방향 에러 정정 코딩을 위한방법 및 관련 장치

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154452A (en) 1999-05-26 2000-11-28 Xm Satellite Radio Inc. Method and apparatus for continuous cross-channel interleaving
US7177658B2 (en) * 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
US20050013274A1 (en) * 2003-03-05 2005-01-20 Harri Pekonen System and method for data transmission and reception
UA84557C2 (uk) 2003-03-05 2008-11-10 Нокіа Корпорейшн Спосіб та вузол для передачі і прийому даних (варіанти), пристрій передачі даних
EP1743431A4 (en) * 2004-05-07 2007-05-02 Digital Fountain Inc SYSTEM FOR DOWNLOADING AND RECORDING AND CONTINUOUS READING OF FILES
US7660245B1 (en) * 2004-09-16 2010-02-09 Qualcomm Incorporated FEC architecture for streaming services including symbol-based operations and packet tagging
US7644335B2 (en) * 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9419749B2 (en) * 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US8006160B2 (en) * 2006-06-29 2011-08-23 Digital Fountain, Inc. Efficient encoding and decoding methods for representing schedules and processing forward error correction codes
WO2008013528A1 (en) * 2006-07-25 2008-01-31 Thomson Licensing Recovery from burst packet loss in internet protocol based wireless networks using staggercasting and cross-packet forward error correction
WO2009087563A2 (en) * 2008-01-09 2009-07-16 Nokia Corporation Systems and methods for media container file generation
CN101540610B (zh) 2009-01-07 2011-12-28 湖南大学 一种二维非隔离位约束编解码方法及编解码器
WO2011082834A1 (en) * 2010-01-11 2011-07-14 Nokia Corporation Error correction
US20130254611A1 (en) * 2012-03-23 2013-09-26 Qualcomm Incorporated Recovering data in multimedia file segments

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060120604A (ko) * 2003-08-21 2006-11-27 퀄컴 인코포레이티드 무선 링크 제어 레이어 상의 순방향 에러 정정 코딩을 위한방법 및 관련 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
3gpp S4-120366* *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015105404A1 (ko) * 2014-01-13 2015-07-16 삼성전자 주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
US10153863B2 (en) 2014-01-13 2018-12-11 Samsung Electronics Co., Ltd. Method and device for transmitting and receiving packet in communication system
US10498485B2 (en) 2014-01-13 2019-12-03 Samsung Electronics Co., Ltd. Method and device for transmitting and receiving packet in communication system
US10985870B2 (en) 2014-01-13 2021-04-20 Samsung Electronics Co., Ltd. Method and device for transmitting and receiving packet in communication system

Also Published As

Publication number Publication date
CA2873024C (en) 2020-10-06
US20130294447A1 (en) 2013-11-07
EP2847953B1 (en) 2020-03-25
AU2013260417A1 (en) 2014-12-18
MX348999B (es) 2017-07-06
KR101983032B1 (ko) 2019-05-30
EP2847953A1 (en) 2015-03-18
AU2013260417B2 (en) 2017-04-20
AU2013260417A2 (en) 2015-01-22
JP2015520990A (ja) 2015-07-23
EP2847953A4 (en) 2016-05-04
US10218821B2 (en) 2019-02-26
CN104303470A (zh) 2015-01-21
CN104303470B (zh) 2018-11-02
CA2873024A1 (en) 2013-11-14
WO2013168964A1 (en) 2013-11-14
MX2014013560A (es) 2015-01-16

Similar Documents

Publication Publication Date Title
KR101983032B1 (ko) 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법
KR102133930B1 (ko) 데이터 패킷 송수신 장치 및 방법
KR101829923B1 (ko) 데이터 통신 시스템에서 부호화 장치 및 방법
Nazir et al. Expanding window random linear codes for data partitioned H. 264 video transmission over DVB-H network
KR101951659B1 (ko) 방송 및 통신 시스템에서 수신 패킷들의 복호 방법 및 장치
US20150006991A1 (en) Graceful degradation-forward error correction method and apparatus for performing same
US9667384B2 (en) Apparatus and method for transmitting and receiving forward error correction packet
KR102163338B1 (ko) 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법
US10833710B2 (en) Bandwidth efficient FEC scheme supporting uneven levels of protection
KR20160138382A (ko) 방송 및/또는 통신 시스템에서 패킷 생성 및 복원 방법 및 장치
KR101953580B1 (ko) 영상회의 시스템에서 데이터 송수신 장치 및 방법
KR101967884B1 (ko) 방송 및 통신 시스템에서 패킷 송/수신 장치 및 방법
KR20150046700A (ko) 오류 정정 부호를 사용하는 통신 시스템에서 패킷 송수신 기법
Hong et al. Efficient error control scheme for video streaming over wireless networks
KR20140011514A (ko) 통신 시스템에서 데이터 송수신 장치 및 방법

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