KR100375845B1 - 가변 레이트 mpeg­2 비디오 신택스 프로세서 - Google Patents

가변 레이트 mpeg­2 비디오 신택스 프로세서 Download PDF

Info

Publication number
KR100375845B1
KR100375845B1 KR10-1999-0043403A KR19990043403A KR100375845B1 KR 100375845 B1 KR100375845 B1 KR 100375845B1 KR 19990043403 A KR19990043403 A KR 19990043403A KR 100375845 B1 KR100375845 B1 KR 100375845B1
Authority
KR
South Korea
Prior art keywords
state
processing
macroblock
states
state machine
Prior art date
Application number
KR10-1999-0043403A
Other languages
English (en)
Other versions
KR20000028931A (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 KR20000028931A publication Critical patent/KR20000028931A/ko
Application granted granted Critical
Publication of KR100375845B1 publication Critical patent/KR100375845B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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

Abstract

MPEG-2 비디오 신호 디코더는 상태 머신으로서 구현되는 신택스 파저(systax parser)를 포함한다. 상태 머신은 MPEG-2 비트 스트림을 디코딩하기 위해 이산 분석 동작이 실행되는 복수의 상태들을 규정한다. 상기 상태 머신에서 각 상태에 대하여 별개의 처리 시간이 정해진다. 특정 상태에 대한 처리가 상기 상태에 대한 각각의 처리 시간의 종료전에 완료될지라도, 상기 상태로부터 다음 상태로의 천이는 시간 간격의 종료때까지 발생하지 않는다. 각 상태에 대한 처리 시간은 상태 머신에 결합된 마이크로프로세서에 의해 설정된다. 각 상태에 대한 처리 시간은 영상 콘텐트에 기초하여 변화될 수 있거나 상태 머신을 구현하기 위해 사용된 회로에서의 변화를 수용하도록 조정될 수 있다. 상태들에 대한 처리 시간들은 또한 상태 머신으로부터 독립된 다른 처리 구성요소들의 변화를 수용하기 위해 조정될 수 있으나, 다른 처리 구성요소들이 실행하는 처리를 위해 상태 머신에 의존한다. 처리 시간들이 변화될 수 있는 한 방법은 영상이나 일련의 영상들의 처리를 미리 정해진 최대 시간 간격에 따르게 하는 것이다.

Description

가변 레이트 MPEG­2 비디오 신택스 프로세서{Variable rate MPEG-2 video syntax processor}
본 발명은 동화상 전문가 그룹(MPEG)에 의해 규정된 포맷인 MPEG-2에 따라 압축된 영상 데이터를 처리하기 위한 디코더들에 관한 것이며, 특히, 상이한 시간 간격들이 MPEG-2 비트 스트림의 각각의 세그먼트들의 디코딩에 할당될 수 있는 디코더에 관한 것이다.
MPEG-2 표준하에서 실행된 비디오 신호 압축은 본래 가변 레이트이다. 비디오 데이터는 영상들의 시퀀스의 공간 주파수 콘텐트(spatial frequency content)나 상기 시퀀스의 개별 영상들 중 공간 주파수 콘텐트의 차이들에 기초하여 압축된다.
MPEG-2 표준의 신택스는 "동화상의 일반적 코딩 및 관련 오디오 정보 : 비디오(Generic Coding of Moving Pictures and Associated Audio Information : Video)" 라는 제목의 국제 표준 13818-2 추천 ITU-T H.262에 설명되어 있고, MPEG-2 비디오 코딩 표준에 대한 설명을 위해 참고문헌으로서 본 명세서에 병합되어 있는 스위스, 제네바, ISO/IEC로부터 입수할 수 있다. 이 표준은 오디오 및 비디오 데이터를 전송하기 위해 사용되는 데이터 기록의 몇몇 층들을 규정하고 있다. 간략함을 위해, 오디오 데이터의 디코딩에 대해서는 본 문헌에서 설명하지 않는다. 특정 비디오 시퀀스를 설명하는 인코드된 데이터는 몇 벌의 층들(several nested layers), 즉 시퀀스 층(Sequence layer), 화상층의 그룹(Group of Pictures layer), 화상층(Picture layer), 슬라이스 층(Slice layer) 및 매크록블록 층(Macroblock layer)으로 나타내어진다. 매크로블록 기록을 제외한 각 층 기록은 층을 확인하는 시작 코드부터 시작한다. 상기 기록은 헤더 데이터와 페이로드 데이터를 포함한다.
상기 시퀀스 층은 상대적으로 많은 수의 연속적은 영상들의 디코딩에 영향을 미치는 아스펙트비와 화상 사이즈와 같은 파라미터들을 규정한다. 상기 화상층의 그룹은 적은 수의 영상들에 대한 파라미터들을 규정하고 상기 화상층은 단일 영상에 대한 파라미터들을 규정한다. 영상의 내부에서, 슬라이스 기록은 복수의 매크로블록들로 구성되는 영상의 수평 세그먼트에 대한 파라미터들을 규정한다.
따라서, 실제의 영상 데이터는 매크로블록 층내에 있다. 통상적인 MPEG-2 비트 스트림에는, 화상, 화상의 그룹 및 시퀀스 기록들보다는 매크로블록 및 슬라이스 기록들이 더 많이 존재한다. 따라서, 시퀀스 기록들, 화상의 그룹 기록들, 화상 기록들에 대한 헤더들은 종래의 마이크로프로세서 상에서 작동하는 소프트웨어로 실행되는 알고리즘들을 사용하여 디코딩될 수 있다. 그러나, 슬라이스 기록들 및 매크로블록 기록들은 비트 스트림내에서 더욱 빈번히 발생하며 통상적으로 특정 목적의 하드웨어를 사용하여 디코딩된다.
통상적인 디코더에서, 슬라이스 및 매크로블록 기록들의 헤더들을 디코딩하기 위해 사용된 회로는 매크로블록 기록의 페이로드를 디코딩하기 위해 사용된 회로에 의해 억제된다. 매크로블록 디코딩 처리에 어떤 변화가 생긴다면, 대응하는 변화가 슬라이스 및 매크로블록 헤더들을 처리하는 회로에 통상적으로 생긴다. 예를 들어, 종래의 매크로블록 디코더가 더 작은 기하(geometry)(예를 들어, 1 미크론 처리로부터 1/2 미크론 처리로 변형된)를 갖는 반도체 처리 기술을 사용하여 구현된다면, 완전한 비트 스트림이 적절히 처리되도록 슬라이스 및 매크로블록 헤더들을 디코딩하는 하드웨어를 재설계할 필요가 있다.
도 1은 본 발명의 일실시예를 포함하는 MPEG-2 비디오 디코더의 블록도.
도 2는 도 1에 도시된 비디오 디코더를 사용하기에 적절한 VLD 디코더의 블록도.
도 3은 본 발명의 일실시예를 포함하는 상태 머신을 위한 상태도.
도 4는 도 3에 도시된 탐색0 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도 5는 도 3에 도시된 탐색1 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도 6은 도 3에 도시된 탐색2 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도 7은 도 3에 도시된 시작 코드 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도 8은 도 3에 도시된 슬라이스 상태에 있는 동안 상태 머신에 의해 실행된처리를 설명하는데 유용한 흐름도.
도 9는 도 3에 도시된 X슬라이스 정보 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도 10은 도 3에 도시된 매크로블록 어드레스 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도 11은 도 3에 도시된 매크로블록 유형 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도 12는 도 3에 도시된 매크로블록 양자화기 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도 13은 도 3에 도시된 벡터 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도 14는 도 3에 도시된 흐름도의 절차 GET VECT를 설명하는데 유용한 흐름도.
도 15는 도 3에 도시된 코딩된 블록 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도 16은 도 3에 도시된 대기 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도 17은 도 3에 도시된 블록 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도 18은 도 3에 도시된 스킵 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도19는 도 3에 도시된 종료 상태에 있는 동안 상태 머신에 의해 실행된 처리를 설명하는데 유용한 흐름도.
도 20, 도 21, 도 22는 프레임 내 인코드된 매크로블록, 예측 인코드된 매크로블록, 양방향 예측 인코드된 매크로블록을 각각 디코딩하는데 있어서 도 3에 도시된 상태 머신에 의해 실행된 예시적인 상태 천이도.
*도면의 주요 부분에 대한 부호의 설명*
130 : 마이크로프로세서 166 : 반 픽셀 및 보간 회로
170 : RAC 인터페이스
본 발명은 디지털 인코드된 신호를 디코딩하기 위한 장치에 구현된다. 상기 장치는 인코드된 신호내의 헤더 정보를 분석하는 상태 머신을 포함한다. 상태 머신은 이산 분석 동작에 대응하는 상태를 규정한다. 상태 머신에서의 각 상태는 상태에 대한 규정된 처리 시간을 포함한다. 한 상태에서 다음 상태로의 천이는 상태에 의해 실행된 실제의 분석 동작이 종료되었는지 여부에 관계없이 규정된 시간이 종료할 때까지 실시되지 않는다. 각 상태에 대한 처리 시간은 상태 머신에 결합된 마이크로프로세서에 의해 설정된다. 이들 처리 시간은 영상 콘텐트에 기초하여 변화될 수 있거나, 상태 머신을 구현하기 위해 사용된 회로에서의 변화를 수용하기 위해 변화될 수 있다. 또한 상태 변화를 위한 처리 시간은 상태 머신에 결합되는 다른 처리 구성요소에서의 변화를 수용하도록 조정될 수 있다.
본 발명의 한 관점에 따라, 상태 머신은 MPEG-2 인코드된 영상 데이터를 디코딩하고, 슬라이스 및 매크로블록 층들에 대한 MPEG-2 신택스를 분석한다.
본 발명의 다른 관점에 따라, 영상을 디코딩 하기 위해 미리 결정된 수의 디코딩 사이클이 규정되고, 마이크로프로세서는 상기 영상에 대한 총 처리 시간을 상기 미리 결정된 수의 디코딩 사이클에 맞추도록 할당된 처리 시간을 조정한다.
본 발명을 MPEG-2 데이터 스트림을 위한 신택스 파저(syntax parser)에 의해 설명되었지만, 전체 신호 처리 동작의 부분으로서 프로토콜의 신택스를 분석하는 것이 바람직한 경우 다양한 디지털 데이터 프로토콜들로 실행될 수 있다는 것이 고려된다. 따라서, 이 후의 문헌들에서, MPEG-2 신택스는 디지털 신호를 위한 프로토콜의 일례이다.
도 1은 본 발명을 구현하는 예시적인 디코더 시스템의 블록도이다. 이 시스템은 3개의 구성요소 즉, 디코딩 프로세서(110), 고대역폭 메모리(120), 제어 마이크로프로세서(130)를 포함한다. 본 발명의 예시적인 실시예에 사용된 고대역폭 메모리(120)는 NEC와 토시바로부터 입수될 수 있는 RAMBUS 메모리 시스템이다.
간단히, 도 1에 도시된 디코더는 다음과 같이 동작한다. 첫번째 단계로서, 디코더 집적 회로(IC)(110)는 특정 구성의 마이크로프로세서(130)에 의해 동작된다. 예를 들어, 만약 디코더가 525P 신호를 디코딩하는데 사용되면, 적절한 제어값이 마이크로프로세서 인터페이스(112)를 통해 디코딩 프로세서(110)의 내부 회로에 인가된다. 명료함을 위해, 마이크로프로세서(130)와 IC(110)내의 각각의 요소간의 제어 버스는 생략되었다. 이 버스는 예를 들어 종래의 I2C 버스일 수 있다.
일단 IC(11)가 동작을 시작하였다면, 입력 비트 스트림이 파저(116)에 인가된다. 도 2를 참조하여 후술하는 파저는 메모리(120)에 비트 스트림을 저장한다. 또한, 파저는 시퀀스, 화상 그룹, 화상층들을 위한 시작 코드들을 확인하고 이들 시작 코드가 저장되어있는 메모리 위치를 마이크로프로세서(130)에 통지한다. 도 1에 도시된 예시적인 디코더에서, 마이크로프로세서는 이들 층들을 위한 헤더 정보를 디코딩한다.
DRAM 제어 및 어드레스 발생기(126)는 메모리(120)에 비트 스트림 데이터를 저장하기 위하여 RAC 인터페이스(170)를 제어한다. 본 발명의 예시적인 실시예에서, 메모리(120) 부분은 입력 비트 스트림을 유지하기 위해 버퍼로서 사용하기 위해 예비된다. 이 버퍼 영역은 MPEG-2 표준에 지정되어 있는 VBV 버퍼에 대응한다.
비트 스트림 데이터는 메모리(120)의 VBV 버퍼 영역에 기록된 후, 메모리(120)로부터 판독되고 또한 DRAM 제어 및 어드레스 발생 회로(126)의 제어하에 있는 버퍼 메모리(121)에 저장된다. 메모리(121)는 메모리(120)로부터 폭발적으로 채워지며 비트 스트림 신택스에 의해 규정된 바와 같은 가변장 디코더(VLD)(118)에 의해 비워지는 FIFO 메모리이다.
VLD(118)는 양자화된 이산 코사인 변환 계수값들의 블록들을 발생하기 위해 비트 스트림의 슬라이스 및 매크로블록 층들을 분석한다. 이들 값들의 블록들은 FIFO 메모리(128)에 인가된다. 이 FIFO 메모리는 한편의 VLD(118)와 다른 한편의 매크로블록 디코딩 회로간에 데이터를 버퍼한다. 이 메모리는 MPEG-2 표준에 규정된 역 스캔 기능을 또한 실행할 수 있다. 회로(132)는 양자화된 계수값들을 단일 포맷으로 변환시키거나 역양자화기(134)와 주파수 도메인 계수들을 공간 도메인 픽셀값들이나 차동 픽셀값들로 변환시키는 역 이산 코사인(IDCT) 프로세서를 포함한다. 역양자화기(134)와 IDCT 프로세서(142)는 처리 동작에서 도움을 주기 위해 개개의 메모리(136, 144)를 포함한다. 회로(132)에 의해 제공된 출력 데이터는 픽셀값들 또는 차동 픽셀값들의 블록들이다.
블록들에서의 값들이 차동 픽셀값들인 경우, 상기 값들은 가산 및 클립 회로(158, 160)를 포함하는 움직임 보상 프로세서(161)에 의해 미리 디코딩된 영상 프레임들로부터의 값들과 결합된다. 이들 회로들은 1/2 픽셀 및 보간 회로(166)에 의해 제공되는, 미리 디코딩된 프레임들로부터 차례로 영상 데이터를 얻는다. 보간 회로(166)는 버퍼 메로리(168)를 사용하여 미리 디코딩된 프레임들로부터 영상 화소들(픽셀들)을 얻는다. 이들 메모리용 데이터값들은 DRAM 제어 및 어드레스 발생 회로(126)에 의해 메모리(120)로부터 제공된다.
움직임 보상 프로세서(161)에 의해 생성된 디코딩된 영상 데이터는 버퍼 메모리(164, 164)에 저장된다. 나중에 수신된 영상 필드 또는 프레임으로부터 움직임 보상 인코드된 데이터를 디코딩하는데 있어서 기준 프레임 데이터로서 디스플레이하거나 사용하기 위해 버퍼 메모리(162, 164)로부터 상기 디코딩된 영상 데이터가 메모리(120)에 저장된다. 디스플레이될 데이터는 메모리(120)에 블록 포맷으로 저장되고, 디스플레이 프로세서(175)의 제어하에서 디스플레이 장치(도시 안됨)에 제공될 메모리(174)에 래스터 스캔 포맷으로 전송된다.
온-스크린 디스플레이(OSD) 프로세서(171)는 또한 DRAM 제어 및 어드레스 발생기(126) 및 RAC 인터페이스(170)를 거쳐 메모리(120)에 데이터를 제공하거나 메모리(120)로부터 데이터를 수신하도록 결합된다. 본 발명의 예시적인 실시예에서, OSD 프로세서(171)는 유저 메뉴와, 디스플레이된 영상을 오버레이하는 클로즈 캡션(close-caption) 텍스트를 발생한다.
상기한 바와 같이, VLD 프로세서(118)는 비트 스트림에서 슬라이스 및 매크로블록 정보를 디코딩하고, 디코딩되어 양자화된 계수값들을 매크로블록 디코딩 회로(132)에 보낸다. 회로(132)에 의해 실행된 처리는 픽셀값들의 개별 블록에 대한 역 이산 코사인 변환의 계산을 포함한다. 초당 30 프레임의 프레임 레이트를 갖는 고선명 영상에 대해, 이 동작은 고선명 비디오 영상 프레임내의 많은 수의 블록들 때문에 가능한 한 빨리 실행되는 것이 바람직하다. 단지 표준 선명 영상(즉, MP@ML)만이 디코딩되면, 이 동작은 중요하지 않다. 따라서, 처리되는 영상들의 유형에 따라, 매우 빠른 처리 기술(즉, 2 미크론)을 사용하거나 더 느린 처리 기술(즉, 1 미크론)을 사용하여 매크로블록 디코더를 구현하는 것이 바람직하다.
매크로블록 디코더가 구현되는 처리 기술을 변화시키는 것은 매크로블록들이 처리되는 속도를 변화시키고 따라서 전체 시스템의 동기화에 영향을 준다. VLD 프로세서(118)가 매크로블록 디코더(132)와 같이 동일한 기술로 구형된다면, 이들 2개의 디코더에 의해 실행된 처리 단계들은 비례하여 변화하지는 않을 것이다. 따라서, 주어진 매크로블록 디코더 처리 실행에 있어서, VLD 프로세서(118)를 전체적으로 재설계하는 것이 바람직할 것이다.
대안적으로 그리고 본 발명에 따라, VLD 프로세서(118)는 한 상태로부터 다른 상태로의 천이에 필요한 시간이 프로그램될 수 있는 상태 머신으로서 설계될 수 있다. 따라서, 처리 기술의 변화가 VLD로 하여금 매크로블록 디코더(132)에 의해 수용될 수 있는 것보다 빠르게 비트 스트림을 처리하게 한다면, VLD는 매크로블록 디코더의 것에 대해서 VLD의 처리를 동기화하도록 선택된 상태 천이에 필요한 시간을 증가시키기 위해 프로그램될 수 있다.
도 2는 본 발명에 따른 가변장 디코더(118)의 블록도이다. 도 2에 도시된 바와 같이, 압축된 MPEG 2 비디오 데이터 스트림은 시프트 멀티플렉서(210)에 의해 메모리(121)로부터 수신된다. 시프트 멀티플렉서(210)는 가변 레이트 프로세서(212), VLC 룩업 테이블(214), 매크로블록 파라미터 디코더(220)에 48 비트의 비트 스트림을 인가한다. VLC 룩업 테이블(214)은 매크로블록 헤더로부터 검색되는 몇몇 값들을 유지한다. 이들 값들은 가변장 코드된 DCT 계수값들을 MPEG 2 가변 레이트 파저(212)에 인가되는 일정 길이 계수값들로 변환시키기 위해 파저(212)에 의해 사용된다. VLC 룩업 테이블에 의해 유지된 값들은 매크로블록 어드레싱 값들, 매크로블록 유형, 매크로블록 패터, 매크로블록 움직임 벡터들을 포함한다. 다양한 레벨들의 기록들을 위한 헤더 정보가 가변장 코딩되지 않으므로, 이 정보는 가변 레이트 파저에 의해 비트 스트림으로부터 직접 추출될 수 있다. 디코더(212)는 또한 도 3 내지 도 22를 참조하여 아래에 설명하는 바와 같이, 전체 MPEG 2 신택스에 규정된 신택스의 항목의 설정 각각에 대한 분석 시간을 규정하는 분석 레이트 룩업 테이블(216)에 결합된다. 이들 신택스의 항목 각각은 도 3을 참조하여 아래에 설명하는 바와 같이 파저(212)의 상태 머신 구현의 개개의 상태에 의해 분석된다. 분석 레이트 룩업 테이블은 마이크로프로세서(130)에 의해 로드되고, 그 값들은 가변 레이트 파저(212)에 의해 판독된다.
상기한 바와 같이, VLD(118)는 MPEG 2 신택스의 슬라이스 및 매크로블록 층들만을 분석한다. 신택스의 시퀀스, 화상 그룹, 화상층들은 마이크로프로세서(130)에 의해 분석된다. 슬라이스 및 매크로블록 기록들의 디코딩에 관련된 파라미터 값들은 화상 디코딩 파라미트 블록(218)을 거쳐 마이크로프로세서(130)에 의해 제공된다.
가변 레이트 파저(212)는 매크로블록을 DCT 계수값들의 개별 블록들로 디코딩한다. 이들 계수값들과 매크로블록 층들로부터 디코딩된 다른 헤더 항목들은 매크로블록 파라미터 디코더(220)에 제공된다. 이 디코더는 DCT 계수들와 움직임 벡터들을 매크로블록 디코딩 회로(132)에 제공한다. 제어 회로(222)는 디코더(132)가 신호 READY를 주장할 때 DCT 계수들의 블록들을 매크로블록 디코더(132)에 제공하기 위해 가변 레이트 파저(212)에 연결된다.
도 3은 도 1에 도시된 VLD 프로세서(118)의 상태 머신 구현의 상태도이다. 이 상태 머신은 슬라이스 및 매크로블록 기록들의 디코딩을 15개의 상태들로 분할한다. 이들 각 상태는 도 4 내지 도 19를 참조하여 상세히 규정된다.
15개의 규정된 상태들은 4개의 상태, 즉 탐색0(310), 탐색1(312), 탐색2(314), 시작 코드(316)를 포함한다. 시작 코드들, 특히 비트 스트림내의 슬라이스 시작 코드들의 위치를 정한다. 슬라이스 시작 코드가 확인될 때, 상태 머신은 슬라이스 상태(318)로 천이된다.
슬라이스 상태(318)로부터, 상태 머신은 X슬라이스 정보 상태(320)와 매크로블록 어드레스 상태(322)로 천이된다. 상태(322)는 비트 스트림의 매크로블록 헤더부의 디코딩을 시작한다. 매크로블록 어드레스가 단계 322에서 계산된 후, 상태 머신은 비트 스트림에 포함된 매크로블록 헤더 정보로부터 매크로블록 유형을 결정하기 위해 상태(324)로 천이된다. 매크로블록 유형이 상태(324)에서 결정된 후, 상태 머신은 매크로블록 양자화 정보를 검색하기 위해 상태(326)로 천이되고, 상태(328)를 통해, 매크로블록을 위해 존재할 수 있는 임의의 움직임 벡터를 검색한다. 만일 상태(326)에서 매크로블록이 코드된 매크로블록이라고 결정되면, 제어는 상태(330)로 천이되여 코드된 매크로블록을 처리한다. 그렇지 않으면, 상태(326) 후 및 상태(330) 후, 제어는 상태(332)로 천이되어, 계수값들의 다음 블록을 받아들이기 위해 매크로블록 디코더(132)가 준비될 때까지 대기한다.
매크로블록은 2가지 방법으로 스킵(skip)될 수 있다. 우선, MPEG-2 신택스에서, 몇몇 매크로블록은 MPEG-2 신택스에서 스킵 매크로블록들로서 표시된다. 이들 매크로블록 기록들은 헤더 정보를 가지지만 계수값들은 없다. 매크로블록이 스킵될 수 있는 2번째 방법은 매크로블록 디코더가 비트 스트림에서 에러와 마주치고 슬라이스에서 잔여 블록들을 스킵한다면, 스킵 상태(334)는 이들 경우중 하나에서 대기 상태(332)를 만족하는 경우이다. 대기 상태가 만족되고 매크로블록 디코더(132)가 계수값들의 다음 블록을 받아들일 때, 상태 머신은 매크로블록 디코더(132)에 계수값들을 제공하기 위해 상태(336)로 천이된다. 이들 값들을 제공한 후, 상태 머신은 상태(338)로 천이되어, 이 슬라이스에 매크로블록이 더 존재하는지를 결정하고, 이 경우 상태 머신은 상태(322)로 천이되고, 또는 상태 머신이 상태(310)로 천이되는 경우에 새로운 슬라이스가 처리되는지 여부를 결정한다.
상기한 바와 같이, 마이크로프로세서는 상기 상태도(state diagram)에서의 임의의 상태 천이가 상기 상태로 들어간 후에 발생하게 되는 완료 시간(completion time)을 할당한다. 이 구현에 있어서, 한 상태에서 발생하는 임의의 처리는 이 시간 간격에서 발생한다. 실제의 상태 천이는 그 시간 간격에 의해 표시된 시스템 클록 주기들의 수가 경과될 때까지 발생하지 않는다. 이 실행은 각 신택스의 항목에 대해 최악의 경우의 신택스 처리를 실행하기 위해 설계되는 것보다 더 짧거나 더 긴 항목 신택스를 처리하기 위해 VLD 프로세서가 적응적으로 변화되게 한다.
예를 들어, MPEG 표준하에서, 매크로블록은 4개의 움직임 벡터를 포함할 수 있는 경우의 듀얼 프라임 매크로블록(dual-prime Macroblock)으로서 규정될 수 있다. 한편 프레임 내 코드된 매크로블록(intra-frame coded Macroblock)은 움직임 벡터들을 갖지 않는다. 상태 머신이 프레임 내 코드된 매크로블록을 디코딩할 때, 벡터 상태는 작거나 0인 처리 시간을 할당할 것이다. 그러나, 시스템이 듀얼 프라임 매크로블록을 디코딩할 때, 임시 움직임 벡터들이 적절하게 디코딩되도록 하기 위해 상기 벡터 상태에 대해 2배의 정상 상태 처리 시간이 할당될 수 있다.
도 4는 탐색0 상태(310)에서 상태 머신의 동작을 설명하는 흐름도이다. 이 처리에서의 제1 단계는, 이전 상태에 대한 처리 시간이 경과하기까지 가변 레이트 파저(212)가 대기하고 탐색0 상태에 대한 분석 레이트 룩업 테이블(216)을 액세스하는 단계 412이다. 테이블(216)으로부터 돌아온 값은 상태 머신의 탐색0 상태로부터 다른 상태로 천이될 수 있기 전에 경과할 시스템 클록 펄스의 수를 규정한다. 탐색0 처리의 제1 단계는 단계 414이며, 여기서는 비트 스트림내의 다음 바이트가 슬라이스 시작 코드값을 나타내는지를 결정하기 위해 입력 비트 스트림이 분석된다. 본 출원에서 관심을 두고 있는 시작 코드값들은 영상 프레임에서 슬라이스의 수직 위치에 따라 0x01 내지 0xAF의 값들을 가질 수 있는 슬라이스 시작 코드들이다.
슬라이스 시작 코드값이 단계 414에서 발견되면, 상태 머신의 다음 천이는 도 8을 참조하여 아래에 설명한 슬라이스 상태(318)이다. 슬라이스 시작 코드값이 단계 414에서 발견되지 않으면, 탐색0 처리에서의 다음 단계, 즉 단계 416은 비트 스트림의 다음 바이트가 시작 코드 프리픽스(prefix)에 대응하는지 여부를 결정한다. MPEG-2 표준에 규정된 바와 같이, 시작 코드 프리픽스는 단일의 1값의 비트를 뒤따르는 23개의 0값의 비트들의 스트링(string)이다. 시작 코드 프리픽스가 비트 스트림내에서 발견되었는지를 결정하기 위해, 상태 머신은 파저에 의해 개별적으로 분석되는 0들의 그룹내의 0들의 수를 카운트한다. 따라서, 시작 코드 프리픽스가 비트 스트림내에서 발견되었는지를 결정하는데 있어서, 단계 416은 다음 바이트들이 1의 값을 갖는지와, 적어도 2개의 다른 0값의 바이트가 이 1값의 바이트이전 즉시 카운트되었는지를 결정한다. 만일 이들 조건이 만족되면, 시작 코드 프리픽스는 단계 416에서 발견되고 상태 머신에 대한 다음 상태는 시작 코드 상태(316)이다. 그렇지 않으면, 제어는 단계 418로 이동한다.
단계 418에서, 탐색0 처리는 비트 스트림내의 다음 바이트들이 1 이상의 0값 바이트를 나타내는지를 결정한다. 만약 그렇다면, 이들 0값 바이트들은 비트 스트림으로부터 제거되고, 0값 바이트의 현재의 카운트는 탐색0 상태의 로컬 변수(도시 안됨)에 저장되고, 탐색2 상태(314)는 상태 머신에 대한 다음 상태로서 표시된다. 그렇지 않으면, 비트 스트림내의 다음 바이트가 0임을 결정하는 단계 320이 실행된다. 만약 그렇다면, 이 0값 바이트가 비트 스트림으로부터 제거되고, 현재의 0 카운트값은 하나씩 증가하고 상태 머신에 대한 다음 상태는 탐색1 상태이다. 만일 비트 스트림이 단지 단일의 0값 바이트를 포함하지 않는다면, 비트 스트림내의 다음 바이트는 0가 아님에 틀림없다. 따라서, 이 바이트는 비트 스트림으로부터 제거되고, 제어는 단계 412로 이동한다. 본질적으로 이는 그 자체로 탐색0 상태로부터의 천이이다. 단계 412에서, 탐색0 상태(310)는 탐색0 상태에 대해 이전에 할당된 시간이 경과할 때까지 대기하고 탐색0 상태에 대해 새로이 할당된 시간을 페치한다
도 5는 탐색1 상태의 흐름도이다. 탐색1 상태(312)의 처리는 이전의 상태에 대해 할당된 시간이 경과하고, (도 2에 도시된) 분석 레이트 룩업 테이블(216)로부터 탐색1 상태에 대한 현재 시간을 페치할 때까지 대기하는 단계 510으로 시작한다. 탐색1 상태에 대해 할당된 시간을 페치한 후, 비트 스트림내의 다음 바이트가 슬라이스 시작 코드값에 대응하는지를 결정하기 위해 단계 512가 실행된다. 만일 그렇다면, 제어는 슬라이스 상태(318)로 천이된다. 슬라이스 시작 코드가 단계 512에서 발견되지 않으면, 비트 스트림내의 다음 바이트가 시작 코드 프리픽스에 대응하는지를 결정하기 위해 상태(514)가 실행된다. 프리픽스가 단계 514에서 발견되지 않으면, 상태 머신은 시작 코드 상태(316)로 천이된다. 시작 코드 프리픽스가 단계 514에서 발견되지 않으면, 단계 516은 비트 스트림내의 다음 바이트나 바이트들이 0의 값을 갖는지를 결정한다. 만일 그렇다면, 상태 머신에 대한 다음 상태는 탐색2 상태(314)로 천이된다. 대신에, 만일 비트 스트림내의 다음 바이트가 상태 머신에 대한 다음 상태 천이가 아니면 탐색0 상태(310)로 되돌아간다.
도 6은 탐색2 상태(314)에서 실행된 처리를 설명하는 흐름도이다. 이 상태는 MPEG 비트 스트림내 소정의 시작 코드전에 삽입되는 0값 스터핑 비트를 처리한다. 탐색2 상태(314)는 이전 상태에 대해 할당된 시간이 경과할 때까지 상태 머신이 대기하고 그 후 분석 룩업 테이블(216)로부터 탐색2 상태에 대해 현재 할당된 시간을 페치하는 단계 610에서 시작한다. 단계 610에서, 제어는 비트 스트림내의 다음 바이트들이 슬라이스에 대응하는지 여부를 결정하기 위해 제어는 단계 610으로 이동한다. 만일 그렇다면, 상태 머신에 대한 다음 상태는 슬라이스 상태(318)로 천이된다. 그렇지 않으면, 비트 스트림내의 다음 바이트들이 시작 코드 프리픽스에 대응하는지를 탐색2 처리가 결정하는 단계 614가 실행된다. 시작 코드 프리픽스가 단계 614에서 만나면, 상태 머신에 대한 다음 상태는 시작 코드 상태(316)이다. 그렇지 않으면, 제어는 탐색2 처리의 단계 616으로 이동한다. 단계 616은 비트 스트림내의 다음 바이트들이 0인지 여부를 결정한다. 만일 그렇다면, 이들 0값 바이트들은 비트 스트림으로부터 제거되고, 제어는 단계 610으로 이동한다. 이는 본질적으로 탐색2 상태로부터의 그 자체의 천이이다. 만일 비트 스트림이 긴 시퀀스의 스터핑 비트들(stuffing bits)을 포함한다면, 탐색2 상태는 모든 스터핑 비트가 비트 스트림으로부터 제거될 때까지 그 자체로 연속하여 루프 백될 것이다. 만일 단계 616에서 비트 스트림내의 다음 바이트가 0이 아니면, 도 4를 참조하여 상기한 바와 같이, 상태 머신에 대한 다음 상태는 탐색0 상태(310)로 천이된다.
도 7은 시작 코드 상태(316)에서의 상태 머신의 동작을 설명하는 흐름도이다. 이 처리의 단계 710은 이전 상태가 완료하기까지 대기하고 룩업 테이블(216)로부터 시작 코드 상태에 현재 할당된 시간의 양을 페치한다. 상기한 바와 같이, 시작 코드 상태는 비트 스트림에서 시작 코드 프리픽스가 발견되었으면 시작 코드 상태가 기록된다. 단계 712에서, 시작 코드 프리픽스는 비트 스트림으로부터 제거되고 비트 스트림의 다음 바이트들은 그들이 슬라이스 시작 코드값에 대응하는지를 결정하기 위해 검사된다. 만일 그렇다면, 상태 머신에 대한 다음 상태는 슬라이스 상태(318)로 천이된다. 그렇지 않으면, 시작 코드값을 슬라이스 시작 코드값이 아니고 상태 머신에 대한 다음 상태는 탐색0 상태(310)이다.
도 8은 슬라이스 상태(318)에서 상태 머신의 동작을 설명하는 흐름도이다. 단계 810에서, 이전 상태의 처리가 완료하기까지 처리는 대기하고, 분석 레이트 룩업 테이블(216)로부터 슬라이스 처리를 위해 할당된 현재 시간을 페치한다. 표 1, 즉 상기 참조된 MPEG-2 사양으로부터 슬라이스 헤더에 대한 신택스도에 도시된 바와 같이, 슬라이스 헤더에서의 제1 항목은 슬라이스에 대한 양자화기 축적 정보이다.
매크로블록 신택스에 사용된 용어들은 상기 참조된 MPEG-2 비디오 사양에 규정되어 있다.
단계 812에서, 이 정보는 비트 스트림으로부터 검색되어 저장된다. 단계 814에서, 임시 정보가 이 슬라이스에 대해 규정되었는지를 결정하기 위해 비트 스트림내의 다음 비트가 검사된다. 만일 그렇다면, X슬라이스 정보 상태(320)는 상태 머신에 대한 다음 상태이다. 만일 그렇지 않으면, 임시 비트를 뒤따르는 다음 정보는 매크로블록의 시작이다. 매크로블록의 처리는 매크로블록 어드레스 상태(322)로의 상태 머신의 천이와 함께 시작한다.
도 9는 X슬라이스 정보 상태(320)의 상태 머신의 동작을 설명하는 흐름도이다. 완료를 위해 이전 상태에 대해 대기하고 단계 910에서 X슬라이스 정보 상태에 대해 현재 할당된 시간을 페치한 후, 비트 스트림으로부터 임시 정보를 버리기 위해 단계 912가 실행된다. 단계 914에서, 아직 다른 임시 정보 기록이 슬라이스 헤더에 포함되어 있는지를 결정하기 위해, 제거된 임시 정보 기록을 즉시 따르는 바이트를 체크한다. 만일 그렇다면, 제어는 단계 910으로 이동하여, 다음의 임시 정보 기록을 제거하기 위해, 본질적으로 X슬라이스 정보 상태(320)로부터 그 자체로 천이된다. 일단 모든 임시 정보 기록이 슬라이스 헤더로부터 버려졌다면, 단계 914는 상태 머신의 다음 상태 매크로블록 어드레스 상태(322)로 천이되게 한다.
도 10은 매크로블록 어드레스 상태(322)에 의해 실행된 처리를 설명하는 흐름도이다. 이전 상태가 완료하기까지 대기하고 분석 레이트 룩업 테이블(216)로부터 매크로블록 어드레스 상태에 대한 클록 사이클의 현재 할당된 수를 얻은 후, 도 10에 도시된 처리는 단계 1012에서 매크로블록 어드레스를 계산한다. MPEG 표준에서, 슬라이스에 대한 시작 코드는 재생된 영상의 슬라이스의 수직 위치를 나타내기 위해 코드된다. 또한, 표 3에 도시된 바와 같이, 매크로블록에 대한 MPEG-2 신택스에 있어서, 매크로블록 기록의 제1 항목은 어드레스 증분값이고, 이는 슬라이스에서의 매크로블록의 어드레스를 규정한다. 단계 1012는 비트 스트림으로부터 시작 코드값과 어드레스 증분값을 검색하고, 현재의 슬라이스 시작 코드값을 이용하여, 영상내의 매크로블록에 대한 어드레스를 계산한다. 단계 1012후에, 상태 머신에 대한 상태는 매크로블록 유형 상태(324)로 천이된다.
도 11은 매크로블록 유형 상태(324)에 의해 실행된 처리를 설명하는 흐름도이다. 이전 상태가 완료하기까지 대기하고 매크로블록 유형 상태에 대해 현재 할당된 시간을 페치한 후, 매크로블록 헤더로부터 매크로블록 유형 필드를 페치하는 단계 1112가 실행된다.
매크로블록 유형은 매크로블록에 의해 실행된 움직임 보상 처리가 프레임 단위 또는 필드 단위인지 여부를 결정하고, 매크로블록의 DCT 코딩이 프레임 단위 또는 필드 단위인지 여부를 결정한다. 단계 1114에서, 이들 값들이 상태 머신에 의해 저장된다. 단계 1114에서, 상태 머신에 대한 다음 상태는 매크로블록 양자화기 상태(326)이다.
도 12는 매크로블록 양자화기 상태(326) 동안 실행된 처리를 도시하는 흐름도이다. 아래에 설명하는 바와 같이, 이 상태는 매크로블록으로부터 움직임 벡터 정보를 추출하는 벡터 상태로의 상태 천이를 포함할 때 각 매크로블록에 대한 입력된 몇몇 시간들일 수 있다. 매크로블록 신택스가 최초 실시 후의 상태(326)의 실시 동안 적절히 해석되는 것을 보장하기 위해, 몇몇 불 변수들(Boolean variables), 즉 Q SCALE, GOT FORWARD, GOT BACKWARD가 규정된다. 이들 불 변수들(Boolean variables)은 이하 설명한다.
단계 1210에서, 상태 머신은 이전 상태가 완료되기까지 대기하고 매크로블록 양자화기 상태에 대해 현재 할당된 시간값을 페치한다. 단계 1212에서, 상태 머신은 이 매크로블록에 대한 양자화기 축적 코드가 얻어졌는지를 결정하기 위해 불 상태 변수(Boolean state variable) Q SCALE를 테스트한다. 만약 그렇지 않다면, 단계 1214에서, 매크로블록 양자화기 처리는 매크로블록에 대한 양자화기 축적 코드로서 비트 스트림으로부터 다음 값을 페치하고 단계 1216에서 불 변수 GOT Q SCALE을 설정한다. 다음에, 단계 1218에서, 매크로블록 양자화기 처리는 순방향 움직임 벡터가 이 매크로블록에 대해 얻어졌는지를 결정하기 위해 불 변수 GOT FORWARD를 테스트한다. 만일 아니라면, 단계 1220에서, 불 변수 GOT FORWARD가 설정되고, 상태 머신에 대한 다음 상태가 벡터 상태(328)에 설정된다. 그러나, 만일 단계 1218에서, 변수 GOT FORWARD가 설정되었다면 불 변수 GOT BACKWARD를 테스트하기 위해 제어는 단계 제어 1222로 이동한다. 역방향 움직임 벡터가 매크로블록에 대해 얻어졌다면 불 변수가 설정된다. 만일 그들이 얻어지지 않았다면, 제어는 단계 1224로 이동하여, 불 변수 GOT BACKWARD가 설정되고 상태 머신의 다음 상태는 벡터 상태(328)로 설정된다. 단계 1222에서 불 변수 GOT BACKWARD가 설정되었다면, 마커 비트가 매크로블록 헤더에 존재하는지를 결정하기 위해 단계 1226이 실행된다. 만일 그렇다면, 비트 스트림으로부터 마커 비트를 버리기 위해 단계 1228이 실행되고 제어는 단계 1230으로 이동된다. 매크로블록 헤더가 마커 비트를 포함하지 않으면 단계 1226후에 실행되는 단계 1230에서, 매크로블록 양자화기 상태는 매크로블록이 코드된 블록 패턴을 포함하는지를 결정한다. 만약 그렇다면, 상태 머신에 대한 다음 천이는 코드된 블록 상태(330)로 된다. 그렇지 않으면, 매크로블록의 블록은 (도 1에 도시된) 매크로블록 프로세서(132)로 가기 위해 준비되고, 상태 머신에 대한 다음 상태는 대기 상태(332)이다.
도 13 및 도 14는 벡터 상태(328)에서의 상태 머신의 동작을 설명하는 흐름도이다. 단계 310에서, 상태 머신은 이전 상태가 완료하기까지 대기하고 분석 레이트 테이블(216)로부터 벡터 상태에 할당된 현재 시간을 페치한다. 도 12를 참조하여 상기한 바와 같이, 벡터 상태는 순방향 움직임 벡터나 역방향 움직임 벡터중 어느 하나를 페치하기 위해 실시된다. MPEG 표준하에서, 매크로블록은 단일 순방향 움직임 벡터를 갖는 예측 매크로블록, 순방향 움직임 벡터 및 역방향 움직임 벡터를 갖는 양방향 예측 매크로블록, 또는 2개의 순방향 움직임 벡터와 각 필드를 위한 하나와 2개의 역방향 움직임 벡터를 갖는 듀얼 프라임 매크로블록으로서 설계될 수 있다.
벡터 처리의 단계 1312에서, 매크로블록 헤더는 매크로블록이 1세트의 움직임 벡터들이나 2세트의 움직임 벡터들을 갖는지를 결정하기 위해 테스트된다. 매크로블록이 2세트의 움직임 벡터들을 가지면, 제어는 단계 1314로 이동하여, 매크로블록 헤더로부터 제1 움직임 벡터에 대한 움직임 수직 필드 선택값을 페치하고 단계 1320로 제어를 이동한다. 단계 1320은 2-벡터 세트의 제1 움직임 벡터에 대한 매크로블록 헤더로부터 실제의 움직임 벡터 정보를 페치하기 위해 GET VECT 처리를 실시한다. 이 단계는 도 14를 참조하여 이하 상세히 설명한다. 단계 1320후에, 제2 움직임 벡터에 대한 움직임 수직 필드 선택값을 페치하고 세이브하는 단계 1322가 실행된다. 단계 1322후에, GET VECT 처리는 비트 스트림으로부터 움직임 벡터 세트의 제2 움직임 벡터에 대한 움직임 벡터값을 추출하기 위해 단계 1324에서 다시 실시된다. 만일 단계 1312에서 처리가 매크로블록이 단일 움직임를 포함한다고 결정하면, 제어는 단계 1316으로 이동하여, 단일 움직임 벡터가 움직임 수직 필드 선택값을 포함하는지를 결정한다. 만일 그렇다면, 단계 1318에서, 이 정보는 움직임 벡터 헤더로부터 검색되고 제어는 실제의 벡터 정보를 페치하기 위해 단계 1324로 이동한다. 단계 1324후에, 상태 머신에 대한 다음 상태는 매크로블록 양자화기 상태(326)이다. 이 상태는 다른 움직임 벡터가 매크로블록에 대해 얻어질 필요가 없다는 것을 보증하기 위해 벡터 상태(328)후에 다시 들어간다. 양방향 인코드된 영상의 듀얼 프라임 매크로블록에 조차도, 매크로블록 양자화기 상태를 통과하는 단지 2개가 소정의 매크로블록에 대해 필요하게 된다.
도 14는 도 13의 단계 1320과 1324에 도시된 GET VECT 처리의 동작을 설명하는 흐름도이다. 이 처리의 제1 단계인 단계 1412는 매크로블록내의 움직임 벡터 정보로부터 수평 움직임 코드를 페치한다. 단계 1414에서, 잔여 정보가 이 움직임 벡터에 대해 존재하는지를 결정하기 위해 움직임 벡터 정보의 다음 비트가 비트 스트림으로부터 페치된다. 만일 존재하면, 단계 1416에서, 잔여 정보는 비트 스트림으로부터 검색되고 세이브된다. 단계 1418과 단계 1420에서, 비트 스트림내의 다음 정보는 움직임 베터가 듀얼 프라임 움직임 벡터인지를 결정하기 위해 테스트된다. 단계 1422, 1424, 1426, 1428, 1430은 이들 단계가 수직 움직임 벡터 정보를 페치하는 것을 제외하고 설명된 처리를 반복한다. 단계 1432는 GET VECT처리의 끝이다. 이 단계 후에, 처리는 GET VECT의 실시를 즉시 뒤따르는 벡터 상태(328)에서의 포인트로 되돌아 간다.
도 15는 상태 머신의 코드된 블록 상태(330)에 의해 실행된 처리를 설명하는 흐름도이다. 단계 1510에서, 코드된 블록 처리는 이전 상태가 완료하기까지 대기하고 분석 레이트 룩업 테이블(216)로부터 코드된 블록 상태에 대해 현재 할당된 시간값을 페치한다. 단계 1512에서, 처리는 매크로블록 헤더로부터 코드된 블록 정보를 페치한다. 일단 코드된 블록 정보가 단계 1512에서 페치되었으면, 매크로블록의블록들은 매크로블록 프로세서(132)에 통과될 준비를 하고, 따라서, 대기 상태(332)는 상태 머신에 의해 시작될 다음 상태이다.
도 16은 대기 상태(332)의 동작을 설명하는 흐름도이다. 단계 1610에서, 상태 머신은 이전 상태가 완료하기까지 대기하고, 분석 레이트 룩업 테이블(216)로부터 현재 할당된 시간이나 대기 상태를 페치한다. 단계 1612에서, 대기 처리는 다른 매크로블록을 받아들이기 위해 디코더(132)가 준비되어 있다는 것을 매크로블록 디코더(132)에 의해 제공된 READY 신호가 나타내는지를 결정한다. 준비되어 있지 않은 동안, 단계 1612는 매크로블록 디코더(132)에 의해 제공된 이 신호를 연속으로 테스트하기 위해 그자체에 분기한다.
일단 매크로블록 디코더가 디코딩을 위한 매크로블록들을 받아들일 준비가 되어 있다는 것을 나타내면, 제어는 단계 1614로 이동하여, 매크로블록이 스킵된 매크로블록인지를 결정한다. 상기한 바와 같이, 매크로블록은 2가지 경우에서, 즉 1) 때 매크로블록이 MPEG-2 신택스와 2로 스킵되는 것으로서 마크될 때와, 2) 매크로블록 디코더가 에러와 마주쳐서 슬라이스 기록 내의 잔여 매크로블록들을 스킵하기 위해 파저(212)에 신호를 보낼 때에, 스킵될 수 있다. 만일 단계 614에서, 매크로블록 스킵 플래그가 설정되면, 상기 기구에 대한 다음 상태는 스킵 상태(334)이다. 그렇지 않으면, 상태 머신에 대한 다음 상태는 블록 상태(336)이다.
도 17은 블록 상태(336)의 동작을 설명하는 흐름도이다. 단계 1710에서, 처리는 방금 처리된 블록이 현재 매크로블록내의 최종 블록이었는지를 결정한다. 만일 그렇다면, 상태 머신에 대한 다음 상태는 종료 상태(338)로 설정된다. 그렇지 않으면, 매크로블록 디코더(132)가 READY 신호를 주장하였는지를 결정하기 위해 단계 1712가 실행된다. 매크로블록 디코더(132)는 역 양자화 및 역 이산 코사인 변환 처리를 위한 블록을 수신하기 위해 준비될 때 READY 신호를 제공한다. 그후, 블록을 수신할 준비를 하고, 매크로블록 디코더(132)에 제어를 이동하는 단계 1714가 실행된다. 단계 1714에서의 블록 처리후에, 제어는 이하 설명하는 바와 같은 단계 1710으로 이동한다. 이 처리는 매크로블록내의 모든 블록들이 처리될 때까지 계속된다.
도 18은 스킵 상태(334)의 동작을 설명하는 흐름도이다. 스킵 상태는 스킵된 블록을 처리하는 단계 1814를 제외하고 블록 상태와 근본적으로 동일하다. 이 단계는 1) MPEG-2 신택스에서 스킵된 매크로블록으로서 매크로블록이 표시되었다면 무의미하거나, 2) 블록이 매크로블록 디코더내의 에러 때문에 스킵되었다면 비트 스트림으로부터 스킵될 블록에 대응하는 바이트들을 제거한다. 이는 매크로블록내의 모든 블록들이 처리될 때까지 계속된다. 최종 블록이 처리된 후, 단계 1810은 대기 상태(332)로 제어를 이동한다.
도 19는 종료 상태(338)에 대한 상태 머신의 동작을 설명하는 흐름도이다. 단계 1910에서, 이전 상태가 완료하기까지 대기하고 분석 레이트 룩업 테이블(216)로부터 종료 상태에 대해 할당된 현재 시간을 페치한다. 단계 1912에서, 상태 머신은 현재 슬라이스에 대한 처리가 완료되는지를 결정한다. 만일 완료되었으면, 제어는 단계 1914로 이동하여 디코더가 다른 슬라이스를 처리하기 위해 준비할 때까지 대기한다. 단계 1914 후에, 제어는 탐색0 상태(310)로 이동하여 도 4를 참조하여상술한 바와 같은 다음 슬라이스 기록의 시작 코드에 대한 탐색을 시작한다.
만일 단계 1912에서 이 슬라이스에 처리될 더 많은 매크로블록들이 있다면, 비트 스트림내의 다음 바이트들이 시작 코드에 대응하는지를 결정하기 위해 단계 1916이 실행된다. 만일 그렇지 않으면, 슬라이스내에 적어도 하나 이상의 매크로블록이 있고 상태 머신내의 다음 상태는 도 10을 참조하여 상술한 바와 같이 매크로블록 어드레스 상태(322)에 설정된다. 만일 단계 1916에서 비트 스트림내의 최종 매크로블록이 시작 코드에 대응하면, 슬라이스내의 최종 매크로블록이 처리되고 탐색0 상태(310)는 상태 머신에 대한 다음 상태로서 설정된다.
도 20, 21, 22는 주 발명의 상태 머신의 응용예를 설명한다. 이들 도면 각각은 매크로블록을 디코딩하는데 사용되는 상태의 시퀀스를 도시한다. 도 20은 그 슬라이스내의 최종 매크로블록인 프레임 내 또는 필드 내 코드된 매크로블록의 예시적인 분석을 도시한다. 종료 상태(338)에서 시작하면서, 상태 머신은 탐색0 상태(310)으로 천이하고, 그후 탐색1 상태(312)로 천이하고, 그후 시작 코드 상태(316)로 천이된다. 그 처리에 있어서 이 점에서, 상태 머신은 비트 스트림내의 시작 코드와 마주친다. 또한 상태 316에서, 상태 머신의 다음 상태가 슬라이스 상태(318)가 되게하는 슬라이스 시작 코드로 시작 코드가 결정되고 여기서 슬라이스 헤더 정보는 디코딩된다.
상태 338, 310, 312, 316, 318의 각각은 상대적으로 적은 처리량을 필요로 한다. 따라서, 이들 상태의 각각은 하나의 상태 주기 시간에 완료될 수 있다. 그러나, 처리의 다음 상태인, 매크로블록 어드레스 상태(322)는 도 20에 도시된 어떤 이전 상태보다 더 많은 처리 시간을 필요로 한다. 분석 레이트 룩업 테이블(216)에서, 이 상태는 어떤 이전 상태의 상태 처리 시간의 두배가 할당된다. 이는 도면에서 굵은 테두리의 상태(322)로 표시된다. 매크로블록 어드레스 상태(322)에 이어, 상태 머신은 매크로블록 유형 상태(324), 매크로블록 양자화기 상태(326)로 천이되고, 그 후 내부 코드된 매크로블록의 블록들을 받아들이기 위해 매크로블록 디코더(132)에 대해 대기하기 위해 대기 상태(332)로 천이된다.
도 21은 슬라이스내의 최초 매크로블록이 아닌 예측 인코드된 매크로블록(P 프레임 또는 P 필드)을 디코딩하는데 있어서의 상태 머신의 동작을 도시한다. 도 21은 도 20에 도시된 바와 같이, 매크로블록 어드레스 상태(332)를 뒤따르는 종료 상태(338)에서 시작하고, 이 종료 상태는 하나의 상태 시간을 허용하며 매크로블록 어드레스 상태(332)는 2개의 상태 시간을 허용한다. 상태(322) 후에, 상태 머신은 매크로블록 유형(324) 및 매크로블록 양자화기 상태(326)로 천이된다. 상태(326) 후에, 상태 머신은 벡터 상태(328)로 천이된다. 벡터 상태에서의 처리도 다른 상태에서 보다 더 광범위하므로, 2개의 상태 처리 시간이 벡터 상태(328)에 할당된다. 도 12 및 도 13을 참조하여 상술한 바와 같이, 벡터 상태를 처리한 후에, 다른 움직임 벡터가 얻어질 필요가 없음을 보증하기 위해 상태 머신은 매크로블록 양자화기 상태로 되돌아 온다. 이것이 예측 인코드된 매크로블록이므로, 비트 스트림은 단지 하나의 움직임 벡터만을 포함한다. 매크로블록 양자화기 상태(326) 후에, 상태 머신은 코드된 블록 상태(330)로 천이되고, 그 후 대기 상태(332)로 천이된다.
도 22는 듀얼 프라임 매크로블록인 양방향 인코드된 매크로블록을 처리할 때의 상태 머신의 동작을 설명한다. 상술한 바와 같이, 이 매크로블록은 4세트의 움직임 벡터를 가진다. 도 22에 도시된 상태 머신의 최초의 5개 상태는 도 21에서와 동일하다. 그러나, 최초 움직임 벡터가 얻어진 후, 도 13을 참조하여 상술한 바와 같이 듀얼 프라임 매크로블록에 대한 제2 세트의 순방향 움직임 벡터를 얻기 위해 벡터 상태는 제2 시간 동안 실시된다. 벡터 상태의 제2 실시에 이어서, 상태 머신은 매크로블록 양자화기 상태(326)로 천이되고, 그 후 제1 순방향 움직임 벡터를 얻기 위해 벡터 상태(328)로 다시 천이된다. 이것이 듀얼 프라임 움직임 벡터(dual-prime motion vector)이므로 벡터 상태는 제2 역방향 움직임 벡터를 얻기 위해 다시 실시된다. 벡터 상태의 제2 실시에 이어서, 매크로블록 양자화기 상태(326)는 다시 실시되로 대기 상태(332)가 이어진다.
복수의 클록 사이클, 즉 n이 도 3에 도시된 상태 머신에 대한 각 상태 시간에 할당되면, 도 20의 내부 코드된 매크로블록에 대한 신택스 처리는 10개 상태 시간에 걸쳐 있으며, 도 22에 도시된 양방향 인코드된 매크로블록에 대한 처리는 16 상태 시간에 걸쳐 있다.
본 발명이 MPEG-2 디코더용 매크로블록 신택스 프로세서에 의해 설명되었지만, 다른 프로세서에 의해 처리되는 정보를 추출하기 위해 입력 신호를 처리하는 임의의 상태 머신에 의해 실행될 수 있다는 것이 고려된다. 이 방법으로 프리-프로세서가 각종 다른 처리 하드웨어와 호환될 수 있다.
본 발명이 예시적인 실시예에 의해 설명되었지만, 첨부된 청구항들의 범위내에서 상기 약술한 바와 같이 실시될 수 있다는 것이 고려된다.
종래의 가변장 디코더에서, 비트 스트림내의 모든 매크로블록들의 신택스 철이에 할당된 시간은 최악의 경우의 처리(즉, 도 22에 도시된 것)에 따를 필요가 있을 것이다. 그러나, 각종 상태에 대한 처리 시간을 적응적으로 할당함으로써, 본 발명에 따른 디코더는 슬라이스 및 매크로블록의 신택스 처리에 있어서 중요한 시간 절약을 성취할 수 있다. 이 시간 절약은 더 느린 신택스 프로세서가 상대적으로 빠른 매크로블록 디코더와 함께 동작하도록 할 수 있다. 또한, 상태 지연이 증가될 수 있기 때문에, 다른 막대한 신택스 프로세서는 그 상태 지연을 단순히 증가시킴으로써 느려지게 되어 더 느린 매크로블록 디코더와 호환성있게 될 수 있다. 따라서, 가변 레이트 파저(212) 및 매크로블록 디코더(132)의 소정의 집적 회로(IC)의 구현은 스케일 업(scale up) 또는 스케일 다운(scale down)될 수 있으며 결과적인 IC에서의 임의의 타이밍 변동들은 파저(212)의 상태 타이밍을 조정함으로써 보상될 수 있다.

