日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

HEVC中的样点自适应补偿——Sample Adaptive Offset (SAO)

發布時間:2024/8/1 c/c++ 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HEVC中的样点自适应补偿——Sample Adaptive Offset (SAO) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么需要SAO

當變化塊尺寸較大時,容易出現振鈴效應,SAO就是用來削弱這種效應的。

SAO首先利用分類器將樣點分類,然后根據類別對樣點值加上一個偏移值。

樣點的類別下標以及偏移值會被編碼到碼流中。

HEVC中有兩種SAO type,edge offset(EO) 和 band offset(BO),其中EO是根據樣點值與周圍樣點值的關系來分類,而BO是根據樣點本身的值來分類。

HEVC中以CTU為單位進行SAO,不同的CTU可以使用相同的SAO參數(也就是region merging),一個CTU包含的色度CTB共享SAO type,但是可以有不同的偏移值。

Edge Offset(EO)


上圖表示的是編碼中的振鈴效應,橫軸表示像素坐標,縱軸表示像素值,虛線代表實際值,實線代表編碼后的結果??梢钥吹?#xff0c;原本應該是邊緣的地方現在卻出現了波動。

那么怎么去除這種效應呢,很直觀的想法就是對樣點加上一個偏移值,讓虛線靠近實線,如對波峰處的樣點加上負的偏移,對波谷處的樣點加上正的偏移值。

EO有四種分類器,如下圖:

其中c代表當前樣點,a和b是其相鄰樣點,如果一個CTB是EO類型,那么它會在這四種分類器中選擇一個(根據RDO),并將下標進行編碼。

當一個CTB在上面四種分類器選擇某種方向的分類器后,該CTB里的所有樣點會根據相鄰樣點的情況被分為5類,分類規則如下表:

其中1到4類是需要進行偏移補償的情況,如下圖所示:

可以看到類別1和2需要正偏移補償,3和4需要負的偏移補償,這樣才會使得圖像更平滑,消除振鈴。

上面四種情形分別對應一種特定的偏移量,在編碼時只需要對偏移量的絕對值進行編碼,而偏移的正負可以通過類別的序號隱式獲得。

總結一下EO時需要傳輸的語法元素:首先是CTB使用EO的標志(色度分量可以共享一個標志),然后對每個CTB而言,要傳方向分類器的下標,以及對應的四個類別的偏移絕對值。

Band Offset(BO)

BO的示意圖如下:

橫坐標是樣點的位置,縱軸是樣點值,虛線是真實像素值,實線是編碼出來的像素值??梢钥吹?#xff0c;編碼結果與真實值存在著一定的偏差,從圖中看,將實現往下移一段距離可以減小這種偏差。BO就是將樣點值分為不同的band,然后對不同的band偏移不同的值來削弱振鈴效應。

一個CTU如果SAO type是BO,那么首先樣點會根據樣點值被分為32個等間距的band,對于常見的8bit像素(0-255),每個band的寬度就是8。對于CTB里面的樣點,每個樣點都會屬于一個特定的區間。在HEVC里面,只會選取4個相鄰的band進行補償。因為一個CTB里面的樣點值的范圍一般都是比較小的。
如下圖所示:

4個相鄰的band是通過最小的band下標來表示的。如上圖,只需要編碼下標k,就可以知道是band k, k+1,k+2,k+3這范圍內的樣點值需要補償。

假如現在通過RDO選擇k為1,那么需要補償的范圍就是像素值為8到39的樣點。對于每個band,補償的偏移不同,可正可負,即最終還要傳輸四個band對應的偏移值。而對CTB中像素值處于某個band所表示范圍的樣點而言,都需要加上對應的偏移值作為SAO之后的值。

SAO merge

在低延時應用中,不同的CTU可以使用相同的SAO參數,這樣可以降低復雜度。一個CTU可以使用其上方或者左方相鄰的CTU的SAO參數。主要是通過sao_merge_left_flag和sao_merge_above_flag來表示的。

SAO相關的語法元素

SPS里會有sample_adaptive_offset_enabled_flag,來表示當前序列是否使用SAO

