KR100788869B1 - 비디오 디코딩 장치에서 압축된 비디오 스트림 내 비디오 화상을 디코딩하는 방법 및 비디오 디코딩 장치 - Google Patents

비디오 디코딩 장치에서 압축된 비디오 스트림 내 비디오 화상을 디코딩하는 방법 및 비디오 디코딩 장치 Download PDF

Info

Publication number
KR100788869B1
KR100788869B1 KR1020010025198A KR20010025198A KR100788869B1 KR 100788869 B1 KR100788869 B1 KR 100788869B1 KR 1020010025198 A KR1020010025198 A KR 1020010025198A KR 20010025198 A KR20010025198 A KR 20010025198A KR 100788869 B1 KR100788869 B1 KR 100788869B1
Authority
KR
South Korea
Prior art keywords
picture
decoding
video
buffer
reconstruction
Prior art date
Application number
KR1020010025198A
Other languages
English (en)
Other versions
KR20010106226A (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 KR20010106226A publication Critical patent/KR20010106226A/ko
Application granted granted Critical
Publication of KR100788869B1 publication Critical patent/KR100788869B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/92Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • H04N5/783Adaptations for reproducing at a rate different from the recording rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • H04N9/8045Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/781Television signal recording using magnetic recording on disks or drums

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

본 발명은 코딩된 비디오 화상의 랜덤 엑세스 소스, 비디오 디코더, 및 디코딩된 화상을 저장하기 위한 복수의 재구성 버퍼를 포함하는 비디오 디코딩 장치에서 압축된 비디오 화상을 디코딩하기 위한 방법에 관한 것이다.
상기 방법은 화상 디코딩 순서를 정하는 단계와, 재구성 버퍼의 이용가능성에 따라 화상을 디코딩하도록 상기 비디오 디코더에게 명령하는 단계를 포함한다.
본 발명은 또한 본 발명의 방법을 구현하기 위한 장치에 관한 것이다.
본 발명은 디지털 비디오 디코딩 장치에 적용될 수 있다.

Description

비디오 디코딩 장치에서 압축된 비디오 스트림 내 비디오 화상을 디코딩하는 방법 및 비디오 디코딩 장치{METHOD FOR DECODING VIDEO PICTURES IN COMPRESSED VIDEO STREAMS IN A VIDEO DECODING DEVICE AND VIDEO DECODING DEVICE}
도 1은 디지털 텔레비전 수신기/디코더의 블록도.
도 2는 트릭모드 시스템의 동작에 대응하는 도 1 수신기의 소프트웨어의 일부에 대한 소프트웨어 모듈을 나타내는 도면.
도 3은 총체적인 비디오 디코딩 및 디스플레이 프로세스에 대한 흐름도.
도 4는 '디코드 화상' 명령의 효과(effect)를 나타내는 도면.
도 5는 화상의 유형(I, P, 또는 B)에 따른 화상의 디코딩 프로세스를 나타내는 흐름도.
도 6은 실시예에 따른 비어 있는 버퍼의 선택 프로세스에 대한 흐름도.
도 7은 역재생의 예에 대한 디코더 및 디스플레이 활성과 버퍼 점유(occupancy)를 나타내는 테이블.
<도면 주요 부분에 대한 부호의 설명>
1 : 디지털 텔레비전 수신기/디코더 2 : 순방향 에러 정정 회로
3 : 스트림 파서 4 : 전송 스트림 디멀티플렉서 및 필터
5 : 메모리 6 : PES 파서
7 : TS 디멀티플렉서 8 : MPEG 오디오 디코더
9 : 비디오 디코더 10 : 마이크로 프로세서
12 : 하드 디스크 드라이브 13 : HDD 인터페이스
17 : 트릭 모드 버퍼
MPEG 비디오 스트림이 저장 장치{일예로 디지털 비디오 디코더 세톱 박스에 통합되는 하드디스크 드라이브(HDD)}에 저장되고, MPEG 디코더를 사용함으로써 역으로 판독되어 제공될 수 있는 시스템에서, 다른 속도의 역재생(reverse playback)과 같은 트릭모드 플레이에 대한 가능성이 사용자에 의해 당연히 기대된다.
MPEG 인코딩된 비디오 시퀀스를 역방향으로 제공하는 것은, MPEG 스트림 구조에서 하나의 코딩된 화상을 나타내고 있는 데이터에 대응하는 비디오 엑세스 유닛이 사전에 전송된 화상에 따라 좌우될 수 있다는 점을 고려한다면 난해한 문제이다. 실제로, 비디오 엑세스 유닛은 순방향으로의 디스플레이를 위해 그것들의 디코딩을 용이하게 하는 순서로 보내진다. 따라서, 세 개의 재구성 버퍼(reconstruction buffer)가 그 방향으로 스트림을 디코딩하는데 충분하다.
역 방향으로의 재생이 필요할 때, 상기 재생이 정상적인 속도이거나 가속된 속도라면, 한 가지 해결책은 화상 그룹(일반적으로 12 개의 화상)으로부터의 임의의 화상을 디스플레이하기 이전에 그 화상 그룹에 대응하는 모든 화상을 디코딩하는데 있다. 그 그룹의 (순방향 디스플레이 순서에 있어서) 마지막 화상은 실제로 그 그룹의 첫 번째 화상에 따라 좌우될 수 있는데, 이는 인트라 유형의 화상(intra type picture)이다. 그러한 디코딩된 화상들의 일부만이 재생 속도에 따라 디스플레이될 수 있다.
일반적인 비디오 디코더는 디스플레이 기간(일예로 40㎳) 마다 하나의 화상 디코딩을 수행한다. 이는 트릭모드 재생에 적합하지 않다.
본 발명의 목적은 코딩된 비디오 화상의 랜덤 엑세스 소스, 비디오 디코더, 및 디코딩된 화상을 저장하기 위한 복수의 재구성 버퍼를 포함하는 비디오 디코딩 장치에서 압축된 비디오 화상들을 디코딩하기 위한 방법으로,
·디스플레이 모드에 따라 화상 디코딩 순서를 정하는 단계와,
·재구성 버퍼의 이용가능성에 따라 화상을 디코딩하도록 비동기적인 방식으로 상기 비디오 디코더에게 명령하는 단계를 포함하는 것을 특징으로 한다. 재구성 버퍼가 이용가능하게 되자마자, 동일선 상의(in line) 다음 화상이 디코딩된다. 디코더는 디스플레이 기간마다 하나의 화상을 디코딩하지 않고, 사전 결정된 순서에 따른 화상들의 디코딩을 예상한다. 특히 역 트릭모드 리플레이에 있어서, 이는 중요한데, 그 이유는 소정의 화상이 일부 경우에는 사전에 모두 디코딩될 필요가 있는 4 개 이상의 화상에 따라 달라질 수 있기 때문이다.
실시예에 따라, 상기 방법은,
·디스플레이될 화상을 포함하고 있는 재구성 버퍼로의 엑세스를 상기 화상 의 디스플레이까지 차단(lock)하는 단계와,
·비차단 상태인(unlocked) 재구성 버퍼의 이용가능성에 따라 다른 화상의 디코딩을 명령하는 단계를 더 포함한다.
따라서, 디코딩은 디스플레이 프로세스에 의해 제어되는데, 그 프로세스는 재구성 버퍼로의 엑세스를 차단하지 않음으로써 다음 화상이 디코딩될 시기를 제어하는 디스플레이 프로세스이다.
실시예에 따라, 디코딩 화상의 순서를 정하는 단계는,
·상기 스트림 내의 화상들 중에 디스플레이될 화상의 리스트를 결정하는 단계와,
·디스플레이될 상기 화상에 대한 예측자들의 체인(chains of predictors)을 재귀적으로 결정하고, 상기 예측자에 따른 화상들 이전의 예측자들을 디코딩하는데 필요한 순서에 따라 디스플레이될 상기 화상의 리스트에 상기 예측자를 삽입하는 단계를 포함한다.
실시예에 따라, 압축된 비디오 스트림은 디코딩의 순서에 따라 화상을 포함하고, 상기 방법은 양방향성 화상에 대해 가장 근접한 예측자 및 가장 먼 예측자를 결정하는 단계를 더 포함하는데, 여기서 상기 가장 근접한 예측자는 상기 양방향성 화상에 가장 가까운 스트림 내에 나타나는 화상이고, 상기 가장 먼 예측자는 상기 가장 근접한 예측자에 앞서 디코딩된다.
실시예에 따라, 디코딩 화상의 순서를 결정하는 단계는,
·비디오 스트림의 컨텐츠를 나타내는 사전 결정된 정보를 로딩하는 단계와,
·선택된 디스플레이 모드의 함수로서, 상기 정보로부터 디코딩 화상의 순서를 유도하는 단계를 포함한다.
실시예에 따라, 상기 방법은 디코딩된 화상의 저장을 위해 이용가능한 재구성 버퍼들 중에서 하나의 재구성 버퍼를 선택하는 단계를 더 포함하고, 상기 선택은 디스플레이될 어떠한 디코딩된 화상도 가장 긴 시간 동안에 저장되지 않은 이용가능한 재구성 버퍼를 선택하기 위해서 수행된다.
실시예에 따라, 상기 방법은 각각의 재구성 버퍼에 카운터를 부속시키고, 화상이 디스플레이될 때마다 각각의 카운터를 증가시키고, 그것에 연관되는 버퍼의 화상이 디스플레이될 때 카운터를 리셋시키며, 가장 높은 카운터 값을 갖는 버퍼를 디코딩될 화상에 부속시키는 단계를 더 포함한다.
바람직한 실시예에 따라, 상기 방법은 세 개의 재구성 버퍼만을 사용하여 수행되지만, 반드시 그 수로 제한되지는 않는다.
실시예에 따라, 상기 방법은, 화상의 디코딩에 앞서, 상기 화상이 재구성 버퍼들 중 하나에 이미 존재하는지 여부를 확인하는 단계와, 존재하는 경우에는 상기 화상의 두 번째 디코딩을 회피하는 단계를 더 포함한다.
본 발명의 다른 목적은,
·코딩된 화상을 포함하는 압축된 비디오 스트림의 랜덤 엑세스 소스와,
·디코딩될 화상을 선택하기 위한 수단과,
·디코딩된 화상을 저장하기 위한 복수의 재구성 버퍼와,
·코딩된 화상을 디코딩하기 위한 비디오 디코더와,
·재구성 버퍼의 기록 엑세스(write access)에 대한 이용가능성을 모니터링하고, 재구성 버퍼의 이용가능성에 따라, 선택된 화상을 디코딩하도록 상기 비디오 디코더를 제어하기 위한 수단으로서, 여기서 재구성 버퍼의 이용가능성은 상기 재구성 버퍼에 포함된 화상의 디스플레이 상태에 의해 결정되는, 상기 수단을 포함하는 것을 특징으로 하는 비디오 디코딩 장치에 있다.
랜덤 엑세스 소스는 또한 순차 소스(sequential source)에 연결되는 중간 저장 영역일 수 있다.
본 발명의 방법 및 장치는 세 개의 재구성 버퍼만을 사용하여 다른 속도로의 레코딩된 비디오 스트림의 역방향 재생(playback)을 가능하게 한다.
선택된 화상을 디코딩하기 위해서, 본 발명의 방법은, 재귀적인 프로세스를 사용하여, 디스플레이될 화상의 예측자 화상을 결정하고 디코딩한다.
유리하게, 레코딩된 스트림을 나타내는 사전 결정된 트릭모드 정보는 예측자 화상을 결정하는데 사용된다. 그 트릭모드 정보는 레코딩된 스트림 내의 관련 데이터의 위치 및 화상의 유형을 나타내는 링크된 화상 설명자 리스트의 형태를 취할 수 있다.
어떤 재구성 버퍼가 어떤 화상을 위해 사용될 것인지를 결정하기 위해서 특정 버퍼 할당 메커니즘이 사용된다.
디스플레이될 화상을 포함하는 버퍼로의 기록 엑세스는 그 화상이 디스플레이될 때까지 불가능하게 된다.
본 발명의 다른 특징들 및 장점들은 본 발명의 비-제한적인 실시예에 대한 설명을 통해 나타날 것이다. 도면들은 그 실시예를 설명한다.
(실시예)
1. 완전한 시스템 개요(Complete System Overview)
도 1의 디지털 텔레비전 수신기/디코더(1)는 튜너 및 아날로그/디지털 변환기(미도시)에 의해 제공되는 순방향 에러 정정 회로(Forward Error Correction Circuit)(2)를 포함한다. 정정된 디지털 신호는 전송 스트림 디멀티플렉서 및 필터(4)에 제공된다. 그 디멀티플렉서 및 필터(4)는 수신기(1)의 중앙 통신 버스(11)에 연결된다. 상기 디멀티플렉서 및 필터(4)의 역할은 인입 데이터 스트림 내의 특정한 전송 스트림(TS : Transport stream) 패킷을 선택하고, 그 패킷을 수신기의 다른 응용장치들에 전송(dispatch)하는 것이다. 그 때문에, 상기 디멀티플렉서 및 필터(4)는 마이크로프로세서(10)에 의해 프로그래밍되는 필터를 포함한다.
MPEG 스트림을 레코딩하기 위해서, 수신기는 일예로 EIDE 인터페이스와 같은 인터페이스(13)를 통해 버스(11)에 링크되는 하드디스크 드라이브(12)를 포함한다. 메모리(5)는 하드디스크로부터의 정보를 저장하고 검색하기 위해서 사용되는 수 개의 버퍼 및 영역을 포함한다.
메모리(5)는 원형 버퍼(15 내지 23)를 포함한다. 기록용 FIFO(15)는 하드디스크(12) 상에 레코딩하기 위한 TS 패킷을 디멀티플렉서 및 필터(4)로부터의 도착순으로 저장하는데 사용된다. 판독용 FIFO(16)는 하드디스크로부터 판독되는 TS 패킷을 저장하는데 사용된다. FIFO(15 및 16)은, TS 패킷의 컨텐트 특성에 상관없이, 수신된 데이터 스트림의 서브스트림을 레코딩하거나 판독하는데 사용된다. 레코딩 을 위해서, 프로그래밍된 기준에 대응하는 모든 TS 패킷은 하드디스크(12)로 전송되기 이전에 필터링되어 기록용 FIFO(15)에 기록된다. 그 모드는 전송 스트림 레벨 레코딩 모드로 지칭되고, 나머지 설명에서 사용되는 모드일 것이다.
완전성(completeness)을 위해, 레코딩은 패킷화된 기본 스트림(PES : Packetized Elementary Stream) 레벨에서 또한 달성될 수 있다는 것이 언급된다. FIFO(18 내지 23)는 그 때문에 사용된다. 메모리(5)는 트릭모드 버퍼(17)를 또한 구비한다. 그 버퍼는 트릭모드 정보를 생성하기 위해서 레코딩 동안에 스트림 파서(Stream Parser)(3) 및 마이크로프로세서에 의해 사용되고, 그런 후에 상기 트릭모드 정보는 하드디스크 상에 레코딩된다. 그 버퍼는 하드디스크로부터 판독되는 트릭모드 정보를 저장하기 위해서 재생(reproduction) 동안에 또한 사용된다.
그러한 두 모드에 대한 다른 상세사항은 이미 언급된 유럽 특허 출원에서 발견될 수 있다.
스트림을 디코딩하기 위해서, 수신기(1)는 전송 스트림 디멀티플렉서와 PES 파서(6)를 통해서나 또는 직접적으로 PES 파서(6)를 통해서, 중앙 버스(11)에 연결되는 각각의 오디오 및 비디오 디코더(8 및 9)를 또한 포함한다. 레코딩 모드에 따라, TS 층은 사전에 제거될 수 있거나 또는 제거되지 않을 수 있다. 참조번호 14는 디스플레이 가능한 아날로그 비디오 신호를 생성하는데 필요한 비디오 처리 회로를 나타낸다.
비디오 디코더(9)로 향하도록 예정된 압축된 데이터는 입력 비트 버퍼(25)에 저장되고, 저장되어 있는 압축된 데이터는 디코더(9)에 의해서 상기 버퍼(25)로부 터 적절하게 판독된다. 재구성된 화상은 재구성 메모리(26)에 저장되고, 상기 재구성 메모리(26)는 판독 및 기록 모두를 위해 디코더에 의해서 엑세스된다. 본 발명에 따른 재구성 메모리는 세 개의 버퍼(A, B, C)를 구비하는데, 각각의 버퍼는 하나의 디코딩된 화상에 대응한다.
수신기(1)는 재프로그램가능한 비-휘발성 메모리(24)를 또한 포함하는데, 상기 비-휘발성 메모리(24)는 수신기의 운영 체제, 장치 구동기 및 다른 소프트웨어 모듈을 포함한다. 수신기의 소프트웨어는 마이크로프로세서에 의해 실행된다.
본 설명을 위해서, 트릭모드 정보는, 디스크 상에 저장된 각각의 비디오 엑세스 유닛에 대해서 레코딩의 순서에 따라, 화상의 유형(I, P 또는 B) 및 관련 화상의 위치, 즉 화상 그룹 및 화상을 디코딩하는데 필요한 하드디스크 상의 순서 정보를 포함한다. 트릭모드 정보는 각기 다른 세 유형의 테이블, 즉 시간 인덱스 테이블, 비디오 유닛 설명 테이블, 및 수 개의 비디오 설명 유닛(VDU)으로 분할되고, 각각의 VDU는 특정 수의 연속적인 화상 그룹의 컨텐트를 나타낸다.
그러한 트릭모드 정보의 예는 2000년 4월 5일에 톰손 멀티미디어의 이름으로 출원된 "더미 헤더 삽입을 사용하는 디지털 비디오 시스템에서 디지털 비디오 스트림을 디코딩하기 위한 방법 및 장치"라는 명칭의 유럽 특허 출원서에 설명되어 있다.
도 2는 본 실시예에 따른 수신기(1)의 소프트웨어 모듈을 나타내는 도면이다. 상기 소프트웨어 모듈은 다음과 같은 요소들을 포함한다:
(a) 총체적인 트릭모드 제어부(Overall trickmode Control):
그 소프트웨어 모듈은 디코딩 프로세스의 총체적인 제어를 담당한다. 트릭모드(역방향/순방향, 저속/고속)에 따라, 그 모듈은 어떤 화상이 송신되거나, 디코딩되거나, 또는 디스플레이 되어야 하는지를 명시한다.
일예로서, 만약 선택된 트릭모드가 정규 속도의 X 배인 고속 역방향 재생이라면, 그 모듈은, 시간적인 인덱스 테이블 및 VDU를 사용하여, 어떤 화상이 디스플레이 되어야 하는지, 즉 화상의 유형(I, B, P)을 결정하고, P 또는 B 유형의 화상인 경우에는, 미리 디코딩될 필요가 있는 다른 화상(예측자)을 결정한다. 그 프로세스는 재귀적으로 수행되는데, 그 이유는 예측자의 디코딩 자체가 다른 예측자를 필요로 할 수 있기 때문이다.
트릭모드 정보는 트릭모드 정보 엑세스 관리자(아래 참조)로부터 총체적인 트릭모드 제어부에 의해서 요청된다.
재귀적인 디코딩 알고리듬에 기초하여, 총체적인 트릭모드 제어부는 특정 비디오 엑세스 유닛을 MPEG 비디오 디코더의 입력 버퍼에 전달하도록 스트림 엑세스 관리자(아래 참조)에 지시한다.
총체적인 트릭모드 제어 모듈은 임의의 단계에서의 재생 버퍼 점유(occupancy)의 가상 이미지(virtual image)를 유지한다.
세 개의 재생 버퍼들 중 특정한 하나의 재생 버퍼 내에 있는 화상을 디코딩하기 위해서, 상기 모듈은 도 5 및 도 6의 흐름도와 관련하여 이후에 설명되는 재구성 버퍼 선택 프로세스를 실행시키고, 압축된 화상을 전달하기 이전에 디코딩 관리자에 통보한다.
(b) 트릭모드 정보 엑세스 관리자(Trickmode Information Access Manager):
총체적인 트릭모드 제어 모듈은 레코딩된 스트림에 관한 트릭모드 정보를 필요로 한다. 그 정보는 하드디스크 드라이브(12)에 저장된다. 트릭모드 정보 엑세스 관리자는 하드디스크 드라이브로부터 정보를 수집하고, 수집된 정보를 총체적인 트릭모드 제어부에 공급하는 것을 담당한다.
(c) 스트림 엑세스 관리자(Stream Access Manager):
(연속적으로 디스플레이 되든 그렇지 않든 지간에)디코딩되어야 하는 각각의 단일 화상은 비디오 디코더(9)에 전송되어야 한다. 압축된 컨텐트를 엑세스하기 위해 필요한 모든 정보는 트릭모드 정보 테이블에서 공급된다. 스트림 엑세스 관리자는 총체적인 트릭모드 제어부에 의해 확인된 화상 데이터를 메모리(5)로부터 비디오 디코더로 전달하는 것, 즉 스트리밍 구동기에 의해 하드디스크 드라이브로부터 판독되는 정보 중에서 관련 정보만을 전달하는 것을 담당한다. 디코딩될 각각의 화상에 대해서, 스트림 엑세스 관리자는 총체적인 트릭모드 제어부에 의해 통보 받을 것이다.
(d) 스트리밍 구동기(Streaming Driver):
스트리밍 구동기는 스트림 엑세스 관리자에 의한 처리를 위해서 메모리(5)에 전달될 비디오 컨텐트를 분류(sort out)하는 것을 담당한다. 전형적으로, 스트리밍 구동기는 하드디스크 드라이브로부터 관련 데이터 및 다른 데이터를 포함하고 있는 하나 또는 수 개의 블록을 로드할 것이다. 트릭모드 정보가 스트림과 함께 삽입되는 경우에, 스트리밍 구동기는 트릭모드 정보를 추출하고, 그 추출된 정보를 버퍼(17)에 저장하는 것을 또한 담당한다.
(e) 비디오 디코딩 관리자(Video Decoding Manager):
비디오 디코더는 비디오 디코딩 관리자에게 그것이 언제 새로운 비디오 엑세스 유닛을 수신하여 확인하는지를 통보한다. 비디오 디코딩 관리자는 그러한 특정 화상의 디코딩 및/또는 디스플레이를 순서를 정하고 명시하는 완전한 명령을 총체적인 제어부로부터의 대기 행렬(queue)을 통해서 미리 수신한다. 그 명령에 기초하여, 비디오 디코딩 관리자는 새롭게 검출된 화상의 디코딩을 프로그래밍하고, 만약 그 화상이 디스플레이 되어야 한다면, 그 화상이 디스플레이 될 것이라는 것과 어떻게 그것이 디스플레이 되어야 하는지(상부 또는 하부 필드 먼저, 순방향 또는 역방향)를 대기 행렬을 통해서 디스플레이 관리자에게 통보한다.
각 재구성 버퍼의 소프트웨어 설명자는 각 버퍼의 상태를 반영한다. 그러한 설명자들은 비디오 디코딩 관리자와 디스플레이 관리자에 의해 공유된다. 디코딩을 프로그래밍하기 전에, 비디오 디코딩 관리자는 그 화상을 수신하여야 하는 재구성 버퍼가 이용가능한지를 테스트한다. 만약 이용가능하지 않다면, 그 때 비디오 디코딩 관리자는 디스플레이 관리자가 버퍼를 해제(release)하기를 기다린다. 다음으로, 그 버퍼에서의 디코딩이 프로그래밍되고, 버퍼 엑세스가 다시금 차단 상태(lock)로 될 수 있다.
(f) 디스플레이 관리자(Display Manager):
만약 화상이 일단 디코딩된 후에 디스플레이 되어야 한다면, 그 때 디스플레 이 관리자는 비디오 디코딩 관리자에 의해 통보 받는다. 디스플레이 관리자는 또한 차단 상태인 재구성 버퍼를 비차단 상태로 하고, 일단 그 버퍼가 더 이상 디스플레이를 위해 필요하지 않다면, 다른 화상의 디코딩을 위해서 그 버퍼들을 자유상태(free)로 둔다.
비디오 디코더(9)는 개별적인 화상의 디코딩 및 최종 디스플레이에 관한 특정한 유형의 제어 및 동작을 허용하는 API(응용 프로그램가능 인터페이스 : Application Programmable Interface)를 제공할 수 있다. 특히, 디코더는 각 화상을 디코딩하고, 이어서 디코딩된 화상을 정해진 시간에 특정한 수의 프레임 간격 동안 디스플레이 하도록 지시받을 수 있거나, 또는 그 디코딩된 화상을 전혀 디스플레이하지 않도록 지시받을 수 있다.
화상 디스플레이는 동기적인 프로세스이다. 50Hz 시스템에 대해서, 디스플레이 관리자는 어떤 화상이 디스플레이될 지를 매 40㎳ 마다 검사한다. 즉, 디스플레이 관리자는 디스플레이될 화상을 포함하고 있는 재구성 버퍼를 확인한다.
만약 비디오 디코딩 관리자에 의해서 채워진 디스플레이 관리자의 통보 대기 행렬이 비어 있다면, 그 때는 어떠한 화상도 디스플레이를 위해 이용가능하지 않다. 다음으로, 새로운 화상이 디스플레이될 때까지, 디스플레이된 마지막 화상이 반복될 것이다.
전형적으로, 디스플레이 프로세스는 체인(chain)에서 가장 속도가 느린 프로세스이다. 모든 다른 처리는 디스플레이에 의해 부여되는 리듬(rhythm)을 따를 것이다.
디코딩 처리는 비동기적이고 매우 빠를 수 있기 때문에, 디스플레이될 화상이 디코딩될 때, 그것의 재구성 버퍼는, 상기 화상이 실제로 디스플레이되기 이전에, 후속하는 화상에 의한 임의의 겹쳐쓰기(overwrite)를 회피하기 위해서 차단 상태로 된다. 단지 디스플레이 관리자는, 화상이 디스플레이될 때와 새로운 화상의 재구성이 동일한 버퍼에서 시작할 수 있을 때에만 버퍼를 비차단 상태로 하도록 허용된다. 비디오 디코딩 관리자는, 총체적인 트릭모드 제어부에 의해 요청될 때 새로운 화상을 디코딩하기 위해서, 디스플레이 관리자가 화상을 디스플레이하고 버퍼를 해제할 때까지 기다린다.
삭제
총체적인 트릭모드 제어부에 의한 디코딩 요청의 생성과 스트림 엑세스 관리자에 의한 디코더의 제공(feeding)은 또한 전형적으로 디코딩 프로세스보다 더 빠르다.
비디오 디코더의 비트-버퍼가 가득 차서 더 이상의 압축된 데이터가 제공될 수 없는 경우에는 새로운 화상의 디코딩 순서를 정하는 것이 쓸모 없기 때문에, 스트림 엑세스 관리자에 의한 코딩된 화상 공급과 총체적인 트릭모드 제어부는 동기된다. 총체적인 트릭모드 제어부는 필요시 새로운 화상의 전송을 요청하고, 또 다른 요청을 발행하기 이전에 상기 전송이 완료될 때까지 기다린다. 전송의 완료가 스트림 엑세스 관리자에 의해서 총체적인 트릭모드 제어 프로세스에 통보된다.
스트림 엑세스 관리자와 총체적인 제어부는 비디오 디코더가 비트 버퍼로부터의 데이터를 검색할 때까지 기다리고, 비디오 디코더는, 비디오 디코딩 관리자의 제어 하에서, 디스플레이 관리자가 버퍼를 해제할 때까지 기다린다. 전체적인 시스템은 결국 디스플레이 리듬을 따를 것이다.
디스플레이 상에 제공되기 위해서, MPEG 화상은 사전에 디코딩되어야 한다. 비디오 프로세스는 일련의 연속적인 동작들로 분할될 수 있다. 도 3은 소정의 화상에 대한 전체적인 비디오 프로세스의 개략도이다. 수 개의 그러한 프로세스는 각기 다른 실행 스테이지에서 병렬로 실행할 수 있다. 첫 번째 동작은 디스플레이될 다음 화상을 확인하는데 있다. 이것은 물론 트릭모드의 유형에 따라 좌우된다. 일단 그 화상이 결정되면, 그 화상은 디코딩되어야 한다. 그 동작은 다른 화상들의 재귀적인 디코딩을 포함할 수 있다. 그 동작은 또한 하나 이상의 자유 상태인 재구성 버퍼의 이용가능성에 따라 좌우된다. 마지막 동작은 디코딩된 화상을 디스플레이하는데 있다.
본 실시예에 따른 트릭모드 정보는 링크된 아이템을 포함하고 있는 데이터 구조이다. 그것은 스트림에서의 그것들의 순서에 따라 서로 링크된 화상 설명자로 이루어져 있다. 독자는, 스트림이, 수신될 때(그 경우에는 레코딩될 때) 디스플레이 순서가 아닌 디코딩 순서에 따라 화상을 포함하는 것이 상기된다. 각각의 화상 설명자는 저장 유닛 상에 화상의 압축된 자료를 위치시키기 위해서 충분한 정보뿐만 아니라 MPEG 코딩된 스트림 내의 화상에 대한 상세사항을 제공한다. 스트림 내의 각 화상은 특정 화상 ID를 통해 확인된다. 도 3 및 도 4에서, "N"은 그러한 화상 ID이고, 함수 'Next(N)'은 화상 ID를 리턴시킨다(return). Next(N) 함수의 처리는 디스플레이될 트릭모드의 유형이 제공된다면 그 트릭모드 정보의 분석에 기초한다.
순방향 모드에서, Next(N)는 정상적인 디스플레이 순서(즉, 시간적인 기준에 대한)에 따라 디스플레이될 후속하는 화상의 ID를 리턴시킨다. 역방향 모드에서, Next(N)는 정상적인 디스플레이 순서에 따라 이전 화상의 ID를 리턴시킨다.
고속 동작(순방향 또는 역방향)을 위해서, 화상들은 스킵되어야 하고, 그럼으로써 Next(N)는 비-연속적인 화상들의 ID를 리턴시킨다.
Next(N) 함수는 N을 알고 있는 총체적인 트릭모드 제어 모듈에 의해 구현되는데, 상기 모듈은 화상을 디코딩하는데 필요한 모든 데이터를 엑세스하기 위해서 이미 언급된 특허 출원에서 한정된 트릭모드 테이블을 사용한다.
저속 동작 트릭모드(순방향 또는 역방향)는, 그 트릭모드가 단순히 40㎳ 당 하나의 화상 보다 더 느린 디스플레이 속도를 암시하기 때문에, 디스플레이 관리자의 제어 하에 있다.
도 4는 디코드화상 명령 원리를 나타낸다. 재구성 버퍼의 현재 상태는 도면의 좌측에 표시되어 있다. 버퍼 각각은 특정 화상(X, Y, Z)을 포함한다. 디코드화상 프로세스는, 만약 화상(N)에 적용된다면, 버퍼들 중 하나가 다른 두 버퍼의 컨텐트에 상관없이 그러한 요청된 화상을 결국 포함할 것이라는 것을 보장한다.
이미 언급된 바와 같이, MPEG 화상은 다른 화상들에 따라 좌우될 수 있고, 상기 MPEG 화상의 디코딩은 이미 재구성된 화상의 이용가능성을 필요로 할 수 있다. MPEG 코딩된 스트림은 항상 인트라 화상(Intra picture)의 형태 하에서 다수의 엔트리 포인트를 포함한다. 그러한 엔트리 포인트에 후속하는 화상들 중 어느 것도 그 엔트리 포인트에 선행하는 화상들에 따라 좌우될 수 없다. DVB 표준은 그러한 엔트리 포인트들이 적어도 0.5s 마다 발생할 것이라는 사실을 명시한다. 개방 화상 그룹(Open Group of Picture)은 특별한 경우이다.
디코드화상 명령은 도 5의 흐름도에 의해서 도시된 바와 같은 재귀적인 방법으로 구현된다. 만약 화상의 디코딩이 하나 또는 두 개의 사전 디코딩된 화상의 존재를 필요로 한다면, 상기 후자의 화상들이 먼저 디코딩된다.
만약 목표 화상(PicID)이 재구성 버퍼에 아직 존재하지 않는다면, 그 때는 그것이 디코딩될 필요가 있다. 만약 PicID에 의해 확인된 화상이 "P" 또는 "B" 유형이라면, 그 때는 상기 화상의 디코딩이 순방향 및 역방향 예측자의 존재를 필요로 할 수 있다. 그 정보는 트릭모드 테이블에서 이용가능하다.
디코딩될 화상이 의존하는(depend on) 예측자를 제공하는 방식은 간단히 스트림을 역방향(즉, 사전에 레코딩된 비디오 엑세스 유닛 방향으로)으로 통과시키는 것이고, 마주치는(encountered) 첫 번째 "P" 유형 또는 "I" 유형 화상은 현재 화상에 대한 예측자이다. 그 화상은 트릭모드 정보를 사용하여 발견될 수 있다. 그 예측자는 도 5에서 "가장 근접한 ID(NearestID)"로 지칭된다.
만약 PicID에 의해 확인된 화상이 "P" 유형의 화상이라면, 가장 근접한 ID는, 가장 근접한 ID 화상이 시간적인 척도(time scale)와 디스플레이 순서에 따라 PicID에 의해 확인된 화상 이전에 위치된다는 점에서 순방향 예측자이다.
만약 PicID에 의해 확인된 화상이 "B" 유형의 화상이라면, 가장 근접한 ID는 역방향 예측자이다. 그 때 순방향 예측자는 다음 "I" 또는 "P" 유형의 화상에 대해서 더 역방향을 찾음으로써 발견된다. 그러한 순방향 예측자는 도 5에서 "가장 먼 ID(FarthestID)"로 지칭된다.
화상을 디코딩하기 위해서, 재구성된 예측자가 재구성 버퍼에 존재하지 않는 경우에는, 상기 예측자들이 설정(build)되어야 한다. 그 경우에, 디코드화상 명령은 그러한 화상들에 대해서 재귀적으로 반복된다.
B 화상의 재구성에 앞서, 이미 디코딩되어 재구성 버퍼에 존재하지 않는 한, 두 예측자까지 디코딩되어야만 할 수도 있다. 도 5에서 알 수 있는 바와 같이, 가장 먼 ID가 먼저 디코딩되고, 그 다음에 가장 근접한 ID가 디코딩된다. 가장 근접한 ID는 가장 먼 ID에 따라 또한 좌우될 수 있기 때문에, 가장 먼 ID가 먼저 디코딩된다: 따라서, 그 프로세스는 최적화되고, 가장 먼 ID에 대응하는 화상의 2중 디코딩이 회피된다. 일예로, 만약 B 화상이 두 개의 P 화상으로부터 예측된다면, 두 번째 P 화상은 시간적으로 첫 번째 P 화상에 의존한다.
일단 가장 먼 ID가 재구성 버퍼에 설정되면, 그 버퍼는 가장 먼 ID를 겹쳐쓰기 위해서 가장 근접한 ID의 재구성 프로세스를 방지하도록 차단 상태가 되고, 이는 시간적인 결과에 따라 계속된다.
선택된 재생 모드가 무엇이든지 간에, 이제 설명될 바와 같이, 단지 세 개의 재구성 버퍼만이 사용된다.
인트라 화상을 디코딩하는 것은 하나의 자유 버퍼만을 필요로 하는데, 그 이유는 어떠한 예측자도 필요하지 않기 때문이다. 예측 화상을 디코딩하는 것은 하나의 예측자를 필요로 한다: 예측 화상의 디코딩된 예측자가 이미 다른 버퍼에 존재하는지 여부, 즉 재귀적인 디코딩이 수행되어야 하는지 여부에 따라, 하나 또는 두 개의 버퍼가 사용되어야만 할 수 있다.
세 개의 버퍼들 중에서, 하나는 현재 디스플레이되는 화상을 포함한다. 따라서, 두 버퍼들은, 만약 그것들이 현재 화상 이후의 디스플레이될 화상을 포함하고 있지 않다면, 다른 화상을 디코딩하는데 이용가능하고, 그로 인해 임의의 I 또는 P 화상이 현재 화상의 디스플레이를 방해하지 않고도 디코딩될 수 있다.
B 화상은 다른 한편으로는 두 개의 예측자를 필요로 한다. 폐쇄된(closed) 화상 그룹에 있어서, 두 예측자 중 하나의 예측자('가장 근접한 예측자')는 다른 예측자('가장 먼 예측자')에 따라 좌우될 것이다. 가장 먼 예측자를 먼저 디코딩하고 가장 근접한 예측자를 다음에 디코딩함으로써, 두 개의 버퍼만이 두 예측자를 디코딩하기 위해 필요하다. 개방된(open) 화상 그룹에 있어서, 두 예측자는 독립적일 수 있지만, 그러한 예측자들은 현재의 화상 그룹으로부터의 I 화상과 이전 화상 그룹으로부터의 P(또는 I) 화상을 포함하기 때문에, 이전 화상 그룹의 P 또는 I 화상이 먼저 디코딩되는 한 두 개의 버퍼만이 필요하다.
현재 디스플레이되고 있는 화상이 디스플레이될 다음 화상에 대한 예측자들 중 하나가 아닐 때, 그 다음 화상이 B 유형의 화상이라고 가정하면, 상기 화상은 현재 디스플레이되고 있는 화상을 포함하는 버퍼에서 재구성되어야 한다. 현재 이용가능한 디코더에 있어서, 화상이 완전히 디스플레이되기 이전에 디스플레이되는 화상의 겹쳐쓰기를 시작하는 것이 종종 가능하다. 겹쳐쓰기는 디스플레이의 시작 이후에 예를 들어 20㎳에서 시작할 수 있다. 만약 화상이 수 개의 프레임 기간 동안 디스플레이된다면, 겹쳐쓰기는, 물론, 마지막 프레임 기간 동안에 이루어질 수 있다.
따라서, 디코딩 순서가 적절하게 선택되었을 때는 세 개의 재구성 버퍼만이 필요하다는 것이 분명하다.
모든 필요한 예측자가 디코딩되었을 때, 디코딩되어 디스플레이될 새로운 화상을 수신하기 위해서 이용가능한 재구성 버퍼가 선택되어야 한다. 일부 경우에는, B 화상을 디코딩하는 경우에서와 같이 어떠한 선택도 없을 수 있다: 모든 세 개의 버퍼가 사용될 필요가 있는데, 하나는 순방향 예측자를 위해서 사용되고, 하나는 역방향 예측자를 위해서 사용되며, 하나는 B 화상 자체를 위해서 사용되어야 한다.
다른 경우에는, 둘 또는 세 개 중에서 하나의 버퍼만이 선택되어야 한다.
세 개의 재구성 버퍼를 디스플레이 및 디코딩 사이에 할당하는 것은 전체 시스템의 성능에 중요하다. 실제로, 적절한 버퍼가 선택되지 않았을 때는, 부가적인 지연이 정해진 화상을 디코딩하는데 유도될 수 있다. 비디오 디코더의 처리 능력(processing power)에 따라, 화상이 디스플레이되기 이전에 완전하게 디코딩되지 않는 상황이 발생할 수 있다.
본 발명자는, 디코딩 지연을 회피하기 위해서, 디스플레이될 화상을 위해 선택될 버퍼는 가장 오랜 시간 전에 디스플레이 프로세스에 의해서 해제되었던(released) 자유 상태의 버퍼라는 것을 결정하였다.
할당 방법을 구현하기 위해서, 카운터가 각각의 버퍼 모델 요소와 결합된다. 디스플레이될 화상이 버퍼에서 재구성될 때, 그 버퍼의 카운터는 리셋되고, 다른 버퍼들의 카운터들은 증가된다. 본 실시예에 따라, 새로운 화상에 할당된 버퍼는 가장 높은 카운터 값을 갖는 버퍼이다.
도 6은 버퍼 할당 프로세스의 흐름도이다. 그 할당 프로세스는 모든 버퍼들을 두루 순환하고, 예측자를 포함하고 있기 때문에 차단 상태로 된 버퍼들을 포기하며(discard), 비차단 상태로 된 버퍼들 중에서 (만약 있다면)가장 큰 카운터 값을 갖는 버퍼를 선택하는데 있다.
상술된 바와 같이, 화상의 재 순서결정 및 버퍼 할당 문제는 다음의 데이터 구조와 같은 가상 모델을 세 개의 재구성 버퍼들 각각에 대해 하나씩 사용함으로써 해결된다:
typedef u_int8 PicID_t;
typedef struct{
PicID_t picID_t; <Defines the PicID of the
stored
picture>
Boolean isFree_b; <Defines free/locked
status>
U_int8 displayCounter_ui8; <Counter of time
the buffer has been free of a displayed picture>
}Buffer_t;
Buffer_t DecoderState_t[BUFFER_COUNT];
역재생시의 디코딩 프로세스에 대한 예가 이제 도 7과 관련하여 설명될 것이다. 그 예는 개방된 화상 그룹의 경우에 관한 것이다. 비디오 스트림이 다음과 같은 구조를 가지고 있다고 가정하자:
...P'11-B'9-B'10-I2-B0-B1-P5-B3-B4-P8-B6-B7-P11-B9-B10-I"2-B"0-B"1...
여기서 I, P 및 B는 인트라 화상, 예측 화상 및 양방향성 화상들을 각각 나타내고, 각각의 문자와 결합된 숫자는 화상 그룹에서의 정상적인 디스플레이 순서를 나타낸다. 시간 축은 좌측에서 우측으로 이동한다, 즉 '프라임(prime)'화상 그룹이 먼저 정상적으로 디스플레이된다.
각 화상의 예측자가 표 1에 나타나 있다.
화상 가장 근접한 예측자 가장 먼 예측자
B"1 I"2 P11
B"0 I"2 P11
I"2
B10 P11 P8
B9 P11 P8
P11 P8
B7 P8 P5
B6 P8 P5
P8 P5
B4 P5 I2
B3 P5 I2
P5 I2
B1 I2 P'11
B0 I2 P'11
I2
B'10 P'11 P'8
B'9 P'11 P'8
P'11 P'8
도 7은 버퍼(A, B 및 C) 각각의 컨텐트를 나타낸다. '프레임 기간'열은 40㎳ 디스플레이 기간(도면 상에서 그것의 두께에 상관없이)을 카운트한다. 기간 '0'은 P11의 디스플레이 기간에 대응한다. '디스플레이.화상'열은 어떤 화상이 연관된 프레임 기간 동안에 디스플레이되는지를 나타낸다. '프레임 기간 당 디코딩'은 정해진 40㎳ 기간 동안에 디코딩되는 화상의 수를 나타낸다. 회색 영역은 정해진 버퍼의 컨텐트가 디스플레이되는 시기를 나타낸다.
간략함을 위해서, 프레임 기간, 디코딩 기간 및 버퍼 점유 기간이 정렬된다. 그것은 실제로는 반드시 그렇지 않다. 먼저, 화상을 디코딩하는데 필요한 시간은 화상에 따라 좌우된다. 둘째로, 화상은 그것이 완전히 디코딩되기 이전에 디스플레이되기 시작할 수 있다. 일예로, 만약 화상(B"1)이 디코딩되는 동시에 디스플레이되는 것으로 표시된다면, 이것은 화상의 디코딩 이후에 가장 빠른 20㎳에서 디스플레이가 시작함을 의미한다.
화상(P11 내지 B0)이 그러한 순서에 따라 디스플레이될 것이라고 가정하자.
도 7은 상술된 재귀적인 프로세스에 의해 결정되는 모든 화상을 (디스플레이될지 여부에 상관없이)디코딩 순서에 따라 목록화하고 있다.
P11은 P8에 의존하고, P8은 P5에 차례로 의존하고, P5는 차례로 I2에 의존한다. 그 결과, I2는 기간(-4) 동안에 버퍼(A)에서 디코딩되고, P5는 기간(-3) 동안에 디코딩되며, P8도 또한 기간(-3) 동안에 디코딩된다. 기간(-4) 동안에, 화상(B"3)이 디스플레이되고, 반면에 기간(-3) 동안에는 화상(I"2)이 디스플레이된다. 알 수 있는 바와 같이, 기간(-3) 동안에는, 세 개의 화상이 디코딩될 필요가 있다. 필요한 4번째 화상인 I2는 그 이전 기간 동안에 디코딩되는데, 그 이유는 버퍼(A)가 이용가능하기 때문이다. 동일한 기간 동안에, 버퍼(B 및 C)가 이용가능하지 않은데, 그 이유는 버퍼(B)는 디스플레이되는 화상(B"3)을 포함하고, 버퍼(C)는 디스플레이될 다음 화상(I"2)을 포함하고 있는 이유로 차단 상태가 되기 때문이다. 알 수 있는 바와 같이, 화상의 디코딩은 비차단 상태인 버퍼의 이용가능성에 의해 제한되고, 화상들은 그것들이 가능한 한 빨리 필요한 순서로 디코딩된다.
본 예에서는 개방된 화상 그룹을 사용하기 때문에, P11은 그 시점에서 디스플레이되도록 디코딩되지 않고 화상(B"1 및 B"0)에 대한 예측자로서 역할한다. 그러한 두 화상의 다른 예측자는 그 시점에서 이미 버퍼(C)에 존재하는 I"2이다. 따라서, B"1 및 B"0은 디코딩된 후에 바로 (즉, 디코딩이 시작된 이후에 20㎳) 디스플레이될 수 있다.
다음으로, P11이 디스플레이될 것이다. P11은 이미 버퍼(B)에 존재하기 때문에, 그 화상에 대해서 어떠한 새로운 디코딩도 수행되지 않아야 하고, 그 화상은 즉시 디스플레이될 수 있다.
기간(-1)의 종단에서, 버퍼(C)는 이용가능하게 되는데, 그 이유는 B"0이 디코딩되어 있고 버퍼(B 및 C)에 저장된 그것의 예측자가 쓸모 없게 되기 때문이다. 따라서, I2는 I2, P5, P8 및 P11에 따라 B10을 디코딩하는 것에 대한 첫 번째 단계로서 디코딩된다. 다른 화상들의 디코딩도 유사한 패턴을 따른다.
상술한 바와 같이, 본 발명은 세 개의 재구성가능한 버퍼만을 사용하여 다른 속도로 레코딩된 비디오 스트림의 역방향 재생 등을 가능하게 함으로써 트릭 모드 재생에 효과가 있다.

Claims (10)

  1. 코딩된 비디오 화상의 랜덤 엑세스 소스, 비디오 디코더, 및 디코딩된 화상을 저장하기 위한 복수의 재구성 버퍼를 포함하는 비디오 디코딩 장치에서 압축된 비디오 스트림 내 비디오 화상을 디코딩하기 위한 방법으로서,
    화상 디코딩 순서를 정하는 단계와,
    재구성 버퍼의 이용가능성에 따라 화상을 디코딩하도록 상기 비디오 디코더에게 명령하는 단계를
    특징으로 하는, 압축된 비디오 스트림 내 비디오 화상을 디코딩하기 위한 방법.
  2. 제 1 항에 있어서,
    디스플레이될 화상을 포함하고 있는 재구성 버퍼로의 엑세스를 상기 화상의 디스플레이까지 차단(lock)하는 단계와,
    비차단 상태인(unlocked) 재구성 버퍼의 이용가능성에 따라 다른 화상의 디코딩을 명령하는 단계를
    포함하는, 압축된 비디오 스트림 내 비디오 화상을 디코딩하기 위한 방법.
  3. 제 1항 또는 제 2항에 있어서, 상기 화상 디코딩 순서를 정하는 단계는,
    스트림 내의 화상들 중에 디스플레이될 화상의 리스트를 결정하는 단계와,
    디스플레이될 상기 화상에 대한 예측자들의 체인(chains of predictors)을 재귀적으로 결정하고, 상기 예측자들에 따른 화상들 이전의 예측자들을 디코딩하는데 필요한 순서에 따라 디스플레이될 상기 화상의 리스트에 상기 예측자를 삽입하는 단계를
    포함하는, 압축된 비디오 스트림 내 비디오 화상을 디코딩하기 위한 방법.
  4. 제 1항 또는 제 2 항에 있어서, 상기 압축된 비디오 스트림은 디코딩의 순서에 따라 화상을 포함하고,
    양방향성 화상에 대해 가장 근접한 예측자 및 가장 먼 예측자를 결정하는 단계를 더 포함하며, 여기서 상기 가장 근접한 예측자는 상기 양방향성 화상에 가장 가까운 상기 스트림 내에 나타나는 화상이고, 상기 가장 먼 예측자는 상기 가장 근접한 예측자에 앞서 디코딩되는, 압축된 비디오 스트림 내 비디오 화상을 디코딩하기 위한 방법.
  5. 제 1항 또는 제 2 항에 있어서, 상기 화상 디코딩 순서를 결정하는 단계는,
    상기 압축된 비디오 스트림의 컨텐츠를 나타내는 사전 결정된 정보를 로딩하는 단계와,
    선택된 디스플레이 모드의 함수로서, 상기 정보로부터 화상을 디코딩하는 상기 순서를 유도하는 단계를
    포함하는, 압축된 비디오 스트림 내 비디오 화상을 디코딩하기 위한 방법.
  6. 제 1항 또는 제 2 항에 있어서, 디코딩된 화상의 저장을 위해 이용가능한 재구성 버퍼들 중에서 하나의 재구성 버퍼를 선택하는 단계를 더 포함하고, 상기 선택은 디스플레이될 어떠한 디코딩된 화상도 가장 긴 시간 동안에 저장되지 않은 이용가능한 재구성 버퍼를 선택하기 위해서 수행되는, 압축된 비디오 스트림 내 비디오 화상을 디코딩하기 위한 방법.
  7. 제 6항에 있어서, 각각의 재구성 버퍼에 카운터를 부속시키고, 화상이 디스플레이될 때마다 각각의 카운터를 증가시키고, 그것에 연관되는 버퍼의 화상이 디스플레이될 때 카운터를 리셋시키며, 가장 높은 카운터 값을 갖는 버퍼를 디코딩될 화상에 부속시키는 단계를 더 포함하는, 압축된 비디오 스트림 내 비디오 화상을 디코딩하기 위한 방법.
  8. 제 1항 또는 제 2 항에 있어서, 세 개의 재구성 버퍼만을 사용하여 수행되는, 압축된 비디오 스트림 내 비디오 화상을 디코딩하기 위한 방법.
  9. 제 1항 또는 제 2 항에 있어서, 화상의 디코딩에 앞서, 상기 화상이 재구성 버퍼들 중 하나에 이미 존재하는지 여부를 확인하는 단계와, 존재하는 경우에는 상기 화상의 두 번째 디코딩을 회피하는 단계를 더 포함하는, 압축된 비디오 스트림 내 비디오 화상을 디코딩하기 위한 방법.
  10. 코딩된 화상을 포함하는 압축된 비디오 스트림의 랜덤 엑세스 소스(12, 13)와,
    디코딩될 화상을 선택하기 위한 수단(10)과,
    디코딩된 화상을 저장하기 위한 복수의 재구성 버퍼(A, B, C)와,
    코딩된 화상을 디코딩하기 위한 비디오 디코더(9)와,
    재구성 버퍼의 기록 엑세스(write access)에 대한 이용가능성을 모니터링하고, 재구성 버퍼의 이용가능성에 따라 선택된 화상을 디코딩하도록 상기 비디오 디코더를 제어하기 위한 수단(10)으로서, 재구성 버퍼의 이용가능성은 상기 재구성 버퍼에 포함된 화상의 디스플레이 상태에 의해 결정되는, 상기 수단(10)을
    특징으로 하는, 비디오 디코딩 장치.
KR1020010025198A 2000-05-19 2001-05-09 비디오 디코딩 장치에서 압축된 비디오 스트림 내 비디오 화상을 디코딩하는 방법 및 비디오 디코딩 장치 KR100788869B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00401381.9 2000-05-19
EP00401381A EP1156674A1 (en) 2000-05-19 2000-05-19 Method and device for decoding a video data stream in special reproduction modes

Publications (2)

Publication Number Publication Date
KR20010106226A KR20010106226A (ko) 2001-11-29
KR100788869B1 true KR100788869B1 (ko) 2007-12-27

Family

ID=8173691

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010025198A KR100788869B1 (ko) 2000-05-19 2001-05-09 비디오 디코딩 장치에서 압축된 비디오 스트림 내 비디오 화상을 디코딩하는 방법 및 비디오 디코딩 장치

Country Status (16)

Country Link
US (1) US7130526B2 (ko)
EP (2) EP1156674A1 (ko)
JP (1) JP5106722B2 (ko)
KR (1) KR100788869B1 (ko)
CN (1) CN1226873C (ko)
AT (1) ATE286643T1 (ko)
AU (1) AU777957B2 (ko)
BR (1) BR0102043A (ko)
DE (1) DE60108199T2 (ko)
ES (1) ES2234729T3 (ko)
HK (1) HK1038861B (ko)
HU (1) HUP0101843A3 (ko)
MX (1) MXPA01004843A (ko)
MY (1) MY127087A (ko)
TW (1) TW530494B (ko)
ZA (1) ZA200103672B (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8559797B2 (en) * 2000-10-10 2013-10-15 Broadcom Corporation System and method for personal video recording
WO2002043385A2 (en) * 2000-10-10 2002-05-30 Broadcom Corporation System and method for special reproduction modes of a digitally encoded video data stream
US6771274B2 (en) * 2002-03-27 2004-08-03 Sony Corporation Graphics and video integration with alpha and video blending
US6847780B2 (en) 2002-03-28 2005-01-25 Sony Corporation Trick-mode stream creation for personal video recording functions
DK1742479T3 (da) 2002-07-11 2009-12-14 Panasonic Corp Multihypotese B-billede virtuel displaybuffer med lån af plads i H.264 post-dekoder bufferen
AU2003256624A1 (en) * 2002-07-26 2004-02-16 Prediwave Corporation On-the-fly mpeg trick mode processing
US7577204B2 (en) * 2002-11-15 2009-08-18 Broadcom Corporation Hits stream rewind
US20040258160A1 (en) * 2003-06-20 2004-12-23 Sandeep Bhatia System, method, and apparatus for decoupling video decoder and display engine
JP2005017896A (ja) * 2003-06-27 2005-01-20 Canon Inc 光走査装置及びそれを用いた画像形成装置
US8077778B2 (en) * 2003-10-31 2011-12-13 Broadcom Corporation Video display and decode utilizing off-chip processor and DRAM
KR100716970B1 (ko) * 2003-12-08 2007-05-10 삼성전자주식회사 디지털 저장 미디어의 트릭 재생 방법 및 그에 적합한디지털 저장 미디어 구동기
US20050169376A1 (en) * 2004-01-30 2005-08-04 Pai Ramadas L. Motion vector address computer error detection
JP3919115B2 (ja) * 2004-08-18 2007-05-23 ソニー株式会社 復号化装置、復号化方法、復号化プログラム及び復号化プログラムが記録された記録媒体、並びにリバース再生装置、リバース再生方法、リバース再生プログラム及びリバース再生プログラムが記録された記録媒体
JP4780617B2 (ja) * 2004-09-01 2011-09-28 パナソニック株式会社 画像再生方法及び画像再生装置
EP1633128A1 (en) * 2004-09-02 2006-03-08 Deutsche Thomson-Brandt Gmbh Method and apparatus for decoding encoded groups of pictures of a video sequence and presenting said video sequence and said groups of pictures in temporally backward direction
TW200611256A (en) * 2004-09-29 2006-04-01 Quanta Storage Inc Disk device with multimedia video interface
US7885338B1 (en) * 2005-04-25 2011-02-08 Apple Inc. Decoding interdependent frames of a video for display
KR100765787B1 (ko) * 2006-06-15 2007-10-12 삼성전자주식회사 압축 부호화된 영상 데이터 스트림의 재생 방법 및 그 장치
KR100841317B1 (ko) * 2006-07-14 2008-06-26 엘지전자 주식회사 텔레비젼의 시스템 구동과 관련된 소프트웨어를 송수신하는 방법 및 그 장치
JP4902854B2 (ja) * 2006-09-12 2012-03-21 パナソニック株式会社 動画像復号化装置、動画像復号化方法、動画像復号化プログラム、動画像符号化装置、動画像符号化方法、動画像符号化プログラム、及び動画像符号化復号化装置
US8411734B2 (en) * 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
US8265144B2 (en) * 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8885729B2 (en) 2010-12-13 2014-11-11 Microsoft Corporation Low-latency video decoding
CN102572295B (zh) * 2010-12-21 2014-04-02 新奥特(北京)视频技术有限公司 一种特效图调度方法
US9706214B2 (en) 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
ES2958967T3 (es) 2011-06-30 2024-02-16 Microsoft Technology Licensing Llc Reducción de latencia en codificación y descodificación de vídeo
US8731067B2 (en) 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
EP2635025B1 (en) * 2012-02-29 2015-04-08 Advanced Digital Broadcast S.A. Video processing method and video appliance implementing the method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06339111A (ja) * 1993-05-31 1994-12-06 Sanyo Electric Co Ltd 圧縮動画像再生装置
JPH0795536A (ja) * 1993-05-31 1995-04-07 Toshiba Corp 動画像逆再生装置及び方法
JPH07264542A (ja) * 1994-03-23 1995-10-13 Pioneer Electron Corp 動画像復号化装置
JPH08130715A (ja) * 1994-10-31 1996-05-21 Sony Corp 画像再生装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892882A (en) * 1994-03-23 1999-04-06 Pioneer Electronic Corporation Moving picture decoding device having a compressed picture data memory
JP3250588B2 (ja) * 1994-07-12 2002-01-28 ソニー株式会社 データ再生装置
US6009231A (en) * 1994-09-05 1999-12-28 Sony Corporation Reproduction of information using a ring buffer with read and write pointers separated from each other by substantially half of the total ring buffer capacity
JPH08214265A (ja) * 1995-01-31 1996-08-20 Sony Corp 符号化データの再生方法および再生装置
JP3491365B2 (ja) * 1995-01-31 2004-01-26 ソニー株式会社 符号化データ復号方法および復号装置
JP3484834B2 (ja) * 1995-07-28 2004-01-06 ソニー株式会社 データ符号化/復号化方法および装置
GB9703470D0 (en) * 1997-02-19 1997-04-09 Thomson Consumer Electronics Trick play reproduction of MPEG encoded signals
US6453114B2 (en) * 1997-02-18 2002-09-17 Thomson Licensing Sa Random picture decoding
JP3860319B2 (ja) * 1998-01-09 2006-12-20 株式会社東芝 画像再生方法及び装置
JP3132479B2 (ja) * 1998-08-28 2001-02-05 日本電気株式会社 圧縮ストリーム復号化方法および圧縮ストリーム復号化装置
JP3130876B2 (ja) * 1998-09-08 2001-01-31 日本電気アイシーマイコンシステム株式会社 画像再生装置及び画像再生方法
US6751400B1 (en) * 1998-09-17 2004-06-15 Sony Corporation Reproducing method and apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06339111A (ja) * 1993-05-31 1994-12-06 Sanyo Electric Co Ltd 圧縮動画像再生装置
JPH0795536A (ja) * 1993-05-31 1995-04-07 Toshiba Corp 動画像逆再生装置及び方法
JPH07264542A (ja) * 1994-03-23 1995-10-13 Pioneer Electron Corp 動画像復号化装置
JPH08130715A (ja) * 1994-10-31 1996-05-21 Sony Corp 画像再生装置

Also Published As

Publication number Publication date
MXPA01004843A (es) 2004-10-29
HK1038861B (zh) 2006-01-20
KR20010106226A (ko) 2001-11-29
CN1325234A (zh) 2001-12-05
ES2234729T3 (es) 2005-07-01
HUP0101843A2 (en) 2002-06-29
EP1158796B1 (en) 2005-01-05
AU4388701A (en) 2001-11-22
CN1226873C (zh) 2005-11-09
JP2002027409A (ja) 2002-01-25
EP1156674A1 (en) 2001-11-21
ATE286643T1 (de) 2005-01-15
MY127087A (en) 2006-11-30
US20020001458A1 (en) 2002-01-03
ZA200103672B (en) 2001-11-15
JP5106722B2 (ja) 2012-12-26
HK1038861A1 (en) 2002-03-28
DE60108199D1 (de) 2005-02-10
HUP0101843A3 (en) 2003-08-28
AU777957B2 (en) 2004-11-04
DE60108199T2 (de) 2006-01-26
EP1158796A1 (en) 2001-11-28
BR0102043A (pt) 2001-12-18
TW530494B (en) 2003-05-01
US7130526B2 (en) 2006-10-31

Similar Documents

Publication Publication Date Title
KR100788869B1 (ko) 비디오 디코딩 장치에서 압축된 비디오 스트림 내 비디오 화상을 디코딩하는 방법 및 비디오 디코딩 장치
US9521356B2 (en) Digital security surveillance system
US9113209B2 (en) Receivers for television signals
KR101135506B1 (ko) 정보 처리 장치, 정보 처리 방법, 기록 매체, 및 프로그램
CN100541634C (zh) 再现装置及方法
JPH06208493A (ja) 情報信号記憶検索装置
EP0594241B1 (en) Arrangement for storing an information signal in a memory and retrieving the information signal from said memory
EP2405435A2 (en) Method and apparatus for receiving, storing, and presenting programming without indexing prior to storage
WO1999029107A2 (en) Method and apparatus for video-on-demand with fast play capability
AU2002341214A1 (en) Improvements in receivers for television signals
CN100484213C (zh) 更用户友好的时间后移缓冲器
JP4325194B2 (ja) 記憶媒体へのアクセスを管理する装置及び方法
EP1549059A2 (en) Optical disk apparatus
AU2017202489A1 (en) Improvements in receivers for television signals
MXPA01006544A (en) Method for storing digital audio and video dataflow, storage device and receiver for implementing said method
KR20040024406A (ko) 디스크 캐시를 이용하여 디지털 스트림을 기록하는 방법,그 장치 및 그 정보저장매체

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee