KR20160141771A - 직렬 비디오 인터페이스들내 에러 감지 및 정정을 위한 직교하는 데이터 구조화 - Google Patents

직렬 비디오 인터페이스들내 에러 감지 및 정정을 위한 직교하는 데이터 구조화 Download PDF

Info

Publication number
KR20160141771A
KR20160141771A KR1020167029740A KR20167029740A KR20160141771A KR 20160141771 A KR20160141771 A KR 20160141771A KR 1020167029740 A KR1020167029740 A KR 1020167029740A KR 20167029740 A KR20167029740 A KR 20167029740A KR 20160141771 A KR20160141771 A KR 20160141771A
Authority
KR
South Korea
Prior art keywords
data
codewords
bits
error
code
Prior art date
Application number
KR1020167029740A
Other languages
English (en)
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 KR20160141771A publication Critical patent/KR20160141771A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/2707Simple row-column interleaver, i.e. pure block interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6312Error control coding in combination with data compression
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

소스 디바이스는 압축되지 않은 비디오 데이터 및 그것의 관련된 메타데이터를 포함하는 디지털 데이터를 수신하고 비디오 데이터를 압축한다. 소스 디바이스는 압축된 비디오 데이터 및 그것의 관련된 메타데이터를 나타내는 각각의 데이터 워드에 대한 에러 코드를 생성한다. 데이터 워드 및 그것의 대응하는 에러 코드는 코드 워드를 형성하기 위해 결합된다. 소스 디바이스는 비디오 데이터 및 그것의 메타데이터의 코드 워드들을 직교하는 데이터 블록들내에 구조화하고 데이터 블록들을 싱크 디바이스로 송신한다. 싱크 디바이스는 데이터 블록들내 코드 워드들의 에러 코드들의 분석에 기초하여 수신된 데이터내 손상된 데이터 비트들을 디코딩한다. 코드 워드들을 직교하는 데이터 블록들로 구조화하는 것은 데이터 블록내 손상된 데이터 비트들들을 격리하는 것에 도움을 주고 싱크 디바이스가 단일 송신 에러로부터 기인한 손상된 데이터 비트들을 감지 및 정정하고 그리고 다수의 송신 에러들로부터 기인한 손상된 데이터 비트들을 감지하는 것을 가능하게 한다.

Description

