KR100376607B1 - 통합 비디오 디코딩 시스템 및 그를 이용한 비디오 데이터의 인코딩 스트림 처리 방법과, 비디오 디코딩 시스템의 프레임 버퍼 할당 방법과, 기록 매체 - Google Patents

통합 비디오 디코딩 시스템 및 그를 이용한 비디오 데이터의 인코딩 스트림 처리 방법과, 비디오 디코딩 시스템의 프레임 버퍼 할당 방법과, 기록 매체 Download PDF

Info

Publication number
KR100376607B1
KR100376607B1 KR10-2000-0001631A KR20000001631A KR100376607B1 KR 100376607 B1 KR100376607 B1 KR 100376607B1 KR 20000001631 A KR20000001631 A KR 20000001631A KR 100376607 B1 KR100376607 B1 KR 100376607B1
Authority
KR
South Korea
Prior art keywords
video
decoding
video data
stream
reduced
Prior art date
Application number
KR10-2000-0001631A
Other languages
English (en)
Other versions
KR20000071244A (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 KR20000071244A publication Critical patent/KR20000071244A/ko
Application granted granted Critical
Publication of KR100376607B1 publication Critical patent/KR100376607B1/ko

Links

Classifications

    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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
    • H04N19/423Methods 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 characterised by memory arrangements
    • 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
    • H04N19/423Methods 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 characterised by memory arrangements
    • H04N19/426Methods 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 characterised by memory arrangements using memory downsizing methods
    • H04N19/428Recompression, e.g. by spatial or temporal decimation
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명은 디지털 비디오 디코더 시스템, 제조 방법 및 장치에 관한 것으로서, 프레임 버퍼 저장부(frame buffer storage)를 위한 외부 메모리를 감소시키는 동시에 최대 크기 또는 사전결정된 감축된 크기로 비디오를 표시(presentation)하는 통합 축소 기능(integrated scaling capabilities)을 구비하고 있다. 시스템이 축소 비디오 모드(scaled video mode)일 때, 통합 시스템은 기존의 데시메이션 유닛(decimation unit)을 이용하여 비디오 데이터의 디코딩 스트림(decoded stream)을 축소한다. 디스플레이 모드 스위치 로직은 정규 비디오 모드와 축소 비디오 모드 사이의 스위칭(switching)을 감독하는데, 비디오 데이터의 디코딩 스트림의 디스플레이에 있어서 감지가능한 화질 열화 없이 스위칭이 일어난다. 축소된 디코딩 스트림은 디지털 비디오 디코딩 시스템이 정규 비디오 모드인지 축소 비디오 모드인지에 따라 구획(partition)되는 프레임 버퍼에 저장된다. 축소 비디오 모드에서, 프레임 버퍼는 축소 I, P, B 프레임은 물론 최대 크기 I, P 프레임 모두를 수용한다. 축소 I, P, B 프레임은 디스플레이를 위해 인출되는 반면, 최대 크기 I, P 프레임은 장래의 디코딩 동작을 지원하는 데 사용된다.

Description

통합 비디오 디코딩 시스템 및 그를 이용한 비디오 데이터의 인코딩 스트림 처리 방법과, 비디오 디코딩 시스템의 프레임 버퍼 할당 방법과, 기록 매체{MPEG VIDEO DECODER WITH INTEGRATED SCALING AND DISPLAY FUNCTIONS}
본 출원은 본 출원의 양수인에게 양도된 아래의 미국 특허 출원의 주제와 관련된 주제를 포함하고 있다. 본 명세서에서 각각 참조로서 인용되는 출원은 아래 리스트와 같다.
디 흐루세키(D. Hrusecky)에 의해 공동 출원된 "Anti-Flicker Logic For MPEG Video Decoder With Integrated Scaling and Display Function"이라는 명칭의 미국 특허 출원 제 호 (대리인 관리 번호 EN998143),
체니(Cheney) 등에 의한 "Multi-Format Reduced Memory MPEG-2 Compliant Decoder"라는 명칭의 미국 특허 출원 제 08/958,632 호,
체니 등에 의한 "Multi-Format Reduced Memory MPEG-2 Compliant Decoder"라는 명칭의 계류 중인 미국 특허 출원 제 08/958,632 호의 CIP(continuation-in-part) 출원인 디 흐루세키에 의한 "Multi-Format Reduced Memory Video Decoder With Adjustable Polyphase Expansion filter"라는 명칭의 미국 특허 출원 제 09/015,463 호,
체니 등에 의한 "Multi-Format Reduced Memory MPEG-2 Compliant Decoder"라는 명칭의 계류 중인 미국 특허 출원 제 08/958,632 호의 CIP(continuation-in-part) 출원인 체니 등에 의한 "Multi-Format Reduced Memory MPEG Decoder With Hybrid Memory Address Generation"라는 명칭의 미국 특허 출원 제 09/014,896 호,
뷰어클(Buerkle) 등에 의한 "Compression/Decompression Engine For Enhanced Memory Storage In MPEG Decoder"라는 명칭의 미국 특허 출원 제 08/971,438 호.
본 발명은 일반적으로 디지털 비디오 신호 처리에 관한 것으로서, 보다 구체적으로는, 프레임 버퍼 저장부(frame buffer storage)를 위한 외부 메모리를 감소시키는 동시에 사전결정된 축소율에 의해 비디오 표시를 선택적으로 축소하는 통합디코딩 시스템, 제조 방법 및 장치에 관한 것이다.
MPEG-2 표준은 무손실 압축이 뒤따르는 주관적 손실 압축(a subjective lossy compression)에 의해 대역폭을 실질적으로 감소시키는 부호화 방법을 설명하고 있다. 인코딩되고 압축된 디지털 데이터는 후속적으로 MPEG-2 형 디코더에서 압축해제되고 디코딩된다. MPEG-2 표준에 따른 비디오 디코딩은 공통 양도된 "Video Decoder"라는 명칭의 미국 특허 제 5,576,765 호에서 상세히 설명되며, 본 명세서에서 참조로서 인용한다.
전형적으로 비디오 디코더는 일반적 혹은 특별 용도의 프로세서와 메모리로서 구현된다. 통상적인 MPEG-2 디코더에 있어서는, 전형적으로 2 개의 디코딩된 기준 프레임이 동시에 메모리에 저장되어 있다. 따라서, 메모리의 비용이 종종 디코딩 시스템의 비용을 좌우할 수 있다. 예컨대, MPEG-2 비디오 디코더는 2 MB 또는 그 이상의 외부 메모리를 채용할 수 있는데, 이는 일반적으로 DRAM(Dynamic Random Access Memory)를 포함한다. 외부 메모리는 다양한 데이터 영역, 즉 프레임 버퍼와 같은 버퍼를 위해 사용된다.
실제로, MPEG-2 비디오 디코더는 최종 제품의 비용을 최소화하기 위해 전형적으로 2 MB의 외부 메모리에 제한된다. 디코더는 이 한계 내에서 자신의 모든 기능을 수행해야 한다. 예를 들어, 576 비디오 스캐닝 라인(video scan lines)의 PAL 표준을 사용하는 유럽 시장과 480 비디오 스캐닝 라인의 NTSC 표준을 사용하는 미국 시장 모두를 위한 출력을 가능하게 하는 것이 특히 중요하다. 2 MB의 외부 메모리라는 제한이 없다고 하더라도, 나머지 메모리를 온 스크린 그래픽스(on-screen graphics)와 같은 다른 내장형 특성(built-in features)에 사용하기 위해 가능한 한 적은 메모리로 비디오 디코딩과 디스플레이를 수행하는 것이 유리하다.
MPEG-2 압축해제 비디오 데이터 버퍼는, 프레임 버퍼라고도 지칭하는데, 이들이 외부 DRAM의 가장 많은 부분을 소비하므로 메모리 감축/압축을 위한 주된 후보가 된다. 프레임 버퍼는 최종 화소 디스플레이 및 MPEG-기준 데이터를 포함하고 있으므로, 감축 기법 역시 고성능 비디오를 염두에 둬야 한다.
MPEG 비디오 디코더 시장이 점점 더 경쟁적으로 되어감에 따라, 시장에서 성공하기 위해서는 최저 가능 가격으로 고수준의 특성 통합을 할 필요가 있다. 과거에는 비디오 디코더 기능의 외부 회로를 필요로 했던 이러한 특성 중의 하나는 비디오 축소(video scaling)이다. 원하는 종류의 축소는 수평 및 수직 축으로 2 또는 4와 같은 비율로 디스플레이 픽쳐의 크기를 감축하는 것이다.
전술한 바를 고려하고, 상업적 이익을 달성하기 위해서는, 고화질의 축소 영상을 발생시키는 데 필요한 처리에 기존의 디코더 하드웨어를 이용할 수 있도록, 비디오 축소 특성을 비디오 디코더 내에서 구현하는 신규한 디자인이 필요하다. 본 발명의 중요한 측면은 이러한 필요성을 해소한다.
간단히 말해서, 본 발명의 한 특징에 의하면, 본 발명은 비디오 데이터의 인코딩된 스트림을 디코딩하는 비디오 디코더와 비디오 디코더에 접속되는 데시메이션 유닛을 포함하는 비디오 디코딩 시스템을 포함한다. 비디오 디코더는 비디오데이터의 디코딩 스트림(a decoded stream)을 발생시키고, 데시메이션 유닛은 비디오 데이터의 디코딩 스트림을 디스플레이를 위해 축소하는 데 채택된다. 축소는 비디오 데이터의 디코딩 스트림을 프레임 버퍼에 저장하기 이전에 비디오 디코딩 시스템 내에서 발생한다.
본 발명의 다른 특징에 의하면, 본 발명은 비디오 디코더와 비디오 축소기(a video scalar)를 포함하는 디지털 비디오 디코딩 시스템을 포함한다. 비디오 디코더는 비디오 데이터의 인코딩 스트림(an encoded stream)을 디코딩하여 이로부터 비디오 데이터의 디코딩 스트림을 발생시킨다. 비디오 축소기는 비디오 디코더에 접속되어 비디오 데이터의 디코딩 스트림을 프레임 버퍼에 저장하기 이전에 이를 축소한다. 비디오 디코딩 시스템은 정규 비디오 모드와 축소 비디오 모드를 포함하고 있다. 디지털 비디오 디코딩 시스템이 축소 비디오 모드일 때, 비디오 축소기는 비디오 데이터의 디코딩 스트림을 축소한다. 디지털 비디오 디코딩 시스템은 정규 비디오 모드와 축소 비디오 모드 사이에서 스위칭(switching)하는 디스플레이 모드 스위치 로직을 더 포함하는데, 비디오 데이터의 디코딩 스트림의 디스플레이에 있어서 감지가능한 화질 열화 없이 스위칭이 일어난다.
본 발명의 또 다른 특징에 의하면, 정규 비디오 모드와 축소 비디오 모드를 갖는 디지털 비디오 디코딩 시스템이 제공된다. 정규 비디오 모드에서는, 디지털 비디오 디코딩 시스템에 접속된 비디오 디스플레이 상으로 최대 크기 프레임이 디스플레이를 위해 출력되고, 축소 비디오 모드에서는, 분할 크기(a fractional size)의 최대 크기 프레임을 포함하는 축소 프레임이 비디오 디스플레이 상에 출력된다. 프레임 버퍼는 디코딩 후 디스플레이 전에 최대 크기 프레임과 축소 프레임을 일시적으로 저장하기 위해 제공되는데, 디코딩 시간과 디스플레이 시간 사이에는 사전정의된 지연(latency)이 존재한다. 디코딩 시간과 디스플레이 시간 사이의 사전정의된 지연은 디지털 비디오 디코딩 시스템이 정규 비디오 모드인 제 1 지연과 디지털 비디오 디코딩 시스템이 축소 비디오 모드인 제 2 지연을 포함한다.
본 발명의 또 다른 측면에 의하면, 비디오 축소 기능을 갖는 디지털 비디오 디코딩 시스템을 위한 프레임 버퍼가 제공된다. 프레임 버퍼는 비디오 데이터의 디코딩 스트림의 I, P, B 프레임을 수신하는 다수의 정의된 메모리 영역을 포함한다. 다수의 정의된 메모리 영역은 비디오 데이터의 디코딩 스트림의 최대 크기 I, P 프레임을 수신하는 제 1 및 제 2 영역과, 최대 크기의 I, P 프레임을 수신하는 제 1 및 제 2 영역과 함께 비디오 데이터의 디코딩 스트림의 축소 I, P, B 프레임을 수신하는 적어도 하나의 제 2 영역을 포함한다.
본 발명의 또 다른 특징에 의하면, 본 발명은 비디오 축소 기능을 갖는 디지털 비디오 디코딩 시스템을 위한 프레임 버퍼를 포함한다. 프레임 버퍼는 디지털 비디오 디코딩 시스템과 연관된 메모리를 포함한다. 메모리는 사전정의된 크기를 갖는다. 프레임 버퍼는 디지털 비디오 디코딩 시스템이 정규 비디오 모드일 때 사전정의된 크기의 메모리를 3 개의 버퍼 영역으로 구획하는 제어 로직을 더 포함하는데, 3 개의 버퍼 영역은 비디오 데이터의 디코딩 스트림의 최대 크기의 I, P, B 프레임을 수신한다. 제어 로직은 디지털 비디오 디코딩 시스템이 축소 비디오 모드일 때 메모리를 5 개의 버퍼 영역으로 구획하는 데에도 이용된다. 5 개의 버퍼영역은 비디오 데이터의 디코딩 스트림의 최대 크기 I, P 프레임을 수신하는 제 1 및 제 2 영역과, 비디오 데이터의 디코딩 스트림의 축소 I, P, B 프레임을 수신하는 제 3, 제 4, 제 5 영역을 적어도 포함한다. 전술한 시스템과 프레임 버퍼에 해당하는 제조 방법 및 장치도 본 명세서에서 설명되고 청구된다.
다시 말해서, 본 명세서는 통합 축소 기능을 제시하는 디지털 비디오 디코딩 시스템, 제조 방법 및 장치를 개시한다. 디코더는 축소 모드일 때 외부 메모리에 대한 전반적인 대역폭을 감축하도록 구성된다. 이를테면, 디스플레이 픽쳐는 수평 및 수직 축으로 2 및/또는 4의 비율로 감축될 수 있다. 유리하게도, 본 명세서에서 개시한 비디오 디코딩 시스템을 위한 통합 축소 기능은 기존의 디코더 하드웨어를 이용하여 고화질의 축소 영상을 발생시킨다.
디코딩 시, 데시메이션/축소를 수행함으로써, 총 메모리 대역폭 요구량이 감소하여 보다 많은 메모리 대역폭을 온 스크린 그래픽스와 같은 다른 특성에 이용할 수 있게 한다. 따라서, 본 발명에 따라 구현된 축소는 이전의 처리 방식에 의해 요구되었던 것보다 적은 외부 메모리(즉, 프레임 버퍼 메모리)를 요구하는데, 즉, 디스플레이 축소기(a display scaler)는 4 개의 최대 크기 프레임 버퍼를 필요로 한다. 또한, 본 발명에 의하면, 비축소 모드와 축소 모드 사이의 스위칭은 디스플레이 아티팩트(display artifacts)를 발생시키지 않는다. 본 발명에 의한 축소는 레터박스 포맷(letterbox format)은 물론 최대 프레임 포맷인 B 프레임 메모리 감축을 이용하여 채용될 수도 있다.
도 1은 한 쌍의 예시적인 픽쳐 그룹(groups of pictures : GOPs)을 도시하는 도면,
도 2는 예시적인 픽쳐의 매크로블럭(MB) 분할(subdivision)(4 : 2 : 0 포맷)을 도시하는 도면,
도 3은 비디오 디코더의 블럭도,
도 4는 본 발명의 원리를 채택하는 비디오 디코딩 시스템의 블럭도,
도 5는 본 발명의 원리에 따른 비디오 디코딩 시스템의 상세한 실시예,
도 6은 본 발명에 따른 정규 모드와 비디오 축소 모드의 프레임 버퍼 분할을 나타내는 도면,
도 7a는 본 발명의 원리에 따라 비디오 축소 모드에서 지연된 디스플레이 타이밍을 도시하는 타이밍도,
도 7b는 본 발명에 따른 도 6의 소 프레임 버퍼(small frame buffers)(2, 4, 6)의 예시적인 스위칭,
도 8은 도 5의 비디오 디코딩 시스템을 위한 본 발명의 원리에 따른 데시메이션 유닛의 일 실시예의 블럭도,
도 9는 도 5의 비디오 디코딩 시스템을 위한 본 발명의 원리에 따른 디스플레이 모드 스위치 로직의 일 실시예의 블럭도,
도 10은 본 발명의 원리에 따라 도 9의 동기 발생기(sync generator)에 의해 구현되는 처리의 일 실시예의 흐름도.
도면의 주요 부분에 대한 부호의 설명
40 : 디코딩 시스템 42 : 메모리 버스
44 : 버스 인터페이스 46 : DMA 제어기
48 : 비디오 FIFO 50 : OSD/오디오 FIFO
52 : 메모리 제어기 53 : DRAM
54 : 비디오 디코더 58 : 디스플레이 및 OSD 인터페이스
60 : 오디오 인터페이스
본 발명의 전술한 목적, 장점 특징 및 기타 목적, 장점 특징은 첨부하는 도면과 함께 후속하는 본 발명의 바람직한 실시예의 상세한 설명을 참조하면 보다 용이하게 이해할 수 있을 것이다.
본 발명이 MPEG-2 디코더와 함께 적용될 수 있으므로, 본 발명의 이해를 촉진하기 위해 MPEG-2 압축 알고리즘의 몇몇 관련 특징을 먼저 살펴보겠다. 그러나, 본 발명은 MPEG-2 알고리즘의 일부 특성을 공유하는 다른 비디오 코딩 알고리즘에도 적용될 수 있다는 점에 유의해야 한다.
우선, 문자의 페이지, 영상, 음성의 세그먼트, 또는 비디오 시퀀스와 같은 데이터 객체의 압축은 1) 그 객체를 토큰(tokens)의 집합으로 분할, 2) 이들 토큰을 어떤 의미에서 최소 길이를 갖는 이진 문자열로 표시, 3) 문자열을 잘 정의된 순서로 연쇄하는 것을 포함하는 일련의 단계로 간주될 수 있다는 사실을 이해할 것이다. 단계 2와 단계 3은 무손실, 즉, 반대 과정에서 원래 데이터를 충실하게 회복할 수 있는데, 단계 2는 엔트로피 코딩(entropy coding)으로 알려져 있다. 단계 1은 전반적으로 무손실일 수도 있고 손실일 수도 있다. 대부분의 비디오 압축 알고리즘은 엄격한 비트레이트 조건 때문에 손실을 갖는다. 성공적인 손실 압축 알고리즘은 중복되고(redundant) 무관한 정보를 제거하여, 인간 관찰자가 매우 민감한 시퀀스의 특징을 주의깊게 나타내거나 시각적으로 의미있는 것이 아닌 경우에는 비교적 큰 오차를 허용한다. 단계 1을 위해 MPEG-2 알고리즘에서 채용된 기법은 예측(predictive)/보간(interpolative) 움직임 보상 하이브리드 DCT/DPCM 코딩으로서 설명할 수 있다. 가변 길이 코딩으로도 알려진 허프만 코딩(Huffman coding)은 단계 2에서 사용된다.
MPEG-2 비디오 표준은 ISO-IEC JTC1/SC29/WG11, Generic Coding of Moving Pictures and Associated Audio Information : Video, International Standards, 1994에서 진술한 바와 같이 전송을 위한 비디오의 코딩된 표현을 특정한다. 이 알고리즘은 비월주사(interlaced) 또는 비 비월주사(non-interlaced) 요소 비디오 상에서 동작하도록 설계되었다. 각각의 픽쳐는 3 개의 구성요소, 즉, 루미넌스(luminance)(Y), 적색차(red color difference : Cr), 청색차(blue color difference : Cb)를 포함하고 있다. 비디오 데이터는 4 : 4 : 4 포맷으로 코딩될 수 있는데, 이 경우에는 각각의 Y 샘플에 대해 하나의 Cr과 하나의 Cb 샘플이 존재하고, 4 : 2 : 2 포맷의 경우에는 수평 방향으로 루미넌스 샘플의 반만큼의 Cr 및 Cb 샘플이 존재하며, 4 : 2 : 0 포맷의 경우에는 수평 및 수직 방향으로 루미넌스의 반만큼의 Cr 및 Cb 샘플이 존재한다.
MPEG-2 데이터 스트림은 시스템 정보 및 기타 가능한 비트 스트림과 함께 층상(layered)으로 간주될 수 있는 시스템 데이터 스트림으로 묶이는 비디오 스트림과 오디오 스트림으로 이루어져 있다. MPEG-2 데이터 스트림의 비디오 층에는 압축 데이터가 더 층을 이루고 있다. 이 층의 구조를 설명하는 것은 본 발명을 이해하는 데 있어 도움이 될 것이다. MPEG-2 비디오 층상 구조체의 이들 층을 도 1과 도 2에 도시하고 있다. 이 층들은 압축 비디오 스트림의 결함은 물론 압축 알고리즘의 동작과 관련된다. 최상층은 비디오 시퀀스 층으로서, 전체 시퀀스를 위한 제어 정보와 파라미터를 포함하고 있다. 다음 층에서, 시퀀스는 픽쳐 그룹(Group of Pictures : GOP)으로 알려진 연속적인 픽쳐 세트로 분할된다. 이 층의 전반적인 설명을 도 1에 도시하고 있다. 디코딩은 이전 GOP와는 본질적으로 무관하게, 임의의 GOP의 시작에서 개시될 수 있다. GOP 내에 존재하는 픽쳐의 수에는 제한이 없고, 모든 GOP 내에 동일한 수의 픽쳐가 존재할 필요도 없다.
제 3 층, 즉, 픽쳐 층은 단일 픽쳐이다. 이 층의 전반적인 설명을 도 2에 도시하고 있다. 각 픽쳐의 루미넌스 요소는 16 × 16 영역으로 분할되고, 색차 요소는 16 × 16 루미넌스 영역과 공간적으로 함께 위치하는 적당한 크기의 블럭으로 분할되는데, 4 : 4 : 4 비디오에 있어서 색차 요소는 16 × 16이고, 4 : 2 : 2 비디오에 있어서 색차 요소는 8 × 16이며, 4 : 2 : 0 비디오에 있어서 색차 요소는 8 × 8이다. 이들을 함께 취하면, 이들 함께 위치하는 루미넌스 영역과 색차 영역은 "매크로블럭(macroblock : MB)"이라고도 알려진 제 5 층을 이룬다. 픽쳐 내의 매크로블럭은 매크로블럭 1에서 시작하여 사전 순서로 연속적으로 번호가 매겨진다.
픽쳐 층과 MB 층 사이에는 제 4 층, 즉, "슬라이스(slice)" 층이 존재한다. 각 슬라이스는 몇 개의 연속적인 MB로 이루어져 있다. 마지막으로, 각 MB는 4 개의 8 × 8 루미넌스 블럭과, 8, 4, 또는 2(4 : 4 : 4, 4 : 2 : 2, 4 : 2 : 0 비디오에 대해) 개의 크로미넌스(chrominance) 블럭으로 이루어져 있다. 시퀀스, GOP, 픽쳐, 슬라이스 층은 모두 이들과 연관된 헤더(header)를 구비한다. 헤더는 바이트 할당 개시 코드(byte-aligned Start Codes)로 시작되고 대응하는 층에 포함되는데이터와 관련된 정보를 포함하고 있다.
픽쳐는 필드 구조 또는 프레임 구조일 수 있다. 프레임 구조 픽쳐는 전체 프레임을 재구성하기 위한 정보, 즉 홀수 행을 포함하는 한 필드와 짝수 행을 포함하는 다른 필드의 결합을 포함하고 있다. 필드 구조 픽쳐는 하나의 필드를 재구성하기 위한 정보를 포함하고 있다. (픽쳐 원소 또는 화소 내의) 각 루미넌스 프레임의 폭을 C(columns), 높이를 R(rows)로 나타내면, 필드 구조 픽쳐는 C × R / 2개의 화소에 대한 정보를 포함하는 것이다.
한 프레임 내의 두 필드는 상위 필드(top field)와 하위 필드(bottom field)이다. 프레임 내의 행이 1로부터 시작한다고 하면, 상위 필드는 홀수 행(1, 3, 5, . . .) 하위 필드는 짝수 행(2, 4, 6, . . .)을 포함한다. 따라서, 상위 필드는 홀수 필드, 하위 필드는 짝수 필드라고도 부른다.
필드 구조 픽쳐 내의 매크로블럭은 단일 필드로부터의 16 × 16 화소 세그먼트를 포함한다. 프레임 구조 픽쳐 내의 매크로블럭은 두 필드가 구성하는 프레임으로부터의 16 × 16 화소 세그먼트를 포함하는데, 각 매크로블럭은 두 필드 각각으로부터의 16 × 8 영역을 포함한다.
GOP 내에는 세 가지 유형의 픽쳐가 나타날 수 있다. 픽쳐 유형 사이의 구별되는 차이는 사용된 압축 방법이다. 제 1 형, 인트라모드 픽쳐 또는 I 픽쳐는 다른 픽쳐와는 독립적으로 압축된다. I 픽쳐 사이의 거리에 관해 고정된 상한은 존재하지 않지만, 이들은 시퀀스 내에서 자주 등장하여 임의 접근(random access) 및 기타 특정 모드의 동작을 촉진한다. 예측 움직임 보상 픽쳐(P 픽쳐)는 그 픽쳐 및이전에 디스플레이된 I 또는 P 픽쳐로부터 재구성된 2 개의 필드의 압축 데이터로부터 재구성된다. 양방향 움직임 보상 픽쳐(B 픽쳐)는 그 픽쳐와 이전에 디스플레이된 I 또는 P 픽쳐로부터 재구성된 2 개의 필드, 장래에 디스플레이될 I 또는 P 픽쳐로부터 재구성된 2 개의 필드의 압축 데이터로부터 재구성된다. 재구성된 I 또는 P 픽쳐가 다른 픽쳐를 재구성하는 데 사용될 수 있으므로, 이들을 기준 픽쳐라 부른다.
MPEG-2 표준을 이용하면, 한 프레임은 하나의 프레임 구조 픽쳐 또는 2 개의 필드 구조 픽쳐로 코딩될 수 있다. 프레임이 2 개의 필드 구조 픽쳐로 코딩되면, 두 필드 모두 I 픽쳐로 코딩될 수도 있고, 처음 필드는 I 픽쳐로 다음 필드는 P 픽쳐로 코딩될 수도 있으며, 두 필드 모두 P 픽쳐로 코딩될 수도 있고, 두 필드 모드 B 픽쳐로 코딩될 수도 있다.
한 프레임이 하나의 프레임 구조 I 픽쳐로 코딩되거나, 2 개의 필드 구조 I 픽쳐로 코딩되거나, 하나의 필드 구조 P 픽쳐가 뒤따르는 하나의 필드 구조 I 픽쳐로 코딩되면, 이 프레임을 I 프레임이라 하고, 이는 이전 프레임으로부터의 픽쳐 데이터를 사용하지 않고도 재구성될 수 있다. 하나의 프레임이 하나의 프레임 구조 P 픽쳐로 코딩되거나, 2 개의 필드 구조 P 픽쳐로 코딩되면, 이 프레임을 P 프레임이라 하고, 이는 현재 프레임과 이전에 코딩된 I 또는 P 프레임 내의 정보로부터 재구성될 수 있다. 하나의 프레임이 하나의 프레임 구조 B 픽쳐로 코딩되거나, 2 개의 필드 구조 B 픽쳐로 코딩되면, 이 프레임을 B 프레임이라 하고, 이는 현재 프레임과 이전에 코딩된 I 또는 P 프레임(즉, 이 B 프레임 이전과 이후에 나타낼 I또는 P 프레임)의 정보로부터 재구성될 수 있다.
공통 압축 기법은 변환 코딩(transform coding)이다. MPEG-2 및 몇몇 다른 압축 표준에서는, 변환 코딩으로서 이산 코사인 변환(discrete cosine transform : DCT)을 선택한다. I 픽쳐의 압축은 1) 화소 블럭의 DCT를 취하고, 2) DCT 계수를 양자화하고, 3) 그 결과를 허프만 코딩하는 단계에 의해 달성된다. MPEG-2에서, DCT 동작은 n × n 화소 블럭을 n × n 개의 변환 계수 세트로 변환한다. 몇몇 국제 압축 표준과 마찬가지로, MPEG-2 알고리즘은 8 × 8 크기의 DCT 블럭을 사용한다. 자신에 의한 DCT 변환은 무손실 동작으로서, 이를 수행하는 계산 장치 및 알고리즘의 정밀도(precision) 내에서 반전(invert)될 수 있다.
제 2 단계인 DCT 계수의 양자화는 MPEG-2 알고리즘이 손실이 되는 주된 원인이다. m, n이 0 내지 7 범위일 때 DCT 계수의 2 차원 어레이의 원소를 Cmn으로 나타내면, 내림 또는 반올림 정정은 별문제로 하고, Wnm을 가중치라 하고 QP를 양자화 파라미터라 할 때, 각 DCT 계수 Cmn을 Wmn과 QP의 곱으로 나눔으로써 양자화가 달성된다. 가중치 Wmn는 시각적으로 덜 중요한 계수에는 보다 거친 양자화(coarser quantization)를 허용한다. 양자화 파라미터 QP는 MPEG-2에서 화질과 비트레이트를 취사선택(trade off)하는 주된 수단이다. QP가 픽쳐 내의 MB마다 다를 수 있다는 점에 유의하는 것이 중요하다.
양자화에 이어서, 허프만 코드 세트를 이용하여 각 MB에 대한 DCT 계수 정보가 구성되고 코딩된다. 이 단계의 세부 사항은 본 발명을 이해함에 있어 필수적이지 않고, 본 기술분야에서 전반적으로 이해되어 있으므로, 본 명세서에서는 더 이상 설명하지 않는다.
대부분의 비디오 시퀀스는 연속하는 픽쳐 사이에서 고도의 상관(correlation)을 나타낸다. 픽쳐를 코딩하기 이전에 이러한 중복성을 제거하는 데 유용한 한 방법이 "움직임 보상(motion compensation)"이다. MPEG-2는 움직임 보상의 몇몇 방법을 위한 도구를 제공한다.
움직임 보상 방법은 다음을 공통으로 포함한다. 각 매크로블럭에 대해, 하나 이상의 움직임 벡터가 비트 스트림 내에서 인코딩된다. 이들 움직임 벡터는 디코더가 예측 매크로블럭(predicitive macroblock)이라 불리는 매크로블럭을 재구성하도록 한다. 인코더는 인코딩될 매크로블럭으로부터 "예측" 매크로블럭을 감산하여 "차분" 매크로블럭을 형성한다. 인코더는 인트라 매크로블럭을 압축하는 데 사용되는 도구와 본질적으로 유사한 도구를 사용하여 차분 매크로블럭을 압축한다.
픽쳐의 유형은 사용될 수 있는 움직임 보상 방법을 결정한다. 인코더는 이들 방법 중에서 픽쳐 내의 각 매크로블럭을 위한 방법을 선택한다. 움직임 보상이 사용되지 않으면, 매크로블럭은 인트라(I)이다. 인코더는 어떠한 매크로블럭도 인트라로 만들 수 있다. P 또는 B 픽쳐에 있어서, 예측 매크로블럭은 이전 I 또는 P 프레임 내의 데이터로부터 형성된다. B 픽쳐에 있어서, 역방향(backward : B) 움직임 보상도 사용될 수 있는데, 이 경우, 예측 매크로블럭은 장래의 I 또는 P 프레임 내의 데이터로부터 형성된다. B 픽쳐에 있어서, 정방향/역방향(forward/backward : FB) 움직임 보상이 사용될 수도 있는데, 이 경우, 예측 매크로블럭은 이전 I 또는 P 프레임 및 장래 I 또는 P 프레임 내의 데이터로부터 형성된다.
I 및 P 픽쳐가 다른 픽쳐(B 및 P 픽쳐)를 재구성하기 위한 기준으로 사용되므로, 이들을 기준 픽쳐라 부른다. B 프레임을 재구성하기 위해서는 2 개의 기준 프레임이 필요하므로, MPEG-디코더는 전형적으로 메모리에 2 개의 디코딩된 기준 프레임을 저장하고 있다.
각 MB를 코딩하는 데 사용된 MB 모드 및 그 모드와 연관된 임의의 움직임 벡터와 관련되는 부수적인 정보를 코딩할 필요성은 별 문제로 하더라도, 움직임 보상된 매크로블럭을 코딩하는 것은 인트라모드 MB를 코딩하는 것과 상당히 유사하다. 양자화에 있어서 약간의 차이가 있기는 하지만, Wmn과 QP의 곱에 의한 나누기 모델은 여전히 유효하다.
MPEG-2 알고리즘은 고정된 비트레이트 전송 매체와 함께 사용될 수 있다. 그러나, 서로 다른 유형의 픽쳐 처리와 코딩되고 있는 장면(scene)의 공간적/시간적 복잡성의 시간에 따른 고유한 변화로 인해, 각 픽쳐 내의 비트 수는 정확하게 일정하지 않을 것이다. MPEG-2 알고리즘은 버퍼 기반 레이트 제어 방안을 사용하여 비트레이트 내에서 허용된 변화에 대해 의미있는 한계를 가한다. 비디오 버퍼 식별자(a Video Buffer Verifier : VBV)는 가상 버퍼 형태로 고안되었는데, 그 역할은 전반적인 비트레이트가 목표 할당과 동일하고, 그 목표로부터의 단기 편차(short-term deviation)가 제한되도록 각 픽쳐를 코딩하는 데 사용되는 비트 수를 제한하는 것이다. 이러한 레이트 제어 방안은 다음과 같이 설명할 수 있다. 가정적 디코더(a hypothetical decoder)가 뒤따르는 버퍼로 이루어진 시스템을 가정해 보자. 이 버퍼는 일정한 비트레이트로, 저장 매체로부터의 비트 스트림 내의 압축 데이터로 채워져 있다. 버퍼 크기와 비트레이트 양자는 압축 비트 스트림 내에서 전송되는 파라미터이다. 역시 비트 스트림 내의 정보로부터 유도되는 초기 지연 이후, 가정적 디코더는 제 1 픽쳐와 연관된 모든 데이터를 버퍼로부터 동시에 제거한다. 그런 다음, 시퀀스의 픽쳐 레이트와 동일한 간격에, 디코더는 버퍼 내의 최초 픽쳐와 연관된 모든 데이터를 제거한다.
도 3은 통상적인 비디오 디코더를 도시하고 있다. 압축 데이터는 신호(11)로서 입력되고, 압축 데이터 메모리(12)에 저장된다. 가변 길이 디코더(VLD)(14)는 압축 데이터를 신호(13)로서 판독하고 움직임 보상 정보를 신호(16)로서 움직임 보상(MC) 유닛(17)으로, 양자화 계수를 신호(15)로서 역양자화(IQ) 유닛(18)으로 전달한다. 움직임 보상 유닛은 기준 프레임 메모리(20)로부터 기준 데이터를 신호(19)로서 판독하여 예측 매크로블럭을 형성하는데, 이는 신호(22)로서 가산기(25)로 전달된다. 역양자화 유닛은 비양자화 계수(unquantized coefficients)를 계산하는데, 이는 신호(21)로서 역변환(IDCT) 유닛(23)으로 전달된다. 역변환 유닛은 재구성된 차분 매크로블럭을 비양자화 계수의 역변환으로서 계산한다. 재구성된 차분 매크로블럭은 신호(24)로서 가산기(25)로 전달되어, 예측 매크로블럭에 가산된다. 가산기(25)는 재구성된 매크로블럭을 재구성된 차분 매크로블럭과 예측 매크로블럭의 합으로서 계산한다. 이어서, 재구성된 매크로블럭은 신호(26)로서 역다중화기(27)로 전달되는데, 역다중화기(27)는 매크로블럭이 기준 픽쳐로부터 온 것이면 재구성된 매크로블럭을 신호(29)로서 기준 메모리에 저장하거나 이를 신호(28)로서 (메모리 또는 디스플레이로) 내보낸다. 기준 프레임은 신호(30)로서 기준 프레임 메모리로부터 전달된다.
디코딩된 비디오 데이터를 압축된 형태로 저장함으로써 디코딩 시스템의 메모리 요구량을 감축하기 위한 다양한 기법이 제안되어 왔다. 이러한 기법 중 하나가 앞에서 인용한 "Multi-Format Reduced Memory MPEG-2 Compliant Decoder"라는 명칭의 미국 특허 출원 제 08/958,632 호에 설명되어 있다. 이 공동 계류 중인 출원은 MPEG-2 디코더를 위한 프레임 버퍼 저장에 있어 메모리 요구량을 감축시키는 방법 및 예를 들어, 4 : 3 형태의 텔레비전 비율로부터 16 : 9의 영화 포맷으로 비디오 출력을 편집 또는 수정하는 것과 관련된다. 이 기법의 중요한 특징은 비디오 디코더의 하드웨어 내에서 B 코딩 픽쳐를 데시메이션하는 것이다. 이 기법은 먼저 P 코딩, B 코딩 픽쳐를 움직임 보상하고, 디코딩 단계 중에 B 코딩 픽쳐를 데시메이션하고, I 코딩 및 P 코딩 픽쳐에 대한 스캐닝 라인(scan line) 크기를 증가시켜 디스플레이 단계 중에 이들의 수평 데시메이션을 가능하게 하는 것을 포함한다.
본 발명을 채용하는 디코딩 시스템이 전반적으로 부호(40)로 표시되어 도 4에 도시되어 있다. 시스템(40)은 디코딩 시스템(40)을 메모리 버스(42)에 접속시키는 버스 인터페이스(44)를 포함하고 있다. MPEG 코딩된 비디오 데이터는 비디오 FIFO(First-In/First-Out) 버퍼(48)에 데이터를 기록하는 DMA 제어기(46)에 의해 PCI 버스(42)로부터 인출된다. 또한, DMA 제어기는 OSD/오디오 FIFO(50)에 기록하기 위해 버스(42)로부터 온 스크린 디스플레이 및/또는 오디오 데이터를 인출한다. 메모리 제어기(52)는 비디오 데이터를 DRAM(Dynamic Random Access Memory)(53) 내에 있는 정정 메모리 버퍼 내에 위치시킬 것이다. 이어서, MPEG 압축 비디오 데이터가 비디오 디코더에 의해 DRAM(53)으로부터 인출되고, 도 3과 함께 전술한 바와 같이 디코딩된다. 통상적으로, 디코딩된 비디오 데이터는 전술한 바와 같이 후속적인 사용을 위해 DRAM(53)의 프레임 버퍼에 다시 저장된다. 기준 프레임이 필요하거나 비디오 데이터가 디코딩 시스템으로부터 출력될 때, DRAM(53)에 저장된 데이터는 메모리 제어기에 의해 인출되어 디스플레이 및 OSD 인터페이스(58)를 경유하여 출력을 위해 전달된다. 역시 메모리 제어기(52)에 의해 인출된 오디오 데이터는 오디오 인터페이스(60)를 통해 출력된다.
처음에 논의한 바와 같이, 본 발명은 사전결정된 축소율에 의해 MPEG-2 비디오 표시의 크기를 축소시킬 수 있는 통합 축소 기능을 갖는 디코딩 시스템에 대한 필요성을 해소한다. 동시에, 본 발명은 이를테면, 전술한 B 프레임 메모리 감축 기법을 이용하여 최대 프레임 버퍼 저장을 위한 외부 메모리 요구량을 바람직하게 감소시킨다. MPEG-2 비디오 디코더 시장이 점점 더 경쟁적으로 되어감에 따라, 최저 가능한 가격으로 고수준의 특성 통합을 할 필요성은 시장에서 성공함에 있어 중요하다. 본 발명은 축소 모드를 제공하여 수평 및 수직 방향으로 2 및/또는 4와 같이 사전정의된 비율로 디스플레이 픽쳐의 크기를 감축시킴으로써 이를 달성한다.
도 5는 본 발명의 원리에 따른 비디오 디코딩 시스템의 일 실시예를 도시하고 있다. 이 비디오 디코딩 시스템은 외부 메모리(53)를 포함하고 있는데, 이는 이 실시예에서 SDRAM 프레임 버퍼 저장부를 포함하는 것으로 도시되어 있다. 메모리(53)는 메모리 제어 유닛(52)과 인터페이스된다. 메모리 제어 유닛(52)은 비디오 디코더(54)로부터 디코딩된 비디오 데이터를 수신하여, 디스플레이를 위해 비디오 디스플레이 유닛(90)을 통해 비디오 데이터를 제공한다. 본 발명의 원리에 의하면, 도 5의 비디오 디코딩 시스템은 비디오 축소 모드 기능을 구현하는 많은 특성을 포함하고 있다.
예를 들어, 데시메이션 유닛(82)은 정규 비디오 데시메이션 모드와 비디오 축소 모드 양자를 포함하도록 수정되었다. 프레임 버퍼(53)는 전체 프레임 포맷 또는 전체 프레임 포맷과 축소 비디오 포맷의 결합으로 디코딩된 비디오 데이터의 저장을 수용하도록 수정되었다. 디스플레이 모드 스위치로직(96)이 비디오 디스플레이 유닛(90) 내에 제공되어 정규 비디오 모드와 축소 비디오 모드 사이의 이음새 없는(seamless) 스위칭을 촉진한다. 프레임 버퍼 포인터 제어기(86)는 정규 비디오 모드와 축소 비디오 모드에서 프레임 버퍼의 새로운 구획에 기초하여 정정 프레임 버퍼 포인터를 제공하도록 수정되었다. 또한, 전술한 인용 문헌인, 공동 출원된 미국 특허 출원에서 설명한 바와 같이, 플리커(a flicker) 감축 메커니즘이 비디오 디스플레이 유닛(90) 내, 특히 수직 업샘플 로직(vertical upsample logic)(94) 내에서 바람직하게 통합된다. 공동 출원된 출원에서 설명한 플리커 감축을 제외한 나머지 특성 각각은 아래에서 상세하게 설명된다.
기능적으로, MPEG 입력 비디오 소스는 코딩된 MPEG-2 비디오 데이터로서 메모리 제어 유닛(52)을 통해 비디오 디코더(54)의 입력으로 인가된다. 디코더(54)는 허프만 디코더(72), 역양자화기(74), 역DCT기(76), 움직임 보상기(78), 가산기(80)를 포함하고 있는데, 이들은 도 3의 비디오 디코더에서 설명한 바와 같은 기능을 한다. 내부 처리기(70)는 비디오 디코딩 과정을 감독하고, 본 발명의 원리에 따라 호스트가 예를 들어, 정규 비디오 디스플레이와 축소 비디오 디스플레이 사이에서 비디오 디스플레이를 스위칭하고자 할 때마다, 호스트 시스템으로부터 신호를 수신한다. 이 신호는 도 5에서 "호스트 제어 포맷 변경" 신호라 지칭한다. 호스트 포맷 변경에 응답하여, 제어 신호가 내부 처리기(70)로부터 허프만 디코더(72), 역양자화기(74), 움직임 보상기(78), 비디오 디스플레이(90) 내의 업샘플 로직부(94), 디스플레이 페치 유닛(display fetch unit)(92), 디스플레이 모드 스위치 로직부(96)로 전달된다. 다시, 이들 제어 신호는 본 발명의 원리에 따라, (그리고, 아래에서 설명할 바와 같이) 비디오 디코딩 시스템을 조정하여 예컨대, 정규 비디오 모드와 축소 비디오 모드 사이에서 디스플레이 출력을 스위칭하도록 한다.
디코딩된 비디오 데이터의 최대 크기 매크로블럭은 비디오 디코더(54)로부터 순차적으로 출력되어, 일 실시예에서는 최대 크기의 매크로블럭이 두 유형의 압축 중 한 유형에 따라 압축되는 데시메이션 유닛(82)으로 전달된다. 먼저, 최대 크기의 비디오가 필요하면, "Multi-Format Reduced Memory MPEG-2 Compliant Decoder"라는 명칭의 전술한 인용 문헌에서 설명한 바와 같이, B 코딩 픽쳐의 데시메이션을 계속 수행하는 것이 바람직하다. 이러한 정규 비디오 모드에서, 데시메이션은 결합된 값을 보간(interpolating)하거나 평균하여 보간 화소 값을 얻음으로써 데이터의 양을 감축하는 과정이다. 보간은 화소의 개수를 감축하므로, 전체 시스템에서 보다 적은 외부 메모리가 필요하다. 두 번째 모드에서, 데시메이션 유닛(82)은 본발명의 원리에 따라 픽쳐 축소를 수행한다. 예를 들어, 채택한 축소 유형은 수평 및 수직 축으로 2 또는 4의 비율로 디스플레이 픽쳐의 전체 크기를 감축할 수 있다.
디코딩된 최대 크기 매크로블럭의 스트림을 갖는 데시메이션 유닛(82)을 제공함과 동시에, 비디오 디코더는 라인(83) 상으로 "움직임 보상 유닛 블럭 완료" 신호를 전달하는데, 이로 인해 데시메이션 유닛(82)은 언제 매크로블럭의 디코딩이 완료되었는지를 알 수 있다. 마찬가지로, 데시메이션 유닛(82)은 라인(85) 상으로 "데시메이터 동작 중(decimator busy)" 신호를 비디오 디코더(54)의 움직임 보상 유닛(78)으로 제공한다. 이 "데시메이션 동작 중" 신호는 데시메이션 유닛이 동작 중인 때와, 데시메이션 유닛이 그 동작을 완료한 때를 움직임 보상 유닛에 통보하여, 그 이후에는 움직임 보상 유닛이 다음 매크로블럭을 처리하도록 한다.
비디오 디코더(54)의 움직임 보상 유닛(78)은 판독된 비디오 어드레스를 메모리 제어 유닛(52)에 직접 제공하고, 디코딩된 비디오 데이터(최대 크기) 및/또는 축소 매크로블럭을 외부 메모리(53)에 기록하기 위해 기록 비디오 어드레스를 데시메이션 유닛(82)에 제공한다. 판독 비디오 어드레스 및 기록 비디오 어드레스와 함께, 프레임 버퍼 포인터 제어기(86)에 의해 포인터가 메모리 제어 유닛으로 제공된다. 이들 포인터는 (아래에서 더 설명할 바와 같이) 본 발명에 적절한 프레임 버퍼 메모리 공간의 구획에 따라, SDRAM(53) 내에 있는 어떤 프레임 버퍼 영역이 주어진 판독 비디오 어드레스와 기록 비디오 어드레스에 의해 액세스될 지를 규정한다. 이들 포인터는 도 5에서 현재 포인터 및 현재 소 포인터(current smallpointer)로 지칭되고 있고, 현재 포인터는 최대 크기 매크로블럭을 위한 포인터를 포함하고 있으며, 현재 소 포인터는 축소 매크로블럭을 위한 포인터를 포함하고 있다.
데시메이션 유닛(82)은 디코딩된 최대 크기 매크로블럭을 수신하고, 내부적으로 정보를 저장하며, 축소 모드가 활성화되면 아래에서 설명할 바와 같이 축소를 수행한다. 정규 모드에서, 데시메이션 유닛(82)은 프레임 버퍼(53)에서의 저장을 위해 메모리 제어 유닛(52)으로 최대 크기 매크로블럭의 디코딩된 비디오 데이터를 출력한다. 축소 모드에서, 데시메이션 유닛(82)은 최대 크기 매크로블럭을 축소하고, 프레임 버퍼(53)에 저장하기 위해 축소된 매크로블럭을 메모리 제어 유닛(52)으로 출력한다.
(아래에서 설명할 바와 같이) 본 발명의 원리에 따라 프레임 버퍼 포인터 제어기(86)는 중요한데, 정규 비디오 모드와 비디오 축소 모드에서 프레임 버퍼의 회전, 즉, 프레임 버퍼 할당을 제어한다.
앞에서 인용한 출원에서 설명한 바와 같이, 데시메이션 유닛(82)은 디스플레이를 위해 데이터를 인출할 때 비디오 디스플레이 유닛(90)의 일부로서 동작한다. 특히, "Multi-Format Reduced Memory Video Decoder With Adjustable Polyphase Expansion Filter"라는 명칭의 전술한 인용 문헌인, 특허 출원에서 설명한 바와 같이, 최대 크기 스캐닝 라인을 포함하는 디코딩된 비디오 데이터가 프레임 버퍼 저장부(53)로부터 인출되고 픽쳐의 B 프레임 재확장(re-expansion)을 위해 데시메이션 유닛(82)을 통해 인가된다. 이는 픽쳐 그룹 내의 비디오에 대해 일관성이 유지되도록 수행되어, 임의의 픽쳐의 감소된 해상도도 감지되지 않도록 한다. 재확장 후, 최대 크기 스캐닝 라인이 디스플레이 출력 인터페이스(98)에 제공된다.
이와는 달리, 비디오 축소 모드에서는, 축소된 스캐닝 라인을 포함하는 디코딩된 비디오가 프레임 버퍼 저장부(53)로부터 인출되어 스캐닝 라인 비디오 버퍼(84)로 직접 인가된다. 스캐닝 라인은 루미넌스와 크로미넌스 사이에서 분할되고, 현재 스캐닝 라인과 이전 스캐닝 라인은 스캐닝 라인 비디오 버퍼(84)로부터 수직 및 수평 업샘플 로직부(94)로 인가된다. 업샘플 제어는 디스플레이 페치 유닛(92)으로부터 수신되는데, 이는 (앞에서 인용한 공동 출원된 특허 출원의 원리에 따라) 레터박스 포맷팅(letterbox formatting), SIF 업샘플링, 4 : 2 : 0 내지 4 : 2 : 2 업샘플링, 플리커 감축을 조정한다.
디스플레이 페치 유닛(92)은 프레임 버퍼 저장부(53)로부터 스캐닝 라인의 인출을 위해 판독된 비디오 어드레스를 제공한다. 디스플레이를 위한 "현재 포인터, 현재 소 포인터" 동기(sync) 신호가 비디오 디스플레이 유닛(90)의 디스플레이 모드 스위치 로직(96)으로부터 메모리 제어 유닛(52)에 의해 수신된다. 앞에서 유의한 바와 같이, 현재 포인터, 현재 소 포인터 신호는 스캐닝 라인이 인출되는 특정한 프레임 버퍼 영역을 지시하고, 판독된 비디오 어드레스 신호는 그 프레임 버퍼 영역 내에서 인출될 특정 스캐닝 라인을 지정한다.
디스플레이 모드 스위치 로직부(96)는 본 발명의 원리에 따라 예를 들어, 축소 비디오 모드와 정규 비디오 모드 사이의 이음새 없는 스위칭을 보장하기 위해 제공된다. 로직부(96)는 입력으로서 비디오 디코더(54)의 내부 처리기(70)로부터의 제어 신호와 함께, 비디오 디코더(54)의 (디스플레이 출력 인터페이스(98)로부터의 수직 공기(VSYNC) 신호 및 비디오 디코더(54)의 허프만 디코더(72)로부터의 B 픽쳐 "MPEG-2 반복 필드' 신호를 수신한다. VSYNC는 새로운 디스플레이 필드의 개시를 나타내는 외부 동기 신호이다. 디스플레이를 위한 현재 포인터, 현재 소 포인터와 함께 디스플레이 모드 스위치 로직부(96)로부터의 출력은 데시메이션 유닛(82)의 디코딩 로직으로 인가되는 "디코딩을 위한 디스플레이 포맷 동기" 신호 및 디스플레이 페치 유닛(92)으로 인가되는 "디스플레이를 위한 디스플레이 포맷 동기" 신호이다. 또한, 디스플레이 모드 스위치 로직부(96)는 본 발명에 따라 디스플레이 모드 사이에서 스위칭될 때 디스플레이로부터 노이즈를 유지하도록 하나의 디스플레이 프레임을 차단(block)하기 위해 채용되는 디스플레이 출력 인터페이스(98)로의 "비디오 차단" 신호를 출력한다. 비디오 데이터는 업샘플 로직부(94)로부터 디스플레이 출력 인터페이스에서 수신된다. 본 발명의 원리에 따라 구현된 데시메이션 유닛, 프레임 버퍼 구획기, 프레임 버퍼 포인터 제어기, 디스플레이 모드 스위치 로직부는 도 6 내지 도 10을 참조하여 아래에서 보다 상세히 설명된다.
우선, 프레임 버퍼를 설명한다. 프레임 버퍼는 후속 픽쳐의 예측은 물론 디스플레이를 위해 구성된 픽쳐를 저장하는 데 사용된다. B 픽쳐는 예측을 위해 사용되지 않으므로, 그 프레임 버퍼는 픽쳐가 디스플레이된 후 사용가능하다. I 또는 P 픽쳐에 있어서, 프레임 버퍼는 디스플레이 후, 특히 B 픽쳐를 예측하기 위해 유지될 필요가 있다.
도 6은 본 발명의 원리에 따른, 정규 비디오 모드와 축소 비디오 모드를 위한 프레임 버퍼 할당을 도시하고 있다. 정규 모드에는, 디코딩 및 디스플레이 과정을 지원하는 3 개의 프레임 버퍼가 있다. 프레임 버퍼 0과 프레임 버퍼 1은 I 및 P 픽쳐를 위해 할당되고, 프레임 버퍼 2는 B 픽쳐를 위해 할당된다. 프레임 버퍼는 버퍼 포인터, 즉, 도 5의 프레임 버퍼 포인터 제어기(86)로부터의 현재 포인터에 의해 지시된다.
축소 비디오 모드에서는, 적어도 5 개의 프레임 버퍼가 사용된다. 프레임 버퍼 0과 프레임 버퍼 1은 다시 최대 크기 I, P 픽쳐 비디오를 수용한다. 적어도 3 개의 다른 버퍼는, 프레임 버퍼 2, 프레임 버퍼 4, 프레임 버퍼 6이라 지칭하는데, 이들은 프레임 버퍼 포인터 제어기에 의해 생성된 소 포인터에 의해 지시된다. 이들 소 버퍼는 축소 비디오 모드에서 디스플레이를 위해 주로 사용된다. 버퍼는 비디오 축소에 맞추기 위해 크기가 작다. I 또는 P 픽쳐를 디코딩할 때, 구성된 픽쳐는 어느 것이 이용가능하냐에 따라 버퍼 0이나 버퍼 1에 저장된다. 동시에, 동일한 픽쳐의 축소된 버전(a scaled down version)이 보다 작은 버퍼, 즉, 프레임 버퍼 2, 프레임 버퍼 4, 또는 프레임 버퍼 6에 저장된다. 그런 다음, 최대 크기 비디오는 예측을 위해 사용되고, 작은 프레임 버퍼 내의 작은 크기의 비디오는 축소된 픽쳐를 디스플레이하는 데 사용된다.
프레임 버퍼는 비디오 디코딩 시스템의 초기화 동안 마이크로코드(microcode)에 의해 구성된다. 메모리 기반 어드레스가 각 프레임 버퍼에 할당되고, 이들 메모리 기반 어드레스는 프레임 버퍼 제어기에 의해 발생한 버퍼 포인터에 의해 선택된다. 판독 및 기록 비디오 어드레스는 선택된 프레임 버퍼 내의 특정 주소를 지칭한다. 특별히 표시하지 않으면, 아래에서부터 "프레임 버퍼"라는 용어는 초기화 동안 구성된 모든 프레임 버퍼 메모리를 포함하는 것으로 사용된다. "프레임 버퍼 영역"은 도 6에서 도시한 특정 프레임 버퍼 중 하나를 가리킨다.
비디오 디스플레이는 실시간으로 동작하므로, 프레임 버퍼 포인터는 VSYNC 타이밍에 따라 스위칭되어야 한다. 항상 디스플레이보다 디코딩이 먼저 일어나므로, 프레임 버퍼는 디코딩된 픽쳐를 저장하는 데 이용할 수 있도록 만들어져야 한다. 따라서, 프레임 버퍼 포인터는 디코딩이 개시되기 전에 스위칭되어야 한다. 디스플레이 프레임 버퍼에 대한 교란(disturbance)을 방지하기 위해, 디스플레이 버퍼 포인터의 복사본을 유지하여야 한다. 버퍼 스위칭 시간은 각 픽쳐 디코딩의 개시 시이다. 디스플레이 버퍼 포인터도 그 시간에 변경되지만, 픽쳐 디스플레이가 개시되는 복사본 디스플레이 포인터 시간까지는 사용되지 않을 것이다. 정규 모드 버퍼 포인터 회전의 일 실시예가 아래에 설명된다.
다음은 4 개의 버퍼 포인터를 가정하는데, 각 포인터는 3 개의 버퍼(버퍼 0, 1, 2) 중 어느 하나가 액세스되고 있는지를 나타내는 두 비트를 포함하고 있다.
· 현재 포인터 - 구성 픽쳐에 사용될 프레임 버퍼를 나타낸다.
· 디스플레이 포인터 - 디스플레이에 사용될 프레임 버퍼를 나타낸다.
· 장래 포인터 - 역방향 예측에 사용될 프레임 버퍼를 나타낸다.
· 과거 포인터 - 정방향 예측에 사용될 프레임 버퍼를 나타낸다.
시작 시에, 장래 포인터는 "1"로 초기화되어 있고, 다른 포인터는 "0"으로세팅되어 있다. I 또는 P 픽쳐 디코딩의 개시 시에, 과거 포인터로부터의 값이 현재 포인터로 로딩(load)되고, 장래 포인터로부터의 값이 디스플레이 포인터로 로딩된다. 장래 포인터와 과거 포인터 내의 값은 스와핑(swap)된다. 디코딩되는 픽쳐가 B 픽쳐이면, 현재 포인터와 디스플레이 포인터는 "2"로 세팅된다. 일 실시예에서는, 프레임 버퍼 2가 B 픽쳐를 위해 마련된다. 장래 포인터와 과거 포인터는 변경되지 않는다. 정규 모드에서의 포인터 스위칭은 본 명세서에서 전체로서 참조로 인용한 "Memory Management For An MPEG-2 Compliant Decoder"라는 명칭의 체니 등의 미국 특허 제 5,668,599 호에서 상세하게 설명하고 있다.
본 발명에 따라, 축소 비디오 모드에서 픽쳐의 디스플레이 시간은 추가 필드 시간에 의해 지연된다. 이러한 지연의 목적은 디코딩된 축소 비디오가 스크린 상의 임의 위치에 위치할 수 있도록 디코딩과 디스플레이 과정을 분리하는 것이다. 도 7a는 축소 비디오 모드에서의 지연된 디스플레이 시간의 일 실시예를 도시하고 있다. 이러한 디스플레이 시간은 모드에 따라, 즉, 정규 모드인지 축소 비디오 모드인지에 따라 동적으로 조절된다. 본 발명에 따라 버퍼를 적절히 관리하기 위해서는 1 필드 시간 지연이 필요하다. 비디오 축소 모드에서는 다시 적어도 5 개의 버퍼를 가정한다. 전술한 바와 같이, 이들 5 개의 버퍼 중 2 개는 최대 크기 프레임 버퍼를 포함하고 있고, 도 6의 프레임 버퍼0과 프레임 버퍼 1로 나타낸다. 이들 최대 크기 프레임 버퍼는 정규 비디오 모드에서 사용되는 대응하는 버퍼와 동일하다. 적어도 3 개의 소 프레임 버퍼, 즉, 프레임 버퍼 2, 프레임 버퍼 4, 프레임 버퍼 6이 정규 비디오 모드에서 프레임 버퍼2가 점유하는 것과 동일한 메모리 공간에 할당된다. 이들 3 개의 소 프레임 버퍼는 전술한 것과는 다른 알고리즘에 의해 제어된다.
구체적으로, 4 개의 추가 포인터가 축소 비디오 모드에서 사용된다. 이들 포인터는 다음과 같다.
· 소 현재 포인터 - 데시메이션된 구성 픽쳐를 위한 소 버퍼를 나타낸다.
· 소 디스플레이 포인터 - 디스플레이를 위한 소 버퍼를 나타낸다.
· 소 장래 포인터 - 장래 디스플레이를 위한 소 버퍼를 나타낸다.
· 소 전이 포인터(small transition pointer) - 전이를 위한 소 버퍼를 나타낸다.
디코더가 초기화될 때, 소 현재 포인터, 소 디스플레이 포인터, 소 장래 포인터, 소 전이 포인터는 0, 2, 4, 6으로 각각 세팅된다. 각 픽쳐 디코딩 개시 시, 소 현재 포인터가 소 전이 포인터로부터 로딩되고, 소 전이 포인터는 소 디스플레이 포인터로부터 로딩된다. 디코딩되는 픽쳐가 B 픽쳐이면, 소 디스플레이 포인터는 소 전이 포인터로부터 로딩되고, 소 장래 포인터는 변경되지 않는다. 디코딩되는 픽쳐가 I 또는 P 픽쳐이면, 소 디스플레이 포인터는 소 장래 포인터로부터 로딩되고, 소 장래 포인터는 소 전이 포인터로부터 로딩된다. 본 발명에 따른 소 프레임 버퍼 스위칭의 일 실시예를 도 7b에 도시하고 있다.
전체 크기 프레임 버퍼인 프레임 버퍼 0과 프레임 버퍼 1은 디코더가 정규 모드에서 동작하는 것처럼 스위칭된다. 이들 2 개의 버퍼는 축소 비디오 모드에서 디스플레이를 위해서가 아니라 예측을 위해 필요하다. I 또는 P 픽쳐가 디코딩될때, 픽쳐는 현재(최대 프레임) 포인터와 소 현재 포인터가 가리키는 버퍼 양자에 저장된다. B 픽쳐를 디코딩하는 동안, 현재 (최대 프레임) 포인터가 가리키는 프레임 버퍼 2는 사용되지 않을 것이다. 소 현재 포인터가 가리키는 소 프레임 버퍼만이 데시메이션된 픽쳐를 위해 사용된다. 정규 모드에서는 디스플레이를 위해 디스플레이 포인터가 사용되고, 축소 비디오 모드에서는 소 디스플레이 포인터가 사용된다. 2 개의 버퍼 스위칭 알고리즘은 각 픽쳐의 디코딩 개시 시 동시에 동작한다. 버퍼 포인터는 디코더가 어느 모드에 있는지에 따라 단순히 선택된다.
다음으로, 도 8은 본 발명에 따라 채용된 (도 5의) 데시메이션 유닛(82)의 일 실시예를 도시하고 있다.
예컨대, "Multi-Format Reduced Memory MPEG-2 Compliant Decoder"라는 명칭의 전술한 인용 문헌인, 특허 출원에서 설명한 것과 같이, 종래의 디코딩 데시메이션 유닛의 구현에서, 데시메이션 유닛은 레터박스 또는 메모리 감축을 위해 B 픽쳐 상에서만 동작하도록 제한되었다. 그러나, 본 명세서에서 제시한 축소 비디오 모드에서, 디코딩 데시메이션 유닛은 모든 유형의 픽쳐를 처리한다. 이는 일 실시예에서 축소 픽쳐와 다면(multi-plane) 고해상도 OSD 그래픽이 출력에서 혼합되므로, 디스플레이 시 메모리 대역폭을 절약하기 위해 바람직하다.
도 8의 실시예에서, 데시메이션 유닛은 데시메이션 로직부(200)를 포함하고 있는데, 이는 비디오 디코더로부터 디코딩된 비디오 데이터를 수신하고, 데시메이션된 데이터 흐름을 데시메이션 버퍼(220)로 출력한다. 데시메이션 버퍼(220)의 출력은 전술한 바와 같이 축소 비디오 모드에서 다중화기(230)가 프레임 버퍼 0,1, 2, 4, 6 내의 저장을 위한 축소 매크로블럭과 함께 디코딩된 비디오 데이터를 출력하도록 비디오 디코더로부터 수신된 데시메이션되지 않은(undecimated) 디코딩된 비디오 데이터를 이용하여 다중화된다(230). 비디오 디코더의 움직임 보상 유닛으로부터의 기록 비디오 어드레스는 데시메이션 유닛 내의 메모리 기록 제어기(240)로 인가되는데, 이는 데시메이션 버퍼(220)로부터의 데이터의 기록을 제어한다. 기록 비디오 어드레스도, 데시메이션 축소를 하거나 데시메이션 축소를 하지 않고 다중화기(250)를 통해 메모리 제어 유닛으로 출력된다(도 5 참조).
다중화기(230, 250)는 데시메이션 제어 신호(210)에 의해 제어된다. 데시메이션 제어 로직부는 비디오 디코더의 움직임 보상 유닛으로부터 "MCU_block_complete"라고 불리는 신호를 입력으로서 수신한다. 이 신호는 언제 데시메이터가 축소 매크로블럭을 기록하기 시작했는지를 나타낸다. 데시메이터는 "decimator_busy"라는 신호를 통해 자신이 현재 동작 중이라는 사실을 움직임 보상 유닛에 통보한다.
주어진 매크로블럭에는, 두 단계가 있다. 한 단계는 루미넌스를 위한 것이고, 다른 단계는 크로미넌스를 위한 것이다. 각 단계는, 다시 축소 비디오 모드를 가정할 때, 하나의 최대 크기 매크로블럭과 하나의 축소 크기 매크로블럭의 기록을 필요로 한다.
앞에서 인용한 "Multi-Format Reduced Memory MPEG-2 Compliant Decoder"라는 명칭의 출원에서 설명한 데시메이션 하드웨어/처리에 대한 다양한 구체적인 변경이 본 명세서에서 의도된다. 데시메이션 과정의 데이터 흐름에 있어서의 한 가지 변경은 4 에서 1 수평 감축의 추가인데, 이는 데시메이션 로직의 수평 데시메이션 기능에서 구현된다. 이는 1/16 크기 축소를 지원한다.
또 다른 변경은 데시메이션 버퍼 크기를 32× 32 비트로 증가시킨 것이다. I 및 P 픽쳐가 처리될 때, 최대 크기 매크로블럭이 메모리에 기록되는데, 데시메이터는 동시에 매크로블럭을 축소하여 작은 매크로블럭을 데시메이션 버퍼(220)에 저장한다. 최대 크기 매크로블럭을 메모리에 기록한 후, 데시메이터는 메모리 내에 있는 다른 버퍼 위치(즉, 전술한 예에서 프레임 버퍼 2, 프레임 버퍼 4, 프레임 버퍼 6)에 축소 매크로블럭을 기록한다. 보다 큰 데시메이션 버퍼는 작은 매크로블럭의 저장을 허용한다.
데시메이션 상태 머신(decimate state machine)은 두 모드의 동작을 허용하도록, 즉 다시 축소 비디오 모드를 가정하여 변경된다. 처음 모드는 B 픽쳐 처리이고, 두 번째 모드는 기준 픽쳐 처리이다. B 픽쳐 처리에 있어서, 작은 매크로블럭만이 데시메이션 버퍼(220)를 통해 메모리에 기록된다. 데시메이션 버퍼는 하나의 완전한 축소 매크로블럭을 수용할 수 있으므로, 데이터는 데시메이션 유닛을 통해 움직임 보상 유닛이 운반할 수 있는 가장 빠른 속도로 전진한다. 기준 픽쳐 동작에 있어서, 최대 크기 매크로블럭은 다중화기(230)를 통해 메모리에 먼저 기록되고, 축소 매크로블럭이 다음에 기록된다. 이는 데이터 흐름이 기록 요청에 응답하여 메모리 제어 유닛에 의해 전진하도록 요구한다.
소스 압축 영상의 크기가 변할 수 있기 때문에, 전술한 과정에는 예외가 있다. 데시메이터는 축소 픽쳐를 형성하기 위해 몇몇 유형의 감축이 필요할 때에만요구된다. 어떤 비디오 소스는 이미 크기가 작으므로, 1 차원이나 2차원은 축소할 필요가 없다. 예를 들어, 352 × 240 크기 영상(전형적인 MPEG-1 크기)을 갖는 것이 일반적이다. 이 경우, 1/4 축소를 제공하기 위해 어떠한 데시메이션을 할 필요도 없다. 기준 프레임에 있어서는 디스플레이 과정이 출소 중에 디스플레이 프레임 버퍼 상에서만 동작하기 때문에, 움직임 보상 유닛은 최대 크기 매크로블럭을 메모리 내의 기준 프레임 버퍼에 기록한 후 메모리 내의 디스플레이 프레임 버퍼에 기록할 필요가 있다.
동일한 크기의 영상을 1/16 축소하기 위해서는, 데시메이션 단계가 필요하다. 다시 한번, 이 경우에도 예외는 존재한다.
축소 특성의 한 목적은 비월주사 아티팩트를 제거하는 것이다. 진정한 MPEG-1 영상에서는 픽쳐가 배타적으로 프레임 인코딩되기 때문에 비월주사가 존재하지 않는다. MPEG-2는 동일한 해상도(352 × 240)의 비월주사 픽쳐를 허용할 수 있고, 데시메이터는 축소 매크로블럭을 생성하기 위해 상위 필드 픽쳐만을 사용한다. 하위 필드는 폐기된다. 따라서, 기준 픽쳐에 있어서, MCU는 상위 필드 픽쳐에 대한 매크로블럭을 기준 프레임 버퍼와 디스플레이 버퍼 양자에 기록할 필요가 있다. B 픽쳐에 있어서, MCU는 상위 필드 픽쳐만을 디스플레이 프레임 버퍼에 기록할 필요가 있을 것이다.
본 발명에 따른 비디오 디코딩 시스템은 소 픽쳐 모드에 들어가고 나올 때 부드러운 전이를 제공한다. 프레임 버퍼 2가 비디오 축소 모드에서 (기준 및 B 픽쳐를 포함하는) 소 픽쳐 영상의 포착 및 디스플레이를 위해 사용되므로, 디스플레이 포맷 스위칭 시 디코딩 과정과 디스플레이 과정 사이의 간섭을 방지하기 위해 주의해야 한다. 또한, 전이 중에는 한 필드 시간의 지연 조절(a latency adjustment)이 발생한다. 정규 디스플레이 모드는 기준 픽쳐를 디코딩하고 디스플레이하는 사이에 1.5 프레임 지연을 갖고, B 픽쳐에 있어서는 0.5 프레임 지연을 갖는다. 소 픽쳐 모드에서는, 기준 프레임 지연은 2 프레임으로, B 프레임 지연은 1 프레임으로 변경된다.
디스플레이 포맷 변경이 이음새 없이 일어나도록 하기 위해, 전이 발생 시 디스플레이는 B 픽쳐를 디스플레이하는 과정 중이어서는 안 되며, 그렇지 않으면 픽쳐가 교란되어 보일 것이다. 따라서, 기준 픽쳐가 디스플레이되고 있을 때 전이가 일어나야 한다. 이는 시퀀스 헤더 중에 새로운 시퀀스의 처음 프레임이 기준 프레임일 때 마이크로코드에 의해 일어나도록 강제되며, 디스플레이는 이전 시퀀스의 마지막 프레임 상에서 동작한다.
소 픽쳐 모드 안팎으로의 전이 시, 하드웨어는 디코딩 또는 디스플레이 과정을 교란하지 않으면서 지연을 조정해야 한다. 프레임 동기화는 새로운 모드로 조절되어야 한다. 나아가, 필드 패리티(field parity)가 유지되어야 한다. 소 픽쳐 모드로 조절한 결과, 한 프레임 시간의 지연이 도입되고, 이는 PTS 비교(PTS comparison)에 영향을 미칠 것이다. 따라서, 시간 차이를 보상하기 위해 프레임을 생략할 필요가 있을 수 있다. 이는 소 픽쳐 모드로 진입할 때만 발생한다. 소 픽쳐 모드를 떠날 때는, 동기화의 손실이 존재하지 않는다. 전이는 픽쳐가 이미 생략되거나 반복될 때 발생할 수도 있다.
도 9를 참조하면, 디스플레이 포맷 변경 신호가 호스트에 의해 비동기적으로 기록된다. 포맷은 제어 신호로서 디스플레이 포맷 레지스터(310)로 수신되고, 마이크로코드는 정보를 디스플레이 포맷 레지스터(310)에 기록하기 전에 시퀀스 헤더를 처리하는 동안 대기한다. 이어서, 이 정보는 동기 발생기(300), 레지스터 스테이지(register stage)(330, 340, 360)에 의해 판독된다. 레지스터 스테이지 1(330)은 다음 프레임 동기 시 정보를 포착한다. 디코딩 과정은 스테이지 1 레지스터(330)를 사용하고, 디스플레이 과정은 스테이지 3 레지스터(360)를 사용한다.
필드 카운터(320)는 프레임 내의 필드의 시작 번호를 1로 단순히 카운트 다운(count down)한 후, 반복한다. 카운터(320)는 도시한 바와 같이 제어 신호를 통해 동기 발생기(300)에 의해 로딩된다. 또한, 동기 발생기(300)는 스테이지 1 레지스터(330)의 출력과 함께 VSYNC 신호도 수신한다. 동기 발생기(300)는 3 개의 신호, 즉, "프레임 동기" 신호, "새로운 픽쳐" 신호, "비디오 차단" 신호를 생성한다. "프레임 동기" 신호는 디코딩 과정이 언제 새로운 프레임의 디코딩을 개시할 지를 나타낸다. "새로운 픽쳐" 신호는 디스플레이 과정이 언제 새로운 프레임의 디스플레이를 개시할 것인지를 나타낸다. "비디오 차단"은 정규 프레임으로부터 축소 프레임으로 비디오 디코딩 시스템을 전이하는 동안 비디오 영상의 한 프레임을 선택적으로 멈추는 데 사용된다. 프레임 동기 및 새로운 픽쳐 신호는 2 개의 필드 시간마다 생성되는 펄스이다. 정규 모드에서, 신호는 180°의 위상차를 갖고, (본 발명에 따른) 축소 모드에서는 동상이다. 이는 도 10의 흐름도와 함께 아래에서 더 설명된다.
축소 픽쳐 모드로의 스위칭과 관련된 모든 경우에는, 디스플레이에서의 관찰로부터 차단되는 반복 프레임이 존재한다. 차단은 현재 기준 프레임과 현재 디스플레이되는 기준 프레임 사이의 버퍼 충돌(buffer conflicts)로 인해 필수적이다. 비디오가 차단되면, 디코더의 출력은 검은 색과 같은 배경 색으로 강제될 수 있다.
지연 조절은 스테이지 1 레지스터가 변경되자마자 수행된다. 현재 디스플레이가 반복되도록 예정되게 하는 프레임 동기의 부재(an absence)가 존재한다. 그러면, 동기 발생기는 프레임 동기가 새로운 픽쳐와 동상으로 발생하도록 조절하여, 지연 조절을 일으킨다. 반복되는 기준 프레임 중에, 비디오는 한 프레임 시간만큼 차단된다.
도 10은 (도 9의) 동기 발생기(300)에 의해 구현되는 과정의 일 실시예의 흐름도이다.
초기화(600) 시, 과정은 새로운 필드의 개시를 나타내는 VSYNC 신호를 대기한다(610). VSYNC 신호를 수신하면, 과정은 "새로운 픽쳐" 동기 신호를 발생시키고, 필드가 수신된 MPEG-2 신택스(syntax)에 기초하여 반복되고 있는지 여부를 문의한다(630). 초기 필드 카운터(FC) 값은 필드가 반복되는지 여부에 달려 있다. 3 : 2 풀다운이 채용되면, 필드 카운터의 초기값은 3640이고, 그렇지 않으면 정규 비월주사가 요구되고 필드 카운터 값은 2로 로딩된다.
필드 카운터가 세팅되면, 과정은 축소가 구현될 것인지를 각각 문의한다(650, 670). 축소가 구현되지 않으면, 디코딩 시스템은 비축소, 즉, 정규 비디오 모드가 된다. 이 경우, 과정은 다음 VSYNC 신호를 대기한 후(680), 필드카운터가 2인지를 문의한다(690). 그렇지 않으면(예를 들어, 필드 카운터 값이 3으로 로딩되면), 필드 카운터는 감소되고(710), 과정은 다음 VSYNC 신호를 대기한다(680). 필드 카운터가 2가 되면, "프레임 동기" 신호가 발생하고(200), 필드 카운터가 감소한 후(710), 과정은 이제 필드 카운터가 1인지 판단한다(720). 값이 1이면, 과정은 새로운 VSYNC를 대기한 후(610) "새로운 픽쳐" 신호를 발생시킨다.
축소 모드가 요구되는 경우에, 과정은 문의(650 또는 670)로부터 다음 VSYNC의 대기(730)로 진행하며, 그 후에는 필드 카운터가 1인지 판단한다(740). 결과가 "아니오"이면, 필드 카운터는 감소되고, 과정은 다음 VSYNC를 대기하는 단계(730)로 돌아간다. 필드 카운터 값이 1이면, 새로운 픽쳐 동기 신호가 발생한다(750). 그런 다음, 필드 카운터 값은 2로 로딩되고, 비디오 차단 신호가 발생한다(760). 다시, 비디오의 다음 프레임의 차단을 위해 비디오 차단 신호는 동기 발생기로부터 (도 5의) 디스플레이 출력 인터페이스로 출력된다,
비디오 차단 신호를 전달 한 후, 과정은 정상 상태로 진입하여, 다음 VSYNC 신호를 대기함으로써 비디오 축소 부과정(subprocess)이 시작되고(780), 그 후 과정은 필드 카운터가 1인지 판단한다(790). 그 결과가 "아니오"이면, 과정은 필드 카운터가 2인지 문의하고(840), 결과가 또 "아니오"이면 과정은 필드 카운터를 감소시키고(860), 다음 VSYNC 신호를 대기하는 단계(780)로 돌아간다. 그렇지 않으면, 축소 커맨드가 이제 호스트 시스템에 의해 턴 오프(turn off)되었는지에 관해 판단한다(850). 그 결과가 "아니오"이면, 필드 카운터가 감소하고, 과정은 다음 VSYNC 신호를 대기한다(780). 축소 모드가 스위칭 오프되었으면, 전술한 비축소과정의 도입 단계(710)에서 필드 카운터가 감소한다.
필드 카운터가 문의 단계(790)에서 1이면, 과정은 "새로운 픽쳐" 신호와 "프레임 동기" 신호를 동상으로 발생시킨다. 다시, 축소를 구현하기 위해, 기준 프레임에 대한 디코딩 과정과 디스플레이 과정 사이의 지연을 1.5 프레임 시간에서 2 프레임 시간으로 변경하여, 새로운 픽쳐 신호와 프레임 동기 신호를 동상으로 만들 필요가 있다. 이어서, 과정은 MPEG-2 반복 필드가 세팅되었는지 판단하여(810), 정규 비월주사 또는 3 : 2 풀다운이 요구되는지에 따라 필드 카운터 값을 2로 로딩할 것인지 여부를 결정한다(830 또는 820). 임의 유형의 프레임 레이트 변환(frame rate conversion)을 수용하기 위해서는 지연이 조절되더라도 이것이 필요하다. 필드 카운터를 세팅한 후, 과정은 다음 VSYNC 신호를 대기하는 단계(780)로 돌아간다.
당업자는 정규 모드와 축소 비디오 모드 사이에서 부드러운 스위칭을 구현하려면 정상 상태 축소 과정에 도달하기 이전에 전이 단계를 통과할 필요가 있다는 사실을 전술한 논의로부터 이해할 것이다. 또한, 프레임 동기 신호가 새로운 픽쳐 신호와 동상으로 발생하도록 조절할 필요가 있다.
본 발명은 예를 들어, 컴퓨터 이용가능 매체를 구비하는 제조 장치(예컨대, 하나 이상의 컴퓨터 프로그램 제품)에 포함될 수 있다. 이 매체는 그 내부에, 이를테면, 본 발명의 기능을 촉진하고 제공하는 컴퓨터 판독가능 프로그램 코드 수단을 구현한다. 제조 장치는 컴퓨터 시스템의 일부로서 포함될 수 있고, 별도로 판매될 수 있다.
그리고, 기계에 의해 실행되는 적어도 하나의 인스트럭션 프로그램을 현실적으로 실시하는, 기계에 의해 판독가능한 적어도 하나의 프로그램 저장 장치가 본 발명의 기능을 수행하기 위해 제공된다.
본 명세서에서 도시한 흐름도는 예로서 제공된 것이다. 본 명세서에서 설명한 도면이나 단계(또는 동작)는 본 발명의 사상을 벗어나지 않으면서 변경될 수 있다. 예컨대, 소정의 경우, 단계가 다른 순서로 수행될 수도 있고, 단계가 추가, 삭제, 수정될 수도 있다. 이들 변경은 모두 첨부하는 청구범위에서 기술하는 바와 같이 본 발명의 일부를 이루는 것으로 간주된다.
본 발명이 소정의 바람직한 실시예에 따라 본 명세서에서 상세하게 설명되었지만, 당업자에 의해 많은 수정과 변경을 가할 수 있다. 따라서, 첨부하는 청구범위는 그러한 모든 수정과 변경이 본 발명의 진정한 사상과 범주 내에 있도록 의도된다.
본 발명에 의하면, 비디오 데이터의 디코딩 스트림의 디스플레이에 있어서 감지가능한 화질 열화 없이 스위칭이 일어난다.

Claims (21)

  1. 삭제
  2. 삭제
  3. 비디오 데이터의 인코딩 스트림(an encoded stream)을 디코딩하여 비디오 데이터의 디코딩 스트림(a decoded stream)을 발생시키는 비디오 디코더와,
    상기 비디오 디코더에 접속되어 디스플레이를 위해 상기 비디오 데이터의 디코딩 스트림을 선택적으로 축소(scale)하는 데시메이션 유닛(a decimation unit)과,
    프레임 버퍼를 포함하되,
    상기 데시메이션 유닛은 상기 비디오 데이터의 디코딩 스트림을 상기 프레임 버퍼에 저장하기 이전에 상기 비디오 데이터의 디코딩 스트림을 축소하는 수단을 포함하며,
    상기 프레임 버퍼는 상기 비디오 데이터의 디코딩 스트림의 I, P, B 프레임을 수신하는 다수의 규정된 메모리 영역을 포함하되, 상기 다수의 규정된 메모리 영역은 상기 비디오 데이터의 디코딩 스트림의 최대 크기(full size) I, P 프레임을 수신하는 제 1 및 제 2 영역과, 상기 최대 크기 I, P 프레임을 수신하는 상기 제 1 및 상기 제 2 영역과 함께 상기 비디오 데이터의 디코딩 스트림의 축소(scaled) I, P, B 프레임을 수신하는 적어도 하나의 제3 영역을 포함하는 것인
    통합 비디오 디코딩 시스템
  4. 제 3 항에 있어서,
    상기 적어도 하나의 제 3 영역은 적어도 3 개의 영역을 포함하되, 상기 적어도 3 개의 영역은 상기 비디오 데이터의 디코딩 스트림의 최대 크기 I, P 프레임을 수신하는 상기 제 1 및 상기 제 2 영역과 함께, 상기 비디오 데이터의 디코딩 시스템의 축소된 I, P, B 프레임을 수신하는 통합 비디오 디코딩 시스템.
  5. 제 3 항에 있어서,
    상기 프레임 버퍼는 사전정의된 크기의 메모리를 포함하고,
    상기 비디오 디코딩 시스템은 축소하지 않고 상기 비디오 데이터의 디코딩 스트림을 디스플레이하는 정규 비디오 모드와 디스플레이 이전에 상기 비디오 데이터의 디코딩 스트림을 축소하는 축소 비디오 모드를 더 포함하며,
    상기 비디오 디코딩 시스템은 상기 비디오 디코딩 시스템이 상기 정규 비디오 모드일 때 상기 사전정의된 크기의 메모리를 다수의 버퍼 영역으로 구획하는 프레임 버퍼 포인터 제어 로직을 더 포함하고,
    상기 다수의 버퍼는 상기 비디오 데이터의 디코딩 시스템의 디코딩된 I, P, B 프레임을 수신하는 적어도 3 개의 버퍼 영역을 포함하며,
    상기 프레임 버퍼 포인터 제어 로직은 상기 비디오 디코딩 시스템이 상기 축소 비디오 모드일 때 상기 사전정의된 크기의 메모리를 적어도 5 개의 버퍼 영역으로 구획하는 수단을 포함하되,
    상기 적어도 5 개의 버퍼 영역은 상기 비디오 데이터의 디코딩 스트림의 최대 크기 I, P 프레임을 수신하는 제 1 및 제 2 영역과, 상기 비디오 데이터의 디코딩 스트림의 축소된 I, P, B 프레임을 수신하는 적어도 제 3, 제 4, 제 5 영역을 포함하는 통합 비디오 디코딩 시스템.
  6. 디지털 비디오 디코딩 시스템에 있어서,
    비디오 데이터의 인코딩 스트림을 디코딩하여 이로부터 비디오 데이터의 디코딩 스트림을 발생시키는 비디오 디코더와,
    상기 비디오 데이터의 디코딩 스트림을 프레임 버퍼에 저장하기 이전에 상기 비디오 데이터의 디코딩 스트림을 축소하는 비디오 축소기(a video scalar) ― 상기 비디오 디코딩 시스템은 정규 비디오 모드와 축소 비디오 모드를 포함하고, 상기 비디오 축소기는 상기 디지털 비디오 디코딩 시스템이 상기 축소 비디오 모드일 때 상기 비디오 데이터의 디코딩 스트림을 축소함 ― 와,
    상기 정규 비디오 모드와 상기 축소 비디오 모드 사이에서 스위칭하되, 상기 스위칭은 상기 비디오 데이터의 디코딩 스트림의 비디오 디스플레이의 감지가능한 열화 없이 발생하는 디스플레이 모드 스위치 로직을 포함하고,
    상기 비디오 축소기는 상기 비디오 디코더에 접속되어, 상기 디지털 비디오 디코딩 시스템이 상기 축소 비디오 모드일 때, 상기 비디오 데이터의 디코딩 스트림을 상기 프레임 버퍼에 저장하기 이전에 상기 비디오 데이터의 디코딩 스트림을 축소하는 데시메이션 유닛을 포함하되, 상기 비디오 데이터의 디코딩 스트림은 I, P, B 프레임을 포함하고, 상기 데시메이션 유닛은 상기 I, P, B 프레임을 상기 프레임 버퍼에 저장하기 이전에 상기 I, P, B 프레임을 축소하고,
    상기 프레임 버퍼는 비디오 데이터의 디코딩 스트림의 I, P, B 프레임을 수신하는 다수의 규정된 메모리 영역을 포함하되, 상기 다수의 규정된 메모리 영역은 상기 비디오 데이터의 디코딩 스트림의 최대 크기 I, P 프레임을 수신하는 제 1 및 제 2 영역과, 상기 최대 크기 I, P 프레임을 수신하는 상기 제 1 및 상기 제 2 영역과 함께 상기 비디오 데이터의 디코딩 스트림의 축소(scaled) I, P, B 프레임을 수신하는 적어도 하나의 제 3 영역을 포함하는 것인
    디지털 비디오 디코딩 시스템.
  7. 삭제
  8. 디지털 비디오 디코딩 시스템에 있어서,
    비디오 데이터의 인코딩 스트림을 디코딩하여 이로부터 비디오 데이터의 디코딩 스트림을 발생시키는 비디오 디코더와,
    상기 비디오 데이터의 디코딩 스트림을 프레임 버퍼에 저장하기 이전에 상기 비디오 데이터의 디코딩 스트림을 축소하는 비디오 축소기(a video scalar) ― 상기 비디오 디코딩 시스템은 정규 비디오 모드와 축소 비디오 모드를 포함하고, 상기 비디오 축소기는 상기 디지털 비디오 디코딩 시스템이 상기 축소 비디오 모드일 때 상기 비디오 데이터의 디코딩 스트림을 축소함 ― 와,
    상기 정규 비디오 모드와 상기 축소 비디오 모드 사이에서 스위칭하되, 상기 스위칭은 상기 비디오 데이터의 디코딩 스트림의 비디오 디스플레이의 감지가능한 열화 없이 발생하는 디스플레이 모드 스위치 로직을 포함하고,
    상기 비디오 디코더는 디코딩 과정을 포함하고, 상기 비디오 디스플레이는 디스플레이 과정을 포함하며,
    상기 디코딩 과정과 상기 디스플레이 과정은 상기 정규 비디오 모드에서는 제 1 지연을, 상기 축소 비디오 모드에서는 제 2 지연을 갖고,
    상기 디스플레이 모드 스위치 로직은 상기 정규 비디오 모드와 상기 축소 비디오 모드 사이의 스위칭 시 상기 제 1 지연과 상기 제 2 지연 사이에서 스위칭하는 수단을 포함하는 디지털 비디오 디코딩 시스템.
  9. 디지털 비디오 디코딩 시스템에 있어서,
    정규 비디오 모드 및 축소 비디오 모드 ― 상기 정규 비디오 모드에서는 최대 크기 프레임이 상기 디지털 비디오 디코딩 시스템에 접속되는 비디오 디스플레이 상으로의 디스플레이를 위해 출력되고, 축소 비디오 모드에서는 상기 최대 크기 프레임의 분할 크기를 포함하는 축소된 프레임이 상기 비디오 디스플레이 상의 디스플레이를 위해 출력됨 ― 와,
    상기 최대 크기 프레임과 상기 축소된 프레임을 디코딩한 후 디스플레이하기 전에, 상기 최대 크기 프레임과 상기 축소된 프레임을 일시적으로 저장하되, 상기 디코딩 시간과 상기 디스플레이 시간 사이에는 사전정의된 지연이 존재하되, 상기 디코딩 시간과 상기 디스플레이 시간 사이의 상기 사전정의된 지연은 정규 비디오 모드에서의 제 1 지연과 축소 비디오 모드에서의 제 2 지연을 포함하는 프레임 버퍼
    를 포함하는 디지털 비디오 디코딩 시스템.
  10. 비디오 축소 기능(video scaling capabilities)을 구비하는 디지털 비디오 디코딩 시스템의 프레임 버퍼에 있어서, 상기 프레임 버퍼는,
    비디오 데이터의 디코딩 스트림의 I, P, B 프레임을 수신하는 다수의 규정된 메모리 영역을 포함하되, 상기 다수의 규정된 메모리 영역은,
    상기 비디오 데이터의 디코딩 스트림의 최대 크기 I, P 프레임을 수신하는 제 1 및 제 2 영역과,
    상기 최대 크기 I, P 프레임을 수신하는 상기 제 1 및 제 2 영역과 함께 상기 비디오 데이터의 디코딩 스트림의 축소된 I, P, B 프레임을 수신하는 적어도 하나의 제 3 영역
    을 포함하는 프레임 버퍼.
  11. 비디오 축소 기능을 구비하는 디지털 비디오 디코딩 시스템의 프레임 버퍼에 있어서, 상기 프레임 버퍼는,
    상기 디지털 비디오 디코딩 시스템과 연관되는 사전정의된 크기의 메모리와,
    상기 디지털 비디오 디코딩 시스템이 정규 비디오 모드일 때 상기 사전정의된 크기의 메모리를 3 개의 버퍼 영역으로 구획하되, 상기 3 개의 버퍼 영역은 비디오 데이터의 디코딩 스트림의 최대 크기 I, P, B 프레임을 수신하는 제어 로직
    을 포함하되,
    상기 제어 로직은 상기 디지털 비디오 디코딩 시스템이 축소 비디오 모드일 때 상기 메모리를 적어도 5 개의 버퍼 영역으로 구획하며, 상기 적어도 5 개의 버퍼 영역은 상기 비디오 데이터의 디코딩 스트림의 최대 크기 I, P 프레임을 수신하는 제 1 및 제 2 영역과, 상기 비디오 데이터의 디코딩 스트림의 축소된 I, P, B 프레임을 수신하는 적어도 제 3, 제 4, 제 5 영역을 포함하는
    프레임 버퍼.
  12. 디지털 비디오 디코딩 시스템을 이용하여 비디오 데이터의 인코딩 스트림을 처리하는 방법에 있어서,
    상기 비디오 데이터의 인코딩 스트림을 디코딩하여 비디오 데이터의 디코딩 스트림을 발생시키는 디코딩 단계와,
    상기 디지털 비디오 디코딩 시스템이 축소 비디오 모드일 때 상기 비디오 데이터의 디코딩 스트림을 축소하여 비디오 데이터의 축소된 디코딩 스트림을 발생시키는 축소 단계와,
    상기 축소 단계 후에 상기 비디오 데이터의 축소된 디코딩 스트림을 프레임 버퍼에 저장하여 디스플레이를 대기하는 저장 단계와,
    상기 프레임 버퍼로부터 상기 비디오 데이터의 축소된 디코딩 스트림을 검색하여 디스플레이하는 단계를 포함하고,
    상기 디지털 비디오 시스템이 축소 비디오 모드에 있을 때 상기 디코딩 단계와 상기 디스플레이 단계가 동위상에서 발생하는 것인
    비디오 데이터의 인코딩 스트림 처리 방법.
  13. 정규 비디오 모드와 축소 비디오 모드를 갖는 디지털 비디오 디코딩 시스템을 이용하여 비디오 데이터의 인코딩 스트림을 처리하는 방법에 있어서,
    상기 비디오 데이터의 인코딩 스트림을 디코딩하여 비디오 데이터의 디코딩 스트림을 발생시키는 디코딩 단계와,
    상기 축소 비디오 모드일 때 상기 비디오 데이터의 디코딩 스트림을 프레임 버퍼에 저장하기 이전에 상기 비디오 데이터의 디코딩 스트림을 축소하는 축소 단계와,
    상기 비디오 데이터의 디코딩 스트림의 비디오 디스플레이의 감지가능한 열화 없이 상기 정규 비디오 모드와 상기 축소 비디오 모드 사이에서 스위칭하는 스위칭 단계와,
    상기 프레임 버퍼로부터 상기 비디오 데이터의 축소된 디코딩 스트림을 검색하여 디스플레이하는 단계를 포함하고,
    상기 디지털 비디오 시스템이 축소 비디오 모드에 있을 때는 상기 디코딩 단계와 상기 디스플레이 단계가 동위상에서 발생하며, 상기 디지털 비디오 시스템이 정규 비디오 모드에 있을 때는 상기 디코딩 단계와 상기 디스플레이 단계가 위상차를 가지고 발생하는 것인
    를 포함하는 비디오 데이터의 인코딩 스트림 처리 방법.
  14. 정규 비디오 모드와 축소 비디오 모드를 갖는 디지털 비디오 디코딩 시스템을 사용하여 비디오 데이터의 인코딩 스트림을 처리하는 방법에 있어서,
    상기 비디오 데이터의 인코딩 스트림을 디코딩하여 비디오 데이터의 디코딩 스트림을 발생시키는 디코딩 단계와,
    상기 비디오 데이터의 디코딩 스트림을 저장하는 저장 단계와,
    상기 비디오 데이터의 저장된 디코딩 스트림을 디스플레이하는 디스플레이단계와,
    상기 디지털 비디오 디코딩 시스템이 정규 비디오 모드일 때는 디코딩 시간과 디스플레이 시간 사이에 제 1 지연이 존재하고, 상기 디지털 비디오 디코딩 시스템이 상기 축소 비디오 모드일 때는 디코딩 시간과 디스플레이 시간 사이에 제 2 지연이 존재하도록 상기 디스플레이 단계와 상기 디코딩 단계를 제어하는 제어 단계
    를 포함하는 비디오 데이터의 인코딩 스트림 처리 방법.
  15. 비디오 축소 기능을 구비하는 디지털 비디오 디코딩 시스템의 프레임 버퍼를 할당하는 방법에 있어서,
    상기 프레임 버퍼를 비디오 데이터의 디코딩 스트림의 I, P, B 프레임을 수신하는 다수의 메모리 영역으로 구획하는 단계를 포함하되, 상기 구획 단계는,
    상기 비디오 데이터의 디코딩 스트림의 최대 크기 I, P프레임을 수신하는 제 1 및 제 2 영역을 규정하는 단계와,
    상기 최대 크기 I, P 프레임을 수신하는 상기 제 1 및 상기 제 2 영역과 함께 상기 비디오 데이터의 디코딩 스트림의 축소된 I, P, B 프레임을 수신하는 적어도 하나의 제 3 영역을 규정하는 단계
    를 포함하는 프레임 버퍼 할당 방법.
  16. 비디오 축소 기능을 구비하는 디지털 비디오 디코딩 시스템의 프레임 버퍼 할당 방법에 있어서,
    상기 디지털 비디오 디코딩 시스템이 정규 비디오 모드일 때 상기 프레임 버퍼를 3 개의 버퍼 영역으로 구획하되, 상기 3 개의 버퍼 영역은 비디오 데이터의 디코딩 스트림의 최대 크기 I, P, B 프레임을 수신하는 구획 단계와,
    상기 디지털 비디오 디코딩 시스템이 축소 비디오 모드일 때 상기 프레임 버퍼를 적어도 3 개의 버퍼 영역으로 구획하되, 상기 적어도 3 개의 버퍼 영역은 상기 비디오 데이터의 디코딩 스트림의 최대 크기 I, P 프레임을 수신하는 제 1 및 제 2 영역과, 상기 비디오 데이터의 디코딩 스트림의 축소된 I, P, B 프레임을 수신하는 적어도 하나의 제 3 영역을 포함하는 구획 단계
    를 포함하는 프레임 버퍼 할당 방법.
  17. 삭제
  18. 삭제
  19. 정규 비디오 모드와 축소 비디오 모드를 갖는 디지털 비디오 디코딩 시스템을 이용하여 비디오 데이터의 인코딩 스트림을 처리하는 데 사용되는 컴퓨터 판독가능 프로그램 코드 수단을 구비하는 컴퓨터 프로그램이 기록된 기록 매체에 있어서,
    상기 컴퓨터 프로그램은,
    컴퓨터가 상기 비디오 데이터의 인코딩 스트림을 디코딩하여 비디오 데이터의 디코딩 스트림을 발생시키도록 하는 제 1 컴퓨터 판독가능 프로그램 코드 수단과,
    컴퓨터가 상기 비디오 데이터의 디코딩 스트림을 저장하도록 하는 제 2 컴퓨터 판독가능 프로그램 코드 수단과,
    컴퓨터가 상기 비디오 데이터의 저장된 디코딩 스트림을 디스플레이하도록 하는 제 3 컴퓨터 판독가능 프로그램 코드 수단과,
    상기 디지털 비디오 디코딩 시스템이 상기 정규 비디오 모드일 때는 디코딩 시간과 디스플레이 시간 사이에 제 1 지연이 존재하고, 상기 디지털 비디오 디코딩 시스템이 상기 축소 비디오 모드일 때는 디코딩 시간과 디스플레이 시간 사이에 제 2 지연이 존재하도록, 컴퓨터가 상기 디스플레이와 상기 디코딩을 제어하도록 하는 제 4 컴퓨터 판독가능 프로그램 코드 수단을 포함하는
    기록 매체.
  20. 비디오 축소 기능을 구비하는 디지털 비디오 디코딩 시스템의 프레임 버퍼를 할당하기 위한 컴퓨터 판독가능 프로그램 코드 수단을 구비하는 컴퓨터 프로그램이 기록된 기록 매체에 있어서,
    상기 컴퓨터 프로그램은,
    컴퓨터가 상기 프레임 버퍼를 비디오 데이터의 디코딩 스트림의 I, P, B 프레임을 수신하는 다수의 메모리 영역으로 구획하도록 하는 제 1 컴퓨터 판독가능 프로그램 코드 수단을 포함하되,
    상기 제 1 컴퓨터 판독가능 프로그램 코드 수단은,
    컴퓨터가 상기 비디오 데이터의 디코딩 프레임의 최대 크기 I, P 프레임을 수신하는 제 1 및 제 2 영역을 규정하도록 하는 제 2 컴퓨터 판독가능 프로그램 코드 수단과,
    컴퓨터가 상기 최대 크기 I, P 프레임을 수신하는 상기 제 1 및 상기 제 2 영역과 함께 상기 비디오 데이터의 디코딩된 스트림의 축소된 I, P, B 프레임을 수신하는 적어도 하나의 제 3 영역을 규정하도록 하는 제 3 컴퓨터 판독가능 프로그램 코드 수단을 포함하는
    기록 매체.
  21. 비디오 축소 기능을 구비하는 디지털 비디오 디코딩 시스템의 프레임 버퍼를 할당하기 위한 컴퓨터 판독가능 프로그램 코드 수단을 구비하는 컴퓨터 프로그램이 기록된 기록 매체에 있어서,
    상기 컴퓨터 프로그램은,
    상기 디지털 비디오 디코딩 시스템이 정규 비디오 모드일 때 컴퓨터가 상기 프레임 버퍼를 3 개의 버퍼 영역으로 구획하되, 상기 3 개의 버퍼 영역은 비디오 데이터의 디코딩 스트림의 최대 크기 I, P, B 프레임을 수신하도록 하는 제 1 컴퓨터 판독가능 프로그램 코드 수단과,
    상기 디지털 비디오 디코딩 시스템이 축소 비디오 모드일 때 상기 프레임 버퍼를 적어도 3 개의 버퍼 영역으로 구획하되, 상기 적어도 3 개의 버퍼 영역은 상기 비디오 데이터의 디코딩 스트림의 최대 크기 I, P 프레임을 수신하는 제 1 및 제 2 영역과, 상기 비디오 데이터의 디코딩 스트림의 축소된 I, P, B 프레임을 수신하는 적어도 하나의 제 3 영역을 포함하도록 하는 제 2 컴퓨터 판독가능 프로그램 코드 수단을 포함하는
    기록 매체.
KR10-2000-0001631A 1999-01-25 2000-01-14 통합 비디오 디코딩 시스템 및 그를 이용한 비디오 데이터의 인코딩 스트림 처리 방법과, 비디오 디코딩 시스템의 프레임 버퍼 할당 방법과, 기록 매체 KR100376607B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/237,601 1999-01-25
US09/237,601 US6470051B1 (en) 1999-01-25 1999-01-25 MPEG video decoder with integrated scaling and display functions
US9/237,601 1999-01-25

Publications (2)

Publication Number Publication Date
KR20000071244A KR20000071244A (ko) 2000-11-25
KR100376607B1 true KR100376607B1 (ko) 2003-03-19

Family

ID=22894414

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0001631A KR100376607B1 (ko) 1999-01-25 2000-01-14 통합 비디오 디코딩 시스템 및 그를 이용한 비디오 데이터의 인코딩 스트림 처리 방법과, 비디오 디코딩 시스템의 프레임 버퍼 할당 방법과, 기록 매체

Country Status (5)

Country Link
US (2) US6470051B1 (ko)
JP (1) JP3395166B2 (ko)
KR (1) KR100376607B1 (ko)
MY (2) MY123450A (ko)
SG (1) SG83760A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8311106B2 (en) 2007-02-14 2012-11-13 Samsung Electronics Co., Ltd. Method of encoding and decoding motion picture frames

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470051B1 (en) * 1999-01-25 2002-10-22 International Business Machines Corporation MPEG video decoder with integrated scaling and display functions
KR100547820B1 (ko) * 1999-08-12 2006-02-01 삼성전자주식회사 디지털 오디오 데이터 기록 및 재생이 가능한 이동무선 단말기및 그 제어방법
TW476066B (en) * 1999-11-09 2002-02-11 Winbond Electronics Corp OSD generation method and structure using dynamic random access memory
US6804449B1 (en) * 2000-01-05 2004-10-12 Genesis Microchip Inc. DVD reverse playback methods and apparatus
US20030058942A1 (en) * 2001-06-01 2003-03-27 Christian Hentschel Method of running an algorithm and a scalable programmable processing device
FI118067B (fi) * 2001-05-04 2007-06-15 Nokia Corp Menetelmä audiosignaalin pakkauksen purkamisessa, pakkauksen purkulaite, ja elektroniikkalaite
KR100463515B1 (ko) * 2001-12-29 2004-12-29 엘지전자 주식회사 비디오 디코딩 시스템
TW548959B (en) * 2002-01-09 2003-08-21 Media Tek Inc Picture processing method and device for motion picture expert group
US6894692B2 (en) * 2002-06-11 2005-05-17 Hewlett-Packard Development Company, L.P. System and method for sychronizing video data streams
US7009655B2 (en) * 2002-07-23 2006-03-07 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
US6928495B2 (en) * 2002-09-27 2005-08-09 Broadcom Corporation Method and system for an adaptive multimode media queue
US6848012B2 (en) * 2002-09-27 2005-01-25 Broadcom Corporation Method and system for an adaptive multimode media queue
JP2004289295A (ja) * 2003-03-19 2004-10-14 Fujitsu Ltd データ処理システム、データ処理装置及びデータ処理方法
US7656461B2 (en) * 2003-03-27 2010-02-02 Sony Corporation Method of and apparatus for utilizing video buffer in a multi-purpose fashion to extend the video buffer to multiple windows
JP4179917B2 (ja) * 2003-04-22 2008-11-12 株式会社東芝 動画像符号化装置及び方法
US20040258160A1 (en) * 2003-06-20 2004-12-23 Sandeep Bhatia System, method, and apparatus for decoupling video decoder and display engine
US7349395B2 (en) * 2003-06-23 2008-03-25 Microsoft Corporation System, method, and computer program product for parsing packetized, multi-program transport stream
US7307669B2 (en) * 2003-06-24 2007-12-11 Broadcom Corporation System, method, and apparatus for displaying streams with dynamically changing formats
TWI221071B (en) * 2003-07-24 2004-09-11 Liteon It Corp Apparatus for decoding compressed images
PL362631A1 (en) * 2003-10-06 2005-04-18 Advanced Digital Broadcast Polska Sp.z o.o. Method for controlling video display signal frames
US7388620B2 (en) * 2003-10-23 2008-06-17 Sony Corporation Method and system for pan-scan using motion vectors presentation
KR100565308B1 (ko) * 2003-11-24 2006-03-30 엘지전자 주식회사 에스엔알 스케일러빌리티를 위한 동영상 부호화 및 복호화 장치
KR100640885B1 (ko) * 2004-01-27 2006-11-02 엘지전자 주식회사 듀얼 비디오 디코딩을 위한 비디오 버퍼 제어 장치
DE102004008248A1 (de) * 2004-02-19 2005-09-22 Fujitsu Siemens Computers Gmbh Datennetzanschlussgerät für ein Anzeigegerät und Verfahren zur Aufbereitung von aus einem Datennetz geladenen Daten
KR20060127170A (ko) * 2004-03-03 2006-12-11 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 비디오 스트림 처리 회로 및 방법
US8934533B2 (en) * 2004-11-12 2015-01-13 Pelco, Inc. Method and apparatus for controlling a video surveillance display
EP1842368B1 (en) 2005-01-27 2017-10-18 Thomson Licensing Video player for digital video server
US20060248163A1 (en) * 2005-04-28 2006-11-02 Macinnis Alexander Systems, methods, and apparatus for video frame repeat indication & processing
US7924914B2 (en) 2005-09-20 2011-04-12 Intel Corporation Dynamically configuring a video decoder cache for motion compensation
JP2009530946A (ja) * 2006-03-23 2009-08-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 映画データを符号化する符号化装置及び方法
EP1879382B1 (en) * 2006-07-10 2017-09-06 Samsung Electronics Co., Ltd. Multi-screen display apparatus and method for digital broadcast receiver
US7957603B2 (en) * 2006-12-29 2011-06-07 Intel Corporation Digital image decoder with integrated concurrent image prescaler
US20080204468A1 (en) * 2007-02-28 2008-08-28 Wenlong Li Graphics processor pipelined reduction operations
WO2012095490A1 (de) * 2011-01-12 2012-07-19 Siemens Aktiengesellschaft Kompression und dekompression von referenzbildern in einem videokoder
US8754908B2 (en) * 2011-06-07 2014-06-17 Microsoft Corporation Optimized on-screen video composition for mobile device
US9521434B2 (en) * 2011-06-09 2016-12-13 Qualcomm Incorporated Internal bit depth increase in video coding
JP6127552B2 (ja) * 2013-02-07 2017-05-17 株式会社リコー 情報処理装置
US9606928B2 (en) * 2014-08-26 2017-03-28 Kabushiki Kaisha Toshiba Memory system
US9984653B1 (en) * 2015-02-11 2018-05-29 Synaptics Incorporated Method and device for reducing video latency
JP2017005513A (ja) * 2015-06-10 2017-01-05 株式会社東芝 画像データ受信装置
CN109040755A (zh) * 2018-09-17 2018-12-18 珠海亿智电子科技有限公司 一种适用于视频编码的图像前处理装置
NO20201393A1 (en) * 2020-12-18 2022-06-20 Pexip AS Method and system for real time audio in multi-point video conferencing

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5300949A (en) * 1992-10-22 1994-04-05 International Business Machines Corporation Scalable digital video decompressor
JP3381077B2 (ja) 1992-12-04 2003-02-24 ソニー株式会社 動画像復号装置
US5815646A (en) 1993-04-13 1998-09-29 C-Cube Microsystems Decompression processor for video applications
KR960013648B1 (ko) 1993-11-13 1996-10-10 엘지전자 주식회사 에이치디티브이(hdtv) 수신장치
US5481297A (en) 1994-02-25 1996-01-02 At&T Corp. Multipoint digital video communication system
US5576765A (en) * 1994-03-17 1996-11-19 International Business Machines, Corporation Video decoder
US5583652A (en) * 1994-04-28 1996-12-10 International Business Machines Corporation Synchronized, variable-speed playback of digitally recorded audio and video
US5623314A (en) 1994-05-18 1997-04-22 Zoran Microelectronics Ltd. MPEG decoder memory data storage and transfer
US5557538A (en) 1994-05-18 1996-09-17 Zoran Microelectronics Ltd. MPEG decoder
JPH10503895A (ja) * 1994-06-17 1998-04-07 スネル アンド ウィルコックス リミテッド 映像圧縮
US5532744A (en) 1994-08-22 1996-07-02 Philips Electronics North America Corporation Method and apparatus for decoding digital video using parallel processing
US5598222A (en) 1995-04-18 1997-01-28 Hatachi American, Ltd. Method and apparatus for decoding multiple video bitstreams using a common memory
KR0152038B1 (ko) 1994-10-17 1998-10-15 김광호 상대 주소를 이용한 가변장 복호화 장치
US5623311A (en) 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
EP0793389B1 (en) * 1996-02-27 2001-08-16 STMicroelectronics S.r.l. Memory reduction in the MPEG-2 main profile main level decoder
US5825424A (en) * 1996-06-19 1998-10-20 Thomson Consumer Electronics, Inc. MPEG system which decompresses and recompresses image data before storing image data in a memory and in accordance with a resolution of a display device
US5818530A (en) * 1996-06-19 1998-10-06 Thomson Consumer Electronics, Inc. MPEG compatible decoder including a dual stage data reduction network
US20020196853A1 (en) * 1997-06-04 2002-12-26 Jie Liang Reduced resolution video decompression
KR100249229B1 (ko) * 1997-08-13 2000-03-15 구자홍 에이치디티브이의 다운 컨버젼 디코딩 장치
US6549577B2 (en) * 1997-09-26 2003-04-15 Sarnoff Corporation Computational resource allocation in an information stream decoder
US5973740A (en) * 1997-10-27 1999-10-26 International Business Machines Corporation Multi-format reduced memory video decoder with adjustable polyphase expansion filter
US6823016B1 (en) * 1998-02-20 2004-11-23 Intel Corporation Method and system for data management in a video decoder
US6487249B2 (en) * 1998-10-09 2002-11-26 Matsushita Electric Industrial Co., Ltd. Efficient down conversion system for 2:1 decimation
US6249549B1 (en) * 1998-10-09 2001-06-19 Matsushita Electric Industrial Co., Ltd. Down conversion system using a pre-decimation filter
US6470051B1 (en) * 1999-01-25 2002-10-22 International Business Machines Corporation MPEG video decoder with integrated scaling and display functions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8311106B2 (en) 2007-02-14 2012-11-13 Samsung Electronics Co., Ltd. Method of encoding and decoding motion picture frames

Also Published As

Publication number Publication date
JP2000224591A (ja) 2000-08-11
US6996174B2 (en) 2006-02-07
US6470051B1 (en) 2002-10-22
US20030002584A1 (en) 2003-01-02
KR20000071244A (ko) 2000-11-25
SG83760A1 (en) 2001-10-16
JP3395166B2 (ja) 2003-04-07
MY123450A (en) 2006-05-31
MY137313A (en) 2009-01-30

Similar Documents

Publication Publication Date Title
KR100376607B1 (ko) 통합 비디오 디코딩 시스템 및 그를 이용한 비디오 데이터의 인코딩 스트림 처리 방법과, 비디오 디코딩 시스템의 프레임 버퍼 할당 방법과, 기록 매체
US6442206B1 (en) Anti-flicker logic for MPEG video decoder with integrated scaling and display functions
US6542162B1 (en) Color mapped and direct color OSD region processor with support for 4:2:2 profile decode function
US6519283B1 (en) Integrated video processing system having multiple video sources and implementing picture-in-picture with on-screen display graphics
JP3943129B2 (ja) 3:2のプルダウンで映像をデコードしそして表示するメモリ利用法
KR100774494B1 (ko) Mpeg 호환 가능한 압축된 이미지 데이터스트림을 디지털 방식으로 처리하기 위한 방법 및 mpeg 호환 가능한 디코더
US5668599A (en) Memory management for an MPEG2 compliant decoder
US5835636A (en) Method and apparatus for reducing the memory required for decoding bidirectionally predictive-coded frames during pull-down
US5973740A (en) Multi-format reduced memory video decoder with adjustable polyphase expansion filter
EP0843485A2 (en) MPEG decoder unified memory
US5963222A (en) Multi-format reduced memory MPEG decoder with hybrid memory address generation
JPH08228349A (ja) 高帯域幅メモリを有するmpegビデオ復号器
JPH08130745A (ja) 復号化システム、復号化装置および復号化回路
US6525783B1 (en) Video decoding system
US6529244B1 (en) Digital video decode system with OSD processor for converting graphics data in 4:4:4 format to 4:2:2 format by mathematically combining chrominance values
US9326004B2 (en) Reduced memory mode video decode
KR100249235B1 (ko) 에이치디티브이 비디오 디코더
KR100385527B1 (ko) 비픽처인픽처 텔레비전 시스템을 위한 다중 스크린 디스플레이 형성 방법과 그 시스템 및 기록매체
JP2007235271A (ja) 映像復号装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130225

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140224

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20150225

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20160223

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20170228

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20180227

Year of fee payment: 16