KR20130116921A - 공유된 비디오-오디오 파이프라인 - Google Patents
공유된 비디오-오디오 파이프라인 Download PDFInfo
- Publication number
- KR20130116921A KR20130116921A KR1020137021002A KR20137021002A KR20130116921A KR 20130116921 A KR20130116921 A KR 20130116921A KR 1020137021002 A KR1020137021002 A KR 1020137021002A KR 20137021002 A KR20137021002 A KR 20137021002A KR 20130116921 A KR20130116921 A KR 20130116921A
- Authority
- KR
- South Korea
- Prior art keywords
- audio
- stream
- graphics engine
- audio stream
- encoded
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 64
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000013139 quantization Methods 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011545 laboratory measurement Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/4143—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42607—Internal components of the client ; Characteristics thereof for processing the incoming bitstream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42653—Internal components of the client ; Characteristics thereof for processing graphics
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
오디오 스트림의 프로세싱을 수반하는 기술이 개시된다. 예를 들어, 호스트 프로세싱 플랫폼은 인코딩된 오디오 스트림을 포함하는 콘텐츠 스트림을 수신할 수 있다. 이어서, 그래픽 엔진은 그로부터 디코딩된 오디오 스트림을 생성한다. 이 생성은 엔트로피 디코딩 연산, 역양자화 연산 및 역이산 코사인 변환 연산과 같은 다양한 연산을 수행하는 그래픽 엔진을 수반할 수 있다. 실시예에서, 콘텐츠 스트림은 인코딩된 비디오 스트림을 더 포함할 수 있다. 따라서, 그래픽 엔진은 그로부터 디코딩된 비디오 스트림을 생성할 수 있다. 이 오디오 및 비디오 디코딩은 병렬로 수행될 수 있다.
Description
다수의 컴퓨팅 플랫폼은 사용자 애플리케이션과 연관된 다양한 프로세싱 연산을 수행하기 위한 호스트 중앙 프로세싱 유닛(CPU)(본 명세서에서 또한 호스트라 칭함)을 포함한다. 이러한 애플리케이션은 비디오 및/또는 오디오 스트림과 같은 미디어의 디코딩 및 출력(렌더링)을 수반할 수 있다.
비디오와 관련하여, 호스트는 통상적으로 비디오의 디코딩 및 렌더링을 수반하는 연산을 수행하기 위해 그래픽 엔진에 의존한다. 그러나, 오디오에 대해, 호스트는 통상적으로 그 디코딩 및 렌더링을 수반하는 연산을 수행한다. 전용 하드웨어 오디오 코덱(인코더/디코더)이 이용될 수 있지만, 이들은 상당한 비용을 추가한다.
불행하게도, 호스트에 의한 오디오 스트림의 프로세싱은 매우 전력 효율적이지는 않다. 예를 들어, 오디오 프로세싱은 통상적으로 통상의 클라이언트 플랫폼에서 2 또는 4 초과의 스레드에서 행해질 수 없다.
도 1은 예시적인 장치의 다이어그램.
도 2는 예시적인 오디오 프레임의 다이어그램.
도 3은 예시적인 오디오 스트림 디코딩 파이프라인의 다이어그램.
도 4는 오디오 파이프라인에 대응하는 그래픽 드라이버 호(call)를 도시하는 도면.
도 5는 논리 흐름도.
도 2는 예시적인 오디오 프레임의 다이어그램.
도 3은 예시적인 오디오 스트림 디코딩 파이프라인의 다이어그램.
도 4는 오디오 파이프라인에 대응하는 그래픽 드라이버 호(call)를 도시하는 도면.
도 5는 논리 흐름도.
도면에서, 유사한 도면 부호는 일반적으로 동일한, 기능적으로 유사한 및/또는 구조적으로 유사한 요소를 지시한다. 요소가 최초로 나타나는 도면은 도면 부호에서 최좌측 숫자(들)에 의해 지시된다. 본 발명은 첨부 도면을 참조하여 설명될 것이다.
실시예는 오디오 스트림의 프로세싱을 수반하는 기술을 제공한다. 예를 들어, 호스트 프로세싱 플랫폼은 인코딩된 오디오 스트림을 포함하는 콘텐츠 스트림을 수신할 수 있다. 이어서, 그래픽 엔진은 디코딩된 오디오 스트림을 그로부터 생성한다. 이 생성은 엔트로피 디코딩 연산, 역양자화 연산 및 역이산 코사인 변환 연산과 같은 다양한 연산을 수행하는 그래픽 엔진을 수반할 수 있다. 실시예에서, 콘텐츠 스트림은 인코딩된 비디오 스트림을 더 포함할 수 있다. 따라서, 그래픽 엔진은 디코딩된 비디오 스트림을 그로부터 생성할 수 있다. 이 오디오 및 비디오 디코딩은 병렬로 수행될 수 있다.
그래픽 엔진은 비디오 코덱과 연관된 연산의 수행을 위한 하드웨어 가속을 제공한다. 예를 들어, 그래픽 프로세싱 유닛(GPU)은 다수의 유형의 비디오 코덱을 구현하도록 이용될 수 있는 하드웨어 가속을 제공한다. 이러한 코덱의 예는 (이들에 한정되는 것은 아니지만) h.264, mpeg2, vc-1 등을 포함한다. 그러나, 비디오 코덱은 오디오 스트림을 현재 프로세싱하지 않는다. 대신에, 전술된 바와 같이, 오디오 스트림의 프로세싱은 통상적으로 호스트에 의해 취급된다. 불행하게도, 이 접근법은 과도한 양의 전력을 소비할 수 있다.
그러나, 실시예에서, 그래픽 엔진은 오디오 스트림을 프로세싱하는데 이용될 수 있다. 그 결과, 완전한 미디어(비디오 및 오디오) 프로세싱 플랫폼이 독립 소프트웨어 벤더(ISV)에 제공될 수 있다.
또한, 오디오 스트림을 프로세싱하기 위한 그래픽 엔진의 전개는 미디어 재생 시나리오에서 호스트 CPU 소비 전력을 유리하게 감소시킬 수 있다. 예를 들어, 무손실 고선명도(HD) 오디오 스트림은 높은 비트 레이트(평균 3 내지 6 Mbps의 범위이지만, 이들은 15 내지 20 Mbps의 피크 범위에 도달할 수 있음)를 갖는다. 이러한 오디오 스트림의 프로세싱은 상당한 양의 CPU 사이클 및 전력 소비를 필요로 한다. 더 구체적으로, 연구실 측정은 블루레이 디스크 재생 중에 대략 0.5 와트의 CPU 전력이 오디오 프로세싱에 기인할 수 있는 것을 나타내고 있다.
오디오 스트림은 본질적으로 비디오 스트림과는 기본적으로 상당히 상이하지만, 이들은 실시예가 이용하는 다수의 유사성을 갖는다. 예를 들어, 비디오 및 오디오 스트림의 모두는 종종 허프만(Huffman) 압축과 같은 가변 길이 디코딩(VLD) 방안을 통해 압축된다. 또한, 비디오 및 오디오 스트림의 모두는 종종 인코더에서 양자화되고 디코더에서 역양자화된다. 더욱이, 비디오 및 오디오 스트림의 모두는 종종 인코더에서 이산 코사인(DCT) 변환을 사용하여 변환되고, 이어서 디코더에서 역DCT(iDCT) 변환을 경유하여 역변환된다.
실시예는 비디오 및 오디오 스트림의 모두를 프로세싱할 수 있는 통합 비디오/오디오 프로세싱 환경을 제공하기 위해 이들 유사성을 활용할 수 있다. 더욱이, 오디오 코더/디코더(코덱)는 종종 상당히 스레드 가능할 수 있다(스레드 가능성의 정도는 일 오디오 코덱으로부터 다른 오디오 코덱으로 다양할 수 있지만). 이는 통합 비디오/오디오 병렬 실행 엔진으로서 오디오를 비디오와 함께 프로세싱하는 그래픽 엔진을 유리하게 용이하게 할 수 있다. 그래픽 엔진 상의 오디오 프로세싱의 수행은 유리하게는 더 고속이고 더 전력 효율적일 수 있다.
도 1은 본 명세서에 설명된 기술을 이용할 수 있는 예시적인 연산 환경(100)의 다이어그램이다. 환경(100)은 다양한 실시예를 포함할 수 있다. 예를 들어, 도 1은 호스트 프로세싱 플랫폼(102), 그래픽 엔진(104), 콘텐츠 소스(106), 오디오 출력 디바이스(들)(107), 디스플레이 디바이스(108) 및 인터페이스(109)를 포함하는 환경(100)을 도시한다. 이들 요소는 하드웨어 및/또는 소프트웨어의 임의의 조합으로 구현될 수 있다.
호스트 프로세싱 플랫폼(102)은 중앙 프로세싱 유닛(CPU)과 같은 하나 이상의 프로세서(예를 들어, 마이크로프로세서)로 구현될 수 있다. 호스트 프로세싱 플랫폼(102)은 다양한 프로세스 및 애플리케이션을 실행할 수 있다. 도 1에 도시된 바와 같이, 호스트 프로세싱 플랫폼(102)은 운영 체제(OS)(110)를 실행한다. 이 운영 체제를 통해, 다양한 애플리케이션 및 프로세스가 실행될 수 있다. 예를 들어, 도 1은 미디어 애플리케이션(112)을 실행하는 프로세싱 플랫폼(102) 및 하나 이상의 그래픽 엔진 드라이버(111)를 도시한다.
애플리케이션(112)은 오디오 및/또는 비디오(또는 그래픽)를 수반하는 연산을 수행할 수 있다. 예를 들어, 애플리케이션(112)은 인코딩된 콘텐츠(예를 들어, 인코딩된 오디오 및/또는 비디오 콘텐츠)를 수신하는 미디어 애플리케이션일 수 있다. 이 콘텐츠는 콘텐츠 소스(106)로부터 수신될 수 있다.
실시예에서, 그래픽 엔진 드라이버(들)(111)는 호스트 프로세싱 플랫폼(102)에 의해 실행된 소프트웨어를 포함한다. 드라이버(들)(111)는 애플리케이션(112)과 같은 프로세스가 그래픽 엔진(104)과 상호 작용하게 할 수 있다. 이는 드라이버(들)(111)에 의해 제공된 호 또는 루틴을 호출하는 애플리케이션(112)을 수반할 수 있다. 본 명세서에 설명된 바와 같이, 이러한 루틴은 오디오 스트림 뿐만 아니라 비디오 스트림의 디코딩을 수반할 수 있다. 이어서, 드라이버(들)(111)는 그래픽 엔진(104)에 명령을 발행할 수 있다. 이에 응답하여, 그래픽 엔진(104)은 애플리케이션(112)에 최종 데이터를 제공할 수 있다[예를 들어, 드라이버(111)를 경유하여].
실시예에서, 콘텐츠 소스(106)는 하나 이상의 로딩된 디스크로부터 인코딩된 오디오 및/또는 비디오 데이터를 제공하는 디지털 비디오 디스크(DVD), 블루레이 및/또는 콤팩트 디스크(CD) 리더와 같은 광학 저장 매체를 포함할 수 있다. 부가적으로 또는 대안적으로, 콘텐츠 소스(106)는 인코딩된 콘텐츠를 저장하는 자기 또는 전자 저장 매체(자기 디스크 드라이브 또는 고체 상태 드라이브와 같은)를 포함할 수 있다. 그러나, 실시예는 저장 매체의 이들 예에 한정되는 것은 아니다.
또한, 콘텐츠 소스(106)는 유선 또는 무선 통신 매체로부터 인코딩된 콘텐츠를 수신하기 위한 통신 인터페이스를 포함할 수 있다. 통신 매체의 예는 (이들에 한정되는 것은 아니지만) 근거리 통신망(LAN), 무선 LAN(WLAN), 개인 영역 통신망(PAN), 무선 도시권 통신망(WMAN), 휴대폰 네트워크, 케이블 방송 시스템, 지상 또는 위성 비디오 방송 네트워크(예를 들어, DVB 네트워크) 등을 포함한다. 이러한 콘텐츠의 수신시에, 애플리케이션(112)은 하나 이상의 디바이스에 의해 출력될 수 있도록 이러한 콘텐츠를 디코딩하기 위해 동작한다.
실시예에서, 그래픽 엔진(104)은 그래픽 프로세싱 유닛(GPU)에 의해 제공된다. 더 구체적으로, 그래픽 엔진(104)은 종종 비디오 및 오디오 프로세싱(허프만 디코드, iDCT 등)에 요구되는 다수의 기능을 위한 가속을 제공한다. 이 GPU는 호스트 프로세싱 플랫폼(102)으로부터 비디오 그래픽 렌더링을 오프로드하고 가속하는 하나 이상의 특정화된 마이크로프로세서를 포함할 수 있다. 또한, 그래픽 엔진(104)은 멀티-스레디드 병렬 프로세싱을 지원할 수 있는 다중 병렬 실행 유닛(EU)을 포함할 수 있다. 그래픽 엔진(104)은 미국 캘리포니아주 산타클라라 소재의 인텔 코포레이션에 의해 제조된 상업적으로 입수 가능한 그래픽 엔진을 포함할 수 있다. 그러나, 실시예는 이 예에 한정되는 것은 아니다.
일반적인 동작에서, 그래픽 엔진(104)은 애플리케이션(112)에 대해 비디오 디코딩과 연관된 연산을 제공할 수 있다. 이러한 연산은 (이들에 한정되는 것은 아니지만) 가변 길이 디코딩(VLD), 역양자화 및 역이산 코사인(DCT) 연산을 포함할 수 있다. 그래픽 엔진(104)은 이러한 연산을 신속하고 효율적으로 수행하기 위해 특정화된 하드웨어 및/또는 메모리를 제공할 수 있다.
이러한 연산은 오디오 디코딩에 또한 공통이다. 따라서, 비디오 디코딩 연산을 수행하는 것에 추가하여, 그래픽 엔진(104)은 애플리케이션(112)을 위한 오디오 디코딩 연산을 수행할 수 있다. 이러한 오디오 디코딩은 다양한 코덱에 따를 수 있다. 예시적인 코덱은 (이들에 한정되는 것은 아니지만) DTS-HD Master Audio, Dolby TrueHD, MP3, AAC 등을 포함한다. 그러나, 임의의 오디오 코덱이 이용될 수 있다. 실시예에서, 이러한 오디오 및 비디오 디코딩 연산의 수행은 그래픽 엔진 드라이버(들)(111)를 통해 애플리케이션(112)에 의해 개시될 수 있다.
오디오 출력 디바이스(들)(107)는 호스트 프로세싱 플랫폼(102) 및/또는 그래픽 엔진(104)으로부터 수신된 오디오 스트림으로부터 음향 신호를 생성하기 위한 하나 이상의 스피커를 포함할 수 있다. 실시예에서, 이러한 오디오 스트림은 디지털 펄스-코드 변조(PCM) 신호일 수 있다. 따라서, 오디오 출력 디바이스(들)는 이들 디지털 신호를 스피커(들)를 위해 아날로그 신호로 변환하기 위한 아날로그 대 디지털 컨버터(ADC) 및 필터(들)와 같은 구성 요소를 더 포함할 수 있다. 다른 구성 요소는 증폭기, 사용자 제어부(예를 들어, 볼륨, 톤, 등화, 밸런스 등)를 포함할 수 있다. 오디오 출력 디바이스(들)(107)의 이러한 구성 요소는 하드웨어 및/또는 소프트웨어의 임의의 조합으로 구현될 수 있다.
디스플레이 디바이스(108)는 사용자에 시각적 출력을 제공하는 물리적 디스플레이를 포함한다. 이 출력은 순차적 이미지(또는 프레임)의 형태일 수 있다. 예시적인 물리적 디스플레이는 발광 다이오드(LED) 디스플레이, 액정 디스플레이(LCD), 플라즈마 디스플레이 및 음극선관(CRT)을 포함한다. 그러나, 실시예는 이들 예에 한정되는 것은 아니다. 디스플레이 디바이스(108)에 의해 출력된 각각의 프레임은 다중 화소를 포함할 수 있다. 이들 화소를 표현하는 데이터(예를 들어, 컬러 및/또는 강도값)는 디스플레이 디바이스(108) 내의 하나 이상의 프레임 버퍼에 저장될 수 있다. 이 데이터는 "프레임 데이터"라 칭할 수 있다. 이러한 프레임 버퍼(들)는 휘발성 랜덤 액세스 메모리(RAM)(예를 들어, 동적 RAM)와 같은 저장 장치에 의해 제공될 수 있다. 그러나, 비휘발성 메모리와 같은 다른 유형의 저장 매체가 이용될 수 있다.
인터페이스(109)는 도 1의 요소들 사이의 커플링을 제공한다. 예를 들어, 인터페이스(109)는 요소들 사이의 다양한 페어링 사이의 하나 이상의 점대점 접속(예를 들어, 병렬 인터페이스, 직렬 인터페이스, 전용 신호 라인 등)을 포함할 수 있다.
부가적으로 또는 대안적으로, 인터페이스(109)는 물리적 접속 프로세싱 유닛(302a-n)을 제공하는 멀티-드랍 또는 버스 인터페이스를 포함할 수 있다. 예시적인 버스 인터페이스는 범용 직렬 버스(USB) 인터페이스, 뿐만 아니라 다양한 컴퓨터 시스템 버스 인터페이스를 포함한다.
또한, 인터페이스(109)는 소프트웨어 프로세스 사이의 데이터의 교환을 제공하는 하나 이상의 소프트웨어 인터페이스(예를 들어, 애플리케이션 프로그래머 인터페이스, 원격 프로시져 호출, 공유 메모리 등)를 포함할 수 있다.
실시예에서, 도 1의 요소는 컴퓨터 시스템 내에 구현될 수 있다. 이러한 컴퓨터 시스템은 퍼스널 컴퓨터(예를 들어, 데스크탑, 랩탑, 노트북 또는 태블릿 컴퓨터)일 수 있다. 대안적으로, 이러한 컴퓨터 시스템은 휴대폰, 개인 휴대 정보 단말(PDA), 스마트폰 또는 휴대용 미디어 플레이어와 같은 핸드헬드 디바이스일 수 있다. 그러나, 실시예는 이들 예에 한정되는 것은 아니다.
전술된 바와 같이, 도 1의 요소는 하나 이상의 프로세서(예를 들어, 마이크로프로세서)를 포함할 수 있다. 예를 들어, 프로세싱 플랫폼(102) 및 그래픽 엔진(104)은 하나 이상의 프로세서로 구현될 수 있다. 예로서, 호스트 프로세싱 플랫폼(102)은 하나 이상의 CPU로 구현될 수 있고 그리고/또는 그래픽 엔진(104)은 하나 이상의 GPU로 구현될 수 있다. 이들 CPU(들) 및/또는 GPU(들)는 하나 이상의 저장 매체에 저장된 명령(예를 들어, 소프트웨어)에 따라 동작할 수 있다. 이러한 저장 매체의 일부 또는 전체는 프로세싱 플랫폼(102) 및/또는 그래픽 엔진(104)에 포함될 수 있다. 부가적으로 또는 대안적으로, 이러한 저장 매체의 일부 또는 모두는 프로세싱 플랫폼(102) 및 그래픽 엔진(104)의 외부에 있을 수 있다. 이러한 저장 매체는 메모리(휘발성 또는 비휘발성), 디스크 저장 장치, 광학 저장 장치 등을 포함할 수 있다.
호스트 프로세싱 플랫폼(102) 및 그래픽 엔진(104)은 멀티-코어 프로세서 내의 각각의 코어로 구현될 수 있다. 따라서, 이들 요소는 집적 회로 내에서 함께 있을 수 있다.
예시적인 연산 순서가 이제 설명된다. 도 1에 도시된 바와 같이, 호스트 프로세싱 플랫폼(102)은 콘텐츠 소스(106)로부터 콘텐츠 스트림(119)을 수신할 수 있다. 실시예에서, 콘텐츠 스트림(119)은 인코딩된 오디오 스트림을 포함한다. 부가적으로, 콘텐츠 스트림(119)은 인코딩된 비디오 스트림을 포함할 수 있다.
애플리케이션(112)[호스트 프로세싱 플랫폼(112) 상에서 실행되는]은 콘텐츠 스트림(119)을 수신할 수 있다. 이 수신은 직접, 또는 하나 이상의 중간 프로세싱 요소를 통해서 일 수 있다. 이러한 프로세싱 요소는 (이들에 한정되는 것은 아니지만) OS(110), 그래픽 엔진 드라이버(들)(111), 애플리케이션 프로그래머 인터페이스(API) 등의 임의의 조합을 포함할 수 있다.
콘텐츠 스트림(119)으로부터, 애플리케이션(112)은 인코딩된 오디오 스트림(120) 및 인코딩된 비디오 스트림(124)을 그래픽 엔진(104)에 제공한다. 이어서, 그래픽 엔진(104)은 이들 스트림 상에 다양한 연산을 수행한다. 그 결과, 그래픽 엔진(104)은 디코딩된 오디오 스트림(122) 및 디코딩된 비디오 스트림(126)을 생성한다. 실시예에서, 그래픽 엔진(104)은 이들 오디오 및 비디오 스트림을 병렬로 프로세싱할 수 있다.
그래픽 엔진(104)에 의해 수행된 연산은 호스트 프로세싱 플랫폼(102)에 의해 개시될 수 있다. 예를 들어, 애플리케이션(112)은 그래픽 엔진(104)에 디렉티브가 송출될 수 있게 한다. 이러한 디렉티브는 드라이버(들)(111)를 통해 송출될 수 있다.
도 1은 디코딩된 오디오 스트림(122) 및 디코딩된 비디오 스트림(126)이 호스트 프로세싱 플랫폼(102)에 제공되는 것을 도시한다. 수신시에, 오디오/비디오 동기화 및 OS(110)에 의해 유지된 출력 스택(들)으로의 버퍼링과 같은 추가의 연산이 수행될 수 있다. 이러한 연산 후에, 대응 디코딩된 오디오 스트림(128) 및 대응 디코딩된 비디오 스트림(130)이 오디오 출력 디바이스(107) 및 디스플레이 디바이스(108)에 각각 제공된다.
본 명세서에 설명된 바와 같이, 오디오 스트림 프로세싱 및 비디오 스트림 프로세싱은 유사한 특성을 갖는다. 오디오 스트림의 프로세싱에 관한 상세가 이제 제공된다. 오디오 샘플은 통상적으로 다수의 주파수 서브대역 계수(예를 들어, 32 또는 64개의 계수)로 변환된다(손실 있게). 다수의 오디오 샘플에 대해, 이들 서브대역 계수는 (증가하는 시간 순서로) 함께 패킹되어 오디오 프레임을 형성한다.
도 2는 예시적인 오디오 프레임(200)의 도면이다. 이 도면은 시간에 따라 열에서 수평으로, 그리고 서브대역에 따라 행에서 수직으로 배열된다. 따라서, 도면은 값의 2차원 행렬을 제공한다. 이들 값의 각각은 오디오 샘플의 서브대역 계수이다.
더 구체적으로, 특정 열 내의 서브대역 계수는 N개의 서브대역(통상적으로, N=32 또는 64)으로 분해되었던 동일한 오디오 샘플에 속한다. 오디오 프레임 내의 후속의 열(즉, 우측으로의 열)은 후속 시간 순간에 인코딩된 오디오 샘플을 표현한다. 따라서, 열 #1 내의 오디오 샘플이 먼저 인코딩되었고, 이어서 열 #2 내의 다음의 오디오 샘플, 이어서 열 #3 내의 다음의 오디오 샘플 등이 인코딩되었다. 따라서, 도 2는 M개의 오디오 샘플의 서브대역 계수가 함께 패킹되어 단일 오디오 프레임을 형성하는 것을 도시한다.
무손실 오디오 스트림은 종종 도 2에 도시된 것과 같은 프레임으로 구성된 손실 코어를 포함한다. 또한, 무손실 오디오 스트림은 부가의 잔류 스트림을 포함할 수 있다. 이 잔류 스트림은 디코더가 원본 오디오 스트림의 비트-정확 재현을 성취하는 것을 가능하게 한다.
오디오 프레임은, 오디오 프레임의 각각의 샘플의 수평 및 수직(x,y) 좌표가 화소의 공간 좌표를 표현하지 않는 것을 제외하고는, 비디오 프레임과 유사하다는 것이 도 2로부터 명백하다. 오히려, 이들 좌표는 오디오 샘플의 주파수(서브대역) 및 시간 좌표를 표현한다.
도 3은 예시적인 손실 오디오 스트림 디코딩 파이프라인(300)의 도면이다. 도 3에 도시된 바와 같이, 이 파이프라인은 가변 길이 디코딩(VLD) 모듈(302), 역양자화(역 Q) 모듈(304), 부가의 오디오 프로세싱 모듈(306), 역 DCT(iDCT) 모듈(308), 직각 대칭 필터(QMF) 모듈(310) 및 오디오 후처리 모듈(312)을 포함한다. 이들 모듈은 하드웨어 및/또는 소프트웨어의 임의의 조합으로 구현될 수 있다. 더욱이, 도 3의 모듈은 한정으로서가 아니라 예로서 제시된 것이다. 따라서, 특정 코덱 특성에 따라, 이 오디오 파이프라인은 부가의 또는 더 적은 모듈을 포함할 수 있다.
일반적인 동작에서, 파이프라인(300)은 인코딩된(압축된) 오디오 스트림(320)을 수신하고, 대응 디코딩된 오디오 스트림(322)을 생성한다. 더 구체적으로, 도 3은 압축된 오디오 스트림(320)을 수신하는 VLD 모듈(302)을 도시한다. 이어서, VLD 모듈(302)은 이 스트림에 엔트로피 디코딩을 수행한다. 이 디코딩은 허프만 디코딩일 수 있다. 그러나, 실시예는 이 예에 한정되는 것은 아니다. 이 디코딩의 결과는 역 Q 모듈(304)에 의해 역양자화된다.
모듈(306)은 모듈(304)의 역양자화 결과에 대해 부가의 오디오 프로세싱을 수행할 수 있다. 예로서, 모듈(306)은 이들 결과에 역 적응성 차동 펄스-코드 변조(ADPCM)를 수행할 수 있다. 그러나, 부가의 및/또는 대안적인 연산이 수행될 수 있다. 실시예에서, 이 오디오 프로세싱은 다중 서브대역 및/또는 오디오 샘플 전역에서(예를 들어, 도 2에 도시된 프레임의 행 및/또는 열 전역에서) 스레드 가능(threadable)할 수 있다.
DCT 변환을 이용하는 오디오 코덱에 대해, 역 DCT 모듈(308)은 모듈(306)의 출력 상에 역 DCT를 수행한다. 그 후에, QMF 모듈(310)은 모듈(308)에 의해 제공된 주파수 도메인 계수를 시간 도메인에서 펄스-코드 변조(PCM) 오디오 샘플로 변환한다. 실시예에서, QMF 모듈(310)은 통상적으로 서브대역(예를 들어, 도 2의 행) 전역에서, 그러나 반드시 오디오 샘플(예를 들어, 도 2의 열)을 가로지르지 않고 스레드 가능한 연산을 수행한다.
종종, 모듈(308, 310)에 의해 수행된 역 DCT 및 QMF 연산은 오디오 파이프라인 내의 가장 연산적으로 집약적인 연산이다. 예를 들어, 조합될 때, 이들 연산은 소비된 총 초당 백만개 명령(MIPS)의 30 내지 50%를 표현할 수 있다.
도 3에 도시된 바와 같이, 오디오 후처리 모듈(312)은 QMF 모듈(310)에 의해 제공된 PCM 샘플 상에 연산을 수행할 수 있다. 예시적인 동작은 다운믹싱(오디오 스트림 내의 수 또는 오디오 채널을 감소시킴)을 포함한다. 그러나, 대안적인 및/또는 부가의 연산이 수행될 수 있다. 이는 증폭기(들) 및/또는 스피커(들)와 같은 출력 디바이스(들)에 송출될 수 있는 디코딩된 오디오 스트림(322)을 생성한다.
도 3의 파이프라인은 다수의 오디오 채널(예를 들어, 2개, 5개 이상의 오디오 채널)의 각각에 개별적으로 적용될 수 있다. 따라서, 각각의 채널은 독립적으로 프로세싱될 수 있다. 그러나, 실시예는 이러한 독립적인 프로세싱에 한정되지 않는다.
도 3의 특정 모듈은 비디오 파이프라인에 또한 공통이다. 예를 들어, VLD 모듈(302), 역 Q 모듈(304) 및 역 DCT 모듈(306)이 비디오 파이프라인에 이용될 수 있다. 따라서, 도 3에서, 이들 모듈은 회색으로 음영되어 있다. 이러한 공통성의 결과로서, 실시예는 그 위에서 수행된 지시된 연산(VLD, 역 Q, iDCT 등)을 갖기 위해, 오디오 프레임을 비디오 파이프라인에 제출할 수 있다.
더욱이, 그래픽 엔진[예를 들어, 그래픽 엔진(104)]에 의해 직접 지원되지 않는 오디오 프로세싱 연산은 다수의 경우에 매우 스레드 가능하다. 따라서, 이러한 연산은 그래픽 엔진의 다수의 실행 유닛에 의해 실행될 수 있다. 또한, 오디오 채널이 독립적으로 프로세싱될 수 있는 경우에, 스레드 가능성의 정도가 증가한다. 이러한 스레드 가능성은 그래픽 엔진의 다중 실행 유닛에 의해 지원될 수 있다.
오디오 프레임을 프로세싱하기 위해, 그래픽 엔진에 의해 제공된 비디오 파이프라인을 사용하여, 미디어 애플리케이션은 그래픽 드라이버[예를 들어, 도 1의 그래픽 엔진 드라이버(들)(111)]로의 다수의 호를 수행할 수 잇다. 상이한 드라이버 호의 정확한 수 및 성질은 구현예 특정적일 수 있다. 예를 들어, 이러한 드라이버 호는 이용되는 특정 오디오 코덱(예를 들어, DTS-HD Master Audio, Dolby TrueHD 등)에 의존할 수 있다. 도 4는 이러한 드라이버 호의 예를 제공한다.
특히, 도 4는 도 3의 오디오 파이프라인 모듈에 대응하는 그래픽 드라이버 호를 도시하는 도면이다. 이들 드라이버 호는 한정이 아니라 예시를 위해 제공된다. 따라서, 더 소수의 또는 다수의 호의 조합이 이용될 수 있다.
도 4는 모듈(302, 304)의 연산을 호출하는 제 1 드라이버 호(402) 및 모듈(306)의 연산을 호출하는 제 2 드라이버 호(404)를 도시한다. 또한, 제 3 드라이버 호(406)는 모듈(308)의 연산을 호출한다. 더욱이, 제 4 드라이버 호(408)는 모듈(310, 312)의 연산을 호출한다. 이들 드라이버 호는 한정이 아니라 예시의 목적으로 제공된다. 따라서, 더 소수의 또는 다수의 드라이버 호의 다른 배열이 이용될 수 있다. 예를 들어, 실시예는 각각의 오디오 프레임을 프로세싱하는데 요구된 애플리케이션/드라이버 상호 작용의 수를 감소시키기 위해 다수의 드라이버 호가 병합되는 최적화된 구현예를 이용할 수 있다.
도 5는 본 명세서에 설명된 하나 이상의 실시예에 의해 실행된 동작을 대표할 수 있는 예시적인 논리 흐름(500)을 도시한다. 도 5는 특정 시퀀스를 도시하지만, 다른 시퀀스가 이용될 수도 있다. 더욱이, 도시된 동작은 다양한 병렬 및/또는 순차적 조합으로 수행될 수 있다.
블록 502에서, 애플리케이션은 이들의 포맷이 비디오 프레임의 것과 호환 가능하도록 하나 이상의 오디오 프레임을 재포맷한다. 실시예에서, 이는 다수의 오디오 프레임을 단일의 대형 프레임으로 조합하는 것을 포함할 수 있다. 대안적으로 또는 부가적으로, 이는 시간 및/또는 주파수에서 오디오 프레임(들)의 치수를 변경하는 것을 포함할 수 있다. 예를 들어, 부가의 서브대역 및/또는 시간 샘플이 오디오 프레임 상에 "제로 패딩(zero-padded)"될 수 있어 이를 비디오 컴플라이언트 크기가 되게 한다.
블록 504에서, 제 1 그래픽 드라이버 호가 수행된다. 이 호는 엔트로피 디코딩 및 역양자화[예를 들어, 모듈(302, 304)에 의해 수행된 바와 같은]를 위해 그래픽 엔진[예를 들어, 그래픽 엔진(104)]에 오디오 프레임을 제출한다. 실시예에서, 그래픽 엔진은 이들 연산을 수행할 수 있는 고정 기능 및/또는 프로그램 가능 VLD 엔진을 갖는다.
블록 506에서, 제 2 드라이버 호가 수행된다. 이 호는 다른 오디오-특정 프로세싱[예를 들어, 모듈(306)의 프로세싱]의 수행으로 개시한다. 전술된 바와 같이, 이러한 프로세싱은 서브대역, 오디오 샘플 및 오디오 채널 전역에서 매우 스레드 가능할 수 있다. 그 결과, 고도의 스레드 가능성이 성취될 수 있다. 이는 그래픽 엔진의 실행 유닛에 의한 고속의 효율적인 실행을 허용한다.
제 3 드라이버 호가 블록 508에서 수행된다. 이 드라이버 호에서, 애플리케이션은 역-DCT가 그 위에서 수행될 수 있도록 그래픽 엔진에 오디오 프레임을 제출할 수 있다. 본 명세서에 설명된 바와 같이, 그래픽 엔진은 이 연산을 위한 가속을 제공하기 위해 고정된 및/또는 프로그램 가능 기능을 갖는다.
블록 510에서, 제 4 드라이버 호가 수행된다. 이 호는 QMF 연산 및 임의의 다른 오디오 후처리[예를 들어, 모듈(310, 312)의 연산]의 실행을 개시한다. 전술된 바와 같이, 이들 연산은 스레드 가능성이 매우 높다(스레드 가능성의 정도는 하나의 오디오 코덱 방안으로부터 다른 오디오 코덱 방안으로 다양할 수 있음). 따라서, 이들 연산은 그래픽 엔진 실행 유닛 상에서의 멀티-스레디드 실행을 위한 양호한 후보자일 수 있다.
블록 510의 수행은 디코딩된 오디오를 생성한다. 이에 따라, 이 오디오가 비디오 스트림을 동반하면, 비디오 스트림 및 오디오 스트림은 블록 512에서 동기화될 수 있다(예를 들어, 시간 정렬됨). 실시예에서, 이러한 동기화는 애플리케이션에 의해 수행될 수 있다.
블록 514에서, 애플리케이션은 디코딩된 오디오 스트림을 출력 오디오 스택으로 통과시킬 수 있다. 이 스택은 출력 버퍼링 능력을 제공할 수 있다. 이어서, 오디오는 블록 516에서 하나 이상의 디바이스를 통해 출력된다. 이러한 디바이스는 PCM 디코더(들), 필터(들), 증폭기(들) 및/또는 스피커(들)의 임의의 조합을 포함할 수 있다.
각각의 오디오 프레임은 통상적으로 고정량의 시간(예를 들어, 오디오 프레임의 크기에 따라 5 또는 10 밀리초)을 표현한다. 따라서, 애플리케이션은 대응 고정 레이트로 그래픽 파이프라인에 오디오 프레임을 제출할 수 있다. 이에 따라, 블록 502 내지 516의 임의의 조합은 반복적으로 수행될 수 있다.
또한 실시예에서, 애플리케이션은 규칙적 그래픽 드라이버 호와 본 명세서에 설명된 오디오 프로세싱 그래픽 드라이버 호를 혼합/중첩할 수 있다. 따라서, 오디오 프레임 및 비디오 프레임은 병렬로 그래픽 엔진에 의해 디코딩되고 후처리될 수 있다.
본 명세서에 설명된 바와 같이, 다양한 실시예는 하드웨어 요소, 소프트웨어 요소 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 하드웨어 요소의 예는 프로세서, 마이크로프로세서, 회로, 회로 소자(예를 들어, 트랜지스터, 레지스터, 캐패시터, 인덕터 등), 집적 회로, 응용 주문형 집적 회로(ASIC), 프로그램 가능 논리 디바이스(PLD), 디지털 신호 프로세서(DSP), 필드 프로그램 가능 게이트 어레이(FPGA), 논리 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로칩, 칩셋 등을 포함할 수 있다.
소프트웨어의 실시예는 소프트웨어 구성 요소, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 머신 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 방법, 프로시져, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(API), 명령 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심벌 또는 이들의 임의의 조합을 포함할 수 있다.
몇몇 실시예는 예를 들어 머신 판독 가능한 저장 매체 또는 물품을 사용하여 구현될 수 있다. 저장 매체는 머신에 의해 실행되면 머신이 실시예에 따른 방법 및/또는 동작을 수행하게 할 수 있는 명령 또는 명령의 세트를 저장할 수 있다. 이러한 머신은 예를 들어 임의의 적합한 프로세싱 플랫폼, 컴퓨팅 플랫폼, 컴퓨팅 디바이스, 프로세싱 디바이스, 컴퓨팅 시스템, 프로세싱 시스템, 컴퓨터, 프로세스 등을 포함할 수 있고, 하드웨어 및/또는 소프트웨어의 임의의 적합한 조합을 사용하여 구현될 수 있다.
본 명세서에 설명된 바와 같이, 실시예는 저장 매체 또는 머신 판독 가능 물품을 포함할 수 있다. 이들은 예를 들어 임의의 적합한 유형의 메모리 유닛, 메모리 디바이스, 메모리 물품, 메모리 매체, 저장 디바이스, 저장 물품, 저장 매체 및/또는 저장 유닛, 예를 들어 메모리, 제거 가능 또는 제거 불가능 매체, 소거 가능 또는 소거 불가능 매체, 기록 가능 또는 재기록 가능 매체, 디지털 또는 아날로그 매체, 하드 디스크, 플로피 디스크, 콤팩트 디스크 판독 전용 메모리(CD-ROM), 콤팩트 디스크 기록 가능(CD-R), 콤팩트 디스크 재기록 가능(CD-RW), 광학 디스크, 자기 매체, 자기-광학 매체, 제거 가능 메모리 카드 또는 디스크, 다양한 유형의 디지털 다기능 디스크(DVD), 테이프, 카세트 등을 포함할 수 있다. 명령은 임의의 적합한 고레벨, 저레벨, 객체 지향, 비쥬얼, 컴플라이드 및/또는 해석된 프로그래밍 언어를 사용하여 구현된 소스 코드, 컴플라이드 코드, 해석된 코드, 실행 가능 코드, 정적 코드, 동적 코드, 암호화된 코드 등을 포함할 수 있다.
본 발명의 다양한 실시예가 전술되었지만, 이들은 한정이 아니라 단지 예로서만 제시되어 있다는 것이 이해되어야 한다. 예를 들어, 본 명세서에 설명된 기술은 2진수를 사용하는 것에 한정되는 것은 아니다. 따라서, 기술은 임의의 기반의 수로 이용될 수도 있다.
이에 따라, 형태 및 상세의 다양한 변경이 본 발명의 사상 및 범주로부터 벗어나지 않고 이루어질 수 있다는 것이 당 기술 분야의 숙련자들에게 명백할 것이다. 따라서, 본 발명의 범위 및 범주는 전술된 예시적인 실시예 중 임의의 하나에 의해 한정되어서는 안 되고, 이하의 청구범위 및 이들의 등가물에 따라서만 규정되어야 한다.
Claims (20)
- 호스트 프로세싱 플랫폼에서 콘텐츠 스트림을 수신하는 단계 -상기 콘텐츠 스트림은 인코딩된 오디오 스트림을 포함함- 와,
그래픽 엔진에서, 상기 인코딩된 오디오 스트림으로부터 디코딩된 오디오 스트림을 생성하는 단계를 포함하는
방법.
- 제 1 항에 있어서,
상기 생성 단계는,
엔트로피 디코딩 연산을 수행하는 단계와,
역양자화 연산을 수행하는 단계와,
역이산 코사인 변환 연산을 수행하는 단계를 포함하는
방법.
- 제 2 항에 있어서,
상기 엔트로피 디코딩 연산은 허프만(Huffman) 디코딩 연산인
방법. - 제 1 항에 있어서,
상기 인코딩된 오디오 스트림은 하나 이상의 오디오 프레임을 포함하고, 각각의 오디오 프레임은 복수의 시간 샘플의 각각에 대해 다수의 서브대역 계수(coefficients)를 포함하고,
상기 방법은, 인코딩된 이미지 프레임으로서 나타나도록 상기 오디오 프레임의 하나 이상을 포맷하는 단계를 더 포함하는
방법.
- 제 1 항에 있어서,
상기 생성 단계는 상기 호스트 프로세싱 플랫폼이 상기 그래픽 엔진에 하나 이상의 드라이버 호를 배치하는 단계를 포함하는
방법.
- 제 1 항에 있어서,
상기 콘텐츠 스트림은 인코딩된 비디오 스트림을 더 포함하고,
상기 방법은, 상기 그래픽 엔진에서, 상기 인코딩된 비디오 스트림으로부터 디코딩된 비디오 스트림을 생성하는 단계를 더 포함하는
방법.
- 제 6 항에 있어서,
상기 디코딩된 비디오 스트림과 상기 디코딩된 오디오 스트림을 동기화하는 단계를 더 포함하는
방법.
- 제 6 항에 있어서,
상기 디코딩된 오디오 스트림을 생성하는 단계와 상기 디코딩된 비디오 스트림을 생성하는 단계는 병렬로(in parallel) 수행되는
방법.
- 제 1 항에 있어서,
상기 디코딩된 오디오 스트림을 오디오 출력 디바이스로 송신하는 단계를 더 포함하는
방법.
- 제 1 항에 있어서,
상기 디코딩된 오디오 스트림은 디지털 펄스-코드 변조(PCM) 신호를 포함하는
방법.
- 호스트 프로세싱 플랫폼에서 콘텐츠 스트림을 수신하기 위한 호스트 프로세싱 플랫폼 -상기 콘텐츠 스트림은 인코딩된 오디오 스트림을 포함함- 과,
상기 인코딩된 오디오 스트림으로부터 디코딩된 오디오 스트림을 생성하기 위한 그래픽 엔진을 포함하는
장치.
- 제 11 항에 있어서,
상기 인코딩된 오디오 스트림은 하나 이상의 오디오 프레임을 포함하고, 각각의 오디오 프레임은 복수의 시간 샘플의 각각에 대해 다수의 서브대역 계수를 포함하고,
상기 호스트 프로세싱 플랫폼은 인코딩된 이미지 프레임으로서 나타나도록 상기 오디오 프레임의 하나 이상을 포맷하는
장치.
- 제 11 항에 있어서,
상기 그래픽 엔진은 상기 인코딩된 오디오 스트림에 대해 복수의 연산을 수행하고, 상기 복수의 연산은 엔트로피 디코딩 연산, 역양자화 연산 및 역이산 코사인 변환 연산을 포함하는
장치.
- 제 11 항에 있어서,
오디오 출력 디바이스를 더 포함하고,
상기 호스트 프로세싱 플랫폼은 상기 디코딩된 오디오 스트림을 상기 오디오 출력 디바이스로 송신하는
장치.
- 제 11 항에 있어서,
상기 호스트 프로세싱 플랫폼은 멀티-코어 프로세서의 제 1 프로세서 코어에 포함되고, 상기 그래픽 엔진은 상기 멀티-코어 프로세서의 제 2 프로세서 코어에 포함되는
장치.
- 제 11 항에 있어서,
상기 콘텐츠 스트림을 저장하기 위한 저장 매체를 더 포함하는
장치.
- 제 11 항에 있어서,
상기 콘텐츠 스트림은 인코딩된 비디오 스트림을 더 포함하고,
상기 그래픽 엔진은 상기 디코딩된 오디오 스트림의 생성과 병렬로 상기 인코딩된 비디오 스트림으로부터 디코딩된 비디오 스트림을 생성하는
장치.
- 그래픽 엔진에서, 호스트 프로세싱 플랫폼으로부터 인코딩된 오디오 스트림을 수신하는 단계와,
상기 그래픽 엔진에서, 상기 인코딩된 오디오 스트림으로부터 디코딩된 오디오 스트림을 생성하는 단계를 포함하고,
상기 생성 단계는 상기 그래픽 엔진이 상기 인코딩된 오디오 스트림에 대해 복수의 연산을 수행하는 단계를 포함하고, 상기 복수의 연산은 엔트로피 디코딩 연산, 역양자화 연산 및 역이산 코사인 변환 연산을 포함하는
방법.
- 제 18 항에 있어서,
상기 복수의 연산은 상기 호스트 프로세싱 플랫폼에 의해 개시된 하나 이상의 드라이버 호에 기초하는
방법.
- 제 18 항에 있어서,
상기 디코딩된 오디오 스트림은 디지털 펄스-코드 변조(PCM) 신호를 포함하는
방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/024,536 | 2011-02-10 | ||
US13/024,536 US9942593B2 (en) | 2011-02-10 | 2011-02-10 | Producing decoded audio at graphics engine of host processing platform |
PCT/US2011/066340 WO2012108934A1 (en) | 2011-02-10 | 2011-12-21 | Shared video-audio pipeline |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20130116921A true KR20130116921A (ko) | 2013-10-24 |
Family
ID=46637584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137021002A KR20130116921A (ko) | 2011-02-10 | 2011-12-21 | 공유된 비디오-오디오 파이프라인 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9942593B2 (ko) |
EP (1) | EP2673770B1 (ko) |
JP (1) | JP2014507897A (ko) |
KR (1) | KR20130116921A (ko) |
CN (1) | CN103348676B (ko) |
TW (1) | TWI592925B (ko) |
WO (1) | WO2012108934A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120216048A1 (en) * | 2011-02-17 | 2012-08-23 | Nikos Kaburlasos | System, method and computer program product for application-agnostic audio acceleration |
CN104106080B (zh) | 2011-12-27 | 2017-10-03 | 英特尔公司 | 基于图灵测试的用户认证和用户在场验证系统、设备和方法 |
US9134878B2 (en) * | 2012-09-28 | 2015-09-15 | Intel Corporation | Device and method for secure user interface gesture processing using processor graphics |
CN104143334B (zh) * | 2013-05-10 | 2017-06-16 | 中国电信股份有限公司 | 可编程图形处理器及其对多路音频进行混音的方法 |
JP6921602B2 (ja) | 2017-04-21 | 2021-08-18 | キヤノン株式会社 | 連続体ロボットの制御システム及びその制御方法、並びに、プログラム |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6331856B1 (en) | 1995-11-22 | 2001-12-18 | Nintendo Co., Ltd. | Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing |
JP3816572B2 (ja) * | 1996-03-15 | 2006-08-30 | パイオニア株式会社 | 情報記録装置及び情報記録方法並びに情報再生装置及び情報再生方法 |
US5630005A (en) * | 1996-03-22 | 1997-05-13 | Cirrus Logic, Inc | Method for seeking to a requested location within variable data rate recorded information |
US6124895A (en) * | 1997-10-17 | 2000-09-26 | Dolby Laboratories Licensing Corporation | Frame-based audio coding with video/audio data synchronization by dynamic audio frame alignment |
US6275239B1 (en) | 1998-08-20 | 2001-08-14 | Silicon Graphics, Inc. | Media coprocessor with graphics video and audio tasks partitioned by time division multiplexing |
US6208276B1 (en) * | 1998-12-30 | 2001-03-27 | At&T Corporation | Method and apparatus for sample rate pre- and post-processing to achieve maximal coding gain for transform-based audio encoding and decoding |
EP1215663A1 (en) * | 2000-12-15 | 2002-06-19 | BRITISH TELECOMMUNICATIONS public limited company | Encoding audio signals |
KR100450939B1 (ko) | 2001-10-23 | 2004-10-02 | 삼성전자주식회사 | 이미지 축소를 위한 스케일-다운 기능을 가지는 압축비디오 복호화기 및 방법 |
US7158141B2 (en) | 2002-01-17 | 2007-01-02 | University Of Washington | Programmable 3D graphics pipeline for multimedia applications |
US7130528B2 (en) * | 2002-03-01 | 2006-10-31 | Thomson Licensing | Audio data deletion and silencing during trick mode replay |
JP4542308B2 (ja) * | 2002-12-16 | 2010-09-15 | 株式会社ソニー・コンピュータエンタテインメント | 信号処理用デバイス及び情報処理機器 |
US7464028B2 (en) * | 2004-03-18 | 2008-12-09 | Broadcom Corporation | System and method for frequency domain audio speed up or slow down, while maintaining pitch |
US8099407B2 (en) * | 2004-03-31 | 2012-01-17 | Google Inc. | Methods and systems for processing media files |
JP2006166154A (ja) * | 2004-12-09 | 2006-06-22 | Matsushita Electric Ind Co Ltd | 動画像再生システム |
US20060198528A1 (en) * | 2005-03-03 | 2006-09-07 | Thx, Ltd. | Interactive content sound system |
US7750956B2 (en) * | 2005-11-09 | 2010-07-06 | Nvidia Corporation | Using a graphics processing unit to correct video and audio data |
KR100878816B1 (ko) * | 2006-02-07 | 2009-01-14 | 엘지전자 주식회사 | 부호화/복호화 장치 및 방법 |
JP2007219577A (ja) * | 2006-02-14 | 2007-08-30 | Sony Corp | データ処理装置、データ処理方法、データ処理方法のプログラム及びデータ処理方法のプログラムを記録した記録媒体 |
US7987089B2 (en) * | 2006-07-31 | 2011-07-26 | Qualcomm Incorporated | Systems and methods for modifying a zero pad region of a windowed frame of an audio signal |
US20080056373A1 (en) | 2006-08-29 | 2008-03-06 | Newlin John B | Method and system for dynamic frequency adjustment during video decoding |
JP4973492B2 (ja) * | 2007-01-30 | 2012-07-11 | 株式会社Jvcケンウッド | 再生装置、再生方法及び再生プログラム |
CN101106714A (zh) | 2007-07-29 | 2008-01-16 | 浙江大学 | 应用于视频和图像处理的变换方法 |
CN101677246B (zh) * | 2008-09-19 | 2011-08-10 | 扬智科技股份有限公司 | 具有取样频率转换的数模转换系统及其取样频率转换方法 |
KR20100124909A (ko) * | 2009-05-20 | 2010-11-30 | 삼성전자주식회사 | 이동통신 단말기에서 영상과 음성의 동기화를 위한 장치 및 방법 |
US8423355B2 (en) * | 2010-03-05 | 2013-04-16 | Motorola Mobility Llc | Encoder for audio signal including generic audio and speech frames |
US8613038B2 (en) * | 2010-10-22 | 2013-12-17 | Stmicroelectronics International N.V. | Methods and apparatus for decoding multiple independent audio streams using a single audio decoder |
-
2011
- 2011-02-10 US US13/024,536 patent/US9942593B2/en active Active
- 2011-12-07 TW TW100145054A patent/TWI592925B/zh active
- 2011-12-21 WO PCT/US2011/066340 patent/WO2012108934A1/en active Application Filing
- 2011-12-21 JP JP2013552523A patent/JP2014507897A/ja active Pending
- 2011-12-21 CN CN201180067236.1A patent/CN103348676B/zh active Active
- 2011-12-21 EP EP11858139.6A patent/EP2673770B1/en active Active
- 2011-12-21 KR KR1020137021002A patent/KR20130116921A/ko active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
EP2673770A1 (en) | 2013-12-18 |
TWI592925B (zh) | 2017-07-21 |
EP2673770A4 (en) | 2014-12-17 |
WO2012108934A1 (en) | 2012-08-16 |
CN103348676B (zh) | 2017-04-12 |
CN103348676A (zh) | 2013-10-09 |
JP2014507897A (ja) | 2014-03-27 |
US9942593B2 (en) | 2018-04-10 |
US20120209614A1 (en) | 2012-08-16 |
EP2673770B1 (en) | 2017-10-18 |
TW201248614A (en) | 2012-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2673770B1 (en) | Shared video-audio pipeline | |
TWI699111B (zh) | 用於顯示串流壓縮之中點預測誤差擴散 | |
TWI582689B (zh) | 用於多重格式影像處理之可組配緩衝器分派技術 | |
US8212828B2 (en) | Hybrid multiple bit-depth video processing architecture | |
RU2565501C2 (ru) | Способ и устройство для арифметического кодирования или арифметического декодирования | |
CN101248430A (zh) | 视频处理的转置缓冲 | |
KR20130114734A (ko) | 동적인 비디오 스위칭 | |
US20160119624A1 (en) | Dynamic on screen display using a compressed video stream | |
JP2013106333A (ja) | 画像処理装置および方法 | |
US10186052B1 (en) | Two-pass decoding of images | |
US20140096168A1 (en) | Media Playing Tool with a Multiple Media Playing Model | |
US11968406B2 (en) | Enhanced image compression with clustering and lookup procedures | |
US20060104521A1 (en) | Image processing devices and methods | |
US20070217617A1 (en) | Audio decoding techniques for mid-side stereo | |
US11412260B2 (en) | Geometric transforms for image compression | |
TW200421203A (en) | Run length encoded digital image | |
US11823688B2 (en) | Audio signal encoding and decoding method, and encoder and decoder performing the methods | |
CN113395581B (zh) | 音频播放方法、装置、电子设备及存储介质 | |
KR20230142474A (ko) | Gpu 데이터의 무손실 압축을 위한 방법 및 장치 | |
KR20080071747A (ko) | 디지털 오디오 데이터의 복호화 방법 및 디지털 오디오데이터의 복호화 장치 | |
Mesarovic et al. | DTS Multichannel Audio Decoder On a 24-Bit Fixed-Point Dual-DSP Architecture | |
US20060146186A1 (en) | Transform scheme for video coding | |
JP2001092498A (ja) | 信号処理装置および信号処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment |