KR102035759B1 - 멀티-쓰레드 텍스처 디코딩 - Google Patents

멀티-쓰레드 텍스처 디코딩 Download PDF

Info

Publication number
KR102035759B1
KR102035759B1 KR1020147022989A KR20147022989A KR102035759B1 KR 102035759 B1 KR102035759 B1 KR 102035759B1 KR 1020147022989 A KR1020147022989 A KR 1020147022989A KR 20147022989 A KR20147022989 A KR 20147022989A KR 102035759 B1 KR102035759 B1 KR 102035759B1
Authority
KR
South Korea
Prior art keywords
macro
block
hardware thread
row
decoding
Prior art date
Application number
KR1020147022989A
Other languages
English (en)
Other versions
KR20140114436A (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 KR20140114436A publication Critical patent/KR20140114436A/ko
Application granted granted Critical
Publication of KR102035759B1 publication Critical patent/KR102035759B1/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/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/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Abstract

멀티-쓰레드 프로세서에서 텍스처 디코딩을 수행하기 위한 방법은, 다수의 하드웨어 쓰레드들로 VP8 프레임의 적어도 2개의 매크로-블록들을 실질적으로 동시에 디코딩하는 단계를 포함한다. 각각의 하드웨어 쓰레드는 한번에 하나의 매크로-블록을 디코딩한다. 또한, 방법은, 멀티-쓰레드 프로세서의 하드웨어 쓰레드에 VP8 프레임의 적어도 2개의 매크로-블록들로부터의 매크로-블록을 할당하는 단계를 포함할 수도 있다.

Description

멀티-쓰레드 텍스처 디코딩{MULTI-THREADED TEXTURE DECODING}
본 발명은 일반적으로 데이터 프로세싱 시스템들, 더 상세하게는 멀티-쓰레드 텍스처 디코딩에 관한 것이다.
VP8은 기술 회사들의 컨소시엄에 의해 지원되는 오픈 소스 비디오 압축 포맷이다. 특히, VP8은 WebM 파일들에 의해 사용되는 비디오 압축 포맷이다. WebM은 월드 와이드 웹을 위한 고-품질의 오픈 미디어 포맷을 개발하도록 전용된 새로운 오픈 미디어 프로젝트이다. VP8 포맷은 비디오 압축/압축해제 툴들의 VPx 군의 후속으로서 On2 Technologies, Inc.에 의해 본래 개발되었다. VP8 포맷은, VP8 압축된 비디오 스트림들을 디코딩하기 위해 낮은 계산 복잡성을 이용하여 높은 압축 효율을 달성함으로써 산업 지원을 획득하였다.
본 발명의 일 양상에 따르면, 멀티-쓰레드 프로세서에서 텍스처 디코딩을 수행하기 위한 방법이 설명된다. 방법은, 다수의 하드웨어 쓰레드들로 VP8 프레임의 적어도 2개의 매크로-블록(macro-block)들을 실질적으로 동시에 디코딩하는 단계를 포함한다. 각각의 하드웨어 쓰레드는 한번에 하나의 매크로-블록을 프로세싱한다. 또한, 방법은, 멀티-쓰레드 프로세서의 각각의 하드웨어 쓰레드에 VP8 프레임의 매크로-블록을 할당하는 단계를 포함할 수도 있다.
다른 양상에서, 멀티-쓰레드 텍스처 디코딩을 수행하기 위한 장치가 설명된다. 장치는 적어도 하나의 멀티-쓰레드 프로세서 및 적어도 하나의 멀티-쓰레드 프로세서에 커플링된 메모리를 포함한다. 멀티-쓰레드 프로세서(들)는, 다수의 하드웨어 쓰레드들로 VP8 프레임의 적어도 2개의 매크로-블록들을 실질적으로 동시에 디코딩하도록 구성된다. 각각의 하드웨어 쓰레드는 한번에 하나의 쓰레드를 디코딩한다. 또한, 장치는, 멀티-쓰레드 프로세서의 각각의 하드웨어 쓰레드에 VP8 프레임의 매크로-블록을 할당하는 제어기를 포함할 수도 있다.
추가적인 양상에서, 멀티-쓰레드 텍스처 디코딩을 수행하기 위한 컴퓨터 프로그램 물건이 설명된다. 컴퓨터 프로그램 물건은 프로그램 코드들이 기록된 비-일시적인 컴퓨터-판독가능 매체를 포함한다. 컴퓨터 프로그램 물건은, 다수의 하드웨어 쓰레드들로 VP8 프레임의 적어도 2개의 매크로-블록들을 실질적으로 동시에 디코딩하기 위한 프로그램 코드를 갖는다. 각각의 하드웨어 쓰레드는 한번에 하나의 매크로-블록을 프로세싱한다. 또한, 컴퓨터 프로그램 물건은, 멀티-쓰레드 프로세서의 하드웨어 쓰레드에 VP8 프레임의 매크로-블록을 할당하기 위한 프로그램 코드를 포함할 수도 있다.
다른 양상에서, 멀티-쓰레드 텍스처 디코딩을 위한 장치가 설명된다. 장치는, 하드웨어 쓰레드에 VP8 프레임의 적어도 2개의 매크로-블록들 중 일 매크로-블록을 할당하기 위한 수단을 포함한다. 각각의 하드웨어 쓰레드는, 한번에 하나씩 매크로-블록을 프로세싱한다. 또한, 장치는, 다수의 하드웨어 쓰레드들로 VP8 프레임의 매크로-블록들을 실질적으로 동시에 디코딩하기 위한 수단을 포함한다.
본 발명의 부가적인 특성들 및 이점들이 후술될 것이다. 본 발명의 동일한 목적들을 수행하기 위해 다른 구조들을 변형 또는 설계하기 위한 기반으로서 본 발명이 용이하게 이용될 수도 있음이 당업자들에 의해 인식되어야 한다. 또한, 그러한 등가 구성들이, 첨부된 청구항들에 기재된 바와 같은 본 발명의 교시들을 벗어나지 않는다는 것이 당업자들에 의해 인지되어야 한다. 추가적인 목적들 및 이점들과 함께, 본 발명의 구성 및 동작 방법 둘 모두에 대해 본 발명의 특징인 것으로 믿어지는 신규한 특성들은, 첨부된 도면들과 관련하여 고려될 경우 다음의 설명으로부터 더 양호하게 이해될 것이다. 그러나, 도면들 각각이 단지 예시 및 설명의 목적을 위해 제공되며, 본 발명의 제한들의 정의로서 의도되지 않음이 명백히 이해될 것이다.
본 발명의 특성들, 속성 및 이점들은, 동일한 참조 부호들이 전체에 걸쳐 대응하게 식별되는 도면들과 함께 취해진 경우, 아래에 기재된 상세한 설명으로부터 더 명백해질 것이다.
도 1은 본 발명의 일 양상에 따른, 텍스처 디코딩 로직을 포함하는 멀티-프로세서 시스템의 블록도이다.
도 2는 본 발명의 추가적인 양상에 따른, 도 1의 텍스처 디코딩 로직을 도시하는 블록도이다.
도 3은 본 발명의 추가적인 양상에 따른, 프레임으로부터의 매크로-블록의 병렬 텍스처 디코딩을 도시하는 블록도이다.
도 4는 본 발명의 일 양상에 따른, 멀티-쓰레드 텍스처 디코딩을 위한 방법을 도시한다.
도 5는 본 발명의 추가적인 양상에 따른, 멀티-쓰레드 텍스처 디코딩을 위한 명령들을 실행하도록 동작가능한 프로세서를 포함하는 무선 디바이스의 양상들을 도시하는 블록도이다.
도 6은 본 발명의 일 양상이 유리하게 이용될 수도 있는 무선 통신 시스템을 도시하는 블록도이다.
첨부된 도면들과 관련하여 아래에 기재되는 상세한 설명은, 다양한 구성들의 설명으로서 의도되며, 본 명세서에 설명된 개념들이 실시될 수도 있는 구성들만을 표현하도록 의도되지 않는다. 상세한 설명은 다양한 개념들의 철저한 이해를 제공하려는 목적을 위해 특정한 세부사항들을 포함한다. 그러나, 이들 개념들이 이들 특정한 세부사항들 없이도 실시될 수도 있다는 것은 당업자들에게 명백할 것이다. 몇몇 예시들에서, 그러한 개념들을 불명료하게 하는 것을 회피하기 위해, 잘 알려진 구조들 및 컴포넌트들은 블록도 형태로 도시되어 있다.
VP8 포맷에 따라 인코딩된 비디오 스트림들을 디코딩하는 것은, 예측(prediction), 이산 코사인 변환(DCT)/WHT(Walsh-Hadamard transform) 역변환, 및 래스터-스캔 순서(raster-scan order)로의 재구성을 수행하기 위해 단일 쓰레드를 이용하여 일반적으로 수행된다. 특히, VP8 규격들은 프레임의 매크로-블록들 각각이 재구성될 때까지 매크로-블록 필터링을 일반적으로 금지한다. 즉, VP8 디코딩은 프레임 경계(boundary)들에 기초하여 발생하는 것으로서 특정된다. VP8 포맷 인코딩된 스트림들의 텍스처 디코딩에 대해 특정된 단일-쓰레드 프로세싱은, 멀티-쓰레드 프로세서들 뿐만 아니라 멀티-프로세서들이 VP8 디코딩 동안 높은 성능을 달성하는 것을 방지한다. 본 발명의 일 양상에 따르면, VP8 프레임의 적어도 2개의 매크로-블록(MB)들은, 각각의 하드웨어 쓰레드에서 한개씩 병렬로(동시에) 디코딩된다. VP8 인코딩된 매크로-블록들의 병렬 디코딩은 캐시(cache) 효율을 개선시킬 수도 있다.
도 1은 본 발명의 일 양상에 따른 텍스처 디코딩 로직(200)을 포함하는 멀티-프로세서 시스템(100)의 블록도를 도시한다. 주문형 집적 회로(ASIC)(102)는 멀티-쓰레드 텍스처 디코딩을 지원하는 다양한 프로세싱 유닛들을 포함한다. 도 1에 도시된 구성에 대해, ASIC(102)은 DSP 코어들(118A 및 118B), 프로세서 코어들(120A 및 120B), 교차-스위치(cross-switch)(116), 제어기(110), 내부 메모리(112), 외부 인터페이스 유닛(114)을 포함한다. DSP 코어들(118A 및 118B) 및 프로세서 코어들(120A 및 120B)은 비디오, 오디오, 그래픽들, 게이밍(gaming) 등과 같은 다양한 기능들을 지원한다. 각각의 프로세서 코어는 RISC(reduced instruction set computing) 머신, 마이크로프로세서, 또는 몇몇 다른 타입의 프로세서일 수도 있다. 제어기(110)는 ASIC(102) 내의 프로세싱 유닛들의 동작을 제어한다. 내부 메모리(112)는 ASIC(102) 내의 프로세싱 유닛들에 의해 사용되는 데이터 및 프로그램 코드들을 저장한다. 외부 인터페이스 유닛(114)은 ASIC(102) 외부의 다른 유닛들과 인터페이싱한다. 일반적으로, ASIC(102)은 도 1에 도시된 것들보다 더 적은, 더 많은 및/또는 그들과는 상이한 프로세싱 유닛들을 포함할 수도 있다. ASIC(102)에 포함된 프로세싱 유닛들의 개수 및 프로세싱 유닛들의 타입들은, 멀티-프로세서 시스템(100)에 의해 지원되는 통신 시스템들, 애플리케이션들, 및 기능들과 같은 다양한 팩터(factor)들에 의존한다.
텍스처 코딩 기술들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이들 기술들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 결합으로 구현될 수도 있다. 하드웨어 구현에 대해, 텍스처 코딩 기술들은 하나 또는 그 초과의 ASIC들, DSP들, DSPD들, PLD들, FPGA들, 프로세서들, 제어기들, 마이크로-제어기들, 마이크로프로세서들, 전자 디바이스들, 본 명세서에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 또는 이들의 결합 내에 구현될 수도 있다. 텍스처 코딩 기술들의 특정한 양상들은 설명된 기능들을 수행하는 소프트웨어 모듈들(예를 들어, 절차들, 함수들 등)을 이용하여 구현될 수도 있다. 소프트웨어 코드들은 메모리(예를 들어, 도 1의 메모리(101 및/또는 112))에 저장되고 프로세서(예를 들어, DSP 코어들(118A 및/또는 118B))에 의해 실행될 수도 있다. 메모리는 프로세서 내부에 또는 프로세서 외부에 구현될 수도 있다.
ASIC(102)은 텍스처 디코딩 명령들(230)을 저장하는 메모리(101)에 추가적으로 커플링한다. 도 1에 도시된 구성에 대해, 각각의 프로세싱 코어는 텍스처 디코딩 명령들(230)을 실행한다. 일 구성에서, ASIC(102)은 도 2에 추가적으로 도시된 바와 같이, 텍스처 디코딩 로직(200)을 포함할 수도 있다.
삭제
도 2는 본 발명의 일 양상에 따른, 도 1의 텍스처 디코딩 로직(200)을 도시하는 블록도이다. 대표적으로, 파싱(parse)된 패킷들(234)은 전단(front end) 쓰레드(240)에 의해 수신된다. 이러한 구성에서, 전단 쓰레드(240)는 파싱된 패킷들(234)의 프레임들로부터의 매크로-블록들을 태스크 큐(queue)(242)에 제공한다. 태스크 큐(242)로부터, 매크로-블록들은 태스크 사이즈에 따라 워커(worker) 쓰레드 풀(pool)(246)의 워커 쓰레드들(248)(248-1,..., 248-N)에 할당된다. 이러한 구성에서, 각각의 워커 쓰레드(248)는 매크로-블록 단위로 완전한 텍스처 디코딩을 수행한다. 즉, 각각의 워커 쓰레드(248)는 매크로-블록 단위로 예측, 역변환 재구성, 및 루프 필터링을 수행한다. 따라서, 워커 쓰레드들(248)은, 예를 들어, 도 3에 도시된 바와 같이, 매크로-블록들의 병렬/동시의 텍스처 디코딩을 집합적으로 수행한다. 부가적으로, 각각의 쓰레드는 태스크 사이즈에 따라 한번에 다수의 매크로-블록들을 디코딩한다.
도 2에 추가적으로 도시된 바와 같이, 태스크 관리자(250)는 본 발명의 일 양상에 따른 매크로-블록들 사이의 종속성을 유지한다. 본 발명의 이러한 양상에서, 태스크 관리자(250)는 디코딩된 종속하는 이웃들을 갖는 워커 쓰레드들(248)에 하나 또는 그 초과의 매크로-블록들의 태스크들을 할당한다. 일단 워커 쓰레드(248)가 매크로-블록의 디코딩을 완료하면, 디코딩된 매크로-블록은 프레임 큐(244)에 저장될 수도 있다. 이러한 구성에서, 전단 쓰레드(240)는 프레임 큐(244)로부터의 디코딩된 프레임들(236)을, 예를 들어, 프레임 버퍼(도시되지 않음)에 전송한다. 이러한 구성에서, 각각의 워커 쓰레드(248)는 한번에 2개의 매크로-블록들을 프로세싱할 수도 있지만; 다른 태스크 사이즈 구성들이 가능하다.
도 3은 본 발명의 일 양상에 따른, 프레임(300)내의 매크로-블록들(356)의 병렬 디코딩을 도시하는 블록도이다. 이러한 구성에서, 행 버퍼(352) 및 열 버퍼(354)는 재구성에 후속하여 각각의 매크로-블록(356)의 루프-필터링을 가능하게 하도록 제공된다. 이러한 구성에서, 행 버퍼(352) 및 열 버퍼(354)는, 재구성에 바로 후속하여, 매크로-블록들을 루프-필터링 하는 것에 대한 제약을 제거하기 위해 도입된다. 대표적으로, 열 버퍼(352) 및 행 버퍼(354)는 병렬의 다수의 쓰레드들에 의한 디코딩(358)을 가능하게 한다. 상술된 바와 같이, 종래에, VP8 디코딩은, 프레임 내의 각각의 매크로-블록(356)의 재구성이 완료될 때까지 매크로-블록들(356)의 루프-필터링을 지연시키는 것을 특정한다.
도 3의 구성에 도시된 바와 같이, 행 버퍼(352) 및 열 버퍼(354)는 루프-필터링 전에, 재구성된 픽셀들을 저장한다. 본 발명의 이러한 양상에서, 행 버퍼(352) 및 열 버퍼(354)에 저장된 필터링되지 않은 픽셀들은, 필터링되지 않은 픽셀들을 사용하여 수행되는 인트라-프레임(intra-frame) 예측을 가능하게 한다. 특히, 인트라-프레임 예측은 이전 매크로-블록들의 재구성된 이웃 정보를 사용하여 수행된다. 이러한 구성에서, 일단 매크로-블록(356)의 재구성된 픽셀 정보가 행 버퍼(352) 및 열 버퍼(354)에 저장되면, 매크로-블록(356)은 바로 필터링된다. 즉, 재구성된 픽셀 정보는, 다음 매크로-블록에 대한 인트라-프레임 예측을 가능하게 하도록 행 버퍼(352) 및 열 버퍼(354) 내에 저장된다. 본 발명의 이러한 양상에서, 로컬(라인) 버퍼들 내의 텍스처 디코딩을 포커싱(focus)하지만 가능한 경우 프레임 버퍼 액세스를 감소시키거나 회피함으로써 캐시 성능이 개선된다.
도 2를 다시 참조하면, VP8 포맷 인코딩된 데이터의 텍스처 디코딩을 위한 멀티-쓰레드 방식은, 720p 비디오 클립들을 디코딩하기 위해 초당 30 프레임(30 fps)을 달성할 수도 있다. 이러한 구성에서, 프레임 내의 매크로-블록들에 대해 어떠한 미리정의된 디코딩 시퀀스도 존재하지 않는다. 특히, 개별적인 워커 쓰레드들(248)은, 임의의 태스크가 디코딩할 준비가 될 때마다 태스크들을 요청한다. 결과로서, 디코딩이 하나의 프레임에 대해 진행됨에 따라, 점점 더 많은 동차(homogeneous)의 쓰레드들이 디코딩을 시작한다. 따라서, 하나의 프레임을 디코딩하기 위한 전체 시간 양이 상당히 감소되도록, 워커 쓰레드들(248)이 태스크로 점유되는 시간은 증가되고, 동적으로 밸런싱(balance)된다. 본 발명의 이러한 양상에서, 태스크 사이즈는 캐시 라인 사이즈에 기초한다. 즉, 하드웨어 쓰레드에 의해 디코딩되는 매크로-블록들의 개수는 캐시 라인 사이즈에 기초한다. 예를 들어, 2개의 매크로-블록들의 태스크 사이즈는 32 바이트 캐시 라인 사이즈에 대해 선택된다. 본 발명의 일 양상에서, 특정한 하드웨어 쓰레드가 프레임의 각각의 행에 할당될 수도 있다.
도 4는 본 발명의 일 양상에 따른, 멀티-쓰레드 텍스처 디코딩을 위한 방법(400)을 도시한다. 블록(410)에서, VP8 프레임의 적어도 2개의 매크로-블록(MB)들이 장치를 사용하여 다수의 하드웨어 쓰레드들로 동시에 디코딩된다. 각각의 하드웨어 쓰레드는 한번에 하나의 매크로-블록을 디코딩한다. 본 명세서에 설명된 바와 같은, 적어도 2개의 매크로-블록들의 동시의 디코딩은, 동시에 또는 실질적으로 동시에 적어도 2개의 매크로-블록들의 텍스처 디코딩을 수행하는 것을 지칭할 수도 있다. 본 발명의 이러한 양상에 따르면, 각각의 워커 쓰레드는 매크로-블록 단위로 완전한 텍스처 디코딩(예측, 역변환, 재구성, 및 루프-필터링)을 수행한다.
예를 들어, 하나의 워커 쓰레드에서의 매크로-블록 0(MB0)의 예측, MB0의 역변환, MB0의 재구성, 및 MB0의 루프-필터링은, 다른 워커 쓰레드에서의 매크로-블록 1(MB1)의 예측, MB1의 역변환, MB1의 재구성, 및 MB1의 루프-필터링과 실질적으로 동시에 수행된다. 본 발명의 이러한 양상에서, 매크로-블록의 루프-필터링은 매크로-블록의 재구성에 바로 후속한다. 태스크 사이즈에 의존하여, 각각의 워커 쓰레드는, 하드웨어 쓰레드들이 집합적으로 다수의 매크로-블록들을 병렬로 프로세싱하도록, 다수의 매크로-블록들을 프로세싱할 수도 있다.
일 구성에서, 장치는, 로직 회로를 포함하는 프로세서에서 멀티-쓰레드 텍스처 디코딩을 위한 수단을 포함한다. 본 발명의 일 양상에서, 디코딩 수단은 텍스처 디코딩 로직(200), DSP 코어들(118A, 118B), 프로세서 코어들(120A 및 120B), 및/또는 디코딩 수단에 의해 인용된 기능들을 수행하도록 구성된 멀티-프로세서 시스템(100)일 수도 있다. 본 발명의 다른 양상에서, 전술된 수단은, 전술된 수단에 의해 인용된 기능들을 수행하도록 구성된 임의의 모듈 또는 임의의 장치일 수도 있다.
도 5는 본 발명의 일 양상에 따른, 멀티-쓰레드 텍스처 디코딩을 위해 구성된 무선 디바이스(500)의 블록도를 도시한다. 무선 디바이스(500)는, 메모리(501)에 커플링된, 디지털 신호 프로세서(DSP)(520)와 같은 프로세서를 포함한다. 본 발명의 특정한 양상에서, 메모리(501)는, 텍스처 디코딩 명령들(530)과 같이 DSP(520)에 의해 실행가능한 명령들을 저장하고 송신할 수도 있다. 텍스처 디코딩 명령들(530)의 실행 시에, 다수의 텍스처 디코딩 로직 쓰레드들(560)(560-1,..., 560-N)은 각각의 쓰레드(560)에 대한 프레임의 다수의 매크로-블록들의 병렬 텍스처 디코딩을 수행하기 위해 설정된다. 대표적으로, 각각의 텍스처 디코딩 로직 쓰레드는 예측 블록(562), 이산 코사인 변환(DCT)/WHT(Walsh-Hadamard transform) 역변환 블록(564), 재구성 블록(566), 및 루프-필터링 블록(568)을 포함한다. 이러한 구성에서, 매크로-블록은, 종래의 프레임 경계보다는 매크로-블록 경계에서 병렬 텍스처 디코딩을 가능하게 하기 위해, 재구성 블록(566)으로부터 루프-필터링 블록(568)으로 바로 제공된다.
매크로-블록 레벨에서의 텍스처 디코딩은, 본 발명의 일 양상에 따라, 행 버퍼(552) 및 열 버퍼(554)에 필터링되지 않은 픽셀들을 저장함으로써 수행된다. 행 버퍼(552) 및 열 버퍼(554)에서의 필터링되지 않은 픽셀들의 저장은, 후속 매크로-블록들에 대한 예측을 가능하게 한다. 도 2를 참조하여 설명된 바와 같이, 태스크 관리자(550)는 텍스처 디코딩 로직 쓰레드들(560)에 매크로-블록들을 할당한다. 부가적으로, 전단 쓰레드(540)는 다양한 쓰레드들(560)에 매크로-블록들을 제공하고, 프레임 버퍼(556) 내에 디코딩된 프레임들을 저장한다. 이러한 구성에서, 각각의 쓰레드(560)에 할당된 매크로-블록들의 양은 캐시 라인 사이즈에 기초한다. 예를 들어, 각각의 쓰레드(560)에 대한 2개의 매크로-블록들의 태스크 사이즈는 32 바이트 캐시 라인 사이즈에 대해 선택된다.
도 5는 DSP(520) 및 디스플레이(528)에 커플링된 디스플레이 제어기(514)를 또한 도시한다. 코더/디코더(코덱)(CODEC)(570)(예를 들어, 오디오 및/또는 보이스 코덱)은 DSP(520)에 커플링될 수 있다. 예를 들어, 코덱(570)은, 디코딩 프로세스의 일부로서 텍스처 디코딩 명령들(530)의 실행을 야기할 수도 있다. (비디오 코덱 및/또는 이미지 프로세서를 포함할 수도 있는) 디스플레이 제어기(514) 및 (모뎀을 포함할 수도 있는) 무선 제어기(510)와 같은 다른 컴포넌트들은 신호 프로세싱 동안 텍스처 디코딩 명령들(530)의 실행을 또한 야기할 수도 있다. 스피커(572) 및 마이크로폰(574)은 코덱(570)에 커플링될 수 있다. 도 5는, 무선 제어기(510)가 무선 안테나(508)에 커플링될 수 있다는 것을 또한 표시한다. 일 구성에서, DSP(520), 디스플레이 제어기(514), 메모리(501), 코덱(570), 및 무선 제어기(510)는 시스템-인-패키지(system-in-package) 또는 시스템-온-칩(system-on-chip) 디바이스(522)에 포함된다.
특정한 구성에서, 입력 디바이스(526) 및 전력 공급부(524)는 시스템-온-칩 디바이스(522)에 커플링된다. 또한, 특정한 구성에서, 도 5에 도시된 바와 같이, 디스플레이(528), 입력 디바이스(526), 스피커(572), 마이크로폰(574), 무선 안테나(508), 및 전력 공급부(524)는 시스템-온-칩 디바이스(522)의 외부에 있다. 그럼에도 불구하고, 디스플레이(528), 입력 디바이스(526), 스피커(572), 마이크로폰(574), 무선 안테나(508), 및 전력 공급부(524) 각각은, 인터페이스 또는 제어기와 같은 시스템-온-칩 디바이스(522)의 컴포넌트에 커플링될 수 있다.
도 5가 무선 통신 디바이스를 도시하지만, DSP(520) 및 메모리(501)는 셋-톱 박스, 뮤직 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 개인 휴대 정보 단말(PDA), 고정 위치 데이터 유닛, 또는 컴퓨터 내로 또한 통합될 수도 있음을 유의해야 한다. 프로세서(예를 들어, 도 1의 마이크로프로세서(120)를 포함하는 DSP(520) 및/또는 프로세서)는 그러한 디바이스 내로 또한 통합될 수도 있다.
도 6은, 본 발명의 실시예가 유리하게 이용될 수도 있는 예시적인 무선 통신 시스템(600)을 도시하는 블록도이다. 예시의 목적들을 위해, 도 6은 3개의 원격 유닛들(620, 630, 및 650) 및 2개의 기지국들(640)을 도시한다. 무선 통신 시스템들이 더 많은 원격 유닛들 및 기지국들을 가질 수도 있음이 인식될 것이다. 원격 유닛들(620, 630, 및 650)은, 멀티-쓰레드 텍스처 디코더를 포함하는 IC 디바이스들(625A, 625B, 및 625C)을 포함한다. IC를 포함하는 임의의 디바이스가 기지국들, 스위칭 디바이스들, 및 네트워크 장비를 포함하여 본 명세서에 기재된 멀티-쓰레드 텍스처 디코더를 또한 포함할 수도 있음이 인식될 것이다. 도 6은, 기지국(640)으로부터 원격 유닛들(620, 630, 및 650)로의 순방향 링크 신호들(680) 및 원격 유닛들(620, 630, 및 650)로부터 기지국들(640)로의 역방향 링크 신호들(690)을 도시한다.
도 6에서, 원격 유닛(620)은 모바일 전화로서 도시되고, 원격 유닛(630)은 휴대용 컴퓨터로서 도시되며, 원격 유닛(650)은 무선 로컬 루프 시스템 내의 고정 위치 원격 유닛으로서 도시된다. 예를 들어, 원격 유닛들은 모바일 전화들, 핸드-헬드 개인용 통신 시스템(PCS) 유닛들, 개인 휴대 정보 단말들과 같은 휴대용 데이터 유닛들, GPS 인에이블된 디바이스들, 내비게이션 디바이스들, 셋 톱 박스들, 뮤직 플레이어들, 비디오 플레이어들, 엔터테인먼트 유닛들, 검침 장비(meter reading equipment)와 같은 고정 위치 데이터 유닛들, 또는 데이터 또는 컴퓨터 명령들을 저장 또는 리트리브하는 임의의 다른 디바이스들, 또는 이들의 임의의 결합일 수도 있다. 도 6이 본 발명의 교시들에 따른 원격 유닛들을 도시하지만, 본 발명은 이들 예시적인 도시된 유닛들로 제한되지 않는다. 본 발명의 양상들은 멀티-쓰레드 텍스처 디코더를 포함하는 임의의 디바이스에서 적절히 이용될 수도 있다.
특정한 회로가 기재되었지만, 기재된 회로 전부가 기재된 실시예들을 실시하는데 요구되지는 않는다는 것이 당업자들에 의해 인식될 것이다. 또한, 특정한 잘 알려진 회로들은 본 발명에 대한 포커스(focus)를 유지하기 위해 설명되지 않았다.
당업자들은, 본 명세서의 발명과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 결합들로서 구현될 수도 있음을 추가적으로 인식할 것이다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 그들의 기능의 관점들에서 일반적으로 상술되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지는 특정 애플리케이션 및 전체 시스템에 부과된 설계 제한들에 의존한다. 당업자들은 설명된 기능을 각각의 특정한 애플리케이션에 대해 다양한 방식들로 구현할 수도 있지만, 그러한 구현 결정들이 본 발명의 범위를 벗어나게 하는 것으로서 해석되지는 않아야 한다.
본 명세서의 발명과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 및 회로들은 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적회로(ASIC), 필드 프로그래밍가능 게이트 어레이(FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에 설명된 기능들을 수행하도록 설계된 이들의 임의의 결합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 결합, 예를 들어 DSP와 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 또는 그 초과의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수도 있다.
하나 또는 그 초과의 예시적인 설계들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 결합으로 구현될 수도 있다. 소프트웨어로 구현되면, 기능들은 컴퓨터-판독가능 매체 상에 하나 또는 그 초과의 명령들 또는 코드로서 저장되거나 이들을 통해 송신될 수도 있다. 컴퓨터-판독가능 매체들은, 일 장소에서 다른 장소로의 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함한 통신 매체들 및 컴퓨터 저장 매체들 둘 모두를 포함한다. 저장 매체들은 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 제한이 아닌 예로서, 그러한 컴퓨터-판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드 수단을 반송 또는 저장하는데 사용될 수 있고, 범용 또는 특수-목적 컴퓨터, 또는 범용 또는 특수-목적 프로세서에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속수단(connection)이 컴퓨터-판독가능 매체로 적절히 지칭된다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선(twisted pair), 디지털 가입자 라인(DSL), 또는 (적외선, 라디오, 및 마이크로파와 같은) 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 (적외선, 라디오, 및 마이크로파와 같은) 무선 기술들이 매체의 정의에 포함된다. 본 명세서에 사용되는 바와 같이, 디스크(disk) 및 디스크(disc)는 컴팩트 디스크(disc)(CD), 레이저 디스크(disc), 광학 디스크(disc), 디지털 다목적 디스크(digital versatile disc)(DVD), 플로피 디스크(disk) 및 blu-ray 디스크(disc)를 포함하며, 여기서 디스크(disk)들은 일반적으로 데이터를 자기적으로 재생하지만, 디스크(disc)들은 레이저들을 이용하여 광학적으로 데이터를 재생한다. 또한, 상기의 결합들은 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다.
본 발명의 이전 설명은 당업자가 본 발명을 사용 또는 실시할 수 있도록 제공된다. 본 발명에 대한 다양한 변형들은 당업자들에게 용이하게 명백할 것이며, 본 명세서에 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어나지 않으면서 다른 변형들에 적용될 수도 있다. 따라서, 본 발명은 본 명세서에 설명된 예들 및 설계들로 제한되도록 의도되는 것이 아니라, 본 명세서에 기재된 원리들 및 신규한 특성들과 일치하는 가장 넓은 범위에 부합할 것이다.

Claims (21)

  1. 멀티-쓰레드(multi-threaded) 프로세서에서의 텍스처 디코딩을 위한 방법으로서,
    IETF(Internet Engineering Task Force) RFC(Request For Comment) 6386에 따라 인코딩된 압축 비디오 데이터 포맷 프레임(compressed video data format frame)의 제 1 행 내의 제 1 매크로-블록을 제 1 하드웨어 쓰레드에 그리고 상기 압축 비디오 데이터 포맷 프레임의 제 2 행 내의 제 2 매크로-블록을 제 2 하드웨어 쓰레드에 할당하는 단계 ― 상기 제 1 행은 상기 제 2 행에 인접함 ―; 및
    상기 제 1 매크로-블록 및 상기 제 2 매크로-블록을 재구성하고, 그리고
    상기 제 1 하드웨어 쓰레드 또는 상기 제 2 하드웨어 쓰레드가 추가적인 매크로-블록들을 재구성하기 전에 상기 제 1 매크로-블록 및 상기 제 2 매크로-블록의 재구성 직후에, 상기 제 1 매크로-블록 및 상기 제 2 매크로-블록의 루프 필터링(loop filtering)을 수행함으로써,
    상기 제 1 하드웨어 쓰레드에 의해 상기 제 1 매크로-블록을 그리고 상기 제 2 하드웨어 쓰레드에 의해 상기 제 2 매크로-블록을 동시에 디코딩하는 단계를 포함하는, 멀티-쓰레드 프로세서에서의 텍스처 디코딩을 위한 방법.
  2. 제 1 항에 있어서,
    상기 제 1 매크로-블록 및 상기 제 2 매크로-블록은 상이한 행들로부터의 것들인, 멀티-쓰레드 프로세서에서의 텍스처 디코딩을 위한 방법.
  3. 제 1 항에 있어서,
    행 버퍼 및 열 버퍼 중 적어도 하나에 필터링되지 않은 픽셀들을 저장하는 단계를 더 포함하는, 멀티-쓰레드 프로세서에서의 텍스처 디코딩을 위한 방법.
  4. 제 1 항에 있어서,
    행 버퍼 및 열 버퍼 중 적어도 하나 내에 상기 제 1 매크로-블록 및 상기 제 2 매크로-블록의 재구성된 픽셀들을 저장하는 단계를 더 포함하는, 멀티-쓰레드 프로세서에서의 텍스처 디코딩을 위한 방법.
  5. 제 1 항에 있어서,
    상기 디코딩하는 단계는,
    각각의 하드웨어 쓰레드에서 매크로-블록을 재구성하는 단계; 및
    그 후, 상기 압축 비디오 데이터 포맷 프레임이 재구성되기 전에, 재구성된 매크로-블록을 필터링하는 단계를 더 포함하는, 멀티-쓰레드 프로세서에서의 텍스처 디코딩을 위한 방법.
  6. 제 1 항에 있어서,
    단일 하드웨어 쓰레드에 의해 디코딩되는 매크로-블록들의 수는 캐시 라인 사이즈에 기초하는, 멀티-쓰레드 프로세서에서의 텍스처 디코딩을 위한 방법.
  7. 제 1 항에 있어서,
    상기 디코딩하는 단계는, 상기 압축 비디오 데이터 포맷 프레임의 상기 제 1 매크로-블록 및 상기 제 2 매크로-블록 각각을 동시에 재구성 및 필터링하는 단계를 포함하는, 멀티-쓰레드 프로세서에서의 텍스처 디코딩을 위한 방법.
  8. 제 1 항에 있어서,
    상기 디코딩하는 단계는, 상기 압축 비디오 데이터 포맷 프레임의 상기 제 1 매크로-블록 및 상기 제 2 매크로-블록 각각을 동시에 텍스처 디코딩하는 단계를 포함하는, 멀티-쓰레드 프로세서에서의 텍스처 디코딩을 위한 방법.
  9. 제 1 항에 있어서,
    모바일 전화, 셋 톱 박스, 뮤직 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 컴퓨터, 핸드-헬드 개인용 통신 시스템(PCS) 유닛, 휴대용 데이터 유닛, 및 고정 위치 데이터 유닛 중 적어도 하나 내에 상기 멀티-쓰레드 프로세서를 통합하는 단계를 더 포함하는, 멀티-쓰레드 프로세서에서의 텍스처 디코딩을 위한 방법.
  10. 멀티-쓰레드 텍스처 디코딩을 위한 장치로서,
    메모리;
    상기 메모리에 커플링된 적어도 하나의 멀티-쓰레드 프로세서를 포함하고,
    상기 적어도 하나의 멀티-쓰레드 프로세서는,
    IETF(Internet Engineering Task Force) RFC(Request For Comment) 6386에 따라 인코딩된 압축 비디오 데이터 포맷 프레임의 제 1 행 내의 제 1 매크로-블록을 제 1 하드웨어 쓰레드에 그리고 상기 압축 비디오 데이터 포맷 프레임의 제 2 행 내의 제 2 매크로-블록을 제 2 하드웨어 쓰레드에 할당하고 ― 상기 제 1 행은 상기 제 2 행에 인접함 ―; 그리고
    상기 제 1 매크로-블록 및 상기 제 2 매크로-블록의 재구성, 및
    상기 제 1 하드웨어 쓰레드 또는 상기 제 2 하드웨어 쓰레드가 추가적인 매크로-블록들을 재구성하기 전 상기 제 1 매크로-블록 및 상기 제 2 매크로-블록의 재구성 직후의, 상기 제 1 매크로-블록 및 상기 제 2 매크로-블록의 루프 필터링의 수행에 의해,
    상기 제 1 하드웨어 쓰레드에 의해 상기 제 1 매크로-블록을 그리고 상기 제 2 하드웨어 쓰레드에 의해 상기 제 2 매크로-블록을 동시에 디코딩하도록 구성되는, 멀티-쓰레드 텍스처 디코딩을 위한 장치.
  11. 제 10 항에 있어서,
    상기 제 1 매크로-블록 및 상기 제 2 매크로-블록은 상이한 행들로부터의 것들인, 멀티-쓰레드 텍스처 디코딩을 위한 장치.
  12. 제 10 항에 있어서,
    상기 적어도 하나의 멀티-쓰레드 프로세서는,
    행 버퍼 및 열 버퍼 중 적어도 하나에 필터링되지 않은 픽셀들을 저장하고; 그리고
    상기 행 버퍼 및 상기 열 버퍼 중 적어도 하나 내에 상기 제 1 매크로-블록 및 상기 제 2 매크로-블록의 재구성된 픽셀들을 저장하도록 추가로 구성되는, 멀티-쓰레드 텍스처 디코딩을 위한 장치.
  13. 제 10 항에 있어서,
    상기 적어도 하나의 멀티-쓰레드 프로세서는,
    각각의 하드웨어 쓰레드에서 매크로-블록을 재구성하고, 그리고
    그 후, 상기 압축 비디오 데이터 포맷 프레임이 재구성되기 전에, 재구성된 매크로-불록들을 필터링함으로써,
    디코딩하도록 추가로 구성되는, 멀티-쓰레드 텍스처 디코딩을 위한 장치.
  14. 제 10 항에 있어서,
    상기 적어도 하나의 멀티-쓰레드 프로세서의 상기 제 1 하드웨어 쓰레드 및 상기 제 2 하드웨어 쓰레드에 상기 압축 비디오 데이터 포맷 프레임의 상기 제 1 매크로-블록 및 상기 제 2 매크로-블록을 할당하도록 구성되는 제어기를 더 포함하는, 멀티-쓰레드 텍스처 디코딩을 위한 장치.
  15. 제 10 항에 있어서,
    상기 적어도 하나의 멀티-쓰레드 프로세서는 디지털 신호 프로세서 및 멀티-코어 프로세서 중 하나를 포함하는, 멀티-쓰레드 텍스처 디코딩을 위한 장치.
  16. 제 10 항에 있어서,
    단일 하드웨어 쓰레드에 의해 디코딩되는 매크로-블록들의 수는 캐시 라인 사이즈에 기초하는, 멀티-쓰레드 텍스처 디코딩을 위한 장치.
  17. 제 10 항에 있어서,
    모바일 전화, 셋 톱 박스, 뮤직 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 컴퓨터, 핸드-헬드 개인용 통신 시스템(PCS) 유닛, 휴대용 데이터 유닛, 및 고정 위치 데이터 유닛 중 적어도 하나 내에 통합되는, 멀티-쓰레드 텍스처 디코딩을 위한 장치.
  18. 멀티-쓰레드 텍스처 디코딩을 위한 장치로서,
    IETF(Internet Engineering Task Force) RFC(Request For Comment) 6386에 따라 인코딩된 압축 비디오 데이터 포맷 프레임의 제 1 행 내의 제 1 매크로-블록을 제 1 하드웨어 쓰레드에 그리고 상기 압축 비디오 데이터 포맷 프레임의 제 2 행 내의 제 2 매크로-블록을 제 2 하드웨어 쓰레드에 할당하기 위한 수단 ― 상기 제 1 행은 상기 제 2 행에 인접함 ―; 및
    상기 제 1 매크로-블록 및 상기 제 2 매크로-블록을 재구성하고, 그리고
    상기 제 1 하드웨어 쓰레드 또는 상기 제 2 하드웨어 쓰레드가 추가적인 매크로-블록들을 재구성하기 전에 상기 제 1 매크로-블록 및 상기 제 2 매크로-블록의 재구성 직후에, 상기 제 1 매크로-블록 및 상기 제 2 매크로-블록의 루프 필터링을 수행함으로써,
    상기 제 1 하드웨어 쓰레드에 의해 상기 제 1 매크로-블록을 그리고 상기 제 2 하드웨어 쓰레드에 의해 상기 제 2 매크로-블록을 동시에 디코딩하기 위한 수단을 포함하는, 멀티-쓰레드 텍스처 디코딩을 위한 장치.
  19. 제 18 항에 있어서,
    모바일 전화, 셋 톱 박스, 뮤직 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 컴퓨터, 핸드-헬드 개인용 통신 시스템(PCS) 유닛, 휴대용 데이터 유닛, 및 고정 위치 데이터 유닛 중 적어도 하나 내에 통합되는, 멀티-쓰레드 텍스처 디코딩을 위한 장치.
  20. 비-일시적인 프로그램 코드가 기록된 비-일시적인 컴퓨터-판독가능 저장 매체로서,
    상기 프로그램 코드는,
    IETF(Internet Engineering Task Force) RFC(Request For Comment) 6386에 따라 인코딩된 압축 비디오 데이터 포맷 프레임의 제 1 행 내의 제 1 매크로-블록을 제 1 하드웨어 쓰레드에 그리고 상기 압축 비디오 데이터 포맷 프레임의 제 2 행 내의 제 2 매크로-블록을 제 2 하드웨어 쓰레드에 할당하기 위한 프로그램 코드 ― 상기 제 1 행은 상기 제 2 행과 인접함 ―; 및
    상기 제 1 매크로-블록 및 상기 제 2 매크로-블록의 재구성, 및
    상기 제 1 하드웨어 쓰레드 또는 상기 제 2 하드웨어 쓰레드가 추가적인 매크로-블록들을 재구성하기 전 상기 제 1 매크로-블록 및 상기 제 2 매크로-블록의 재구성 직후의, 상기 제 1 매크로-블록 및 상기 제 2 매크로-블록의 루프 필터링의 수행에 의해,
    상기 제 1 하드웨어 쓰레드에 의해 상기 제 1 매크로-블록을 그리고 상기 제 2 하드웨어 쓰레드에 의해 상기 제 2 매크로-블록을 동시에 디코딩하기 위한 프로그램 코드를 포함하는, 비-일시적인 컴퓨터-판독가능 저장 매체.
  21. 제 20 항에 있어서,
    모바일 전화, 셋 톱 박스, 뮤직 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 컴퓨터, 핸드-헬드 개인용 통신 시스템(PCS) 유닛, 휴대용 데이터 유닛, 및 고정 위치 데이터 유닛 중 적어도 하나 내에 통합되는, 비-일시적인 컴퓨터-판독가능 저장 매체.
KR1020147022989A 2012-01-20 2013-01-20 멀티-쓰레드 텍스처 디코딩 KR102035759B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/354,364 2012-01-20
US13/354,364 US20130188732A1 (en) 2012-01-20 2012-01-20 Multi-Threaded Texture Decoding
PCT/US2013/022341 WO2013110018A1 (en) 2012-01-20 2013-01-20 Multi-threaded texture decoding

Publications (2)

Publication Number Publication Date
KR20140114436A KR20140114436A (ko) 2014-09-26
KR102035759B1 true KR102035759B1 (ko) 2019-10-23

Family

ID=47664443

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147022989A KR102035759B1 (ko) 2012-01-20 2013-01-20 멀티-쓰레드 텍스처 디코딩

Country Status (7)

Country Link
US (1) US20130188732A1 (ko)
EP (1) EP2805498A1 (ko)
JP (1) JP2015508620A (ko)
KR (1) KR102035759B1 (ko)
CN (1) CN104041050B (ko)
TW (1) TWI510099B (ko)
WO (1) WO2013110018A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11228769B2 (en) * 2013-06-03 2022-01-18 Texas Instruments Incorporated Multi-threading in a video hardware engine
US10542233B2 (en) * 2014-10-22 2020-01-21 Genetec Inc. System to dispatch video decoding to dedicated hardware resources
CN106954066A (zh) * 2016-01-07 2017-07-14 鸿富锦精密工业(深圳)有限公司 视频解码方法
CN107547896B (zh) * 2016-06-27 2020-10-09 杭州当虹科技股份有限公司 一种基于CUDA的Prores VLC编码方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007259247A (ja) 2006-03-24 2007-10-04 Seiko Epson Corp 符号化装置、復号化装置、データ処理システム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6952211B1 (en) * 2002-11-08 2005-10-04 Matrox Graphics Inc. Motion compensation using shared resources of a graphics processor unit
KR20050121627A (ko) * 2004-06-22 2005-12-27 삼성전자주식회사 동영상 코덱의 필터링 방법 및 필터링 장치
US20050281339A1 (en) * 2004-06-22 2005-12-22 Samsung Electronics Co., Ltd. Filtering method of audio-visual codec and filtering apparatus
US20060013315A1 (en) * 2004-07-19 2006-01-19 Samsung Electronics Co., Ltd. Filtering method, apparatus, and medium used in audio-video codec
US20060050976A1 (en) * 2004-09-09 2006-03-09 Stephen Molloy Caching method and apparatus for video motion compensation
JP4680608B2 (ja) * 2005-01-17 2011-05-11 パナソニック株式会社 画像復号装置及び方法
US8036517B2 (en) * 2006-01-25 2011-10-11 Qualcomm Incorporated Parallel decoding of intra-encoded video
US8254455B2 (en) * 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US8311111B2 (en) * 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
JP5340289B2 (ja) * 2008-11-10 2013-11-13 パナソニック株式会社 画像復号装置、画像復号方法、集積回路及びプログラム
CN101939994B (zh) * 2008-12-08 2013-07-17 松下电器产业株式会社 图像解码装置及图像解码方法
WO2010082904A1 (en) * 2009-01-15 2010-07-22 Agency For Science, Technology And Research Image encoding methods, image decoding methods, image encoding apparatuses, and image decoding apparatuses
KR101118091B1 (ko) * 2009-06-04 2012-03-09 주식회사 코아로직 비디오 데이터 처리 장치 및 방법
CN101583041B (zh) * 2009-06-18 2012-03-07 中兴通讯股份有限公司 多核图像编码处理设备的图像滤波方法及设备
CN101600109A (zh) * 2009-07-13 2009-12-09 北京工业大学 基于纹理和运动特征的h.264降尺寸转码方法
EP2534643A4 (en) * 2010-02-11 2016-01-06 Nokia Technologies Oy METHOD AND APPARATUS FOR PROVIDING MULTIFIL VIDEO DECODING
US8681162B2 (en) * 2010-10-15 2014-03-25 Via Technologies, Inc. Systems and methods for video processing
CN102075746B (zh) * 2010-12-06 2012-10-31 青岛海信信芯科技有限公司 一种视频宏块解码方法及装置
US9042458B2 (en) * 2011-04-01 2015-05-26 Microsoft Technology Licensing, Llc Multi-threaded implementations of deblock filtering
US8731067B2 (en) * 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
US20130077690A1 (en) * 2011-09-23 2013-03-28 Qualcomm Incorporated Firmware-Based Multi-Threaded Video Decoding
US20130121410A1 (en) * 2011-11-14 2013-05-16 Mediatek Inc. Method and Apparatus of Video Encoding with Partitioned Bitstream

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007259247A (ja) 2006-03-24 2007-10-04 Seiko Epson Corp 符号化装置、復号化装置、データ処理システム

Also Published As

Publication number Publication date
CN104041050A (zh) 2014-09-10
WO2013110018A1 (en) 2013-07-25
KR20140114436A (ko) 2014-09-26
EP2805498A1 (en) 2014-11-26
US20130188732A1 (en) 2013-07-25
JP2015508620A (ja) 2015-03-19
TWI510099B (zh) 2015-11-21
CN104041050B (zh) 2018-12-21
TW201347548A (zh) 2013-11-16

Similar Documents

Publication Publication Date Title
JP6335845B2 (ja) 動的ビデオスイッチング
EP3331242B1 (en) Image prediction method and device
JP6423061B2 (ja) ビデオデコーダを実装するコンピューティングデバイス及びその方法
KR102035759B1 (ko) 멀티-쓰레드 텍스처 디코딩
US20170220283A1 (en) Reducing memory usage by a decoder during a format change
JP2009296169A (ja) 動画像復号装置および符号化装置
CN103686195A (zh) 视频信息处理方法及设备
JP2015508620A5 (ko)
KR101138920B1 (ko) 멀티 스레드 기반의 비디오 디코더 및 디코딩 방법
US20130148717A1 (en) Video processing system and method for parallel processing of video data
US8311091B1 (en) Cache optimization for video codecs and video filters or color converters
US9761232B2 (en) Multi-decoding method and multi-decoder for performing same
US20160269735A1 (en) Image encoding method and apparatus, and image decoding method and apparatus
JP2009130599A (ja) 動画像復号装置
US9092790B1 (en) Multiprocessor algorithm for video processing
TW201924328A (zh) 具有初始化片段之視訊及音訊之寫碼
KR20110101530A (ko) 동영상 변환 장치
CN114125464B (zh) 视频解码方法与视频解码装置
JP2011160077A (ja) 復号装置および方法
Zhang et al. A real-time multi-view AVS2 decoder on mobile phone
Lin et al. Data partition analyses for video decoders on PAC Duo platform
Trojahn et al. A comparative analysis of media processing component implementations for the Brazilian digital TV middleware
Lin et al. Data partition analyses for MPEG-2 decoders on a dual core embedded Platform
US20150201205A1 (en) Video decoding apparatus using frame cache and video decoding method performed by the same
KR20110122658A (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