직렬 비디오 인터페이스들내 에러 감지 및 정정을 위한 직교하는 데이터 구조화 {ORTHOGONAL DATA ORGANIZATION FOR ERROR DETECTION AND CORRECTION IN SERIAL VIDEO INTERFACES}
본 발명의 실시예들은 전반적으로 컴퓨터 네트워크들 상에서의 디지털 데이터 송신의 분야에 관한 것으로 보다 상세하게는 비디오 채널들내 에러 감지 및 정정에 관한 것이다.
현대 디지털 비디오 인터페이스 시스템들내 비디오 채널 상에서의 비디오 데이터의 송신은 일반적으로 일부 제로가 아닌 비트 에러율을 겪는다. 현대 비디오 인터페이스 표준들 예를 들어, 고화질 멀티미디어 인터페이스 (HDMI: High-Definition Multimedia Interface), 모바일 고화질 링크 (MHL: Mobile High-Definition Link) 및 다른 오디오/비디오 인터페이스 표준들은 압축되지 않은(uncompressed) 비디오 데이터의 송신을 지원하고 비디오 데이터의 송신을 위한 수락할만한 비트 에러율(bit error rate)을 특정한다. 송신되는 비디오 데이터내 때때로의 비트 에러는 비디오 데이터의 손상된 픽셀로 귀결된다. 그러나, HDMI, MHL 및 다른 오디오/비디오 인터페이스 표준들 기반 디지털 비디오 인터페이스 시스템들내 비디오 채널 상에서의 송신되는 비디오 데이터의 에러율은 일반적으로 낮아서 송신되는 비디오 데이터내 때때로의 비트 에러는 사람의 시야에 보이지 않는다.
현대 디지털 오디오/비디오 인터페이스, 예를 들어, 디스플레이 스트림 압축 표준 (DSC:Display Stream Compression Standard)의 발달은 압축된(compressed) 디지털 비디오 데이터의 송신을 지원할 수 있다. 현대 디지털 비디오 인터페이스 시스템들에 의한 압축된 디지털 비디오 데이터의 송신 지원은 송신되는 디지털 비디오 데이터내 효율적인 에러 감지 및 정정의 제공이라는 난제들에 직면하는데 압축된 디지털 비디오 데이터가 송신될 때, 단일 비트 에러가 디지털 비디오 데이터의 픽셀들의 큰 블록(block)을 손상시킬 수 있고 심지어 에러들이 빈번하게 일어나지 않는다 할지라도 인간 시야에 보이지 않을 수 있기 때문이다.
디지털 데이터에 대한 에러 코드들을 생성하고 수신단에서 상기 디지털 데이터내 손상된 데이터 비트들을 감지하기 위한 해결책이 본 출원에서 설명된다. 상기 해결책은 상기 디지털 데이터에 대한 코드 워드들을 하나 이상의 직교하는 데이터 블록들내에 구조화하고, 각각의 코드 워드는 상기 디지털 데이터의 컨텐츠를 나타내는 데이터 부분 및 상기 데이터 부분내 손상된 데이터 비트들을 감지하는 에러 정정 부분을 갖는다. 직교하는 데이터 블록들을 이용함으로써, 상기 해결책은 싱크 디바이스가 데이터 블록내 단일 송신 에러로부터 기인한 손상된 데이터 비트들을 감지 및 정정하고 그리고 블록내 다수의 송신 에러들로부터 기인한 손상된 데이터 비트들을 감지하는 것을 가능하게 한다.
소스 디바이스는 압축되지 않은 비디오 데이터 및 그것의 관련된 메타데이터를 포함하는 디지털 데이터를 수신하고 상기 비디오 데이터를 압축한다. 상기 소스 디바이스는 상기 압축된 비디오 데이터를 나타내는 각각의 데이터 워드에 대하여 그리고 상기 비디오 데이터와 관련된 메타데이터를 나타내는 각각의 데이터 워드에 대한 에러 코드를 생성한다. 상기 데이터 워드 및 그것의 대응하는 에러 코드는 코드 워드를 형성하기 위해 결합된다. 상기 소스 디바이스는 상기 비디오 데이터 및 그것의 메타데이터의 코드 워드들을 직교하는 데이터 블록들내에 구조화하고 상기 데이터 블록들을 싱크 디바이스로 송신한다. 상기 싱크 디바이스는 상기 데이터 블록들내 상기 코드 워드들의 상기 에러 코드들의 분석에 기초하여 상기 수신된 데이터내 손상된 데이터 비트들을 디코딩한다. 코드 워드들을 직교하는 데이터 블록들내에 구조화하는 것은 데이터 블록내 손상된 데이터 비트들을 격리하는 것에 도움을 주고 상기 싱크 디바이스가 다수의 단일 송신 에러들로부터 기인한 손상된 데이터 비트들을 감지 및 정정하고 그리고 다수의 송신 에러들로부터 기인한 손상된 다수의 데이터 비트들을 감지하는 것을 가능하게 한다.
본 발명의 실시예들은 제한적이 아니라 예로서 예시되며, 첨부된 도면들에서 같은 도면번호들은 같은 엘리먼트들을 나타낸다.
도 1은 일 실시예에 따른 비디오 인터페이스 환경을 예시하는 블럭 다이어그램이다.
도 2 는 일 실시예에 따른 송신 간격들 동안에 입력 데이터의 디지털 방식으로 라인 인코딩된 코드 워드들의 예를 예시하는 블럭 다이어그램이다.
도 3 은 일 실시예에 따른 다수의 코드 워드들을 갖는 대표적인 직교하는 코드 블럭을 예시하는 블럭 다이어그램이다.
도 4a는 일 실시예에 따른 송신되는 직교하는 코드 블럭내 감지된 비트 에러들이 없는 제 1 예를 예시한다.
도 4b는 일 실시예에 따른 송신되는 직교하는 코드 블럭의 단일 컬럼의 모든 수직 위치들내 감지된 비트 에러들의 제 2 예를 예시한다.
도 4c는 일 실시예에 따른 직교하는 코드 블럭의 단일 컬럼의 일부 수직 위치들내 감지된 비트 에러들의 제 3 예를 예시한다.
도 4d는 일 실시예에 따른 송신되는 직교하는 코드 블럭의 2 수직 컬럼들내 감지된 비트 에러들의 제 4 예를 예시한다.
도 5 는 일 실시예에 따른 비디오 인터페이스 환경내 입력 데이터에 대한 에러 코드들을 생성하기 위한 프로세스를 예시하는 플로우 차트이다.
도 6 은 일 실시예에 따른 비디오 인터페이스 환경내 수신된 디지털 데이터내 손상된 데이터 비트들을 감지 및/또는 정정하기 위한 프로세스를 예시하는 플로우 차트이다.
본 출원에서 사용되는, "네트워크(network)" 또는 "통신 네트워크(communication network)"는 임의의 많은 기술들, 예컨대 직렬 ATA (SATA:Serial ATA), 프레임 정보 구조 (FIS:Frame Information Structure), 등을 이용하여 디바이스들간 디지털 미디어 컨텐츠 (음악, 오디오/비디오, 게임, 사진들/이미지들, 및 다른 것들을 포함)를 전달하는 상호 접속 네트워크를 의미한다. 네트워크는 로컬 영역 네트워크 (LAN), 와이드 영역 네트워크 (WAN), 메트로폴리탄 영역 네트워크 (MAN), 인트라넷, 인터넷, 등을 포함한다. 네트워크에서, 어떤 네트워크 디바이스들은 디지털 미디어 컨텐츠의 소스, 예컨대 디지털 텔레비전 동조기(tuner), 케이블 셋-탑 박스, 핸드헬드 디바이스 (예를 들어, 개인 휴대 정보 단말기(PDA)), 비디오 스토리지 서버, 및 다른 소스 디바이스일 수 있다. 이런 디바이스들은 "소스 디바이스들(source device)" 또는 "송신 디바이스(transmitting device)들"로서 본 출원에서 지칭된다. 다른 디바이스들은 디지털 텔레비전, 홈 시어터 시스템(home theater system), 오디오 시스템, 게임 시스템, 비디오 및 오디오 스토리지 서버, 및 유사한 것과 같은 디지털 미디어 컨텐츠를 수신, 디스플레이, 사용 또는 저장할 수 있다. 이런 디바이스들은 "싱크 디바이스들(sink device)" 또는 "수신 디바이스(receiving device)들"로서 본 출원에서 지칭된다.
본 출원에서 사용되는, "비디오 인터페이스 환경(video interface environment)" 비디오 데이터 및 비디오 데이터와 관련된 메타데이터(metadata)을 송신하기 위한 송신 채널에 의해 결합된 소스 디바이스 및 싱크 디바이스를 포함하는 환경을 지칭한다. 비디오 인터페이스 환경의 일 예는 HDMI 환경이고, 소스 디바이스 (예컨대 DVD 플레이어)는 HDMI 프로토콜에 따라 인코딩된 미디어 컨텐츠를 HDMI 채널 또는 MHL3 채널을 통하여 싱크 디바이스로 (예컨대 텔레비전 또는 다른 디스플레이) 제공하도록 구성된다.
어떤 디바이스들은 수신기 (케이블 헤드-엔드(head-end)로부터 정보를 수신) 뿐만 아니라 송신기 (TV로 정보를 송신) 및 반대 역할을 할 수 있는 케이블 셋-탑 박스와 같은 다수의 미디어 기능들을 수행할 수 있다는 것에 유의하여야 한다. 일부 실시예들에서, 소스 및 싱크 디바이스들은 단일 로컬 영역 네트워크 상의 같은 장소에 배치될 수 있다. 다른 실시예들에서, 디바이스들은 예컨대 로컬 영역 네트워크들 사이의 터널링(tunneling)을 통하여 다수의 네트워크 세그먼트들에 걸쳐 이어질 수 있다. 비록 본 출원에서 디지털 데이터에 대한 에러 코드들을 생성하고 수신된 디지털 데이터내 손상된 데이터 비트들을 감지하는 것이 비디오 인터페이스 환경의 상황하에서 설명되지만, 본 출원에서 설명된 에러 생성 및 감지 기술들은 소스 디바이스와 싱크 디바이스 사이의 다른 유형들의 디지털 데이터 전송, 예컨대 네트워킹 환경내 네트워크 데이터, 및 유사한 것에 적용 가능하다는 것에 유의하여야 한다.
도 1은 일 실시예에 따른 비디오 인터페이스 환경을 예시하는 블럭 다이어그램이다. 도 1의 환경은 데이터 송신 채널 (116)에 의해 싱크 디바이스 (102)에 결합된 소스 디바이스 (100)를 포함한다. 소스 디바이스 (100)는 비디오 압축 모듈 (112), 에러 코드 제너레이터 (200) 및 디지털 라인 인코더 (114)를 포함한다. 싱크 디바이스 (102)는 디지털 라인 디코더 (118), 블럭 버퍼 (120), 에러 정정 모듈 (122) 및 비디오 압축 해제 (decompression) 모듈 (124)를 포함한다. 소스 디바이스 (100)는 입력 데이터 (104)를 수신하고 에러 코드들를 갖는 입력 데이터 (104)를 결합하고 결합된 데이터를 송신 채널 (116)을 통하여 싱크 디바이스로 (102) 송신한다. 싱크 디바이스 (102)는 수신된 데이터내 에러들을 감지하고 출력 데이터 (106)를 생성한다. 싱크 디바이스 (102)는 단일 송신 에러로부터 기인한 수신된 데이터내 손상된 데이터 비트들을 감지하고 정정한다. 싱크 디바이스 (102)는 또한 다수의 송신 에러들로부터 기인한 수신된 데이터내 손상된 데이터 비트들을 감지하고 보고한다. 도 1의 환경의 다른 실시예들은 본 출원에 예시된 것들과 다른 및/또는 추가의 컴포넌트들을 포함할 수 있다. 예를 들어, 데이터 송신 채널 (116)은 임의의 적절한 유형의 비디오 또는 통신 채널, 예컨대 HDMI 채널, MHL 채널 또는 다른 직렬-유형 채널일 수 있다.
일 실시예에서, 입력 데이터 (104)는 압축되지 않은(uncompressed) 비디오 데이터 (110) 및 비디오 데이터 (110)와 관련된 메타데이터 (111)를 갖는다. 비디오 데이터와 관련된 메타데이터(metadata)의 예들은 비디오 데이터의 레인지(range)를 설명하는 높은 동적 레인지 메타데이터 및 비디오 데이터의 특성들, 예를 들어, 비디오의 길이, 비트레이트(bitrate) 및 비디오의 프레임 사이즈 및/또는 비디오 데이터의 비디오 프레임들을 인코딩하기 위해 사용된 인코딩 특성들, 예를 들어, 압축 알고리즘의 유형을 설명하는 비디오 압축 메타데이터를 포함한다. 입력 데이터 (104)는 비-일시적 컴퓨터-판독가능한 스토리지 매체, 예컨대 메모리상에 저장될 수 있거나 또는 소스로부터 외부의 소스 디바이스 (100)로 예를 들어, 비디오 서버로부터 인터넷 또는 일부 다른 유형의 네트워크에 의해 통신가능하게 결합된 소스 디바이스 (100)로 수신될 수 있다.
비디오 압축 모듈 (112)은 비디오 비디오 데이터의 (110)의 비디오를 디지털 방식으로 압축하도록 구성된다. 비디오 압축 모듈 (112)은 임의의 알려진 비디오 인코딩 표준들, 예를 들어, 비디오 전자 기기들 표준들 연관 (VESA:Video Electronics Standards Association)의 디스플레이 스트림 압축 (DSC:Display Stream Compression) 및 유사한 것을 이용하여 압축을 구현할 수 있다. 비디오 압축 모듈 (112)의 실시예들은 예를 들어, 이산 코사인 변환 (DCT : discrete cosine transform), 웨이브릿 변환(wavelet transform), 양자화 및 엔트로피 인코딩을 포함하여 관련 기술 분야의 통상의 기술자에게 알려진 임의의 비디오 압축 기법들을 사용할 수 있다. 비디오 압축 모듈 (112)은 에러 코드 생성을 위해 에러 코드 제너레이터 (200)로 압축된 비디오 데이터를 제공한다. 비디오 데이터(100)와 관련된 메타데이터는 에러 코드 생성을 위해 에러 코드 제너레이터 (200)에 직접 제공된다.
에러 코드 제너레이터 (200)는 압축된 비디오 데이터 및 비디오 데이터와 관련된 메타데이터에 대한 에러 코드들을 생성한다. 일 실시예에서, 에러 코드 제너레이터 (200)는 압축된 비디오 데이터 부분은 비디오 압축 모듈 (112)로부터 수신하고, 압축된 비디오 데이터 부분에 기초하여 에러 코드를 생성한다. 일 실시예에서, 압축된 비디오 데이터의 부분은 다수의 데이터 워드(data word)들을 갖고, 각각은 다수의 데이터 비트들을 갖는다. 각각의 데이터 워드에 대하여, 에러 코드 제너레이터 (200)는 미리 결정된 수의 신드롬 비트(syndrome bit)들을 (또한 "패러티 비트들(parity bit)"으로 지칭된다) 포함하는 에러 코드를 생성한다. 각각의 데이터 워드 및 그것의 대응하는 에러 코드는 에러 정정 코드 워드 (또는 간단히 "코드 워드(code word)")를 형성하기 위해 결합된다. 일 실시예에서, 에러 코드 제너레이터 (200)에 의해 발생된 에러 코드는 예를 들어, 디지털 라인 인코더 (114)에 의해 라인 인코딩되고 송신 채널 (116)을 통하여 송신되기 이전에 다중화기(multiplexor)를 이용하여 데이터 워드에 추가된다.
일 실시예에서, 에러 코드 제너레이터 (200)는 대응하는 신드롬 비트들을 생성하기 위해서 각각의 데이터 워드에 에러 정정 알고리즘을 적용한다. 에러 코드 제너레이터 (200)에 의해 사용될 수 있는 에러 정정 알고리즘들의 예들은 BCH 코드들, 리드-솔로몬(Reed-Solomon) 코드들 및 해밍(Hamming) 에러 정정 코드들을 포함한다. 에러 코드 제너레이터 (200)는 예를 들어, 알고리즘의 특성들 (예컨대 순환적 또는 비-순환적), 코드 워드의 사이즈, 감지되고 정정될 수 있는 코드 워드내 신드롬 비트들의 수 및 에러들의 수를 포함하는 하나 이상의 요인들에 기반하여 에러 정정 알고리즘을 선택한다.
에러 코드 제너레이터 (200)는 사용할 에러 정정 알고리즘 선택할 때 에러 코드 효율을 추가로 고려할 수 있다. 에러 코드 효율은 데이터 워드의 사이즈 대 그것의 대응하는 코드 워드의 사이즈의 비율로 정의된다. 예를 들어, 코드 워드에 대하여 총 255 비트들, 데이터 워드에 대하여 191 비트들을 갖고, 8 에러들까지 에러 코드에 의해 정정될 수 있는, BCH 알고리즘을 사용하여 생성된 코드 워드에 대하여, 에러 코드 효율은 191/255, 즉, 0.749이다. 다른 예를 위하여, 코드 워드에 대하여 총 255 비트들, 데이터 워드에 대하여 247 비트들을 갖고, 에러 코드에 의해 1 에러를 정정하는, BCH 알고리즘을 사용하여 생성된 코드 워드에 대하여, 에러 코드 효율은 247/255, 즉, 0.968이다.
에러 코드 제너레이터 (200)는 비디오 데이터와 관련된 메타데이터에 대한 에러 코드들을 유사하게 생성한다. 예를 들어, 에러 코드 제너레이터 (200)는 비디오 데이터와 관련된 메타데이터 부분을 수신한다. 수신된 메타 데이터 부분은 다수의 데이터 워드들을 갖고, 각각은 다수의 데이터 비트들을 갖는다. 각각의 데이터 워드에 대하여, 에러 코드 제너레이터 (200)는 미리 결정된 수의 신드롬 비트들의 수를 포함하는 에러 코드를 생성한다. 메타 데이터의 데이터 워드 및 그것의 대응하는 에러 코드는 에러 정정 코드 워드를 형성하기 위해 결합된다.
에러 코드 효율을 향상시키기 위해, 에러 코드 제너레이터 (200)는 구조화들 직교하는 데이터 구조화 구조(orthogonal data organization structure)에 따른 코드 워드들 (예를 들어, 압축된 비디오 데이터에 대한 코드 워드들 및 비디오 데이터와 관련된 메타데이터에 대한 코드 워드들)로 구조화한다(organize). 일 실시예에서, 에러 코드 제너레이터 (200)는 코드 워드들을 하나 이상의 직교하는 데이터 블록들내에 구조화한다. 각각의 직교하는 데이터 블록은 많은 코드 워드들을 가지며, 각각은 많은 데이터 비트들 및 대응하는 신드롬 비트들을 갖는다. 단일 수직의 컬럼내에 있는 비트들이 디지털 라인 코더로 발송되고, 예를 들어, 가장 왼쪽의 컬럼으로부터 0, 1, 2, 3, 4, 5, 6, 7 라벨링된 비트들이 디지털 라인 코더로 첫번째로 발송된다. 다음에, 두번째 컬럼으로부터 동일한 비트들 0 내지 7 이 두번째로 디지털 라인 코더로 발송되고, 등등이다.
코드 워드들을 직교하는 데이터 블록들에 구조화하는 것은 다수의 비트 에러들의 효율적인 정정을 허용한다. 도 1에 도시된 시스템에 대하여, 송신에서의 에러들은 디지털 라인 디코더 (118)에 도달하는 라인 코딩된 데이터내 에러들이다. 라인 코드내 단일 비트 에러는, 예컨대 8b/10b TMDS 코드들은, 손상된 라인 코드의 디코딩 후에 데이터 심벌의 8 비트들의 일부 또는 전부에 대한 에러들로 귀결될 수 있다. 직교하는 데이터 블록 구조는 다수의 코드 워드들에 걸쳐 이들 다수의 에러들을 분배하고, 그것들은 코드 워드 당 단일 에러로서 나타날 수 있다. 다수의 에러들을 정정하기 위해 다수의 코드 워드들이 제공된다. 각각의 코드 워드가 단일 에러를 정정하고, 코드 워드가 코드 워드 당 다수의 비트 에러들을 정정한다면 더 적은 신드롬 비트들로 귀결된다. 이것은 단일 8 비트 데이터 심벌내 다수의 비트 에러들을 정정하는 능력으로 귀결되고, 단일 비트 에러 정정 효율의 장점을 갖는 데이터 심벌은 손상된 라인 코드로부터 디코딩된다. 에러 감지 및 정정의 세부 사항들이 도 4a - 도 4d를 참고로 하여 이하에서 추가로 설명된다.
이제 도 3으로 가서, 도 3 은 일 실시예에 따른 8 코드 워드들 (304a)-(304h)을 갖는 대표적인 직교하는 코드 블럭 (304)을 예시하는 블럭 다이어그램이다. 다른 실시예들은 직교하는 데이터 블록내 상이한 수의 코드 워드들을 가질 수 있다. 각각의 코드 워드들, (304a)-(304h)는, 데이터 비트들과 신드롬 비트들 사이에서 분할된 총 n 비트들을 갖는다. 데이터 비트들과 신드롬 비트들 간에 총 n 비트들의 할당은 에러 코드 제너레이터 (200)에 의해 구성가능하다. 총 255 비트들의 코드 워드에 대한 비트들 할당의 예는 191 데이터 비트들 및 64 신드롬 비트들을 포함하고, 총 255 비트들내 8 에러들까지 정정할 수 있다. 다른 예는 247 데이터 비트들 및 8 신드롬 비트들이고, 총 255 비트들내 1 에러를 정정할 수 있다. 에러 코드 제너레이터 (200)는 동일한 비트 위치에서 직교하는 데이터 블록 (304)의 1 수직 컬럼(다시 말해서, 직교하는 데이터 블록 (304)의 비트들의 컬럼)으로부터의 코드 워드들의 비트들을, 예를 들어, 코드 워드들 (304a), (304b), (304c), (304d), (304e), (304f), (304g) 및 (304h)로부터의 8 수직으로 정렬된 비트들을, 추가 프로세싱을 위해 디지털 인라인 인코더 (114)로 발송한다. 에러 코드 제너레이터 (200)는 추가 프로세싱을 위해 직교하는 데이터 블록 (304)의 나머지 비트들을, 8 비트들을 한번에, 디지털 인라인 인코더 (114)로 발송한다.
다시 도 1로 가서, 소스 디바이스 (100)는 압축된 비디오 데이터 및 그것들의 관련된 메타데이터에 대한 코드 워드들의 직교하는 데이터 블록들을 인코딩하기 위한 디지털 라인 인코더 (114)을 갖는다. 일 실시예에서, 디지털 라인 인코더 (114)는 코드 워드들을 8b/10b 라인 인코딩 TMDS 표준에 따른을 이용하여 인코딩한다. 디지털 라인 인코더 (114)의 다른 실시예들은 다른 라인 인코딩 기법들, 예를 들어, 16b/ 18b 라인 인코딩을 사용할 수 있다. 8b/ 10b 라인 인코딩은 8-비트 데이터 심벌을 10-비트 심벌로 매핑하고, DC-균형(balance)을 달성하고 수신단에서 적정한 클럭 복원을 허용하기 위한 충분한 상태 변화들 제공하는데 도움이 된다. 도 3에 예시된 예에 적용하여, 디지털 라인 인코더 (114)는 직교하는 데이터 블록 (304)의 8 비트들의 컬럼을 취하여 8 비트들을 10-비트 데이터 심벌로 인코딩하고 10-비트 데이터 심벌의 비트들을 직렬로 싱크 디바이스 (102)로 송신한다. 디지털 라인 인코더 (114)는 직교하는 데이터 블록 (304)의 모든 나머지 컬럼들상에 인코딩 단계들을 반복한다.
디지털 라인 인코더 (114)는 라인 인코딩된 코드 워드들을 직렬 비트 스트림으로 송신 채널 (116)상으로 출력한다. 일 실시예에서, 압축된 비디오 데이터에 대한 라인 인코딩된 코드 워드들 및 압축된 비디오 데이터와 관련된 메타 데이터에 대한 라인 인코딩된 코드 워드들은 상이한 시간 간격들 동안에 출력된다. 예를 들어, 압축된 비디오 데이터에 대한 라인 인코딩된 코드 워드들은 활성 간격(active interval)동안에 출력되고 압축된 비디오 데이터와 관련된 메타 데이터에 대한 라인 인코딩된 코드 워드들은 블랭크 간격(blanking interval)들 동안에 출력되고, 활성 간격 및 블랭크 간격은 HDMI 비디오 인터페이스 표준에 따라 정의된다. 도 2 는 일 실시예에 따른 송신 간격들 동안에 입력 데이터의 라인 인코딩된 코드 워드들의 예를 예시하는 블럭 다이어그램이다.
싱크 디바이스 (102)의 디지털 라인 디코더 (118)는 소스 디바이스 (100)로부터 라인 인코딩된 코드 워드들을 수신 및 디코딩하도록 구성된다. 일 실시예에서, 디지털 라인 디코더 (118)는 디지털 라인 인코더 (114)에 의해 사용된 라인 인코딩 기법에 대응하는 라인 디코딩 기법을 적용한다. 예를 들어, 소스 디바이스 (110)에서의 8b/ 10b 라인 인코딩에 응답하여, 디지털 라인 디코더 (118)는 10-비트 데이터 심벌을 8-비트 데이터 심벌로 변환한다. 블럭 버퍼 (120)는 디지털 라인 디코더 (118)에 의해 디코딩되는 코드 워드들을 버퍼링 하도록 구성된 메모리 또는 다른 스토리지 매체이다.
비디오 압축 해제 모듈 (124)은 에러 정정 모듈 (122)로부터 수신된 비디오 데이터를 디코딩하도록 구성된다. 비디오 압축 해제 모듈 (124)에 의해 수행되는 디코딩 프로세스는 비디오 압축 모듈 (112)에 의해 수행된 인코딩 프로세스의 각각의 스테이지의 역전(inversion) 이다 (비가역 압축(lossy compression)내 양자화 스테이지 제외). 예를 들어, 비디오 압축 해제 모듈 (124)은 비디오 압축 모듈 (112)가 DSC 코딩 표준에 따라 비디오 프레임을 인코딩한 것에 응답하여 비디오 프레임을 DSC 코딩 표준에 따라 디코딩 프로세스를 수행한다.
에러 정정 모듈 (122)은 코드 워드들내 에러들 (즉, 손상된 데이터 비트들)을 감지하고 정정하고 그리고 블럭 버퍼 (120)로부터 라인 디코딩된 코드 워드들을 수신하도록 구성된다. 현대 디지털 비디오 인터페이스 시스템들내 비디오 채널 상에서의 비디오 데이터의 송신은 일반적으로 일부 제로가 아닌 비트 에러율을 겪는다. 예를 들어, 송신 채널, 예를 들어, 송신 채널 (116)을 통하여 전송된 10-비트 TMDS 데이터 심벌내 단일 비트 에러는 라인 디코딩된 데이터내에서 모두 8 비트들까지 손상될 수 있다. 직교하는 데이터 블록들로 구조화된 코드 워드들로는, 에러 정정 모듈 (122)은 코드 워드들내 손상된 데이터 비트들을 감지하고 단일 TMDS 송신 에러로부터 기인한 다수의 손상된 데이터 비트들을 정정하는 것이 가능하게 된다.
일 실시예에서, 에러 정정 모듈 (122)는 각각의 코드 워드내 신드롬 비트들의 값들을 및 코드 워드들의 신드롬 비트들의 값들 간에 차이들을 체크함으로써 데이터 블록의 코드 워드들내 하나 이상의 에러들을 감지한다. 데이터 블록내 모든 코드 워드들의 신드롬 비트들의 값들이 에러 프리(error free), 예를 들어, 제로를 나타내는 미리 정의된 값인 것에 응답하여, 에러 정정 모듈 (122)은 데이터 블록이 임의의 에러들을 가지지 않는 것으로 결정한다. 모든 코드 워드들의 신드롬 비트들이 제로가 아니지만, 그러나 동일한 값을 갖는 것에 응답하여, 에러 정정 모듈 (122)은 데이터 블록이 단일 송신 에러로부터 기인한 8 손상된 데이터 비트들을 갖는 것으로 결정한다. 다수의 코드 워드들 (그러나 모든 코드 워드들은 아닌)의 신드롬 비트들이 제로가 아니고 그리고 신드롬 비트들 of 남은 코드 워드들의 신드롬 비트들이 제로의 값을 갖는 것에 응답하여, 에러 정정 모듈 (122)은 데이터 블록들이 단일 송신 에러로부터 기인한 많은 손상된 데이터 비트들을 갖고, 손상된 데이터 비트들의 수는 제로가 아닌 신드롬 비트들을 갖는 코드 워드들의 수와 같다고 결정한다. 모든 코드 워드들의 신드롬 비트들이 제로가 아니고 제로가 아닌 신드롬 비트들의 값들이 상이한 것에 응답하여, 에러 정정 모듈 (122)은 다수의 송신 에러들로부터 기인한 데이터 블록내 다수의 손상된 데이터 비트들이 있는 것으로 결정한다.
단일 송신 에러로부터 기인한 손상된 데이터 비트들에 응답하여, 에러 정정 모듈 (122)은 코드 워드들내 손상된 데이터 비트들을 정정한다. 임의의 기술 분야에서의 통상의 기술자들에 알려진 에러 정정 기법들이 손상된 데이터 비트들을 정정하기 위해 에러 정정 모듈 (112)에 의해 사용될 수 있다. 예를 들어, 단일 송신 에러로부터 기인한 데이터 블록내 손상된 데이터 비트들을 갖는 코드 워드들에 응답하여, 에러 정정 모듈 (122)은 블럭 버퍼 (120)내 저장된 라인 디코딩된 데이터를 액세스하고 각각의 손상된 비트를 그것의 역수(inverse)로 치환함으로써 손상된 비트들을 정정한다. 다수의 송신 에러들로부터 기인한 다수의 손상된 데이터 비트들에 응답하여, 에러 정정 모듈 (122)은 손상된 데이터 비트들을 감지하고 추가 프로세싱을 위해 감지된 에러들을 보고한다.
도 4a - 도 4d는 일 실시예에 따른 에러 정정 모듈 (122)에 의해 송신된 디지털 데이터내 감지된 비트 에러들의 네개의 예들을 예시한다. 예시된 예제들에서, 송신된 디지털 데이터는 압축된 비디오 데이터 및 그것의 관련된 메타데이터에 대한 라인 디코딩된 심벌들이고; 사용된 라인 디코딩 기법은 TMDS 표준에 따른 10b/8b 디코딩이다. 도 4a 내지 도 4d에 도시된 각각의 예는 8 코드 워드들의 직교하는 데이터 블록을 도시한다.
도 4a는 수신된 직교하는 데이터 블록의 임의의 코드 워드내 손상된 데이터 비트들이 없는 예를 예시한다. 에러 정정 모듈 (122)은 각각의 코드 워드내 신드롬 비트들의 값들을 체크한다. 데이터 블록내 모든 코드 워드들의 신드롬 비트들의 값들이 에러 프리, 예를 들어, 제로를 나타내는 미리 정의된 값인 것에 응답하여, 에러 정정 모듈 (122)은 데이터 블록이 임의의 에러를 가지지 않는 것으로 판단한다. 도 4a에 예시된 예에서, 모든 8 코드 워드들의 신드롬 비트들 (404)은 모두 에러 프리(error free) 데이터 송신을 나타내는 미리 정의된 값인 제로이다. 모든 8 코드 워드들의 신드롬 비트들의 값들에 기초하여, 에러 정정 모듈 (122)은 데이터 블록이 임의의 손상된 데이터 비트들을 가지지 않는 것으로 결정한다.
도 4b는 단일 TMDS 송신 에러로부터 기인한 데이터 블록내 8 손상된 데이터 비트들이 있는 제 2 예를 예시한다. 에러 정정 모듈 (122)은 각각의 코드 워드내 신드롬 비트들의 값들을 체크함으로써 그리고 신드롬 비트들의 값들을 비교함으로써 손상된 데이터 비트들을 감지한다. 도 4b에 예시된 예에서, 모든 8 코드 워드들의 신드롬 비트들 (404)은 모두 제로가 아니고 동일한 값 예를 들어, 값 "xyz"를 갖는다.모든 코드 워드들의 신드롬 비트들이 제로가 아니지만, 그러나 동일한 값을 갖는 것에 응답하여, 에러 정정 모듈 (122)은 데이터 블록이 단일 TMDS 송신 에러로부터 기인한 8 손상된 데이터 비트들을 갖는 것으로 결정한다. 모든 8 코드 워드들내 신드롬 비트들의 동일한 제로가 아닌 값은 각각의 코드 워드내 손상된 데이터 비트가 각각의 코드 워드내 동일한 비트 위치에 위치된다는 것을 나타낸다. 에러 정정 모듈 (122)은 모든 코드 워드들내 8 손상된 데이터 비트들을 정정하는데, 예를 들어, 각각의 데이터 워드내 손상된 데이터 비트를 플립(flip)한다.
도 4c는 8 코드 워드들 전부가 손상된 데이터 비트들을 갖는 것은 아닌 제 3 예를 예시한다. 에러 정정 모듈 (122)은 각각의 코드 워드내 신드롬 비트들의 값들을 체크함으로써 그리고 신드롬 비트들의 값들을 비교함으로써 손상된 데이터 비트들을 감지한다. 체크 및 비교에 기반하여, 에러 정정 모듈 (122)은 제로가 아닌 신드롬 비트들, 그러나 동일한 값을 갖는 3 코드 워드들을 감지하고, 나머지 5 코드 워드들의 신드롬 비트들은 에러 프리를 나타내는 제로 신드롬 비트들을 갖는다. 제로가 아닌 신드롬 비트들을 갖는 3 코드 워드는 단일 TMDS 송신 에러로부터 기인한 각각의 코드 워드내 손상된 비트를 갖는 것으로 결정된다. 에러 정정 모듈 (122)은 데이터 비트들 in 식별된 3 코드 워드들내 손상된 데이터 비트들을 정정한다.
도 4d는 데이터 블록이 다수의 송신 에러들로부터 기인한 다수의 손상된 데이터 비트들을 갖는 제 4 예를 예시한다. 도 4d에 예시된 예에서, 모든 8 코드 워드들은 모든 8 코드 워드들의 제로가 아닌 신드롬 비트들에 의해 표시된 적어도 하나의 손상된 데이터 비트를 갖는다. 도 4d에 예시된 예에서, 두개의 코드 워드들은 나머지 코드 워드들의 신드롬 비트들 (예를 들어, 값 "xyz")과 신드롬 비트들의 상이한 값(예를 들어, 값 "abc")에 의해 표시된 각각의 코드 워드내 다수의 손상된 데이터 비트들을 갖는다. 예를 들어, 코드 워드 (433)는 두개의 손상된 데이터 비트들을 갖고, 그것의 대응하는 신드롬 비트들은 "xyz" 대신에 "abc"의 값을 갖는다.체크 및 비교에 기반하여, 에러 정정 모듈 (122)은 데이터 블록 (436)이 다수의 TMDS 송신 에러들로부터 기인한 다수의 손상된 데이터 비트들을 갖는다는 것을 감지하고 추가 프로세싱을 위해 감지를 보고한다.
도 5 는 일 실시예에 따른 비디오 인터페이스 환경내 입력 데이터에 대한 에러 코드들을 생성하기 위한 프로세스를 예시하는 플로우 차트이다. 처음에, 소스 디바이스 (100)는 압축되지 않은 비디오 데이터 및 그것의 관련된 메타데이터를 포함하는 입력 데이터를 수신한다(502). 싱크 디바이스 (100)의 비디오 압축 모듈은 비디오 압축 표준, 예를 들어, VESA/DSC에 따라 비디오 데이터를 압축하고 신드롬 비트들을 생성하기 위해 소스 디바이스 (110)의 에러 코드 제너레이터로 압축된 비디오 데이터를 제공한다. 비디오 데이터와 관련된 메타데이터 또한 신드롬 비트들을 생성하기 위해 에러 코드 제너레이터에 제공된다.
에러 코드 제너레이터는 한 번에 압축된 비디오 데이터 및 그것의 메타데이터 부분에 대한 많은 신드롬 비트들을 포함하는 에러 코드들을 생성한다. 일 실시예에서, 압축된 비디오 데이터/메타 데이터의 부분은 다수의 데이터 워드들을 갖고, 각각의 데이터 워드는 미리 정의된 수의 데이터 비트들을 갖는다. 각각의 데이터 워드에 대하여, 에러 코드 제너레이터는 다수의 신드롬 비트들을 갖는 에러 코드를 생성하고(506) 그리고 그것의 대응하는 에러 코드를 갖는 데이터 워드를 코드 워드내로 결합한다. 코드 워드의 사이즈는 구성 가능한, 예를 들어, 전체로서 255 비트들이다. 다수의 코드 워드들은 코드 워드들내 송신 에러들을 격리하는데 도움이 되는 직교하는 데이터 블록내에 구조화된다.
직교하는 데이터 블록들을 싱크 디바이스 (102)로 송신하기 전에, 소스 디바이스 (100)의 디지털 라인 인코더는 코드 워드들을, 예를 들어, TMDS 표준의 8b/10b 라인 코딩을 이용하여 라인 인코딩한다(510). 다른 라인 코딩 기법들, 예컨대 16b/ 18b이, 소스 디바이스 (100)의 디지털 라인 인코더에 의해 사용될 수 있다. 소스 디바이스 (100)는 송신 채널, 예를 들어, HDMI 직렬 연결을 통하여, 싱크 디바이스 (102)로 라인 인코딩된 코드 워드들로 송신한다(512).
도 6 은 일 실시예에 따른 비디오 인터페이스 환경내 수신된 디지털 데이터내 손상된 데이터 비트들을 감지 및/또는 정정하기 위한 프로세스를 예시하는 플로우 차트이다. 처음에, 싱크 디바이스 (102)는 디지털 데이터, 예를 들어, 비디오 데이터 및 그것의 관련된 메타데이터에 대한 일련의 코드 워드들을 싱크 디바이스 (100)로부터 수신한다(602). 싱크 디바이스 (102)의 디지털 라인 디코더는 소스 디바이스 (100)의 디지털 라인 인코더에 의해 사용된 라인 인코딩 기법에 대응하는 디지털 라인 디코딩 기법에 따라 수신된 데이터를 라인 디코딩한다 (604). 싱크 디바이스 (102)는 컴퓨터 스토리지 매체, 예를 들어, 블럭 버퍼 (120)내에 라인 디코딩된 데이터를 저장한다(606). 일 실시예에서, 라인 디코딩된 데이터는 데이터 구조, 예를 들어, 직교하는 구조화 데이터 구조에 따라 다수의 데이터 블록들로 구조화된다. 각각의 데이터 블록은 다수의 코드 워드들, 예를 들어, 8 코드 워드들을 갖는다.
싱크 디바이스 (102)의 에러 정정 모듈은 코드 워드들을 분석하고(608) 그리고 각각의 데이터 블록의 코드 워드들내 손상된 데이터 비트들을 감지한다(610). 일 실시예에서, 에러 정정 모듈은 데이터 블록의 모든 코드 워드들의 신드롬 비트들을 체크함으로써, 신드롬 비트들을 에러 프리를 나타내는 미리 정의된 값과 비교함으로써 및 그것들 간에 코드 워드들의 신드롬 비트들의 값들을 비교함으로써 데이터 블록의 코드 워드들내 손상된 데이터 비트들을 감지한다. 체크 및 비교에 기반하여, 에러 정정 모듈은 도 4a 및 도 4d를 통하여 예시된 바와 같이 데이터 블록내 손상된 비트들을 감지한다.
단일 송신 에러, 예를 들어, 10-비트 TMDS 데이터 심벌 대 하나의 에러로부터 기인한 데이터 블록의 손상된 데이터 비트들에 응답하여, 에러 정정 모듈은 예를 들어, 부정확한 것으로 결정된 비트들을 플립(flip)함으로써 손상된 데이터 비트들을 정정한다(612). 다수의 송신 에러들로부터 기인한 데이터 블록의 손상된 데이터 비트들에 응답하여, 에러 정정 모듈은 추가 프로세싱을 위해 데이터 블록내 손상된 데이터 비트들의 감지를 보고한다(614).
실시예들의 앞에서의 설명은 예시의 목적을 위해 제공되었고; 실시예들을 개시된 정확한 형태들에 제한하거나 또는 망라된 것으로 의도되지 않는다. 관련 기술 분야 통상의 기술자들은 상기 개시를 고려하여 많은 수정예들 및 변형예들이 가능한 것을 인식할 수 있다.
이 설명의 몇몇 부분들은 정보에 대한 동작들의 알고리즘들 및 심볼 표현들로 실시예들을 설명한다. 이들 알고리즘적 설명들 및 표현들은 해당 기술분야의 다른 숙련자들에게 그들의 작업의 본질을 가장 효과적으로 전달하기 위해 데이터 프로세싱 기술들의 숙련자들에 의해 공통으로 사용된다. 이들 동작들은, 기능적으로 또는 컴퓨터를 이용하여 또는 논리적으로 설명되면서, 컴퓨터 프로그램들 또는 등가의 전자 회로, 마이크로코드 또는 유사한 것에 의해 구현되는 것으로 이해된다. 더욱이, 그것은 또한 일반성의 손실 없이, 모듈들로서 동작들의 이들 배열들을 나타내는 것이 때로는 편리하다는 것이 입증되었다. 설명된 동작들 및 그것들의 관련된 모듈들은 소프트웨어, 펌웨어, 하드웨어, 또는 임의의 그것의 조합들로 구체화될 수 있다.
본 출원에서 설명된 임의의 단계들, 동작들, 또는 프로세스들은 하나 이상의 하드웨어 또는 소프트웨어 모듈들과 함께, 다른 디바이스들과 조합하여 또는 단독으로 수행되거나 또는 구현될 수 있다. 일 실시예에서, 소프트웨어 모듈은 컴퓨터 프로그램 코드를 수용하는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로 구현되고, 이는 설명된 임의의 또는 모든 단계들, 동작들, 또는 프로세스들을 수행하기 위해 컴퓨터 프로세서에 의해 실행될 수 있다.
실시예들은 또한 본 출원의 동작을 수행하기 위한 장치에 관한 것일 수 있다. 이 장치는 요구된 용도를 위해 특별히 구성될 수 있거나, 또는 그것은 컴퓨터내에 저장된 컴퓨터 프로그램에 의해 선택적으로 작동되거나 또는 재구성되는 범용 컴퓨터 디바이스를 포함할 수 있다. 이런 컴퓨터 프로그램은 전자 명령들을 저장하기에 적절한 비 일시적, 유형의 컴퓨터 판독가능한 스토리지 매체, 또는 임의의 유형의 매체에 저장될 수 있고, 컴퓨터 시스템 버스에 결합될 수 있다. 더욱이, 명세서서 언급된 임의의 컴퓨팅 시스템들은 단일 프로세서를 포함할 수 있거나 또는 증가된 컴퓨팅 성능을 위해 다수의 프로세서 디자인들을 사용하는 아키텍처들일 수 있다.
실시예들은 또한 본 출원에서 설명된 컴퓨팅 프로세스에 의해 생산된 제품에 관한 것일 수 있다. 이런 제품은 컴퓨팅 프로세스로부터 기인한 정보를 포함할 수 있고, 정보는 비 일시적, 유형의 컴퓨터 판독가능한 스토리지 매체상에 저장되고 출원에서 설명된 임의의 실시예의 컴퓨터 프로그램 제품 또는 다른 데이터 조합을 포함할 수 있다.
마지막으로, 명세서에서 사용된 언어는 가독성 및 교육상의 용도를 위해 주로 선택되었고, 그것은 창의적인 내용의 경계를 정하거나 설명하기 위해 선택되지 않을 수 있다. 따라서 실시예들의 범위는 이 상세한 설명에 의해서가 아니라, 오히려 여기에 기초하여 출원에 관하여 발행된 임의의 청구항들에 의해 제한되도록 의도된다. 따라서, 실시예들의 개시는 제한하는 것이 아니라 예시하는 것으로 의도된다.

Claims (20)

  1. 디지털 데이터에 대한 에러 코드들을 생성하기 위한 방법에 있어서,
    상기 디지털 데이터를 수신하는 단계로서, 상기 디지털 데이터는 압축되지 않은 비디오 데이터 및 상기 압축되지 않은 디지털 비디오 데이터와 관련된 메타데이터(metadata)를 포함하는, 상기 수신하는 단계;
    압축된 비디오 데이터를 생성하기 위해 상기 압축되지 않은 비디오 데이터를 인코딩하는 단계로서, 상기 압축된 비디오 데이터는 복수개의 데이터 워드(data word)들을 갖는, 상기 인코딩 하는 단계;
    상기 압축된 비디오 데이터의 상기 복수개의 데이터 워드들의 각각에 대하여 그리고 상기 메타데이터의 복수개의 데이터 워드들의 각각에 대한 에러 코드(error code)를 생성하는 단계;
    각각의 데이터 워드에 대하여, 코드 워드(code word)를 형성하기 위해 상기 데이터 워드 및 그것의 대응하는 에러 코드를 결합하는 단계; 및
    복수개의 코드 워드를 데이터 구조에 따라 하나 이상의 데이터 블록들로 구조화하는 단계(organizing)를 포함하는, 방법.
  2. 청구항 1에 있어서, 코드 워드(code word)는 데이터 부분 및 에러 정정(error correction) 부분을 포함하고, 상기 코드 워드의 상기 데이터 부분은 상기 코드 워드의 디지털 컨텐츠를 나타내는 복수개의 데이터 비트들을 갖고 상기 에러 정정 부분은 상기 데이터 부분내 에러들을 감지하기 위한 복수개의 신드롬 비트(syndrome bit)들을 갖는, 방법.
  3. 청구항 1에 있어서, 상기 디지털 데이터의 데이터 워드에 대한 에러 코드를 생성하는 단계는
    에러 정정 기법을 상기 데이터 워드에 적용하는 단계; 및
    상기 에러 정정 기법의 적용에 기초하여 상기 데이터 워드의 에러 코드를 생성하는 단계를 포함하는, 방법.
  4. 청구항 1에 있어서, 상기 복수개의 코드 워드를 데이터 구조에 따라 하나 이상의 데이터 블록들로 구조화하는 단계(organizing)는
    데이터 블록을 형성하기 위해 많은 코드 워드들을 선택하는 단계로서, 상기 데이터 블록은 소정의 폭 및 높이를 갖고, 상기 데이터 블록의 폭은 상기 코드 워드의 사이즈에 동일하고 그리고 상기 데이터 블록의 높이는 각각의 라인 코드 심벌내에 인코딩된 데이터 비트들의 수와 같은, 상기 코드 워드들을 선택하는 단계; 및
    디지털 라인 인코딩을 위해 상기 데이터 블록의 동일한 비트 위치에서 상기 선택된 코드 워드들로부터 대응하는 비트들을 선택하는 단계를 포함하는, 방법.
  5. 청구항 4에 있어서, 데이터 블록의 코드 워드들의 수는 각각의 라인 코드 심벌내에 인코딩된 데이터 비트들의 수와 같고 및 상기 데이터 블록내에서 정정되는 단일 송신 에러로부터 기인한 비트 에러들의 수는 각각의 라인 코드 심벌내에 인코?壅? 데이터 비트들의 수와 같은, 방법.
  6. 청구항 1에 있어서,
    상기 데이터 블록들을 디지털 방식으로 라인 인코딩하는 단계; 및
    상기 라인 인코딩된 데이터 블록들을 직렬로 싱크 디바이스로 송신하는 단계를 더 포함하는, 방법.
  7. 청구항 6에 있어서, 데이터 블록을 라인 인코딩하는 단계는 :
    상기 데이터 블록의 여덟개의 데이터 비트들을 10-비트 표현으로 인코딩하는 단계; 및
    상기 데이터 블록의 열 여섯개 데이터 비트들을 18-비트 표현으로 인코딩하는 단계 중 하나를 포함하는, 방법.
  8. 송신된 디지털 데이터내 에러들을 감지하기 위한 방법에 있어서,
    상기 디지털 데이터를 수신하는 단계로서, 상기 디지털 데이터는 비디오 데이터를 나타내는 코드 워드들 및 상기 비디오 데이터와 관련된 메타데이터를 나타내는 코드 워드들을 포함하는, 수신하는 단계;
    상기 디지털 데이터의 상기 코드 워드들을 라인 디코딩(line decoding)하고 상기 코드 워드들을 데이터 구조에 기초하여 복수개의 데이터 블록들로 구조화하는 단계로서, 각각의 데이터 블록은 복수개의 코드 워드들을 갖는, 상기 구조화하는 단계;
    각각의 데이터 블록내 상기 코드 워드들을 분석하는 단계; 및
    각각의 데이터 블록내 하나 이상의 손상된 데이터 비트들을 감지하는 단계를 포함하는, 방법.
  9. 청구항 8에 있어서, 상기 디지털 데이터의 코드 워드내 비트 에러를 감지하는 단계는 :
    상기 코드 워드의 에러 정정 부분을 분석하는 단계;
    상기 에러 정정 코드를 미리 결정된 임계값 코드와 비교하는 단계;
    상기 코드 워드의 에러 정정 부분을 상기 동일한 데이터 블록내 나머지 코드 워드들의 대응하는 에러 정정 부분들과 비교하는 단계; 및
    상기 비교들에 기초하여 상기 비트 에러를 감지하는 단계를 포함하는, 방법.
  10. 청구항 8에 있어서,
    단일 송신 에러로부터 기인한 상기 데이터 블록내 상기 손상된 데이터 비트들에 응답하여, 상기 손상된 데이터 비트들을 정정하는 단계; 및
    다수의 단일 송신 에러들로부터 기인한 데이터 블록내 상기 손상된 데이터 비트들에 응답하여, 상기 손상된 데이터 비트들의 감지를 보고하는 단계(reporting)를 더 포함하는, 방법.
  11. 디지털 데이터에 대한 에러 코드들을 생성하기 위한 컴퓨터 프로그램 명령들을 저장하는 비-일시적 컴퓨터 판독가능한 스토리지 매체에 있어서, 상기 컴퓨터 프로그램 명령들은 컴퓨터 프로세서에 의해 실행될 때 상기 컴퓨터 프로세서로 하여금 :
    상기 디지털 데이터를 수신하고, 상기 디지털 데이터는 압축되지 않은 비디오 데이터 및 상기 압축되지 않은 디지털 비디오 데이터와 관련된 메타데이터를 포함하고;
    압축된 비디오 데이터를 생성하기 위해 상기 압축되지 않은 비디오 데이터를 인코딩하고, 상기 압축된 비디오 데이터는 복수개의 데이터 워드들을 갖고;
    상기 압축된 비디오 데이터의 상기 복수개의 데이터 워드들의 각각에 대하여 그리고 상기 메타데이터의 복수개의 데이터 워드들의 각각에 대한 에러 코드를 생성하고;
    각각의 데이터 워드에 대하여, 코드 워드(cord word)를 형성하기 위해 상기 데이터 워드 및 그것의 대응하는 에러 코드를 결합하고; 및
    데이터 구조에 따라 복수개의 코드 워드를 하나 이상의 데이터 블록들로 구조화하게 하는 명령들을 포함하는, 컴퓨터 판독가능한 스토리지 매체.
  12. 청구항 11에 있어서, 코드 워드(code word)는 데이터 부분 및 에러 정정 부분을 포함하고, 상기 코드 워드의 상기 데이터 부분은 상기 코드 워드의 디지털 컨텐츠를 나타내는 복수개의 데이터 비트들을 갖고 상기 에러 정정 부분은 상기 데이터 부분내 에러들을 감지하기 위한 복수개의 신드롬 비트(syndrome bit)들을 갖는, 컴퓨터 판독가능한 스토리지 매체.
  13. 청구항 11에 있어서, 상기 디지털 데이터의 데이터 워드에 대한 에러 코드를 생성하기 위한 상기 컴퓨터 프로그램 명령들은 상기 컴퓨터 프로세서에 의해 실행될 때 상기 컴퓨터 프로세서로 하여금 :
    상기 데이터 워드에 에러 정정 기법을 적용하고; 및
    상기 에러 정정 기법의 적용에 기초하여 상기 데이터 워드의 에러 코드를 생성하게 하는 명령들을 포함하는, 컴퓨터 판독가능한 스토리지 매체.
  14. 청구항 11에 있어서, 상기 복수개의 코드 워드들을 데이터 구조에 따라 하나 이상의 데이터 블록들로 구조화하기 위한 상기 컴퓨터 프로그램 명령들은 상기 컴퓨터 프로세서에 의해 실행될 때 상기 컴퓨터 프로세서로 하여금
    데이터 블록을 형성하기 위해 많은 코드 워드들을 선택하고, 상기 데이터 블록은 소정의 폭 및 높이를 갖고, 상기 데이터 블록의 폭은 상기 코드 워드의 사이즈에 동일하고 그리고 상기 데이터 블록의 높이는 각각의 라인 코드 심벌내에 인코딩된 데이터 비트들의 수와 같고; 및
    디지털 라인 인코딩을 위해 상기 데이터 블록의 동일한 비트 위치에서 상기 선택된 코드 워드들로부터 대응하는 비트들을 선택하는 명령들을 포함하는, 컴퓨터 판독가능한 스토리지 매체.
  15. 청구항 11에 있어서, 데이터 블록의 코드 워드들의 수는 각각의 라인 코드 심벌내에 인코딩된 데이터 비트들의 수 이고 그리고 상기 데이터 블록내에서 정정되는 단일 송신 에러로부터 기인한 비트 에러들의 수는 각각의 라인 코드 심벌내에 인코?壅? 데이터 비트들의 수인, 컴퓨터 판독가능한 스토리지 매체.
  16. 청구항 11에 있어서, 상기 컴퓨터 프로세서에 의해 실행될 때 상기 컴퓨터 프로세서로 하여금
    상기 데이터 블록들을 디지털 방식으로 라인 인코딩하고; 및
    상기 라인 인코딩된 데이터 블록들을 직렬로 싱크 디바이스로 송신하게 하는 하는 컴퓨터 프로그램 명령들을 더 포함하는, 컴퓨터 판독가능한 스토리지 매체.
  17. 청구항 16에 있어서, 데이터 블록을 라인 인코딩하기 위한 상기 컴퓨터 프로그램 명령들은 상기 컴퓨터 프로세서에 의해 실행될 때 상기 컴퓨터 프로세서로 하여금
    상기 데이터 블록의 여덟개의 데이터 비트들을 10-비트 표현으로 인코딩; 및
    상기 데이터 블록의 열 여섯개 데이터 비트들을 18-비트 표현으로 인코딩 중 하나로 인코딩하게 하는 명령들을 포함하는, 컴퓨터 판독가능한 스토리지 매체.
  18. 송신된 디지털 데이터내 에러 코드들을 감지하기 위한 컴퓨터 프로그램 명령들을 저장하는 비-일시적 컴퓨터 판독가능한 스토리지 매체에 있어서, 상기 컴퓨터 프로그램 명령들은 컴퓨터 프로세서에 의해 실행될 때 상기 컴퓨터 프로세서로 하여금 :
    상기 디지털 데이터를 수신하고, 상기 디지털 데이터는 비디오 데이터를 나타내는 코드 워드들 및 상기 비디오 데이터와 관련된 메타데이터를 나타내는 코드 워드들을 포함하고;
    상기 디지털 데이터의 상기 코드 워드들을 라인 디코딩하고 그리고 상기 코드 워드들을 데이터 구조에 기반하여 복수개의 데이터 블록들로 구조화하고, 각각의 데이터 블록은 복수개의 코드 워드들을 갖고;
    각각의 데이터 블록내 상기 코드 워드들을 분석하고; 및
    각각의 데이터 블록내 하나 이상의 손상된 데이터 비트들을 감지하게 하는 명령들을 포함하는, 컴퓨터 판독가능한 스토리지 매체.
  19. 청구항 18에 있어서, 상기 디지털 데이터의 데이터 워드내 비트 에러를 감지하기 위한 상기 컴퓨터 프로그램 명령들은 상기 컴퓨터 프로세서에 의해 실행될 때 상기 컴퓨터 프로세서로 하여금 :
    상기 코드 워드의 에러 정정 부분을 분석하고;
    상기 에러 정정 코드를 미리 결정된 임계값 코드와 비교하고;
    상기 코드 워드의 에러 정정 부분을 상기 동일한 데이터 블록내 나머지 코드 워드들의 대응하는 에러 정정 부분들과 비교하고; 및
    상기 비교들에 기초하여 상기 비트 에러를 감지하게 하는 명령들을 포함하는, 컴퓨터 판독가능한 스토리지 매체.
  20. 청구항 18에 있어서, 상기 컴퓨터 프로세서에 의해 실행될 때 상기 컴퓨터 프로세서로 하여금
    단일 송신 에러로부터 기인한 상기 데이터 블록내 손상된 데이터 비트들에 응답하여, 상기 손상된 데이터 비트들을 정정하고; 및
    다수의 단일 송신 에러들로부터 기인한 상기 데이터 블록내 손상된 데이터 비트들에 응답하여, 상기 손상된 데이터 비트들의 감지를 보고하게 하는 컴퓨터 프로그램 명령들을 더 포함하는, 컴퓨터 판독가능한 스토리지 매체.
