本文所列格式均系 kmscript.com 原创格式,受产权保护,未经书面许可进行相同算法解析或重构将面临起诉。
- .kms
- kms 是由 kmscript 生成的脚本源代码,包含由开发者(任意国家字符)命名的模块和步骤的具体实现,能够被直接编辑。
- kms 必须发布成 kmsz 才可以运行
- kms 是不封闭的 kmscript 专有格式,它是可被阅读的文本格式,即使不再使用 kmscript 也可以当作流程描述文件永久保存
- kms 在 kmscript 里不会被上传、发送给第三方(包括不会发送给 kmscript 服务器),将作为封闭资产保留在开发者方
- kms 应当保留未来可以再次修订,也是产权归属的主要证明
- .kmsz
- kmsz 由 kmscript 对 kms 文件发布时生成,是一个由 kms 文件编译后的代码文件
- kmsz 可以在W3C中配置为启动脚本的方式运行
- kmsz 可以被加锁,加锁的 kmsz 运行它则需要该锁对应的钥匙,未加锁的 kmsz 同样是编译后的代码,只是运行它不需要钥匙
- kmsz 不能够被编辑、不能被阅读也不能转换回 kms 文件
- 为了对抗反编译,kms 作者所命名的模块、步骤原始名称均被一套顺序编号代替
- kmsz 包括了 kms 源代码所使用到的所有资源文件,因此可能比 kms 要大的多
- kmsz 可以在脚本里调用运行以实现不同 kmsz 之间的转移,详情参见 kmsz 的跳转机制
- kmsz 是脚本市场主要文件,内置了发布时自增的标志,版本的管理均基于它
- .kmsz.json
- kmsz 发布时,为避免泄露作者原始意图,其作者命名的模块、步骤均被一套编号机制代替,因此在运行时任一步骤未成功作者也不清楚是哪个步骤出了问题,因此我们提供了2种方案以供参考:
- 模块和步骤均被改成顺序编号,例如一个 kms 原始代码有2个模块,其模块1有3个步骤,其模块2有2个步骤;
那么在编译后模块1的编号固定为1,它的3个步骤则顺序增长为 2/3/4;模块2的编号就是5,它的2个步骤就是 6/7
在客户运行时某个步骤非预期,可根据控制台输出的信息确定是哪个步骤非预期,根据该步骤编号再次编辑其对应的 kms 文件,即可顺序定位到目标步骤 - 在客户支持远程协助的情况下,作者可能希望在客户设备中运行自己的源代码以直观地排查问题,但目标设备是一个陌生环境并不能确保其安全,因此不推荐上传 kms 源文件。
为了完善更小损失的办法我们在 kms 编译成 kmsz 时将这个编号到原始名称的映射关系保留成一个文件,即 .kmsz.json 文件,作者可以将这个文件传到目标 kmsz 同级目录下运行时在控制台的输出就将是原始名称而不再是编号
注意:模块和步骤运行信息只在控制台可见,考虑到读写性能和存储空间并不保存在日志文件里
- .kmsz.json 不推荐提供给客户,尽管它只有原始名称信息但名称往往包含了重要的作者意图,因此建议只在远程协助的情况下上传到目标目录下,在调试结束后删除该文件
- .kmsi
- kmsi 是 kmscript 内置的无损视频压缩格式,该格式不作分块邻近模糊因此保留了原始的像素信息,能够被随时还原
- kmsi 是基于差异位的算法(P帧),因此同比保存成 png 文件要更节省空间。它每一帧只保留与前一帧的差异区域,在相同像素它只占用一个位(1 bit),即压缩前 8 个相同像素才 1 字节
- kmsi 是真彩色格式,不同于 mp4 的 yuv420p,kmsi 每一个像素均是 RGB888 格式,专用于 100% 的保存数字信号,例如来自显卡的3D图像数据
- kmsi 文件比有损压缩格式如 h264 编码的 mp4 要大,800*600 10帧 市区公路 10分钟约 100M,取决于每一帧的变化有多大
- kmsi 默认不做跳跃帧差异(H264)也不做行间差异(PNG),因此是单向流式免缓冲数据,能作为网络流媒体在低功耗、低容量设备非常快地软件解码
- kmsi 能够按指示产生关键帧(I帧),因此允许可丢失式传输(例如UDP)和跳跃重放
- 可以指示为自动,在场景变化时产生关键帧(如果是一个人在固定位置演讲,那么永远不产生关键帧)
- 可以指示为固定间隔,在特定间隔强制产生关键帧
- kmsi 能够在 kmscript 内创建,能在 kmscript 的"文件管理"里直接播放,也能当作图像源重放
- .kmsa
- kmsi 是 kmscript 内置的无损音频压缩格式,算法结构如同 .kmsi
- .kmr
- kmr 是 kmscript 内置的键盘/鼠标/触摸的录像文件,可以在 kms 以“运行KMR”的方式重放
- kmr 是一个纯文本可编辑格式,它的每一行为一次指令,语法为:时间 命令 参数1 [参数2],其中数值均为16进制,例如以下指令为161毫秒后移动鼠标到178,195位置
- kmr 重放与纯 kms 实现的按键/鼠标/触摸脚本方式上有2点不同:
- kmr 以单独线程进行,因此在 kms 同时可以进行其它判断
- kms 调用“运行KMR”后,单独 kmr 线程在重放之前录制的按键脚本而 kms 的下一步仍可以进行其它判断,例如电量是否充足、当前场景非预期等等
- kms 调用“运行KMR”后,也可“等待KMR”直到它完成才进行下一步,例如用于特定固定不会预期的场景
- kmr 精确还原时间,如果单次按键花了更多时间则下次休眠时间会自动缩短以保证整个间隔和完成时间与录像时一致
- 而 kms 是按下特定键后休眠固定时间,无论按键花了多长时间,因此它提供了稳定流程但不提供稳定时间
- kmr 对指针(鼠标/触摸)的坐标可以按指定窗口进行偏移,也可以在运行KMR时再次偏移
- kmr 能够在 kmscript 内“录制KMR”菜单项创建,能在 kmscript 的“运行KMR”里重放
- .kmsf
- kmsf 是用于 kmscript 的字库信息文件,它用于需要该字体信息
绘制和识别的模块,例如AI模块的文字识别 - kmsf 能够在 kmscript 内“KMSF构建”菜单项以自定字体文件创建特定大小、样式的特征文件
- 也能够在本网站创建额外支持从图像分离出特定颜色定义为其关联文字(例如车牌号码取样后转文字)
- .kmss
- kmss 是用于 kmscript 的声音识别信息文件,它用于识别特定声音的类别或进行文本的翻译
- kmsf 能够在本网站创建,可以从声音文件中分离出特定音波信息定义成为识别素材
- .kmsd2
- kmsd2 是用于 kmscript 的 2D 结构定义文件,它用于鉴定特定的2D结构
- kmsd2 包括了分解后的特征,包括旋转、挤压、遮盖等等兼容信息,能够在图像中找出对应的不精确目标
- kmsd2 尚未有公众版本,其2D 结构部分功能(D2模型组)已在查找颜色等方法开放
- .kmsd3
- kmsd3 是用于 kmscript 的 3D 结构定义文件,它用于鉴定特定的3D结构
- kmsd3 包括了分解后的特征,与2D不同它针对的是结构不变的情况下包括旋转、遮盖等等兼容信息,能够在图像中找出对应的不精确目标
- kmsd2 支持平面挤压,但 kmsd3 是绝对尺寸,例如一个人的脸可能面向任何方向,但眼睛和嘴巴的距离是不变的,因此常用于推算目标旋转特定角度后的其它结构预期位置。
- 几乎所有的 3D 算法都需要此 kmsd3 文件(例如目标跟踪它都需要先匹配这个结构),它虽然是结构文件,但可以用在演算需要完整结构的识别功能上,例如读唇需要完整的嘴形,在侧面可能因为缺失一半的信息无法完成,这时 kmsd3 能够模拟出其预期信息,例如通过其已定义为耳朵的结构位置和方向来推算补齐相关数据。

- kmsd3 尚未有公众版本
- .kmsd4
- kmsd4 是在 kmsd3 基础上增加了时间轴的结构文件,它通常用于演算未来的变化。例如3D目标其特定节点随着时间而变化,则4D结构能够同比预期。
- kmsd4 也能够预先定位成为时间必然结构,在特定时间内对内置的 kmsd3 指针进行滑动
- kmsd4 仍在计划中尚未能够商用
骨骼配置:ui,值:li_tag