999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于HLS的HEIF圖像預測編碼模塊設計

2025-08-06 00:00:00胡錦黃明帥畢曉猛
計算技術與自動化 2025年2期

摘 要:設計使用高層次綜合語言HLS(High Level Synthesize)來實現圖像預測幀內編碼模塊的功能。幀內預測編碼是指利用視頻空間域的相關性,使用當前圖像已編碼的像素預測當前像素,然后將預測殘差(當前像素真實值與預測值之間的差值)作為后續編碼模塊的輸入,進行下一步編碼處理。HLS實現相比與直接使用verilog和其他的語言來實現,HLS具有開發周期短,可以極大地節省人力成本和時間成本、平臺可移植性強以及更便捷的代碼迭代等的優勢。設計使用HLS實現的對HEIF編碼IP中圖像預測編碼模塊,主要用于FPGA中,優化后的IP總占用10795個FIFO和30705個LUT,并且設計在后續優化代碼之后縮短了1/3原有編碼所需時間,大大提升了編碼速率。

關鍵詞:圖像幀內預測編碼;預測殘差;HEIF編碼;HLS

中圖分類號:TN46 文獻標識碼:A

Design of HEIF Image Prediction Coding Module Based on HLS

HU Jin1,HUANG Mingshuai1,BI Xiaomeng2

(1.School of Physics amp; Electronics, Hunan University,Changsha,Hunan 410082,China;

2. Zhongda Intelligent Technology Co., Ltd., Changsha,Hunan 410082,China)

Abstract:The design uses high level synthesize(HLS) language to realize the function of image prediction in frame coding module. Intra frame predictive coding refers to using the correlation of the video spatial domain to predict the current pixel using the encoded pixel of the current image, and then using the predicted residual (the difference between the real value of the current pixel and the predicted value) as the input of the subsequent coding module for the next encoding process. Compared with the implementation of verilog and other languages directly, HLS has the advantages of short development cycle, great savings in labor cost and time cost, strong platform portability and more convenient code iteration. The image prediction coding module of HEIF encoded IP implemented by HLS is designed, which is mainly used in FPGA. The optimized IP occupies 10795 FIFO, 30705 and LUT, and the design reduces the time required for original coding by 1/3 after the subsequent optimization of the code, greatly improving the coding rate.

Key words:image intra frame prediction coding;prediction residual;HEIF encoding;HLS

HEIF圖像編碼方法包括:獲取HEIF圖像數據;對圖像數據進行計算,獲得圖像數據分量;對所述圖像數據分量進行編程處理,獲得所述HEIF圖像數據的編碼數據[1]。視頻序列中的第一幀圖像以及其他I幀的圖像,在編碼時沒有可供參考的圖像,只能利用自身的局部像素信息來降低空間冗余,該過程即為幀內編碼。幀內預測技術是消除視頻空間冗余的主要技術之一[2],因此幀內編碼是HEVC編碼中不可或缺的技術[3]。HLS具備很多其他高級語言所不具備的特點,比如任意精度數據庫、HLS串流庫以及HLS預處理指示等。基于 C/C++語言的原生數據類型都位于 8 位邊界(8 位、16 位、32 位和 64 位)上。RTL總線(對應于硬件)支持任意數據長度。使用標準 C/C++ 語言數據類型可能導致硬件實現效率低下。任意精度 (AP) 數據類型允許代碼使用位寬更小的變量,并且可供 C/C++語言仿真用于確認功能保持不變或者可接受。較小的位寬所生成的硬件運算符也更小且運行更快;HLS串流庫,串流是一種數據傳輸形式,其中數據樣本從第一個樣本開始按順序發送,串流不需要地址管理。Vitis_HLS 提供了 C++ 模板類 “hls::streamlt;gt;”用于對串流數據結構進行建模,其相當于無限深度的FIFO并且按照順序對數據進行讀寫;HLS預處理指令則是可以將硬件電路的思維實現在高級語言上,比如預處理指令“#pragma HLS dataflow”中dataflow編譯指示可啟用任務級流水打拍,允許函數和循環在其操作過程中重疊,增加 RTL實現的并發度,并增加設計的整體吞吐量。與文獻[4]、文獻[5]以及文獻[6]中的傳統設計研究方法不同,本次設計綜合闡述了如何基于HLS實現HEIF編碼IP中8×8圖像預測模塊的功能。

1 編碼預測算法原理

1.1 算法實現簡述

圖像的幀內預測分為兩大部分,一部分是幀內預測模式,另一部分是幀內預測過程。其中幀內預測模式又分為亮度預測模式、亮度預測模式編碼以及色度預測模式編碼;幀內預測過程主要涉及相鄰參考像素的獲取、參考像素的濾波以及預測值的計算。在本文提到的設計中對進入IP的圖像首先進行塊的劃分,當塊劃分成8×8的大小的時候進入codeLumaQT8_pred模塊,也就是設計的預測模塊。codeLumaQT8_pred主要分為外循環和內循環,其中外循環是為了滿足HEIF IP的WPP功能,內循環則是循環了(WPP_NUM+3)×64次,其中的“WPP_NUM”是指對圖像進行參考像素濾波、預測、計算殘差、輸出等四個步驟,“+3”是對這四個步驟進行了流水線的設計,有助于大大提升圖像處理速率,“×64”則是因為每個8×8的像素塊有64個像素點需要進行處理,主要的功能實現部分均在內循環。

1.2 codeLumaQT8_pred內循環詳細流程

內循環的處理步驟主要分為參考像素濾波、35種模式預測、計算殘差和輸出四個步驟,所以在代碼編寫的時候使用變量read_data、read_data1、read_data2、read_data3是否為1來判斷數據處理進行到了哪一步。其中初始化的時候read_data=true;read_data1=read_data2=read_data3=1,因為一開始就需要進行濾波;然后在第一個像素處理循環結束之后再給變量賦值。如上所述內循環總共循環了(WPP_NUM+3)×64次,預測模塊的關鍵步驟循環圖示如圖1。

下面對內循環的關鍵步驟進行詳細的拆分講解。

(1)35個預測模式

根據不同的功能,HEVC中定義了不同的名稱,其中預測單元(Predicion Unit,PU) [7]。H.265/HEVC亮度分量的幀內預測支持5種大小的預測單元PU:4×4、8×8、16×16、32×32、64×64[8]。每種PU都對應了35種預測模式,包括Planar模式、DC模式以及角度模式。所有預測模式使用相同的預測方式。模式0為Planar模式,模式1為DC模式,模式2~34為角度模式。其中8×8亮度塊的幀內預測也是如此,第一種是模式0(Planar模式),Planar模式適用于在水平方向和垂直方向都呈線性變化的圖像內容。其計算式如下:

PHx,y=(N-x)·R0,y+x·RN+1,0(1)

PVx,y=(N-x)·Rx,0+y·R0,N+1(2)

Px,y=(PHx,y+PVx,y+N)》(log2N+1)(3)

模式1是DC模式,DC模式適用于大面積平坦區域,是使用當前塊的預測值由預測模板左側和上側(注意不包含左上角、左下方和右上方)參考像素的平均值計算得到。其第一步就是求出該預測單元左側及上方的像素平均值,如式(4)所示:

dcValue=∑Nx=1Rx,0+∑Ny=1R0,y+N》(log 2N+1) (4)

模式2~34為角度模式,是使用預測模板上側和左側的33種角度上的參考像素來計算當前塊的預測值模式,其中角度模式中的模式27~34最為關鍵,因為它涉及后續參考像素平滑濾波的處理。所有預測模式采用的是相同的預測模板,HEVC中以逐行掃描的順序訪問編碼樹單元,在編碼樹單元內又以深度優先、逐行掃描的順序訪問各個編碼單元。因此,除了當前塊的左邊一列和上邊一行像素,HEVC中當前塊的左下角和右上方的像素也可以作為參考像素[9]。如圖2所示,Px,y表示當前塊的預測像素,Rx,y表示當前塊的參考像素。

(2) 參考像素的平滑濾波

預測值的計算公式是按照模式27~34這種方向推導的,在計算其他方向的預測值的時候需要做一些調整。詳細的推導過程可以參考HEVC的標準文檔或者教材。參考像素的強平滑濾波用在32×32的亮度塊,設計中實現的是8×8的亮度塊,所以只有3-tap的常規平滑濾波。所有尺寸的預測塊,DC預測模式不需要進行平滑濾波。對于8×8的塊,對2、18、34方向進行濾波。

(3) MPM(Most Probable Model)的選擇

HEVC幀內CU塊劃分采用四叉樹遍歷遞歸的塊劃分算法,即從大到小依次劃分遍歷所有可能的CU塊類型[10],所以在一張大圖中的每個8×8相鄰塊之間往往存在較強的相關性,因此相鄰PU的幀內預測模式相同或相似的概率較大。為了去除這部分冗余信息,H.265建立了預測模式候選列表candModelList,表中有3個候選預測模式。利用candModelList可以降低編碼當前PU最優模式的碼率。同樣,設計中根據cuAboveLumaDir的模式(Mode1)和cuLeftLumaDir的模式(Mode2)設置MPM:如果Mode1和Mode2不同,那么前兩個MPM是Mode1和Mode2,第三個模式從Planar、DC和垂直方向中,順序選擇一個和前兩個MPM不一樣的模式;如果Mode1和Mode2相同:如果Mode1和Mode2是非角度模式,那么第一個MPM是Mode1,第二和第三個MPM按照Planar、DC和垂直預測的順序依次選擇;如果Mode1和Mode2是角度預測模式,那么第一個MPM是Mode1,第二和第三個MPM是與Mode1相鄰的兩個角度預測模式。

1.3 算法功能優化

算法優化思路:將16個8×8塊pipeline起來同時進行處理,方便外部塊的處理,可以大大提升編碼的速率。主要代碼的優化位置在于(1)預測數組空間的大小調整;(2)讀寫數據標志信號的初始值調整;(3)預測模塊內外循環判斷條件的調整;(4)參考像素濾波、預測、計算殘差、輸出等四個步驟的執行判斷條件的調整。預測模塊優化后關鍵步驟循環圖如圖3所示。

1.4 優化時候的問題分析

(1)遇到的問題

在優化的過程中遇到了幾個關鍵的問題:(1)沒有修改代碼輸出部分代碼時,初次優化pred只輸入了一個8×8就不輸入數據了,原因是第一組8×8的輸出沒有結束與下一組的read_data輸入時序相沖突。只能通過縮短輸出時間/延長下一組read_data輸入的時間來解決。如圖,可以看到,read_data只輸入了一輪數據(1000),outputY8只輸出了14次,本應該輸出16次,即沒有完整地進行輸出。修改之后pred模塊的Latency變成了之前的2倍,預測是因為VCT_GET16引起的。

(2)解決思路

主要問題在于如何讓codeLumaQT8_pred模塊outputY8、pred輸出與read_data輸入時序不沖突,使得圖片完整數據能夠完整輸入。

(3)解決方法

在原始代碼的基礎之上進行了多次嘗試之后最終找到了優化方案。也就是前文中提到的優化思路;(1)預測數組空間的大小調整;(2)讀寫數據標志信號的初始值調整;(3)預測模塊內外循環判斷條件的調整;(4)參考像素濾波、預測、計算殘差、輸出等四個步驟的執行判斷條件的調整,具體的代碼調整參見代碼。

2 驗證結果

最終修改完成之后,在賽靈思的開發板xc7vx485t-ffg1157-1上進行綜合測試,選擇的時鐘頻率為100 MHz,codeLumaQT8_pred模塊計算一組16×8×8塊需要的時間(1227個時鐘周期)相比于優化之前(1840個時鐘周期)減少了33%的時間,如表1所示。表2是優化之前該模塊處理一組8×8數據塊需要的時間。表3是優化后該模塊能達到的時鐘頻率。表4是整個IP的資源占用情況。

3 結 論

介紹了圖像預測模塊對8×8大小的像素塊進行處理的幀內算法功能實現,與傳統的幀內算法不一樣的地方在于該模塊采用的是HLS,即高層次綜合語言實現的,并且對其進行了功能上的優化處理。HLS相比于其他語言的優勢在前文也進行了描述,其很短的開發周期以及較強的代碼移植性等的優點使得其可以快速地實現圖像編解碼IP的設計和仿真驗證工作。

參考文獻

[1] 耿嘉,樊平.一種HEIF圖像編碼方法及相關設備[P].北京:CN112150567B,2023-07-18.

[2] 吳永科.HEVC快速幀內預測編碼器的設計與實現[D].廣州:華南理工大學,2018.

[3] 姬瑞旭. HEVC幀內模式決策和CU劃分快速算法[D].西安:西安電子科技大學,2014.

[4] 周敬利,金毅,余勝生等.基于H.264視頻編碼技術的研究[J].華中科技大學學報(自然科學版),2003,31(8): 32-34.

[5] 裴世保,李厚強,俞能海.H.264/AVC幀內預測模式選擇算法研究[J].計算機應用,2005,(8): 1808-1810.

[6] 沈曉琳.HEVC低復雜度編碼優化算法研究[D].杭州:浙江大學,2013.

[7] 黃晗. HEVC幀間/幀內預測及優化技術研究[D].北京:北京交通大學,2014.

[8] 李恒忠,崔建明,郭勇等.基于HEVC視頻標準的熵編碼過程[J].電腦知識與技術,2013,9(14):3356-3359+3365.

[9] 趙耀,黃晗,林春雨等.新一代視頻編碼標準HEVC的關鍵技術[J].數據采集與處理,2014,29(1):1-10.

[10]LAINEMA J ,BOSSEN F,HAN W J, et al. Intra coding of the HEVC standard[J].IEEE Transactions on Circuits and Systems for Video Technology,2012,22(12):1792-1801.

主站蜘蛛池模板: 亚洲精品无码人妻无码| 1级黄色毛片| 亚洲中文字幕23页在线| 日韩乱码免费一区二区三区| 日本精品一在线观看视频| 国产免费福利网站| 国内毛片视频| 欧美日韩精品一区二区视频| 亚洲另类色| 人禽伦免费交视频网页播放| 欧美五月婷婷| 欧洲极品无码一区二区三区| 日韩精品久久久久久久电影蜜臀| 日本高清免费一本在线观看 | 国产国模一区二区三区四区| 综合久久久久久久综合网| 九九热精品视频在线| 成人韩免费网站| 欧美中文一区| 免费一级无码在线网站| 国产av一码二码三码无码| 国产白浆视频| 在线观看国产精美视频| 91亚洲精品国产自在现线| 亚洲精品大秀视频| 伊人狠狠丁香婷婷综合色| 亚洲人成影院在线观看| 国产男女XX00免费观看| 亚洲AV无码久久天堂| AV在线天堂进入| 婷婷亚洲视频| 一区二区三区毛片无码| yjizz国产在线视频网| 国产精品亚洲日韩AⅤ在线观看| 极品国产在线| 青草视频免费在线观看| 在线观看网站国产| 亚洲国产精品不卡在线| 国产一区免费在线观看| 国产成人福利在线视老湿机| 国产亚洲欧美另类一区二区| 欧洲日本亚洲中文字幕| 亚洲国产成人精品青青草原| 噜噜噜综合亚洲| 亚洲欧美一区二区三区麻豆| 又黄又湿又爽的视频| 欧美精品导航| 日韩在线影院| 欧美精品成人一区二区在线观看| 亚国产欧美在线人成| 国产91视频免费观看| 丁香婷婷激情网| 国产极品美女在线| 92午夜福利影院一区二区三区| 日韩欧美高清视频| 强奷白丝美女在线观看| 色婷婷电影网| 一级爆乳无码av| 日本一区二区三区精品国产| 国产成人艳妇AA视频在线| 久久精品这里只有国产中文精品| 亚洲av无码久久无遮挡| 亚洲综合色区在线播放2019| 日韩久草视频| 在线播放精品一区二区啪视频| 夜夜操天天摸| 欧美国产在线看| 国产精品视频观看裸模| 欧美亚洲欧美区| 国产jizz| 欧洲精品视频在线观看| 国产嫖妓91东北老熟女久久一| 99re视频在线| 最新亚洲av女人的天堂| 久久久噜噜噜| 国产欧美成人不卡视频| 欧美亚洲国产精品久久蜜芽| 国产成人综合在线观看| 成人噜噜噜视频在线观看| 亚洲a级毛片| 久久这里只有精品66| 久久国产V一级毛多内射|