HEVC-SCC中打印CU的深度

HEVC-SCC中打印CU的深度

HEVC-SCC是HEVC的扩展,用于编码屏幕内容图像,在这里CTU的划分和HEVC一样,都是四叉树划分,和HEVC的编码流程一样。要打印出编码后的CU的深度值,就需要先知道最佳CU的信息保存在哪里。函数 xCompressCU( m_ppcBestCU[0], m_ppcTempCU[0], 0 DEBUG_STRING_PASS_INTO(sDebug) );用来对每个CU进行编码,这个函数执行完之后,最佳CU的信息就保存在m_ppcBestCU[0]。所以就用m_ppcBestCU[0]这个变量来获取CU的深度。将代码写在xCompressCU函数的后面。

   ofstream  IBCInfo;
   TComDataCU*  IBCCu = m_ppcBestCU[0];
   IBCInfo.open("cudepth.txt", ios::app);
   int iCount = 0;
   TComSlice* pcSlice = IBCCu->getSlice();
   int iWidthInPart = pcSlice->getSPS()->getMaxCUWidth()>>2;
   for (UInt iPartitionNum = 0; iPartitionNum < IBCCu->getTotalNumPart(); iPartitionNum++)
  {
	 
	   if ((iCount & (iWidthInPart - 1)) == 0)
		   IBCInfo << endl;//换行,每行16个
	   IBCInfo <<(int) IBCCu->getDepth(g_auiRasterToZscan[iPartitionNum]) << " ";
	  iCount++;
  }//这个for循环是打印一个CTU中每个CU的深度
   IBCInfo << endl;
   IBCInfo.close();

打印一个CTU的结果如下:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
SCC (Strongly Connected Components) 算法是一种用于寻找有向图强连通分量的算法。下面是一个使用 Python 实现 SCC 算法的例子: ```python from collections import defaultdict class Graph: def __init__(self, vertices): self.graph = defaultdict(list) # 使用 defaultdict 创建邻接表 self.V = vertices def addEdge(self, u, v): self.graph[u].append(v) # 将边添加到邻接表 # 深度优先搜索函数 def DFS(self, v, visited, stack): visited[v] = True for i in self.graph[v]: if visited[i] == False: self.DFS(i, visited, stack) stack.append(v) # 反转图的边 def reverseGraph(self): g = Graph(self.V) for i in self.graph: for j in self.graph[i]: g.addEdge(j, i) return g # 寻找强连通分量 def findSCCs(self): stack = [] visited = [False] * (self.V) # 第一次 DFS,将顶点按照结束时间压入栈 for i in range(self.V): if visited[i] == False: self.DFS(i, visited, stack) # 反转图的边 gr = self.reverseGraph() visited = [False] * (self.V) scc_list = [] # 从栈取出顶点,进行第二次 DFS while stack: v = stack.pop() if visited[v] == False: scc = [] gr.DFS(v, visited, scc) scc_list.append(scc) return scc_list # 测试代码 g = Graph(5) g.addEdge(1, 0) g.addEdge(0, 2) g.addEdge(2, 1) g.addEdge(0, 3) g.addEdge(3, 4) print("强连通分量为:") scc_list = g.findSCCs() for scc in scc_list: print(scc) ``` 以上代码实现了 SCC 算法,通过构建图并使用深度优先搜索来查找强连通分量。测试代码的图是一个简单的有向图,输出结果会显示图的强连通分量。运行代码后,输出应为: ``` 强连通分量为: [3, 4] [0, 2, 1] ``` 这表示图有两个强连通分量,一个包含节点 3 和 4,另一个包含节点 0、2 和 1。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值