KR101259659B1 - 중요도에 따라 손실 복원율을 차별화하는 비균일 랩터 코딩방법 - Google Patents

중요도에 따라 손실 복원율을 차별화하는 비균일 랩터 코딩방법 Download PDF

Info

Publication number
KR101259659B1
KR101259659B1 KR1020080035838A KR20080035838A KR101259659B1 KR 101259659 B1 KR101259659 B1 KR 101259659B1 KR 1020080035838 A KR1020080035838 A KR 1020080035838A KR 20080035838 A KR20080035838 A KR 20080035838A KR 101259659 B1 KR101259659 B1 KR 101259659B1
Authority
KR
South Korea
Prior art keywords
symbol
importance
symbols
data
input
Prior art date
Application number
KR1020080035838A
Other languages
English (en)
Other versions
KR20080093924A (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 경희대학교 산학협력단
Publication of KR20080093924A publication Critical patent/KR20080093924A/ko
Application granted granted Critical
Publication of KR101259659B1 publication Critical patent/KR101259659B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0042Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding

Abstract

본 발명은 중요도에 따라 손실 복원율을 차별화하는 비균일 랩터(Raptor) 코딩 방법에 있어서, 인코딩할 데이터의 입력 심볼(Symbols)을 수신하는 과정과, 입력 심볼의 데이터의 중요도를 확인하는 과정과, 입력 심볼에 포함된 각 심볼들의 중요도에 따라 각 심볼들의 선택 확률을 설정하는 과정과, 각 심볼들의 선택 확률이 설정된 입력 심볼을 인코딩하여 출력 심볼을 생성하는 과정과, 출력 심볼을 이용하여 패킷을 생성하는 과정을 포함한다.
Fountain code, Raptor code, FEC, 비디오 코딩, MBMS

Description

중요도에 따라 손실 복원율을 차별화하는 비균일 랩터 코딩 방법{A PRIORITY-DIFFERENTIAL NON-UNIFORM RAPTOR CODING METHOD}
본 발명은 비디오 코딩(Video coding)에 관한 것으로서, 특히 3GPP(The 3rd Generation Partnership Project, 3gpp.org)의 MBMS(Multimedia Broadcast/ Multicast Service)를 위한 멀티미디어 스트림(Multimedia stream) 전송시 패킷 손실 복원을 위한 랩터 코딩(Raptor coding) 방법에 관한 것이다.
채널 코딩의 부호율을 '(기존 정보의 양)/(부호화한 데이터의 양)'으로 표현할 경우, 파운틴 코드(Fountain code)는 부호화한 데이터의 양이 미리 정해지지 않아 'Rateless' 코드라고도 불린다. 파운틴 코드는 송신단 측에서 수신단에 대한 정보가 부족하거나 수신단의 수가 매우 많을 때처럼 양방향 정보 전송이 어려울 때에도 단방향 전송만으로 에러 없이 완벽한 수신을 가능하게 한다는 장점을 가지고 있어 컴퓨터 네트워크 내에서의 멀티캐스트 등에서 필요성이 제기되었다. 파운틴 코드는 다음과 같은 방식을 기초로 한다. 먼저 송신단에서는 전송할 파일을 이용하여 끊임없이 부호화된 패킷을 만들어서 전송한다. 그러면 각각의 수신단은 피드백이 필요 없이 복호화가 가능할 정도의 패킷만을 수신하여 복호화한다. 이로써 파운 틴 코드는 네트워크의 과부하를 발생시키는 재전송요청을 없애고 수신단에게 비동기 수신을 제공할 수 있다.
이처럼 파운틴 코드는 데이터의 출처에 관계없이 원하는 양만큼의 데이터만 받으면 처리가 가능하다는 점에서 의미가 있다. 파운틴 코드는 k개의 입력 심볼을 이용하여 무한대의 출력 심볼을 생성할 수 있다. 각각의 출력 심볼은 임의적으로 입력 심볼들을 이용하여 생성한다. 출력 심볼은 다른 출력 심볼과 상관성을 지니지 않으며 k보다 약간 큰 m개의 출력 심볼을 이용하여 본래의 입력 심볼을 복구하는 것이 가능하다. P2P(Peer-to-Peer network)에서는 수신측은 같은 데이터를 전송하는 여러 송신측과 연결을 하고 어느 송신측에서 보낸 데이터인지에 관계없이 k보다 약간 더 많은 m개의 심볼을 받음으로써 본래 데이터를 복구할 수 있다. 이는 수신측이 네트워크 상황이 다른 여러 송신측과 연결을 한 경우, 네트워크 성능이 좋지 않은 송신측보다 네트워크 성능이 좋은 송신측으로부터 더 많은 심볼들을 수신할 수 있으며, 각각의 심볼들은 연관성을 지니지 않으므로 총 수신한 심볼들의 수가 m개를 넘으면 본래 데이터를 복구할 수 있다.
파운틴 코드에 해당되는 첫 번째 발명은 1998년 발표된 LT 코드(Luby Transform codes)이며, 2004년에는 'Amin Shokrollahi'에 의하여 랩터 코드(Raptor code)가 개발되었다. 랩터 코드의 원리 및 장점은 하기의 문헌에 소개된다.
- 미국 특허 출원번호: 7,139,960 "Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters," Shokrollahi; M. Amin, October 6, 2004.
- 미국 특허 출원번호: 7,068,729 " Multi-stage code generator and decoder for communication systems," Shokrollahi; M. Amin, December 21, 2001.
랩터 코드는 DVB-H(Digital Video Broadcasting-Handheld)의 에플리케이션 계층에서의 표준으로 채택되었다. 이 코드는 기존의 파운틴 코드인 LT 코드보다 복호화 과정의 연산량 측면에서 더 좋은 성능을 가지고 있다. LT 코드의 가장 큰 단점은 소스 심볼을 복구하는데 필요한 연산량이 선형적이지 못하다는 것이었는데, 랩터 코드는 이러한 단점을 보완하여 부호화 연산량을 선형 시간 이내로 유지하면서 선형 시간의 복호화 연산량을 얻을 수 있게 한다.
이렇게 랩터 코드는 LT코드와 토네이도 코드의 장점을 살린 발전된 형태이다. LT코드에 LDPC(Low Density Parity Check) 전처리 단계를 추가 함으로서 적은 정보량에서의 복호율을 향상시켰다. 또한 LT코드는 체계적인(systematic) 코드가 아니지만, 랩터 코드는 전처리 단계의 추가 함으로서 체계적인 코드의 특징을 지닌다. 추가로 토네이도와 달리 랩터코드와 LT 코드는 정해진 레이트(rate)가 없다. 이는 필요에 따라 무한대의 추가 패킷을 생성할 수 있음을 의미한다. 또한 랩터 코드의 그래프(graph)는 토네이도 코드와 달리 로그밀도로 생성된다. 또한 랩터 코딩 방식은 선형적인 bitpartite 그래프를 이용함으로서 매우 빠른 확률적 복호화를 수행한다.
도 1은 종래의 랩터(Raptor) 코딩 방식에서 코딩 동작시 각 단계에서 심볼들을 보여주는 예시도이다. 도 1을 참조하면, 먼저 입력 심볼(Source Symbols)(110)에 대한 pre-coding(Inverse LT Encoding, LDPC & Half Symbol Encoding)을 통하여 입력 심볼(110)을 중간 심볼(Intermediate Symbols)(120)로 변환시키며, 중간 심볼(120)을 LT 코딩하여 무한대의 크기를 가질 수 있는 출력 심볼(130)을 생성할 수 있다. 또한 체계적인 코드(systematic)의 특징을 지니기 위하여 첫 K개의 출력 심볼(130)은 입력 심볼(110)과 같은 값을 가지게 되며 각 출력 심볼(130)들은 임의로 선택된 중간 심볼(120)들 간의 XOR 결과로서 나타난다.
도 2는 종래의 랩터 코딩 방식에서 디코딩의 동작시 각 단계에서 심볼들을 보여주는 예시도이다. 도 2를 참조하면, 디코딩 과정은 출력 심볼 즉, 디코딩을 위해 수신한 심볼(210)중 차수(degree)가 1인 심볼을 찾아내어 해당되는 중간 심볼 값을 정하게 되고 정해진 중간 심볼을 이용하여 출력 심볼에 대하여 XOR을 한 후, 다시 차수가 1인 심볼에 대한 중간 심볼 값을 찾는 작업을 반복하여 최종 모든 심볼 들에 대한 값을 찾아 내어 최초 입력 심볼(220)을 복원한다. 이때 차수가 1인 심볼이 없을 경우 디코딩을 할 수 없게 되며 인코딩시 빠진 심볼이 있을 경우 해당되는 심볼을 디코딩할 수 없으므로 인코딩을 할 때 모든 심볼들을 포함하며 차수값을 적절하게 하는 것이 중요한 문제가 된다.
도 3은 랩터 코딩에서 선택 갯수 별 확률(Soliton distribution)을 보여주는 선형도이다. 기존에는 차수에 대한 분포를 도 3에 나타난 바와 같은 솔리톤(soliton) 분포로 표현하였다. 그러나 이 경우 모든 심볼들의 선택 확률이 동일하게 되어 패킷의 중요도를 나타낼 수 없게 된다. K개의 데이터와 N-K개의 패리티(parity)를 가지는 'Reed Solomon'과 같은 채널 코딩(channel coding) 기법에서는 N-K개까지의 손실에 대해서는 완전히 복구가 가능하나 그 이상의 손실에 대해서 는 모든 데이터를 사용할 수 없게 된다. 그러나 FTP(File Transfer Protocol)와 같이 전송되는 데이터의 오류나 손실이 전혀 허용되지 않는 방식과 달리 미디어 전송에서는 손실이 허용되며 손실을 최소화하여 최소한의 데이터만이라도 사용, 화질을 좋게 하는 것이 중요하다. 차수가 1이고 심볼 넘버(symbol number)가 K보다 작은 출력 심볼은 입력 심볼과 같은 데이터가 되므로 다른 모든 출력 심볼에 대해 디코딩을 못하더라도 이러한 입력 심볼과 같은 데이터를 가지는 출력 심볼을 이용하여 미디어의 재생시 좀더 화질을 좋게 하여 재생을 하는 것이 필요하다. 즉, 중요한 데이터의 복구 확률을 높이기 위하여 인코딩시 중요 심볼에 대한 선택 확률을 높이고 또한 디코딩시 중요 심볼을 좀 더 높은 확률로 디코딩하여 동영상 재생의 화질을 좋게 하는 것이 필요하다.
MBMS(Multimedia Broadcast/Multicast Service)에서 랩터 코드를 사용하는 시스템은 여러가지 미디어에 대한 RTP(Real-time Transport Protocol) 패킷을 만든 후 전체에 대해서 랩터 코딩방식으로 복원용 패러티 데이터를 만든다. 따라서, 같이 취급되는 미디어별 중요도를 차별화할 수 없고, 더군다나 미디어 내 패킷별로 중요도도 차별화할 수 없다.
한편, Reed Solomon 방식을 이용하여 이레이저(erasure)를 복원하는 방법은 하기와 같다. RS[n,k]를 이용하면 k개의 데이터 패킷을 전송할 때, n-k개의 패러티 패킷을 만들어서 전송중에 n-k개 이하의 패킷이 손실되었을 때, 수신측에서 모두 복원할 수 있다. 상기 방식은 재전송을 요구하는 방식보다 시간을 절약할 수 있으므로 실시간 서비스에서 이용된다. 이때 몇 번째 패킷이 손실되었는지 여부는 RTP 패킷 헤더에 있는 시퀀스 번호를 보고 알 수 있다. 이렇게 손실된 위치를 아는 손실을 이레이저라고 한다. 이때 n-k보다 더 많은 손실이 발생하면 잃어버린 패킷을 하나도 복원할 수 없다.
기존의 Reed Solomon 코드로 UEP(Unequal error protection)하는 방법을 설명하기로 한다. 도 4는 중요도별 손실 복원율을 차별화하기 위한 패킷 구성을 보여주는 예시도이다. 도 4를 참조하면, 데이터를 중요도별로 P1, P2, P3에 배치하고 패러티를 계산한다. 패러티는 Reed Solomon 코드 방식에서 수평적으로 계산한다. 도 4에 도시한 바와 같이 P1, P2, P3는 각각 RS[10,4], RS[10,7] RS[10,9]로 중요한 패킷에 대해서 더 많은 패러티 패킷을 붙여 인코딩한다. 하나의 세로 열을 하나의 패킷으로 전송하면 총 10개의 패킷으로 전송하며, 10개의 패킷 중에 P1, P2, P3는 각각 6개, 3개, 1개의 패킷이 손실되더라도 복원이 가능하다.
그러나 이 방식은 한 패킷 내에 중요도가 다른 데이터가 있는 경우에 적용할 수 있으나, 패킷별로 중요도가 다른 경우에는 적용하기가 어려운 문제점이 있다. 따라서, 패킷별로 중요도가 다른 경우에도 데이터의 중요도에 따라 손실 복원율을 차별화할 수 있는 방법이 요구된다.
본 발명은 비디오 코딩(Video coding)에서 중요도가 서로 다른 패킷(packet)들로 이루어진 멀티미디어 스트림(Multimedia stream)을 패킷 손실이 일어나는 네트워크(network)를 통해 전송할 경우 중요도에 따라 손실 복원력을 차별 화하기 위한 랩터 코딩(Raptor coding) 방법을 제공하고자 한다.
이를 달성하기 위한 본 발명의 일 형태에 따르면, 중요도에 따라 손실 복원율을 차별화하는 비균일 랩터(Raptor) 코딩 방법에 있어서, 인코딩할 데이터의 입력 심볼(Symbols)을 수신하는 과정과, 상기 입력 심볼의 데이터의 상기 중요도를 확인하는 과정과, 상기 입력 심볼에 포함된 각 심볼들의 상기 중요도에 따라 상기 각 심볼들의 선택 확률을 설정하는 과정과, 상기 각 심볼들의 선택 확률이 설정된 상기 입력 심볼을 인코딩하여 출력 심볼을 생성하는 과정과, 상기 출력 심볼을 이용하여 패킷을 생성하는 과정을 포함함을 특징으로 한다.
본 발명의 다른 형태에 따르면, 중요도에 따라 손실 복원율을 차별화하는 비균일 랩터(Raptor) 코딩된 데이터의 디코딩 방법에 있어서, 패킷을 수신하여 헤더의 정보 및 심볼을 분리하는 과정과, 상기 수신한 패킷을 디코딩하여 심볼의 선택 확률을 다르게 하여 차별화한 입력 심볼을 복원하는 과정을 포함하며, 상기 수신한 패킷이 가상 심볼을 이용하여 심볼의 선택 확률을 다르게 한 경우, 복원된 입력 심볼의 중요도를 확인하여 상기 가상 심볼을 판단하는 과정과, 상기 복원된 가상 심볼 또는 상기 입력 심볼을 이용하여 실제 입력 심볼을 복원하는 과정을 더 포함함을 특징으로 한다.
본 발명은 3GPP MBMS에 포함된 랩터 코드를 사용하기 때문에 기존의 이레이저 복원 코드(예를 들면 Reed Solomon 코드)들과 비교하여 다음과 같은 장점이 있 다. 먼저 간단한 XOR 연산자를 사용하기 때문에 계산이 간편하며, 다른 코드에서는 패러티 심볼 간이 서로 독립적이 아니므로 따로 만들어서 사용할 수 없는 반면 본 발명은 랩터 코드를 사용하여 다른 개체에서 독립적으로 만들어진 패러티 코드를 사용할 수 있다.
특히 본 발명은 입력 심볼의 중요도를 차별화하여 중요한 데이터가 비교적 덜 중요한 데이터보다 손실 복원율을 뛰어나게 할 수 있는 효과가 있으며, 기존의 랩터 코드는 k가 1000 이상이 되어야 적정 성능을 발휘하는데 반해 본 발명은 1000개 이하에서도 성능을 발휘할 수 있다. 이로써, 코드가 적용되는 범위가 줄어들어 미디어 별로 따로 코드를 적용할 수 있으며, 코드가 적용되는 시간적인 주기를 줄여 실시간성 구현에 더 용이한 효과가 있다.
따라서 본 발명은 손실이 일어나는 네트워크 환경에서 멀티미디어 스트림을 전송할 때, 데이터의 중요도에 따라 차별적으로 패킷을 보호하여 제한된 대역폭을 효율적으로 이용하면서 멀티미디어 서비스 품질을 향상시킬 수 있는 효과가 있다.
이하 첨부된 도면을 참조하여 본 발명을 구성하는 장치 및 동작 방법을 본 발명의 실시 예를 참조하여 상세히 설명한다. 하기 설명에서는 구체적인 구성 소자 등과 같은 특정 사항들이 나타나고 있는데 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들이 본 발명의 범위 내에서 소정의 변형이나 혹은 변경이 이루어질 수 있음은 이 기술분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다.
실시간 멀티미디어 서비스에서는 데이터 손실시 피드백 요청에 의한 재전송보다는 FEC(Forward Error Correction) 방식을 이용한다. 본 발명은 최근에 FEC 방식으로 주목받기 시작한 랩터(Raptor) 코드를 개량하여 전송되는 패킷들의 중요도에 따라 손실시 복원력을 차별화하는 방법을 제공한다.
본 발명은 비동기식 이동망의 표준화 기구인 3GPP(The 3rd Generation Partnership Project, 3gpp.org)의 MBMS(Multimedia Broadcast/Multicast Service) 표준에 포함된 랩터 코드를 이용한다. MBMS에서는 파일을 다운로드할 때와 멀티미디어 데이터를 전송할 때 랩터 코드를 사용하여 전송중 손실된 패킷들을 복원한다.
도 5는 3GPP(The 3rd Generation Partnership Project) MBMS(Multimedia Broadcast/Multicast Service)에서 송수신기의 계층 구조를 나타내는 블록 구성도이다.(3GPP TS 26.346, 2006.12)
MBMS는 3GPP에서 개발 중인 멀티미디어 브로드캐스트/멀티캐스트 서비스 표준으로서 데이터 패킷을 다수의 사용자들에게 동시에 전송하는 서비스이고 멀티미디어 데이터 전송을 목적으로 한다. 도 5를 참조하면, 먼저 송신측(sender)의 오디오(Audio), 비디오(Video), 텍스트(Text) 데이터는 실시간 전송을 위한 RTP & RTCP(Real-time Transport Control Protocol)와, 미디어의 보안을 위한 SRTP(Secure RTP)를 사용하며, 키 핸들링(Key handling)은 키 관리 프로토콜인 MIKEY(Multimedia Internet KEYing)를 사용한다. 상기 데이터들은 에러 정정을 위 한 FEC 계층(FEC Layer)에서 FEC 인코딩되어 UDP(User Datagram Protocol)를 이용하여 MBMS를 위해 다수의 사용자들에게 전송된다. 수신측(Receiver)은 상기 송신측에서 전송된 데이터를 수신하여 UDP를 거쳐 FEC 계층에서 손실된 에러를 정정하고 데이터를 복구한다. 상기 FEC 계층에서는 에러 정정을 위해 랩터 코드가 사용되며 본 발명은 상기 랩터 코드에 적용하여 사용될 수 있다.
데이터 심볼 k개에 대해서 n-k개의 패러티 심볼이 계산되는 체계적인 코드(systematic code)에서는 처음 k개의 심볼은 데이터 심볼이 되고, 다음 n-k개의 심볼은 패러티 심볼이 된다. Reed Solomon 코드에서는 k개의 데이터 심볼 모두에 종속적으로 모든 n-k개의 패러티 심볼이 생성된다. 그런데, 파운틴(Fountain) 코드에서는 하나의 패러티 심볼은 각각 다른 집합인 일부의 데이터 심볼에 종속적으로 만들어진다. 특정 패러티 심볼이 어떤 데이터 심볼의 집합으로 생성되었는지 대한 정보는 패러티 심볼과 함께 전송되어야 한다. 또한 하나의 패러티 심볼을 만드는데 사용되는 데이터 심볼은 랜덤하게 선택되거나 또는 일정한 규칙에 의해 선택된다. 기존의 랩터 코드에서는 데이터 심볼이 선택되는 확률의 기대치는 모든 심볼이 같다. 따라서 손실에서 복원될 확률도 평균적으로 모두 같다.
멀티미디어 스트림, 특히, 비디오 스트림은 중요도가 다른 패킷으로 이루어져 있다. 예를 들어, 오디오(또는 음성) 스트림은 비디오 스트림보다 중요하다. 또한 비디오 스트림내에서도 Intra 프레임은 Predictive 프레임보다 중요하며, Predictive 프레임은 Bi-directional 프레임보다 중요하다. 또한 Intra 프레임 내에서도 헤더나 DC값은 다른 데이터보다 중요하다. Predictive 프레임에서는 헤더와 MV(Motion Vector)값이 중요하다. 스케일러블 비디오 코딩(SVC, Scalable Video Coding)에서는 계층별로 중요도가 다르다. 하나의 GOP(Group of Picture)에서는 앞에 나오는 프레임일수록 더 중요하다. 기존의 랩터 코드를 이용하면 보호하려는 데이터 패킷의 중요도에 대한 차별화를 할 수 없다. 이에 본 발명에서는 데이터의 중요도에 따라 손실에 대한 복원율을 차별화하여 적용할 수 있는 방법을 제안한다.
도 6은 하나의 GOP(Group Of Picture)에서 각 프레임이 손실된 경우의 PSNR(Peek Signal to Noise Ratio)에 미치는 영향을 나타내는 일 예시 선형도이다.
3GPP MBMS에서는 미디어에 구분없이 랩터가 적용되므로 손실 복원에 있어서 미디어간 중요도의 차이를 반영할 수 없다. 그런데, 하나의 비디오 스트림에서도 도 6과 같이 중요도의 차이가 있다. 도 6은 하나의 GOP(Group Of Picture)에서 영상 프레임의 위치별 손실시 PSNR 저하의 정도를 나타낸다. 한 GOP의 시작 프레임인 인트라(Intra) 픽쳐가 손실되면 따라나오는 모든 영상이 영향을 받는다. 인트라 영상을 제외한 모든 영상은 그전에 수신된 영상을 참조하여 부호화되므로 GOP에서 앞에 위치한 영상일수록 손실시 영향이 더 크게 된다. 도 9는 JM 11.0을 이용하여 352 x 288 (CIF) 사이즈의 30 Frames / sec의 비트율을 가지는 모바일 영상에서 GOP내에 프레임별 손실 영향에 관한 실험 그래프이다. 그래프의 가로축은 프레임 번호를, 세로축은 평균 PSNR을 의미한다.
도 6을 참조하면 한 GOP 내에서 손실되는 프레임의 위치에 따라 PSNR이 달라짐을 알 수 있으며 GOP의 첫 부분에 위치한 프레임이 손실되었을 경우 평균 PSNR 이 많이 저하되며 마지막 부분에 위치한 프레임이 손실되었을 경우에는 평균 PSNR 이 적게 저하되는 것을 확인할 수 있다. 이를 통해 GOP의 첫 부분에 위치한 프레임이 손실될 경우 마지막 프레임까지 영향을 받게 됨을 확인할 수 있으며, 한 GOP내에서 마지막 부분의 프레임이 손실되었을 경우 손실된 프레임부터 GOP의 마지막 프레임까지 적은 수의 프레임만이 영향을 받게 됨으로 평균 PSNR은 적게 저하됨을 알 수 있다. 즉, 같은 GOP안에서 앞에 위치하는 프레임이 나중에 위치하는 프레임에 비해 중요하다는 것을 알 수 있다. 기존 랩터 코드에서는 모든 심볼들에 대해서 출력 심볼을 생성할 때 선택되는 확률을 같게 하였으나 이는 GOP내 첫 프레임에 해당되는 심볼과 GOP내 마지막 프레임에 해당되는 심볼의 선택 확률이 같게 됨을 의미한다. 프레임의 중요성에 대한 고려를 하지 않게 되며 본 발명을 통해 프레임 또는 심볼의 중요도에 따라 선택 확률을 다르게 하여 중요한 프레임을 좀 더 복구하도록 하며 저하되는 평균 PSNR의 값을 작게 할 수 있다.
따라서 본 발명에서는 데이터의 중요도에 따라 심볼이 선택될 확률을 차별화함으로써 중요도에 따라 손실복원율을 차별화한다.
도 7은 중요도별 손실 복원율을 차별화하기 위해 심볼의 선택 확률을 차별화하는 방식을 나타내는 개념도이다. 도 7에 도시한 바와 같이 만약 각 심볼이 그려진 원판에 다트를 던진다면, 기존에는 도 7의 (a)와 같이 모든 심볼들의 면적이 동일하여 각 심볼들이 선택될 확률이 모두 같지만, 본 발명은 도 7의 (b)와 같이 각 심볼의 확률을 수정하여 심볼 x0 또는 x1이 선택될 확률을 심볼 x2 또는 x3가 선택될 확률보다 높게 할 수 있다. 마찬가지로 심볼 x2 또는 x3가 각각 선택될 확률은 심볼 x4, x5, x6, x7이 각각 선택될 확률보다 높게 설정할 수 있다. 패러티 심볼 계산에 더 자주 사용된 데이터 심볼은 덜 사용된 데이터 심볼 보다 손실시 복원될 확률이 높다. 반대로 한번도 선택되지 않은 데이터 심볼이 손실되면 복원할 방법이 없다.
이하 심볼별로 선택될 확률을 차별화하는 방법을 실시 예를 들어 구체적으로 살펴보기로 한다.
제 1 실시예: 비균일 확률 밀도함수를 사용하는 방법
데이터 심볼이 x0에서 x7까지 k가 총 8개 있다고 하자. 각각의 심볼이 선택될 확률이 x0 부터 x7까지 순서대로 1/4, 1/4, 1/8, 1/8, 1/16, 1/16, 1/16, 1/16, 1/16인 경우, 0에서 1의 범위에서 랜덤한 숫자 p를 발생시켜 상기 P의 범위가 [0 ~ 1/4]에 속하게 되면 x0를 선택하고, 상기 P의 범위가 [1/4 ~ 1/2]에 속하게 되면 x1을 선택하고, P의 범위가 [1/2 ~ 5/8]에 속하게 되면 x2를 선택하고, P의 범위가 [5/8 ~ 3/4]에 속하게 되면 x3를 선택하고, P의 범위가 [3/4 ~ 13/16]에 속하게 되면 x4 을 선택하고, P의 범위가 [13/16 ~ 14/16]에 속하게 되면 x5을 선택하고, P의 범위가 [14/16 ~ 15/16]에 속하게 되면 x6을 선택하고, P의 범위가 [15/16 ~ 1]에 속하게 되면 x7을 선택한다. 이 방법은 구간의 확률을 자유롭게 선택할 수 있는 장점이 있으나 랜덤값을 실수값으로 발생시켜서 실수값끼리 비교해야 한다는 단점이 있다. 이에 정수 랜덤변수를 이용하려면 0에서 15 사이의 값을 발생시켜서 발생시킨 변수가 [0 ~ 3], [4 ~ 7], [8 ~ 9], [10 ~ 11], [12], [13], [14], [15]일 때 순서대로 각각의 심볼을 선택한다. 이와 같은 방법을 이용하기 위해서는 각각 확률을 적절하게 양자화(quantization)하여야 한다.
제 2 실시예 : 심볼 선택 범위를 중복하는 방법
도 8은 중요도별 손실 복원율을 차별화하기 위해 심볼의 선택범위를 중복하여 차별화하는 방식을 나타내는 예시도이다. 도 8을 참조하면, 심볼을 차례로 선택할 때, 구간 I1에서 1번, 구간 I2에서 2번, 구간 I3에서 3번 선택하여 각 심볼별 선택될 확률을 다르게 할 수 있다. 또한 각각의 구간에서 선택하지 않는다는 항목을 넣고 수행할 수도 있다. 즉, 구간 I1에서 선택할 때, 랜덤변수를 [0,3]으로 발생시켜서 0이 나오면 x0를 선택하고, 1이 나오면 x1을 선택하고, 2나 3이 나오면 '다음 선택 구간으로 진행'으로 설정하면 적절하게 심볼별 선택 확률을 조절할 수 있다.
제 3 실시예 : 심볼 선택 변수 테이블을 변형하는 방법
심볼 선택을 위한 변수 테이블이 있는 경우에는 테이블을 변형하여 선택확률을 조절할 수 있다. 심볼 선택 변수가 0010 1100이면 패러티 심볼은 x2 ⓧ x4 ⓧ x5이 된다.(여기서, ⓧ는 XOR 연산을 의미한다.) 따라서 1이 앞쪽에 많이 몰려있는 변수를 사용한다면 앞쪽에 위치한 입력 심볼들을 더 잘 보호할 수 있을 것이다.
랩터 코드의 Trip[K, X]에서 K는 인코딩을 처리하는 심볼들의 개수를 나타내고 X는 K중 몇 번째 심볼인지를 나타낸다. 이에 대한 결과는 (d, a, b) 가 되며 d는 차수(degree)로써 몇 개의 심볼을 선택할지를 나타내며, b는 인코딩을 하는 심볼들의 첫번째 심볼(기준)위치를 나타내며, a는 첫번째 심볼로부터 다음 심볼 번호 에 대한 오프셋(offset) 값을 나타낸다. Trip에 의한 결과값 b를 작은값으로 하게 하고 a의 값을 작게 하여 앞에 위치하는 중요한 심볼들을 더 자주 선택하도록 하면 중요한 심볼들을 더 잘 보호할 수 있다.
제 4 실시예 : 가상 심볼을 이용하는 방법
도 9는 중요도별 손실 복원율을 차별화하기 위해 가상 심볼을 이용하여 차별화하는 방식을 나타내는 개념도이다. 도 9를 참조하면, 중요한 입력 심볼을 반복하여 배치한 후 패러티 심볼을 계산하고 실제로 입력 심볼은 하나만 전송한다. 이때, 어떻게 중복하여 입력 심볼을 사용하는지에 대한 정보를 수신측이 알 수 있어야 한다. 랩터 코드에서는 입력 심볼의 개수 k가 어느 정도 이상(보통 1000개 정도 이상)이 되어야 효과적이 되는데 이 방법을 사용하면 더 적은 수의 입력 심볼에 대해서 손실정정코드를 만들 수 있다.
여기서 8개의 입력 심볼은 각각의 중요도에 따라 4개 또는 2개로 중복되어 랩터 코드 출력 심볼을 계산하는 과정에 입력된다. 이로써, x0와 x1은 x4~x7에 비해 4배의 손실 복원 확률을 갖게 되며, x2, x3는 x4~x7에 비해 2배의 손실 복원 확률을 갖게 된다.
가상 심볼을 통하여 차별화하는 과정의 예로 x0의 심볼을 4개의 심볼로 만드는 과정에서 4개의 심볼이 다 같은 데이터를 갖게 된다면 그 중 2개의 심볼을 가지고 XOR하는 경우 0이 되게 된다. 가상 심볼은 원 심볼로부터 만들어 낼 수 있어야 하며 어떠한 규칙에 의해 만들어야 할 것이다. x0 심볼이 4 바이트로 구성되며 데이터가 "abcd"라고 했을 때 가상 심볼의 한 예로써 한바이트씩 자리 이동하는 방식을 사용할 수 있다. 다른 가상 심볼은 "bcda", 또 다른 가상 심볼은 "cdab", 또 다른 가상 심볼은 "dabc"와 같이 원 심볼로부터 만들어 낼 수 있다. 이와 같은 방법으로 가상 심볼은 원 심볼과 다른 데이터를 가지지만 원 심볼로부터 만들어낼 수 있다.
가상 심볼을 이용하여 복원확률을 차별화하는 방법의 예를 살펴보기로 한다. 특정 GOP가 첫 프레임(g0)에서 마지막 프레임(g9)까지 10개의 프레임으로 구성이 되고 각 프레임마다 하나의 심볼로 표현이 되며 K = 1024 라고 하자. 한 GOP내에서 앞에 있는 프레임이 뒤에 오는 프레임보다 중요하므로 가상 심볼을 이용하여 가장 앞에 있는 프레임인 g0는 512개의 심볼로 만들며, g1은 256개의 심볼로 만들며, g2는 128개의 심볼로 만들며, g3는 64개의 심볼로 만들며, g4는 32개의 심볼로 만들며, g5는 16개의 심볼로 만들며, g6는 8개의 심볼로 만들며, g7은 4개의 심볼로 만들며, g8 및 g9는 2개의 심볼로 만들어 총 1024개의 심볼을 구성한다. 이러한 방식으로 처음 10개의 심볼을 프레임의 중요도에 따라 1024개로 만들게 되면 1024개의 심볼 중 0번부터 511번까지는 같은 g0를 통해 만들어졌으므로 그 중에 하나의 심볼만 디코딩이 되면 다른 심볼들도 모두 디코딩을 할 수 있게 된다. 1024개의 심볼을 동일한 확률로 선택하여 인코딩을 하여 출력 심볼을 만들게 되면 수신측에서는 이 출력 심볼들을 이용하여 디코딩을 하게 되므로 1024개의 심볼에 대한 디코딩 확률은 같다. 그러나 본 발명의 제4실시예처럼 1024개의 심볼 중 0번에서부터 511번 심볼까지는 같은 심볼을 통해 만들어지게 되므로 g0프레임에 대한 심볼은 512개 의 심볼중 하나만 디코딩이 되더라도 확인할 수 있으며, 같은 방식으로 g1프레임은 1024개의 심볼 중 256개의 심볼 중 하나만 디코딩이 되더라도 확인할 수 있으며, g2, g3, …, g9 프레임도 몇 개의 가상 심볼을 이용했는지에 따라 디코딩 확률이 달라진다. 즉 중요한 심볼일수록 더 높은 확률로 디코딩을 수행할 수 있다.
도 10은 본 발명의 실시 예에 따른 중요도별 손실 복원율을 차별화하는 랩터 코딩 방법의 흐름도이다. 도 10을 참조하면, 먼저 1010단계에서 인코딩할 데이터의 입력 심볼을 입력받는다. K가 1024일 때 1010단계에서 받는 심볼의 개수는 차별화하는 방법에 따라 1024개의 심볼이 될 수 있으며 차별화 방법 제4실시예의 경우에는 그보다 적은 개수의 심볼을 받을 수 있다. 다음 1020단계에서는 심볼의 중요도를 확인한다. 심볼은 인코딩된 하나의 패킷이 될 수도 있으며, 하나의 패킷이 여러 개의 패킷으로 구분될 수도 있으며, 여러 개의 패킷이 하나의 심볼로 표현될 수도 있다. 1020단계에서 사용될 수 있는 방식으로 NAL Header를 가지는 인코딩된 패킷에서 NRI는 패킷의 중요도를 나타낸다. NRI의 중요도에 따라 심볼의 중요도를 확인할 수 있다. 또 다른 방식으로 한 GOP가 몇 프레임으로 구성이 되어있는지 파악하여 현재 심볼이 몇 번째 프레임에 대한 심볼인지를 판단하여 상기 도 6에 설명한 바와 같이 GOP의 앞에 있는 프레임의 중요도를 높게 설정할 수 있다. 다음 1030단계에서는 상기 1020단계에서 확인한 심볼의 중요도에 따라 심볼의 선택 확률을 다르게 하거나 가상 심볼의 개수를 다르게 한다. 다음 1040단계에서는 상기 1030단계에 의해 선택 확률이 다르게 된 K개의 심볼 혹은 가상 심볼을 이용하여 랩터 코딩 방식에 의해 중간 심볼(Intermediate symbols)들을 만들고 이 중간 심볼을 가지 고 출력 심볼을 생성한다. 다음 1050단계에서는 출력 심볼에 SBN(Source Block Number)와 ESI(Encoding Symbol ID)를 추가하여 하나의 패킷을 만든다.
도 11은 본 발명의 실시 예에 따른 중요도별 손실 복원율을 차별화하는 랩터 코딩 동작시 심볼들을 보여주는 예시도이다. 기존의 랩터 코딩은 입력 심볼을 이용하여 중간 심볼을 만들고 중간 심볼을 부호화하여 출력 심볼을 생성한다면, 본 발명의 실시 예에 따른 랩터 코딩 방법은 입력 심볼에 대하여 중요도에 따라 가상 심볼들을 만드는 과정이 추가된다. 도 11은 손실 복원율 차별화 방법의 제4실시예의 과정을 보여주는 도면이다. 도 11에 도시한 바와 같이 기존에는 K개의 입력 심볼을 그대로 이용한다면, 본 발명의 제4실시예에서는 K개보다 적은 입력 심볼(1110)에 대하여 K개의 가상 심볼(1120)을 만드는 부분이 추가된다.
따라서 입력 심볼(1110)을 수신하여 상기 입력 심볼(1110)의 중요도를 확인한 다음 중요도에 따라 가상 심볼(1120)을 생성한다. 다음 랩터 코딩 방식에 따라 가상 심볼(1120)을 이용하여 중간 심볼(1130)을 생성하고, 상기 중간 심볼(1130)을 이용하여 출력 심볼(1140)을 생성한다. 다음 출력 심볼(1140)에 헤더를 추가하여 패킷을 생성한다.
도 12는 본 발명의 실시 예에 따른 중요도별 손실 복원율을 차별화하는 랩터 코딩에 대한 디코딩 방법 흐름도이다. 도 12를 참조하면, 먼저 1210단계에서는 송신측으로부터 패킷을 수신하여 헤더의 정보 및 심볼을 분리한다. 다음 1220단계에서는 수신한 패킷의 ESI에 따라 어떤 중간 심볼들이 포함됐는지 등에 대한 정보 및 실제 출력 심볼의 데이터를 통해 중간 심볼(intermediate symbols)을 복원한다. 다음 1230단계에서는 상기 복원한 중간 심볼을 이용하여 중요도에 의해 차별화된 입력 심볼 또는 가상 심볼을 복원한다. 1개의 입력 심볼이 송신측에서 10개의 가상 심볼로 만들어졌을 경우 수신측에서는 단 한 개의 심볼만 복호가 되면 코드 복원 과정없이 다른 9개의 심볼들을 복호화할 수 있다. 다음 1240단계에서는 중요도에 따라 차별화된 입력 심볼에서의 중요도를 확인한다. 상기 1240단계 이후는 본 발명의 실시 예에 따라 동작에 차이가 있다. 제1실시예나 제2실시예, 제3실시예의 경우에는 인코딩시에 이미 중요도에 따라 적절하게 심볼을 생성하였으므로 기존의 디코딩 방식과 동일하게 디코딩을 수행하게 되며, 제4실시예의 경우에는 가상 심볼을 이용하였기 때문에 중요도를 확인하여 가상 심볼을 판단하게 되고, 다음 1250단계에서는 실제 입력 심볼을 구한다. 이때 상기 1230단계에서 모든 심볼들이 복호화되지는 않더라도 일부의 심볼만을 이용하여 실제의 입력 심볼을 구할 수 있다.
도 13은 본 발명의 실시 예에 따른 중요도별 손실 복원율을 차별화하는 랩터 코딩에 대한 디코딩 동작시 각 심볼들을 보여주는 예시도이다. 도 13은 손실 복원율 차별화 방법의 제4실시예를 사용하여 코딩하였을 경우 디코딩 동작 단계를 나타낸다. 기존의 랩터 코딩 방식은 수신받은 출력 심볼을 이용하여 중간 심볼을 만들고 중간 심볼을 복호화하여 입력 심볼을 생성하는데 반해, 본 발명의 제4실시예에 따른 방법은 복호화된 중간 심볼(1320)을 이용하여 복호화되지 않은 중간 심볼 데이터 값을 찾는 과정이 추가된다. 또한 도 13에 도시한 바와 같이 기존에는 K개 이상의 입력 심볼을 이용하였으나 K개보다 적은 출력 심볼을 입력받아 중간 심볼(1320)을 생성하는 과정이 추가된다. 이에 따라 수신측이 송신측으로부터 출력 심볼(1410)을 입력받아 랩터 코딩방식을 이용하여 입력 심볼(1320)을 복원하며, 다음 중요도에 따라 입력 심볼(1320)을 이용하여 원래의 입력 심볼(1330)을 복원한다.
상기와 같이 본 발명의 일 실시 예에 따른 중요도에 따라 손실 복원율을 차별화하는 비균일 랩터 코딩 방법의 동작이 이루어질 수 있으며, 한편 상기한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나 여러 가지 변형이 본 발명의 범위를 벗어나지 않고 실시될 수 있다.
도 1은 종래의 랩터(Raptor) 코딩 방식에서 코딩 동작시 각 단계의 심볼들을 보여주는 예시도
도 2는 종래의 랩터 코딩 방식에서 디코딩의 동작시 각 단계의 심볼들을 보여주는 예시도
도 3은 랩터 코딩에서 선택 개수 별 확률(Soliton distribution)을 보여주는 선형도
도 4는 중요도별 손실 복원율을 차별화하기 위해 패킷 구성을 보여주는 예시도
도 5는 3GPP(The 3rd Generation Partnership Project) MBMS(Multimedia Broadcast/Multicast Service)에서 송수신기의 계층 구조를 나타내는 블록 구성도
도 6은 하나의 GOP(Group Of Picture)에서 각 프레임이 손실된 경우의 PSNR에 미치는 영향을 나타내는 일 예시 선형도
도 7은 중요도별 손실 복원율을 차별화하기 위해 심볼(symbol)의 선택 확률을 차별화하는 방식을 나타내는 개념도
도 8은 중요도별 손실 복원율을 차별화하기 위해 심볼의 선택범위를 중복하여 차별화하는 방식을 나타내는 개념도
도 9는 중요도별 손실 복원율을 차별화하기 위해 가상 심볼을 이용하여 차별화하는 방식을 나타내는 개념도
도 10은 본 발명의 실시 예에 따른 중요도별 손실 복원율을 차별화하는 랩 터 코딩 방법의 흐름도
도 11은 본 발명의 실시 예에 따른 중요도별 손실 복원율을 차별화하는 랩터 코딩 동작시 각 심볼들을 보여주는 예시도
도 12는 본 발명의 실시 예에 따른 중요도별 손실 복원율을 차별화하는 랩터 코딩에 대한 디코딩 방법 흐름도
도 13은 본 발명의 실시 예에 따른 중요도별 손실 복원율을 차별화하는 랩터 코딩에 대한 디코딩 동작시 각 심볼들을 보여주는 예시도

Claims (11)

  1. 데이터가 손실된 경우의 PSNR(Peek Signal to Noise Ratio) 값의 저하 정도에 근거하여 결정된 상기 데이터의 중요도에 따라 송수신기가 손실 복원율을 차별화하는 비균일 랩터(Raptor) 코딩을 수행하는 방법에 있어서,
    인코딩할 상기 데이터의 입력 심볼(Symbols)을 수신하는 과정과,
    상기 입력 심볼의 중요도를 확인하는 과정과,
    상기 입력 심볼에 포함된 각 심볼들의 중요도에 따라 상기 각 심볼들의 선택 확률을 설정하는 과정과,
    상기 각 심볼들의 선택 확률이 설정된 상기 입력 심볼을 인코딩하여 출력 심볼을 생성하는 과정과,
    상기 출력 심볼을 이용하여 패킷을 생성하는 과정을 포함함을 특징으로 하는 코딩 방법.
  2. 제 1항에 있어서, 상기 중요도는,
    오디오 또는 음성 스트림은 비디오 스트림보다 중요도가 높으며, 비디오 스트림의 경우 Intra 프레임은 Predictive 프레임보다 중요도가 높으며, Predictive 프레임은 Bi-directional 프레임보다 중요도가 높으며, Intra 프레임 내에서 헤더나 DC값은 다른 데이터보다 중요도가 높으며, Predictive 프레임 내에서 헤더와 MV(Motion Vector)값이 다른 데이터보다 중요도가 높은 것을 특징으로 하는 코딩 방법.
  3. 제 2항에 있어서, 상기 중요도는,
    스케일러블 비디오 코딩(SVC, Scalable Video Coding)에서는 계층별로 중요도를 다르게 판단하며, 하나의 GOP(Group of Picture) 내에서는 선행 프레임일수록 중요도를 높게 판단하는 것을 특징으로 하는 코딩 방법.
  4. 제 1항에 있어서, 상기 각 심볼의 선택 확률을 설정하는 과정은,
    상기 입력심볼에 포함된 상기 각 심볼들은 미리 설정된 범위 이내에서 상기 중요도에 따라 특정 범위를 나누어 가지며, 상기 미리 설정된 범위 이내로 무작위로 숫자를 발생시켜 상기 숫자가 속하는 상기 특정 범위에 해당하는 심볼을 선택함으로써 상기 각 심볼의 선택 확률을 설정하는 과정임을 특징으로 하는 코딩 방법.
  5. 제 1항에 있어서, 상기 각 심볼의 선택 확률을 설정하는 과정은,
    상기 중요도에 따라 상기 각 심볼들을 포함하는 적어도 하나 이상의 구간을 설정하며, 상기 나누어진 구간들에서 각 구간마다 미리 설정된 횟수만큼 심볼을 선택함으로써 상기 각 심볼의 선택 확률을 설정하는 과정임을 특징으로 하는 코딩 방법.
  6. 제 1항에 있어서, 상기 각 심볼의 선택 확률을 설정하는 과정은,
    심볼 선택을 위한 변수 테이블이 있는 경우, 상기 중요도에 따라 테이블을 변형하여 선택 확률을 설정하는 과정임을 특징으로 하는 코딩 방법.
  7. 제 1항에 있어서, 상기 심볼의 선택 확률을 설정하는 과정은,
    상기 입력 심볼을 이용하여 상기 각각의 입력 심볼에 대응되는 각각의 가상 심볼을 상기 중요도에 따라 미리 설정된 숫자만큼 생성하여 심볼의 선택 확률을 설정하는 과정임을 특징으로 하는 코딩 방법.
  8. 제 7항에 있어서, 상기 가상 심볼은 원래의 입력 심볼과 동일하지 않은 데이터를 가지며, 상기 원래의 입력 심볼로부터 생성될 수 있는 것을 특징으로 하는 코딩 방법.
  9. 제 1항에 있어서, 상기 출력 심볼을 이용하여 패킷을 생성하는 과정은, 출력 심볼에 SBN(Source Block Number)와 ESI(Encoding Symbol ID)를 추가하여 패킷을 생성하는 과정임을 특징으로 하는 코딩 방법.
  10. 데이터가 손실된 경우의 PSNR(Peek Signal to Noise Ratio) 값의 저하 정도에 근거하여 결정된 상기 데이터의 중요도에 따라 송수신기가 손실 복원율을 차별화하는 비균일 랩터(Raptor) 코딩된 데이터를 디코딩하는 방법에 있어서,
    상기 데이터의 패킷을 수신하여 헤더의 정보 및 심볼을 분리하는 과정과,
    상기 수신한 패킷을 디코딩하여 심볼의 선택 확률을 다르게 하여 차별화한 입력 심볼을 복원하는 과정을 포함함을 특징으로 하는 디코딩 방법.
  11. 제 10항에 있어서, 상기 수신한 패킷이 가상 심볼을 이용하여 심볼의 선택 확률을 다르게 한 경우, 복원된 입력 심볼의 중요도를 확인하여 상기 가상 심볼을 판단하는 과정과,
    상기 복원된 가상 심볼 또는 상기 입력 심볼을 이용하여 실제 입력 심볼을 복원하는 과정을 더 포함함을 특징으로 하는 디코딩 방법.
KR1020080035838A 2007-04-17 2008-04-17 중요도에 따라 손실 복원율을 차별화하는 비균일 랩터 코딩방법 KR101259659B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20070037219 2007-04-17
KR1020070037219 2007-04-17

Publications (2)

Publication Number Publication Date
KR20080093924A KR20080093924A (ko) 2008-10-22
KR101259659B1 true KR101259659B1 (ko) 2013-05-02

Family

ID=40154307

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080035838A KR101259659B1 (ko) 2007-04-17 2008-04-17 중요도에 따라 손실 복원율을 차별화하는 비균일 랩터 코딩방법

Country Status (1)

Country Link
KR (1) KR101259659B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101761812B1 (ko) 2015-06-16 2017-07-26 주식회사 구버넷 비균등 오류정정 기법을 이용한 심볼의 패킷 생성 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101593692B1 (ko) * 2009-09-02 2016-02-12 주식회사 케이티 근거리 통신망 접속을 위한 접속제어 장치와 이를 구비하는 근거리 통신망 접속 시스템 및 방법
KR101153520B1 (ko) 2010-11-30 2012-06-11 한국전자통신연구원 부호화 심볼의 패킷화 방법 및 이러한 방법을 사용하는 장치
KR101145673B1 (ko) * 2010-12-27 2012-05-24 포항공과대학교 산학협력단 특정 구조를 가지는 lt코드를 이용한 부호화 방법 및 이를 기반으로 하는 랩터 코드를 이용한 부호화 방법
KR101258958B1 (ko) * 2011-08-23 2013-04-29 고려대학교 산학협력단 랩터 부호를 이용하는 부호화 장치 및 부호화 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6095422A (en) 1998-01-14 2000-08-01 Intermec Ip Corp. Method and apparatus of autodiscriminating in symbol reader employing prioritized and updated table of symbologies
WO2007032492A1 (ja) 2005-09-16 2007-03-22 Matsushita Electric Industrial Co., Ltd. 無線送信装置、無線受信装置およびデータ配置方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6095422A (en) 1998-01-14 2000-08-01 Intermec Ip Corp. Method and apparatus of autodiscriminating in symbol reader employing prioritized and updated table of symbologies
WO2007032492A1 (ja) 2005-09-16 2007-03-22 Matsushita Electric Industrial Co., Ltd. 無線送信装置、無線受信装置およびデータ配置方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101761812B1 (ko) 2015-06-16 2017-07-26 주식회사 구버넷 비균등 오류정정 기법을 이용한 심볼의 패킷 생성 방법

Also Published As

Publication number Publication date
KR20080093924A (ko) 2008-10-22

Similar Documents

Publication Publication Date Title
KR100898883B1 (ko) 컨텐츠의 부호화, 배신 및 수신 장치
JP5485302B2 (ja) ファイルダウンロードおよびストリーミングのシステム
CN101272495B (zh) 用于传输基于分组的图像帧的方法和装置
Cataldi et al. Sliding-window raptor codes for efficient scalable wireless video broadcasting with unequal loss protection
WO2018045459A1 (en) Checksum-filtered decoding, checksum-aided forward error correction of data packets, forward error correction of data using bit erasure channels and sub-symbol level decoding for erroneous fountain codes
JP2010246120A (ja) ホームネットワークにおいてインターネットプロトコルテレビを使用して通信するための装置及び方法
Thomos et al. Network coding of rateless video in streaming overlays
KR101259659B1 (ko) 중요도에 따라 손실 복원율을 차별화하는 비균일 랩터 코딩방법
Fong et al. Low-latency network-adaptive error control for interactive streaming
Dimakis et al. Unequal growth codes: Intermediate performance and unequal error protection for video streaming
Wang et al. Overview of Robust Video Streaming with Network Coding.
Nazir et al. Unequal error protection for data partitioned H. 264/AVC video broadcasting
Chang et al. Unequal-protected LT code for layered video streaming
Nazir et al. Unequal error protection for data partitioned H. 264/AVC video streaming with Raptor and Random Linear Codes for DVB-H networks
JP5837943B2 (ja) 異種ネットワークを介したコンテンツ配信のクリフ効果を軽減するシステムおよび方法
KR101451985B1 (ko) 서브 블록별 순차적 업데이트 방식을 이용한 저지연 파운틴코딩 방법
Jose et al. A new unequal error protection technique for scalable video transmission over multimedia wireless networks
Bouabdallah et al. Evaluation of cross-layer reliability mechanisms for satellite digital multimedia broadcast
Vilei et al. A novel unbalanced multiple description scheme for video transmission over wlan
Etemadi et al. An efficient progressive bitstream transmission system for hybrid channels with memory
Nazir et al. Rate adaptive selective segment assignment for reliable wireless video transmission
Arslan Minimum distortion variance concatenated block codes for embedded source transmission
Huang et al. Transmission control for fast recovery of rateless codes
Wang et al. Receiver-driven multicast over wireless with distributed source coding and FEC
Baccaglini et al. Concealment driven smart slice reordering for robust video transmission

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee