TW201840177A - 一種訪問幀緩存器的方法、處理存取單元的方法及裝置 - Google Patents

一種訪問幀緩存器的方法、處理存取單元的方法及裝置 Download PDF

Info

Publication number
TW201840177A
TW201840177A TW107113842A TW107113842A TW201840177A TW 201840177 A TW201840177 A TW 201840177A TW 107113842 A TW107113842 A TW 107113842A TW 107113842 A TW107113842 A TW 107113842A TW 201840177 A TW201840177 A TW 201840177A
Authority
TW
Taiwan
Prior art keywords
access unit
compressed
merged
access
frame buffer
Prior art date
Application number
TW107113842A
Other languages
English (en)
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
Priority claimed from US15/786,240 external-priority patent/US10418002B2/en
Application filed by 聯發科技股份有限公司 filed Critical 聯發科技股份有限公司
Publication of TW201840177A publication Critical patent/TW201840177A/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本發明提供了一種處理存取單元的方法,其根據各自已壓縮存取單元的壓縮率和/或位置。方法可以包括:接收對應於自圖像或者視頻幀分割的原始存取單元序列且對應於幀緩存器中的記憶體空間序列的已壓縮存取單元序列;基於已壓縮存取單元序列的壓縮率和/或位置,確定包括至少兩個連續的已壓縮存取單元的合併存取單元。相比於將至少兩個連續的已壓縮存取單元存儲在記憶體空間序列中的多個相應記憶體空間中,合併存取單元以在至少兩個連續的已壓縮存取單元之間具有減少間隙的方式存儲在幀緩存器中。本發明還提供了訪問幀緩存器的方法及相關裝置。本發明降低了記憶體頻帶,且降低了記憶體系統成本。

Description

一種訪問幀緩存器的方法、處理存取單元的方法及裝置 【相關申請的交叉引用】
本申請要求如下申請的優先權:在2017年04月25日提出名稱為“Memory Access Efficiency Optimization for Frame Buffer Compression”的第62/489,588號的美國臨時專利申請和在2017年10月17日提出名稱為“Frame Buffer Compression with Dynamic Unit Size”的第15/786,240號的美國專利申請,其整體以引用方式併入本文中。
本發明的所公開實施例涉及幀處理技術,且更具體而言,涉及一種訪問幀緩存器的方法、處理存取單元的方法及裝置。
此處提供的先前技術描述用作一般展現本發明之內容的目的。目前署名發明人的工作內容,既包含在本背景技術部分中所描述的工作之內容,也包含在申請時未被認為是先前技術的說明書的各方面,這些既不明確也不暗示地被承認是本發明之先前技術。
多媒體應用,例如視頻編碼和解碼,在視頻處理核與幀記憶體之間需要大量的資料傳輸。例如,視頻編解碼器可以採用資料傳輸密集型編解碼工具,例如雙向預測、交錯視頻和多個參考幀,其將大量資料參考引入到幀記憶體。在某些多媒體應用中,記憶體頻帶需求可以是處於5Gb/s到30Gb/s的範圍內。高記憶體頻帶需求導致昂貴的記憶體系統以及高功率消耗,因此應減小記憶體頻帶。
有鑑於此,本發明提供了一種訪問幀緩存器的方法、處理存取單元的方法及裝置,以有效地降低記憶體頻帶,降低記憶體系統成本。
本發明的方面提供一種處理存取單元的方法,其根據各自已壓縮存取單元的壓縮率和/或位置。因此,用比單獨存儲並讀取各自的已壓縮存取單元更高的記憶體訪問效率,存儲在幀緩存器中的得到的合併存取單元可以後續被訪問。本方法可以包括:接收對應於自圖像或者視頻幀分割的原始存取單元序列且對應於幀緩存器中的記憶體空間序列的已壓縮存取單元序列;基於已壓縮存取單元序列的壓縮率和/或位置,確定包括至少兩個連續的已壓縮存取單元的合併存取單元。相比於將至少兩個連續的已壓縮存取單元存儲在記憶體空間序列中的多個相應記憶體空間中,合併存取單元以存儲在幀緩存器中,在至少兩個連續的已壓縮存取單元之間具有減少間隙的方式存儲在幀緩存器中。
在一個實施例中,幀緩存器包括由多個叢發分界 線所分割且對應於記憶體空間序列的叢發部分序列;以及本方法還包括:將合併存取單元存儲到幀緩存器中,其中合併存取單元與幀緩存器的叢發分界線對齊,並且合併存取單元的多個成員相互相鄰。在一個實施例中,本方法還可包括:當連續的已壓縮存取單元集整體具有大於預選擇百分比的壓縮率時,確定將連續的已壓縮存取單元集合並成合併存取單元。在另一實施例中,本方法還可包括:確定包括可被包含在預選擇數量的連續叢發部分中的最大數量的連續的已壓縮存取單元的合併存取單元。在又一實施例中,本方法還可包括:避免將屬於圖像或者視頻幀中不同方塊的多個已壓縮存取單元排列在同一合併存取單元中。在一個實施例中,本方法還可包括:避免將與方塊或者圖像或視頻幀的第一分界線相鄰的第一已壓縮存取單元和與方塊或者圖像或視頻幀的第二分界線相鄰的第二已壓縮存取單元排列在同一合併存取單元中,其中第二分界線與第一分界線相對設置。
本方法的實施例可以包括:接收更新的已壓縮存取單元,已更新的已壓縮存取單元具有比待更新的已壓縮存取單元的更大尺寸,待更新的已壓縮存取單元屬於合併存取單元並與幀緩存器中的第一叢發部分的叢發分界線對齊;以及將已更新的已壓縮存取單元存儲在第二叢發部分中的起始位址處,其中第二叢發部分是叢發部分序列中先前相鄰叢發部分。
在一個實施例中,本方法還包括:生成合併資訊序列,其中每個合併資訊對應於已壓縮存取單元或者合併存取單元,且表示已壓縮存取單元序列如何被合併成多個合併存取 單元,使得在已壓縮存取單元被請求時,包括所請求的已壓縮存取單元的合併存取單元可根據合併資訊被確定。合併資訊由分配給每個已壓縮存取單元的合併使能標誌;相對於每個已壓縮存取單元的標識位址的每個已壓縮存取單元的位址偏移;以及對應於合併存取單元的多個成員的多個未壓縮存取單元的總尺寸中的一個表示。
在一個實施例中,每個已壓縮存取單元包括至少兩個已壓縮編碼單元,每個已壓縮編碼單元具有一長度。因此,在一個示例中,本方法還可包括:生成編碼單元標頭序列,其中每個編碼單元標頭對應於已壓縮編碼單元且包括各自的已壓縮編碼單元的長度資訊。在另一示例中,本方法還可包括:生成合併標頭序列,每個合併標頭對應於已壓縮存取單元。每個合併標頭可以包括至少兩個欄位,每個欄位存儲有各自已編碼存取單元中的各自的至少兩個已壓縮編碼單元的長度資訊,以及又一欄位,其存儲有相對於各自已壓縮存取單元的標識位址的各自已壓縮存取單元的位址偏移。此外,用多個可配置起始位址,已壓縮存取單元序列和合併標頭序列單獨被存儲。
在不同實施例中,幀緩存器是隨機訪問記憶體、靜態隨機訪問記憶體、動態隨機訪問記憶體、異步動態隨機訪問記憶體、同步動態隨機訪問記憶體、雙通道同步動態隨機訪問記憶體和快閃記憶體中的一個。
本發明的方面提供了一種訪問幀緩存器的方法。本方法可以包括:接收自幀緩存器讀取已壓縮存取單元的請 求,幀緩存器存儲有部分被合併成多個合併存取單元的已壓縮存取單元序列,以及對應於每個已壓縮存取單元或者合併存取單元且表示多個已壓縮存取單元如何被合併成多個合併存取單元的合併資訊序列;根據與所請求的已壓縮存取單元相關的合併資訊,確定包括所請求的已壓縮存取單元的合併存取單元;以及自幀緩存器讀取包括所請求的已壓縮存取單元的所確定的合併存取單元中的已壓縮資料。
本方法的實施例還可以包括:當合併存取單元的尺寸大於閾值時,自幀緩存器讀取所請求的存取單元。在一個實施例中,幀緩存器包括由多個叢發分界線所分割的叢發部分序列,多個合併存取單元中的每個與幀緩存器的叢發分界線對齊,以及每個合併存取單元的多個成員相互相鄰。
在一個實施例中,幀緩存器讀取與所請求的已壓縮存取單元相關的合併資訊包括讀取對應於所請求的已壓縮存取單元以及已壓縮存取單元序列中與所請求的已壓縮存取單元相鄰的多個已壓縮存取單元的合併資訊,以及讀取對應於包括所請求的已壓縮存取單元的合併存取單元的合併資訊中的一個。
本發明的方面提供一種處理存取單元的裝置,其包括電路,用於:接收對應於自圖像或者視頻幀分割的原始存取單元序列且對應於幀緩存器中的記憶體空間序列的已壓縮存取單元序列;以及基於已壓縮存取單元序列的壓縮率和/或位置,確定包括至少兩個連續的已壓縮存取單元的合併存取單元。相比於將至少兩個連續的已壓縮存取單元存儲在記憶體空 間序列中的多個相應記憶體空間中,合併存取單元以在至少兩個連續的已壓縮存取單元之間具有減少間隙的方式存儲在幀緩存器中。
本發明通過給每個存取單元在記憶體中分配主部分和副部分,在存取單元被壓縮之後,將已壓縮存取單元存儲到主部分,在主部分的尺寸小於已壓縮存取單元的情況下,還將已壓縮存取單元的剩餘部分存儲到副部分,使得已壓縮存取單元可被有效地完成訪問。
100‧‧‧視頻編解碼系統
110‧‧‧視頻編解碼器
112‧‧‧壓縮器
114‧‧‧寫入器
116‧‧‧解壓縮器
118‧‧‧讀取器
120‧‧‧幀緩存器
122‧‧‧合併與非合併存取單元
124‧‧‧合併資訊
211、212‧‧‧原始存取單元
220‧‧‧字
221、222‧‧‧已壓縮存取單元
223‧‧‧合併存取單元
230、240‧‧‧記憶體地圖
231-232、241-242‧‧‧叢發部分
251‧‧‧間隙
311-314‧‧‧原始存取單元
321-324‧‧‧已壓縮存取單元
331-334‧‧‧叢發部分
341-344‧‧‧間隙
410‧‧‧存取單元序列
420‧‧‧叢發部分
430‧‧‧合併資訊表
510‧‧‧已壓縮存取單元集
511-516‧‧‧已壓縮存取單元
520‧‧‧叢發部分組
521‧‧‧已壓縮存取單元
523‧‧‧合併存取單元
530‧‧‧合併資訊表
531-536‧‧‧條目
610‧‧‧已壓縮存取單元集
611-613‧‧‧已壓縮存取單元
620‧‧‧叢發部分組
621‧‧‧合併存取單元
630‧‧‧合併資訊表
631-633‧‧‧條目
710‧‧‧已壓縮存取單元集
711-717‧‧‧已壓縮存取單元
720‧‧‧叢發部分組
721-722‧‧‧合併存取單元
730‧‧‧合併資訊表
731-733‧‧‧條目
810、830‧‧‧叢發部分
811-813‧‧‧已壓縮存取單元
821‧‧‧已更新存取單元
900‧‧‧流程
911-916、921-926‧‧‧叢發部分
920‧‧‧序列
932‧‧‧空間
1011-1014、1031-1034‧‧‧已壓縮存取單元
1020‧‧‧叢發部分
1021、1041-1042‧‧‧合併存取單元
1040‧‧‧叢發部分組
1100‧‧‧幀緩存器格式
1101-1102‧‧‧原始存取單元
1121R、1122R、1131R、1132R‧‧‧編碼單元
1121C、1122C、1131C、1132C‧‧‧已壓縮編碼單元
1141、1151‧‧‧已壓縮存取單元
1142、1152‧‧‧叢發部分
1161-1164‧‧‧編碼單元標頭
1200‧‧‧幀緩存器格式
1201、1202‧‧‧合併標頭
1260‧‧‧間隙
1300‧‧‧流程
S1310-S1318‧‧‧步驟
1400‧‧‧流程
S1410-S1416‧‧‧步驟
將結合下面的附圖對被提供作為示例的本發明的各種實施例進行詳細描述,其中相同的符號表示相同的元件,以及其中:第1圖是根據本發明實施例之的視頻編解碼系統。
第2圖是根據本發明實施例之一存取單元合併示例。
第3圖是根據本發明實施例之另一存取單元合併示例。
第4圖是根據本發明實施例之存取單元序列、幀緩存器叢發部分序列和合併資訊表之間的映射關係。
第5圖是根據本發明實施例之第一合併資訊格式。
第6圖是根據本發明實施例之第二合併資訊格式。
第7圖是根據本發明實施例之第三合併資訊格式。
第8圖是根據本發明實施例之更新包含在合併存取單元中的已壓縮存取單元的示例。
第9圖是根據本發明實施例之存取單元合併流程的示例。
第10A圖-第10B圖是根據本發明實施例之用叢發訪問來 讀取已壓縮存取單元的示例。
第11圖是根據本發明實施例之幀緩存器格式的示例。
第12圖是根據本發明實施例之第二幀緩存器格式的示例。
第13圖是根據本發明實施例之將已壓縮存取單元合併成合併存取單元的流程。
第14圖是根據本發明實施例之自包括合併存取單元的幀緩存器讀取已壓縮存取單元。
第1圖顯示了根據本發明實施例的視頻編解碼系統100。視頻編解碼系統100可以包括視頻編解碼器110和幀緩存器120。視頻編解碼器110可以包括壓縮器112、寫入器114、解壓縮器116和讀取器118。如第1圖所示,這些組件耦接在一起。視頻編解碼器110可以用於根據視頻編解碼標準執行編碼流程或者解碼流程,例如高效視頻編解碼(High Efficiency Video Coding,HEVC)/H.265標準。因此,視頻編解碼器可以採用存儲在幀緩存器120中的參考幀。
在一個示例中,為了節省記憶體訪問頻帶,在被存儲到幀緩存器120之前,參考幀可以先被壓縮。因此,壓縮器112和解壓縮器116可以被使用,以分別執行壓縮功能和去壓縮功能。例如,參考幀可以被分割成存取單元序列,每個存取單元包括區塊,例如,16x4區塊。當被壓縮時或者在記憶體訪問操作期間,每個存取單元可以作為整體被處理。在寫入流程期間,壓縮器112可以接收存取單元,其稱為原始存取單元,並且執行壓縮流程以生成可以順序存儲到幀緩存器120中的已 壓縮存取單元。相反地,在讀取流程期間,解壓縮器116可以接收自幀緩存器120獲得的已壓縮存取單元,並執行去壓縮流程以恢復原始存取單元。在不同實施例中,不同的無損或者失真壓縮方法或者演算法可以在壓縮器112或者解壓縮器116處使用。
寫入器114可以用於將已壓縮存取單元存儲到幀緩存器120。例如,寫入器114可以指定記憶體位址,並請求幀緩存器120以將一個或多個已壓縮存取單元存儲到此指定位址。具體地,根據本發明的一方面,寫入器114可以使用存取單元合併方案,以提高記憶體訪問效率。在一個示例中,用在時間週期內自幀緩存器讀取或者寫入到幀緩存器的大量資料,記憶體效率可以被測量。例如,在將已壓縮單元集寫入到幀緩存器120之前,寫入器114可以用於執行存取單元合併流程。
在此流程期間,基於各自的已壓縮存取單元的壓縮率,寫入器114可以判斷是否且如何將至少兩個已壓縮存取單元合併成合併存取單元。隨後,相比於單獨存儲並讀取已壓縮存取單元,合併存取單元可以更快地自幀緩存器120讀取。另外,寫入器114可以因此生成合併資訊,其表示存取單元集如何被合併,使得合併存取單元的成員存取單元是可訪問的。此後,根據合併決策,寫入器114可以將合併存取單元或者非合併存取單元寫入到幀緩存器120。合併資訊也可以被存儲到幀緩存器120中。
讀取器114可以用於自幀緩存器120獲取合併存 取單元或者非合併存取單元。具體地,當讀取存取單元,讀取器114可以自我調整地確定自幀緩存器120一起讀取目標存取單元的多個相鄰存取單元。
幀緩存器120可以用於存儲合併與非合併存取單元122和合併資訊124。幀緩存器120可以是不同類型的記憶體,例如,隨機訪問記憶體(random access memory,RAM)、靜態RAM(static RAM,SRAM)、動態RAM(dynamic RAM,DRAM)、異步DRAM、同步DRAM(synchronous DRAM,SDRAM)、雙通道SDRAM(double data rate SDRAM,DDR SDRAM)、快閃記憶體等。此外,幀緩存器120可以包括記憶體控制器(未示出),其自視頻編解碼器接收請求,並發出命令以控制寫入記憶體訪問操作或者讀取記憶體訪問操作。
另外,幀緩存器120可以在幀緩存器120的邏輯記憶體空間中具有分界線,例如,在每128位元組、256位元組或者512位元組處。相對於在兩個分界線內存儲相同的資料,訪問穿過這些分界線而存儲的資料可能效率低。例如,分界線可以與幀緩存器120的配置相關,例如,通道映射配置、庫(bank)映射配置或者高載模式配置。例如,幀緩存器120可以被配置為以高載模式進行操作。當幀緩存器120以高載模式進行操作時,在一個叢發訪問期間,存儲在連續邏輯位址段(segment)處的資料可以被獲取,其比以非高載模式逐個位址地獲取資料更有效。在一個示例中,對應於連續邏輯位址段的記憶體空間的尺寸可以由用於幀緩存器120的叢發長度確定。因此,邏輯空間中的幀緩存器120可以被分割成段序列, 並且這些段序列的邊緣可以形成幀緩存器120的分界線。這樣,幀緩存器120中的分界線稱為叢發分界線,而分界線之間的段稱為叢發部分。
因此,在一個示例中,原始存取單元的尺寸用於匹配幀緩存器120中的叢發部分的尺寸,使得對幀緩存器120的記憶體訪問可以受益於由叢發訪問模式所引起的高記憶體訪問效率。例如,原始存取單元的尺寸可以被配置為等於叢發部分的尺寸。這樣,每個已壓縮存取單元可以被存儲在叢發部分內,甚至於具有0壓縮率的原始存取單元。這樣,視頻幀中的已壓縮存取單元序列可以對應於記憶體空間序列,並且每個這類記憶體空間可以對應於叢發部分。
第2圖顯示了根據本發明實施例的一存取單元合併示例。如左邊所示,是兩個相鄰原始存取單元,即211和212。原始存取單元211和原始存取單元212可以對應於參考幀中的兩個相鄰區塊。如圖所示,每個原始存取單元,即211或者212,包括4個字,每個字是16位元組長。在壓縮器112處的壓縮流程之後,原始存取單元211和原始存取單元212可以分別被壓縮成兩個已壓縮存取單元,即221和222,每個具有2個字的減小尺寸。已壓縮存取單元221的最後一個字220由已壓縮資料部分填充。隨後,已壓縮存取單元221和已壓縮存取單元222可以被存儲到幀緩存器120中。
如第2圖的右邊所示,是兩個記憶體地圖,即230和240,其對應於用於放置已壓縮存取單元221和已壓縮存取單元222的兩種不同方法。如記憶體地圖230和記憶體地圖2 40上所示,幀緩存器120可以被配置有叢發部分,每個具有4個字的尺寸(或者長度),例如,叢發部分231-232和叢發部分241-242。具體地,在第2圖的示例中,叢發部分的尺寸被配置為等於原始存取單元211和原始存取單元212的尺寸。然而,在其他示例中,幀緩存器的叢發部分可以小於原始存取單元的尺寸。在如記憶體地圖230所示的第一放置方法中,已壓縮存取單元221和已壓縮存取單元222被分佈在兩個相鄰記憶體空間中,即叢發部分231和叢發部分232,並與各自叢發部分231-232的上叢發分界線對齊。在這種排列下,用兩個叢發訪問,獲取已壓縮存取單元221和已壓縮存取單元222可以被完成。如圖所示,在已壓縮存取單元221和已壓縮存取單元222之間可以存在間隙251。
相對地,在如記憶體地圖240所示的第二放置方法中,已壓縮存取單元221和已壓縮存取單元222被合併成合併存取單元223,並被放置在同一叢發部分241內。僅用一個叢發訪問,獲取合併存取單元223可以被完成,其比第一放置方法中的更快。具體地,對比於記憶體230中的排列,已壓縮存取單元222被向上移動2個字,變得與已壓縮存取單元221相鄰。因此,間隙251已減少到0,並且在已壓縮存取單元221和已壓縮存取單元222之間不存在以字級的間隙。另外,合併存取單元223與叢發部分241的上叢發分界線對齊。此外,每個已壓縮存取單元221或者222是字對齊的,並且在合併存取單元223的每個字中,已壓縮存取單元221和已壓縮存取單元222的已壓縮資料相互不混合。例如,記憶體地圖230和記憶 體地圖240上的字可以具有等於可以通過幀緩存器120的資料匯流排上的一個資料傳輸自幀緩存器120讀取的大量資料的尺寸。因此,相比於將相同資料分離成不同字的訪問,以字對齊的方式存儲資料可以使存取單元222的隨機訪問具有更高效率。在可選示例中,雖然其可能增加合併資訊的尺寸,已壓縮存取單元221和已壓縮存取單元222之間的間隙也可以以位元組級或者位元級被減小。
第3圖顯示了根據本發明實施例的另一存取單元合併示例。如第3圖的左邊所示,是四個相鄰原始存取單元,即311-314。此四個原始存取單元311-314可以對應於參考幀中四個相鄰區塊。每個原始存取單元311-314包括4個字,每個字是16位元組長。在壓縮器112處的壓縮流程之後,四個原始存取單元311-314可以分別被壓縮成四個已壓縮存取單元321-324,每個分別具有2個字、1個字、3個字和2個字的減小尺寸。隨後,已壓縮存取單元321-324可以被合併,並被存儲到幀緩存器120中,幀緩存器120被配置有具有4個字的尺寸的叢發部分(例如叢發部分331-334)。因此,用兩個叢發訪問,可以完成四個已壓縮存取單元321-324的獲取。相對於將四個存取單元321-324分佈到四個叢發部分331-334,兩個叢發訪問可以被節省。如圖所示,假設四個存取單元321-324被存儲在四個相應叢發部分,而不以與記憶體地圖230上所示的情景相似的方式進行合併,在四個存取單元321-324之間可以存在間隙341-344。合併四個存取單元321-324可以將間隙341-344減小到0。
如第2圖和第3圖示例中所示的存取單元合併方法可以有利於採用緩存機制的應用。例如,在編解碼器110處執行的運動估計流程期間,搜索視窗內的參考幀的區域可以被搜索到以查找用於正在處理的當前塊的參考塊。在此示例中,當搜索視窗內的一個存取單元先被請求時,用叢發訪問來獲取包括與請求存取單元相鄰的已壓縮存取單元組將提高記憶體訪問效率。
雖然在第2圖和第3圖的示例中,合併多個已壓縮存取單元以生成隨後整體被訪問的合併存取單元提高了記憶體訪問效率,但是盲合併已壓縮存取單元而不考慮壓縮率或者其他因素不會提高幀緩存器120的性能。例如,對於對合併存取單元中的具體已壓縮存取單元的隨機訪問,在叢發訪問期間,合併存取單元中的未請求資料可以與請求存取單元一起從幀緩存器120中讀出。未請求資料消耗額外的記憶體頻帶,導致用於讀取合併存取單元的代價。合併存取單元的尺寸越大,代價越大。
又例如,當合併存取單元的壓縮率(被定義為對應於合併存取單元的成員的原始存取單元的總尺寸與合併訪問的尺寸的比例)不是足夠高時,降低存取時間的好處不能被實現。例如,在第2圖的示例中,假設合併存取單元223的壓縮率小於50%,合併存取單元223將佔用叢發部分241和叢發部分242。因此,讀取合併存取單元223可能花費兩個叢發訪問,並沒有提高記憶體效率。
因此,在一個示例中,寫入器114可以用於根據 已壓縮存取單元集的壓縮率判斷是否將已壓縮合併單元集合並成合併存取單元。當已壓縮存取單元集的壓縮率足夠高時,合併存取單元可以被生成。考慮下的已壓縮存取單元集的數量可以是預選擇數量,例如2、3、4等。
例如,在接收已壓縮存取單元集之後,寫入器114可以先計算包括已壓縮存取單元集的合併存取單元的壓縮率。寫入器114可以用於在合併存取單元具有大於預選擇閾值的壓縮率,例如50%時,確定對已壓縮存取單元集進行合併。相反地,當合併存取單元具有壓縮率低於預選擇閾值時,已壓縮存取單元集不被合併。這樣,未請求資料代價可以被控制成低於特定水準,而基於叢發訪問來提高記憶體效率可以被實現。
第4圖顯示了根據本發明實施例的存取單元序列410、幀緩存器記憶體空間序列(即叢發部分420)和合併資訊表430之間的映射關係。存取單元410可以對應於參考幀中的塊序列,並且因此可以被排序以形成序列。例如,每個存取單元可以具有表示各自存取單元在存取單元序列410中的位置的索引。假設由第2圖中的記憶體地圖230所表示的分佈放置方法被使用,在被壓縮之後,存取單元410可以被順序存儲到幀緩存器叢發部分序列420中。這樣,每個原始存取單元或者已壓縮存取單元可以對應於叢發部分。基於此映射關係,當已壓縮存取單元將被訪問時,例如,基於已壓縮存取單元的索引,包括已壓縮存取單元的叢發部分可以被定位出。存儲已壓縮存取單元的叢發部分(或者記憶體空間)的起始位址可以稱為此 已壓縮存取單元的標識位址(home address)。
如第2圖中的記憶體地圖240上所示,當存取單元合併方案被使用時,合併存取單元223的已壓縮存取單元222可以遠離其標識位址被移動到與已壓縮存取單元221相鄰的新位址(稱為合併位址)。標識位址與合併位址之間的位址偏移(記憶體地圖240上的2個字)可以包括在合併資訊中,其可以用於在幀緩存器120中放置已壓縮存取單元224。
合併資訊表430可以被存儲在幀緩存器120中。合併資訊表430可以包括合併資訊條目序列。在存取單元合併流程期間,對應於每個合併資訊條目的合併資訊可以在寫入器114處被生成,並且被存儲到幀緩存器120中。合併資訊可以表示已壓縮存取單元是否與其他已壓縮存取單元合併,以及已壓縮存取單元如何被合併。合併資訊可以用於確定已壓縮存取單元或者合併存取單元在幀緩存器120中的位置,從而使得每個已壓縮存取單元或者合併存取單元可訪問。在不同示例中,合併資訊可以具有不同合併資訊格式。
如圖所示,在一個示例中,合併資訊表430可以在每行中包括一條目。每個條目可以被映射到存取單元。基於此映射關係,條目在合併資訊表中的位置可以基於存取單元410的索引被確定。例如,在讀取記憶體訪問期間,讀取器118可以先檢測合併資訊表以確定已壓縮存取單元在幀緩存器120中的位置。隨後,讀取器118可以獲取目標存取單元,或者目標存取單元與一個合併存取單元中與目標存取單元相鄰的其他存取單元。在可選示例中,如第7圖中的示例所示,合併資 訊的條目可以對應於合併存取單元,而不是已壓縮存取單元。
第5圖顯示了根據本發明實施例的合併資訊格式的第一示例。在第5圖的示例中,合併使能標誌用於表示已壓縮存取單元是否被合並且移動到合併存取單元中。合併使能標誌可以由一個或多個位元表示。具體地,第5圖所示為已壓縮存取單元集510、叢發部分組520和合併資訊表530。如圖所示,已壓縮存取單元511和已壓縮存取單元512被合併到合併存取單元521中。因此,0標誌被分配給合併資訊表530的第一條目531,其對應於已壓縮存取單元511,1標誌被分配給第二條目532,其對應於已壓縮存取單元512。0標誌可以表示已壓縮存取單元511駐留在已壓縮存取單元511的標識位址處,而1標誌可以表示已壓縮存取單元512已自已壓縮存取單元512的標識位址被移動到與已壓縮存取單元521相鄰的位置。
已壓縮存取單元513不與其他已壓縮合併單元合併,並駐留在其標識位址處。因此,0標誌可以被分配給第三條目533。已壓縮存取單元514-516被合併到合併存取單元523。因此,0標誌可以被分配給第四條目534,而1標誌可以被分配給第五條目535和第六條目536。
第6圖顯示了根據本發明實施例的合併資訊格式的第二示例。在第6圖的示例中,位址偏移用於表示已壓縮存取單元相對於其標識位址已被移動的距離。具體地,第6圖所示為已壓縮存取單元集610、叢發部分組620和合併資訊表630。三個已壓縮存取單元611-613被合併到合併存取單元621。已壓縮存取單元612被向上移動2個字,而已壓縮存取 單元615被向上移動5個字。因此,三個位址偏移,即0、-2和-5被分配給合併資訊表630的條目631-條目633,其分別對應於已壓縮存取單元611-已訪問壓縮單元613。每個位址偏移可以表示已壓縮存取單元的合併位址與標識位址之間的距離。
在第6圖的示例中,字數用作合併資訊表630中的測量以表示位址偏移。在一個示例中,在可以等於記憶體的記憶體匯流排寬度的叢發訪問的節拍(beat)期間,一個字可以對應於自記憶體讀取的位元的數量。然而,在可選示例中,不同於第6圖的其他測量可以被使用,例如位元組或者位元。
第7圖顯示了根據本發明實施例的合併資訊格式的第三示例。在第7圖的示例中,被合併到合併存取單元的原始存取單元的尺寸可以用於表示多少個已壓縮存取單元被包括在合併存取單元中。具體地,第7圖所示為已壓縮存取單元集710、叢發部分組720和合併資訊表730。已壓縮存取單元集710可以對應於原始存取單元集,每個具有4個字的尺寸。已壓縮存取單元711-已壓縮存取單元714被合併到合併存取單元721中,而已壓縮存取單元715-已壓縮存取單元716被合併到合併存取單元722。
合併資訊表730可以包括兩個條目731-732,每個對應於兩個合併存取單元721和合併存取單元722中的一個。具體地,第一條目731可以包括對應於被合併到合併存取單元721的已壓縮存取單元711-714的原始存取單元的總尺寸(16個字)。同樣地,第二條目732可以包括對應於被合併到合併存取單元722的已壓縮存取單元715-716的原始存取單元的總 尺寸(8個字)。相反地,已壓縮存取單元717沒有與其他已壓縮存取單元合併。因此,4個字的尺寸可以被包括在第三條目733中。
響應於用於具體已壓縮存取單元的請求,讀取器118可以查閱(consult)合併資訊表,以確定目標已壓縮存取單元是否與相鄰已壓縮存取單元進行合併,並進一步確定包括目標已壓縮存取單元和與目標已壓縮存取單元相鄰的其他已壓縮存取單元的一個或多個連續叢發部分的位址。隨後,用叢發訪問,一個或多個叢發部分可以被訪問。
在可選示例中,額外資訊可以被包括在合併資訊表中,例如每個已壓縮存取單元的尺寸。因此,包括在合併存取單元中的已壓縮存取單元可以是單獨可訪問的,例如,對於第5圖的示例和第7圖的示例。對於第6圖的示例,基於位址偏移,合併存取單元的每個成員是可訪問的。讀取器118可以因此獲得目標已存取單元,而無需讀取各自叢發部分中的所有資料。
第8圖顯示了根據本發明實施例的更新包括在合併存取單元813中的已壓縮存取單元811的示例。如第8圖的左邊所示,是叢發部分810,其包括合併存取單元813。合併存取單元813可以包括已壓縮存取單元811和已壓縮存取單元812。在一個示例中,對應於已壓縮存取單元811的原始存取單元中的像素被更新,隨後,已更新存取單元821在壓縮器112處被生成。例如,對應於已壓縮存取單元811和已壓縮存取單元812的兩個原始存取單元屬於一個圖像。然而,此兩個原始 存取單元可以屬於被單獨處理的兩個單獨的圖像區域,例如,兩個單獨的方塊(tile)。一個方塊可以是根據HEVC標準或者基於方塊影像處理方法而分割的圖像區域。這樣,已更新已壓縮存取單元821可以被生成為同一方塊上多路處理(multiple-pass processing)的結果。
為了將已更新存取單元821寫入到幀緩存器中,寫入器114可以先檢測合併資訊表,例如第6圖中的合併資訊表630。因此,寫入器114可以檢測到原始存取單元811具有比已更新存取單元821的尺寸(2個字)的更小尺寸(1個字)。另外,如第8圖所示,原始存取單元811位於叢發部分810的開端處,在相鄰叢發部分830的尾端處存在可用空間。隨後,寫入器114可以改變合併資訊表。例如,寫入器可以將對應於原始已壓縮存取單元811的位址偏移自0改變到-1。隨後,如第8圖所示,寫入器114可以將已更新已壓縮存取單元821存儲到由合併資訊表表示的位址。這樣,已壓縮存取單元811可以被更新,而沒有將相鄰已壓縮合併單元812從幀緩存器120中讀出,以及沒有將包括已壓縮存取單元821和已壓縮存取單元812的已更新合併單元重新寫入。
在一些示例中,寫入器114可以用於根據已壓縮存取單元集在視頻幀中的位置判斷是否將已壓縮存取單元集組合成合併存取單元。在一個示例中,兩個連續已壓縮存取單元可以屬於兩個相鄰方塊,寫入器114可以決定不將屬於不同方塊的這兩個已壓縮存取單元放置在同一合併單元中。這樣,可以避免單獨更新同一合併存取單元的成員已壓縮存取單 元。另外,屬於不同方塊的已壓縮存取單元相互之間具有更小關聯。因此,避免將屬於不同方塊的已壓縮存取單元存儲在合併存取單元中不會影響記憶體訪問效率。
在可選示例中,寫入器114可以避免將位於方塊或者視頻幀的第一分界線處的已壓縮存取單元與位於相對於第一分界線的方塊或視頻幀的第二分界線處的另一已壓縮存取單元進行合併。例如,寫入器114可以接收根據光柵掃描順序進行排序的已壓縮存取單元集,例如,在方塊或視頻幀中,從左到右且從上到下。已壓縮存取單元集可以包括第一掃描行中與右方塊或者視頻幀分界線相鄰的第一已壓縮存取單元,以及在第一掃描行下的第二掃描行中左方塊或視頻幀分界線相鄰的第二已壓縮存取單元。因為第一已壓縮存取單元和第二已壓縮存取單元中的像素資料具有更少機會被一起處理,所以當訪問包括這兩個單元的合併存取單元時,合併這兩個單元將導致未請求資料代價。因此,寫入器114可以決定不合併已壓縮存取單元集。
第9圖顯示了根據本發明實施例的存取單元合併流程900。在本流程900期間,寫入器114可以根據已壓縮存取單元的壓縮率合併已壓縮存取單元。例如,已壓縮存取單元的越高壓縮率導致已壓縮存取單元的越小尺寸。因此,對於具有更高壓縮率和更小尺寸的已壓縮存取單元集,已壓縮存取單元集可以被合併在一起,以形成一個合併單元,而對於具有更低壓縮率和更大尺寸的已壓縮存取單元集,已壓縮存取單元集可以被合併成多個合併單元。這樣,合併存取單元的尺寸可以 被控制在一定閾值以下。
在一個示例中,緩存機制被使用。當已壓縮存取單元被請求時,讀取器118用於用對幀緩存器120的一個或多個叢發訪問來讀取整個合併存取單元,整個合併存取單元包括來自於幀緩存器120的目標已壓縮存取單元。包括在合併存取單元中的未請求已壓縮存取單元被緩存以用於可能的後續需要。當自幀緩存器120獲取時,相比於更小合併存取單元,更大合併存取單元可以包括更大比例的未請求資料。更大比例的未請求資料可能花費記憶體頻帶,並包括對緩存機制的代價。因此,將合併存取單元的尺寸限制到低於一定閾值可以有利於記憶體訪問效率。
在本流程900中,叢發部分可以包括的最大數量的已壓縮存取單元可以被合併成合併存取單元。合併存取單元後續可以被放置在叢發部分中。具體地,叢發部分911-916的序列910可以在寫入器114處接收,其將被放置到叢發部分921-926的序列920中。如圖所示,已壓縮存取單元911-916可以具有不同尺寸,並且包括不同數量的字。另外,根據視頻編解碼系統100的配置,每個叢發部分921-926可以具有等於對應於已壓縮存取單元911-916的原始存取單元的尺寸的尺寸。
隨後,寫入器114可以計算來自於序列910的開端處的多少數量的已壓縮存取單元可以被適配到第一叢發部分921中。如圖所示,前三個已壓縮存取單元911-913可以具有3個字的總尺寸,其小於第一叢發部分921的尺寸(4個字)。 然而,第四已壓縮存取單元914可以具有2個字的尺寸,並不能被進一步包括在第一叢發部分921中。因此,前面三個已壓縮存取單元911-913可以被確定已被合併到第一合併存取單元,其可以被放置在第一叢發部分921中。
隨後,從已壓縮存取單元914開始,寫入器114可以繼續確定哪個已壓縮存取單元將被合並且放置在第四叢發部分924中。如圖所示,寫入器114可以確定已壓縮存取單元914和已壓縮存取單元915可以被合併成第二合併存取單元,其可以被存儲在第四叢發部分924中。儘管一個字的空間932在叢發部分924的底端處可用,但已壓縮存取單元916不能被進一步包括在第四叢發部分924,因為已壓縮存取單元916的尺寸(4個字)對於空間932而言太大了。
隨後,寫入器114可以繼續以與上述步驟相似的方式確定第三合併存取單元。例如,寫入器可以確定位於序列910的剩餘部分的開端處的哪個已壓縮存取單元可以被適配到第六叢發部分926中。如圖所示,由於較低壓縮率,已壓縮存取單元916可以具有4個字的尺寸。因此,已壓縮存取單元916本身可以佔用叢發部分926的所有空間,沒有留下空間以包括額外的已壓縮存取單元。
在上述步驟之後,叢發部分921中的一個字的空間931、空間932、叢發部分922、叢發部分923和叢發部分925未被佔用。此外,每個合併單元與各自合併單元中的第一已壓縮存取單元的標識位址對齊。這樣,在如第5圖-第7圖示例中所述的合併資訊的支援下,合併存取單元在幀緩存器 120中可以被定位。
在本流程900期間,在合併存取單元被確定之後,對應於已壓縮存取單元911-916或者合併存取單元的合併資訊可以相應地被創建。隨後,用一個叢發訪問,每個合併存取單元的成員可以被存儲到各自叢發部分中,並且合併資訊也可以被存儲到合併資訊表中。
雖然在本示例流程900中合併存取單元的尺寸被限制成小於一個叢發部分,但是在其他示例中,多達一個叢發部分可以用於保存合併存取單元。例如,在可選示例中,可以被存儲到兩個叢發部分的最大數量的已壓縮存取單元可以被合併以形成一個合併存取單元。
第10A圖-第10B圖顯示了根據本發明實施例的用叢發訪問讀取已壓縮存取單元的示例。在本示例中,讀取器118可以動態地確定哪個已壓縮存取單元組將用叢發訪問從幀緩存器120中讀出。具體地,讀取器118用於根據存儲在合併資訊表中的合併資訊確定包括請求資料的合併存取單元,並用叢發訪問從幀緩存器120中讀出合併存取單元。例如,讀取器118可以接收用於已壓縮存取單元的請求。讀取器118可以先確定與請求已壓縮存取單元相鄰的存取單元集。例如,在已壓縮存取單元序列中一定範圍內位於目標存取單元之前或者之後的相鄰已壓縮存取單元可以被選擇。
隨後,讀取器118可以自合併資訊表讀取對應於每個所選擇的相鄰已壓縮存取單元和目標已壓縮存取單元的合併資訊。合併資訊可以與第5圖和第6圖的示例中所述的合 併資訊相似。隨後,讀取器118可以檢測所獲得的合併資訊,並確定包括目標存取單元的合併存取單元。例如,合併資訊可以表示如何將相鄰存取單元和目標單元形成一個或多個合併存取單元。最後,讀取器118可以用讀取操作的一個或多個叢發自幀緩存器讀取所確定的合併存取單元。
在第10A圖示例中,已壓縮存取單元1011-1014的集合被合併成合併存取單元1021。存取單元1012是請求資料。合併存取單元1021駐留在叢發部分組1020中的兩個內。每個叢發部分可以具有等於對應於已壓縮存取單元1011-1014的原始存取單元的尺寸的尺寸。在這種情景下,當讀取器118接收用於已壓縮存取單元1012的請求時,讀取器118可以獲得已壓縮存取單元1011-1014的合併資訊,並檢測合併資訊以發現請求資料被包括在合併存取單元1021中。隨後,合併存取單元1021可以用讀取操作的兩個叢發從幀緩存器中讀出。
在第10B圖示例中,由於相比於第10A圖示例而言有較低壓縮率,四個已壓縮存取單元1031-1034被合併以形成兩個合併存取單元1041-1042。兩個合併存取單元1041-1042被存儲在具有與叢發部分1020相似的配置的叢發部分組1040中。已壓縮存取單元1032是包括在合併存取單元1041中的請求存取單元。基於每個已壓縮存取單元1031-1034的合併資訊,讀取器118可以確定合併存取單元1041包括請求資料,並用讀取操作的兩個叢發讀取合併存取單元1041。
在可選示例中,如上所述,在包括請求已壓縮存取單元的合併存取單元被定位之後,讀取器118可以檢測以判 斷所定位的合併存取單元的尺寸是否大於預選擇閾值。當合併存取單元大於預選擇閾值,讀取器118可以自幀緩存器120僅讀取請求已壓縮存取單元,而不是整個合併存取單元。這樣,由較大合併存取單元中的未請求資料所引起的懲罰可以被避免。例如,在第10A圖中,假設一閾值被預選擇成一個叢發部分的尺寸,讀取器118可以確定合併存取單元1021大於此閾值,並隨後自幀緩存器120讀取請求存取單元1012。
相反地,當合併存取單元小於此閾值時,用一個叢發訪問,整個合併訪問可以被讀出,以利用由叢發訪問引起的高記憶體效率。在本可選示例中,當創建合併存取單元時每個已壓縮存取單元的長度的資訊可以被存儲在合併資訊中,並後續用於讀取流程。
第11圖顯示了根據本發明實施例的幀緩存器格式1100的示例。如本示例所示,兩個原始存取單元1101-1102被壓縮以生成分佈在兩個叢發部分1142和叢發部分1152中的兩個已壓縮存取單元1141和1151。兩個原始存取單元1101-1102中的每個可以包括兩個編碼單元(encoding unit,EU)。在一些示例中,編碼單元可以指的是用作視頻編解碼流程期間的處理單元的區塊。編碼單元可以對應於根據HEVC標準而定義的編解碼塊。在第11圖的示例中,原始存取單元1101可以包括編碼單元1121R和編碼單元1122R,其對應於已壓縮編碼單元1121C和已壓縮編碼單元1122C。同樣地,原始存取單元1102可以包括編碼單元1131R和編碼單元1132R,其對應於已壓縮編碼單元1131C和已壓縮編碼單元1132C。
在一個示例中,每個已壓縮編碼單元,即1121C-1122C和1131C-1132C的長度(或尺寸)資訊被存儲在編碼單元標頭1161-1164的序列中。例如,在第11圖中,每個叢發部分,即1142或者1152可以具有8個字的尺寸,每個原始存取單元1101-1102可以具有與每個叢發部分相同的尺寸。每個編碼單元,即1121R、1122R、1131R和1132R,可以具有4個字的尺寸。在壓縮之後,每個已壓縮編碼單元,即1121C、1122C、1131C和1132C可以根據各自壓縮率而具有1、2、3或4個字的長度。相應地,每個可能長度可以用位元來表示。在第11圖示例中,1、2、3或4個字的長度由兩個位元序列(稱為編碼單元標頭)表示。因此,四個已壓縮編碼單元,即1121C、1122C、1131C和1132C的長度分別被表示為10、01、00和11,並被存儲在編碼單元標頭1161-1164的序列中。
在幀緩存器格式1100中,原始或者已壓縮存取單元序列可以被映射且存儲到幀緩存器120中的叢發部分序列。頭1161-1164的序列也可以被存儲在幀緩存器120中,並且頭的序列的順序可以被排列成與已壓縮編碼單元在叢發部分序列中的順序相同。這樣,當已壓縮編碼單元自讀取器118請求時,長度資訊可以被定位。
在一個示例中,參考幀具有YUV420的格式,每個像素具有8位元的深度。使用幀緩存器格式1100,參考幀可以被壓縮且存儲到幀緩存器120中。具體地,Y分量的編碼單元可以具有16x4像素的尺寸,而Cb/Cr分量的編碼單元可以具有8-CbCr對x 4像素的尺寸。一個CbCr對可以包括1 Cb 像素和1 Cr像素。垂直方向上的兩個連續編碼單元形成一存取單元。存取單元可以被逐行或者逐列處理。因此,存取單元以由處理順序所確定的順序被存儲在幀緩存器120中。此外,Y分量資料和CbCr分量資料可以被單獨存儲,形成兩個已壓縮存取單元序列。除了像素資料之外,對應於每個編碼單元的編碼單元標頭也可以被存儲在幀緩存器120中,Y分量編碼單元標頭和CbCr分量編碼單元標頭被存儲在單獨序列中。另外,四個序列(兩個像素資料序列和兩個編碼單元標頭序列)的起始位址可以是可配置的。
雖然第11圖示例中的每個存取單元包括兩個編碼單元,但是在可選示例中,兩個以上編碼單元可以被包括在一個存取單元中。相應地,每個叢發部分可以包括多於兩個已壓縮編碼單元,每個已壓縮編碼單元對應于包括編碼單元長度資訊的編碼單元標頭。
第12圖顯示了根據本發明實施例的第二幀緩存器格式1200的示例。幀緩存器格式1200可以與存取單元合併機制一起使用,合併資訊可以被包括在本幀緩存器格式1200。如第12圖所示,相同的原始存取單元1101-1102被壓縮以形成兩個已壓縮存取單元,即1141和1151,然而已壓縮存取單元1141和已壓縮存取單元1151被一起合併,形成合併存取單元。在第12圖的示例中,移動已壓縮存取單元的位址偏移可以用兩個字的精度進行配置。相應地,位址偏移可以是兩個字的倍數。這樣,已壓縮存取單元1151被向上移動2個字,以與已壓縮存取單元1141相鄰。在相鄰的已壓縮存取單元1141 和已壓縮存取單元1151之間存在1個字的間隙1260。
因此,幀緩存器格式1200包括合併標頭1201-1202的序列,每個包括表示合併操作的合併資訊以及編碼單元長度資訊。具體地,每個合併標頭,1201或者1202可以包括用於存儲合併資訊的欄位,例如位址偏移。如圖所示,第一合併標頭1201對應於第一已壓縮存取單元1141,“0000”的位址偏移被包括為前四個最高有效位(most significant bit,MSB)。同樣地,第二合併標頭1202對應於第二已壓縮存取單元1151,“0010”的位址偏移被包括為前四個最高有效位,其表示已壓縮存取單元1151遠離已壓縮存取單元1151移動2個字。
在不同示例中,移動已壓縮存取單元的位址偏移可以用不同的精度進行配置,例如,4位元組、8位元組、16位元組或者32位元組,或者其他精度。例如,在一個示例中,幀緩存器具有16位元組的匯流排寬度,因此對應於匯流排寬度的1個字具有相同的16位元組的尺寸。由於幀緩存器的一定技術特性,相比於1個字對齊的排列,2個字對齊的已壓縮存取單元可以導致更高記憶體訪問效率。相應地,位址偏移的精度可以被配置為32位元組,其等於幀緩存器的2個字的長度。因此,已壓縮存取單元可以用2個字、4個字、6個字等的距離進行移動。因此,在一些情景中,移動已壓縮存取單元可以與先前已壓縮存取單元相鄰,在得到的合併存取單元中存儲1個字的長度間隙。對於其他長度的精度的位址偏移,兩個相鄰的已壓縮存取單元之間的間隙可以具有不同長度,除了1個字長度。
另外,幀緩存器格式1200還可以包括兩個欄位(field),其用於存儲與存儲在第11圖示例中編碼單元標頭中的相似的已壓縮編碼單元長度資訊。可選示例中,當存取單元包括兩個以上編碼單元時,合併標頭可以包括用於存儲已壓縮編碼單元長度資訊的兩個以上2個欄位。因此,合併標頭中的欄位的排列可以與第12圖示例中所示的不同。例如,合併資訊和長度資訊的欄位可以被配置成以任何順序。
雖然如第12圖的示例示出了兩個已壓縮存取單元,但在其他示例中,兩個以上已壓縮存取單元可以被合併成一個合併存取單元。另外,當各自的已壓縮存取單元的壓縮率較高時,合併存取單元可以被包括在一個叢發部分。第12圖示例中的已壓縮資料和合併標頭可以以與第11圖示例中的已壓縮資料和編碼單元標頭相似的方式被存儲。例如,對應於不同顏色分量的已壓縮資料和合併標頭可以被存儲在在幀緩存器120中不同可配置位置處。
第13圖顯示了根據本發明實施例的將已壓縮存取單元合併成合併單元的流程1300。本流程1300可以通過寫入器114在編解碼系統100進行執行。本流程1300可以始於步驟S1301並繼續到步驟S1310。
在步驟S1310中,在寫入器114處,可以自壓縮器112接收已壓縮存取單元序列。例如,圖像、視頻幀或者圖像或視頻幀的部分可以被分割成存取單元序列,每個包括區塊。在壓縮器112處,存取單元可以先被壓縮,以生成已壓縮存取單元的序列,隨後其被提供給寫入器114。如所述,幀緩 存器120可以包括叢發部分序列,其可以用叢發訪問來訪問。叢發部分的尺寸可以等於在讀取或者寫入操作的一個叢發期間自幀緩存器120讀取的數據量。
每個已壓縮存取單元可以對應於叢發部分。假設沒有存取單元合併被執行,已壓縮存取單元的序列可以被順序地存儲在叢發部分序列中,每個叢發部分包括一個已壓縮存取單元。每個叢發部分的起始位址可以是各自已壓縮存取單元的標識位址。
在步驟S1312中,可以根據已壓縮存取單元序列的壓縮率確定合併存取單元。合併存取單元可以包括已壓縮存取單元序列中的至少兩個連續的已壓縮存取單元。在第一示例中,當已壓縮存取單元序列的子集,例如,兩個或者四個已壓縮存取單元,整體具有高於閾值的壓縮率,例如50%時,已壓縮存取單元序列的子集可以被確定將待合併成合併單元。
在第二示例中,合併存取單元可以包括可被包括在叢發部分中的最大數量的連續已壓縮存取單元。例如,只要已壓縮存取單元的總尺寸小於或者等於叢發部分的尺寸,寫入器114可以試圖將盡可能多的已壓縮存取單元包括在叢發部分中。在可選示例中,多於1個連續的叢發部分可以用於包括合併存取單元。另外,屬於視頻幀的不同方塊的已壓縮存取單元不被包括在一個合併存取單元。
在步驟S1314中,可以生成合併資訊以用於合併存取單元或者合併存取單元的成員。例如,如第5圖-第7圖的示例所述,不同類型的合併資訊表示可以被使用。相應地, 合併資訊可以對應於每個已壓縮存取單元,例如合併使能標誌或者位址偏移合併資訊,或者可以對應於合併存取單元,例如對應於合併存取單元的成員的未壓縮存取單元的尺寸。
此外,合併資訊可以被生成以用於表示各自已壓縮存取單元不與其他已壓縮存取單元進行合併的非合併已壓縮存取單元。另外,合併資訊可以後續用於定址合併存取單元、合併存取單元的成員或者非合併存取單元,使得合併存取單元、合併存取單元的成員或者非合併存取單元可以自幀緩存器120讀取。
在步驟S1316中,將合併存取單元存儲在幀緩存器中。在步驟S1318中,將合併資訊存儲在幀緩存器120或者與幀緩存器120獨立的另一記憶體中。本流程1300可以繼續到步驟S1399,並結束於步驟S1399。
第14圖顯示了根據本發明實施例的自包括合併存取單元的幀緩存器讀取已壓縮存取單元的流程1400。本流程1400可以通過讀取器118在編解碼系統100中進行執行。本流程1400可以始於步驟S1401並繼續到步驟S1410。
在步驟S1410中,在讀取器118處,可以接收用於已壓縮存取單元的請求。請求已壓縮存取單元可以是對應於圖像或視頻幀中的塊序列的已壓縮存取單元序列中的一個。另外,使用存取單元合併方案的寫入器114可以將已壓縮存取單元序列存儲在幀緩存器120,以提高記憶體效率。因此,合併存取單元可以被生成並存儲在幀緩存器120中。
在步驟S1412中,讀取器118可以自存儲合併資 訊的幀緩存器120或者另一記憶體讀取與請求存取單元相關的合併資訊。例如,合併資訊可以採用第5圖-第7圖的示例中所述的格式之一。例如,對應於與請求存取單元相鄰的已壓縮存取單元集的使能標誌或者位址偏移可以被獲得。另外,合併資訊可以包括請求存取單元和與請求存取單元相鄰的已壓縮存取單元的長度資訊。
在步驟S1414中,基於步驟S1412中獲得的合併資訊,可以確定包括請求存取單元的合併存取單元。例如,一個或多個叢發部分的位址可以被確定,使得包括所確定的合併存取單元的各自叢發部分可以被定址。另外,在一個示例中,請求存取單元的位址也可以被確定。此外,在一個示例中,所確定的存取單元的尺寸也可以被確定。
在步驟S1416中,在一個示例中,用叢發訪問,可以自幀緩存器120讀取包括請求存取單元的所確定的合併存取單元。在可選示例中,讀取器118可以先檢測所確定的合併存取單元的尺寸是否小於閾值。如果是,則讀取器118可以繼續讀取用叢發訪問來自幀緩存器120讀取包括請求存取單元的所確定的合併存取單元。否則,讀取器118僅可以自幀緩存器120讀取請求存取單元,以避免由未請求資料所引起的代價。本流程1400可以繼續到步驟S1499,並結束於步驟S1499。
在各種示例中,寫入器114、讀取器118、壓縮器112、解壓縮器116或者視頻編解碼器110可以用硬體、軟體或者其結合來實現。在一個示例中,這些元件,即壓縮器112、寫入器114、解壓縮器116和讀取器118,可以用一個或多個 積體電路(integrated circuit,IC)來實現,例如應用專用積體電路(application-specific integrated circuit,ASIC),現場可程式設計閘陣列(field programmable gate array,FPGA)。在另一示例中,這些組件,即壓縮器112、寫入器114、解壓縮器116和讀取器118的功能可以用包括存儲在電腦可讀非暫態存儲介質的指令的軟體或者固件來實現,當這些指令由處理電路執行時,使得處理電路執行各自的功能。
雖然視頻編解碼系統100用作用於解釋存取單元合併方案的示例,但是與存取單元合併方案相關的功能和流程並不限於視頻編解碼系統。例如,存取單元合併方案可以被應用或者包括在其他各種應用和裝置中,例如,圖像信號處理器(image signal processor,ISP),顯示裝置、影像處理單元(graphics processing unit,GPU)、多媒體引擎等。因此,存取單元合併方案可以被應用到圖像以及視頻幀上。例如,ISP可以實現第1圖的示例中的寫入器114的功能,以生成並將圖像或視頻幀的合併已壓縮存取單元存儲幀記憶體中,其隨後由可以實現第1圖的示例中的讀取器118的功能的GPU或顯示裝置獲取。多媒體引擎可以包括執行視頻編解碼器的功能的硬體和軟體。因此,寫入器114和讀取器118的功能可以在多媒體引擎中實現,以用於訪問存儲有視頻幀的幀緩存器。
由於已經結合本發明的被提出用作示例的具體實施例描述了本發明的各個方面,可以做出這些示例的替代、修改和變形。因此,此處所說明的實施例用作示意目的,但不用於限制。在不脫離權利要求的範圍的情況下,可以做出改變。

Claims (20)

  1. 一種處理存取單元的方法,包括:接收對應於自圖像或者視頻幀分割的原始存取單元序列且對應於幀緩存器中的記憶體空間序列的已壓縮存取單元序列;以及基於所述已壓縮存取單元序列的壓縮率和/或位置,確定包括至少兩個連續的已壓縮存取單元的合併存取單元,其中相比於將所述至少兩個連續的已壓縮存取單元存儲在所述記憶體空間序列中的多個相應記憶體空間中,所述合併存取單元以在所述至少兩個連續的已壓縮存取單元之間具有減少間隙的方式存儲在所述幀緩存器中。
  2. 如申請專利範圍第1項所述之處理存取單元的方法,其中所述幀緩存器包括由多個叢發分界線所分割且對應於所述記憶體空間序列的叢發部分序列;以及所述方法還包括:將所述合併存取單元存儲到所述幀緩存器中,其中所述合併存取單元與所述幀緩存器的叢發分界線對齊,並且所述合併存取單元的多個成員相互相鄰。
  3. 如申請專利範圍第1項所述之處理存取單元的方法,其中基於所述已壓縮存取單元序列的壓縮率和/或位置,確定包括至少兩個連續的已壓縮存取單元的合併存取單元,包括:當連續的已壓縮存取單元集整體具有大於預選擇百分比的壓縮率時,確定將所述連續的已壓縮存取單元集合並成合併存取單元。
  4. 如申請專利範圍第1項所述之處理存取單元的方法,其中 基於所述已壓縮存取單元序列的壓縮率和/或位置,確定包括至少兩個連續的已壓縮存取單元的合併存取單元,包括:確定包括可被包含在預選擇數量的連續叢發部分中的最大數量的連續的已壓縮存取單元的合併存取單元。
  5. 如申請專利範圍第1項所述之處理存取單元的方法,其中基於所述已壓縮存取單元序列的壓縮率和/或位置,確定包括至少兩個連續的已壓縮存取單元的合併存取單元,包括:避免將屬於所述圖像或者所述視頻幀中不同方塊的多個已壓縮存取單元排列在同一合併存取單元中。
  6. 如申請專利範圍第1項所述之處理存取單元的方法,其中基於所述已壓縮存取單元序列的壓縮率和/或位置,確定包括至少兩個連續的已壓縮存取單元的合併存取單元,包括:避免將與方塊或者所述圖像或所述視頻幀的第一分界線相鄰的第一已壓縮存取單元和與所述方塊或者所述圖像或所述視頻幀的第二分界線相鄰的第二已壓縮存取單元排列在同一合併存取單元中,其中所述第二分界線與所述第一分界線相對設置。
  7. 如申請專利範圍第2項所述之處理存取單元的方法,其中還包括:接收已更新的已壓縮存取單元,所述已更新的已壓縮存取單元具有比待更新的已壓縮存取單元尺寸更大的尺寸,所述待更新的已壓縮存取單元屬於合併存取單元並與所述幀緩存器中的第一叢發部分的叢發分界線對齊;以及將所述已更新的已壓縮存取單元存儲在第二叢發部分的起 始位址處,所述第二叢發部分是所述叢發部分序列中先前相鄰叢發部分。
  8. 如申請專利範圍第1項所述之處理存取單元的方法,其中還包括:生成合併資訊序列,其中每個合併資訊對應於已壓縮存取單元或者合併存取單元,且表示所述已壓縮存取單元序列如何被合併成多個合併存取單元,使得在已壓縮存取單元被請求時,包括所請求的已壓縮存取單元的合併存取單元可根據所述合併資訊被確定。
  9. 如申請專利範圍第1項所述之處理存取單元的方法,其中所述合併資訊由以下中的一個表示:分配給每個已壓縮存取單元的合併使能標誌;相對於每個已壓縮存取單元的標識位址的每個已壓縮存取單元的位址偏移;以及對應於合併存取單元的多個成員的多個未壓縮存取單元的總尺寸。
  10. 如申請專利範圍第1項所述之處理存取單元的方法,其中每個已壓縮存取單元包括至少兩個已壓縮編碼單元,每個已壓縮編碼單元具有一長度;以及所述方法還包括:生成編碼單元標頭序列,其中每個編碼單元標頭對應於已壓縮編碼單元且包括各自的已壓縮編碼單元的長度資訊。
  11. 如申請專利範圍第1項所述之處理存取單元的方法,其中每個已壓縮存取單元包括至少兩個已壓縮編碼單元,每個 已壓縮編碼單元具有一長度;以及所述方法還包括:生成合併標頭序列,每個合併標頭對應於已壓縮存取單元;其中每個合併標頭包括至少兩個欄位,每個欄位存儲有各自已編碼存取單元中的各自的所述至少兩個已壓縮編碼單元的長度資訊;以及每個合併標頭還包括:存儲有相對於各自已壓縮存取單元的標識位址的各自已壓縮存取單元的位址偏移的欄位。
  12. 如申請專利範圍第1項所述之處理存取單元的方法,其中用多個可配置起始位址,所述已壓縮存取單元序列和所述合併標頭序列單獨被存儲。
  13. 如申請專利範圍第1項所述之處理存取單元的方法,其中所述幀緩存器是隨機訪問記憶體、靜態隨機訪問記憶體、動態隨機訪問記憶體、異步動態隨機訪問記憶體、同步動態隨機訪問記憶體、雙通道同步動態隨機訪問記憶體和快閃記憶體中的一個。
  14. 一種訪問幀緩存器的方法,包括:接收自幀緩存器讀取已壓縮存取單元的請求,所述幀緩存器存儲有部分被合併成多個合併存取單元的已壓縮存取單元序列,以及對應於每個已壓縮存取單元或者合併存取單元且表示多個已壓縮存取單元如何被合併成所述多個合併存取單元的合併資訊序列;根據與所請求的已壓縮存取單元相關的合併資訊,確定包括所請求的已壓縮存取單元的合併存取單元;以及 自所述幀緩存器讀取包括所請求的已壓縮存取單元的所確定的合併存取單元中的已壓縮資料。
  15. 如申請專利範圍第14項所述之訪問幀緩存器的方法,其中還包括:當所述合併存取單元的尺寸大於閾值時,自所述幀緩存器讀取所請求的存取單元。
  16. 如申請專利範圍第14項所述之訪問幀緩存器的方法,其中所述幀緩存器包括由多個叢發分界線所分割的叢發部分序列;所述多個合併存取單元中的每個與所述幀緩存器的叢發分界線對齊;以及每個合併存取單元的多個成員相互相鄰。
  17. 如申請專利範圍第14項所述之訪問幀緩存器的方法,其中所述合併資訊由以下中的一個表示:分配給每個已壓縮存取單元的合併使能標誌;相對於每個已壓縮存取單元的標識位址的每個已壓縮存取單元的位址偏移;以及對應於合併存取單元的多個成員的多個未壓縮存取單元的總尺寸。
  18. 如申請專利範圍第17項所述之訪問幀緩存器的方法,其中自所述幀緩存器讀取與所請求的已壓縮存取單元相關的合併資訊包括以下中的一個:讀取對應於所請求的已壓縮存取單元以及所述已壓縮存取單元序列中與所請求的已壓縮存取單元相鄰的多個已壓縮 存取單元的合併資訊;讀取對應於包括所請求的已壓縮存取單元的所述合併存取單元的合併資訊。
  19. 一種處理存取單元的裝置,包括電路,用於:接收對應於自圖像或者視頻幀分割的原始存取單元序列且對應於幀緩存器中的記憶體空間序列的已壓縮存取單元序列;以及基於所述已壓縮存取單元序列的壓縮率和/或位置,確定包括至少兩個連續的已壓縮存取單元的合併存取單元,其中相比於將所述至少兩個連續的已壓縮存取單元存儲在所述記憶體空間序列中的多個相應記憶體空間中,所述合併存取單元以所述至少兩個連續的已壓縮存取單元之間具有減少間隙的方式存儲在所述幀緩存器中。
  20. 如申請專利範圍第19項所述之處理存取單元的裝置,其中所述幀緩存器包括由多個叢發分界線所分割且對應於所述記憶體空間序列的叢發部分序列;以及所述電路還用於:將所述合併存取單元存儲到所述幀緩存器中,其中所述合併存取單元與所述幀緩存器的叢發分界線對齊,並且所述合併存取單元的多個成員相互相鄰。
TW107113842A 2017-04-25 2018-04-24 一種訪問幀緩存器的方法、處理存取單元的方法及裝置 TW201840177A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762489588P 2017-04-25 2017-04-25
US62/489,588 2017-04-25
US15/786,240 2017-10-17
US15/786,240 US10418002B2 (en) 2016-10-18 2017-10-17 Merged access units in frame buffer compression

Publications (1)

Publication Number Publication Date
TW201840177A true TW201840177A (zh) 2018-11-01

Family

ID=64094364

Family Applications (2)

Application Number Title Priority Date Filing Date
TW107113191A TW201839714A (zh) 2017-04-25 2018-04-18 一種存儲輸入圖像的方法及系統
TW107113842A TW201840177A (zh) 2017-04-25 2018-04-24 一種訪問幀緩存器的方法、處理存取單元的方法及裝置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW107113191A TW201839714A (zh) 2017-04-25 2018-04-18 一種存儲輸入圖像的方法及系統

Country Status (2)

Country Link
CN (2) CN108804508B (zh)
TW (2) TW201839714A (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4772956A (en) * 1987-06-02 1988-09-20 Eastman Kodak Company Dual block still video compander processor
US7106909B2 (en) * 2001-12-25 2006-09-12 Canon Kabushiki Kaisha Method and apparatus for encoding image data in accordance with a target data size
CN101212680B (zh) * 2006-12-30 2011-03-23 扬智科技股份有限公司 图像数据的存储器存取方法及系统
GB2457262A (en) * 2008-02-08 2009-08-12 Linear Algebra Technologies Compression / decompression of data blocks, applicable to video reference frames
CN101499097B (zh) * 2009-03-16 2011-03-23 浙江工商大学 基于散列表的数据流频繁模式内存压缩存储方法
CN102740074A (zh) * 2012-06-05 2012-10-17 沙基昌 一种视频数据的压缩/解压缩方法及系统
US20140219361A1 (en) * 2013-02-01 2014-08-07 Samplify Systems, Inc. Image data encoding for access by raster and by macroblock
CN105472442B (zh) * 2015-12-01 2018-10-23 上海交通大学 一种用于超高清帧率上变换的片外缓存压缩系统

Also Published As

Publication number Publication date
CN108833922B (zh) 2020-12-18
TW201839714A (zh) 2018-11-01
CN108804508A (zh) 2018-11-13
CN108833922A (zh) 2018-11-16
CN108804508B (zh) 2022-06-07

Similar Documents

Publication Publication Date Title
US10313880B2 (en) Reformatting data to decrease bandwidth between a video encoder and a buffer
CN107154012B (zh) 图形处理器及其操作方法
US6492991B1 (en) Method and apparatus for controlling compressed Z information in a video graphics system
US10042576B2 (en) Method and apparatus for compressing addresses
CN105431831B (zh) 数据存取方法和利用相同方法的数据存取装置
US10388032B2 (en) Method and apparatus for tile based depth buffer compression
CN110322904B (zh) 压缩图像信息读取控制方法及装置
US10134107B2 (en) Method and apparatus for arranging pixels of picture in storage units each having storage size not divisible by pixel size
US20200128264A1 (en) Image processing
US10418002B2 (en) Merged access units in frame buffer compression
US20120147023A1 (en) Caching apparatus and method for video motion estimation and compensation
US10580107B2 (en) Automatic hardware ZLW insertion for IPU image streams
US9137541B2 (en) Video data cache
CN106713926B (zh) 一种视频数据的压缩存储方法及装置
TW201840177A (zh) 一種訪問幀緩存器的方法、處理存取單元的方法及裝置
CN111355962A (zh) 适用于多参考帧的视频解码高速缓存方法、计算机装置及计算机可读存储介质
US10380029B2 (en) Method and apparatus for managing memory
US11907855B2 (en) Data transfers in neural processing
KR20220166198A (ko) 그래픽 처리 시스템들 내의 메모리에 데이터를 저장하기 위한 방법들 및 장치
US6297831B1 (en) Image generator using display memory
CN103903285B (zh) 一种png图像和bmp图像的缩略图提取方法
CN115955584A (zh) 图像处理装置、方法和电子设备