KR1020167029740A 2014-04-01 2015-03-30 직렬 비디오 인터페이스들내 에러 감지 및 정정을 위한 직교하는 데이터 구조화 KR20160141771A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201461973837P 2014-04-01 2014-04-01
US61/973,837 2014-04-01
PCT/US2015/023373 WO2015153478A1 (en) 2014-04-01 2015-03-30 Orthogonal data organization for error detection and correction in serial video interfaces

Publications (1)

Publication Number Publication Date
KR20160141771A true KR20160141771A (ko) 2016-12-09

Family

ID=54192254

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167029740A KR20160141771A (ko) 2014-04-01 2015-03-30 직렬 비디오 인터페이스들내 에러 감지 및 정정을 위한 직교하는 데이터 구조화

Country Status (6)

Country Link
US (1) US20150281743A1 (ko)
KR (1) KR20160141771A (ko)
CN (1) CN106105219A (ko)
DE (1) DE112015001607T5 (ko)
TW (1) TW201543885A (ko)
WO (1) WO2015153478A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9508282B2 (en) * 2014-12-10 2016-11-29 Ati Technologies Ulc Virtualized display output ports configuration
US10367530B2 (en) 2016-01-14 2019-07-30 Qualcomm Incorporated Unified code block segmentation providing a cyclic redundancy check for low density parity check code codewords
WO2017176639A1 (en) * 2016-04-04 2017-10-12 Lattice Semiconductor Corporation Forward error correction and asymmetric encoding for video data transmission over multimedia link
US11082062B2 (en) * 2019-09-17 2021-08-03 SK Hynix Inc. Hardware implementations of a quasi-cyclic syndrome decoder
WO2023108600A1 (en) * 2021-12-17 2023-06-22 Intel Corporation System, method and apparatus for reducing power consumption of error correction coding using compacted data blocks

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9421552D0 (en) * 1994-10-26 1994-12-14 Philips Electronics Uk Ltd Improvements in or relating to data communication
US5768533A (en) * 1995-09-01 1998-06-16 National Semiconductor Corporation Video coding using segmented frames and retransmission to overcome channel errors
FR2823035B1 (fr) * 2001-04-03 2003-07-11 St Microelectronics Sa Code de detection et/ou de correction d'erreurs a haute efficacite
US6820140B2 (en) * 2002-07-24 2004-11-16 Intel Corporation Method, system, and program for returning data to read requests received over a bus
CN100539671C (zh) * 2003-06-11 2009-09-09 松下电器产业株式会社 记录装置、信息记录媒体和记录方法
US6747580B1 (en) * 2003-06-12 2004-06-08 Silicon Image, Inc. Method and apparatus for encoding or decoding data in accordance with an NB/(N+1)B block code, and method for determining such a block code
US7596743B2 (en) * 2005-09-28 2009-09-29 Ati Technologies Inc. Method and apparatus for error management
US7467344B2 (en) * 2005-12-23 2008-12-16 Avnera Corporation Devices and system for exchange of digital high-fidelity audio and voice through a wireless link
US20070268905A1 (en) * 2006-05-18 2007-11-22 Sigmatel, Inc. Non-volatile memory error correction system and method
JP4648255B2 (ja) * 2006-06-26 2011-03-09 アラクサラネットワークス株式会社 情報処理装置および情報処理方法
US20090032784A1 (en) * 2007-08-02 2009-02-05 Bielat Donald E Winch strap and method
JP5007676B2 (ja) * 2008-01-31 2012-08-22 富士通株式会社 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置
US8230305B2 (en) * 2009-04-02 2012-07-24 Micron Technology, Inc. Extended single-bit error correction and multiple-bit error detection
US8341501B2 (en) * 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
KR101686980B1 (ko) * 2011-03-02 2016-12-16 샌디스크 테크놀로지스 엘엘씨 비휘발성 메모리 내의 데이터 저장 방법
JP5764392B2 (ja) * 2011-06-13 2015-08-19 株式会社メガチップス メモリコントローラ
US10474584B2 (en) * 2012-04-30 2019-11-12 Hewlett Packard Enterprise Development Lp Storing cache metadata separately from integrated circuit containing cache controller

