本文整理汇总了Golang中gohm/TLibCommon.TComPic.CompressMotion方法的典型用法代码示例。如果您正苦于以下问题:Golang TComPic.CompressMotion方法的具体用法?Golang TComPic.CompressMotion怎么用?Golang TComPic.CompressMotion使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gohm/TLibCommon.TComPic
的用法示例。
在下文中一共展示了TComPic.CompressMotion方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: FilterPicture
func (this *TDecGop) FilterPicture(rpcPic *TLibCommon.TComPic) {
pcSlice := rpcPic.GetSlice(rpcPic.GetCurrSliceIdx())
//-- For time output for each slice
iBeforeTime := time.Now()
// deblocking filter
bLFCrossTileBoundary := pcSlice.GetPPS().GetLoopFilterAcrossTilesEnabledFlag()
this.m_pcLoopFilter.SetCfg(bLFCrossTileBoundary)
this.m_pcLoopFilter.LoopFilterPic(rpcPic)
if pcSlice.GetSPS().GetUseSAO() {
l := len(this.m_sliceStartCUAddress)
this.m_sliceStartCUAddress[l] = int(rpcPic.GetNumCUsInFrame() * rpcPic.GetNumPartInCU())
///this.m_sliceStartCUAddress.PushBack(rpcPic.GetNumCUsInFrame()* rpcPic.GetNumPartInCU());
rpcPic.CreateNonDBFilterInfo(this.m_sliceStartCUAddress, 0, this.m_LFCrossSliceBoundaryFlag, rpcPic.GetPicSym().GetNumTiles(), bLFCrossTileBoundary)
}
if pcSlice.GetSPS().GetUseSAO() {
saoParam := rpcPic.GetPicSym().GetSaoParam()
saoParam.SaoFlag[0] = pcSlice.GetSaoEnabledFlag()
saoParam.SaoFlag[1] = pcSlice.GetSaoEnabledFlagChroma()
this.m_pcSAO.SetSaoLcuBasedOptimization(true)
this.m_pcSAO.CreatePicSaoInfo(rpcPic) //, len(this.m_sliceStartCUAddress)-1)
this.m_pcSAO.SAOProcess(saoParam)
this.m_pcSAO.PCMLFDisableProcess(rpcPic)
this.m_pcSAO.DestroyPicSaoInfo()
}
if pcSlice.GetSPS().GetUseSAO() {
rpcPic.DestroyNonDBFilterInfo()
}
rpcPic.CompressMotion()
//this.DumpMotionField(rpcPic);
var c string
if pcSlice.IsIntra() {
c = "I"
} else if pcSlice.IsInterP() {
if pcSlice.IsReferenced() {
c = "P"
} else {
c = "p"
}
} else {
if pcSlice.IsReferenced() {
c = "B"
} else {
c = "b"
}
}
//-- For time output for each slice
fmt.Printf("\nPOC %4d TId: %1d ( %s-SLICE, QP%3d ) ", pcSlice.GetPOC(), pcSlice.GetTLayer(), c, pcSlice.GetSliceQp())
this.m_dDecTime += time.Now().Sub(iBeforeTime)
fmt.Printf("[DT %10v] ", this.m_dDecTime)
this.m_dDecTime = 0
for iRefList := 0; iRefList < 2; iRefList++ {
fmt.Printf("[L%d ", iRefList)
for iRefIndex := 0; iRefIndex < pcSlice.GetNumRefIdx(TLibCommon.RefPicList(iRefList)); iRefIndex++ {
fmt.Printf("%d ", pcSlice.GetRefPOC(TLibCommon.RefPicList(iRefList), iRefIndex))
}
fmt.Printf("] ")
}
if this.m_decodedPictureHashSEIEnabled > 0 {
this.CalcAndPrintHashStatus(rpcPic.GetPicYuvRec(), rpcPic.GetSEIs())
}
rpcPic.SetOutputMark(true)
rpcPic.SetReconMark(true)
//this.m_sliceStartCUAddress.Init();
//this.m_LFCrossSliceBoundaryFlag.Init();
slicesize := len(this.m_sliceStartCUAddress)
for i := 0; i < slicesize; i++ {
delete(this.m_sliceStartCUAddress, i)
}
if len(this.m_sliceStartCUAddress) != 0 {
fmt.Printf("clear this.m_sliceStartCUAddress error\n")
}
lfsize := len(this.m_LFCrossSliceBoundaryFlag)
for i := 0; i < lfsize; i++ {
delete(this.m_LFCrossSliceBoundaryFlag, i)
}
if len(this.m_LFCrossSliceBoundaryFlag) != 0 {
fmt.Printf("clear this.m_LFCrossSliceBoundaryFlag error\n")
}
}