TW201347548A - 多執行緒紋理解碼 - Google Patents

多執行緒紋理解碼 Download PDF

Info

Publication number
TW201347548A
TW201347548A TW102102266A TW102102266A TW201347548A TW 201347548 A TW201347548 A TW 201347548A TW 102102266 A TW102102266 A TW 102102266A TW 102102266 A TW102102266 A TW 102102266A TW 201347548 A TW201347548 A TW 201347548A
Authority
TW
Taiwan
Prior art keywords
thread
macroblocks
decoding
hardware
processor
Prior art date
Application number
TW102102266A
Other languages
English (en)
Other versions
TWI510099B (zh
Inventor
Zhou Bo
Xiao Shu
Junchen Du
Jalil Suhail
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW201347548A publication Critical patent/TW201347548A/zh
Application granted granted Critical
Publication of TWI510099B publication Critical patent/TWI510099B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)

Abstract

一種用於在一多執行緒處理器中執行紋理解碼之方法包括在多個硬體執行緒中實質上同時解碼一VP8圖框之至少兩個巨集區塊。每一硬體執行緒每次解碼一個巨集區塊。該方法亦可包括將來自該VP8圖框之該至少兩個巨集區塊之一巨集區塊指派至該多執行緒處理器之一硬體執行緒。

Description

多執行緒紋理解碼
本發明大體上係關於資料處理系統,且更具體言之,係關於多執行緒紋理解碼。
VP8為受到科技企業協會支援之開源視訊壓縮格式。詳言之,VP8為由WebM檔案使用之視訊壓縮格式。WebM為專用於開發用於全球資訊網之高品質開放媒體格式的新開放媒體專案。VP8格式最初係由On2 Technologies公司開發作為視訊壓縮/解壓縮工具之VPx家族的後繼者。VP8格式已藉由以解碼經VP8壓縮之視訊串流時之低計算複雜性達成高壓縮效率而取得工業支援。
根據本發明之一態樣,描述一種用於在一多執行緒處理器中執行紋理解碼之方法。該方法包括在多個硬體執行緒中實質上同時解碼一VP8圖框之至少兩個巨集區塊。每一硬體執行緒每次處理一個巨集區塊。該方法亦可包括將該VP8圖框之一巨集區塊指派至該多執行緒處理器之每一硬體執行緒。
在另一態樣中,描述一種用於執行多執行緒紋理解碼之裝置。該裝置包括至少一多執行緒處理器及耦接至該至少一多執行緒處理器之一記憶體。該(該等)多執行緒處理器經組態以在多個硬體執行緒中實質上同時解碼一VP8圖框之至少兩個巨集區塊。每一硬體執行緒每 次解碼一個執行緒。該裝置亦可包括將該VP8圖框之一巨集區塊指派至一多執行緒處理器之每一硬體執行緒的一控制器。
在另一態樣中,描述一種用於執行多執行緒紋理解碼之電腦程式產品。該電腦程式產品包括一非暫時性電腦可讀媒體,該非暫時性電腦可讀媒體具有記錄於其上之程式碼。該電腦程式產品具有用以在多個硬體執行緒中實質上同時解碼一VP8圖框之至少兩個巨集區塊的程式碼。每一硬體執行緒每次處理一個巨集區塊。該電腦程式產品亦可包括用以將該VP8圖框之一巨集區塊指派至一多執行緒處理器之一硬體執行緒的程式碼。
在另一態樣中,描述一種用於多執行緒紋理解碼之裝置。該裝置包括用於將一VP8圖框之至少兩個巨集區塊中之一巨集區塊指派至一硬體執行緒的構件。每一硬體執行緒每次處理一個巨集區塊。該裝置亦包括用於在多個硬體執行緒中實質上同時解碼該VP8圖框之該等巨集區塊的構件。
下文將描述本發明之額外特徵及優點。熟習此項技術者應瞭解,本發明可容易用作修改或設計用於進行本發明之相同目的之其他結構的基礎。熟習此項技術者亦應認識到,此等等效建構不脫離如附加申請專利範圍所闡述的本發明之教示。當結合附圖進行考慮時,自以下描述將較好地理解被咸信為本發明之特性的新穎特徵(該等特徵及該特性皆係關於本發明之組織及操作方法)連同另外目標及優點。然而,應明確地理解,該等圖中每一者係僅出於說明及描述之目的而被提供且不意欲界定本發明之限度。
100‧‧‧多處理器系統
101‧‧‧記憶體
102‧‧‧特殊應用積體電路(ASIC)
110‧‧‧控制器
112‧‧‧內部記憶體
114‧‧‧外部介面單元
116‧‧‧十字開關
118a‧‧‧數位信號處理器(DSP)核心
118b‧‧‧數位信號處理器(DSP)核心
120a‧‧‧處理器核心
120b‧‧‧處理器核心
200‧‧‧紋理解碼邏輯
230‧‧‧紋理解碼指令
234‧‧‧經剖析封包
236‧‧‧經解碼圖框
240‧‧‧前端執行緒
242‧‧‧任務佇列
244‧‧‧圖框佇列
246‧‧‧工作者執行緒集區
248-1‧‧‧工作者執行緒
248-N‧‧‧工作者執行緒
250‧‧‧任務管理器
300‧‧‧圖框
352‧‧‧列緩衝器
354‧‧‧行緩衝器
356‧‧‧巨集區塊
358‧‧‧由多個執行緒並行地進行之解碼
500‧‧‧無線器件
501‧‧‧記憶體
508‧‧‧無線天線
510‧‧‧無線控制器
514‧‧‧顯示控制器
520‧‧‧數位信號處理器(DSP)
522‧‧‧系統級封裝或系統單晶片器件
524‧‧‧電源供應器
526‧‧‧輸入器件
528‧‧‧顯示器
530‧‧‧紋理解碼指令
540‧‧‧前端執行緒
550‧‧‧任務管理器
552‧‧‧列緩衝器
554‧‧‧行緩衝器
556‧‧‧圖框緩衝器
560-1‧‧‧紋理解碼邏輯執行緒
560-N‧‧‧紋理解碼邏輯執行緒
562‧‧‧預測區塊
564‧‧‧離散餘弦變換(DCT)/沃爾什-哈達馬德變換(WHT)反轉區塊
566‧‧‧重建構區塊
568‧‧‧迴路濾波區塊
570‧‧‧編碼器/解碼器(編解碼器)
572‧‧‧揚聲器
574‧‧‧麥克風
600‧‧‧無線通信系統
620‧‧‧遠端單元
625A‧‧‧積體電路(IC)器件
625B‧‧‧積體電路(IC)器件
625C‧‧‧積體電路(IC)器件
630‧‧‧遠端單元
640‧‧‧基地台
650‧‧‧遠端單元
680‧‧‧前向鏈路信號
690‧‧‧反向鏈路信號
本發明之特徵、性質及優點將自下文在結合圖式進行考慮時所闡述之[實施方式]而變得更顯而易見,在該等圖式中,相同參考字符始終對應地識別。
圖1為根據本發明之一態樣的包括紋理解碼邏輯之多處理器系統的方塊圖。
圖2為根據本發明之另一態樣的說明圖1之紋理解碼邏輯的方塊圖。
圖3為根據本發明之另一態樣的說明來自圖框之巨集區塊之並行紋理解碼的方塊圖。
圖4說明根據本發明之一態樣的用於多執行緒紋理解碼之方法。
圖5為根據本發明之另一態樣的說明無線器件之態樣的方塊圖,該無線器件包括可操作以執行用於多執行緒紋理解碼之指令之處理器。
圖6為展示可供有利地使用本發明之一態樣之無線通信系統的方塊圖。
下文結合附加圖式而闡述之[實施方式]意欲描述各種組態,且不意欲表示可供實踐本文所描述之概念的僅有組態。[實施方式]出於提供對各種概念之透徹理解之目的而包括特定細節。然而,對於熟習此項技術者將顯而易見,可在無此等特定細節的情況下實踐此等概念。在一些例子中,以方塊圖形式展示熟知結構及組件以避免混淆此等概念。
解碼根據VP8格式而編碼之視訊串流通常係用單一執行緒予以執行以執行預測、離散餘弦變換(discrete cosine transform,DCT)/沃爾什-哈達馬德變換(Walsh-Hadamard transform,WHT)反轉,及以光柵掃描次序之重建構。詳言之,VP8規格通常禁止巨集區塊濾波,直至圖框之巨集區塊中之每一者被重建構為止。亦即,VP8解碼被指定為基於圖框邊界而發生。針對經VP8格式編碼的串流之紋理解碼而指定的單執行緒處理阻止多執行緒處理器以及多處理器在VP8解碼期間達成 高效能。根據本發明之一態樣,並行地(同時地)解碼VP8圖框之至少兩個巨集區塊(MB),在每一硬體執行緒中解碼一個巨集區塊。經VP8編碼的巨集區塊之並行解碼可改良快取效率。
圖1展示根據本發明之一態樣的包括紋理解碼邏輯200之多處理器系統100的方塊圖。特殊應用積體電路(ASIC)102包括支援多執行緒紋理解碼之各種處理單元。對於圖1所示之組態,ASIC 102包括DSP核心118A及118B、處理器核心120A及120B、十字開關116、控制器110、內部記憶體112,以及外部介面單元114。DSP核心118A及118B以及處理器核心120A及120B支援諸如視訊、音訊、圖形、遊戲及其類似者之各種功能。每一處理器核心可為一RISC(精簡指令集計算)機器、微處理器,或某其他類型之處理器。控制器110控制ASIC 102內之處理單元的操作。內部記憶體112儲存由ASIC 102內之處理單元使用的資料及程式碼。外部介面單元114與在ASIC 102外部之其他單元建立介面連接。大體上,ASIC 102可包括少於、多於及/或不同於圖1所示之處理單元的處理單元。包括於ASIC 102中之處理單元的數目及處理單元的類型取決於諸如由多處理器系統100支援之通信系統、應用及功能的各種因素。
紋理編碼技術可藉由各種手段實施。舉例而言,此等技術可以硬體、韌體、軟體或其組合予以實施。對於硬體實施,紋理編碼技術可實施於一或多個ASIC、DSP、DSPD、PLD、FPGA、處理器、控制器、微控制器、微處理器、電子器件、經設計成執行本文所描述之功能之其他電子單元或其組合內。紋理編碼技術之某些態樣可用執行所描述功能之軟體模組(例如,程序、函式,等等)予以實施。軟體程式碼可儲存於記憶體(例如,圖1中之記憶體101及/或112)中且由處理器(例如,DSP核心118A及/或118B)執行。該記憶體可實施於該處理器內或該處理器外部。
ASIC 102進一步耦接至儲存紋理解碼指令230之記憶體101。對於圖1所示之組態,每一處理核心執行紋理解碼指令230。在一組態中,ASIC 102可包括紋理解碼邏輯200,如圖2進一步所說明。
圖2為根據本發明之一態樣的說明圖1之紋理解碼邏輯200的方塊圖。代表性地,經剖析封包234係由前端執行緒240接收。在此組態中,前端執行緒240將來自經剖析封包234之圖框之巨集區塊提供至任務佇列242。自任務佇列242,根據任務大小將巨集區塊指派至工作者執行緒集區246之工作者執行緒248(248-1、......、248-N)。在此組態中,每一工作者執行緒248逐巨集區塊地執行完整紋理解碼。亦即,每一工作者執行緒248逐巨集區塊地執行預測、反變換、重建構及迴路濾波。因此,工作者執行緒248集體地執行巨集區塊之並行/同時紋理解碼,例如,如圖3所示。另外,每一執行緒根據任務大小而每次解碼數個巨集區塊。
如圖2進一步所說明,根據本發明之一態樣,任務管理器250維持巨集區塊之間的相依性。在本發明之此態樣中,任務管理器250將一或多個巨集區塊之任務指派至具有被解碼之相依鄰近者之工作者執行緒248。一旦工作者執行緒248完成巨集區塊之解碼,就可將經解碼巨集區塊儲存於圖框佇列244中。在此組態中,前端執行緒240將來自圖框佇列244之經解碼圖框236發送至(例如)圖框緩衝器(未圖示)。在此組態中,每一工作者執行緒248可每次處理兩個巨集區塊;然而,其他任務大小組態係可能的。
圖3為根據本發明之一態樣的說明圖框300內之巨集區塊356之並行解碼的方塊圖。在此組態中,提供列緩衝器352及行緩衝器354以實現在重建構之後對每一巨集區塊356之迴路濾波。在此組態中,引入列緩衝器352及行緩衝器354以消除對緊接在重建構之後進行巨集區塊之迴路濾波的限定。代表性地,列緩衝器352及行緩衝器354致能由多 個執行緒並行地進行之解碼358。如上文所提到,通常,VP8解碼指定延遲巨集區塊356之迴路濾波,直至一圖框內之每一巨集區塊356之重建構完成為止。
如圖3之組態所示,列緩衝器352及行緩衝器354儲存在迴路濾波之前的經重建構像素。在本發明之此態樣中,儲存於列緩衝器352及行緩衝器354中之未經濾波像素致能圖框內預測,該圖框內預測係使用未經濾波像素予以執行。詳言之,圖框內預測係使用先前巨集區塊之經重建構鄰近者資訊予以執行。在此組態中,一旦巨集區塊356之經重建構像素資訊儲存於列緩衝器352及行緩衝器354中,就緊接著對巨集區塊356進行濾波。亦即,經重建構像素資訊儲存於列緩衝器352及行緩衝器354內以致能針對下一巨集區塊之圖框內預測。在本發明之此態樣中,藉由集中於本端(行)緩衝器內之紋理解碼來改良快取效能,同時在可能時減少或避免圖框緩衝器存取。
再次參看圖2,用於經VP8格式編碼的資料之紋理解碼的多執行緒方案可達成每秒三十個圖框(30 fps)以用於解碼720p視訊剪輯。在此組態中,不存在針對圖框內之巨集區塊的預定義解碼序列。詳言之,只要任一任務準備好解碼,個別工作者執行緒248便請求任務。結果,隨著解碼針對一個圖框而進展,愈來愈多的同質執行緒開始該解碼。因此,工作者執行緒248從事於一任務的時間增加且動態地平衡,使得用於解碼一個圖框之總時間量顯著減小。在本發明之此態樣中,任務大小係基於快取行大小。亦即,藉由硬體執行緒解碼之巨集區塊的數目係基於快取行大小。舉例而言,兩個巨集區塊之任務大小經選擇用於三十二位元組快取行大小。在本發明之一態樣中,一特定硬體執行緒可被指派至一圖框之每一列。
圖4說明根據本發明之一態樣的用於多執行緒紋理解碼之方法400。在區塊410處,使用一裝置在多個硬體執行緒中同時解碼VP8圖 框之至少兩個巨集區塊(MB)。每一硬體執行緒每次解碼一個巨集區塊。如本文所描述,至少兩個巨集區塊之同時解碼可指代在同一時間或實質上在同一時間執行至少兩個巨集區塊之紋理解碼。根據本發明之此態樣,每一工作者執行緒逐巨集區塊地執行完整紋理解碼(預測、反變換、重建構及迴路濾波)。
舉例而言,在一工作者執行緒中執行的巨集區塊0(MB0)之預測、MB0之反變換、MB0之重建構及MB0之迴路濾波係與在另一工作者執行緒中執行的巨集區塊1(MB1)之預測、MB1之反變換、MB1之重建構及MB1之迴路濾波實質上同時。在本發明之此態樣中,巨集區塊之迴路濾波緊接在巨集區塊之重建構之後。取決於任務大小,每一工作者執行緒可處理多個巨集區塊,使得硬體執行緒集體地並行處理多個巨集區塊。
在一組態中,該裝置包括用於在包括邏輯電路之處理器中之多執行緒紋理解碼的構件。在本發明之一態樣中,解碼構件可為:紋理解碼邏輯200;DSP核心118A、118B;處理器核心120A及120B;及/或經組態以執行由解碼構件敍述之功能的多處理器系統100。在本發明之另一態樣中,前述構件可為經組態以執行由前述構件敍述之功能的任何模組或任何裝置。
圖5說明根據本發明之一態樣的經組態用於多執行緒紋理解碼之無線器件500的方塊圖。無線器件500包括耦接至記憶體501之處理器,諸如,數位信號處理器(DSP)520。在本發明之一特定態樣中,記憶體501儲存且可傳輸可由DSP 520執行之指令,諸如,紋理解碼指令530。在執行紋理解碼指令530後,即建立多個紋理解碼邏輯執行緒560(560-1、......、560-N)以用於針對每一執行緒560來執行對一圖框之多個巨集區塊之並行紋理解碼。代表性地,每一紋理解碼邏輯執行緒包括一預測區塊562、一離散餘弦變換(DCT)/沃爾什-哈達馬德變換 (WHT)反轉區塊564、一重建構區塊566及一迴路濾波區塊568。在此組態中,緊接著將一巨集區塊自重建構區塊566提供至迴路濾波區塊568以用於致能在巨集區塊邊界而非習知圖框邊界處的並行紋理解碼。
根據本發明之一態樣,藉由將未經濾波像素儲存於列緩衝器552及行緩衝器554中來執行巨集區塊級下之紋理解碼。將未經濾波像素儲存於列緩衝器552及行緩衝器554中致能針對後續巨集區塊之預測。如參看圖2所描述,任務管理器550將巨集區塊指派至紋理解碼邏輯執行緒560。另外,前端執行緒540將巨集區塊提供至各種執行緒560且將經解碼圖框儲存於圖框緩衝器556內。在此組態中,被指派至每一執行緒560之巨集區塊的量係基於快取行大小。舉例而言,針對每一執行緒560的兩個巨集區塊之任務大小經選擇用於三十二位元組快取行大小。
圖5亦展示耦接至DSP 520及顯示器528之顯示控制器514。編碼器/解碼器(編解碼器(CODEC))570(例如,音訊及/或語音CODEC)可耦接至DSP 520。舉例而言,CODEC 570可促使執行紋理解碼指令530作為解碼處理之部分。諸如顯示控制器514(其可包括視訊CODEC及/或影像處理器)及無線控制器510(其可包括數據機)之其他組件亦可促使在信號處理期間執行紋理解碼指令530。揚聲器572及麥克風574可耦接至CODEC 570。圖5亦指示無線控制器510可耦接至無線天線508。在一組態中,DSP 520、顯示控制器514、記憶體501、CODEC 570及無線控制器510包括於系統級封裝或系統單晶片器件522中。
在一特定組態中,輸入器件526及電源供應器524耦接至系統單晶片器件522。此外,在一特定組態中,如圖5所說明,顯示器528、輸入器件526、揚聲器572、麥克風574、無線天線508及電源供應器524處於系統單晶片器件522外部。然而,顯示器528、輸入器件526、 揚聲器572、麥克風574、無線天線508及電源供應器524中之每一者可耦接至系統單晶片器件522之一組件,諸如,介面或控制器。
應注意,儘管圖5描繪無線通信器件,但DSP 520及記憶體501亦可整合至機上盒、音樂播放器、視訊播放器、娛樂單元、導航器件、個人數位助理(PDA)、固定位置資料單元或電腦中。一處理器(例如,DSP 520及/或包括圖1之微處理器120的處理器)亦可整合至此器件中。
圖6為展示可供有利地使用本發明之一實施例之例示性無線通信系統600的方塊圖。出於說明之目的,圖6展示三個遠端單元620、630及650,以及兩個基地台640。應認識到,無線通信系統可具有更多遠端單元及基地台。遠端單元620、630及650包括IC器件625A、625B及625C,該等IC器件包括多執行緒紋理解碼器。應認識到,含有IC之任何器件亦可包括此處所揭示之多執行緒紋理解碼器,包括基地台、切換器件及網路設備。圖6展示自基地台640至遠端單元620、630及650之前向鏈路信號680,以及自遠端單元620、630及650至基地台640之反向鏈路信號690。
在圖6中,遠端單元620被展示為行動電話,遠端單元630被展示為攜帶型電腦,且遠端單元650被展示為無線區域迴路系統中之固定位置遠端單元。舉例而言,該等遠端單元可為行動電話、手持型個人通信系統(PCS)單元、諸如個人資料助理之攜帶型資料單元、GPS允用器件、導航器件、機上盒、音樂播放器、視訊播放器、娛樂單元、諸如儀錶讀取設備之固定位置資料單元,或儲存或擷取資料或電腦指令之任何其他器件,或其任何組合。儘管圖6根據本發明之教示而說明遠端單元,但本發明不限於此等例示性所說明單元。本發明之態樣可合適地用於包括多執行緒紋理解碼器之任何器件中。
儘管已闡述特定電路,但熟習此項技術者應瞭解,並不需要所 揭示電路中之全部來實踐所揭示實施例。此外,尚未描述某些熟知電路以維持對本發明之關注。
熟習此項技術者應進一步瞭解,結合本文中之揭示內容而描述之各種說明性邏輯區塊、模組、電路及演算法步驟可被實施為電子硬體、電腦軟體或此兩者之組合。為了清楚地說明硬體與軟體之此可互換性,上文已大體上在功能性方面描述各種說明性組件、區塊、模組、電路及步驟。此功能性被實施為硬體抑或軟體取決於特定應用及強加於整個系統之設計約束。熟習此項技術者可針對每一特定應用而以變化方式來實施所描述功能性,但此等實施決策不應被解釋為造成脫離本發明之範疇。
可藉由通用處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)或經設計成執行本文所描述之功能的其他可程式化邏輯器件、離散閘或電晶體邏輯、離散硬體組件或其任何組合來實施或執行結合本文中之揭示內容而描述的各種說明性邏輯區塊、模組及電路。通用處理器可為微處理器,但在替代例中,該處理器可為任何習知處理器、控制器、微控制器或狀態機。處理器亦可被實施為計算器件之組合,例如,DSP與微處理器之組合、複數個微處理器、結合DSP核心之一或多個微處理器,或任何其他此類組態。
在一或多個例示性設計中,所描述功能可以硬體、軟體、韌體或其任何組合予以實施。若以軟體予以實施,則該等功能可作為一或多個指令或程式碼而儲存於電腦可讀媒體上或經由電腦可讀媒體進行傳輸。電腦可讀媒體包括電腦儲存媒體及通信媒體兩者,通信媒體包括促進電腦程式自一處至另一處之轉移的任何媒體。儲存媒體可為可由通用或專用電腦存取之任何可用媒體。作為實例而非限制,此等電腦可讀媒體可包含RAM、ROM、EEPROM、CD-ROM或其他光碟儲 存器件、磁碟儲存器件或其他磁性儲存器件,或可用以攜載或儲存呈指令或資料結構之形式之所要程式碼構件且可由通用或專用電腦或通用或專用處理器存取的任何其他媒體。又,將任何連接適當地稱為電腦可讀媒體。舉例而言,若使用同軸電纜、光纜、雙絞線、數位用戶線(DSL)或諸如紅外線、無線電及微波之無線技術而自網站、伺服器或其他遠端源傳輸軟體,則同軸電纜、光纜、雙絞線、DSL或諸如紅外線、無線電及微波之無線技術包括於媒體之定義中。如本文所使用,磁碟及光碟包括緊密光碟(CD)、雷射光碟、光學光碟、數位影音光碟(DVD)、軟性磁碟及藍光光碟,其中磁碟通常以磁性方式再生資料,而光碟藉由雷射以光學方式再生資料。以上各者之組合亦應包括於電腦可讀媒體之範疇內。
提供本發明之先前描述以使任何熟習此項技術者能夠製造或使用本發明。在不脫離本發明之精神或範疇的情況下,對本發明之各種修改對於熟習此項技術者將容易顯而易見,且本文所定義之一般原理可應用於其他變化。因此,本發明不意欲限於本文所描述之實例及設計,而應符合與本文所揭示之原理及新穎特徵一致的最廣範疇。
100‧‧‧多處理器系統
101‧‧‧記憶體
102‧‧‧特殊應用積體電路(ASIC)
110‧‧‧控制器
112‧‧‧內部記憶體
114‧‧‧外部介面單元
116‧‧‧十字開關
118a‧‧‧數位信號處理器(DSP)核心
118b‧‧‧數位信號處理器(DSP)核心
120a‧‧‧處理器核心
120b‧‧‧處理器核心
200‧‧‧紋理解碼邏輯
230‧‧‧紋理解碼指令

Claims (21)

  1. 一種用於一多執行緒處理器中之紋理解碼之方法,其包含:藉由複數個硬體執行緒實質上同時地解碼一VP8圖框之至少兩個巨集區塊,每一硬體執行緒處理一巨集區塊。
  2. 如請求項1之方法,其中該至少兩個巨集區塊係來自不同列。
  3. 如請求項1之方法,其進一步包含將未經濾波像素儲存於一列緩衝器及一行緩衝器中之至少一者中。
  4. 如請求項1之方法,其進一步包含:將該至少兩個巨集區塊之經重建構像素儲存於一列緩衝器及一行緩衝器中之至少一者內。
  5. 如請求項1之方法,其中解碼進一步包含:在每一硬體執行緒中重建構一個巨集區塊;且接著對該經重建構巨集區塊進行濾波。
  6. 如請求項1之方法,其中藉由一單一硬體執行緒解碼之巨集區塊之一數目係基於一快取行大小。
  7. 如請求項1之方法,其中解碼包含同時重建構該至少兩個巨集區塊中之每一者且對其進行濾波。
  8. 如請求項1之方法,其中解碼包含同時對該VP8圖框之該至少兩個巨集區塊中之每一者進行紋理解碼。
  9. 如請求項1之方法,其進一步包含將該多執行緒處理器整合至一行動電話、一機上盒、一音樂播放器、一視訊播放器、一娛樂單元、一導航器件、一電腦、一手持型個人通信系統(PCS)單元、一攜帶型資料單元及一固定位置資料單元中之至少一者中。
  10. 一種用於多執行緒紋理解碼之裝置,其包含: 一記憶體;及至少一多執行緒處理器,其耦接至該記憶體,該至少一多執行緒處理器經組態以藉由複數個硬體執行緒實質上同時解碼一VP8圖框之至少兩個巨集區塊,每一硬體執行緒處理一巨集區塊。
  11. 如請求項10之裝置,其中該至少兩個巨集區塊係來自不同列。
  12. 如請求項10之裝置,其中該至少一多執行緒處理器經進一步組態以:將未經濾波像素儲存於一列緩衝器及一行緩衝器中之至少一者中;且將該至少兩個巨集區塊之經重建構像素儲存於該列緩衝器及該行緩衝器中之至少一者內。
  13. 如請求項10之裝置,其中該多執行緒處理器經進一步組態以藉由如下方式進行解碼:在一硬體執行緒中重建構一個巨集區塊;且接著對該經重建構巨集區塊進行濾波。
  14. 如請求項10之裝置,其進一步包含一控制器,該控制器經組態以將該VP8圖框之至少兩個巨集區塊中之一巨集區塊指派至該多執行緒處理器之一硬體執行緒。
  15. 如請求項10之裝置,其中該多執行緒處理器包含一數位信號處理器及一多核心處理器中之一者。
  16. 如請求項10之裝置,其中藉由一單一硬體執行緒解碼之巨集區塊之一數目係基於一快取行大小。
  17. 如請求項10之裝置,其整合至一行動電話、一機上盒、一音樂播放器、一視訊播放器、一娛樂單元、一導航器件、一電腦、一手持型個人通信系統(PCS)單元、一攜帶型資料單元及一固定 位置資料單元中之至少一者中。
  18. 一種用於多執行緒紋理解碼之裝置,其包含:用於將一VP8圖框之至少兩個巨集區塊中之一巨集區塊指派至一硬體執行緒的構件;及用於在複數個硬體執行緒中實質上同時解碼該VP8圖框之該至少兩個巨集區塊的構件。
  19. 如請求項18之裝置,其整合至一行動電話、一機上盒、一音樂播放器、一視訊播放器、一娛樂單元、一導航器件、一電腦、一手持型個人通信系統(PCS)單元、一攜帶型資料單元及一固定位置資料單元中之至少一者中。
  20. 一種經組態用於多執行緒紋理解碼之電腦程式產品,該電腦程式產品包含:一非暫時性電腦可讀媒體,其具有記錄於其上之非暫時性程式碼,該程式碼包含:用以藉由複數個硬體執行緒實質上同時解碼一VP8圖框之至少兩個巨集區塊的程式碼,每一硬體執行緒處理一巨集區塊。
  21. 如請求項20之程式產品,其整合至一行動電話、一機上盒、一音樂播放器、一視訊播放器、一娛樂單元、一導航器件、一電腦、一手持型個人通信系統(PCS)單元、一攜帶型資料單元及一固定位置資料單元中之至少一者中。
