總結一下vvc普通量化部分
void quant::
quant
(transformunit &tu,
const componentid &compid,
const ccoeffbuf &psrc, tcoeff &uiabssum,
const qpparam &cqp,
const ctx& ctx)
主要用到的變數:
const ccoeffbuf &picoef = psrc;
//變換係數
coeffbuf piqcoef = tu.
getcoeffs
(compid)
;//量化後係數
//根據縮放型別獲取量化係數矩陣
int*piquantcoeff =
getquantcoeff
(scalinglisttype, cqp.
rem(usetransformskip)
, uilog2trwidth, uilog2trheight)
;
//獲取預設量化係數 mf值
// cqp.per表示floor(qp/6)的值
// cqp.rem表示qp%6的值
const
int defaultquantisationcoefficient = g_quantscales[needsqrtadjustment?1:
0][cqp.
rem(usetransformskip)];
// itranformshift表示整數dct變換的縮放因子,該因子和變換尺寸有關
int itransformshift =
gettransformshift
(channelbitdepth, rect.
size()
, maxlog2trdynamicrange)
+( needsqrtadjustment?-1
:0);
//計算qbit,quant_shift =14,cqp.per=floor(qp/6),qbit=14+floor(qp/6)
//如果使用的不是變換跳過模式,則再加上dct係數的縮放因子
const
int iqbits = quant_shift + cqp.
per(usetransformskip)
+(usetransformskip ?
0: itransformshift)
;
// 計算f'=f<<(qbit+t)
const
int64_t iadd =
int64_t
(tu.cs-
>slice-
>
isirap()
?171:85
)<<
int64_t
(iqbits -9)
;const
int qbits8 = iqbits -
8;
//最大係數數目
const
int maxnumberofcoeffs = lfnstidx >0?
((( uiwidth ==
4&& uiheight ==4)
||( uiwidth ==
8&& uiheight ==8)
)?8:
16): piqcoef.
area()
;
然後,用for迴圈遍歷塊內所有係數,分別對其量化:
for
(int uiscanpos =
0; uiscanpos < maxnumberofcoeffs; uiscanpos++
)// for nif(
(tu.cu-
>bdpcmmode &&
isluma
(compid))||
(tu.cu-
>bdpcmmodechroma &&
ischroma
(compid)))
if( cctx.
signhiding()
)}}//if rdoq
//return;
}
高通量資料
sra是ncbi 推出的儲存高通量資料的格式,而平常我們工作用得多是fastq格式。如果需要把sra 轉成fastq sratoolkit.2.1.16 centos linux64,解壓就可以用 sratoolkit.2.1.16 centos linux64 bin fastq dump 然後使...
VVC編碼工具之Intra Prediction
1.intra mode coding with 67 intra prediction modes 1 vtm4將幀內角度 模式從33擴充套件到了65種,新增的mode為圖9中的紅色虛線 2 對於矩形塊,傳統的角度 模式會被wide angle intra prediction modes代替,見...
openFOAM中通量的生成
標頭檔案createphi.h和compressiblecreatephi.h 使用openfoam處理守恆方程時,經常需要處理通過網格面的通量。廣義通量表示為phi。由於密度 速度等值儲存在網格中心的,因此為了計算網格面上的通量,必須進行一定的處理。openfoam通過呼叫createphi.h或...