133 research outputs found

    Encoding of probability distributions for Asymmetric Numeral Systems

    Full text link
    Many data compressors regularly encode probability distributions for entropy coding - requiring minimal description length type of optimizations. Canonical prefix/Huffman coding usually just writes lengths of bit sequences, this way approximating probabilities with powers-of-2. Operating on more accurate probabilities usually allows for better compression ratios, and is possible e.g. using arithmetic coding and Asymmetric Numeral Systems family. Especially the multiplication-free tabled variant of the latter (tANS) builds automaton often replacing Huffman coding due to better compression at similar computational cost - e.g. in popular Facebook Zstandard and Apple LZFSE compressors. There is discussed encoding of probability distributions for such applications, especially using Pyramid Vector Quantizer(PVQ)-based approach with deformation, also tuned symbol spread for tANS.Comment: 5 pages, 4 figure

    Pseudorandom Bit Generation with Asymmetric Numeral Systems

    Get PDF
    The generation of pseudorandom binary sequences is of a great importance in numerous applications stretching from simulation and gambling to cryptography. Pseudorandom bit generators (PRBGs) can be split into two classes depending on their claimed security. The first includes PRBGs that are provably secure (such as the Blum-Blum-Shub one). Security of the second class rests on heuristic arguments. Sadly, PRBG from the first class are inherently inefficient and some PRBG are insecure against quantum attacks. While, their siblings from the second class are very efficient, but security relies on their resistance against known cryptographic attacks. This work presents a construction of PRBG from the asymmetric numeral system (ANS) compression algorithm. We define a family of PRBGs for 2R2^R ANS states and prove that it is indistinguishable from a truly random one for a big enough RR. To make our construction efficient, we investigate PRBG built for smaller R=7,8,9R=7,8,9 and show how to remove local correlations from output stream. We permute output bits using rotation and Keccak transformations and show that permuted bits pass all NIST tests. Our PRBG design is provably secure (for a large enough RR) and heuristically secure (for a smaller RR). Besides, we claim that our PRBG is secure against quantum adversaries

    Compressió d'imatges de satèl·lit utilitzant asymmetric numeral systems

    Get PDF
    En aquest article es descriu un sistema de codificació d'imatges utilitzant Asymmetric Numeral System(ANS). Primer es farà una petita introducció on s'explicaran conceptes bàsics sobre els ANS i es definirà l'objectiu del projecte. A continuació s'explicarà com funciona la codificació i la descodificació amb el suport d'un petit exemple. Un cop explicats els mètodes principals s'introduirà el Streaming range ANS que serveix per poder codificar valors molt grans sense perdre informació. Tot seguit es mostrarà com es distribueixen les dades al fitxer codificat que es genera i s'explicarà una mica les característiques de les dades que s'han de guardar. També es parlarà sobre alguns dels problemes trobats a l'hora de programar rANS en Java. A continuació es mostraran les diferents experimentacions amb el suport d'alguns gràfics. Aquestes experimentacions s'han fet un cop el software ha estat acabat i mostren comparacions amb altres implementacions i codificadors per entropia. A la part final s'explicarà la metodologia utilitzada durant el desenvolupament, un petit apartat amb els agraïments i una conclusió final del projecte.En este artículo se describe un sistema de codificación de imágenes utilizando Asymmetric Numeral System (ANS). primero se hará una pequeña introducción donde se explicarán conceptos básicos sobre los ANS y se definiera el objetivo del proyecto. A continuación se explicará cómo funciona la codificación y la decodificación con el apoyo de un pequeño ejemplo. Una vez explicados los métodos principales introducirá el Streaming range ANS que sirve para poder codificar valores muy grandes sin perder información. seguidamente se mostrará cómo se distribuyen los datos en el fichero codificado que se genera y se explicara un poco las características de las datos que se deben guardar. También se hablará sobre algunos los problemas encontrados a la hora de programar Rans en Java. A continuacion se mostrarán las diferentes experimentaciones con el apoyo de algunos gráficos. Estas experimentaciones han hecho una vez el software ha sido terminado y muestran comparaciones con otras implementaciones y codificadores por entropía. En la parte final explicara la metodología utilizada durante el desarrollo, un pequeño apartado con los agradecimientos y una conclusión final del proyecto.This article describes a coding system images using the Asymmetric Numeral System (ANS). First there will be a short introduction where basic concepts will be explained on ANS and the purpose of the project will be defined. Then will explain how encoding and decoding work with the support a small example. Once the main methods have been explained the streaming ANS Streaming range will be introduced encode very large values ​​without losing information. Next will show how the data is distributed in the encoded file which is generated and the characteristics of the data to be saved. Some will also be discussed of the problems encountered when programming rANS in Java. Below are the different experiments with support for some graphics. These experiments have been performed once the software has been finished and show comparisons with other implementations and encoders by entropy. In the final part the methodology used during the development will be explained, a small section with thanks and a final conclusion of the project
    corecore