KR100930857B1 - 선형 소거 코드를 제공하기 위한 방법 및 장치 - Google Patents

선형 소거 코드를 제공하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR100930857B1
KR100930857B1 KR1020077023241A KR20077023241A KR100930857B1 KR 100930857 B1 KR100930857 B1 KR 100930857B1 KR 1020077023241 A KR1020077023241 A KR 1020077023241A KR 20077023241 A KR20077023241 A KR 20077023241A KR 100930857 B1 KR100930857 B1 KR 100930857B1
Authority
KR
South Korea
Prior art keywords
sequence
code
value
index
packet
Prior art date
Application number
KR1020077023241A
Other languages
English (en)
Other versions
KR20070120136A (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 KR20070120136A publication Critical patent/KR20070120136A/ko
Application granted granted Critical
Publication of KR100930857B1 publication Critical patent/KR100930857B1/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
    • 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/0023Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the signalling
    • H04L1/0025Transmission of mode-switching indication
    • 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
    • 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/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • 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/0023Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the signalling
    • H04L1/0028Formatting
    • 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/0057Block 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/0075Transmission of coding parameters to receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

선형 소거 코드를 제공하기 위한 방법 및 장치. 일 양태에서, 한 세트의 데이터 값들을 코드 심볼로 인코딩하기 위한 방법이 제공된다. 이 방법은 코드 심볼을 생성하기 위해 사용되어질 선택된 데이터 값들을 정의하는 인덱스 시퀀스를 결정하고, 코드 심볼을 생성하기 위해 선택된 데이터 값들로 곱해지는 팩터들을 정의하는 값 시퀀스를 결정하는 것을 포함한다. 또한, 이 방법은 인덱스 시퀀스와 값 시퀀스를 설명하는 패킷 헤더를 생성하는 것을 포함한다.
선형 소거 코드, 인코더, 디코더, 패킷, 패이로드

Description

선형 소거 코드를 제공하기 위한 방법 및 장치{METHODS AND APPARATUS FOR PROVIDING LINEAR ERASURE CODES}
35 U.S.C §119 에 따른 우선권 주장
본 특허 출원은, 2005년 3월 10일자로 출원되어 본 발명의 양수인에게 양도되며, 여기서 참조로서 명백하게 포함되는 가출원 제 60/660,875호를 우선권 주장한다.
배경
분야
본 발명은 일반적으로 데이터 네트워크의 동작에 관한 것이고, 보다 상세하게는, 선형 소거 코드를 제공하기 위한 방법과 장치에 관한 것이다.
배경기술
통상적인 무선 전달 시스템에서, 컨텐츠가 멀티캐스트 송신 채널을 통해 휴대용 디바이스로 전달된다. 컨텐츠는 패킷이 송신 채널을 통해 송신될 때마다 발생될 수도 있는 패킷 손실들을 극복하기 위해 코딩되는 코드 패킷의 형태이다. 송신기에서 인코더는 원 (original) 데이터 패킷을 취득하고, 하나 이상의 디바이스들로 송신되는 코드 패킷들을 생성한다. 노이즈 또는 다른 열화된 송신 효과 때문에, 코드 패킷의 서브세트가 임의의 특정 디바이스에서 수신된다. 수신된 코드 패킷들이 원 데이터 패킷들을 복구하도록 디코딩된다.
통상적으로, 소거 복구 코드용 패킷 포맷은 실제 코딩된 데이터를 포함하는 패킷 헤더와 패킷 패이로드를 포함한다. 종래의 시스템은 사용되는 각 타입의 소거 코드에 대해 상이한 패킷 헤더를 이용한다. 불행하게도 이러한 접근법은 플렉시블하지 않고, 스케일러블하지도 않다. 예를 들면, 새로운 인코딩 타입이 이용되는 경우, 수신자들이 우선 패킷들을 어떻게 처리하는 지에 대한 특수한 지식을 통해 먼저 업그레이드하지 않고서는 그러한 인코딩된 패킷들을 처리할 수 없다. 또한, 일정한 송신 조건에 대해 해결하고 보상하기 위한 상이한 코딩 기술들을 결합하는 것이 바람직할 수도 있다. 그러나, 종래의 시스템에서는, 일반적으로, 상이한 코딩 방식을 결합할 수 없다.
따라서, 필요한 것은, 플렉시블하고, 스케일러블한 선형 소거 인코딩을 제공하도록 동작하고, 수신 디바이스들에 대해, 사용되어지는 인코딩 방식에 대한 특수한 지식을 통해 업데이트되도록 요구하지 않아도, 새로운 방식의 코딩 방식 또는 코딩 방식의 조합을 허용하는 시스템이다.
요약
하나 이상의 실시형태에서, 통신 시스템에서 데이터를 코딩하는 선형 소거 코딩을 제공하도록 동작하는 방법과 장치를 포함하는 코딩 시스템이 제공된다. 예를 들면, 코딩 시스템의 실시형태는 사용되어지는 코딩 방식에 대한 특별한 지식 없이, 수신 디바이스에 의해 용이하게 디코딩될 수 있는 일반적인 포맷으로 선형 코딩 방식을 나타내도록 동작한다. 그 결과, 코딩 시스템은 임의의 송신 조건을 해결하기 위해 다양한 코드 타입들의 조합을 허용한다.
일 양태에서, 한 세트의 데이터 값들을 코드 심볼로 인코딩하기 위한 방법이 제공된다. 이 인코딩 방법은, 코드 심볼을 생성하기 위해 사용되어질 생성된 데이터 값들을 정의하는 인덱스 시퀀스를 결정하는 단계, 및 코드 심볼을 생성하기 위해 선택된 데이터 값들로 곱해지는 팩터들을 정의하는 값 시퀀스를 결정하는 단계를 포함한다. 또한 이 인코딩 방법은 인덱스 시퀀스와 값 시퀀스를 기술하는 패킷 헤더를 생성하는 단계를 포함한다.
일 양태에서, 한 세트의 데이터 값들을 코드 심볼로 인코딩하는 장치가 제공된다. 이 인코딩 장치는 코드 심볼을 생성하기 위해 사용되어질 선택된 데이터 값들을 정의하는 인덱스 시퀀스를 결정하고, 코드 심볼을 생성하기 위해 선택된 데이터 값들로 곱해질 팩터들을 정의하는 값 시퀀스를 결정하도록 구성된 인코딩 로직을 포함한다. 또한, 이 인코딩 장치는 인덱스 시퀀스와 값 시퀀스를 기술하는 패킷 헤더를 생성하도록 구성된 출력 로직을 포함한다.
일 양태에서, 한 세트의 데이터 값들을 코드 심볼로 인코딩하는 장치가 제공된다. 이 인코딩 장치는 코드 심볼을 생성하기 위해 사용되어질 선택된 데이터 값들을 정의하는 인덱스 시퀀스를 결정하기 위한 수단, 및 코드 심볼을 생성하기 위해 상기 선택된 데이터 값들로 곱해진 팩터들을 정의하는 값 시퀀스를 결정하기 위한 수단을 포함한다. 또한, 이 인코딩 장치는 인덱스 시퀀스와 값 시퀀스를 기술하는 패킷 헤더를 생성하기 위한 수단을 포함한다.
일 양태에서, 적어도 하나의 프로세서에 의해 실행될 때, 한 세트의 데이터 값들을 코드 심볼로 인코딩하기 위해 동작하는 컴퓨터 프로그램을 수록한 컴퓨터 판독가능 매체가 제공된다. 이 컴퓨터 프로그램은 코드 심볼을 생성하기 위해 사용되어질 선택된 데이터 값들을 정의하는 인덱스 시퀀스를 결정하기 위한 명령, 및 코드 심볼을 생성하기 위해 상기 선택된 데이터 값들로 곱해진 팩터들을 정의하는 값 시퀀스를 결정하기 위한 명령을 포함한다. 또한, 컴퓨터 프로그램은 인덱스 시퀀스와 값 시퀀스를 기술하는 패킷 헤더를 생성하기 위한 명령을 포함한다.
일 양태에서, 한 세트의 데이터 값들을 코드 심볼로 인코딩하기 위한 방법을 실행하도록 구성된 적어도 하나의 프로세서가 제공된다. 이 인코딩 방법은 코드 심볼을 생성하기 위해 사용되어질 선택된 데이터 값들을 정의하는 인덱스 시퀀스를 결정하는 단계, 및 코드 심볼을 생성하기 위해 상기 선택된 데이터 값들로 곱해지는 팩터들을 정의하는 값 시퀀스를 결정하는 단계를 포함한다. 또한 이 인코딩 방법은 인덱스 시퀀스와 상기 값 시퀀스를 기술하는 패킷 헤더를 생성하는 단계를 포함한다.
일 양태에서, 코드 패킷을 한 세트의 데이터 값들로 디코딩하는 방법이 제공된다. 이 디코딩 방법은 패킷 헤더와 패킷 패이로드를 코드 패킷으로부터 획득하는 단계, 및 인덱스 시퀀스와 값 시퀀스를 패킷 헤더로부터 결정하는 단계를 포함한다. 또한, 이 디코딩 방법은 한 세트의 데이터 값들을 생성하기 위해 인덱스 시퀀스와 값 시퀀스에 기초하여 패킷 패이로드를 디코딩하는 단계를 포함한다.
일 양태에서, 코드 패킷을 한 세트의 데이터 값들로 디코딩하는 장치가 제공된다. 이 디코딩 장치는 코드 패킷으로부터 패킷 헤더 및 패킷 패이로드를 획득하도록 구성된 추출 로직, 및 패킷 헤더로부터 인덱스 시퀀스를 결정하도록 구성 된 인덱스 시퀀스 로직을 포함한다. 또한, 이 디코딩 장치는 패킷 헤더로부터 값 시퀀스를 결정하도록 구성된 값 시퀀스 로직, 및 한 세트의 데이터 값들을 생성하기 위해 인덱스 시퀀스와 값 시퀀스에 기초하여 패킷 패이로드를 디코딩하도록 구성된 디코딩 로직을 포함한다.
일 양태에서, 코드 패킷을 한 세트의 데이터 값들로 디코딩하는 장치가 제공된다. 이 디코딩 장치는 패킷 헤더와 패킷 패이로드를 코드 패킷으로부터 획득하는 수단, 및 인덱스 시퀀스와 값 시퀀스를 상기 패킷 헤더로부터 결정하는 수단을 포함한다. 또한, 이 디코딩 장치는 한 세트의 데이터 값들을 생성하기 위해 인덱스 시퀀스와 상기 값 시퀀스에 기초하여 패킷 패이로드를 디코딩하는 수단을 포함한다.
일 양태에서, 적어도 하나의 프로세서에 의해 실행될 때, 한 세트의 데이터 값들을 생성하기 위해 코드 패킷을 디코딩하도록 동작하는 컴퓨터 프로그램을 수록한 컴퓨터 판독가능 매체가 제공된다. 이 컴퓨터 프로그램은 패킷 헤더와 패킷 패이로드를 코드 패킷으로부터 획득하는 명령, 및 인덱스 시퀀스와 값 시퀀스를 패킷 헤더로부터 결정하는 명령을 포함한다. 또한, 이 컴퓨터 프로그램은 한 세트의 데이터 값들을 생성하기 위해 인덱스 시퀀스와 값 시퀀스에 기초하여 패킷 패이로드를 디코딩하는 명령을 포함한다.
일 양태에서, 코드 패킷을 한 세트의 데이터 값들로 디코딩하는 방법을 실행하도록 구성된 적어도 하나의 프로세서가 제공된다. 이 디코딩 방법은 패킷 헤더와 패킷 패이로드를 코드 패킷으로부터 획득하는 단계, 및 인덱스 시퀀스와 값 시퀀스를 패킷 헤더로부터 결정하는 단계를 포함한다. 또한, 이 디코딩 방법은 한 세트의 데이터 값들을 생성하기 위해 인덱스 시퀀스와 값 시퀀스에 기초하여 패킷 패이로드를 디코딩하는 단계를 포함한다.
본 실시형태들의 다른 양태들은 이하 첨부된 도면의 간단한 설명, 상세한 설명 및 청구 범위의 검토 후에 명백해질 것이다.
도면의 간단한 설명
여기에 설명된 본 실시형태들의 앞서 말한 양태들은 첨부된 도면들과 함께 다음의 상세한 설명을 참고하여 보다 용이하게 명백해질 것이다.
도 1 은 코딩 시스템의 일 실시형태를 포함하는 네트워크를 도시한다.
도 2 는 코딩 시스템의 실시형태들에서 사용되는 인코더의 일 실시형태를 도시한다.
도 3 은 코딩 시스템의 실시형태들에서, 선형 코드가 코드 심볼을 생성하기 위해서 어떻게 동작하는 지를 설명하는 그래프적인 표현을 나타낸다.
도 4 는 코딩 시스템의 실시형태들에서 사용되는 패킷 헤더의 일 실시형태를 도시한다.
도 5 는 코딩 시스템의 실시형태들에서 사용되는 VALUE_SEQUENCE_TYPES 를 설명하는 테이블의 일 실시형태를 도시한다.
도 6 은 코딩 시스템의 실시형태들에서 사용되는 INDEX_SEQUENCE_TYPES 를 설명하는 테이블의 일 실시형태를 도시한다.
도 7 은 코딩 시스템의 실시형태들에서 사용되는 인코더를 동작시키는 방법 의 일 실시형태를 도시한다.
도 8 은 코딩 시스템의 일 실시형태에서 사용되는 디코더의 일 실시형태를 도시한다.
도 9 는 코딩 시스템의 실시형태들에서 사용되는 디코더를 동작시키는 방법의 일 실시형태를 도시한다.
도 10 은 코딩 시스템의 실시형태들에서 사용되는 인코더의 일 실시형태를 도시한다.
도 11 은 코딩 시스템의 실시형태들에서 사용되는 디코더의 일 실시형태를 도시한다.
상세한 설명
하나 이상의 실시형태에서, 사용되어질 코딩 방식에 대한 특수한 지식 없이도, 수신 디바이스에 의해 용이하게 디코딩될 수 있는 일반적인 포맷으로 선형 코딩 방식을 나타내도록 동작하는 코딩 시스템이 제공된다. 예를 들면, 이 시스템은 무선 통신 네트워크를 통해 송신용 데이터를 인코딩하는데 적당하다. 이 시스템은 특히, 무선 네트워크 환경에서 사용되는데 적당하지만, 통신 네트워크, 인터넷과 같은 공용 네트워크, VPN (Virtual Private Networks) 과 같은 전용 네트워크, 로컬 영역 네트워크, 광역 네트워크, 장거리 네트워크 또는 다른 임의의 형태의 데이터 네트워크를 포함하는 임의의 타입의 네트워크 환경에서 사용될 수도 있지만, 이에 한정되지는 않는다.
도 1 은 코딩 시스템의 일 실시형태를 포함하는 네트워크 (100) 를 도시한 다. 네트워크 (100) 는 데이터 네트워크 (106) 를 이용하는 디바이스 (104) 와 통신하는 서버 (102) 를 포함한다. 일 실시형태에서, 서버 (102) 는 임의의 타입의 통신 링크 (108) 를 사용하는 네트워크 (106) 와 통신하도록 동작한다. 네트워크 (106) 는 임의의 타입의 유선 및/또는 무선 네트워크일 수도 있다. 네트워크 (106) 는 임의의 적당한 타입의 무선 통신 링크 (110) 를 사용하는 디바이스 (104) 와 통신한다. 서버 (102) 는 컨텐츠 및/또는 서비스를 디바이스 (104) 에 송신하도록 동작한다. 하나의 디바이스만이 도시되었지만, 이 시스템은 임의의 수 또는 임의의 타입의 디바이스들과 적절하게 사용된다.
일 실시형태에서, 서버 (102) 는 임의의 선택된 네트워크 특징들에 기초하여 코딩 타입을 선택하도록 동작하는 코딩 선택 로직 (112) 을 포함한다. 예를 들면, 코딩 선택 로직 (112) 은 네트워크 (106) 의 다양한 송신 또는 트래픽 조건들을 모니터하고, 이러한 조건들에 기초하여 코딩 타입을 선택하도록 동작할 수도 있다. 예를 들면, 네트워크는 신호 페이딩 또는 다른 열화 효과들 때문에, 손실적인 송신 조건들을 경험할 수도 있다. 코딩 선택 로직 (112) 은 이러한 송신 조건들을 검출하도록 동작하고 (또는 다른 엔티티에 의해 이 정보가 제공되고), 이 정보에 기초하여 코딩 선택 파라미터들을 인코더 (114) 로 제공된다.
인코더 (114) 는 네트워크 (106) 를 통해 송신용 데이터를 수신하고, 코드 패킷들을 생성하기 위해서 수신한 데이터를 인코딩하도록 동작한다. 일 실시형태에서, 인코더 (114) 는 하나 이상의 선형 소거 코드들을 사용하여 데이터를 인코딩하여, 생성된 코드 패킷이 네트워크 (106) 를 통해서 송신될 때, 수신 디바이스 가 손실된 코드 패킷을 복구할 수 있게 한다. 일 실시형태에서, 인코더 (114) 는 코딩 선택 로직 (112) 으로부터 수신된 코딩 선택 파라미터에 기초하여 인코딩 방식을 선택하도록 동작한다.
일 실시형태에서, 인코더 (114) 는 패킷 헤더 (116) 와 패킷 패이로드 (118) 를 포함하는 코드 패킷을 생성하기 위해서 데이터를 인코딩하도록 동작한다. 패킷 헤더 (116) 는 데이터를 인코딩하기 위해 사용된 선형 소거 코드에 대한 정보를 제공한다. 패이로드 (118) 는 인코딩된 데이터를 포함한다. 인코더 (114) 동작에 대한 보다 상세한 설명이 본 명세서의 다른 부분에 제공된다.
하나 이상의 실시형태에서, 인코더 (114) 는 임의의 형태의 선형 인코딩 방식을 사용하여 데이터를 인코딩하도록 동작한다. 패킷 헤더 (116) 는 인코딩 방식이 사용되는 것을 충분히 기술하도록 생성된다. 따라서, 패킷 헤더는, Reed-Solomon 코딩, LDPC 코딩, LDGM 코딩, 반복 코딩, 터보 코딩 또는 임의의 다른 형태의 선형 코딩 방식으로 인코딩된 데이터를 전달할 수 있다. 또한, 인코더 (114) 는 상기의 코딩 방식의 임의의 조합 또는 임의의 새로운 타입의 선형 인코딩 방식을 이용하여 데이터를 인코딩하도록 동작할 수 있고, 패킷 헤더 (116) 는 사용된 인코딩 방식을 충분히 기술할 수 있다. 이것은, 인코딩 방식이 플렉시블 코딩 시스템을 제공하기 위한 다양한 네트워크 방식에 기초하여 선택되도록 허용한다. 또한, 패킷 헤더가, 사용된 코딩 방식을 충분히 기술하기 때문에, 시스템은, 수신된 코드 패킷을 처리하기 위해 수신 디바이스들을 업데이트하지 않은 채, 새로운 코딩 방식이 사용될 수 있기 때문에, 스케일러블하다. 이것은, 발 신자로 하여금, 수신 디바이스들을 업데이트하지 않은 채로, 그 특성들을 이용하도록 상이한 코딩 방식들을 효과적으로 결합하거나, 새로운 코딩 방식들을 사용하도록 허용한다.
코드 패킷들이 인코더 (114) 에 의해 생성된 후에, 경로 (120) 에 의해 도시된 바와 같이 네트워크 (106) 를 통해 디바이스 (104) 로 송신된다. 디바이스 (104) 가 코드 패킷들을 수신할 때, 데이터가 어떻게 인코딩되었는지를 결정하기 위해, 패킷 헤더 (116) 를 디코딩하기 위해 디코더 (122) 를 사용한다. 그 후, 디코더 (122) 는 패킷 헤더 (116) 에 의해 기술된 코딩 방식을 리버싱하여 데이터를 획득하기 위해 코드 패킷을 디코딩한다. 따라서, 패킷 헤더 (116) 가 수신된 코드 패킷을 디코딩하는 데 필요로 하는 모든 정보를 제공하기 때문에, 디바이스 (104) 는 사용된 인코딩 방식에 관한 임의의 특수한 정보를 필요로 하지 않는다.
따라서, 코딩 시스템의 실시형태들이 플렉시블하게 동작하고, 네트워크를 통해 송신용 데이터를 스케일러블하게 인코딩한다. 네트워크 (100) 는 단지 하나의 구현예이고, 다른 구현예들이 본 실시형태의 범위 내에서 가능하다.
도 2 는 코딩 시스템의 실시형태에서 사용되는 인코더 (200) 의 일 실시형태를 도시한다. 예를 들면, 인코더 (200) 는 도 1 에 도시된 인코더 (114) 가 사용하는데 적당하다. 인코더 (200) 는, 내부 데이터 버스 (210) 에 모두 접속되는, 인코딩 로직 (202), 데이터 입력 로직 (240), 코드 패킷 출력 로직 (206), 및 코딩 선택 로직 (208) 을 포함한다.
데이터 입력 로직 (204) 은 인코더 (200) 가 인코딩되어질 데이터를 수신하도록 허용하기 위해 동작하는 하드웨어 로직 및/또는 소프트웨어를 포함한다. 예를 들면, 일 실시형태에서, 데이터 입력 로직 (204) 은, 데이터 입력 로직 (204) 이, 인코딩되어질 데이터를 수신하도록 허용하기 위해, 임의의 적당한 타입의 통신 채널 (214) 을 포함하는 데이터 채널 (212) 을 통해서 데이터를 수신하도록 동작한다.
하나 이상의 실시형태에서, 인코딩 로직 (202) 은 CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 엘리먼트, 가상 머신, 소프트웨어, 및/또는 하드웨어와 소프트웨어의 임의의 조합을 포함한다. 일 실시형태에서, 인코딩 로직 (202) 은 선택된 선형 소거 코드를 사용하여 수신된 데이터를 인코딩하도록 동작한다. 인코딩 로직 (202) 의 보다 상세한 설명은 본 명세서의 다른 부분에서 제공된다. 따라서, 일반적으로, 인코딩 로직 (202) 은 데이터를 인코딩하고, 내부 데이터 버스 (210) 를 통해서 인코더 (200) 의 하나 이상의 다른 기능적인 엘리먼트를 제어하기 위한 로직을 포함한다.
코드 패킷 출력 로직 (206) 은 네트워크를 통해서 송신용 코드 패킷을 출력하도록 구성된 로직을 포함한다. 예를 들면, 일단 데이터가 인코딩 로직 (202) 에 의해 인코딩되면, 패킷 헤더와 패킷 패이로드를 포함하는 코드 패킷이 출력 로직 (206) 으로 제공된다. 그 후, 출력 로직 (206) 은 통신 링크 (214) 를 사용하여 코드 패킷들을 송신 로직 (미도시) 으로 출력한다.
코드 선택 로직 (208) 은 네트워크 성능 파라미터와 같은 인코딩 선택 파라 미터들을 검출하거나 수신하도록 구성된 하드웨어 및/또는 소프트웨어를 포함한다. 이러한 파라미터들이 데이터를 인코딩하기 위해, 인코딩 방식을 선택하도록 사용하는 인코딩 로직 (202) 으로 입력된다.
하나 이상의 실시형태의 동작 동안, 데이터 입력 로직 (204) 은 송신을 위해 인코딩될 데이터를 수신한다. 코딩 선택 로직 (208) 은 데이터를 인코딩하기 위해서 인코딩 로직 (202) 에 의해 사용된 인코딩 방식을 결정하도록 사용되는 코딩 선택 파라미터를 수신한다. 인코딩 로직 (202) 은 인코딩 데이터를 생성하기 위해 결정된 인코딩 방식에 따른 데이터와, 인코딩 방식을 기술하는 패킷 헤더를 인코딩한다. 그 후, 패킷 헤더와 패이로드를 포함하는 인코딩된 패킷은 코드 패킷 출력 로직 (206) 에 의해 출력된다.
일 실시형태에서, 코딩 시스템은, 예를 들면 인코딩 로직 (202) 인 적어도 하나의 프로세서에 의해 실행될 때, 여기에서 설명된 기능들을 제공하는, 컴퓨터 판독가능 매체에 저장된 하나 이상의 프로그램 명령들 ("프로그램 명령들") 을 포함한다. 예를 들면, 프로그램 명령들은 인코더 (200) 와 인터페이스하는, 플로피 디스크, CDROM, 메모리 카드, FLASH 메모리 디바이스, RAM, ROM, 또는 임의의 다른 형태의 메모리 디바이스 또는 컴퓨터 판독가능 매체와 같은 컴퓨터 판독가능 매체로부터 인코더 (200) 에 로딩될 수도 있다. 다른 실시형태에서, 명령들은 외부 디바이스 또는 네트워크 리소스들로부터 인코더 (200) 로 다운로딩될 수도 있다. 인코딩 로직 (202) 에 의해 실행된 프로그램 명령들은, 여기에서 설명된 바와 같이 코딩 시스템의 실시형태를 제공한다.
그 결과, 코딩 시스템의 실시형태들은 손실 송신 채널을 통해 송신용 코드 패킷들을 생성하기 위해서, 선택된 선형 소거 방식을 사용하는 데이터를 수신하여 인코딩하도록 동작한다. 따라서, 코딩 시스템의 실시형태는, 패킷 헤더가 수신 디바이스에 대한 코딩 방식을 기술하기 때문에, 플렉시블하고 스케일러블한 코딩 시스템을 제공하도록 동작한다. 따라서, 수신 디바이스들은 패킷 헤더에 의해 기술된 코딩 방식을 리버싱하여 이용될 수도 있는 임의의 방식을 디코딩할 수 있다.
로직 동작 인코딩
다음은 인코딩 로직 (202) 의 일 실시형태의 동작에 대해 상세하게 설명한다.
도 3 은 코딩 시스템의 실시형태에서 선형 코드가 코드 심볼을 생성하기 위해서 어떻게 동작하는지를 나타내는 그래프적인 표현 (300) 을 도시한다. 모든 선형 코드 심볼들은 데이터 심볼들의 선형 조합이다. 좌측의 노드들은 데이터 심볼 (302) 이고, 우측의 노드는 코드 심볼 (304) 이다. 데이터 심볼이 코드 심볼 (304) 을 생성하기 위해 사용되는 것이라면, 에지 (306) 는 코드 심볼 (304) 로부터 데이터 심볼들 (302) 중 하나까지 선으로 그어져 있다. 코드 심볼의 부분이 되기 위해 데이터 심볼에 의해 곱해지는 팩터를 나타내는 라벨 (또는 값) 을 각 에지와 연관시킨다. 예를 들면, 에지 (306) 는, 코드 심볼 (304) 을 생성하는데 이후 사용될 데이터 심볼 (d2) 에 곱해지는 팩터인 라벨 (αr) 을 갖는다.
하나 이상의 실시형태에서, 임의의 선형 코드 심볼은 2 개의 시퀀스에 의해 표현될 수 있는데, 즉: 값 시퀀스 (VALUE_SEQUENCE) 와 인덱스 시퀀스 (INDEX_SEQUENCE) 이다. VALUE_SEQUENCE 는 에지와 연관되는 라벨 (또는 팩터) 의 시퀀스를 특정화한다. INDEX_SEQUENCE 는 코드 심볼을 생성하기 위해 선택된 데이터 인덱스들을 특정화한다. 그래프적인 표현 (300) 에서, INDEX_SEQUENCE 는 1 내지 k 의 정수 열을 포함한다.
코드 심볼에 남겨지는 에지들의 수는 코드 가중치 (CODE_WEIGHT) 로 칭해진다. 그래프적인 표현 (300) 에서, 코드 심볼 (304) 을 남기는 k 개의 에지들이 있기 때문에, CODE_WEIGHT 은 k 와 동일하다.
코드들의 예
다음은 코딩 시스템의 실시형태에 의해 제공될 수도 있는 몇몇의 코딩 기법들을 설명한다. 이 예들은 코딩 시스템의 실시형태들에 의해 제공될 수 있는 몇몇의 선형 코드들, 그러나 선형 코드 전체가 아닌 선형 코드들을 이하 설명한다.
1. Reed - Solomon ( RS ) 코드
몇몇 실시형태에서, 이 코딩 시스템은 RS 코딩을 이용하여 데이터를 인코딩하기 위해 동작될 수 있다. 예를 들면, 인코딩 로직 (202) 은 RS 코딩을 제공하기 위해, 다음과 같이 동작한다.
RS 코드 심볼 (C) 은 다음과 같다:
Figure 112007072801649-pct00001
여기에서, k 는 코드 심볼 C 를 생성하기 위해 사용된 데이터 심볼들의 수이고, di 는 데이터 심볼이고, r 은 코드 파라미터이고, α 는 고유 갈루아 필드 (Galois Field, GF) 의 기본 요소이다. GF(256) 가 원하는 코드용으로 사용되는 것으로 본 설명에서는 가정한다.
이 실시형태에서, INDEX_SEQUENCE 는 코드 심볼 (C) 을 남기는 에지들을 나타내는 값 (k) 을 포함한다. VALUE_SEQUENCE 는 코드 심볼 (C) 에 남겨진 각 에지들과 연관된 데이터 심볼들로 곱해진 팩터인 값들 (αr) 을 포함한다. CODE_WEIGHT 은 코드 심볼 (C) 을 남기는 에지 (k) 의 총 수와 동일하다.
따라서, 인코딩 로직 (202) 은 상기 식에 따라 데이터를 인코딩하도록 동작하고, 관련된 CODE_WEIGHT, VALUE_SEQUENCE, 및 INDEX_SEQUENCE 파라미터들을 생성한다. 그 후, 이러한 파라미터들은 본 명세서의 다른 부분들에서 설명된 바와 같이 패킷 헤더에 병합된다.
2. 저밀도 생성기 매트릭스 코드 ( Low Density Generator Matrix code )
하나 이상의 실시형태에서, 이 코딩 시스템은 LDGM (Low Density Generator Matrix) 코딩을 사용하여 데이터를 인코딩하기 위해 동작할 수 있다. 예를 들면, LDGM 코드들은 다음 방식으로 생성될 수도 있다. CODE_WEIGHT 은 몇몇 함수를 사용하여 선택된다. CODE_WEIGHT 를 토털링하는 다수의 데이터 심볼들은 모든 데이터 심볼들로부터 선택된다. 이것이 어떻게 행해졌는지의 예는, 초기 시드 값 (SEED) 으로 데이터 심볼 넘버 생성기를 초기화하는 것이다. 그 후, 데이터 심볼 넘버 생성기는, 데이터 심볼들을 식별하기 위해 사용되는 넘버들을 생성하기 위해 CODE_WEIGHT 배수로 인보크된다. 그 후, 이러한 데이터 심볼들은 XOR 동작을 사용하여 결합된다. 선형 동작으로서, XOR 는 갈루아 필드 (GF(256)) 에서 덧셈과 같고, 곱셈 팩터는 1 이다.
따라서, 인코딩 시스템의 동작의 결과로서, VALUE_SEQUENCE 는, 모든 에지들에 대한 곱셈 팩터가 상수 (1) 인 LDGM 코딩을 제공하기 위해 생성된다. INDEX_SEQUENCE 는, 각 인덱스가 데이터 심볼 넘버 생성기의 특정 출력에 기초하고 특정 에지와 연관되는 데이터 심볼 넘버 생성기의 동작에 의해 생성된다.
일 실시형태에서, 인코딩 로직 (202) 은 상술된 설명에 따라서 데이터를 인코딩하기 위해 동작하고, 연관된 CODE_WEIGHT, VALUE_SEQUENCE, 및 INDEX_SEQUENCE 파라미터들을 생성한다. 그 후, 이러한 파라미터들은 본 명세서의 다른 부분에 설명된 바와 같이, 패킷 헤더로 병합된다.
3. 반복 코드의 예 ( Repetition Code Example )
하나 이상의 실시형태에서, 이 코딩 시스템은, 데이터 심볼들이 라운드 로빈 방식으로 반복되는 반복 코딩을 사용하여 데이터를 인코딩하기 위해 동작될 수 있다. 이 경우, CODE_WEIGHT 는 모든 코드 심볼들에 대해 1 이다. VALUE_SEQUENCE 는 상수 (1) 이고, INDEX_SEQUENCE 는 단지 하나의 엔트리를 가지며 데이터 심볼의 인덱스이다.
일 실시형태에서, 인코딩 로직 (202) 은 상기 설명에 따라 데이터를 인코딩하기 위해 동작하고, 연관된 CODE_WEIGHT, VALUE_SEQUENCE, 및 INDEX_SEQUENCE 파 라미터들을 생성한다. 그 후, 이러한 파라미터들은 본 명세서의 다른 부분에 설명된 바와 같이, 패킷 헤더로 병합된다.
따라서, 코딩 시스템은 임의의 형태의 선형 코딩을 가상적으로 제공하기 위해서 CODE_WEIGHT, VALUE_SEQUENCE, 및 INDEX_SEQUENCE 파라미터들을 생성하기 위해서 동작할 수 있다. 코딩 시스템은 상기 코딩 방식들에 한정되지 않고, 다른 코딩 방식들을 실현시킬 수도 있고, 데이터를 선형적으로 인코딩하기 위해 하나 이상의 코딩 방식을 결합할 수도 있다. 이 경우에, 인코딩 로직 (202) 은 대응하는 CODE_WEIGHT, VALUE_SEQUENCE, 및 INDEX_SEQUENCE 파라미터들을 생성하기 위해 동작하고, 그 후, 패킷 헤더에 포함된다.
패킷 헤더 생성
하나 이상의 실시형태에서, 코딩 시스템은, 한 세트의 데이터 심볼이 코드 심볼을 생성하기 위해 어떻게 선형적으로 코딩되는 지를 기술하는 패킷 헤더를 생성하도록 동작한다. 예를 들면, 인코딩 로직 (202) 은 임의의 선형 인코딩 방식에 따라 데이터를 인코딩하고, 이하 설명된 바와 같이 대응하는 패킷 헤더를 생성하도록 동작한다. 그 후, 생성된 패킷 헤더는 무선 송신 채널을 통해서 송신되는 코드 패킷을 형성하기 위해 코드 심볼들 (패이로드) 에 부착될 수 있다. 그 후, 임의의 수신 디바이스는 코딩 프로세스를 결정하기 위해서 패킷 헤더를 디코딩할 수 있고, 코딩된 심볼들로부터 데이터를 복구하기 위해 그 프로세스를 수행할 수 있다.
도 4 는 코딩 시스템의 실시형태에서 사용하기 위한 패킷 헤더 (400) 의 일 실시형태를 보여준다. 예를 들면, 일 실시형태에서, 패킷 헤더 (400) 는 인코딩 로직 (202) 의 동작에 의해 생성된다. 패킷 헤더 (400) 는 필드명 (402) 과, 연관된 필드 타입 (404) 을 포함하는 테이블을 구비한다.
일 실시형태에서, 필드명 (402) 은 CODE_WEIGHT (406), VALUE_SEQUENCE_TYPE (408), INDEX_SEQUENCE_TYPE (410), VALUE_SEQUENCE_INFO (412), 및INDEX_SEQUENCE_INFO (414) 파라미터들을 포함한다. 이 필드 타입 (404) 은 특정 필드명 (404) 과 연관된 선택적인 크기의 파라미터를 포함한다. 다양한 필드명에 대한 보다 상세한 설명이 이하 제공된다.
도 5 는 코딩 시스템의 실시형태에서 사용하기 위한 VALUE_SEQUENCE_TYPES 를 설명하는 테이블 (500) 의 일 실시형태를 도시한다. 예를 들면, 테이블 (500) 에 도시된 파라이터들은 도 4 에 도시된 VALUE_SEQUENCE_TYPE (408) 에 대해 사용될 수도 있다. 또한, 테이블 (500) 에 도시된 각 VALUE_SEQUENCE_TYPES 가 선택된 VALUE_SEQUENCE_INFO (412) 파라미터들과 연관된다.
테이블 (500) 은 이름 필드 (502) 와, 연관된 값 필드 (504) 를 포함한다. 이름 필드 (502) 는 상이한 VALUE_SEQUENCE_TYPES 에 대한 이름을 포함하고, 이들의 각각은 값 필드 (504) 에서 특정 값과 연관된다. 다음은 상이한 VALUE_SEQUENCE_TYPES 와, 연관된 VALUE_SEQUENCE_INFO (412) 파라미터들의 설명이다.
VALUE _ CONSTANT
VALUE_SEQUENCE_TYPE 필드 (408) 가 VALUE_CONSTANT (즉, 1) 로 설정되면, VALUE_SEQUENCE_INFO 필드 (412) 는 사용되어질 상수로 설정된다. 예를 들면, 모든 에지 값들이 1 로 설정되도록 설정되면, VALUE_SEQUENCE_INFO 필드는 값, 1 로 설정된다.
VALUE _ RS _ LIKE
VALUE_SEQUENCE_TYPE 필드 (408) 가 VALUE_RS_LIKE (즉, 2) 로 설정되면, VALUE_SEQUENCE_INFO 필드 (412) 는 "r" 로 설정되어, Reed-Solomon 코드 워드의 생성기가 αr∈GF(256) 이다.
VALUE _ RANDOM
VALUE_SEQUENCE_TYPE 필드 (408) 가 VALUE_RANDOM 으로 설정되면 (즉, 3), VALEU_SEQUENCE_INFO 필드 (412) 는 시퀀스 값들을 생성하는 랜덤 넘버 생성기를 초기화하기 위해 사용된 시드 값으로 설정된다. 수신 디바이스에 의해 사용된 랜덤 넘버 생성기가 인코딩 로직 (202) 에 의해 사용된 랜덤 넘버 생성기와 동일한 것으로 추정된다.
도 6 은 코딩 시스템의 실시형태에서 사용하기 위해 INDEX_SEQUENCE_TYPES 를 설명하는 테이블 (600) 의 일 실시형태를 도시한다. 예를 들면, 테이블 (600) 에 도시된 파라미터들은 도 4 에 도시된 INDEX_SEQUENCE_TYPE (410) 에 대해 사용될 수도 있다. 또한, 테이블 (600) 에 도시된 각 INDEX_SEQUENCE_TYPES 는 선택된 INDEX_SEQUENCE_INFO (414) 파라미터들과 연관된다.
테이블 (600) 은 이름 필드 (602) 와, 연관된 값 필드 (604) 를 포함한다. 이름 필드 (602) 는 상이한 INDEX_SEQUENCE_TYPES 에 대한 이름을 포함하고, 이들의 각각은 값 필드 (604) 에서 특정 값과 연관된다. 다음은 상이한 INDEX_SEQUENCE_TYPES 와, 연관된 INDEX_SEQUENCE_INFO (414) 파라미터들에 대한 설명이다.
INDEX _ LINEAR
INDEX_SEQUENCE_TYPE 필드 (410) 가 INDEX_LINEAR 로 설정되고 (즉, 1), INDEX_SEQUENCE_INFO 필드 (414) 는 다음 파라미터들 중 하나를 포함한다.
a. INDEX_INITIAL
INDEX_INITIAL 파라미터는 코드 패킷을 생성하기 위해 사용된 제 1 데이터 패킷의 인덱스이다.
b. INDEX_STEP
INDEX_STEP 파라미터는 코드 패킷을 생성하기 위해 사용된 인덱스 스텝 사이즈이다. 코드 패킷을 생성하기 위해 사용된 인덱스의 세트들이 다음과 같이 표현될 수 있다.
Figure 112007072801649-pct00002
INDEX _ MAPPED
INDEX_SEQUENCE_TYPE 필드 (410) 가 INDEX_MAPPED 로 설정되면 (즉, 2), 각 에지는 단일 에지 인덱스를 갖고, 에지 인덱스들은 데이터 패킷 인덱스들로 매핑된다. INDEX_SEQUENCE_INFO 필드 (414) 는 INITIAL_EDGE_INDEX 파라미터를 포함 한다.
INITIAL_EDGE_INDEX 파라미터는 코드 패킷의 제 1 에지의 인덱스이다. 에지 인덱스는 다음과 같이 계산한다.
Figure 112007072801649-pct00003
그리고, 데이터 인덱스는 에지 인덱스의 몇몇 함수 (맵) 이다. 동일한 매핑 함수는 수신 디바이스와 인코딩 로직 (202) 에 의해 사용된다고 추정된다.
INDEX _ LDGM
INDEX_SEQUENCE_TYPE 필드 (410) 가 INDEX_LDGM 으로 설정되면 (즉, 3), INDEX_SEQUENCE_INFO 필드 (414) 는 INITIAL_SEED 파라미터를 포함한다.
INITIAL_SEED 파라미터는 인덱스 시퀀스를 생성하기 위해 데이터 심볼 넘버 생성기를 초기화하기 위해 사용된 값이다. 수신 디바이스에 의해 사용된 데이터 심볼 넘버 생성기가 인코딩 로직 (202) 에 의해 사용된 것과 동일하다고 추정된다.
따라서, 코딩 시스템의 실시형태는 가상적인 임의의 선형 코드를 사용하여 데이터를 인코딩하고, 사용된 선형 코딩을 기술하는 패킷 헤더를 생성하도록 동작한다.
도 7 은 코딩 시스템의 실시형태에서 사용하기 위한 인코더를 동작하는 방법 (700) 의 일 실시형태를 도시한다. 명백하게 하기 위해, 이 방법 (700) 은 도 2 에 도시된 인코더 (200) 를 참고하여 여기에서 설명된다. 예를 들면, 일 실 시형태에서, 인코딩 로직 (202) 은 이하 설명된 함수들을 실현하기 위한 기계 판독가능 명령들을 실행시킨다.
블록 702 에서, 코드 가중치 값을 결정한다. 예를 들면, 인코딩 로직 (202) 은, 코드 가중치값이, 데이터를 인코딩하기 위해 선택된 타입의 선형 코딩으로 제공되어지도록 결정한다. 예를 들면, 코딩 가중치 값은 얼마나 많은 에지 구조들이 코드 심볼로부터 출력되는지를 설명한다.
블록 704 에서, 인덱스 시퀀스를 결정한다. 일 실시형태에서, 인코딩 로직 (202) 은, 코드 심볼을 생성하기 위해서 어떤 데이터 값을 사용하는 지를 설명하는 인덱스 시퀀스를 결정한다. 예를 들면, 인덱스 시퀀스 값들의 총 수는 코드 가중치 값과 동일하다. 일 실시형태에서, 인덱스 시퀀스는 상술된 바와 같이 인덱스 시퀀스 타입 (410) 과 인덱스 시퀀스 정보 (414) 파라미터들에 의해 설명된다.
블록 706 에서, 값 시퀀스를 결정한다. 일 실시형태에서, 인코딩 로직 (202) 은 코드 심볼을 생성하기 위해서 데이터 값들로 곱해지는 팩터들을 설명하는 값 시퀀스를 결정한다. 예를 들면, 값 시퀀스 값들의 총 수는 코드 가중치 값과 동일하다. 일 실시형태에서, 값 시퀀스는 상술된 바와 같이 값 시퀀스 타입 (408) 과 값 시퀀스 정보 (412) 파라미터들에 의해 설명된다.
블록 708 에서, 데이터는 선택된 코딩 방식에 따라 인코딩된다. 예를 들면, 인코딩 로직 (202) 은 데이터를 인코딩하고, 데이터가 어떻게 인코딩되는 지를 기술하는 패킷 헤더를 생성하도록 동작한다. 예를 들면, 패킷 헤더는 도 4 에 도시된 것이다.
블록 710 에서, 코드 패킷은 패킷 헤더와 패이로드를 포함하여 어셈블링된다. 예를 들면, 코드 패킷 출력 로직 (206) 은 패이로드와 같은 인코딩된 데이터와, 패킷 헤더를 포함하는 코드 패킷을 생성하도록 동작한다.
블록 712 에서, 코드 패킷은 하나 이상의 수신 디바이스에 송신된다. 예를 들면, 코드 패킷 출력 로직 (206) 은 무선 네트워크를 통해서 하나 이상의 디바이스에 코드 패킷을 송신하도록 동작하는 송신 로직으로 코드 패킷을 출력한다.
블록 714 에서, 코딩 방식에 대한 임의의 조정이 수행되어질 필요가 있는지를 결정하기 위한 테스트가 실행된다. 일 실시형태에서, 코드 선택 로직 (208) 은 네트워크 송신 또는 트래픽 특성과 같은 하나 이상의 네트워크 특성에 기초한 코딩 방식을 결정하도록 동작한다. 그 후, 코드 선택 로직 (208) 은 데이터를 인코딩하기 위해 사용되어질 특정 코딩 방식을 정의하도록 동작하는 인코딩 로직 (202) 으로 코드 선택 파라미터를 제공한다. 코드 선택 파라미터는 임의의 포맷일 수도 있고, 임의의 타입의 코드 식별자를 사용하는 코딩 방식을 특정화할 수도 있다.
현재의 코딩 방식에 대해 어떠한 조정도 없다면, 이 방법은 송신을 위한 데이터 코딩을 계속하기 위해 블록 708 으로 진행한다. 코딩 방식에 대해 조정이 있다면, 이 방법은, 데이터의 인코딩을 선택된 네트워크 특성에 적응시키기 위해 조정될 수 있도록 새로운 코딩 팩터들이 결정되는 블록 (702) 으로 진행한다.
따라서 이 방법 (700) 은 코딩 시스템의 일 실시형태를 제공하도록 동작한 다. 이 방법 (700) 은 단지 하나의 실현예를 나타내고, 다른 실현예들은 본 실시형태의 범위 내에서 가능하다.
도 8 은 코딩 시스템의 실시형태에서 수신 디바이스에 사용하기 적당한 디코더 (800) 의 일 실시형태를 도시한다. 예를 들면, 디코더 (800) 는 도 1 에 도시된 디코더 (122) 로서 사용하기 적당하다. 디코더 (800) 는 데이터 버스 (812) 에 모두 접속되는, 디코딩 로직 (802), 코드 가중치 추출 로직 (804), 값 시퀀스 로직 (806), 인덱스 시퀀스 로직 (808), 및 데이터 출력 로직 (810) 을 포함한다.
코드 가중치 추출 로직 (804) 은 하드웨어 및/또는 소프트웨어의 임의의 조합을 포함하고, 코드 패킷 (814) 을 수신하고, 패킷 헤더로부터 코드 가중치 값을 추출하도록 동작한다. 예를 들면, 일 실시형태에서, 패킷 헤더는 도 4 에 도시된 패킷 헤더 (400) 로서 포맷되고, 코드 가중치 값은 코드 가중치 값 (406) 이다.
값 시퀀스 로직 (806) 은 하드웨어 및/또는 소프트웨어의 임의의 조합을 포함하고, 코드 패킷 (814) 에 포함된 패킷 헤더로부터 값 시퀀스를 생성하도록 동작한다. 예를 들면, 일 실시형태에서, 패킷 헤더는 도 4 에 도시된 패킷 헤더 (400) 로서 포맷되고, 값 시퀀스는, 전술된 값 시퀀스 타입 (408) 과 값 시퀀스 정보 (412) 로부터 유도된다.
인덱스 시퀀스 로직 (808) 은 하드웨어 및/또는 소프트웨어의 임의의 조합을 포함하고, 코드 패킷 (814) 에 포함된 패킷 헤더로부터 인덱스 시퀀스를 생성하도록 동작한다. 예를 들면, 일 실시형태에서, 패킷 헤더는 도 4 에 도시된 패킷 헤더 (400) 로서 포맷되고, 인덱스 시퀀스는 전술된 인덱스 시퀀스 타입 (410) 과 인덱스 시퀀스 정보 (414) 로부터 유도된다.
디코딩 로직 (802) 은 하드웨어 및/또는 소프트웨어의 임의의 조합을 포함하고, 코드 패킷 (814) 으로부터 패이로드를 수신하도록 동작한다. 또한, 디코딩 로직 (802) 은 코드 가중치 추출 로직 (804), 값 시퀀스 로직 (806), 및 인덱스 시퀀스 로직 (808) 으로부터 각각 하나 이상의 코드 가중치, 값 시퀀스, 및 인덱스 시퀀스를 수신한다. 일 실시형태에서, 디코딩 로직 (802) 은 데이터를 인코딩하기 위해 사용된 코딩 방식을 리버싱하여 패이로드로부터 데이터를 디코딩하도록 동작한다. 예를 들면, 코드 가중치, 값 시퀀스, 및 인덱스 시퀀스는 데이터가 어떻게 선형적으로 인코딩되는지를 설명하고, 디코딩 로직 (802) 은 초기 데이터를 생성하기 위해 설명된 코딩 방식을 리버싱하도록 동작한다. 디코딩 로직 (802) 은 또한, 임의의 손실된 코드 패킷을 복구하기 위해 임의의 적절한 기법을 사용하여 동작할 수도 있다.
데이터 출력 로직 (810) 은 하드웨어 및/또는 소프트웨어의 임의의 조합을 포함하고, 디코딩 로직 (802) 으로부터 디코딩된 데이터를 수신하고, 통신 링크 (816) 를 사용하는 수신 디바이스에서 다른 로직으로 이 데이터를 출력하도록 동작한다.
일 실시형태에서, 코딩 시스템은, 예를 들면 디코딩 로직 (802) 인 적어도 하나의 프로세서에 의해 실행될 때, 여기에서 설명된 기능들을 제공하는, 컴퓨터 판독가능 매체에 저장된 하나 이상의 프로그램 명령들 ("프로그램 명령들") 을 포 함한다. 예를 들면, 프로그램 명령들은 디코더 (800) 와 인터페이스하는, 플로피 디스크, CDROM, 메모리 카드, FLASH 메모리 디바이스, RAM, ROM, 또는 임의의 다른 형태의 메모리 디바이스 또는 컴퓨터 판독가능 매체와 같은 컴퓨터 판독가능 매체로부터 디코더 (800) 에 로딩될 수도 있다. 다른 실시형태에서, 명령들은 외부 디바이스 또는 네트워크 리소스들로부터 디코더 (800) 로 다운로딩될 수도 있다. 디코딩 로직 (802) 에 의해 실행된 프로그램 명령들은, 여기에서 설명된 바와 같이 코딩 시스템의 실시형태를 제공한다.
그 결과, 코딩 시스템의 실시형태들은 손실 송신 채널을 통해 송신하기 위한 코드 패킷들을 생성하기 위해서, 선택된 선형 소거 방식을 사용하는 데이터를 수신하여 인코딩하도록 동작한다. 수신 디바이스에서 수신할 때, 패킷 헤더로부터의 정보는 데이터를 디코딩하는데 사용하기 위해 추출된다. 따라서, 코딩 시스템의 실시형태는, 패킷 헤더가 수신 디바이스들에 대한 코딩 방식을 기술하기 때문에, 플렉시블하고 스케일러블한 코딩 시스템을 제공하도록 동작한다. 따라서, 수신 디바이스들은 패킷 헤더에 의해 설명된 코딩 방식을 리버싱하여 이용될 수도 있는 임의의 방식으로 디코딩할 수 있다.
도 9 는 코딩 시스템의 실시형태에서 디코더를 동작시키기 위한 방법 (900) 의 일 실시형태를 도시한다. 명확성하게 하기 위해, 이 방법 (900) 은 도 8 에 도시된 디코더 (800) 를 참고하여 여기에서 설명된다. 예를 들면, 일 실시형태에서, 디코딩 로직 (802) 은 이하 설명된 함수들을 실현하기 위해 기계 판독가능 명령들을 실행한다.
블록 902 에서, 코드 패킷들은 수신 디바이스에서 수신된다. 예를 들면, 코드 패킷은 무선 통신 채널을 통해 수신될 수도 있다. 일 실시형태에서, 코드 패킷들은 패킷 헤더와 패킷 패이로드를 포함한다.
블록 904 에서, 정보는 패킷 헤더로부터 추출된다. 예를 들면, 일 실시형태에서, 코드 가중치 추출 로직 (804) 은 패킷 헤더로부터 코드 가중치 파라미터를 추출하도록 동작한다. 값 시퀀스 로직 (806) 은 패킷 헤더로부터 값 시퀀스 타입 (408) 과 값 시퀀스 정보 (410) 을 추출하도록 동작한다. 인덱스 시퀀스 로직 (808) 은 패킷 헤더로부터 인덱스 시퀀스 타입 (412) 과 인덱스 시퀀스 정보 (414) 를 추출하도록 동작한다.
블록 906 에서, 인덱스 시퀀스를 결정한다. 예를 들면, 일 실시형태에서, 인덱스 시퀀스 로직 (808) 은 인덱스 시퀀스를 결정하기 위해서 인덱스 시퀀스 타입 (412) 과 인덱스 시퀀스 정보 (414) 를 처리하도록 동작한다.
블록 908 에서, 값 시퀀스를 결정한다. 예를 들면, 일 실시형태에서, 값 시퀀스 로직 (806) 은 값 시퀀스를 결정하기 위해서 값 시퀀스 타입 (408) 과 값 시퀀스 정보 (410) 를 처리하도록 동작한다.
블록 910 에서, 코드 패킷 패이로드에서 코딩된 심볼들을 디코딩한다. 예를 들면, 일 실시형태에서, 디코딩 로직 (802) 은 원 데이터를 인코딩하기 위해서 사용된 인코딩 처리를 리버싱하여 패이로드를 디코딩하기 위해 인덱스 시퀀스와 값 시퀀스를 이용하도록 동작한다. 그 결과, 원 데이터는 코드 패킷 패이로드로부터 디코딩된다. 일 실시형태에서, 디코딩 로직 (802) 은 또한, 손실 코드 패킷들을 복구하기 위해 임의의 적당한 기법을 사용하도록 동작한다. 그 후, 이 방법은 더 많은 코드 패킷들을 수신하기 위해 블록 902 으로 진행한다.
따라서 이 방법 (900) 은 코딩 시스템의 일 실시형태를 제공하도록 동작한다. 이 방법 (900) 은 단지 실현예를 나타내고, 다른 실현예들이 본 실시형태의 범위 내에서 가능하다.
도 10 은 코딩 시스템의 실시형태에서 사용하기 위한 인코더 (1000) 의 일 실시형태를 도시한다. 예를 들면, 인코더 (1000) 는 도 1 에 도시된 인코더 (114) 로서 사용하기에 적당하다. 인코더 (1000) 는 데이터 수신 수단 (1002), 코드 가중치 결정 수단 (1004), 인덱스 시퀀스 결정 수단 (1006), 값 시퀀스 결정 수단 (1008), 패킷 헤더 생성 수단 (1010), 및 코드 패킷으로서 패킷 헤더와 패이로드 송신 수단 (1012) 을 포함한다. 하나 이상의 실시형태에서, 수단 (1002 내지 1012) 은 여기에 설명된 바와 같이 코딩 시스템의 실시형태를 제공하도록 구성된 하나 이상의 프로세서를 포함한다.
도 11 은 코딩 시스템의 실시형태에 사용하기 위한 디코더 (1100) 의 일 실시형태를 도시한다. 예를 들면, 디코더 (1100) 는 도 1 에 도시된 인코더 (122) 로서 사용하는데 적당하다. 디코더 (1100) 는 코드 패킷 수신 수단 (1102), 패킷 헤드와 패이로드 획득 수단 (1104), 코드 가중치 결정 수단 (1106), 인덱스 시퀀스 결정 수단 (1108), 값 시퀀스 결정 수단 (1110), 및 패이로드 디코딩 수단 (1112) 을 포함한다. 하나 이상의 실시형태에서, 수단 (1102 내지 1112) 은 여기에 설명된 바와 같이 코딩 시스템의 실시형태를 제공하도록 구성된 하나 이상의 프로세서를 포함한다.
여기에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 및 회로들은 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 또는 기타 프로그래머블 로직 디바이스, 별도의 게이트 또는 트랜지스터 로직, 별도의 하드웨어 컴포넌트들, 또는 여기서 설명된 기능을 수행하도록 설계되는 이들의 임의의 결합으로 구현 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 다른 방법으로, 그 프로세서는 임의의 종래 프로세서, 제어기, 마이크로 제어기, 또는 상태 기계일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 결합, 예를 들어, DSP 와 마이크로프로세서의 결합, 복구의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들 또는 임의의 기타 다른 구성물로 구현될 수도 있다.
여기에 개시된 실시형태들과 관련하여 설명된 방법 또는 알고리즘의 단계들은 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2개의 조합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래쉬 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 ASIC 내에 상주할 수도 있다. ASIC 은 사용자 터미널 내에 상주할 수도 있다. 다른 방법으로, 프로세서와 저장 매체는 사용자 터미널 내에 디스크리트 컴포넌트로서 상주할 수도 있다.
개시되어 있는 실시형태들에 대한 설명은 당업자로 하여금 본 발명을 제조 또는 이용할 수 있도록 제공된다. 당업자는 이들 실시형태에 대한 다양한 변형들을 명백히 알 수 있으며, 여기에서 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어나지 않고도, 예를 들면, 인스턴트 메시징 서비스 또는 임의의 범용 무선 데이터 통신 애플리케이션들의 다른 실시형태들에 적용될 수도 있다. 따라서, 본 발명은 여기에서 설명된 실시형태들에 제한되는 것이 아니라, 여기에 개시된 원리 및 신교한 특징들과 부합하는 최광의 범위를 부여하려는 것이다. 여기에서 광범위하게 사용되는 "예시적인" 이라는 용어는 "예, 예시, 또는 예증으로서 제공되는"의 의미로 사용된다. "예시적인" 것으로서 여기에서 설명되는 임의의 실시형태는 다른 실시형태에 비하여 반드시 바람직하거나 유리한 것으로서 해석할 필요는 없다.
그러므로, 코딩 시스템의 실시형태들이 여기에서 설명되고 서술되었지만, 본 발명의 정신 또는 본질적인 특징들로부터 벗어나지 않고, 다양한 변형이 이들 실시형태에 대해 이루어질 수 있다. 따라서, 여기에서 개시물들과 설명들은 본 발명의 범위를 설명하기 위해 의도된 것이고, 본 발명의 범위로 제한하려는 것이 아니며, 본 발명의 범위는 다음 청구범위에서 설명된다.

Claims (50)

  1. 한 세트의 데이터 값들을 코드 심볼로 인코딩하기 위한 방법으로서,
    상기 코드 심볼을 생성하기 위해 사용되어질 생성된 데이터 값들을 정의하는 인덱스 시퀀스를 결정하는 단계,
    상기 코드 심볼을 생성하기 위해 상기 선택된 데이터 값들로 곱해지는 팩터들을 정의하는 값 시퀀스를 결정하는 단계, 및
    상기 인덱스 시퀀스와 상기 값 시퀀스를 기술하는 패킷 헤더를 생성하는 단계를 포함하는, 인코딩 방법.
  2. 제 1 항에 있어서,
    상기 코드 심볼을 생성하기 위해 사용되어질 데이터 값들의 총 수를 정의하는 코드 가중치 파라미터를 결정하는 단계, 및
    상기 패킷 헤더에 상기 코드 가중치 파라미터를 포함시키는 단계를 포함하는, 인코딩 방법.
  3. 제 1 항에 있어서,
    상기 인덱스 시퀀스를 결정하는 단계는, 선형, 매핑, 및 LDGM 시퀀스 타입들을 갖는 하나 이상의 인덱스 시퀀스 타입들로부터 인덱스 시퀀스를 결정하는 단계를 포함하는, 인코딩 방법.
  4. 제 1 항에 있어서,
    상기 값 시퀀스를 결정하는 단계는, 상수, Reed-Solomon 값, 및 랜덤 값 타입들을 포함하는 하나 이상의 값 시퀀스 타입들로부터 상기 값 시퀀스를 결정하는 단계를 포함하는, 인코딩 방법.
  5. 제 1 항에 있어서,
    상기 패킷 헤더와 상기 코드 심볼을 코드 패킷으로 어셈블링하는 단계를 추가로 포함하는, 인코딩 방법.
  6. 제 1 항에 있어서,
    인코딩 선택 파라미터에 기초하여 상기 인덱스 시퀀스와 상기 값 시퀀스 중 하나 또는 모두를 조정하는 단계를 추가로 포함하는, 인코딩 방법.
  7. 한 세트의 데이터 값들을 코드 심볼로 인코딩하는 장치로서,
    상기 코드 심볼을 생성하기 위해 사용되어질 선택된 데이터 값들을 정의하는 인덱스 시퀀스를 결정하고, 상기 코드 심볼을 생성하기 위해 상기 선택된 데이터 값들로 곱해질 팩터들을 정의하는 값 시퀀스를 결정하도록 구성된 인코딩 로직, 및
    상기 인덱스 시퀀스와 값 시퀀스를 기술하는 패킷 헤더를 생성하도록 구성된 출력 로직을 포함하는, 인코딩 장치.
  8. 제 7 항에 있어서,
    상기 인코딩 로직은 상기 코드 심볼을 생성하기 위해 사용되어질 상기 데이터 값들의 총 수를 정의하는 코드 가중치 파라미터를 결정하도록 구성되는, 인코딩 장치.
  9. 제 7 항에 있어서,
    상기 인코딩 로직은 선형, 매핑, 및 LDGM 시퀀스 타입들을 포함하는 하나 이상의 인덱스 시퀀스 타입들로부터 상기 인덱스 시퀀스를 결정하도록 구성되는, 인코딩 장치.
  10. 제 7 항에 있어서,
    상기 인코딩 로직은 상수, Reed-Solomon 값, 및 랜덤 값 타입들을 포함하는 하나 이상의 값 시퀀스 타입들로부터 상기 값 시퀀스를 결정하도록 구성되는, 인코딩 장치.
  11. 제 7 항에 있어서,
    상기 출력 로직은 상기 패킷 헤더와 상기 코드 심볼을 코드 패킷으로 어셈블링하도록 구성되는, 인코딩 장치.
  12. 제 7 항에 있어서,
    인코딩 선택 파라미터에 기초하여 상기 인덱스 시퀀스와 상기 값 시퀀스 중 하나 또는 모두를 조정하도록 구성된 코드 선택 로직을 추가로 포함하는, 인코딩 장치.
  13. 한 세트의 데이터 값들을 코드 심볼로 인코딩하기 위한 장치로서,
    상기 코드 심볼을 생성하기 위해 사용되어질 선택된 데이터 값들을 정의하는 인덱스 시퀀스를 결정하기 위한 수단,
    상기 코드 심볼을 생성하기 위해 상기 선택된 데이터 값들로 곱해진 팩터들을 정의하는 값 시퀀스를 결정하기 위한 수단, 및
    상기 인덱스 시퀀스와 상기 값 시퀀스를 기술하는 패킷 헤더를 생성하기 위한 수단을 포함하는, 인코딩 장치.
  14. 제 13 항에 있어서,
    상기 코드 심볼을 생성하기 위해서 사용되어질 데이터 값들의 총 수를 정의하는 코드 가중치 파라미터를 결정하는 수단, 및
    상기 패킷 헤더에 상기 코드 가중치 파라미터를 포함시키는 수단을 포함하는, 인코딩 장치.
  15. 제 13 항에 있어서,
    상기 인덱스 시퀀스를 결정하는 수단은, 선형, 매핑, 및 LDGM 시퀀스 타입들을 갖는 하나 이상의 인덱스 시퀀스 타입들로부터 인덱스 시퀀스를 결정하는 수단을 포함하는, 인코딩 장치.
  16. 제 13 항에 있어서,
    상기 값 시퀀스를 결정하는 수단은, 상수, Reed-Solomon 값, 및 랜덤 값 타입들을 포함하는 하나 이상의 값 시퀀스 타입들로부터 상기 값 시퀀스를 결정하는 수단을 포함하는, 인코딩 장치.
  17. 제 13 항에 있어서,
    상기 패킷 헤더와 상기 코드 심볼을 코드 패킷으로 어셈블링하는 수단을 추가로 포함하는, 인코딩 장치.
  18. 제 13 항에 있어서,
    인코딩 선택 파라미터에 기초하여 상기 인덱스 시퀀스와 상기 값 시퀀스 중 하나 또는 모두를 조정하는 수단을 추가로 포함하는, 인코딩 장치.
  19. 적어도 하나의 프로세서에 의해 실행될 때, 한 세트의 데이터 값들을 코드 심볼로 인코딩하기 위해 동작하는 컴퓨터 프로그램을 수록한 컴퓨터 판독가능 기록매체로서,
    상기 컴퓨터 프로그램은,
    상기 코드 심볼을 생성하기 위해 사용되어질 선택된 데이터 값들을 정의하는 인덱스 시퀀스를 결정하기 위한 명령,
    상기 코드 심볼을 생성하기 위해 상기 선택된 데이터 값들로 곱해진 팩터들을 정의하는 값 시퀀스를 결정하기 위한 명령, 및
    상기 인덱스 시퀀스와 상기 값 시퀀스를 기술하는 패킷 헤더를 생성하기 위한 명령을 포함하는, 컴퓨터 판독가능 기록매체.
  20. 제 19 항에 있어서,
    상기 컴퓨터 프로그램은
    상기 코드 심볼을 생성하기 위해서 사용되어질 데이터 값들의 총 수를 정의하는 코드 가중치 파라미터를 결정하는 명령, 및
    상기 패킷 헤더에 상기 코드 가중치 파라미터를 포함시키는 명령을 추가로 포함하는, 컴퓨터 판독 가능 기록매체.
  21. 제 19 항에 있어서,
    상기 인덱스 시퀀스를 결정하는 명령은, 선형, 매핑, 및 LDGM 시퀀스 타입들을 갖는 하나 이상의 인덱스 시퀀스 타입들로부터 인덱스 시퀀스를 결정하는 명령을 포함하는, 컴퓨터 판독가능 기록매체.
  22. 제 19 항에 있어서,
    상기 값 시퀀스를 결정하는 명령은, 상수, Reed-Solomon 값, 및 랜덤 값 타입들을 포함하는 하나 이상의 값 시퀀스 타입들로부터 상기 값 시퀀스를 결정하는 명령을 포함하는, 컴퓨터 판독가능 기록매체.
  23. 제 19 항에 있어서,
    상기 컴퓨터 프로그램은
    상기 패킷 헤더와 상기 코드 심볼을 코드 패킷으로 어셈블링하는 명령을 추가로 포함하는, 컴퓨터 판독가능 기록매체.
  24. 제 19 항에 있어서,
    상기 컴퓨터 프로그램은
    인코딩 선택 파라미터에 기초하여 상기 인덱스 시퀀스와 상기 값 시퀀스 중 하나 또는 모두를 조정하는 명령을 추가로 포함하는, 컴퓨터 판독가능 기록매체.
  25. 한 세트의 데이터 값들을 코드 심볼로 인코딩하기 위한 방법을 실행하도록 구성된 적어도 하나의 프로세서로서,
    상기 인코딩 방법은,
    상기 코드 심볼을 생성하기 위해 사용되어질 선택된 데이터 값들을 정의하는 인덱스 시퀀스를 결정하는 단계,
    상기 코드 심볼을 생성하기 위해 상기 선택된 데이터 값들로 곱해지는 팩터들을 정의하는 값 시퀀스를 결정하는 단계, 및
    상기 인덱스 시퀀스와 상기 값 시퀀스를 기술하는 패킷 헤더를 생성하는 단 계를 포함하는, 프로세서.
  26. 제 25 항에 있어서,
    상기 인코딩 방법은
    상기 코드 심볼을 생성하기 위해서 사용되어질 데이터 값들의 총 수를 정의하는 코드 가중치 파라미터를 결정하는 단계, 및
    상기 패킷 헤더에 상기 코드 가중치 파라미터를 포함시키는 단계를 추가로 포함하는, 프로세서.
  27. 제 25 항에 있어서,
    상기 인덱스 시퀀스를 결정하는 단계는, 선형, 매핑, 및 LDGM 시퀀스 타입들을 갖는 하나 이상의 인덱스 시퀀스 타입들로부터 인덱스 시퀀스를 결정하는 단계를 포함하는, 프로세서.
  28. 제 25 항에 있어서,
    상기 값 시퀀스를 결정하는 단계는, 상수, Reed-Solomon 값, 및 랜덤 값 타입들을 포함하는 하나 이상의 값 시퀀스 타입들로부터 상기 값 시퀀스를 결정하는 단계를 포함하는, 프로세서.
  29. 제 25 항에 있어서,
    상기 인코딩 방법은
    상기 패킷 헤더와 상기 코드 심볼을 코드 패킷으로 어셈블링하는 단계를 추가로 포함하는, 프로세서.
  30. 제 25 항에 있어서,
    상기 인코딩 방법은
    인코딩 선택 파라미터에 기초하여 상기 인덱스 시퀀스와 상기 값 시퀀스 중 하나 또는 모두를 조정하는 단계를 추가로 포함하는, 프로세서.
  31. 코드 패킷을 한 세트의 데이터 값들로 디코딩하는 방법으로서,
    패킷 헤더와 패킷 패이로드를 상기 코드 패킷으로부터 획득하는 단계,
    인덱스 시퀀스와 값 시퀀스를 상기 패킷 헤더로부터 결정하는 단계, 및
    상기 한 세트의 데이터 값들을 생성하기 위해 상기 인덱스 시퀀스와 상기 값 시퀀스에 기초하여 상기 패킷 패이로드를 디코딩하는 단계를 포함하는, 디코딩 방법.
  32. 제 31 항에 있어서,
    상기 패킷 헤더로부터, 코드 가중치 파라미터, 값 시퀀스 파라미터, 및 인덱스 시퀀스 파라미터 중 하나 이상을 추출하는 단계를 추가로 포함하는, 디코딩 방법.
  33. 제 32 항에 있어서,
    상기 인덱스 시퀀스와 상기 값 시퀀스를 결정하기 위해 상기 코드 가중치 파 라미터, 상기 값 시퀀스 파라미터, 및 상기 인덱스 시퀀스 파라미터 중 하나 이상을 처리하는 단계를 추가로 포함하는, 디코딩 방법.
  34. 제 31 항에 있어서,
    상기 디코딩 단계는, 상기 한 세트의 데이터 값들을 생성하기 위해 상기 패이로드를 디코딩하도록 상기 인덱스 시퀀스와 상기 값 시퀀스에 의해 기술된 선형 코딩 방식을 리버싱하는 단계를 포함하는, 디코딩 방법.
  35. 코드 패킷을 한 세트의 데이터 값들로 디코딩하는 장치로서,
    상기 코드 패킷으로부터 패킷 헤더 및 패킷 패이로드를 획득하도록 구성된 추출 로직,
    상기 패킷 헤더로부터 인덱스 시퀀스를 결정하도록 구성된 인덱스 시퀀스 로직,
    상기 패킷 헤더로부터 값 시퀀스를 결정하도록 구성된 값 시퀀스 로직, 및
    상기 한 세트의 데이터 값들을 생성하기 위해 상기 인덱스 시퀀스와 상기 값 시퀀스에 기초하여 상기 패킷 패이로드를 디코딩하도록 구성된 디코딩 로직을 포함하는, 디코딩 장치.
  36. 제 35 항에 있어서,
    상기 패킷 헤더로부터 코드 가중치 파라미터, 값 시퀀스 파라미터, 및 인덱 스 시퀀스 파라미터 중 하나 이상을 추출하도록 구성된 로직을 추가로 포함하는, 디코딩 장치.
  37. 제 36 항에 있어서,
    상기 인덱스 시퀀스와 상기 값 시퀀스를 결정하기 위해 상기 코드 가중치 파라미터, 상기 값 시퀀스 파라미터, 및 상기 인덱스 시퀀스 파라미터 중 하나 이상을 처리하도록 구성된 로직을 추가로 포함하는, 디코딩 장치.
  38. 제 35 항에 있어서,
    상기 디코딩 로직은, 상기 한 세트의 데이터 값들을 생성하기 위해 상기 패이로드를 디코딩하도록 상기 인덱스 시퀀스와 상기 값 시퀀스에 의해 기술된 선형 코딩 방식을 리버싱하도록 구성되는, 디코딩 장치.
  39. 코드 패킷을 한 세트의 데이터 값들로 디코딩하는 장치로서,
    패킷 헤더와 패킷 패이로드를 상기 코드 패킷으로부터 획득하는 수단,
    인덱스 시퀀스와 값 시퀀스를 상기 패킷 헤더로부터 결정하는 수단, 및
    상기 한 세트의 데이터 값들을 생성하기 위해 상기 인덱스 시퀀스와 상기 값 시퀀스에 기초하여 상기 패킷 패이로드를 디코딩하는 수단을 포함하는, 디코딩 장치.
  40. 제 39 항에 있어서,
    상기 패킷 헤더로부터, 코드 가중치 파라미터, 값 시퀀스 파라미터, 및 인덱스 시퀀스 파라미터 중 하나 이상을 추출하는 수단을 추가로 포함하는, 디코딩 장치.
  41. 제 40 항에 있어서,
    상기 인덱스 시퀀스와 상기 값 시퀀스를 결정하기 위해 상기 코드 가중치 파라미터, 상기 값 시퀀스 파라미터, 및 상기 인덱스 시퀀스 파라미터 중 하나 이상을 처리하는 수단을 추가로 포함하는, 디코딩 장치.
  42. 제 39 항에 있어서,
    상기 디코딩 수단은, 상기 한 세트의 데이터 값들을 생성하기 위해 상기 패이로드를 디코딩하도록 상기 인덱스 시퀀스와 상기 값 시퀀스에 의해 기술된 선형 코딩 방식을 리버싱하는 수단을 포함하는, 디코딩 장치.
  43. 적어도 하나의 프로세서에 의해 실행될 때, 한 세트의 데이터 값들을 생성하기 위해 코드 패킷을 디코딩하도록 동작하는 컴퓨터 프로그램을 수록한 컴퓨터 판독가능 기록매체로서,
    상기 컴퓨터 프로그램은,
    패킷 헤더와 패킷 패이로드를 상기 코드 패킷으로부터 획득하는 명령,
    인덱스 시퀀스와 값 시퀀스를 상기 패킷 헤더로부터 결정하는 명령, 및
    상기 한 세트의 데이터 값들을 생성하기 위해 상기 인덱스 시퀀스와 상기 값 시퀀스에 기초하여 상기 패킷 패이로드를 디코딩하는 명령을 포함하는, 컴퓨터 판독가능 기록매체.
  44. 제 43 항에 있어서,
    상기 컴퓨터 프로그램은
    상기 패킷 헤더로부터, 코드 가중치 파라미터, 값 시퀀스 파라미터, 및 인덱스 시퀀스 파라미터 중 하나 이상을 추출하는 명령을 추가로 포함하는, 컴퓨터 판독가능 기록매체.
  45. 제 44 항에 있어서,
    상기 컴퓨터 프로그램은
    상기 인덱스 시퀀스와 상기 값 시퀀스를 결정하기 위해 상기 코드 가중치 파라미터, 상기 값 시퀀스 파라미터, 및 상기 인덱스 시퀀스 파라미터 중 하나 이상을 처리하는 명령을 추가로 포함하는, 컴퓨터 판독가능 기록매체.
  46. 제 43 항에 있어서,
    상기 디코딩 명령은, 상기 한 세트의 데이터 값들을 생성하기 위해 상기 패이로드를 디코딩하도록 상기 인덱스 시퀀스와 상기 값 시퀀스에 의해 기술된 선형 코딩 방식을 리버싱하는 명령을 포함하는, 컴퓨터 판독가능 기록매체.
  47. 코드 패킷을 한 세트의 데이터 값들로 디코딩하는 방법을 실행하도록 구성된 적어도 하나의 프로세서로서,
    상기 디코딩 방법은,
    패킷 헤더와 패킷 패이로드를 상기 코드 패킷으로부터 획득하는 단계,
    인덱스 시퀀스와 값 시퀀스를 상기 패킷 헤더로부터 결정하는 단계, 및
    상기 한 세트의 데이터 값들을 생성하기 위해 상기 인덱스 시퀀스와 상기 값 시퀀스에 기초하여 상기 패킷 패이로드를 디코딩하는 단계를 포함하는, 프로세서.
  48. 제 47 항에 있어서,
    상기 디코딩 방법은
    상기 패킷 헤더로부터, 코드 가중치 파라미터, 값 시퀀스 파라미터, 및 인덱스 시퀀스 파라미터 중 하나 이상을 추출하는 단계를 추가로 포함하는, 프로세서.
  49. 제 48 항에 있어서,
    상기 디코딩 방법은
    상기 인덱스 시퀀스와 상기 값 시퀀스를 결정하기 위해 상기 코드 가중치 파라미터, 상기 값 시퀀스 파라미터, 및 상기 인덱스 시퀀스 파라미터 중 하나 이상을 처리하는 단계를 추가로 포함하는, 프로세서.
  50. 제 47 항에 있어서,
    상기 디코딩 방법은, 상기 한 세트의 데이터 값들을 생성하기 위해 상기 패이로드를 디코딩하도록 상기 인덱스 시퀀스와 상기 값 시퀀스에 의해 기술된 선형 코딩 방식을 리버싱하는 단계를 포함하는, 프로세서.
KR1020077023241A 2005-03-10 2006-03-10 선형 소거 코드를 제공하기 위한 방법 및 장치 KR100930857B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US66087505P 2005-03-10 2005-03-10
US60/660,875 2005-03-10
PCT/US2006/008486 WO2006099084A1 (en) 2005-03-10 2006-03-10 Methods and apparatus for providing linear erasure codes

Publications (2)

Publication Number Publication Date
KR20070120136A KR20070120136A (ko) 2007-12-21
KR100930857B1 true KR100930857B1 (ko) 2009-12-10

Family

ID=36440926

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077023241A KR100930857B1 (ko) 2005-03-10 2006-03-10 선형 소거 코드를 제공하기 위한 방법 및 장치

Country Status (7)

Country Link
US (3) US7752532B2 (ko)
EP (1) EP1867088B1 (ko)
JP (2) JP4875055B2 (ko)
KR (1) KR100930857B1 (ko)
CN (2) CN102938682B (ko)
TW (2) TWI484785B (ko)
WO (1) WO2006099084A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752532B2 (en) * 2005-03-10 2010-07-06 Qualcomm Incorporated Methods and apparatus for providing linear erasure codes
US8824598B2 (en) * 2012-12-18 2014-09-02 Telefonaktiebolaget L M Ericsson (Publ) System and method for communicating information in a wireless network
US9455745B2 (en) * 2013-02-21 2016-09-27 Microsoft Technology Licensing, Llc Encoding with integrated error-detection
KR20150050133A (ko) * 2013-10-31 2015-05-08 삼성전자주식회사 통신 시스템에서 패킷 송수신 방법 및 장치
CN104683070A (zh) * 2015-03-08 2015-06-03 西安电子科技大学 基于随机线性网络编码的传输控制方法
US10498648B1 (en) * 2015-03-25 2019-12-03 Amazon Technologies, Inc. Processing packet data using an offload engine in a service provider environment
EP3136632A1 (en) * 2015-08-26 2017-03-01 Alcatel Lucent A receiver, a plurality of transmitters, a method of receiving user data from multiple transmitters, and a method of transmitting user data
CN108429602B (zh) * 2017-02-15 2022-01-28 中兴通讯股份有限公司 一种数据处理方法、装置及发射端
US10826623B2 (en) * 2017-12-19 2020-11-03 Lisnr, Inc. Phase shift keyed signaling tone

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6600432B2 (en) * 2001-12-11 2003-07-29 International Business Machines Corporation Variable length encoding and decoding of ascending numerical sequences

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW329493B (en) * 1997-06-18 1998-04-11 Winbond Electronics Corp Data processing device
US6377995B2 (en) * 1998-02-19 2002-04-23 At&T Corp. Indexing multimedia communications
TW561711B (en) * 1999-06-29 2003-11-11 Intersil Inc RAKE receiver with embedded decision feedback equalizer
AU4710501A (en) * 1999-12-03 2001-06-18 Broadcom Corporation Interspersed training for turbo coded modulation
TW512608B (en) * 2001-02-13 2002-12-01 Realtek Semi Conductor Corp Receiver and method for receiving fast ethernet data without baseline wander effect
US6745364B2 (en) 2001-06-28 2004-06-01 Microsoft Corporation Negotiated/dynamic error correction for streamed media
US7117521B2 (en) * 2001-08-31 2006-10-03 Intel Corporation Method to measure the perceived quality of streaming media
JP3912091B2 (ja) * 2001-12-04 2007-05-09 ソニー株式会社 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
TWI257085B (en) * 2002-01-21 2006-06-21 Koninkl Philips Electronics Nv Method of encoding and decoding
US7298746B1 (en) * 2002-02-11 2007-11-20 Extreme Networks Method and system for reassembling and parsing packets in a network environment
US7321610B2 (en) * 2002-03-19 2008-01-22 Industrial Technology Research Institute Method and system of interference cancellation in multi-cell CDMA systems
US7146072B2 (en) * 2002-08-22 2006-12-05 Main Street Ventures, Llc All optical phase insensitive code responsive and code separator devices apparatus and method
JP2004088246A (ja) * 2002-08-23 2004-03-18 Toyota Industries Corp 無線通信方法および無線通信装置
US7702986B2 (en) * 2002-11-18 2010-04-20 Qualcomm Incorporated Rate-compatible LDPC codes
US7594154B2 (en) * 2004-11-17 2009-09-22 Ramakrishna Vedantham Encoding and decoding modules with forward error correction
US7752532B2 (en) * 2005-03-10 2010-07-06 Qualcomm Incorporated Methods and apparatus for providing linear erasure codes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6600432B2 (en) * 2001-12-11 2003-07-29 International Business Machines Corporation Variable length encoding and decoding of ascending numerical sequences

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
V.ROCA et.al, "Design and Evaluation of a Low Density Generator Matrix Large Block FEC Codec", NGC'03, pp.1-6, Sept. 2003.

Also Published As

Publication number Publication date
US20110194570A1 (en) 2011-08-11
JP2008533843A (ja) 2008-08-21
CN101164269B (zh) 2012-10-17
US8640009B2 (en) 2014-01-28
KR20070120136A (ko) 2007-12-21
CN102938682A (zh) 2013-02-20
TWI392267B (zh) 2013-04-01
US7886213B2 (en) 2011-02-08
TWI484785B (zh) 2015-05-11
EP1867088B1 (en) 2017-08-16
CN101164269A (zh) 2008-04-16
CN102938682B (zh) 2015-07-08
WO2006099084A1 (en) 2006-09-21
JP2012010364A (ja) 2012-01-12
TW200703996A (en) 2007-01-16
EP1867088A1 (en) 2007-12-19
US20100235717A1 (en) 2010-09-16
TW201312963A (zh) 2013-03-16
US20060239376A1 (en) 2006-10-26
US7752532B2 (en) 2010-07-06
JP4875055B2 (ja) 2012-02-15

Similar Documents

Publication Publication Date Title
KR100930857B1 (ko) 선형 소거 코드를 제공하기 위한 방법 및 장치
EP2369746B1 (en) Multi-stage code generator and decoder for communication systems
JP5863200B2 (ja) フレキシブルなソースブロックのマッピングを伴う伸縮性符号を使用した符号化および復号
JP2009527949A (ja) 通信システムのための多体ベース符号の生成器および復号化器
EP3584971B1 (en) Encoding method, decoding method, apparatus and device
JP5474558B2 (ja) 通信ネットワークにおいてデータを符号化するための方法および装置
US9455750B2 (en) Source block size selection
US8359511B2 (en) Method and system for constructing and decoding rateless codes with partial information
KR20070034532A (ko) 확장형 컨벌루션 인코더 디바이스, 무선 시스템, 컨벌루션코드 확장 방법
EP1656759B1 (en) Data compression with incremental redundancy
JP5556933B2 (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
FPAY Annual fee payment

Payment date: 20121129

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131129

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141128

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161125

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 11