KR100985361B1 - 데이터 처리를 위한 장치, 시스템 및 방법 - Google Patents

데이터 처리를 위한 장치, 시스템 및 방법 Download PDF

Info

Publication number
KR100985361B1
KR100985361B1 KR1020077024958A KR20077024958A KR100985361B1 KR 100985361 B1 KR100985361 B1 KR 100985361B1 KR 1020077024958 A KR1020077024958 A KR 1020077024958A KR 20077024958 A KR20077024958 A KR 20077024958A KR 100985361 B1 KR100985361 B1 KR 100985361B1
Authority
KR
South Korea
Prior art keywords
data
hardware accelerator
bit stream
programmable element
compressed bit
Prior art date
Application number
KR1020077024958A
Other languages
English (en)
Other versions
KR20080005237A (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 KR20080005237A publication Critical patent/KR20080005237A/ko
Application granted granted Critical
Publication of KR100985361B1 publication Critical patent/KR100985361B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

소정의 실시예는 코딩 표준에 근거하는 압축 비트 스트림을 수신하는 디코더를 포함하는 장치를 구비한다. 디코더는 코딩 표준을 포함하는 다수의 코딩 표준에 대해 공통인 동작에 근거하는 압축 비트 스트림의 일부를 디코딩하는 하드웨어 가속기를 포함한다. 또한, 디코더는 코딩 표준에 특유한 동작에 근거하는 압축 비트 스트림의 일부를 디코딩하는 프로그래밍가능 요소를 포함한다.

Description

데이터 처리를 위한 장치, 시스템 및 방법{MULTISTANDARD VARIABLE LENGTH DECODER WITH HARDWARE ACCELERATOR}
본 발명은 데이터 처리에 관한 것으로서, 특히 데이터의 디코딩에 관한 것이다.
상이한 유형의 신호의 인코딩, 송신 및 디코딩은 대역폭 집약적 프로세스일 수 있다. 전형적으로, 아날로그 신호는 디지털 형태로 변환되어, 적절한 통신 네트워크를 통해 비트 스트림으로서 송신된다. 비트 스트림이 수신 위치에 도달한 후, 디코딩 동작은 데이터를 아날로그 신호로 다시 변환한다. 그러나, 인코딩 및 디코딩 동작들은 다수의 상이한 표준들(예를 들면, MPEG(Moving Pictures Experts Group)-2, MPEG-4, WM(Windows Media)-9 등)에 근거할 수 있다. 따라서, 인코딩 및 디코딩 동작을 수행하는데 이용된 논리는 이들 표준 중 하나 이상을 처리하도록 설계되어야 한다.
본 발명의 실시예는 그러한 실시예를 기술하는 이하의 설명 및 첨부 도면을 참조함으로써 가장 잘 이해될 수 있다. 본 명세서에서 포함된 도면에 대한 번호 부여 방안은, 도면에서의 주어진 참조 번호에 대한 가장 앞의 번호는 도면의 번호와 관련되도록 되어 있다. 예를 들어, 시스템(100)은 도 1에 위치될 수 있다. 그러나, 참조 번호는 상이한 도면들을 통해 동일한 요소들에 대해 동일한 것이다.
도 1은 본 발명의 소정의 실시예에 따른 비디오 디코더의 블록도.
도 2는 본 발명의 소정의 실시예에 따른 가변 길이 디코더의 보다 상세한 블록도.
도 3은 본 발명의 소정의 실시예에 따른, 도 1의 가변 길이 디코더(102)에 의해 생성되는 다양한 패킷을 도시한 도면.
도 4는 본 발명의 소정의 실시예에 따른 디코딩을 위한 순서도.
도 5는 본 발명의 소정의 실시예에 따른 디코딩 동작을 수행하기 위한 프로세서 아키텍쳐를 도시한 도면.
본 발명의 실시예는 비디오 디코딩 동작을 참조하여 기술된다. 그러나, 실시예들은 그러한 것에 한정되지 않는다. 실시예들은 임의의 수의 상이한 응용(인코딩 동작 등)에서 이용될 수 있다.
도 1은 본 발명의 소정의 실시예에 따른 비디오 디코더의 블록도를 도시한다. 특히, 도 1은 가변 길이 디코더(102), 런 레벨(run level) 디코더(104), 이산 코사인 변환(DCT) 논리(106), 움직임 보상 논리(108), 디블록(deblock) 필터(110), 데이터 저장 및 논리(114A-114N) 및 메모리(150)를 포함하는 시스템(100)을 도시한다. 가변 길이 디코더(102), 런 레벨 디코더(104), DCT 논리(106), 움직임 보상 논리(108) 및 디블록 필터(110)는 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합을 나타낼 수 있다.
데이터 저장 및 논리(114A-114N) 및 메모리(150)는 상이한 유형의 기계 판독가능 매체를 포함할 수 있다. 예를 들어, 기계 판독가능 매체는 휘발성 매체(예를 들면, RAM, 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치 등)일 수 있다. 기계 판독가능 매체는 상이한 유형의 RAM(예를 들면, SDRAM(Synchronous Dynamic RAM), DRAM, DDR(Double Data Rate)-SDRAM 등)일 수 있다.
가변 길이 디코더(102)는 압축 비트 스트림(112)을 수신하도록 접속된다. 소정의 실시예에서, 압축 비트 스트림(112)은 다수의 상이한 디코딩 표준들 중 임의의 표준에 근거하여 코딩되는 인코딩된 데이터일 수 있다. 상이한 코딩 표준의 예로는, MPEG-2, MPEG-4, WM-9 등이 포함된다. 다양한 MPEG-2 표준에 관한 보다 많은 정보에 대해서는, "International Organization for Standardization(ISO)/International Electrotechnical Commission(IEC) 13818-2:2000 Information Technology -- Generic Coding of Moving Pictures and Associated Audio Information: Video" 및 관련 보정안을 참조하면 된다. 다양한 MPEG-4 표준에 관한 보다 많은 정보에 대해서는, "ISO/IEC 14496 Coding of Audio-Visual Objects - Part 2: Video" 및 관련 보정안을 참조하면 된다. 패킷(114), 및 가변 길이 디코더(102)에 의한 그것의 생성에 대한 보다 상세한 설명이 이하에 개시된다.
이하에 더 기술되는 바와 같이, 가변 길이 디코더(102)는 압축 비트 스트림(112)에 근거하여 시퀀스 패킷, 프레임 패킷 및 매크로블록 패킷(130)을 생성할 수 있다. 가변 길이 디코더(102)는 시퀀스 패킷, 프레임 패킷 및 매크로블록 패킷의 헤더를 메모리(150)에 저장할 수 있다. 가변 길이 디코더(102)는 매크로블록 패킷의 본체를 데이터 저장 및 논리(114A)에 저장할 수 있다. 도시된 바와 같이, 가변 길이 디코더(102), 런 레벨 디코더(104), DCT 논리(106), 움직임 보상 논리(108) 및 디블록 필터(110)는 메모리(150)에 접속될 수 있다. 따라서, 런 레벨 디코더(104), DCT 논리(106), 움직임 보상 논리(108) 및 디블록 필터(110)는, 매크로블록 패킷의 본체의 처리를 위해, 메모리(150)내의 시퀀스 패킷, 프레임 패킷, 및 매크로블록 패킷의 헤더를 액세스할 수 있다.
런 레벨 디코더(104)는 데이터 저장 및 논리(114A)로부터 매크로블록 패킷(130)의 본체를 수신하도록 접속된다. 런 레벨 디코더(104)는 이러한 정보에 근거하여 계수 데이터(132)를 생성할 수 있다. 런 레벨 디코더(104)는 계수 데이터(132)를 데이터 저장 및 논리(114B)에 저장하도록 접속된다. DCT 논리(106)는 데이터 저장 및 논리(114B)로부터 계수 데이터(132)를 수신하도록 접속된다. DCT 논리(106)는 계수 데이터(132)에 근거하여 화소(134)를 생성할 수 있다. 예를 들어, DCT 논리(106)는 I 프레임에 대한 화소 또는 P 프레임에 대한 나머지를 생성할 수 있다. DCT 논리(106)는 화소(134)를 데이터 저장 및 논리(114C)에 저장하도록 접속된다.
움직임 보상 논리(108)는 데이터 저장 및 논리(114C)로부터 화소(134)를 수신하고, 참조 화소(140)를 수신하도록 접속된다. 움직임 보상 논리(108)는 화소(134) 및 참조 화소(140)에 근거하여 pel 데이터(136)를 생성할 수 있다. 움직임 보상 논리(108)는 pel 데이터(136)를 데이터 저장 및 논리(114N)에 저장하도록 접속된다. 디블록 필터(110)는 데이터 저장 및 논리(114N)로부터 pel 데이터(136)를 수신하도록 접속된다. 디블록 필터(110)는 pel 데이터(136)에 근거하여 pel 출력(138)을 생성할 수 있다.
이하, 가변 길이 디코더(102)의 보다 상세한 설명이 개시된다. 소정의 실시예에서, 압축 비트 스트림(112)은 다수의 코딩 표준들 중 임의의 표준에 근거하여 인코딩될 수 있다. 하나 이상의 표준이, 그러한 표준에 특유한 적어도 몇 개의 동작을 필요로 할 수 있다. 가변 길이 디코더(102)는 각각의 표준에 대해 상이하게 디코딩 동작을 수행할 필요가 없다. 그보다는, 상이한 표준들에 대해 공통적인 디코딩 동작들 중 몇몇 핵심적인 동작이 있다. 그러한 핵심적인 동작의 예에 대해서는 이하에 보다 상세히 기술된다.
소정의 실시예에서, 가변 길이 디코더(102)는 하드웨어 가속기 및 프로그래밍가능 요소를 포함할 수 있다. 소정의 실시예에서, 프로그래밍가능 요소는 하드웨어 가속기의 동작을 제어할 수 있다. 또한, 프로그래밍가능 요소는 특정 코딩 표준에 대해 고유한/특유한 동작을 수행할 수 있다. 하드웨어 가속기는 다수의 코딩 표준에 대해 공통적일 수 있는 핵심적인 동작을 수행할 수 있다. 소정의 실시예에서, 그러한 표준은 이들 핵심적인 기능의 시퀀스에 근거하여 변할 수 있다.
따라서, 가변 길이 디코더(102)는, 상이한 표준들에 대한 프로그래밍가능성을 허용하면서, 핵심적인 기능의 보다 빠른 실행을 허용한다. 하드웨어 가속기와 프로그래밍가능 요소 사이의 분할을 포함하는 이러한 아키텍쳐가 가변 길이 디코더(102)를 참조하여 기술되지만, 소정의 실시예에서, 이러한 아키텍쳐는 시스템(100)의 다른 구성요소(예를 들면, 런 레벨 디코더(104), DCT 논리(106), 움직임 보상 논리(108) 및 디블록 필터(110))내에 통합될 수 있다.
도 2는 본 발명의 소정의 실시예에 따른 가변 길이 디코더의 보다 상세한 블록도를 도시한다. 특히, 도 2는 본 발명의 소정의 실시예에 따른 가변 길이 디코더(102)의 보다 상세한 블록도를 도시한다. 가변 길이 디코더(102)는 프로그래밍가능 요소(202) 및 하드웨어 가속기(204)를 포함한다. 하드웨어 가속기(204)는 출력 버퍼(210)를 포함한다.
하드웨어 가속기(204)는 압축 비트 스트림(112)을 수신한다. 하드웨어 가속기(204)는 데이터 채널(207)을 통해 프로그래밍가능 요소(202)로/로부터 데이터를 송신 및 수신하도록 접속된다. 또한, 프로그래밍가능 요소(202)는 코맨드 채널(208)을 통해 하드웨어 가속기(204)로 코맨드를 송신하여 그것을 제어하도록 접속된다. 프로그래밍가능 요소(202) 및 하드웨어 가속기(204) 둘다 출력 버퍼(210)를 액세스할 수 있다. 예를 들어, 프로그래밍가능 요소(202) 및 하드웨어 가속기(204)는 (시퀀스, 프레임 및 매크로블록 패킷을 포함하는) 패킷을 출력 버퍼(210)에 저장할 수 있다. 소정의 실시예에서, 프로그래밍가능 요소(202) 및 하드웨어 가속기(204)는 패킷을 생성시에 출력 버퍼(210)를 이용할 수 있다. 예를 들어, 프로그래밍가능 요소(202) 및 하드웨어 가속기(204)에 의한 하나 이상의 동작이, 출력 버퍼(210)에 중간적으로 저장되는 패킷의 제 1 부분(예를 들면, 패킷들 중 하나의 헤더)을 생성할 수 있다. 차후에, 프로그래밍가능 요소(202) 및 하드웨어 가속기(204)에 의한 하나 이상의 동작이 패킷의 제 2 부분(예를 들면, 그러한 패킷의 본체)을 생성할 수 있다. 프로그래밍가능 요소(202) 또는 하드웨어 가속기(204)는 2개의 상이한 부분에 근거하여 패킷을 생성할 수 있다.
프로그래밍가능 요소(202)는 코맨드 채널(208)을 통해 제어 코맨드를 하드웨어 가속기(204)에게 송신함으로써, 하드웨어 가속기(204)로 하여금 메모리(150) 및 데이터 저장 및 논리(114A)에 저장하기 위해 이들 패킷을 출력하도록 할 수 있다. 소정의 실시예에서, 프로그래밍가능 요소(202) 및 하드웨어 가속기(204) 둘다 압축 비트 스트림(112)의 상이한 부분들을 디코딩한다.
예를 들어, 프로그래밍가능 요소(202)는 특정 표준에 특유한 비트스트림을 디코딩할 수 있다. 하드웨어 가속기(204)는 표준들에 대해 공통적인 디코딩 동작을 수행하도록 프로그래밍가능 요소(202)에 의해 프로그래밍될 수 있다. 즉, 하드웨어 가속기(204)는 다수의 표준에 대해 공통적일 수 있는 다양한 핵심적인 동작을 수행할 수 있다.
핵심적인 동작의 예는 비트 스트림에서의 비트들을 분할하는 것과 관련될 수 있다. 예를 들어, 핵심적인 동작은 비트 스트림내 비트 패턴의 위치를 결정하는 것을 포함할 수 있다. 핵심적인 동작은 비트 스트림내 가변 길이 코드의 위치를 결정하는 것을 포함할 수 있다. 예를 들어, 핵심적인 동작은 비트 스트림내 지정된 시작 코드의 위치를 결정하는 것을 포함할 수 있다. 소정의 실시예에서, 핵심적인 동작은 비트 스트림내 비트의 디코딩을 포함할 수 있다. 핵심적인 동작은 비트 스트림으로부터 다수의 비트를 검색하여, 그러한 비트를 디코딩할 수 있다. 특히, 핵심적인 동작은 (검색된 비트에 근거하여) 표를 참조(look-up)할 수 있다. 그 다음, 하드웨어 가속기(204)는 디코딩된 비트를 인덱스, (런, 레벨, 라스트(last)) 트리플릿(triplet) 등으로서 해석할 수 있다. 소정의 실시예에서, 하드웨어 가속기(204)는 디코딩된 비트를, 프로그래밍가능 요소(202)에 의해 더 처리하지 않고서, 가변 길이 디코더(102)로부터 출력할 수 있다. 이와 달리, 하드웨어 가속기(204)는 디코딩 동작의 결과를 프로그래밍 요소(202)로 리턴하여, 더 처리되도록 한다. 소정의 실시예에서, 프로그래밍가능 요소(202)는 패킷화 또는 언패킷화된 포맷 데이터를 하드웨어 가속기(204)로 출력할 수 있다. 패킷화된 데이터가 수신된다면, 하드웨어 가속기(204)는 추가의 처리를 위해, 패킷화된 데이터를 언패킷화할 수 있다.
하드웨어 가속기(204)에 의해 수행될 수 있는 다른 핵심적인 동작은 계수 블록을 디코딩하는 것을 포함할 수 있다. 특히, 하드웨어 가속기(204)는 계수 블록 전체가 디코딩될 때까지, 압축 비트 스트림(112)을 디코딩할 수 있다. 하드웨어 가속기(204)는 디코딩된 블록을, 프로그래밍가능 요소(202)에 의해 더 처리하지 않고서, 가변 길이 디코더(102)로부터 출력할 수 있다. 이와 달리, 하드웨어 가속기(204)는 디코딩 동작의 결과를 프로그래밍가능 요소(202)로 리턴하여, 더 처리되도록 할 수 있다.
하드웨어 가속기(204)에 의해 수행된 다른 핵심적인 동작은, (후술되는 바와 같이) 추가의 처리를 위해 프로그래밍가능 요소(202)로 전달될 수 있는 압축 비트 스트림(112)으로부터 지정된 수의 비트를 검색하는 것을 포함할 수 있다. 하드웨어 가속기(204)에 의해 수행된 다른 핵심적인 동작은 압축 비트 스트림(112)으로부터의 지정된 수의 비트를 (비트 스트림으로부터 그러한 비트를 제거하지 않고서) 프로그래밍가능 요소(202)에 보여주는 것을 포함할 수 있다.
이제, 소정의 실시예에 따른, 프로그래밍가능 요소(202)와 하드웨어 가속기(204) 사이의 디코딩 동작의 할당에 관한 보다 상세한 설명이 개시된다. 압축 비트 스트림(112)은 다수의 프레임에 대한 비트를 포함할 수 있다. 예를 들어, 압축 비트 스트림(112)은 비디오의 프레임을 포함할 수 있다. 시퀀스는 다수의 프레임을 포함한다. 예를 들어, 하나의 제 2 시퀀스가 30 프레임을 포함할 수 있다. 비디오의 프레임은 다수의 매크로블록으로 분할될 수 있다. 더욱이, 매크로블록은 다수의 블록을 포함할 수 있다. 압축 비트 스트림(112)에 근거하여, 가변 길이 디코더(102)는 시퀀스 레벨 데이터, 프레임 레벨 데이터 및 매크로블록 데이터를 포함하는 패킷을 생성할 수 있다.
따라서, 도 3은 본 발명의 소정의 실시예에 따른, 가변 길이 디코더에 의해 생성되는 다양한 패킷을 도시한다. 특히, 도 3은 본 발명의 소정의 실시예에 따른, 가변 길이 디코더(102)에 의해 생성되는 다양한 패킷을 도시한다. 도시된 바와 같이, 가변 길이 디코더(102)는 시퀀스 패킷(302), 프레임 패킷(304), 매크로블록 헤더(306) 및 매크로블록 패킷(308)을 생성할 수 있다.
시퀀스 패킷(302)은 압축 비트 스트림(112)으로부터 디코딩된 시퀀스 레벨 파라미터를 포함할 수 있다. 시퀀스 레벨 파라미터는 프레임의 크기, 디코딩을 위해 이용된 코드의 유형 등을 포함할 수 있다. 프레임 패킷(304)은 압축 비트 스트림(112)으로부터 디코딩된 프레임 레벨 파라미터를 포함할 수 있다. 프레임 레벨 파라미터는 프레임의 유형, 레벨 시프팅이 필요한지의 여부, 양자화가 필요한지의 여부 등을 포함할 수 있다. 매크로블록 헤더(306)는 매크로블록 제어 정보를 포함한다. 매크로블록 제어 정보는 매크로블록 데이터를 인코딩하는데 이용된 인코딩의 유형, 그 내부의 블록의 유형 및 수, 어떤 블록이 압축 비트 스트림내에 있는지의 관한 것, 움직임 예측이 이용되는지의 여부 및 어떤 블록에 대한 것인지에 관한 것, 움직임 예측에 대한 움직임 벡터 등을 포함할 수 있다. 매크로블록 패킷(308)은 압축 비트 스트림(112)으로부터의 매크로블록 데이터를 포함할 수 있다.
소정의 실시예에서, 시퀀스 파라미터의 디코딩은 특정 코딩 표준에 대해 특정적일 수 있다. 소정의 실시예에서, 프레임 레벨 파라미터의 디코딩은 특정 코딩 표준에 대해 특정적일 수 있다. 소정의 실시예에서, 매크로블록 헤더(306)의 생성은 특정 코딩 표준에 대해 특정적일 수 있다. 매크로블록 패킷의 디코딩은, (전술한 바와 같이) 다수의 코딩 표준에 대해 공통적인 핵심적인 동작에 적어도 부분적으로 근거할 수 있다.
소정의 실시예에서, 프로그래밍가능 요소(202)는 특정 디코딩 표준에 대해 특유한 패킷을 디코딩할 수 있고, 하드웨어 가속기(204)는 다수의 코딩 표준에 대해 적어도 부분적으로 공통적인 패킷을 디코딩할 수 있다. 따라서, 도시된 바와 같이, 프로그래밍가능 요소(202)는 시퀀스 패킷(302)의 생성을 위해 시퀀스 파라미터를 디코딩할 수 있다. 또한, 프로그래밍가능 요소(202)는 프레임 패킷(304)의 생성을 위해 프레임 레벨 파라미터를 디코딩할 수 있다.
따라서, 하드웨어 가속기(204)는 다수의 코딩 표준에 대해 공통적인 핵심적인 동작을 수행하도록 하드와이어링될 수 있다. 프로그래밍가능 요소(202)는 특정 표준의 세부 사항을 처리하도록 프로그래밍될 수 있다. 따라서, 프로그래밍가능 요소(202)에서 실행된 인스트럭션은, 새롭거나 갱신된 표준의 처리를 허용하도록 갱신될 수 있다. 그러나, 실시예가 그것에 제한되지는 않는다. 소정의 실시예에서, 프로그래밍가능 요소(202)는 다수의 표준에 대해 공통적인 패킷의 부분들을 디코딩할 수 있다. 소정의 실시예에서, 하드웨어 가속기(204)는 특정 표준에 대해 특유한 패킷의 부분들을 디코딩할 수도 있다.
이제, 소정의 실시예에 따른, 가변 길이 디코더(102)의 동작에 관한 보다 상세한 설명이 기술된다. 도 4는 본 발명의 소정의 실시예에 따른 디코딩을 위한 순서도를 도시한다. 순서도(400)는 소정의 비디오 시퀀스를 처리하기 위한 동작을 도시한다. 그러한 동작은 추가적인 시퀀스가 수신됨에 따라 반복적으로 수행될 수 있다. 순서도(400)는 도 2의 구성요소를 참조하여 기술된다. 순서도(400)는 블록(402)에서 개시된다.
블록(402)에서, 가변 길이 디코더가 압축 비트 스트림을 수신한다. 도 2를 참조하면, 하드웨어 가속기(204)가 압축 비트 스트림(112)을 수신한다. 흐름은 블록(404)에서 계속된다.
블록(404)에서, 프로그래밍가능 요소는 압축 비트 스트림에 근거하여 시퀀스 패킷을 생성한다. 도 2를 참조하면, 프로그래밍가능 요소(202)는 시퀀스 패킷을 생성할 수 있다. 소정의 실시예에서, 프로그래밍가능 요소(202)는 시퀀스 데이터를 생성시에 하드웨어 가속기(204)의 몇몇 핵심적인 동작을 이용할 수 있다. 시퀀스 데이터는 주어진 코딩 표준에 특정적일 수 있다. 따라서, 프로그래밍가능 요소(202)는 하드웨어 가속기(204)로 하여금, 압축 비트 스트림(112)내 시퀀스 데이터의 위치를 결정하도록 할 수 있다. 그 다음, 프로그래밍가능 요소(202)는 시퀀스 데이터를 포함하는 하나 이상의 시퀀스 패킷을 생성할 수 있다. 소정의 실시예에서, 프로그래밍가능 요소(202)는 하드웨어 가속기(204)로 하여금, 압축 비트 스트림(112)으로부터 지정된 수의 비트를 검색하도록 할 수 있다. 예를 들어, 하드웨어 가속기(204)는 압축 비트 스트림(112)내 시작 코드의 위치를 결정할 수 있다. 시퀀스 데이터는 압축 비트 스트림(112)내에서 시작 코드 위치 이후에 존재하는 N 비트일 수 있다. 따라서, 프로그래밍가능 요소(202)는 하드웨어 가속기(204)로 하여금, 시작 코드의 위치를 결정한 후, 시퀀스 데이터를 검색하도록 할 수 있다. 흐름은 블록(406)에서 계속된다.
블록(406)에서, 프로그래밍가능 요소는 압축 비트 스트림에 근거하여 프레임 패킷을 생성한다. 시퀀스 패킷과 유사하게, 프레임 패킷 또한 주어진 코딩 표준에 특정적일 수 있다. 도 2를 참조하면, 프로그래밍가능 요소(202)는 프레임 패킷을 생성할 수 있다. 소정의 실시예에서, 프로그래밍가능 요소(202)는 프레임 데이터를 생성시에 하드웨어 가속기(204)의 몇몇 핵심적인 동작을 이용할 수 있다(예를 들면, 프레임 데이터를 나타내는 비트의 위치를 결정하고 검색). 흐름은 블록(407)에서 계속된다.
블록(407)에서, 시퀀스내의 모든 프레임이 처리되었는지의 여부에 대한 판정이 행해진다. 프로그래밍가능 요소(202)는 이러한 판정을 수행할 수 있다. 특히, 주어진 비디오 코딩 표준에 대해, 주어진 수의 프레임이 시퀀스내에 존재한다. 따라서, 프로그래밍가능 요소(202)는 처리되는 비디오 코딩 표준의 유형에 근거하여 이러한 판정을 행할 수 있다. 시퀀스내의 모든 프레임이 처리되지 않은 것으로 판정되면, 제어는 블록(406)에서 계속되며, 여기서 다른 프레임 패킷이 처리된다.
블록(408)에서, 시퀀스내의 모든 프레임이 처리된 것으로 판정시에, 프로그래밍가능 요소는 압축 비트 스트림에 근거하여 매크로블록 패킷에 대한 헤더를 생성한다. 시퀀스 및 프레임 데이터와 유사하게, 매크로블록 제어 정보 또한 주어진 코딩 표준에 특정적일 수 있다. 도 2를 참조하면, 프로그래밍가능 요소(202)는 매크로블록 제어 정보를 생성할 수 있다. 그러한 정보는 (도 3에 도시된 바와 같이) 매크로블록 패킷의 헤더에 저장될 수 있다. 소정의 실시예에서, 프로그래밍가능 요소(202)는 매크로블록 제어 정보를 생성시에 하드웨어 가속기(204)의 몇몇 핵심적인 동작을 이용할 수 있다(예를 들면, 매크로블록 제어 정보를 나타내는 비트의 위치를 결정하고 검색). 흐름은 블록(410)에서 계속된다.
블록(410)에서, 가변 길이 디코더는 압축 비트 스트림에 근거하여, 하드웨어 가속기에 의해 수행된 핵심적인 동작을 포함하는 매크로블록 패킷을 생성한다. 도 2를 참조하면, 하드웨어 가속기(204)는 다수의 코딩 표준에 대해 공통적인 다수의 핵심적인 동작들 중 임의의 동작을 수행할 수 있다. 예를 들어, 하드웨어 가속기(204)는 지정된 수의 비트의 디코딩, 계수의 블록의 디코딩 등을 행할 수 있다. 하드웨어 가속기(204)는 핵심적인 동작에 근거하여 매크로블록 패킷의 본체를 생성할 수 있다. 전술한 바와 같이, 소정의 실시예에서, 프로그래밍가능 요소(202)는 매크로블록 패킷의 본체를 생성시에 몇몇 동작을 수행할 수 있다. 흐름은 블록(409)에서 계속된다.
블록(409)에서, 시퀀스내의 모든 매크로블록 패킷이 처리되었는지의 여부가 판정된다. 프로그래밍가능 요소(202)는 이러한 판정을 행할 수 있다. 특히, 주어진 비디오 코딩 표준에 대해, 주어진 수의 매크로블록 패킷이 프레임내에 존재한다. 따라서, 프로그래밍가능 요소(202)는 처리되는 비디오 코딩 표준의 유형에 근거하여 이러한 판정을 행할 수 있다. 시퀀스내의 모든 매크로블록 패킷이 처리되지 않은 것으로 판정시에, 제어는 블록(408)에서 계속되며, 여기서 다른 매크로블록 패킷이 처리된다.
블록(412)에서, 시퀀스내의 모든 매크로블록 패킷이 처리된 것으로 판정시에, 가변 길이 디코더는 시퀀스 패킷, 프레임 패킷 및 매크로블록 패킷을 출력한다. 도 1을 참조하면, 가변 길이 디코더(102)는 데이터 저장 및 논리(114A)에 대한 저장을 위해 그러한 패킷을 출력할 수 있다. 도 2를 참조하면, 소정의 실시예에서, 하드웨어 가속기(204)는 내부 버퍼(도시되지 않음)를 포함할 수 있다. 하드웨어 가속기(204)는 이들 패킷을 출력하라는 제어 코맨드를 프로그래밍가능 요소(202)로부터 수신할 때까지, 이들 패킷을 이들 내부 버퍼에 저장할 수 있다.
본 명세서에서 기술된 디코더 아키텍쳐는, 이제 기술되는 그러한 동작을 실행하는데 이용된 소정의 실시예에 따라, 다수의 상이한 환경에서 동작할 수 있다. 특히, 도 5는 본 발명의 소정의 실시예에 따른, 데이터 구성을 위한 버퍼 아키텍쳐를 포함하는 프로세서 아키텍쳐를 도시한다. 도 5는 전술한 바와 같이, 데이터 구성을 위한 버퍼 아키텍쳐를 포함하는 이미지 프로세서(502)를 포함하는 시스템(500)을 도시한다. 예를 들어, 이미지 프로세서(502)는 도 1의 시스템(100)의 구성요소를 포함할 수 있다.
이미지 프로세서(502)는 메모리(504A-504B)에 접속된다. 소정의 실시예에서, 메모리(504A-504B)는 상이한 유형의 RAM이다. 예를 들어, 메모리(504A-504B)는 DDR SDRAM이다.
이미지 프로세서(502)는, 소정의 실시예에서 PCI(Peripheral Component Interface) 버스일 수 있는 버스(514)에 접속된다. 또한, 시스템(500)은 메모리(506), 호스트 프로세서(508), 다수의 입/출력(I/O) 인터페이스(510) 및 네트워크 인터페이스(512)를 포함한다. 호스트 프로세서(508)는 메모리(506)에 접속된다. 메모리(506)는 상이한 유형의 RAM(예를 들면, SDRAM, DRAM, DDR-SDRAM 등)일 수 있으며, 소정의 실시예에서, 호스트 프로세서(508)는 상이한 유형의 범용 프로세서일 수 있다. I/O 인터페이스(510)는 시스템(500)을 위한 I/O 장치 또는 주변 구성요소에 대한 인터페이스를 제공한다. I/O 인터페이스(510)는 시스템(500)의 상이한 구성요소에 임의의 적절한 통신 링크를 제공하기 위해 임의의 적절한 인터페이스 제어기를 포함할 수 있다. 소정의 실시예의 경우, I/O 인터페이스(510)는 다수의 인터페이스들 중 하나에 대한 적절한 중재 및 버퍼링을 제공한다.
소정의 실시예의 경우, I/O 인터페이스(510)는, 예를 들면, 데이터 및/또는 인스트럭션을 저장하기 위한, 예를 들면, HDD(hard disk drive) 또는 CD ROM(compact disc read only memory) 드라이브와 같은 하나 이상의 적절한 IDE(integrated drive electronics) 드라이브, 하나 이상의 USB(universal serial bus) 포트를 통한 하나 이상의 적절한 USB 장치, 오디오 코더/디코더(코덱) 및 모뎀 코덱에 대한 인터페이스를 제공한다. 소정의 실시예의 경우, I/O 인터페이스(510)는 키보드, 마우스, 및 하나 이상의 포트를 통한, 예를 들면, 프린터와 같은 하나 이상의 적절한 장치에 대한 인터페이스를 또한 제공한다. 네트워크 인터페이스(512)는 다수의 통신 네트워크들(인터넷, 인트라넷 네트워크, 이더넷 기반 네트워크 등) 중 하나의 네트워크상에서의 하나 이상의 원격 장치에 대한 인터페이스를 제공한다.
호스트 프로세서(508), I/O 인터페이스(510) 및 네트워크 인터페이스(512)는 버스(514)를 통해 이미지 프로세서(502)와 함께 접속된다. 호스트 프로세서(508)내에서 실행되는 인스트럭션은 상이한 유형의 이미지 처리를 위해 이미지 프로세서(502)를 구성할 수 있다. 예를 들어, 호스트 프로세서(508)는 디코딩 동작을 위해 이미지 프로세서(502)의 상이한 구성요소들을 구성할 수 있다. 그러한 구성은 데이터 저장 및 논리(114)(도 1)로/로부터 입력 및 출력될 데이터 구성의 유형, 패턴 메모리(224)가 이용되는지의 여부 등을 포함할 수 있다. 소정의 실시예에서, 인코딩된 비디오 데이터는, 이미지 프로세서(502)에서의 구성요소에 의한 디코딩을 위해, 네트워크 인터페이스(512)를 통해 입력될 수 있다.
이상, 다양한 특정 세부 사항을 개시하였다. 그러나, 본 발명의 실시예는 이들 특정 세부 사항 없이도 실시될 수 있음을 이해해야 한다. 다른 경우, 그러한 설명의 이해를 불명료하게 하지 않도록, 잘 알려진 회로, 구조 및 기법은 상세히 도시되지 않았다. 본 발명의 청구 대상에 대한 보다 완전한 이해를 제공하기 위해, 논리적 구현, 오피코드(opcode), 오퍼랜드(operand)를 기술하는 방법, 자원 분할/공유/복제 구현, 시스템 구성요소의 유형 및 상호관계, 및 논리적 분할/통합 선택과 같은 다양한 특정 세부 사항이 개시된다. 그러나, 당업자라면, 본 발명의 실시예는 그러한 특정 세부 사항 없이도 실시될 수 있음을 이해할 것이다. 다른 경우, 본 발명의 실시예를 불명료하게 하지 않도록, 제어 구조, 게이트 레벨 회로 및 완전한 소프트웨어 인스트럭션 시퀀스는 상세히 도시되지 않았다. 당업자라면, 포함된 설명을 이용하여, 부적당한 실험 없이도, 적절한 기능을 구현할 수 있을 것이다.
명세서에서의 "일실시예", "실시예", "예시적인 실시예" 등에 대한 참조는, 모든 실시예가 특정한 특징, 구조 또는 특성을 포함할 필요는 없지만, 기술된 실시예가 특정한 특징, 구조 또는 특성을 포함할 수 있음을 나타낸다. 더욱이, 그러한 문구가 동일한 실시예를 지칭할 필요는 없다. 또한, 특정한 특징, 구조 또는 특성이 실시예와 관련하여 기술되는 경우, 그것은 그러한 특징, 구조 또는 특성이 명시적으로 기술되었는지에 관계없이 다른 실시예와 관련하여 실시되도록 당업자의 지식내에 존재하는 것이다.
본 발명의 실시예는 기계 판독가능 매체에 의해 제공된 기계 실행가능 인스트럭션내에서 구현될 수 있는 특징, 방법 또는 프로세스를 포함한다. 기계 판독가능 매체는 기계(예를 들면, 컴퓨터, 네트워크 장치, PDA(personal digital assistant), 제조 툴, 하나 이상의 프로세서의 세트를 구비한 임의의 장치 등)에 의해 액세스가능한 형태로 정보를 제공(즉, 저장 및/또는 송신)하는 임의의 메카니즘을 포함한다. 예시적인 실시예에서, 기계 판독가능 매체는 전기적, 광학적, 음향 또는 다른 형태의 전달된 신호(예를 들면, 반송파, 적외선 신호, 디지털 신호 등) 뿐만 아니라, 휘발성 및/또는 비휘발성 매체(예를 들면, ROM, RAM, 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치 등)를 포함한다.
그러한 인스트럭션은, 인스트럭션으로 프로그래밍된 범용 또는 특수용 프로세서가 본 발명의 실시예의 방법 또는 프로세스를 수행하도록 하는데 이용된다. 이와 달리, 본 발명의 실시예의 특징 또는 동작은 그러한 동작을 수행하는 하드와이어드 논리를 포함하는 특정 하드웨어 구성요소에 의해, 또는 프로그래밍된 데이터 처리 구성요소 및 특정 하드웨어 구성요소의 임의의 조합에 의해 수행된다. 본 발명의 실시예는 소프트웨어, 데이터 처리 하드웨어, 데이터 처리 시스템 구현된 방법, 및 본 명세서에서 더 기술된 다양한 처리 동작을 포함한다.
다수의 도면들은, 본 발명의 소정의 실시예에 따른, 디코더 아키텍쳐에 대한 시스템 및 장치의 블록도를 도시한다. 소정의 도면은, 본 발명의 소정의 실시예에 따른, 디코더 아키텍쳐의 동작을 예시하는 순서도를 도시한다. 순서도의 동작은 블록도에 도시된 시스템/장치를 참조하여 기술되었다. 그러나, 순서도의 동작들은 블록도를 참조하여 기술된 것과는 다른 시스템 및 장치의 실시예, 및 순서도를 참조하여 기술된 것과는 상이한 동작을 수행할 수 있는 시스템/장치를 참조하여 기술된 실시예에 의해 수행될 수 있음을 이해해야 한다.
본 명세서에서 기술된 실시예에 대한 매우 다양한 변경의 관점에서, 이러한 상세한 설명은 단지 예시적인 것이며, 본 발명의 청구 대상의 영역을 제한하는 것으로 고려되어서는 않된다. 따라서, 이하의 특허 청구 범위 및 그 등가물의 영역 및 사상내에 포함될 수 있는 그러한 모든 변형을 청구하는 것이다. 따라서, 명세서 및 도면은 제한적인 것이 아닌 예시적인 것으로 고려되어야 한다.

Claims (22)

  1. 코딩 표준에 근거하는 압축 비트 스트림을 수신하는 가변 길이 디코더를 포함하되,
    상기 가변 길이 디코더는,
    상기 코딩 표준을 포함하는 다수의 코딩 표준에 대해 공통인 제 1 동작에 근거하는 상기 압축 비트 스트림의 일부를 디코딩하는 하드웨어 가속기와,
    상기 코딩 표준에 대해 특유한 제 2 동작에 근거하는 상기 압축 비트 스트림의 일부를 디코딩하는 프로그래밍가능 요소를 포함하며,
    상기 프로그래밍가능 요소는 상기 하드웨어 가속기를 제어하는
    장치.
  2. 제 1 항에 있어서,
    상기 하드웨어 가속기는 상기 압축 비트 스트림으로부터 매크로블록 데이터의 적어도 일부를 디코딩하는 장치.
  3. 제 2 항에 있어서,
    상기 프로그래밍가능 요소는 상기 압축 비트 스트림으로부터 시퀀스 데이터 및 프레임 데이터를 디코딩하는 장치.
  4. 제 3 항에 있어서,
    상기 프로그래밍가능 요소는 상기 코딩 표준에 대해 특유한 상기 제 2 동작에 근거하여 상기 시퀀스 데이터의 적어도 일부 및 상기 프레임 데이터의 적어도 일부를 디코딩하는 장치.
  5. 제 2 항에 있어서,
    상기 하드웨어 가속기는 상기 매크로블록 데이터를 매크로블록 패킷내에 저장하고, 상기 프로그래밍가능 요소는 상기 압축 비트 스트림에 근거하여 상기 매크로블록 패킷에 대한 헤더를 도출하는 장치.
  6. 삭제
  7. 제 1 항에 있어서,
    상기 다수의 코딩 표준은 MPEG(Moving Pictures Experts Group)-2, MPEG-4 또는 WM(Windows Media)-9를 포함하는 장치.
  8. 코딩 표준을 이용하여 인코딩되는 인코딩 데이터를 수신하는 단계와,
    디코더 내의 하드웨어 가속기를 이용하여, 상기 코딩 표준을 포함하는 다수의 코딩 표준에 대해 공통인 제 1 동작에 근거하는 상기 인코딩 데이터를 디코딩하는 단계―상기 하드웨어 가속기는 상기 제 1 동작을 수행하도록 구성됨―와,
    상기 디코더 내의 프로그래밍가능 요소를 이용하여, 상기 코딩 표준에 대해 고유한 제 2 동작에 근거하는 상기 인코딩 데이터를 디코딩하는 단계―상기 프로그래밍가능 요소는 상기 제 2 동작을 수행하도록 구성됨―와,
    상기 프로그래밍가능 요소를 이용하여 상기 하드웨어 가속기를 제어하는 단계를 포함하되,
    상기 디코더는 가변 길이 디코더를 포함하는
    방법.
  9. 제 8 항에 있어서,
    상기 디코더의 상기 프로그래밍가능 요소를 이용하여 상기 인코딩 데이터를 디코딩하는 단계는 상기 인코딩 데이터로부터 시퀀스 데이터를 생성하는 단계를 포함하는 방법.
  10. 제 9 항에 있어서,
    상기 디코더의 상기 프로그래밍가능 요소를 이용하여 상기 인코딩 데이터를 디코딩하는 단계는 상기 인코딩 데이터로부터 프레임 데이터를 생성하는 단계를 포함하는 방법.
  11. 제 10 항에 있어서,
    상기 디코더의 하드웨어 가속기를 이용하여 상기 인코딩 데이터를 디코딩하는 단계는 상기 인코딩 데이터로부터 매크로블록 데이터를 생성하는 단계를 포함하는 방법.
  12. 제 11 항에 있어서,
    상기 디코더의 상기 프로그래밍가능 요소를 이용하여 상기 인코딩 데이터를 디코딩하는 단계는 상기 인코딩 데이터에 근거하여 매크로블록 제어 정보를 생성하는 단계를 포함하는 방법.
  13. 제 8 항에 있어서,
    상기 다수의 코딩 표준은 MPEG-2, MPEG-4 또는 WM-9를 포함하는 방법.
  14. SRAM(Static Random Access Memory)과,
    코딩 표준에 근거하여 인코딩되는 압축 비트 스트림을 수신하는 가변 길이 디코더를 포함하되,
    상기 가변 길이 디코더는,
    상기 압축 비트 스트림내 시작 코드의 위치를 결정하는 제 1 동작을 포함하는 제 1 디코딩 동작을 수행하는 하드웨어 가속기―상기 제 1 디코딩 동작은 상기 코딩 표준을 포함하는 다수의 코딩 표준에 대해 공통적임―와,
    상기 제 1 디코딩 동작으로부터의 출력을 수신하여 상기 코딩 표준에 대해 고유한 제 2 디코딩 동작을 수행하는 프로그래밍가능 요소―상기 프로그래밍가능 요소는 상기 제 2 동작의 결과를 상기 SRAM에 저장하고, 상기 압축 비트 스트림에 근거하여 제 1 디코딩 데이터 세트를 생성함―를 포함하며,
    상기 하드웨어 가속기는 상기 프로그래밍가능 요소에 의해 제어되어 상기 제 1 디코딩 동작을 수행하여 상기 압축 비트 스트림에 근거하여 제 2 디코딩 데이터 세트를 생성하고, 상기 하드웨어 가속기는 상기 프로그래밍가능 요소로부터 상기 제 1 디코딩 데이터 세트를 수신하며, 상기 하드웨어 가속기는 상기 제 1 디코딩 데이터 세트 및 상기 제 2 디코딩 데이터 세트를 상기 SRAM에 저장하는
    시스템.
  15. 제 14 항에 있어서,
    상기 제 2 디코딩 동작은 상기 압축 비트 스트림으로부터 비디오 프레임에 대한 시퀀스 데이터 및 프레임 데이터를 생성하는 제 3 동작을 포함하는 시스템.
  16. 제 14 항에 있어서,
    상기 제 1 디코딩 동작은 상기 압축 비트 스트림으로부터 비디오 프레임에 대한 매크로블록 데이터를 생성하는 매크로블록 동작을 포함하는 시스템.
  17. 제 16 항에 있어서,
    상기 코딩 표준에 대해 고유한 상기 제 1 디코딩 동작은 상기 압축 비트 스트림으로부터 상기 비디오 프레임에 대한 매크로블록 제어 정보를 생성하는 매크로블록 제어 동작을 더 포함하는 시스템.
  18. 제 14 항에 있어서,
    상기 SRAM으로부터 상기 코딩 표준에 대해 고유한 상기 제 2 동작의 결과를 검색하고, 상기 SRAM으로부터 상기 코딩 표준에 대해 고유한 상기 제 2 동작의 결과에 근거하여 계수 데이터를 생성하는 런 레벨 디코더(run level decoder)를 더 포함하는 시스템.
  19. 제 14 항에 있어서,
    상기 다수의 코딩 표준은 MPEG-2, MPEG-4 또는 WM-9를 포함하는 시스템.
  20. 가변 길이 디코더의 프로그래밍가능 요소를 이용하여 하드웨어 가속기를 제어하여 수신된 압축 비트 스트림의 다수의 비트를 전달하는 단계와,
    상기 하드웨어 가속기를 이용하여 상기 압축 비트 스트림으로부터 시퀀스 레벨 데이터를 도출하는 단계와,
    상기 하드웨어 가속기를 이용하여 상기 압축 비트 스트림으로부터 프레임 레벨 데이터를 도출하는 단계와,
    상기 프로그래밍가능 요소를 이용하여 상기 하드웨어 가속기를 제어하여 상기 수신된 압축 비트 스트림으로부터의 데이터의 매크로블록의 디코딩 동작을 수행하는 단계를 포함하는
    방법.
  21. 제 20 항에 있어서,
    상기 디코딩 동작은 하나보다 많은 코딩 표준에 대해 공통인 핵심적인 동작 을 포함하는 방법.
  22. 제 20 항에 있어서,
    상기 다수의 코딩 표준은 MPEG-2, MPEG-4 또는 WM-9를 포함하는 방법.
KR1020077024958A 2005-03-30 2006-03-30 데이터 처리를 위한 장치, 시스템 및 방법 KR100985361B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/093,732 US8705632B2 (en) 2005-03-30 2005-03-30 Decoder architecture systems, apparatus and methods
US11/093,732 2005-03-30

Publications (2)

Publication Number Publication Date
KR20080005237A KR20080005237A (ko) 2008-01-10
KR100985361B1 true KR100985361B1 (ko) 2010-10-04

Family

ID=36688107

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077024958A KR100985361B1 (ko) 2005-03-30 2006-03-30 데이터 처리를 위한 장치, 시스템 및 방법

Country Status (7)

Country Link
US (1) US8705632B2 (ko)
EP (1) EP1864501A1 (ko)
JP (1) JP5053254B2 (ko)
KR (1) KR100985361B1 (ko)
CN (1) CN101116342B (ko)
TW (1) TWI374669B (ko)
WO (1) WO2006105544A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8705632B2 (en) 2005-03-30 2014-04-22 Intel Corporation Decoder architecture systems, apparatus and methods
DE112006003307T8 (de) * 2005-12-09 2009-01-29 Nvidia Corp., Santa Clara Multistandard-Hardware-Videodecodervorrichtung
US8705630B2 (en) * 2006-02-10 2014-04-22 Nvidia Corporation Adapting one type of encoder to another type of encoder
TWI478584B (zh) * 2007-03-08 2015-03-21 Realtek Semiconductor Corp 一種視訊編解碼的方法及其裝置
CN101350625B (zh) * 2007-07-18 2011-08-31 北京泰美世纪科技有限公司 一种高效通用的qc-ldpc码译码器及其译码方法
US8462841B2 (en) * 2007-12-31 2013-06-11 Netlogic Microsystems, Inc. System, method and device to encode and decode video data having multiple video data formats
CN101547353B (zh) * 2008-03-28 2011-09-07 富士通株式会社 可变长码解码加速装置
CN101478311B (zh) * 2009-01-22 2010-10-20 浙江大学 bzip2压缩算法硬件加速实现方法
CN102055970A (zh) * 2009-11-09 2011-05-11 鸿富锦精密工业(深圳)有限公司 多重标准视频解码系统
CN102065288B (zh) * 2010-06-30 2013-07-24 美商威睿电通公司 结合软硬件实现的视频处理系统、方法及其装置
US10055807B2 (en) 2016-03-02 2018-08-21 Samsung Electronics Co., Ltd. Hardware architecture for acceleration of computer vision and imaging processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1351511A2 (en) * 2002-04-01 2003-10-08 Broadcom Corporation Method of communicating between modules in a video decoding system
WO2003085494A2 (en) * 2002-04-01 2003-10-16 Broadcom Corporation Video decoding system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3930280B2 (ja) * 2001-09-27 2007-06-13 株式会社東芝 符号化画像データ復号装置、方法およびプログラム
US6963613B2 (en) * 2002-04-01 2005-11-08 Broadcom Corporation Method of communicating between modules in a decoding system
US6944746B2 (en) * 2002-04-01 2005-09-13 Broadcom Corporation RISC processor supporting one or more uninterruptible co-processors
US7765388B2 (en) * 2003-09-17 2010-07-27 Broadcom Corporation Interrupt verification support mechanism
US8705632B2 (en) 2005-03-30 2014-04-22 Intel Corporation Decoder architecture systems, apparatus and methods

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1351511A2 (en) * 2002-04-01 2003-10-08 Broadcom Corporation Method of communicating between modules in a video decoding system
WO2003085494A2 (en) * 2002-04-01 2003-10-16 Broadcom Corporation Video decoding system

Also Published As

Publication number Publication date
TW200708108A (en) 2007-02-16
CN101116342A (zh) 2008-01-30
KR20080005237A (ko) 2008-01-10
EP1864501A1 (en) 2007-12-12
US8705632B2 (en) 2014-04-22
TWI374669B (en) 2012-10-11
CN101116342B (zh) 2013-01-02
US20060222000A1 (en) 2006-10-05
JP2008537392A (ja) 2008-09-11
JP5053254B2 (ja) 2012-10-17
WO2006105544A1 (en) 2006-10-05

Similar Documents

Publication Publication Date Title
KR100985361B1 (ko) 데이터 처리를 위한 장치, 시스템 및 방법
US20070153907A1 (en) Programmable element and hardware accelerator combination for video processing
JP6437097B2 (ja) 予測符号化、復号化方法、対応するエンコーダ、デコーダ及び電子機器
TWI603609B (zh) 簡化視訊隨機存取之限制及單元類型
JP4825644B2 (ja) 画像復号装置、画像符号化装置、およびシステムlsi
JP2021513303A (ja) ビデオ復号化のための方法、装置およびコンピュータプログラム
JP7569316B2 (ja) コード化ツールの組み合わせおよび制限の管理
CN110740318A (zh) 用于视频处理和视频译码的自动自适应长期参考帧选择
KR20120092095A (ko) 적응적 트리 선택을 사용한 이진 집합의 비디오 인코딩 및 디코딩을 위한 방법 및 장치
US10812819B2 (en) Method and apparatus for video coding
JP2021517788A (ja) 映像符号化のための方法並びに、その、装置及びコンピュータプログラム
JP2022515222A (ja) ビデオ符号化用の方法、装置およびプログラム
JP2015516780A (ja) ビットストリームのビット数を推定するための装置および方法
CN102860010A (zh) 视频编码控制方法及装置
WO2020263438A1 (en) Features of range asymmetric number system encoding and decoding
US8767838B1 (en) Cascading multiple video transcoders in a video processing system
CN101523918A (zh) 视频编码
CN102685483B (zh) 解码方法
JP7535134B2 (ja) ビデオビットストリーム内の第1のピクチャを復号する能力の判定
US20070147496A1 (en) Hardware implementation of programmable controls for inverse quantizing with a plurality of standards
CN102685485B (zh) 编码方法以及装置、解码方法以及装置
JP2020072369A (ja) 復号装置、符号化装置、復号方法、符号化方法、及びプログラム
JP4373283B2 (ja) 映像音声復号方法、映像音声復号装置、映像音声復号プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
CN102685484B (zh) 编码方法以及装置、解码方法以及装置
KR101145399B1 (ko) 멀티-패스 인코딩 장치 및 방법

Legal Events

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

Payment date: 20130902

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140829

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150827

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160831

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 9