TW102102266A 2012-01-20 2013-01-21 多執行緒紋理解碼 TWI510099B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/354,364 US20130188732A1 (en) 2012-01-20 2012-01-20 Multi-Threaded Texture Decoding

Publications (2)

Publication Number Publication Date
TW201347548A true TW201347548A (zh) 2013-11-16
TWI510099B TWI510099B (zh) 2015-11-21

Family

ID=47664443

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102102266A TWI510099B (zh) 2012-01-20 2013-01-21 多執行緒紋理解碼

Country Status (7)

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

Families Citing this family (5)

* 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编码方法
CN111447453B (zh) * 2020-03-31 2024-05-17 西安万像电子科技有限公司 图像处理方法及装置

Family Cites Families (23)

* 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
US20050281339A1 (en) * 2004-06-22 2005-12-22 Samsung Electronics Co., Ltd. Filtering method of audio-visual codec and filtering apparatus
KR20050121627A (ko) * 2004-06-22 2005-12-27 삼성전자주식회사 동영상 코덱의 필터링 방법 및 필터링 장치
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
JP2007259247A (ja) * 2006-03-24 2007-10-04 Seiko Epson Corp 符号化装置、復号化装置、データ処理システム
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 パナソニック株式会社 画像復号装置、画像復号方法、集積回路及びプログラム
WO2010067505A1 (ja) * 2008-12-08 2010-06-17 パナソニック株式会社 画像復号化装置および画像復号化方法
US20120014451A1 (en) * 2009-01-15 2012-01-19 Wei Siong Lee 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

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI510099B (zh) 多執行緒紋理解碼
JP6423061B2 (ja) ビデオデコーダを実装するコンピューティングデバイス及びその方法
US8213518B1 (en) Multi-threaded streaming data decoding
JP2017522795A5 (zh)
RU2599959C2 (ru) Схема сжатия dram для снижения потребления энергии при компенсации движения и обновления отображения
JP4691062B2 (ja) 情報処理装置
JP2016518764A5 (zh)
CN103686195A (zh) 视频信息处理方法及设备
JP2015508620A5 (zh)
WO2024098821A1 (zh) Av1的滤波方法及装置
US8311091B1 (en) Cache optimization for video codecs and video filters or color converters
KR101138920B1 (ko) 멀티 스레드 기반의 비디오 디코더 및 디코딩 방법
US20160269735A1 (en) Image encoding method and apparatus, and image decoding method and apparatus
US20160366433A1 (en) Coding of Video and Audio with Initialization Fragments
JP2009130599A (ja) 動画像復号装置
RU2014119878A (ru) Способ кодирования видео с предсказанием движения, устройство кодирования видео с предсказанием движения, программа кодирования видео с предсказанием движения, способ декодирования видео с предсказанием движения, устройство декодирования видео с предсказанием движения и программа декодирования видео с предсказанием движения
US10694190B2 (en) Processing apparatuses and controlling methods thereof
JP2011160077A (ja) 復号装置および方法
KR20150040126A (ko) 프레임의 특성에 따라 부하를 분배하는 방법 및 장치
KR20110101530A (ko) 동영상 변환 장치
US9092790B1 (en) Multiprocessor algorithm for video processing
CN114125464B (zh) 视频解码方法与视频解码装置
Zhang et al. A real-time multi-view AVS2 decoder on mobile phone
KR20170053031A (ko) 복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법
Lin et al. Data partition analyses for video decoders on PAC Duo platform

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees