unity 字体压缩
大家好! (Hello everybody!)
My name is Rich Geldreich, and I’m a game developer, graphics programmer, and data compression specialist. I’ve been in the trenches working on the creation, optimization, or enhancement of several major game engines at companies like Ensemble Studios (Microsoft) and Valve over the last 20 years.
我的名字叫Rich Geldreich,我是游戏开发人员,图形程序员和 数据压缩 专家。 在过去的20年中,我一直在研究,优化或增强Ensemble Studios(Microsoft)和Valve等公司的几种主要游戏引擎。
Also over the years, usually late at night in between shipping games, I’ve worked on several closed and open source compression libraries originally intended for game developers, such as crunch, LZHAM, miniz, and jpeg-compressor. I also wrote picojpeg, a JPEG image decoder optimized for extremely low memory 8-bit embedded CPU’s. Outside of game products, these libraries have been utilized in a surprising variety of interesting applications, such as on picosatellites, for WebGL content delivery, for GPU accelerated UHD video decoding, and as educational material.
同样,多年来,通常是在发布游戏之间的深夜,我研究了几个最初面向游戏开发人员的封闭和开源压缩库,例如 crunch , LZHAM , miniz 和 jpeg-compressor 。 我还写了 picojpeg ,这是一种针对极低内存的8位嵌入式CPU进行了优化的JPEG图像解码器。 在游戏产品之外,这些库已用于各种令人惊讶的有趣应用程序中,例如在 微卫星上 ,用于 WebGL内容交付 ,用于GPU加速的 UHD视频 解码以及用作教学资料。
那么什么是压缩,为什么如此重要? (So what’s compression, and why is it important?)
According to world expert Matt Mahoney, data compression is “the art of reducing the number of bits needed to store or transmit data”. At a different level, compression is an essential, strategically enabling technology that can save time, reduce storage space, reduce memory utilization, or reduce bandwidth. Compression can make possible things that were previously impractical or uneconomic due to available hardware, storage, or transmission resources.
根据世界专家 Matt Mahoney的 说法 ,数据压缩是“减少存储或传输数据所需位数的艺术”。 在不同的级别上,压缩是一项至关重要的,具有战略意义的技术,可以节省时间,减少存储空间,降低内存利用率或减少带宽。 由于可用的硬件,存储或传输资源,压缩可能使以前不切实际或不经济的事情成为可能。
There are two major classes of compression systems, such as specialized lossy systems (think JPEG or MP3), and generic lossless systems (think .ZIP). Within these two categories are an almost endless variety of applications, approaches and specialized algorithms. Some of the most essential and valuable compression systems become worldwide standards and are implemented directly into the hardware using specialized integrated circuits.
压缩系统有两大类,例如专用有损系统(如JPEG或MP3)和通用无损系统(如.ZIP)。 在这两种类别中,几乎是无穷无尽的应用程序,方法和专用算法。 一些最重要和最有价值的压缩系统已成为全球标准,并使用专用集成电路直接实现到硬件中。
The Data Compression Team’s domain is basically anything related to compression. Internally, Unity already utilizes a number of custom and off the shelf compression systems for game assets like sounds, textures, animations, meshes, and asset bundles. Needless to say, without these systems Unity as a product would require an impractical amount of memory on many platforms, especially on mobile devices.
数据压缩团队的领域基本上与压缩有关。 在内部,Unity已经利用了许多自定义和现成的压缩系统来处理游戏资产,例如声音,纹理,动画,网格和资产捆绑。 不用说,没有这些系统,Unity作为一种产品在许多平台上,特别是在移动设备上,将需要不切实际的内存量。
One of our team’s background responsibilities is to tune, optimize, and maintain our existing set of compression systems. In the near term, we’re focusing on writing a new offline and real-time generic binary data delta compressor for use by several teams within Unity. Our team’s most significant long term goal is to examine Unity’s entire software stack and determine how to break down artificial software barriers that are preventing us from getting the best possible compression solutions.
我们团队的背景职责之一是调整,优化和维护我们现有的压缩系统集。 在短期内,我们将重点放在编写新的脱机和实时通用二进制数据增量压缩器上,以供Unity中的多个团队使用。 我们团队最重要的长期目标是检查Unity的整个软件堆栈,并确定如何打破阻碍我们获得最佳压缩解决方案的人工软件障碍。
到目前为止的进展 (Progress So Far)
Since coming to Unity, Alexander Suvorov and I have dived in and started deeply studying the lossless compression field’s current state. Lossless compression technology allows Unity’s downloadable asset bundle files to require significantly less space and time to download. Our goal was to identify not only where the state of the art is, but to predict where the field is going. We’ve also talked about our long term view of the field of GPU texture compression.
自从来到Unity之后,我和亚历山大·苏沃洛夫(Alexander Suvorov)潜入水中,开始深入研究无损压缩领域的现状。 无损压缩技术使Unity的可下载资产捆绑包文件所需的下载空间和时间大大减少。 我们的目标不仅是确定 技术发展水平 ,而且要 预测该领域的发展方向 。 我们还讨论了我们对 GPU纹理压缩 领域的长期看法 。
On the practical front, we’ve developed and started analyzing our first mobile-friendly binary delta compression (or file “patching”) library. This standalone library can be used whenever Unity needs to efficiently transmit a set of “new” data given a (hopefully related) set of “old” data present at both endpoints. Finally, we’ve started testing a Javascript version of the LZHAM lossless data compressor for web applications.
在实践方面,我们已经开发并开始分析我们的第一个 移动友好的二进制增量压缩 (或文件“修补”)库。 只要Unity需要在两个端点上都存在(希望相关的)一组“旧”数据的情况下有效地传输一组“新”数据,就可以使用此独立库。 最后,我们已经开始测试用于Web应用程序的LZHAM无损数据压缩器的Javascript版本。
During our lossless survey, we found at least one major feature we can add to current lossless compressors that would enable us to readily build new types of custom texture, geometry, and animation compressors. We’re also considering completely redefining how data is fed into a lossless compressor. After some great discussions with Unity developers on the Cloud Build and Services teams, we’ve begun researching and planning what it would take to modify our current offline mobile delta compressor to work in real-time.
在无损调查中,我们发现至少 可以添加到当前无损压缩器中的 一项主要功能 ,使我们能够轻松构建新型的自定义纹理,几何和动画压缩器。 我们还在 考虑完全重新定义 如何将数据馈入无损压缩器。 在与Cloud Build and Services团队的Unity开发人员进行了精彩的讨论之后,我们已经开始研究和计划修改当前的脱机移动增量压缩机以使其实时工作所需的内容。
Finally, while doing this work, we realized the key long-term problem the Compression Team should be working on: How do we build a data compression engine that Unity can talk to better? Our long term goal is to build several new lossy and lossless compression engines optimized specifically for Unity’s data.
最后,在完成这项工作的同时,我们意识到了Compression Team应该解决的关键长期问题:我们如何构建一个 Unity可以更好地 与之 对话 的 数据压缩引擎? 我们的长期目标是建立几个专门针对Unity数据优化的新的有损和无损压缩引擎。
These are very exciting times at Unity, and I can’t wait to see what the future holds.
在Unity,这是非常激动人心的时刻,我迫不及待地想看到未来。
翻译自: https://blogs.unity3d.com/2015/12/16/announcing-unitys-new-data-compression-team/
unity 字体压缩