AVS3:跨分量预测TSCPM

TSCPM

两步跨分量预测模式(TSCPM,Two Step Cross-component Prediction Mode)通过探索不同分量之间的线性关系去除分量间冗余。TSCPM分为两个步骤执行,首先使用Co-located luma块通过参数α和β生成尺寸相同的临时预测块,第二步再进行下采样,得到色度分量的预测值,如图1。

图1 TSCPM

AVS3的TSCPM仅用于intra模式中,类似于VVC中的CCLM。其中TSCPM的关键是计算线性模型的参数alpha和beta。

整个过程分为两步,第一步计算alpha和beta,当得到alpha和beta后,根据亮度和色度之间的线性关系,得到重构亮度像素,第二步对重构的亮度像素进行下采样得到色度预测值。

计算alpha和beta需要使用4个可用的像素点对,据相邻块像素的可用性分为了3种情况来得到这4个可用的像素点,过程如下:

在选取4对可用像素点时,需要考虑上侧像素和左侧像素的可用性,分为以下3种情况:

1. 如果当前块的正上侧和正左侧像素均可用,则2个像素点从上侧选择,另外2个像素点从左侧选择(0,-1),(W-max(1,r),-1),(-1,0),(-1,H-max(1,r))。H、W是宽高,r是长宽比。

2. 如果当前块只有上侧可用,则4个像素点均从正上侧选择,选择的位置宽度为:0/4,1/4,2/4,3/4

3. 如果当前块只有左侧像素可用,则4个像素点均从正左侧选择,选择的位置为高度的:0/4,1/4,2/4,3/4

图2 像素点选择

得到4个点后即可计算alpha和beta,计算方式和CCLM类似,不过其中计算aplha过程中的除法通过查表代替以减少复杂度。

minIndex[2] = {0, 2}maxIndex[2] = {1, 3}if (x[minIndex[0]] > x[minIndex[1]]) {Exchange(minIndex[0], minIndex[1])}if (x[maxIndex[0]] > x[maxIndex[1]]) {Exchange(maxIndex[0], maxIndex[1])}if (x[minIndex[0]] > x[maxIndex[1]]) {Exchange (minIndex[0], maxIndex[0])Exchange (minIndex[1], maxIndex[1])}if (x[minIndex[1]] > x[maxIndex[0]]) {Exchange (minIndex[1], maxIndex[0])}xMin = (x[minIndex[0]] + x[minIndex[1]] + 1) >> 1yMin = (y[minIndex[0]] + y[minIndex[1]] + 1) >> 1xMax = (x[maxIndex[0]] + x[maxIndex[1]] + 1) >> 1yMax = (y[maxIndex[0]] + y[maxIndex[1]] + 1) >> 1diffX = xMax – xMindiffY = yMax – yMinif (diffX > 64) {shift = (BitDepth > 8) ? BitDepth – 6 : 2add = 1 << (shift – 1)alphaX = (diffY * TscpmTable[((diffX+add)>>shift)-1] + add) >> shiftbetaX = yMin – ((alphaX * xMin) >> iShiftX)}else if (diffX > 0) {alphaX = diffY * TscpmTable[diffX-1]betaX = yMin – ((alphaX * xMin) >> iShiftX)}else {alphaX = 0betaX = yMin}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值