Also Published As

Publication number Publication date
WO2015153478A1 (en) 2015-10-08
US20150281743A1 (en) 2015-10-01
CN106105219A (zh) 2016-11-09
DE112015001607T5 (de) 2017-01-05
TW201543885A (zh) 2015-11-16

Similar Documents

Publication Publication Date Title
US11595055B2 (en) Methods and apparatus to parallelize data decompression
US8605797B2 (en) Method and system for partitioning and encoding of uncompressed video for transmission over wireless medium
KR20160141771A (ko) 직렬 비디오 인터페이스들내 에러 감지 및 정정을 위한 직교하는 데이터 구조화
US20070202843A1 (en) Method and system for data partitioning and encoding for transmission of uncompressed video over wireless communication channels
US20070189383A1 (en) Method and system for appending redundancy to uncompressed video for transmission over wireless communication channels
JP2000513164A (ja) 誤り保護付き可変長コーディング
US20150326884A1 (en) Error Detection and Mitigation in Video Channels
KR20160123302A (ko) 데이터의 소스-인코딩 및 디코딩 디바이스 및 방법
MX2022004026A (es) Metodos y aparatos de codificacion residual y de coeficiente.
US7243291B1 (en) System and method for communicating image data using error correction coding
KR20110025444A (ko) 구문 요소에 기초한 비트스트림 생성 방법 및 장치
US20150237374A1 (en) Method for performing image processing control with aid of predetermined tile packing, associated apparatus and associated non-transitory computer readable medium
US20180205952A1 (en) Method and apparatus for performing arithmetic coding by limited carry operation
TW202127895A (zh) 用於深度資料之編碼方案
EP2456112A2 (en) Error correction methods and apparatus
KR101624196B1 (ko) 영상에 데이터를 삽입하기 위한 장치, 방법과 이러한 영상에서 데이터를 판독하기 위한 장치 및 방법
KR101541869B1 (ko) 가변길이코딩을 이용한 인코딩 방법, 디코딩 방법, 및 그 시스템
Manohara et al. Error correction scheme for uncompressed HD video over wireless
US20210075843A1 (en) Quality Metadata Signaling for Dynamic Adaptive Streaming of Video
US20190115935A1 (en) Forward Error Correction and Asymmetric Encoding for Video Data Transmission Over Multimedia Link
US20160323603A1 (en) Method and apparatus for performing an arithmetic coding for data symbols
US10455247B2 (en) Method and apparatus for performing arithmetic coding on basis of concatenated ROM-RAM table
KR100921869B1 (ko) 음원의 오류 검출 장치
JP2014003492A (ja) 送信装置、受信装置及びプログラム