KR101034080B1 - 균일한 비디오 디코딩 및 디스플레이 - Google Patents

균일한 비디오 디코딩 및 디스플레이 Download PDF

Info

Publication number
KR101034080B1
KR101034080B1 KR1020080057840A KR20080057840A KR101034080B1 KR 101034080 B1 KR101034080 B1 KR 101034080B1 KR 1020080057840 A KR1020080057840 A KR 1020080057840A KR 20080057840 A KR20080057840 A KR 20080057840A KR 101034080 B1 KR101034080 B1 KR 101034080B1
Authority
KR
South Korea
Prior art keywords
frame
frame buffer
decoding
video data
buffer
Prior art date
Application number
KR1020080057840A
Other languages
English (en)
Other versions
KR20080112146A (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 KR20080112146A publication Critical patent/KR20080112146A/ko
Application granted granted Critical
Publication of KR101034080B1 publication Critical patent/KR101034080B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 데이터를 디코딩하고 디스플레이하기 위한 실시예들이 본 명세서에 기재된다. 이러한 수 개의 실시예들은 통합된 프레임 버퍼 관리 시스템을 이용하여, 압축된 비디오의 디코딩 및 디스플레이 시에 보다 양호한 메모리 관리를 용이하게 한다. 한가지 접근법은 압축된 비디오 데이터를 디코딩하고 디스플레이하는 방법을 기재한다. 그 방법은 압축된 비디오 프레임을 수신하고, 그 압축된 비디오 프레임을 디코딩하는데 이용하기 위해 프레임 버퍼를 배정하는 것을 수반한다. 프레임 식별자는 할당된 프레임 버퍼에 할당된다. 압축된 비디오 프레임은 프레임 버퍼로 디코딩되고, 프레임 식별자는 디스플레이 모듈에 전달된다.
비디오 압축, 디코딩, 디스플레이, 비디오 디스플레이, 프레임 버퍼

Description

균일한 비디오 디코딩 및 디스플레이{UNIFORM VIDEO DECODING AND DISPLAY}
본 발명의 실시예들은 압축된 비디오 정보를 디코딩하는 것에 관한 것이다.
비디오 압축 스킴에 대한 일반적인 접근법은 하나의 비디오 프레임과 그 다음 비디오 프레임 간의 변경을 추적하는 것을 수반한다. 분리되고 완전한 화상들을 매 비디오 프레임마다 저장하기 보다는, 대부분의 비디오 압축 표준들은 하나 이상의 참조 프레임을 제공하고 이들 참조 프레임을 변경하는 방법을 유의함으로써 대다수의 프레임을 구축하는 것을 수반한다.
예를 들면, 일부 더 인기있는 비디오 압축 표준에서, 하나의 완전한 화상이 시퀀스의 시작 시에 인코딩되고, 그러한 완전한 화상은 인트라 프레임(I 프레임)으로 기술된다. 이러한 I 프레임은 이전에 디코딩된 프레임(I 프레임 또는 보다 이전의 P 프레임 중 어느 하나)에 의존하는 하나 이상의 예측된 프레임(P 프레임)에 대한 참조를 제공한다. 대부분의 인코딩된 비디오는 수 개의 이전에 디코딩된 참조 프레임(I 프레임 또는 P 프레임)에 의존하는 양측-예측 프레임(B 프레임)으로 구성될 것이다.
참조 프레임의 정확한 이용은 상이한 비디오 인코딩 스킴들에 걸쳐 가변된다. 예를 들면, MPEG-2 인코딩 스킴 하에서는, 단지 2개의 가장 최근의 참조 프레임들만이 참조 프레임으로서 이용될 수 있으나, H.264 인코딩 스킴하에서는 참조 프레임은 훨씬 더 긴 기간 동안 요구될 수 있어서, 유지될 필요성이 있다.
현재, 압축된 비디오를 디코딩하는 것은 플랫폼 특정 태스크이다. 예를 들면, 컴퓨터 상에서 비디오를 재생하는데 이용되는 디코더는 자주 비디오가 기록되었던 플랫폼에 록킹하는 방식으로 기록되고, 예를 들면 특정 메모리 핸들링 태스크가 디코더에 구축된다. 따라서, 상이한 플랫폼에 대한 디코더, 예를 들면 휴대용 미디어 재생 디바이스를 개발하는 것은 일반적으로 디코더를 전체적으로 재기록하는 것을 수반한다.
비디오 데이터를 디코딩하고 디스플레이하기 위한 실시예들이 본 명세서에 기재된다. 이들 수개의 실시예들은 단일화된 프레임 버퍼 관리 시스템을 이용하여, 압축된 비디오의 디코딩 및 디스플레이 시에 보다 양호한 메모리 관리를 용이하게 한다. 한가지 접근법은 압축된 비디오 데이터를 디코딩하고 디스플레이하는 방법을 기술한다. 그 방법은 압축된 비디오 프레임을 수신하고, 그 압축된 비디오 프레임을 디코딩하는데 이용하기 위해 프레임 버퍼를 배정하는 것을 수반한다. 프레임 식별자는 그 할당된 프레임 버퍼에 할당된다. 압축된 비디오 프레임은 프레임 버퍼로 디코딩되고, 프레임 식별자는 디스플레이 모듈에 전달된다.
다른 접근법은 비디오 디코딩 및 디스플레이를 위한 시스템을 수반한다. 그 시스템은 압축된 비디오 데이터의 비트 스트림을 수신하고 전체 시스템을 통해 정보를 전달하기 위한 플레이어 모듈을 포함한다. 시스템은 또한 압축된 비디오 데이터를 디코딩하기 위한 코어 디코더를 포함한다. 비디오 스트림을 출력하기 위한 디스플레이 모듈이 포함된다. 프레임 버퍼 모듈 내에 프레임 버퍼를 배정하기 위한 프레임 버퍼 관리자가 또한 포함된다.
다른 실시예에서, 프레임 버퍼 관리자를 운용하는 방법이 기재된다. 그 방법은 프레임 버퍼에 대한 요구를 수신하는 것을 수반한다. 다음으로, 불필요한 프레임 버퍼가 리사이클링 가용한지의 여부가 판정되며, 그러한 불필요한 프레임 버퍼가 가용한 경우, 요구된 프레임 버퍼로서 이용하기 위해 리사이클링된다. 불필요한 프레임 버퍼가 가용하지 않는 경우, 요구된 프레임 버퍼는 가용한 메모리로부터 할당된다.
이제, 본 발명의 몇몇 실시예에 대해 상세하게 참조한다. 본 발명을 대안 실시예(들)에 관련하여 설명하지만, 본 발명을 이들 실시예들로 제한하려는 것이 아님을 이해해야 한다. 반대로, 본 발명은 첨부 청구범위에 정의된 본 발명의 사상 및 범주에 포함되는 대안, 변형 및 등가물을 포함하도록 의도된 것이다.
또한, 이하의 상세한 설명에서, 다수의 특정 세부사항들은 청구 대상의 완전한 이해를 제공하도록 설명된다. 그러나, 본 기술분야의 숙련자라면, 실시예들은 이들 특정 세부사항없이 또는 그 등가물로도 실시될 수 있음을 인식할 것이다. 그 밖의 예들에서, 공지된 방법, 절차, 구성요소 및 회로들은 발명 대상의 양태 및 특징을 불필요하게 모호하게 하지 않도록 상세하게 설명하지는 않았다.
이어지는 상세한 설명의 일부는 프로세스 또는 방법의 측면에서 제시되고 설명되었다. 단계들 및 그 시퀀싱은 이 방법의 동작을 설명하는 도면들(예를 들면, 도 5)에 개시되어 있지만, 그러한 단계들 및 시퀀싱은 예시적인 것이다. 실시예들은 여러가지 그 밖의 단계들 또는 본 도면의 플로우차트에 인용된 단계들의 변동을, 여기에 도시되고 기재된 것과 다른 시퀀스로 수행하도록 잘 적응된다.
상세한 설명의 일부는 컴퓨터 메모리 상에서 수행될 수 있는 데이터 비트에 대한 동작의 절차, 단계, 로직 블록, 프로세싱 및 그 밖의 심볼 표현의 측면에서 제공된다. 이들 설명 및 표현들은 그 연구의 본질을 본 기술분야의 다른 숙련자들에게 가장 효율적으로 전달하기 위해 데이터 프로세싱 분야의 숙련자들에 의해 이용되는 수단들이다. 절차, 컴퓨터-실행 단계, 로직 블록, 프로세스 등은 여기에서 그리고 일반적으로는, 원하는 결과를 도출하는 단계들 또는 명령들의 자기-일관적인 시퀀스인 것으로 생각된다. 단계들은 물리적 양의 물리적 조정을 요구하는 것들이다. 반드시 그러한 것은 아니지만, 통상적으로는, 이들 양들은 컴퓨터 시스템에서 저장되고, 전달되고, 조합되고, 비교되고, 다르게는 조작될 수 있는 전기 또는 자기 신호의 형태를 취한다. 종종, 주로 통상적인 이용으로 인해, 이들 신호들을 비트, 값, 요소, 심볼, 문자, 용어, 숫자 등으로 지칭하는 것이 간편한 것으로 증명되었다.
그러나, 이들 및 유사한 용어들 모두는 적절한 물리적 양과 연관되어야 하고 단지 이들 양에 적용된 간편한 라벨에 불과하다는 것을 명심해야 한다. 이하의 설명으로부터 명백한 바와 같이 달리 구체적으로 언급되지 않는 한, "억세스하는", "기록하는", "포함하는", "저장하는", "송신하는", "횡단하는", "연관되는", "식별하는" 등과 같은 용어를 이용한 설명들은 전체적으로 컴퓨터 시스템의 레지스터 및 메모리 내에서 물리적(전자적) 양으로 표현되는 데이터를, 컴퓨터 시스템 메모리 또는 레지스터 또는 그 밖의 그러한 정보 저장, 송신 또는 디스플레이 디바이스 내에서 물리적 양으로 유사하게 표현되는 다른 데이터로 조작하고 변환하는 컴퓨터 시스템, 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스를 지칭함을 이해해야 한다.
컴퓨팅 디바이스는 통상 적어도 일부 형태의 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨팅 디바이스에 의해 억세스될 수 있는 임의의 가용한 매체일 수 있다. 제한으로서가 아니라 예를 들면, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 그 밖의 데이터와 같은 정보의 저장을 위해 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 그 밖의 메모리 기술, CD-ROM, DVD(digital versatile discs) 또는 그 밖의 광 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 그 밖의 자기 저장 디바이스, 또는 원하는 정보를 저장하는데 이용될 수 있고 컴퓨팅 디바이스에 의해 억세스될 수 있는 임의의 다른 매체를 포함하지만, 이들에 제한되는 것은 아 니다. 통신 매체는 통상 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 그 밖의 데이터를 캐리어 파 또는 그 밖의 전송 메커니즘과 같은 변조된 데이터 신호로 실시하고, 임의의 정보 전달 매체를 포함한다. 용어 "변조된 데이터 신호"는 정보를 신호로 인코딩하는 방식으로 설정 또는 변경된 하나 이상의 특성을 갖는 신호를 의미한다. 제한으로서가 아니라 예를 들면, 통신 매체는 유선 네트워크 또는 직접-와이어링된 접속과 같은 유선 매체, 및 음향, RF, 적외선 및 그 밖의 무선 매체와 같은 무선 매체를 포함한다. 상기들의 임의의 조합들은 또한 컴퓨터 판독가능 매체의 범주 내에 포함되어야 한다.
일부 실시예들은 하나 이상의 컴퓨터 또는 그 밖의 디바이스에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터-실행가능 명령의 일반적인 컨텍스트로 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상적인 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 통상적으로, 프로그램 모듈의 기능은 다양한 실시예들에서 원하는 대로 조합되거나 분산될 수 있다.
여기에 기재된 실시예들이 컴퓨터 시스템의 이산 컴포넌트로서 CPU 및 GPU를 참조할 수 있지만, 본 기술분야의 숙련자라면, CPU 및 GPU가 단일 디바이스로 통합될 수 있고 CPU 및 GPU가 명령 로직, 버퍼, 기능적 유닛 등과 같은 다양한 리소스들을 공유하거나, 분리된 리소스들이 그래픽 및 범용 동작을 위해 제공될 수 있음을 인식할 것이다. 따라서, GPU와 연관되어 본 명세서에 기재된 회로 및/또는 기능 중 임의 또는 전부가 적절하게 구성된 CPU에서 구현되거나 이것에 의해 수행될 수도 있다.
또한, 본 명세서에 기재된 실시예들이 GPU를 참조할 수 있지만, 본 명세서에 기재된 회로 및/또는 기능은 범용 또는 그 밖의 특수용 코프로세서와 같은 다른 타입의 프로세서로, 또는 CPU 내에서 구현될 수도 있음을 이해해야 한다.
기본 컴퓨팅 시스템
이제, 도 1을 참조하면, 예시적인 컴퓨터 시스템(112)의 블록도가 도시된다. 본 명세서에 설명된 컴퓨터 시스템(112)은 실시예들이 이익이 되도록 구현될 수 있는 동작 플랫폼의 예시적인 구성을 예시한다. 그럼에도 불구하고, 상이한 구성을 갖는 다른 컴퓨터 시스템들이 본 발명의 범주 내에서 컴퓨터 시스템(112) 대신에 이용될 수 있다. 즉, 컴퓨터 시스템(112)은 도 1과 관련하여 기재된 것들 이외의 구성요소들을 포함할 수 있다. 더구나, 실시예들은 오직 컴퓨터 시스템(112)과 같은 컴퓨터 시스템이 아니더라도, 이를 가능하게 하도록 구성될 수 있는 임의의 시스템 상에서 실시될 수 있다. 실시예들이 다수의 상이한 타입의 컴퓨터 시스템(112) 상에서 실시될 수 있음을 이해해야 한다. 시스템(112)은 예를 들면, 전용 그래픽 렌더링 GPU에 결합된 강력한 범용 CPU를 구비하는 데스크탑 컴퓨터 시스템 또는 서버 컴퓨터 시스템으로서 구현될 수 있다. 그러한 실시예에서, 주변장치 버스, 특수화된 오디오/비디오 컴포넌트, IO 디바이스 등을 추가하는 컴포넌트들이 포함될 수 있다.
유사하게, 시스템(112)은 핸드헬드 디바이스(예를 들면, 셀전화기 등), 또는 예를 들면, 워싱턴주 레드먼드시의 마이크로소프트사로부터 가용한 Xbox®, 또는 일본 도쿄도 소니 컴퓨터 엔터테인먼트사로부터 가용한 PlayStation3®과 같은 셋탑 비디오 게임 콘솔 디바이스로서 구현될 수 있다. 시스템(112)은 또한 "시스템 온 칩"으로 구현되어, 컴퓨팅 디바이스의 전자장치(예를 들면, 컴포넌트(101, 103, 105, 106 등)는 모두가 하나의 집적 회로 다이 내에 포함된다. 예들은 디스플레이를 구비하는 핸드헬드 기구, 차량 네비게이션 시스템, 휴대용 오락 시스템, 등을 포함한다.
컴퓨터 시스템(112)은 정보를 통신하기 위한 어드레스/데이터 버스(100), 정보 및 명령을 처리하기 위해 버스(100)와 결합된 중앙 프로세서(101), 중앙 프로세서(101)를 위한 정보 및 명령을 저장하기 위해 버스(100)와 결합된 휘발성 메모리 유닛(102)(예를 들어, 랜덤 억세스 메모리[RAM], 정적 RAM, 다이나믹 RAM 등), 및 프로세서(101)를 위한 정적 정보 및 명령을 저장하기 위해 버스(100)와 결합된 비휘발성 메모리 유닛(103)(예를 들어, 판독 전용 메모리[ROM], 프로그램가능 ROM, 플래시 메모리 등)을 포함한다. 더구나, 컴퓨터 시스템(112)은 또한 정보 및 명령을 저장하기 위한 데이터 저장 디바이스(104)(예를 들어, 하드 디스크 드라이브)를 포함한다.
컴퓨터 시스템(112)은 또한, 선택적인 그래픽 서브시스템(105), 선택적인 문자숫자 입력 디바이스(106), 선택적인 커서 제어 또는 지향 디바이스(107), 및 신호 통신 인터페이스(입출력 디바이스)(108)를 포함한다. 선택적인 문자숫자 입력 디바이스(106)는 정보 및 명령 선택을 중앙 프로세서(101)에 통신할 수 있다. 선택적인 커서 제어 또는 지향 디바이스(107)는 사용자 입력 정보 및 명령 선택을 중 앙 프로세서(101)에 통신하기 위해 버스(100)에 결합된다. 또한, 버스(100)에 결합된 신호 통신 인터페이스(입출력 디바이스)(108)는 직렬 포트일 수 있다. 통신 인터페이스(108)는 또한 무선 통신 메커니즘을 포함한다. 통신 인터페이스(108)를 이용하여, 컴퓨터 시스템(112)은 인터넷 또는 인트라넷(예를 들면, 로컬 영역 네트워크)과 같은 통신 네트워크를 통해 그 밖의 컴퓨터 시스템에 통신가능하게 결합될 수 있거나, 데이터(예를 들면, 디지털 텔레비전 신호)를 수신할 수 있다. 컴퓨터 시스템(112)은 또한, 예를 들어, 비디오 케이블(111)에 의해 접속된 부착된 디스플레이 디바이스(110) 상에 정보를 디스플레이함으로써, 정보를 컴퓨터 사용자에 제시하기 위한 그래픽 서브시스템(105)을 포함한다. 일부 실시예들에서, 그래픽 서브시스템(105)은 중앙 프로세서(101)에 통합된다. 그 밖의 실시예들에서, 그래픽 서브시스템(105)은 분리되고 이산된 컴포넌트이다. 그 밖의 실시예들에서, 그래픽 서브시스템(105)은 또 다른 컴포넌트에 통합된다. 그 밖의 실시예들에서, 그래픽 서브시스템(105)은 시스템(112)에 다른 방식으로 포함된다.
비디오 재생 시스템
이하의 실시예들에서, 비디오 디코딩 및 재생에 대한 모듈러 접근법이 기재된다. 일 실시예에서, 프레임 버퍼 관리자의 이용이 기술된다. 이러한 프레임 버퍼 관리자는 비디오 재생 시스템의 코어 디코더 컴포넌트로부터 버퍼 할당의 태스크를 제거함으로써, 비디오 재생 시 메모리 버퍼의 더 효율적인 활용을 고려한다.
비디오 재생 시스템의 플랫폼 특정 구성요소가 코어 비디오 디코더로부터 분리되어 있는 다른 접근법이 기재된다. 이러한 접근법은 비디오 재생 디바이스를 개발할 때 다수의 이점들을 제공한다. 첫째, 이러한 분리는 비디오 재생에 대한 균일한 접근법을 고려하고, 비디오 플레이어의 플랫폼 특정 구성요소가 일치하며, 상이한 비디오 압축 스킴을 지원하기 위해서는 단지 코어 디코더만이 변경될 필요가 있다. 둘째, 코어 디코더가 더 이상 플랫폼 특정이 아니므로, 상이한 플랫폼에 대해 비디오 재생 디바이스를 개발하는 것은 디코더를 재생성하는 것을 수반할 필요가 없다.
이하의 실시예들이 동작을 프레임 면에서 설명하고 있지만, 실시예들은 비디오 데이터의 다른 프리젠테이션을 수반하는 애플리케이션에도 적합하다는 것은 자명하다. 예를 들면, H.264 인코딩 스킴을 수반하는 실시예에서, 완전한 데이터 프레임을 요구하기 보다는, 슬라이스들을 이용할 수 있다.
비디오 비트스트림
이제, 도 2를 참조하면, 예시적인 비트스트림(200)이 일 실시예에 따라 도시되어 있다. 비트스트림(200)이 특정의 열거된 특징, 구성요소 및 순서를 포함하는 것으로 도시되어 있지만, 실시예들은 추가적이거나, 더 적은 또는 상이한 특징, 구성요소, 또는 배열을 수반하는 애플리케이션에도 적합함을 이해해야 한다. 구체적으로, 비트스트림(200)에 도시된 바와 같이, 프레임 데이터의 인코딩 순서는 단지 예시적이며 설명적인 것으로 의도된 것임을 이해해야 한다.
일부 실시예들에서, 압축된 비디오 데이터는 이진 데이터 스트림, 예를 들면 비트스트림(200)과 같은 비트스트림의 형태로 비디오 재생 시스템 또는 모듈에 전달된다. 그러한 실시예에서, 비트스트림은 예를 들면 압축된 비디오 정보를 디코 딩하는데 이용되는 압축/압축해제 스킴(코덱)을 식별하는 일부 식별하는 헤더 정보, 또는 디지털 권리 관리(DRM)와 연관된 일부 정보로 시작될 수 있다.
비트스트림(200)은 인코딩된 I 프레임 201로 시작하는 것으로 도시되어 있다. 앞서 설명된 바와 같이, 인트라 프레임(I 프레임)은 완전한 화상을 나타내며, 이것은 정지 화상과 동일한 것으로 볼 수 있다. 비트스트림(200)은 인코딩된 P 프레임 202, 인코딩된 B 프레임 203, 인코딩된 B 프레임 204, 인코딩된 P 프레임 205, 및 인코딩된 B 프레임 206으로 계속된다.
비트스트림(200)이 제공된 비디오 재생 디바이스는 비트스트림(200)으로부터 I 프레임 211을 추출한다. 다음으로, 비디오 재생 디바이스는 P 프레임 212를 디코딩한다. P 프레임 212는 예측 프레임이고, 다른 참조 프레임에 의존하며, 화살표 221로 표시된 바와 같이, P 프레임 212는 I 프레임 211에 의존한다. B 프레임 213, 양측-예측 프레임을 디코딩할 때, 비디오 재생 디바이스는 2개의 참조 프레임, 예를 들면 화살표 231로 표시된 I 프레임 211 및 화살표 232로 표시된 P 프레임 212를 참조한다. B 프레임 214를 디코딩하는 것은 화살표 241, 242로 표시된 바와 같이 유사한 참조 프레임을 필요로 하지만, P 프레임 215을 디코딩하는 것은 단지 하나의 선행 참조 프레임, 예를 들면 P 프레임 212에 대한 참조를 필요로 한다.
이용 중인 코덱에 따라, 프레임을 디코딩하는데 상이한 참조 프레임이 요구될 수 있다. 예를 들면, MPEG-2 코덱에서, 단지 2개의 가장 최근의 참조 프레임들만이 요구된다. 예를 들면, 비트스트림(200)을 참조하여, 일단 P 프레임 215이 디 코딩되었다면, I 프레임 211이 더 이상 필요하지 않으며, P 프레임 212 및 P 프레임 215은 2개의 가장 최근의 참조 프레임들이다. 반대로, H.264 스킴 하에서는, 참조 프레임이 폐기될 수 있는 명확한 포인트가 없다. 참조 프레임이 불필요한 것으로 명확하게 표시될 때까지, 미래의 프레임들의 디코딩을 도와주도록 가용하게 유지되어야 한다. H.264 하에서, 예를 들면, I 프레임 211은 얼마나 많은 P 프레임이 그 후에 디코딩되었는지에 관계없이, 비트스트림(200)으로 인코딩된 일부 데이터가 달리 표시할 때까지 필요한 것으로 유지된다.
디코딩 순서 및 재생 순서
다수의 비디오 압축 스킴 하에서, 프레임들이 비트스트림으로부터 디코딩되는 순서는 이들이 비디오 재생 디바이스에 의해 디스플레이되는 순서와 동일하지 않다. 예를 들면, B 프레임 자체를 디코딩하려고 시도하기 전에 B 프레임에 대한 참조 프레임을 디코딩하는 것이 필요하지만, 재생 순서는 B 프레임 뒤에 참조 프레임들 중 하나를 배치할 수도 있다.
도 3을 참조하면, 비트스트림(300)에 대한 디코딩 순서 310 및 디스플레이 순서 320이 일 실시예에 따라서 제공된다. 도 3이 특정의 열거된 특징, 구성요소 및 순서를 도시하고 있지만, 실시예들은 추가적이거나, 더 적은 또는 상이한 특징, 구성요소, 또는 배열을 수반하는 애플리케이션에도 매우 적합하다는 것을 이해해야 한다. 구체적으로는, 도 3에 도시된 바와 같이 프레임 데이터의 인코딩, 디코딩 및 재생 순서들은 단지 예시적이고 설명적인 것으로 의도되었음을 이해해야 한다.
도시된 실시예에서, 비트스트림(300)은 8개 프레임의 데이터 값, I 프레임 301, P 프레임 302, B 프레임 303, B 프레임 304, P 프레임 305, B 프레임 306, B 프레임 307, 및 P 프레임 308을 도시하고 있다. 디코딩 순서 310으로 표시된 바와 같이, 비디오 재생 디바이스는 이들 프레임들을 비트스트림(300)에 의해 제공된 순서로 디코딩할 것이다. 일부 실시예들에서, 비트스트림(300)은 실시간으로 디코딩되는데, 예를 들면 I 프레임 301을 구성하는 데이터가 수신되자마자 비디오 재생 디바이스가 I 프레임 301을 디코딩할 것이다.
도시된 실시예에 도시된 바와 같이, 비트스트림(300)에 포함된 프레임의 디스플레이 순서는 디코딩 순서와는 상이하다. 디스플레이 순서 320로 표시된 바와 같이, I 프레임 301이 처음으로, 이어서 B 프레임 303, B 프레임 304, P 프레임 302, B 프레임 306, B 프레임 307, 그리고 P 프레임 305이 표시된다. 이러한 디코딩 순서와 디스플레이 순서의 차이는 수 개의 결과들을 갖는다.
첫 번째로, 압축된 비디오가 실시간으로 압축해제되어 디스플레이되어야 하는 경우, 예를 들면 시간 그래프(399)로 표시된 바와 같이 하나의 디코딩 사이클만큼 디스플레이를 지연시킴으로써, 디코딩된 프레임은 디스플레이 전에 버퍼링될 필요가 있다. 도 3에 도시된 하나의 프레임 지연은 디코딩 및 디스플레이 프레임이 동기하여 유지될 수 있게 하는데, 즉 P 프레임을 디스플레이할 때가 될 때마다 다음 P 프레임이 디코딩되고 있다.
두 번째로, 참조 프레임, 예를 들면 P 프레임은 이들이 디코딩되는 순서가 뒤바뀌어 디스플레이되기 때문에, 각 P 프레임은 비디오 재생 디바이스의 디코딩부 및 비디오 재생 디바이스의 디스플레이부 모두에게 동시에 가용할 필요가 있다. 예를 들면, 도 3에 도시된 바와 같이, P 프레임 302은 시각 1에서 디코딩되지만, 시각 4까지는 디스플레이되지 않을 것이다. 또한 시각 4에서, P 프레임 305의 디코딩 시에 P 프레임 302가 요구될 수 있다.
이러한 두번째 결과를 다루기 위해, 일반적으로는 2개의 접근법들 중 하나가 이용된다. 비디오 재생 디바이스의 어느 디스플레이 구성요소든지 자신의 할당된 버퍼를 가지며, 디코딩된 참조 프레임을 그들을 디스플레이할 때가 될 때까지 복제하고, 또는 디코더는 디코딩된 프레임을 디코딩 순서가 아니라 재생 순서로 포워딩하는 것을 담당한다. 첫번째 접근법은 메모리 복제를 수반하는데, 디코딩된 참조 프레임이 디코더에 의해 유지된 버퍼에 이미 존재하고, 재생 모듈에 의해 이용되는 버퍼에 복사된다. 두번째 접근법은 디코딩의 태스크를 넘어서 디코더에 대한 추가적인 책임에 직면한다.
비디오 디코딩 및 디스플레이를 위한 시스템
이하의 실시예는 비디오 디코딩 및 디스플레이를 위한 시스템을 기재하고 있다. 기재된 시스템은 프레임 데이터의 디코딩 순서와 디스플레이 순서의 차이에 의해 도입되는 문제들과 같이, 비디오 디코딩 및 디스플레이에 의해 제기되는 수 개의 문제들에 대한 더 균일하고 메모리 효율적인 접근법을 고려한다.
이제, 도 4를 참조하면, 비디오 디코딩 및 디스플레이를 위한 시스템(400)이 일 실시예에 따라 기재된다. 시스템(400)이 특정의 열거된 특징, 구성요소 및 배열을 포함하는 것으로 도시되어 있지만, 실시예들은 추가적이거나, 더 적은 또는 상이한 특징, 구성요소, 또는 배열을 수반하는 애플리케이션에도 매우 적합함을 이 해해야 한다. 또한, 시스템(400)의 구성요소들에 속하는 기능은 상이한 실시예들에서 더 적은 구성요소로 조합되거나 추가적인 구성요소에 걸쳐 분산될 수 있음을 이해해야 한다.
시스템(400)은 플레이어 모듈(410), 코어 디코더(420), 디스플레이 모듈(430), 프레임 버퍼 관리자(440), 및 프레임 버퍼 모듈(450)을 포함한다. 도시된 실시예에서, 플레이어 모듈(410)은 시스템(400) 내의 다른 모듈들간의 정보 전달을 용이하게 한다. 코어 디코더(420)는 예를 들면 비트스트림(401)를 통해 수신된 압축된 비디오 데이터를 디코딩하는데 필요한 디코딩 기능을 제공한다. 일부 실시예들에서, 복수의 비디오 압축 스킴을 지원하기 위해 복수의 코어 디코더(420)가 이용될 수 있으며, 대안으로, 일부 실시예들에서는, 하나의 코어 디코더(420)가 수 개의 비디오 압축 스킴을 지원할 수 있다. 도시된 실시예에서, 디스플레이 모듈(430)은 예를 들면 비디오 스트림(499)에 출력함으로써 디코딩된 프레임 정보를 적절한 재생 순서로 출력한다.
시스템(400)은 또한 프레임 버퍼 관리자(440)를 포함하는 것으로 도시되어 있다. 프레임 버퍼 관리자(440)는 프레임 버퍼 모듈(450)로의 억세스를 할당하고 관리하는데 이용된다. 더구나, 일부 실시예들에서, 프레임 버퍼 관리자(440)는, 예를 들어 디스플레이 모듈(430)이 그 프레임 버퍼에 저장된 프레임을 비디오 스트림(499)에 출력한 후, 불필요한 프레임 버퍼를 리사이클링한다. 이번에는, 프레임 버퍼 모듈(450)이 정보, 예를 들어 비디오 데이터의 디코딩된 프레임을 저장하는데 이용된다. 일부 실시예들에서, 단일 프레임 버퍼 모듈(450)과 조합한 프레임 버퍼 관리자(440)의 이용은, 예를 들어, 코어 디코더와 디스플레이 모듈간의 참조 프레임의 중복 복사의 필요성을 제거함으로써, 시스템(400)의 효율적인 동작을 증가시킨다.
추가적으로, 일부 실시예들에서, 시스템(400)의 기능은 코어 디코더(420)가 플랫폼 독립형이 되도록 분리되었다. 통상적인 디코딩 및 재생 모듈과는 달리, 코어 디코더(420)는 메모리 또는 버퍼 억세스와 같은 플랫폼 특정 액션으로 프로그래밍될 필요가 없지만, 대신에 플랫폼 종속 액션들은 플레이어 모듈(410), 프레임 버퍼 관리자(440), 및 디스플레이 모듈(430)에 의해 수행된다. 이와 같이, 추가적인 디코딩 및 디스플레이 디바이스의 개발은 코어 디코더(420)의 완전한 재사용을 허용함으로써 용이하게 된다.
압축된 비디오 데이터의 디코딩 및 디스플레이 방법
이제, 도 5를 참조하면, 압축된 비디오 데이터를 디코딩하고 디스플레이하는 예시적인 방법의 플로우차트(500)가 일 실시예에 따라 도시되어 있다.
이제 단계 510을 참조하면, 프레임 버퍼 관리자는 수신된 압축된 프레임 데이터를 디코딩하는데 이용하기 위해 프레임 버퍼를 배정한다. 도시된 실시예에서, 프레임 버퍼 관리자는 프레임 버퍼로의 억세스를 제공한다. 각각의 새로운 압축된 프레임이, 예를 들어 플레이어 모듈에 의해 수신됨에 따라, 프레임 버퍼는 그 프레임에 대해 할당된다. 이러한 프레임 버퍼는 새롭게 할당되거나, 리사이클링된 프레임 버퍼, 예를 들면 이전에 더 오래 요구되는 프레임에 할당된 프레임 버퍼일 수 있다. 상이한 실시예들에서, 이러한 단계 동안에 상이한 접근법들이 이용된다. 그러한 일 실시예는 도 6을 참조하여 이하에 설명된다.
예를 들면, 도 4를 참조하면, 새로운 프레임이 비트스트림(401)을 통해 수신되는 경우, 플레이어 모듈(410)은 프레임 버퍼 관리자(440)로부터 프레임 버퍼 할당을 요구한다. 프레임 버퍼 관리자(440)는 새로운 프레임에 대한 프레임 버퍼를 배정하고, 포인터를 플레이어 모듈(410)로 리턴한다.
단계 520을 참조하면, 프레임 데이터 및 프레임 버퍼 포인터는 임의의 다른 필요한 정보와 함께, 디코딩을 위해 코어 디코더에 전달된다. 일부 실시예들에서, 일단 프레임 버퍼가 프레임에 대해 할당되면, 압축된 프레임 정보는 할당된 프레임 버퍼에 대한 포인터와 함께, 코어 디코더에 전달된다. 코어 디코더는 임의의 적합한 참조 프레임을 참조하여 압축된 프레임 데이터를 디코딩할 것이다.
상기 예에 계속하여, 플레이어 모듈(410)은 할당된 프레임 버퍼로의 포인터와 함께, 압축된 프레임 데이터를 코어 디코더(420)에 전달한다.
단계 530을 참조하면, 디코딩 후, 코어 디코더는 프레임 관련 정보를 플레이어 모듈에 리턴한다. 일부 실시예들에서, 예를 들면 H.264 스킴이 활용되는 경우, 코어 디코더는 어느 프레임이 어느 순서로 디스플레이되어야 하는지를 나타내기 위해, 디스플레이 모듈에 대한 정보를 "힌트"로서 제공할 필요가 있다. 그러한 실시예에서, 코어 디코더는 POC(picture order count) 정보를 제공하여, 순서를 나타낼 수 있다.
더구나, 일부 실시예들에서, 코어 디코더는 내부 프레임 버퍼 이용 테이블을 유지하여 예를 들어, 참조 프레임들이 저장되는 장소를 식별한다. 그러한 일 실시 예에서, 코어 디코더는 또한 리사이클링될 수 있는 임의의 참조 프레임을 식별하기 위해 업데이트된 프레임 버퍼 이용 테이블을 제공할 것이다. H.264 스킴 하에서, 참조 프레임이 더 이상 필요하지 않는 경우, 비트스트림에 포함된 정보는 그렇게 표시하고, 그 밖의 스킴에 대해서는 참조 프레임은 미리 설정된 개수의 추가적인 프레임들이 디코딩된 후 불필요하게 될 수 있다. 마찬가지로, 새롭게 디코딩된 프레임이 참조 프레임인 경우, 그 위치가 코어 디코더의 프레임 버퍼 이용 테이블에 추가될 것이다.
상기 예에 계속하여, 코어 디코더(420)는 프레임 관련 정보를 플레이어(410)에 출력한다. 코어 디코더(420)는 POC 정보를 출력할 수 있다. 코어 디코더(420)는 리사이클링될 수 있는 임의의 프레임 버퍼, 및/또는 새롭게 디코딩되는 프레임이 참조 프레임인지 여부를 나타내는 업데이트된 프레임 버퍼 이용 테이블을 제공할 수 있다.
이제 단계 540을 참조하면, 플레이어 모듈은 관련 정보를 디스플레이 모듈에 전달한다. 일부 실시예들에서, 그러한 정보는 디코딩된 프레임이 저장되는 프레임 버퍼로의 포인터를 포함할 것이다. 또한, 일부 실시예들에서, 플레이어 모듈은 또한 임의의 POC 정보를 포워딩하여, 어느 프레임이 어느 순서로 출력하는지의 결정시 디스플레이 모듈을 지원할 수 있다.
상기 예를 포함하여, 플레이어 모듈(410)은 디스플레이 모듈(430)에 새롭게 디코딩된 프레임에 관한 POC 정보, 및 디코딩된 프레임이 저장되는 프레임 버퍼에 대한 포인터를 제공한다. 이어서 디스플레이 모듈(430)은 디코딩된 프레임을 적절 한 시간에 비디오 스트림(499)에 출력할 수 있다.
프레임 버퍼 관리자의 동작 방법
이제, 도 6을 참조하면, 프레임 버퍼 관리자의 동작 방법의 플로우차트(600)가 일 실시예에 따라 도시되어 있다.
이제, 단계 610을 참조하면, 프레임 버퍼에 대한 요구가 수신된다. 일부 실시예들에서, 그러한 요구는 압축된 비디오 비트스트림으로부터 하나의 프레임의 데이터 값의 수신시 플레이어 모듈에 의해 송신될 것이다. 예를 들면, 플레이어 모듈(410)은 하나의 프레임에 대응하는 압축된 데이터가 비트스트림(401)을 통해 수신되는 경우에 프레임 버퍼 관리자(440)에 그러한 요구를 송신할 수 있다.
이제, 단계 620을 참조하면, 프레임 버퍼 관리자는 디스플레이 모듈로부터 현재 프레임 버퍼 이용을 요구한다. 일부 실시예들에서, 디스플레이 모듈이 프레임 버퍼에 저장된 디코딩된 프레임을 디스플레이(또는 소모)함에 따라, 이 프레임 버퍼들은 리사이클링된다. 도시된 실시예에서, 프레임 버퍼 관리자는 하나 이상의 프레임 버퍼들이 리사이클링될 준비가 되어 있는지 여부를 판정하기 위해 디스플레이 모듈을 체크한다. 예를 들면, 프레임 버퍼 관리자(440)는 디스플레이 모듈(430)에 대한 현재 프레임 버퍼 이용을 요구한다.
이제, 단계 630을 참조하면, 디스플레이 모듈의 프레임 버퍼 이용은 프레임 버퍼 관리자에 의해 수신된다. 일부 실시예들에서, 디스플레이 모듈은 그 현재 프레임 버퍼 이용의 완전한 리스트가 아니라 리사이클링될 준비가 되어 있는 프레임 버퍼의 리스트를 리턴한다. 예를 들면, 디스플레이 모듈(430)은 그 현재 프레임 버퍼 이용을 프레임 버퍼 관리자(440)에 리턴한다.
이제, 단계 640을 참조하면, 프레임 버퍼 관리자는 새로운 프레임에 의한 이용을 위해 미사용된 프레임 버퍼를 리사이클링하며, 그러한 미사용된 프레임 버퍼 중 어느 것도 리사이클링의 준비가 되어 있지 않은 경우, 프레임 버퍼 관리자는 새로운 프레임에 대해 새로운 프레임 버퍼를 배정한다. 일부 실시예들에서, 새롭게 할당된 프레임 버퍼는 프레임 식별자(프레임 ID)와 연관되어, 프레임 버퍼의 메모리 어드레스로의 포인터로서 기능한다. 프레임 버퍼 관리자는 이들 프레임 ID와 할당된 프레임 버퍼간의 매핑 테이블을 유지할 수 있다.
또한, 일부 실시예들에서, 프레임 버퍼 한계가 존재할 수 있다. 그러한 실시예에서, 프레임 버퍼 이용이 최대 한계에 도달한 경우, 프레임 버퍼 관리자는 단계 620으로 루프백하고, 프레임 버퍼가 가용하게 될 때까지 단계 620, 630을 반복할 수 있다. 그러한 시나리오는, 예를 들면 프레임들이 디스플레이되고 있는 것보다 더 빨리 디코딩되고 있는 경우에 발생할 수 있다.
예를 들면, 프레임 버퍼 관리자(440)는 새롭게 수신된 프레임과 이용하기 위해 디스플레이 모듈(430)에 의한 이전에 이용중인 프레임 버퍼를 리사이클링하고, 프레임 ID를 그 프레임 버퍼에 연관시킨다. 이러한 프레임 ID는 플레이어 모듈(410)에 리턴된다.
이제, 단계 650을 참조하면, 프레임 버퍼 관리자는 업데이트된 코어 디코더 프레임 버퍼 이용 정보를 수신한다. 일부 실시예들에서, 코어 디코더가 프레임 버퍼에 저장된 참조 프레임을 더 이상 요구하지 않는 경우, 그 프레임 버퍼 이용 정 보를 업데이트할 수 있다. 이어서, 예를 들어, 프레임 버퍼를 가용한 프레임 버퍼의 내부 리스트에 추가하고 그 프레임 버퍼를 나중에 새루운 프레임에 할당함으로써, 불필요한 프레임 버퍼가 프레임 버퍼 관리자에 의해 리사이클링될 수 있다.
예를 들면, 코어 디코더(420)가 압축해제된 프레임을 디코딩한 후, 업데이트된 프레임 버퍼 이용 정보를 플레이어 모듈(410)에 전달하여, 프레임 버퍼에 저장된 참조 프레임이 더 이상 필요로 하지 않음을 나타낸다. 이어서, 플레이어 모듈(410)은 이러한 업데이트된 프레임 버퍼 이용 정보를, 가용한 프레임 버퍼의 내부 리스팅을 업데이트하는 프레임 버퍼 관리자(440)에게 전달하여, 그 프레임 버퍼가 리사이클링될 수 있음을 나타낸다.
하나의 비디오 프레임을 디코딩하는 데이터 흐름도
이제, 도 7을 참조하면, 일 실시예에 따라, 예시적인 데이터 흐름도(700)가 도시되어 있다. 데이터 흐름도(700)는 압축된 비디오 중 하나의 프레임을 디코딩할 때, 비디오 재생 디바이스의 모듈들간의 일련의 상호작용들을 도시하고 있다.
압축된 비디오의 프레임이 비디오 재생 디바이스에 도달한 경우, 플레이어 모듈(710)과 같은 플레이어 모듈이 이를 수신한다. 압축된 비디오 데이터의 프레임을 수신한 경우, 플레이어 모듈은 화살표 701로 표시된 바와 같이, 프레임 버퍼에 대한 요구를 프레임 버퍼 관리자(740)에 전송한다.
도시된 실시예에서, 프레임 버퍼 관리자(740)는, 그러한 요구를 수신한 경우에, 화살표 702로 표시된 바와 같이, 그 현재 프레임 버퍼 이용에 대해 디스플레이 모듈(730)을 체크한다. 디스플레이 모듈(730)은 화살표 703으로 표시된 바와 같 이, 그 현재 프레임 버퍼 이용을 응답한다.
프레임 버퍼 관리자(740)는 새롭게 수신된 프레임에 대해 프레임 버퍼를 배정한다. 코어 디코더 또는 디스플레이 모듈에 의해 이용중이지 않은 프레임 버퍼가 존재하는 경우, 프레임 버퍼 관리자(740)는 현존하는 프레임 버퍼를 리사이클링할 것이다. 그렇지 않으면, 프레임 버퍼 관리자(740)는 프레임 버퍼 이용에 대한 한계가 도달되지 않는 경우에 새로운 프레임 버퍼를 배정할 것이다. 이러한 후자의 경우에, 프레임 버퍼 관리자(740)는 현존하는 프레임 버퍼가 리사이클링될 준비가 될 때까지 디스플레이 모듈(730)을 계속해서 폴링할 것이다.
프레임 버퍼 관리자(740)는 프레임 식별자(프레임 ID)를 할당된 프레임 버퍼에 할당하고, 화살표 704로 표시된 바와 같이, 프레임 ID를 다시 플레이어 모듈(710)에 전달한다.
플레이어 모듈(710)은 화살표 705로 표시된 바와 같이, 비디오 데이터의 압축된 프레임 및 프레임 ID를 코어 디코더(720)에 전달한다. 코어 디코더(720)는 압축된 데이터 프레임을 디코딩하고, 압축해제된 데이터를 할당된 프레임 버퍼에 기록할 것이다. 코어 디코더(720)는 화살표 791로 표시된 바와 같이, 할당된 프레임 ID를 메모리 위치에 매핑하기 위해, 프레임 버퍼 관리자(740)를 체크할 필요가 있을 수 있다.
디코딩 후, 코어 디코더(720)는 화살표 706으로 표시된 바와 같이, POC 데이터와 같은 임의의 프레임 관련 정보, 및 임의의 업데이트된 프레임 버퍼 이용을 플레이어 모듈(710)에 리턴할 것이다.
도시된 실시예에서, 플레이어 모듈(710)은 화살표 707로 표시된 바와 같이, 프레임 관련 정보 및 프레임 ID를 디스플레이 모듈(730)과 같은 디스플레이 모듈에 전달할 것이다. 디스플레이 모듈(730)은 프레임 관련 정보를 이용하여 디코딩 프레임의 재생 순서를 판정한다. 디스플레이 모듈(730)은 화살표 792로 표시된 바와 같이, 할당된 프레임 ID를 디코딩된 프레임이 저장된 메모리 위치에 매핑하기 위해, 프레임 버퍼 관리자(740)를 참조할 필요가 있을 수 있다.
플레이어 모듈(710)은 화살표 708로 표시된 바와 같이, 코어 디코더의 프레임 버퍼 이용 정보를 프레임 버퍼 관리자(740)에 전달한다. 프레임 버퍼 관리자(740)는 코어 디코더의 프레임 버퍼 이용 정보를 이용하여 가용한 프레임 버퍼의 내부 리스트를 업데이트할 수 있다.
이와 같이, 본 발명의 실시예들이 기재되었다. 본 발명이 특정 실시예들로 기재되었지만, 본 발명은 그러한 실시예들에 의해 제한되는 것으로 해석되어서는 안되며, 이하의 특허청구의 범위에 따라 해석되어야 함을 이해해야 한다.
본 명세서의 일부에 포함되고 그 일부를 형성하는 첨부된 도면들은 본 발명의 실시예들을 예시하고 있고, 그 상세한 설명과 함께 본 발명의 원리를 설명하는 기능을 한다.
도 1은 본 발명의 실시예들이 구현될 수 있는 예시적인 컴퓨터 시스템의 블록도.
도 2는 일 실시예에 따른, 예시적인 비트스트림의 도면.
도 3은 일 실시예에 따른, 비트스트림의 디코딩 순서 및 디스플레이 순서의 도면.
도 4는 일 실시예에 따른, 비디오 디코딩 및 디스플레이를 위한 시스템의 블록도.
도 5는 일 실시예에 따른, 압축된 비디오 데이터를 디코딩하고 디스플레이하는 예시적인 프로세스의 플로우차트.
도 6은 일 실시예에 따른, 프레임 버퍼 관리자의 동작의 예시적인 프로세스의 플로우차트.
도 7은 일 실시예에 따른, 압축된 비디오 데이터를 디코딩하고 디스플레이하는 예시적인 프로세스의 데이터 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100: 어드레스/데이터 버스
101: 중앙 프로세서
102: 휘발성 메모리 유닛
103: 비휘발성 메모리 유닛
104: 데이터 저장 디바이스
105: 그래픽 서브시스템
106: 문자숫자 입력 디바이스
107: 지향 디바이스
108: 입출력 디바이스
111: 비디오 케이블
112: 컴퓨터 시스템

Claims (20)

  1. 압축된 비디오 데이터를 디코딩하고 디스플레이하는 방법으로서,
    비트스트림에 포함된 제1 압축된 비디오 프레임을 억세스하는 단계;
    복수의 프레임 버퍼로부터 제1 프레임 버퍼를 선택하는 단계 - 상기 복수의 프레임 버퍼는 또한 제2 프레임 버퍼를 포함함 - ;
    제1 프레임 식별자를 상기 제1 프레임 버퍼에 할당하는(assigning) 단계; 및
    상기 제1 압축된 비디오 프레임을 디코딩하여 상기 제1 프레임 버퍼에 저장되는 제1 압축해제된 비디오 프레임을 생성하는 단계 - 상기 제2 프레임 버퍼는 상기 비트스트림에 대한 제2 압축해제된 비디오 프레임을 저장하고, 상기 제2 프레임 버퍼에는 제2 프레임 식별자가 할당되며, 디스플레이 모듈이 재생 순서를 결정하고 상기 재생 순서에 기초하여 선택되는 각각의 프레임 식별자를 이용하여 프레임 버퍼로부터 압축해제된 비디오 프레임을 억세스함 -
    를 포함하는 비디오 데이터 디코딩 및 디스플레이 방법.
  2. 제1항에 있어서,
    상기 디스플레이 모듈에서 프레임 관련 정보를 수신하는 단계를 더 포함하는 비디오 데이터 디코딩 및 디스플레이 방법.
  3. 제2항에 있어서,
    상기 프레임 관련 정보는 POC(picture order count) 정보를 포함하고, 상기 POC 정보는 상기 재생 순서를 결정하는데 유용한, 비디오 데이터 디코딩 및 디스플레이 방법.
  4. 제1항에 있어서,
    상기 선택하는 단계는,
    상기 제1 프레임 버퍼에 대한 요구를 억세스하는 단계;
    상기 디스플레이 모듈로부터 현재 프레임 버퍼 이용을 요구하는 단계;
    상기 디스플레이 모듈로부터 상기 현재 프레임 버퍼 이용을 수신하는 단계; 및
    가용한 프레임 버퍼가 존재하면, 상기 현재 프레임 버퍼 이용에 의해 식별되는 상기 가용한 프레임 버퍼를 상기 제1 프레임 버퍼로 리사이클링(recycling)하는 단계
    를 포함하는 비디오 데이터 디코딩 및 디스플레이 방법.
  5. 제4항에 있어서,
    상기 가용한 프레임 버퍼가 존재하지 않으면, 상기 제1 프레임 버퍼를 배정된 메모리로부터 배정하는 단계를 더 포함하는 비디오 데이터 디코딩 및 디스플레이 방법.
  6. 제1항에 있어서,
    복수의 프레임 식별자의 리스트를 포함하는 업데이트된 프레임 버퍼 이용 리스트를 수신하는 단계를 더 포함하고, 상기 복수의 프레임 식별자 각각은 각각의 프레임 버퍼와 연관되는 비디오 데이터 디코딩 및 디스플레이 방법.
  7. 제6항에 있어서,
    상기 업데이트된 프레임 버퍼 이용 리스트를 참조하여 가용한 프레임 버퍼의 리스트를 업데이트하는 단계를 더 포함하는 비디오 데이터 디코딩 및 디스플레이 방법.
  8. 삭제
  9. 비디오 디코딩을 위한 시스템으로서,
    압축된 비디오 데이터의 비트스트림을 수신하고 정보를 전달하기 위한 플레이어 모듈;
    상기 플레이어 모듈에 결합되고, 상기 압축된 비디오 데이터를 압축해제된 비디오 데이터로 디코딩하기 위한 코어 디코더;
    상기 플레이어 모듈에 결합되고, 재생 순서에 따라 상기 압축해제된 비디오 데이터의 프레임들을 출력하기 위한 디스플레이 모듈;
    상기 플레이어 모듈에 결합되고, 상기 압축해제된 비디오 데이터의 제1 프레임을 저장하기 위해 복수의 프레임 버퍼로부터 제1 프레임 버퍼를 선택하고, 상기 압축해제된 비디오 데이터의 제2 프레임을 저장하기 위해 상기 복수의 프레임 버퍼로부터 제2 프레임 버퍼를 선택하기 위한 프레임 버퍼 관리자 - 프레임 식별자가 상기 복수의 프레임 버퍼에 저장된 상기 압축해제된 비디오 데이터의 각각의 프레임에 할당되고, 상기 디스플레이 모듈은 상기 재생 순서에 기초하여 선택되는 각각의 프레임 식별자를 이용하여 상기 압축해제된 비디오 데이터의 프레임을 억세스함 - ; 및
    상기 플레이어 모듈에 결합되고, 상기 복수의 프레임 버퍼를 포함하는 프레임 버퍼 모듈
    을 포함하는 비디오 디코딩 시스템.
  10. 제9항에 있어서,
    상기 압축된 비디오 데이터의 비트스트림은 복수의 압축된 비디오 프레임을 포함하는 비디오 디코딩 시스템.
  11. 제10항에 있어서,
    상기 플레이어 모듈은, 상기 복수의 압축된 비디오 프레임 중 하나의 압축된 비디오 프레임을 수신할 때, 상기 프레임 버퍼 관리자로부터 프레임 버퍼를 요구하도록 구성되고, 상기 프레임 버퍼 관리자는 프레임 식별자를 상기 프레임 버퍼와 연관시키도록 더 구성되는 비디오 디코딩 시스템.
  12. 제11항에 있어서,
    상기 플레이어 모듈은 상기 압축된 비디오 프레임 및 상기 프레임 식별자를 상기 코어 디코더에 전달하도록 더 구성되는 비디오 디코딩 시스템.
  13. 제12항에 있어서,
    상기 플레이어 모듈은 상기 코어 디코더로부터 프레임 정보를 수신하고 상기 프레임 정보 및 상기 프레임 식별자를 상기 디스플레이 모듈에 전달하도록 더 구성되는 비디오 디코딩 시스템.
  14. 제9항에 있어서,
    상기 프레임 버퍼 관리자는, 상기 프레임 버퍼에 대한 요구의 수신 시에, 가용한 프레임 버퍼가 존재하면 상기 가용한 프레임 버퍼를 리사이클링하고, 그렇지 않으면 새로운 프레임 버퍼를 배정하도록 구성되는 비디오 디코딩 시스템.
  15. 제9항에 있어서,
    상기 압축된 비디오 데이터는 실질적으로 H.264 비디오 표준의 버전에 따른 데이터를 포함하는 비디오 디코딩 시스템.
  16. 제9항에 있어서,
    상기 플레이어 모듈에 결합되고, 상기 압축된 비디오 데이터를 복수의 상이한 비디오 표준에 따라 디코딩하기 위한 복수의 코어 디코더를 더 포함하는 비디오 디코딩 시스템.
  17. 제9항에 있어서,
    상기 코어 디코더는 플랫폼 독립형인 비디오 디코딩 시스템.
  18. 프레임 버퍼 관리자의 동작 방법으로서,
    제1 프레임 버퍼에 대한 요구를 수신하는 단계;
    복수의 프레임 버퍼를 포함하는 리스트를 업데이트하는 단계;
    상기 리스트가 리사이클링에 가용한 불필요한 프레임 버퍼를 포함하는지를 판정하는 단계;
    상기 불필요한 프레임 버퍼가 가용한 경우, 상기 제1 프레임 버퍼로서의 이용을 위해 상기 불필요한 프레임 버퍼를 리사이클링하는 단계;
    상기 불필요한 프레임 버퍼가 가용하지 않은 경우, 가용한 메모리로부터 상기 제1 프레임 버퍼를 배정하는 단계; 및
    비트스트림의 제1 압축된 비디오 프레임을 상기 제1 프레임 버퍼에 저장되는 압축해제된 비디오 데이터의 제1 프레임으로 디코딩하는 단계 - 상기 복수의 프레임 버퍼는 또한 상기 비트스트림으로부터의 압축해제된 비디오 데이터의 제2 프레임을 저장하는 제2 프레임 버퍼를 포함하며, 상기 제1 프레임 버퍼에는 제1 프레임 식별자가 할당되고 상기 제2 프레임 버퍼에는 제2 프레임 식별자가 할당되며, 디스플레이 모듈이 재생 순서를 결정하고 상기 재생 순서에 기초하여 선택되는 각각의 프레임 식별자를 이용하여 상기 프레임 버퍼의 압축해제된 비디오 데이터의 프레임을 억세스함 -
    를 포함하는 프레임 버퍼 관리자의 동작 방법.
  19. 제18항에 있어서,
    상기 판정 단계는,
    상기 디스플레이 모듈로부터 현재 프레임 버퍼 이용을 요구하는 단계;
    상기 디스플레이 모듈로부터 상기 현재 프레임 버퍼 이용을 수신하는 단계; 및
    코어 디코더로부터 업데이트된 코어 디코더 프레임 버퍼 이용을 수신하는 단계
    를 포함하는 프레임 버퍼 관리자의 동작 방법.
  20. 제18항에 있어서,
    가용한 프레임 버퍼들을 식별하기 위해 상기 프레임 버퍼들의 리스트를 업데이트하는 단계를 더 포함하는 프레임 버퍼 관리자의 동작 방법.
KR1020080057840A 2007-06-20 2008-06-19 균일한 비디오 디코딩 및 디스플레이 KR101034080B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/821,069 US8477852B2 (en) 2007-06-20 2007-06-20 Uniform video decoding and display
US11/821,069 2007-06-20

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020110009392A Division KR20110022653A (ko) 2007-06-20 2011-01-31 균일한 비디오 디코딩 및 디스플레이

Publications (2)

Publication Number Publication Date
KR20080112146A KR20080112146A (ko) 2008-12-24
KR101034080B1 true KR101034080B1 (ko) 2011-05-13

Family

ID=40136462

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020080057840A KR101034080B1 (ko) 2007-06-20 2008-06-19 균일한 비디오 디코딩 및 디스플레이
KR1020110009392A KR20110022653A (ko) 2007-06-20 2011-01-31 균일한 비디오 디코딩 및 디스플레이

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020110009392A KR20110022653A (ko) 2007-06-20 2011-01-31 균일한 비디오 디코딩 및 디스플레이

Country Status (5)

Country Link
US (1) US8477852B2 (ko)
JP (1) JP4836010B2 (ko)
KR (2) KR101034080B1 (ko)
CN (1) CN101330621B (ko)
TW (1) TWI393065B (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8427494B2 (en) * 2004-01-30 2013-04-23 Nvidia Corporation Variable-length coding data transfer interface
US8726125B1 (en) 2007-06-06 2014-05-13 Nvidia Corporation Reducing interpolation error
US8725504B1 (en) 2007-06-06 2014-05-13 Nvidia Corporation Inverse quantization in audio decoding
US8477852B2 (en) 2007-06-20 2013-07-02 Nvidia Corporation Uniform video decoding and display
US8502709B2 (en) * 2007-09-17 2013-08-06 Nvidia Corporation Decoding variable length codes in media applications
US8849051B2 (en) 2007-09-17 2014-09-30 Nvidia Corporation Decoding variable length codes in JPEG applications
US8704834B2 (en) * 2007-12-03 2014-04-22 Nvidia Corporation Synchronization of video input data streams and video output data streams
US8687875B2 (en) * 2007-12-03 2014-04-01 Nvidia Corporation Comparator based acceleration for media quantization
US8934539B2 (en) 2007-12-03 2015-01-13 Nvidia Corporation Vector processor acceleration for media quantization
US8385404B2 (en) 2008-09-11 2013-02-26 Google Inc. System and method for video encoding using constructed reference frame
US9307267B2 (en) 2008-12-11 2016-04-05 Nvidia Corporation Techniques for scalable dynamic data encoding and decoding
US20100225655A1 (en) * 2009-03-06 2010-09-09 Microsoft Corporation Concurrent Encoding/Decoding of Tiled Data
US20100226441A1 (en) * 2009-03-06 2010-09-09 Microsoft Corporation Frame Capture, Encoding, and Transmission Management
US8638337B2 (en) * 2009-03-16 2014-01-28 Microsoft Corporation Image frame buffer management
WO2012129716A1 (en) * 2011-03-25 2012-10-04 Telefonaktiebolaget L M Ericsson (Publ) Method in streaming client for handling video streaming data, streaming client, computer programs and computer program products
US8638854B1 (en) 2011-04-07 2014-01-28 Google Inc. Apparatus and method for creating an alternate reference frame for video compression using maximal differences
KR20130005167A (ko) * 2011-07-05 2013-01-15 삼성전자주식회사 영상 신호 디코딩 장치 및 그것의 디코딩 방법
US9420307B2 (en) 2011-09-23 2016-08-16 Qualcomm Incorporated Coding reference pictures for a reference picture set
US10674171B2 (en) * 2011-09-27 2020-06-02 Telefonaktiebolaget Lm Ericsson (Publ) Decoders and methods thereof for managing pictures in video decoding process
US9264717B2 (en) 2011-10-31 2016-02-16 Qualcomm Incorporated Random access with advanced decoded picture buffer (DPB) management in video coding
US9426459B2 (en) * 2012-04-23 2016-08-23 Google Inc. Managing multi-reference picture buffers and identifiers to facilitate video data coding
US9609341B1 (en) 2012-04-23 2017-03-28 Google Inc. Video data encoding and decoding using reference picture lists
US8605217B1 (en) * 2012-10-30 2013-12-10 Texas Instruments Incorporated Jitter cancellation for audio/video synchronization in a non-real time operating system
US9756331B1 (en) 2013-06-17 2017-09-05 Google Inc. Advance coded reference prediction
KR102280170B1 (ko) * 2013-10-04 2021-07-21 삼성전자주식회사 프레임의 특성에 따라 부하를 분배하는 방법 및 장치
CN110659225A (zh) * 2018-06-28 2020-01-07 华为技术有限公司 内存管理方法以及相关装置
CN114513672A (zh) * 2022-03-07 2022-05-17 芯原微电子(北京)有限公司 多格式编码参考帧统一管理方法、装置、设备和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040013765A (ko) * 2002-08-08 2004-02-14 엘지전자 주식회사 비디오 디코딩 시스템

Family Cites Families (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163136A (en) 1989-11-13 1992-11-10 Archive Corporation System for assembling playback data frames using indexed frame buffer group according to logical frame numbers in valid subcode or frame header
US5189671A (en) 1991-12-20 1993-02-23 Raynet Corporation Apparatus and method for formatting variable length data packets for a transmission network
US7095783B1 (en) * 1992-06-30 2006-08-22 Discovision Associates Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto
JP3005385B2 (ja) 1993-03-22 2000-01-31 鐘紡株式会社 ハフマン復号化回路
JP3811183B2 (ja) 1993-11-30 2006-08-16 ジーイー・テクノロジイ・ディベロップメント,インコーポレイテッド データストリームを処理する装置及び方法
JPH0818953A (ja) * 1994-07-01 1996-01-19 Hitachi Ltd 動画像復号表示装置
US6047357A (en) 1995-01-27 2000-04-04 Digital Equipment Corporation High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy
US5774206A (en) 1995-05-10 1998-06-30 Cagent Technologies, Inc. Process for controlling an MPEG decoder
JPH09261647A (ja) 1996-03-21 1997-10-03 Matsushita Electric Ind Co Ltd 動画再生制御方法および動画再生制御装置
US6041403A (en) 1996-09-27 2000-03-21 Intel Corporation Method and apparatus for generating a microinstruction responsive to the specification of an operand, in addition to a microinstruction based on the opcode, of a macroinstruction
US5821886A (en) 1996-10-18 1998-10-13 Samsung Electronics Company, Ltd. Variable length code detection in a signal processing system
US6298370B1 (en) 1997-04-04 2001-10-02 Texas Instruments Incorporated Computer operating process allocating tasks between first and second processors at run time based upon current processor load
WO1999016196A1 (en) 1997-09-25 1999-04-01 Sony Corporation Device and method for generating encoded stream, system and method for transmitting data, and system and method for edition
US6246347B1 (en) 1997-10-27 2001-06-12 Philips Electronics North America Corporation Controller for a variable length decoder
KR100252866B1 (ko) 1997-12-13 2000-04-15 김영환 반도체소자 및 이의 제조방법
CN1183778C (zh) 1998-02-13 2005-01-05 松下电器产业株式会社 图象解码装置及记录媒体
US6008745A (en) 1998-02-17 1999-12-28 Sun Microsystems, Inc. Variable length decoding using lookup tables
JP3014997B2 (ja) 1998-02-26 2000-02-28 鐘紡株式会社 可変長符号復号装置
US6859496B1 (en) 1998-05-29 2005-02-22 International Business Machines Corporation Adaptively encoding multiple streams of video data in parallel for multiplexing onto a constant bit rate channel
KR20010083063A (ko) 1998-06-25 2001-08-31 벤자민 에프 커틀러 가변 길이 코딩 및 디코딩 처리 회로, 및 그 방법
JP2000049621A (ja) 1998-07-31 2000-02-18 Hitachi Ltd ハフマン復号化方法及びデータ処理装置
JP2000059234A (ja) 1998-08-10 2000-02-25 Mitsubishi Electric Corp 可変長符号処理装置
JP3711762B2 (ja) 1998-09-16 2005-11-02 富士ゼロックス株式会社 画像符号化装置および方法
US6434649B1 (en) 1998-10-14 2002-08-13 Hitachi, Ltd. Data streamer
US6560674B1 (en) 1998-10-14 2003-05-06 Hitachi, Ltd. Data cache system
US6654539B1 (en) * 1998-10-26 2003-11-25 Sony Corporation Trick playback of digital video data
EP1021048A3 (en) 1999-01-14 2002-10-02 Kabushiki Kaisha Toshiba Digital video recording system and its recording medium
US7327791B1 (en) 1999-02-22 2008-02-05 Mitsubishi Denki Kabushiki Kaisha Video decoding method performing selective error concealment and resynchronization
US6480489B1 (en) 1999-03-01 2002-11-12 Sun Microsystems, Inc. Method and apparatus for data re-assembly with a high performance network interface
US6339658B1 (en) 1999-03-09 2002-01-15 Rockwell Science Center, Llc Error resilient still image packetization method and packet structure
JP3493574B2 (ja) 1999-03-11 2004-02-03 Necエレクトロニクス株式会社 逆量子化装置及び逆量子化方法
JP2000324484A (ja) * 1999-05-13 2000-11-24 Hitachi Ltd 画像データ処理装置
EP1089473A1 (en) 1999-09-28 2001-04-04 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Apparatus and method for time-aligning data frames of a plurality of channels in a telecommunication system
US7495669B2 (en) 2002-12-26 2009-02-24 Canon Kabushiki Kaisha Image processing apparatus and image processing method
US6552673B2 (en) 2000-02-25 2003-04-22 Texas Instruments Incorporated Efficient table access for reversible variable length code decoding using a hash function
JP2001285861A (ja) 2000-03-29 2001-10-12 Mitsubishi Electric Corp 画像信号符号化装置
US7113546B1 (en) 2000-05-02 2006-09-26 Ati Technologies, Inc. System for handling compressed video data and method thereof
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
JP3662171B2 (ja) 2000-06-05 2005-06-22 三菱電機株式会社 符号化装置及び符号化方法
US6560690B2 (en) 2000-12-29 2003-05-06 Intel Corporation System and method for employing a global bit for page sharing in a linear-addressed cache
US6543023B2 (en) 2001-02-05 2003-04-01 Agere Systems Inc. Parity-check coding for efficient processing of decoder error events in data storage, communication and other systems
US6587057B2 (en) 2001-07-25 2003-07-01 Quicksilver Technology, Inc. High performance memory efficient variable-length coding decoder
US6981073B2 (en) 2001-07-31 2005-12-27 Wis Technologies, Inc. Multiple channel data bus control for video processing
KR20030016859A (ko) 2001-08-22 2003-03-03 한국전자통신연구원 허프만 부호의 복호화 방법
US6963612B2 (en) 2001-08-31 2005-11-08 Stmicroelectronic, Inc. System for detecting start codes in MPEG video streams and method of operating the same
US6696992B1 (en) 2001-10-02 2004-02-24 Allan Chu Efficient data encoding and decoding processes
US6563440B1 (en) 2001-10-19 2003-05-13 Nokia Corporation Apparatus and method for decoding Huffman codes using leading one/zero string length detection
US6650996B1 (en) 2001-12-20 2003-11-18 Garmin Ltd. System and method for compressing data
US7286543B2 (en) 2002-02-27 2007-10-23 International Business Machines Corporation Memory system with apparatus and method to enable balanced bandwidth utilization
US6891976B2 (en) 2002-03-12 2005-05-10 Intel Corporation Method to decode variable length codes with regular bit pattern prefixes
US7680043B2 (en) * 2002-03-20 2010-03-16 International Business Machines Corporation Network processor having fast flow queue disable process
US7158539B2 (en) 2002-04-16 2007-01-02 Microsoft Corporation Error resilient windows media audio coding
JP4448334B2 (ja) 2002-04-19 2010-04-07 マイクロソフト コーポレーション バイト整列されていない(non−byte−alignedpositions)のポジション、および/またはビット・シフトされたポジション(bit−siftedpositions)を含む位置におけるスタート・コード・エミュレーションを防ぐための方法およびシステム
US6563441B1 (en) 2002-05-10 2003-05-13 Seiko Epson Corporation Automatic generation of program logic to decode variable-length codes
JP3671025B2 (ja) 2002-05-22 2005-07-13 株式会社リコー 光走査装置及び画像形成装置
US7016547B1 (en) 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
JP4562999B2 (ja) * 2002-07-11 2010-10-13 パナソニック株式会社 画像復号化方法および画像復号化装置
US7707154B2 (en) 2002-07-15 2010-04-27 Siemens Aktiengesellschaft Method and devices for encoding/decoding structured documents, particularly XML documents
US6906647B2 (en) 2002-09-20 2005-06-14 Ntt Docomo, Inc. Method and apparatus for arithmetic coding, including probability estimation state table creation
US6825782B2 (en) 2002-09-20 2004-11-30 Ntt Docomo, Inc. Method and apparatus for arithmetic coding and termination
JP2004135067A (ja) * 2002-10-10 2004-04-30 Seiko Epson Corp 動画像再生処理方法、動画像再生装置および動画像再生処理プログラム
JP3513148B1 (ja) * 2002-10-11 2004-03-31 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラム、及び動画像復号プログラム
WO2004047062A2 (en) 2002-11-14 2004-06-03 Opentv, Inc. Positioning of images in a data stream
US7069407B1 (en) 2002-12-20 2006-06-27 Cypress Semiconductor Corporation Method and apparatus for a multi-channel high speed framer
FR2849327A1 (fr) * 2002-12-20 2004-06-25 St Microelectronics Sa Procede et dispositif de decodage audio/video, circuit pilote video et boitier decodeur l'incorporant
CN1692654A (zh) 2003-01-17 2005-11-02 松下电器产业株式会社 动态图像编码方法和动态图像解码方法
US7627042B2 (en) 2003-01-23 2009-12-01 Ittiam Systems (P) Ltd. System, method, and apparatus for error recovery in coded video signals
KR100539923B1 (ko) 2003-02-10 2005-12-28 삼성전자주식회사 화상통화시 화자의 영상을 구분하여 차등적 부호화할 수있는 비디오 엔코더 및 이를 이용한 비디오신호의 압축방법
CN101668215A (zh) 2003-02-18 2010-03-10 诺基亚有限公司 图像解码方法
KR100584579B1 (ko) * 2003-04-21 2006-05-30 삼성전자주식회사 광주사 장치
JP2004364211A (ja) 2003-06-09 2004-12-24 Matsushita Electric Ind Co Ltd 動画像復号化装置
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7924921B2 (en) 2003-09-07 2011-04-12 Microsoft Corporation Signaling coding and display options in entry point headers
TWI227840B (en) 2003-12-03 2005-02-11 Via Tech Inc Method and apparatus for multiplying based on Booth's algorithm
US7606313B2 (en) 2004-01-15 2009-10-20 Ittiam Systems (P) Ltd. System, method, and apparatus for error concealment in coded video signals
EP1578131A1 (en) * 2004-03-18 2005-09-21 STMicroelectronics S.r.l. Encoding/decoding methods and systems, computer program products therefor
DE502004006570D1 (de) * 2004-04-15 2008-04-30 Tektronix Int Sales Gmbh Verfahren zur Konfiguration einer Filtervorrichtung für einen in Frames organisierten Datenstrom, und Protokolltester
US7113115B2 (en) 2004-06-30 2006-09-26 Intel Corporation Variable length code table look ups
US7074153B2 (en) 2004-08-18 2006-07-11 General Motors Corporation Planetary transmissions having three gear sets and input clutches
US7132963B2 (en) 2004-09-13 2006-11-07 Ati Technologies Inc. Methods and apparatus for processing variable length coded data
TWI245548B (en) * 2004-10-20 2005-12-11 Inst Information Industry Method and device for video decoding
US7933336B2 (en) 2004-11-30 2011-04-26 Humax Co., Ltd. Image down-sampling transcoding method and device
US7817900B2 (en) * 2005-06-30 2010-10-19 Microsoft Corporation GPU timeline with render-ahead queue
US7432835B2 (en) 2005-07-05 2008-10-07 Matsushita Electric Industrial Co., Ltd. Variable length decoding method and device
US7119723B1 (en) 2005-07-28 2006-10-10 Texas Instruments Incorporated Decoding variable length codes while using optimal resources
US7129862B1 (en) 2005-07-29 2006-10-31 Texas Instruments Incorporated Decoding bit streams encoded according to variable length codes
US7372378B2 (en) 2005-12-01 2008-05-13 Nvidia Corporation Efficient decoding of n-tuple variable bit length symbols
US7372379B1 (en) 2006-03-28 2008-05-13 Nvidia Corporation Method and system for decoding N-tuple variable length code
US7324026B2 (en) 2006-05-19 2008-01-29 Nvidia Corporation Optimization of decoder memory usage for VLC tables
US7881582B2 (en) * 2006-06-12 2011-02-01 International Business Machines Corporation Slowing display of digital video
US7975120B2 (en) * 2006-12-27 2011-07-05 Freescale Semiconductor, Inc. Dynamic allocation of message buffers
CN101017574A (zh) 2007-02-16 2007-08-15 上海广电集成电路有限公司 一种适于jpeg码流的哈夫曼解码方法
US8477852B2 (en) 2007-06-20 2013-07-02 Nvidia Corporation Uniform video decoding and display

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040013765A (ko) * 2002-08-08 2004-02-14 엘지전자 주식회사 비디오 디코딩 시스템

Also Published As

Publication number Publication date
KR20080112146A (ko) 2008-12-24
US20080317138A1 (en) 2008-12-25
TWI393065B (zh) 2013-04-11
TW200912797A (en) 2009-03-16
CN101330621B (zh) 2014-09-24
US8477852B2 (en) 2013-07-02
CN101330621A (zh) 2008-12-24
JP4836010B2 (ja) 2011-12-14
KR20110022653A (ko) 2011-03-07
JP2009005345A (ja) 2009-01-08

Similar Documents

Publication Publication Date Title
KR101034080B1 (ko) 균일한 비디오 디코딩 및 디스플레이
CN110166810B (zh) 视频渲染引擎切换方法、装置、设备及可读存储介质
AU2008270802B2 (en) Digital data management using shared memory pool
US8681861B2 (en) Multistandard hardware video encoder
KR20110074489A (ko) 데이터 즉시 청킹을 사용하여 파일 입출력을 스케줄 하는 방법
US20180146243A1 (en) Method and system for managing buffers
US20170220283A1 (en) Reducing memory usage by a decoder during a format change
CN104185062A (zh) 一种终端处理视频流的方法及终端
CN113226501A (zh) 应用程序的流媒体影像提供装置及方法
US7848610B2 (en) Data processing system, reproduction apparatus, computer, reproduction method, program, and storage medium
KR20080044872A (ko) 컴퓨터 상에서 정보 또는 데이터를 처리하기 위한 시스템및 방법
US8880789B2 (en) Optimal power usage in decoding a content stream stored in a secondary storage
CN116700838B (zh) 一种as语言接口函数、音视频处理方法和系统
US9997204B2 (en) Clip scheduling with conflict alert
CN116126260A (zh) 投屏方法及投屏装置
KR100715202B1 (ko) 휴대용 단말기에서 저장매체를 사용하기 장치 및 방법
CN112437303A (zh) 一种jpeg解码方法及装置
CN117834966A (zh) 用于播放器的解码器加载方法、装置、设备及存储介质
CN114827716A (zh) 一种在wpf中创建视频播放器的方法、装置及相关组件
CN113190306A (zh) 显示层级的切换方法、装置、设备及存储介质
CN104363402A (zh) 一种快速显示视频的方法及设备

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
A107 Divisional application of patent
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140422

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190430

Year of fee payment: 9