Slice Header里面會有slice_sao_luma_flag和slice_sao_chroma_flag,來表示當前Slice不同亮度和色度的SAO是否使用

CTU的開始會編碼sao_merge_left_flag和sao_merge_above_flag,如果使用merge,則三個分量都使用merge

如果CTU沒有SAO 參數 merge,那么就會編碼新的SAO參數,如下圖:

首先是亮度分量的SAO type,

  • 要么是EO,BO或者是不進行SAO,
  • EO則編碼offset絕對值和EO的類別(就是哪個方向的分類器),BO則編碼offset的值和band的起始位置

接下來就是亮度和色度,它們共享SAO type,如果是EO,還共享EO的類別,BO則不共享band的起始位置

總結

以上是生活随笔為你收集整理的HEVC中的样点自适应补偿——Sample Adaptive Offset (SAO)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文精品久久久久人妻不卡 | 国产av无码专区亚洲精品 | 国产精品久久久久久久久晋中 | 小罗莉极品一线天在线 | 波多野结衣在线播放 | 欧洲精品一区 | 中文字幕一区二区三区精彩视频 | 午夜av影视 | 欧美一级一级一级 | 国产老妇伦国产熟女老妇视频 | 亚洲欧洲日本在线 | 日本高清二区 | 免费成人结看片 | 俄罗斯厕所偷拍 | 黄色激情视频网站 | 新版红楼梦在线高清免费观看 | 91在线网站 | 狠狠热免费视频 | 国产污污视频 | 精品伦精品一区二区三区视频 | 国产精品久线在线观看 | 日本美女一级视频 | 久久嫩草精品久久久久 | 毛片免费一区二区三区 | 久久精品国产大片免费观看 | 草久久免费视频 | 欧美4区| 激情图片网站 | 国产成人精品免高潮费视频 | 成人激情视频在线 | 日本黄色片在线播放 | 欧美日韩激情在线 | 91在现看| 日韩精品一区二区三区四区五区 | 亚洲蜜臀av一区二区三区 | 亚洲av无码一区二区乱子伦 | 久久精品国产一区二区 | 免费福利视频在线观看 | 绯色av一区| 午夜青青草| 日韩欧美精品在线观看 | 岛国av免费 | 欧美美女一区 | 国产怡红院 | 美女被草视频 | 色五丁香| 少妇视频网 | 亚洲精品久久久蜜桃网尤妮丝 | 久热中文字幕 | 午夜精品亚洲 | 黄色片在线免费 | 欧美一区二区三区影院 | 蜜臀av在线播放 | 凹凸精品熟女在线观看 | 成人在线观看一区二区三区 | 五月天免费网站 | 国产精品--色哟哟 | 在线亚洲欧美 | 国产一区二区三区www | 99国产在线视频 | 日日夜夜精品视频免费 | 亚洲一级Av无码毛片久久精品 | 欧美videossex另类 | 琪琪色18 | 国产一区自拍视频 | 中文字幕国产在线观看 | 扒开腿揉捏花蒂h | 在线观看污 | 永久免费av无码网站性色av | 九九在线 | 佐佐木明希电影 | 亚洲视频一二三四 | 少妇视频一区二区三区 | 西西人体做爰大胆gogo直播 | 成人www视频 | 日韩精品一区二区不卡 | 四虎永久网站 | 小镇姑娘高清播放视频 | 久久久久久久影院 | 亚洲欧美在线观看 | 色屁屁影院www国产高清麻豆 | 色眯眯视频 | 青青草在线免费观看 | 女性裸体瑜伽无遮挡 | 欧美操大逼 | 日韩一卡二卡三卡四卡 | 亚洲一区二区伦理 | 性生活毛片| 91在线免费看片 | 五月婷婷六月色 | 99视频在线看 | 亚洲天堂视频在线播放 | 超碰在线色| 亚洲欧美视频二区 | av制服丝袜 | 亚洲一区福利视频 | 台湾男男gay做爽爽的视频 | 色婷婷av一区二区三区麻豆综合 | 成人一级生活片 |