Claims (14)

  1. 미리 정해진 프로토콜에 따라 디지털 인코드된 신호(digitally encoded signal)를 처리하는 장치로서, 상기 프로토콜은 복수의 기록 유형들(multiple record types)을 규정하고, 각 기록 유형은 헤더 정보(head information)와 페이로드 데이터(payload data)를 포함하는, 상기 처리 장치에 있어서,
    상기 복수의 기록 유형들중 적어도 선택된 하나에서 상기 헤더 정보를 분석하는 상태 머신으로서, 상기 상태 머신은 이산 분석 동작들(discrete parsing operations)을 실행하는 상태들을 규정하며, 상태들간의 천이들(transitions)은 상기 디지털 인코드된 신호를 분석함으로써 결정되는, 상기 상태 머신;
    제1 상태 및 제2 상태에 대한 각각의 상태 시간들을 포함하는 복수의 상기 상태 유형들에 대한 각각의 처리 시간들을 규정하는 수단;
    상기 제1 상태에 의해 표시된 처리 단계들을 실행하는 처리 수단; 및
    상기 제1 상태에 대한 상기 각각의 규정된 처리 시간이 경과되어 상기 제2 상태로 천이할 때까지 대기하는 지연 수단을 포함하는 디지털 인코드된 신호 처리 장치.
  2. 제 1 항에 있어서,
    상기 상태 유형들 각각에 대한 상기 각각의 처리 시간들을 적응적으로 지정하는 수단을 더 포함하며,
    각 상태에 대한 상기 처리 시간은 상기 기록들의 페이로드 데이터(payload data)에 응답해서 변화하는, 디지털 인코드된 신호 처리 장치.
  3. 제 1 항에 있어서,
    상기 상태 유형들 각각에 대한 각각의 처리 시간들을 적응적으로 지정하는 수단을 더 포함하고,
    각 상태에 대한 상기 처리 시간은 상기 상태 머신에 결합되는 다른 처리 구성요소들의 변화들에 응답해서 변화하는, 디지털 인코드된 신호 처리 장치.
  4. 슬라이스 레벨 기록들을 가지며, 각 슬라이스 레벨 기록은 헤더 정보와 복수의 매크로블록 레벨 기록들을 가지며, 각 매크로블록 레벨 기록은 헤더 정보와 주파수 도메인 계수값들(frequency-domain coefficient values)의 복수의 블록들을 가지는, MPEG-2 인코드된 신호를 처리하는 장치에 있어서,
    상기 장치는,
    상기 슬라이스 레벨 기록들 내의 상기 헤더 정보를 분석하는 제1 상태와, 상기 MPEG-2 인코드된 신호로부터 주파수 도메인 계수값들의 복수의 블록들을 추출하기 위해 상기 매크로블록 레벨 기록들 내의 상기 헤더 장보를 분석하는 제2 상태를 포함하는 상태 머신으로서, 상기 제1 및 제2 상태들에 대한 각각의 처리 시간들을 규정하는 수단;
    상기 제1 상태에 의해 표시된 처리 단계들을 실행하는 처리 수단;
    상기 제1 상태에 대한 상기 각각의 규정된 처리 시간이 경과되어 상기 제2 상태로 천이할 때까지 대기하는 지연 수단; 및
    상기 복수의 매크로블록들로부터 주파수 도메인 계수값들의 블록들을 추출하기 위해 상기 복수의 매크로블록들 내의 상기 헤더 정보에 대해 상기 제2 상태에 의해 표시된 처리 단계들을 실행하는 처리 수단을 포함하는, 상기 상태 머신과,
    주파수 도메인 계수값들의 상기 추출된 블록들을 공간 도메인 픽셀값들(spatial domain pixel values)로 변환시키는 매크로블록 디코딩 수단을 포함하는, MPEG-2 인코드된 신호 처리 장치.
  5. 제 4 항에 있어서,
    상기 복수의 매크로블록은 예측적으로 인코드된 매크로블록들(predictively encoded Macroblocks)과 양방향적으로 예측적으로 인코드된 매크로블록들(bidirectionally predictively encoded Macroblocks)을 포함하고, 상기 예측적으로 인코드된 매크로블록들의 상기 매크로블록 헤더들은 단일 움직임 벡터(single motion vector)를 포함하고, 상기 양방향적으로 예측적으로 인코드된 매크로블록들은 복수의 움직임 벡터들을 포함하고,
    상기 장치는,
    상기 제1 및 제2 상태들 각각에 대한 각각의 처리 시간들을 적응적으로 지정하는 수단을 더 포함하고,
    상기 제2 상태에 대한 처리 시간은 예측적으로 인코드된 매크로블록과 양방향적으로 예측적으로 인코드된 매크로블록의 처리에 응답해서 변화하는, MPEG-2 인코드된 신호 처리 장치.
  6. 제 5 항에 있어서,
    MPEG-2 데이터 신호의 단일 영상을 디코딩하는데 미리 정해진 양(amount)의 시간이 할당되고, 상기 제1 및 제2 상태들 각각에 대한 각각의 처리 시간들을 적응적으로 지정하는 수단은 상기 미리 정해진 양의 시간의 각각의 제1 및 제2 부분들을 상기 제1 및 제2 상태들에 대한 상기 각각의 처리 시간들로서 지정하는, MPEG-2 인코드된 신호 처리 장치.
  7. 제 4 항에 있어서,
    상기 상태 유형들의 각각에 대한 각각의 처리 시간들을 적응적으로 지정하는 수단을 더 포함하고,
    각 상태에 대한 상기 처리 시간은 상기 매크로블록 디코딩 수단에서의 변화들에 응답해서 변화하는, MPEG-2 인코드된 신호 처리 장치.
  8. 미리 정해진 프로토콜에 따라 디지털 인코드된 신호를 처리하는 방법으로서, 상기 프로토콜은 복수의 기록 유형들을 규정하고, 각 기록 유형은 헤더 정보와 페이로드 데이터를 포함하는, 상기 처리 방법은,
    상태 머신의 각각의 상태들에서 이산 분석 동작을 실행하고 상기 디지털 인코드된 신호가 분석될 때 상태들간을 천이함으로써, 상기 복수의 기록 유형들중 적어도 선택된 하나에서 상기 헤더 정보를 분석하는 단계;
    상기 상태들중 제1 상태 및 상기 상태들중 제2 상태에 대한 각각의 상태 시간들을 포함하는 상기 복수의 상태들에 대한 각각의 처리 시간들을 규정하는 단계;
    상기 제1 상태에 의해 표시된 처리 단계들을 실행하는 단계; 및
    상기 제1 상태에 대한 상기 각각의 규정된 처리 시간이 경과되어 상기 제2 상태로 천이할 때까지 대기하는 단계를 포함하는 디지털 인코드된 신호 처리 방법.
  9. 제 8 항에 있어서,
    상기 상태 유형들 각각에 대한 각각의 처리 시간들을 적응적으로 지정하는 단계를 더 포함하고,
    각 상태에 대한 상기 처리 시간은 상기 기록들의 상기 페이로드 데이터에 응답해서 변화하는, 디지털 인코드된 신호 처리 방법.
  10. 제 8 항에 있어서,
    상기 상태 유형들 각각에 대한 상기 각각의 처리 시간들을 적응적으로 지정하는 단계를 더 포함하며,
    각 상태에 대한 상기 처리 시간은 상기 상태 머신의 외부의 기록들에 대해서 실행되는 처리들 중의 변화에 응답해서 변화하는, 디지털 인코드된 신호 처리 방법.
  11. 슬라이스 레벨 기록들을 가지며, 각 슬라이스 레벨 기록은 헤더 정보와 복수의 매크로블록 레벨 기록들을 가지며, 각 매크로블록 레벨 기록은 헤더 정보와 주파수 도메인 계수값들의 복수의 블록들을 가지는, MPEG-2 인코드된 신호를 처리하는 방법에 있어서,
    상기 방법은,
    제1 상태에서 상기 슬라이스 기록들의 상기 헤더 정보를 분석하고, 상기 MPEG-2 인코드된 신호로부터 주파수-도메인 계수 값들의 복수의 블록들을 추출하기 위해 제2 상태에서 상기 매크로블록 기록들 내의 상기 헤더 정보를 분석하는 단계로서, 상기 제1 및 제2 상태들에 대한 각각의 처리 시간들을 규정하는 단계;
    상기 제1 상태에서 상기 슬라이스 헤더 정보를 처리하는 단계;
    상기 제1 상태에 대한 상기 각각의 규정된 처리 시간이 경과되어 상기 제2 상태로 천이할 때까지 대기하는 단계; 및
    상기 복수의 매크로블록들로부터 주파수 도메인 계수값들의 블록들을 추출하기 위해 상기 제2 상태에서 상기 매크로블록 헤더 정보를 처리하는 단계를 포함하는, 상기 분석 단계와,
    주파수 도메인 계수값들의 상기 추출된 블록들을 공간 도메인 픽셀값들(spatial domain pixel values)로 변환시키는 단계를 포함하는, MPEG-2 인코드된 신호 처리 방법.
  12. 제 11 항에 있어서,
    상기 복수의 매크로블록은 예측적으로 인코드된 매크로블록들(predictively encoded Macroblocks)과 양방향적으로 예측적으로 인코드된 매크로블록들(bidirectionally predictively encoded Macroblocks)을 포함하고, 상기 예측적으로 인코드된 매크로블록들의 상기 매크로블록 헤더들은 단일 움직임 벡터(single motion vector)를 포함하고, 상기 양방향적으로 예측적으로 인코드된 매크로블록들은 복수의 움직임 벡터들(multiple motion vectors)을 포함하며,
    상기 방법은, 상기 제1 및 제2 상태들 각각에 대한 각각의 처리 시간들을 적응적으로 지정하는 단계를 더 포함하고,
    상기 제2 상태에 대한 상기 처리 시간은 예측적으로 인코드된 매크로블록과 양방향적으로 예측적으로 인코드된 매크로블록의 처리에 응답해서 변화하는, MPEG-2 인코드된 신호 처리 방법.
  13. 제 12 항에 있어서,
    MPEG-2 데이터 신호의 단일 영상을 디코딩하는데 미리 정해진 양의 시간이 할당되고, 상기 제1 및 제2 상태들 각각에 대한 각각의 처리 시간들을 적응적으로 지정하는 단계는 상기 미리 정해진 양의 시간의 각각의 제1 및 제2 부분을 상기 제1 및 제2 상태들에 대한 각각의 처리 시간들로서 지정하는, MPEG-2 인코드된 신호 처리 방법.
  14. 제 11 항에 있어서,
    상태 유형들의 각각에 대한 각각의 처리 시간들을 적응적으로 지정하는 단계를 더 포함하고,
    각 상태에 대한 처리 시간은 상기 매크로블록 디코딩 수단에서의 변화에 따라 변화하는, MPEG-2 인코드된 신호 처리 방법.
KR10-1999-0043403A 1998-10-09 1999-10-08 가변 레이트 mpeg­2 비디오 신택스 프로세서 KR100375845B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/169,580 US6263019B1 (en) 1998-10-09 1998-10-09 Variable rate MPEG-2 video syntax processor
US9/169,580 1998-10-09
US09/169,580 1998-10-09

Publications (2)

Publication Number Publication Date
KR20000028931A KR20000028931A (ko) 2000-05-25
KR100375845B1 true KR100375845B1 (ko) 2003-03-15

Family

ID=22616304

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1999-0043403A KR100375845B1 (ko) 1998-10-09 1999-10-08 가변 레이트 mpeg­2 비디오 신택스 프로세서

Country Status (6)

Country Link
US (1) US6263019B1 (ko)
EP (1) EP0993202A3 (ko)
JP (1) JP3797830B2 (ko)
KR (1) KR100375845B1 (ko)
CN (1) CN1119757C (ko)
TW (1) TW443070B (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6573905B1 (en) 1999-11-09 2003-06-03 Broadcom Corporation Video and graphics system with parallel processing of graphics windows
US6853385B1 (en) * 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
US6661422B1 (en) * 1998-11-09 2003-12-09 Broadcom Corporation Video and graphics system with MPEG specific data transfer commands
US6570579B1 (en) 1998-11-09 2003-05-27 Broadcom Corporation Graphics display system
US6636222B1 (en) 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US7982740B2 (en) 1998-11-09 2011-07-19 Broadcom Corporation Low resolution graphics mode support using window descriptors
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US6798420B1 (en) 1998-11-09 2004-09-28 Broadcom Corporation Video and graphics system with a single-port RAM
US7446774B1 (en) * 1998-11-09 2008-11-04 Broadcom Corporation Video and graphics system with an integrated system bridge controller
US6453424B1 (en) * 1999-03-31 2002-09-17 International Business Machines Corporation System and method for temporally controlling instruction execution
US6538656B1 (en) 1999-11-09 2003-03-25 Broadcom Corporation Video and graphics system with a data transport processor
US9668011B2 (en) 2001-02-05 2017-05-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Single chip set-top box system
US8913667B2 (en) * 1999-11-09 2014-12-16 Broadcom Corporation Video decoding system having a programmable variable-length decoder
US20020059635A1 (en) * 2000-05-31 2002-05-16 Hoang Khoi N. Digital data-on-demand broadcast cable modem termination system
US20020059620A1 (en) * 2000-05-31 2002-05-16 Hoang Khoi Nhu Selective inactivation and copy-protection
US20020023267A1 (en) * 2000-05-31 2002-02-21 Hoang Khoi Nhu Universal digital broadcast system and methods
US6557030B1 (en) * 2000-05-31 2003-04-29 Prediwave Corp. Systems and methods for providing video-on-demand services for broadcasting systems
US20020049980A1 (en) * 2000-05-31 2002-04-25 Hoang Khoi Nhu Controlling data-on-demand client access
US20020138845A1 (en) * 2000-05-31 2002-09-26 Khoi Hoang Methods and systems for transmitting delayed access client generic data-on demand services
US20020175998A1 (en) * 2000-05-31 2002-11-28 Hoang Khoi Nhu Data-on-demand digital broadcast system utilizing prefetch data transmission
CN1203671C (zh) * 2000-05-31 2005-05-25 派威公司 为广播系统提供视频点播业务的方法
US20020066100A1 (en) * 2000-05-31 2002-05-30 Khoi Hoang Method for providing data services for a large number of small-sized data files
US20030084461A1 (en) * 2001-10-25 2003-05-01 Khoi Hoang Method and apparatus for transmitting non-VOD services
DE10129108A1 (de) * 2001-06-16 2003-01-02 Harman Becker Automotive Sys Verfahren und Schaltungsanordnung zur Datenübertragung
US20030051249A1 (en) * 2001-08-20 2003-03-13 Khoi Hoang System and method for data insertion (commercials) in client generic data-on-demand broadcast transmissions
US20030055915A1 (en) * 2001-09-14 2003-03-20 Ngo Kin Cuc Method and apparatus for transmitting data over a network
JP2003169327A (ja) * 2001-11-30 2003-06-13 Matsushita Electric Ind Co Ltd ソフトウェアでのmpeg−2ビデオ可変長復号化方法
US8284844B2 (en) 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
US7667710B2 (en) 2003-04-25 2010-02-23 Broadcom Corporation Graphics display system with line buffer control scheme
DE10331803A1 (de) * 2003-07-14 2005-02-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Umsetzen in eine transformierte Darstellung oder zum inversen Umsetzen der transformierten Darstellung
US8063916B2 (en) 2003-10-22 2011-11-22 Broadcom Corporation Graphics layer reduction for video composition
EP1536647A1 (en) * 2003-11-26 2005-06-01 STMicroelectronics Limited A video decoding device
JP4407472B2 (ja) * 2004-10-29 2010-02-03 ソニー株式会社 符号化及び復号装置並びに符号化及び復号方法
US20060288194A1 (en) * 2005-06-17 2006-12-21 Lewis Innovative Technologies Real-time processor
KR101232780B1 (ko) * 2006-01-12 2013-09-03 (주)휴맥스 통합 코덱 장치 및 방법
CN101159872B (zh) * 2007-11-22 2010-12-01 威盛电子股份有限公司 Mpeg-2压缩格式译码器及mpeg-2压缩格式译码方法
GB2482731B (en) * 2010-08-13 2016-12-21 Advanced Risc Mach Ltd A video decoding apparatus and method

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3177299D1 (de) 1980-04-11 1993-04-15 Ampex Bildverarbeitungssystem fuer raeumliche bildtransformation.
EP0076259B1 (en) 1981-04-10 1989-08-16 Ampex Corporation Controller for system for spatially transforming images
US4472732A (en) 1981-04-10 1984-09-18 Ampex Corporation System for spatially transforming images
CA2062200A1 (en) * 1991-03-15 1992-09-16 Stephen C. Purcell Decompression processor for video applications
TW241350B (ko) * 1991-11-07 1995-02-21 Rca Thomson Licensing Corp
GB2264417B (en) 1992-02-17 1995-12-06 Sony Broadcast & Communication Video standards conversion
US6047112A (en) * 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
EP0719478B1 (en) 1993-09-13 1998-07-22 Analog Devices, Inc. Digital to analog conversion using nonuniform sample rates
US5623311A (en) * 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
US5812791A (en) * 1995-05-10 1998-09-22 Cagent Technologies, Inc. Multiple sequence MPEG decoder
KR0153671B1 (ko) * 1995-06-30 1998-11-16 배순훈 고선명 텔레비젼 엔코더의 레이트 콘트롤러
KR0182026B1 (ko) * 1995-12-21 1999-05-01 김광호 엠펙 비디오 디코더용 구문 분석기
US5737019A (en) 1996-01-29 1998-04-07 Matsushita Electric Corporation Of America Method and apparatus for changing resolution by direct DCT mapping
US5812760A (en) * 1996-06-25 1998-09-22 Lsi Logic Corporation Programmable byte wise MPEG systems layer parser
US6256348B1 (en) * 1996-08-30 2001-07-03 Texas Instruments Incorporated Reduced memory MPEG video decoder circuits and methods

Also Published As

Publication number Publication date
TW443070B (en) 2001-06-23
KR20000028931A (ko) 2000-05-25
US6263019B1 (en) 2001-07-17
JP2000115773A (ja) 2000-04-21
CN1261701A (zh) 2000-08-02
EP0993202A2 (en) 2000-04-12
JP3797830B2 (ja) 2006-07-19
CN1119757C (zh) 2003-08-27
EP0993202A3 (en) 2001-09-12

Similar Documents

Publication Publication Date Title
KR100375845B1 (ko) 가변 레이트 mpeg­2 비디오 신택스 프로세서
KR100320476B1 (ko) 비디오 디코더 및 디코딩 방법
US6996174B2 (en) MPEG video decoder with integrated scaling and display functions
US5923375A (en) Memory reduction in the MPEG-2 main profile main level decoder
US5850258A (en) High level video decoding apparatus capable of decoding video data of a plurality of channels coded at a lower level
US6442206B1 (en) Anti-flicker logic for MPEG video decoder with integrated scaling and display functions
US20020054640A1 (en) Data structure for image transmission, image coding method, and image decoding method
US7292772B2 (en) Method and apparatus for decoding and recording medium for a coded video stream
WO2001052434A1 (en) Method and apparatus for decoding mpeg video signals using multiple data transfer units
TW450004B (en) Programmable filter for removing selected user data from an MPEG-2 bit-stream
GB2321154A (en) Reverse playback of MPEG video
US5867219A (en) Image processing device using high frequency component suppression
US5940016A (en) Syntax parser for a MPEG2 video decoder
US6720893B2 (en) Programmable output control of compressed data from encoder
JPH07222164A (ja) ディジタルビデオ・ビットストリームコーダ
US7421026B2 (en) Multiplexing video decoding apparatus and method
KR100249235B1 (ko) 에이치디티브이 비디오 디코더
US5666115A (en) Shifter stage for variable-length digital code decoder
US6128340A (en) Decoder system with 2.53 frame display buffer
JP4906197B2 (ja) 復号装置および方法、並びに記録媒体
JP4214554B2 (ja) 動画像復号化装置
JPH1093917A (ja) 画像処理装置
KR100425136B1 (ko) 비디오 디코딩 시스템
WO1998054908A1 (en) Two pass decoding of mpeg b pictures for memory storage reduction

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: 20080225

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee