用测试环压缩osu重放lzma

wtc的Python项目详细描述


世贸中心

wtc是lzma压缩格式的扩展,专门为osu而设计!STD在存储之前会回放更小的内容。它减少了原始.osr格式中某些数据类型的大小,实现了约40%的有损压缩比。

PartOriginal lzma datatypeWTC datatype
w (ms since preivous frame)Long (8 bytes)24bit Integer (3 bytes)
x (x-cord)Float (4 bytes)Short (2 bytes)
y (y-cord)Float (4 bytes)Short (2 bytes)
z (bit combination of keypresses)Integer (4 bytes)Char (1 byte)

这会将原来的20字节帧压缩为8字节帧,但并非没有损失。W、X和Y的精度会降低,但Z的精度不会降低,因为按键位组合对于OSU永远不会超过4位!标准。虽然它可能更大的其他游戏模式,如7K躁狂症,这个压缩机是明确的OSU!标准。

WTC压缩平均达到40%?5压缩(不是正式计算的数字-只是根据经验)。

安装:

$ pip install git+git://github.com/osu-anticheat/wtc-lzma-compressor

用法:

importwtc# to compress an lzma bytestringwtc_bytestring=wtc.compress(lzma_bytestring)# to decompress a wtc bytestring into an lzma bytestringlzma_bytestring=wtc.decompress(wtc_bytestring)# compress and decompress are (almost) inverse operations, so lzma_bytestring ≈ wtc.decompress(wtc.compress(lzma_bytestring)).# some precision is lost, so the strings are not identical.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaSpring重定向请求处理程序   SwingJava:拆分字符串并将其放入文本区域的   Java:标记“”上出现语法错误,此标记后面应为表达式   web服务Java RestService从日志文件写入和读取数据   java如何将ArrayList<String>转换为char数组,然后向后打印每个单词?   java SimpleDataFormat解析返回年终日期   加密Java aes解密bytebuffer,包括填充为空字节   java有没有办法从特定的if语句调用变量?   java从更新返回到渲染   spring GRPC Java登录测试   java为什么下面的代码不工作(StringBuffer.toString!=null)   java是一种可行的模式吗?   使用Spring集成测试的JavaOSGi片段   java jCommander为未知和未使用的值引发异常?   在imageView的editText中输入的java图像URL