关于DNF的多媒体包NPK文件的那些事儿(5)- IMG文件里的指向型索引项(指向帧)的深度与有向环检测

本文介绍了DNF多媒体包NPK中的IMG文件中指向型索引项(指向帧)的工作原理和递归算法在检测有向环中的应用。当遇到指向帧时,DNF会按Link深度查找目标图片帧,但如果存在有向环,会导致程序错误并闪退。为了避免这种情况,提出了一个最大检测深度N的递归算法来判断帧的有效性。实验结果显示,通过调整最大检测深度,可以确认IMG文件中是否存在有向环并确定最大Link深度不超过2。
摘要由CSDN通过智能技术生成

IMG里的指向型索引项(指向帧)的描述和用途已经在前文讲过。

当贴图读取到指向帧时,会顺着该索引项的第二字节(linkTo)来寻找它所指向的其他帧,若该帧也是指向帧,则会继续寻找,直至找到图片帧。如下图所示,第3、4帧的Link深度为1,直接指向第2帧;第6帧Link深度也为1,直接指向第5帧;而第8帧的Link深度为2,因为它指向了Link深度为1的第6帧,而最终指向了第5帧:


很明显,DNF在读取到指定帧号是,需要经过Link深度次查找,才能找到目标图片帧。但有时候,会存在多个指向帧的指向方位构成一个有向环,如下图的2、3、4帧;或者更简单的一种特例,即指向帧指向自己,如下图的第5帧,很明显他们的Link的深度均为∞:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值