基本算术编码

article/2025/9/16 3:07:55

1.基本思想
算术编码,就是用一个数编码一串字符串。它的思想是这样的:对一个需要编码的字符串,给出一个初始区间[0, 1),这个区间被分成n份,n是这串字符串中不同字符的个数,每一份占区间长度的比例与相应字符出现次数占整个字符串长度的比例一致,这样,任何一个字符就与区间中的一个子区间对应起来,通过字符串的第一个字符得到对应的区间,然后把得到的第一个区间分成n份,分的方式与分[0, 1)的方式相同,通过第二个字符得到第一个区间中的一个子区间,不断迭代下去,直到字符被用尽,用由最后一个字符得到的区间中的任何一个数字就能代表整个字符串。

2.示例
对字符串aba进行算术编码。因为其中,有两个不同字符,a有两个,b有一个,所以得到如下的初始区间划分:
这里写图片描述
其中,0.66是2/3的近似值,后面所有的2/3均用0.66代替。
通过第一个字符a得到下面的区间:
这里写图片描述
对得到的区间进行划分:
这里写图片描述
通过第二个字符b得到下面的区间:
这里写图片描述
对得到的区间进行划分:
这里写图片描述
通过最后一个字符a得到下面的区间:
这里写图片描述
从区间[0.4356, 0.583704)随便找一个数就能表示字符串aba,比如0.4357。
获得目标区间完整示意图如下:
这里写图片描述

3.伪代码
这里写图片描述

4.完整代码
本文描述的算术编码的java实现代码
放在https://github.com/l294265421/algorithm-general
的arithmeticcoding包下,除了实现了编码,还实现了找到目标区间中的最短二进制数和解码。

5.参考文献
《Fundamentals of Multimedia》Second Edition,Ze-Nian Li ,Mark S. Drew, Jiangchuan Liu.


http://chatgpt.dhexx.cn/article/wqHTev4r.shtml

相关文章

算术编码的基本概念

二、算术编码的基本概念 算术编码属于熵编码的一种重要的类型,其作用同变长编码等熵编码方法类似,用于压缩输入数据中的统计冗余,并且使用算术编码的压缩同样是无损压缩。 在本系列第1篇中讨论了典型的变长编码方法——哈夫曼编码。包括哈夫…

Otsu大津算法公式推导及python实现

目录 前言 一、类间平方差是什么? 二、公式推导及实现 1.求类间平方差 2.opencv-python编程实现 2.1 引入图像并灰度化 2.2 查看灰度值的分布情况 2.3 求全局平均阈值 2.4 求最大类间方差 3.算法的验证 总结 前言 OTSU(大津算法)是…

OTSU算法原理

OTSU算法原理及实现: 最大类间方差是由日本学者大津(Nobuyuki Otsu)于1979年提出,是一种自适应的阈值确定方法。算法假设图像像素能够根据阈值,被分成背景[background]和目标[objects]两部分。然后,计算该最佳阈值来区分这两类像素…

大津阈值分割算法(OTSU处理图像)

1.算法原理简述 对于图像I(x,y),前景(即目标)和背景的分割阈值记作T,属于前景的像素点数占整幅图像的比例记为ω0,其平均灰度μ0;背景像素点数占整幅图像的比例为ω1,其平均灰度为μ1。图像的总平均灰度记为μ&#xf…

[图像处理]14.分割算法比较 OTSU算法+自适应阈值算法+分水岭

参考文献: OTSU阈值分割孔洞填充海陆分离_SwordKii的博客-CSDN博客 drawContours函数_普通网友的博客-CSDN博客_drawcontours R329-opencv阈值分割算法——自适应阈值_Third Impact的博客-CSDN博客_opencv自适应阈值分割 分水岭算法的python实现及解析_进不去的…

OTSU算法 (大津算法)理解代码

OTSU算法:对图像进行二值化的算法 介绍 OTSU算法是一种自适应的阈值确定的方法,又称大津阈值分割法,是最小二乘法意义下的最优分割。 它是按图像的灰度特性,将图像分成背景和前景两部分。因方差是灰度分布均匀性的一种度量,背景…

Pr-快速上手-基本操作-教程

视频链接: Pr教程 视频设计到的知识点: 视频的剪辑bgm的管理添加字幕及弹幕的添加鬼畜视频的制作发布教程

Pr常用操作技巧

操作技巧持续更新中 1.premiere如何裁剪视频尺寸 视频尺寸怎么修改 1.将premiere左下角的视频素材直接向右拖动到编辑区中 2.鼠标左键单击视频,然后选择上方的【效果】 3.这时,页面左侧将弹出效果的菜单栏,依次选择效果→视频效果→变换→裁剪 4.鼠标左键按住【裁剪】不放,直接…

Premiere: 基本操作

1、首先进入编辑模式,使得视频能加效果 2、这时候能找到视频的效果添加,这里有视频的水平翻转,高斯模糊等,需要什么效果直接,把该效果抓到视频上就可以。

PR的入门基础教程

提示:这里只记述作者学习PR入门基础教程视频后的总结 文章目录 常用视频概念第1天学习总结第2天学习总结第3天学习总结 常用视频概念 第1天学习总结 第2天学习总结 第3天学习总结

Adobe Premiere Pro快速入门教程

简介: 适用于纯新手零基础,看完本教程即可完成常用视频编辑技巧。 采用Adobe Premiere Pro 2020版本 windows10操作系统 一、制作 照片音频字幕的视频 目标:把三张图片和一个音乐做成带字幕的视频。(素材请自行准备&#xff0…

使用pr的8大技巧

许多小伙伴是通过pr这个软件进行素材剪辑的,当我们面对许多素材需要剪辑的时候,往往被这些素材弄得头昏脑涨,剪辑拼接的费时费力,最后出来的成品效果也不太好,下面就告诉大家一些pr使用的技巧,来提升我们的…

Premiere 零基础快速上手教程

关注并星标“高级农民工” 回复“视频”可获取视频剪辑软件和教程 在前几天的文章中,我分享了几款主流视频剪辑软件: 最主流的视频剪辑软件 简单来说就是,手机端用「剪映」这一款 app 就够,当你熟练到发现手机剪视频不方便&#x…

pr基础学习笔记

pr基础学习笔记(正题) 推荐几个小技巧 1.快速插入 2.快速移动小片段 2. 另:移动Ctrl是多轨移动移动CtrlAlt是单轨移动3.如何去除两个片段之间的空档? 4.两种选择工具的比较 附: pr快捷键 应用程序 选择工具…

pr基础入门

一、快速认识 PR 主界面并导入素材 修改 名称、位置,其他不用变,点击确定 进入界面如下: 认识、添加必要 窗口 导入素材方法 1.直接将文件拖入pr中 2.导入媒体以开始,部分右键创建 素材箱 进入素材箱,右键选择导入&a…

PR(基础剪辑)

一.剪辑步骤: 1.先粗剪后精剪: 粗剪: 精剪: 二. 常用键: 1. i:设置素材的起点 o:设置素材的终点 (在预览素材时) 2.快速浏览素材: l:按一次常速…

Pr 入门系列之十:基本图形

在 Pr 中,文字(包括字幕)以及形状等被归类为图形 Graphics。 一个图形剪辑里可包含多个文本图层、形状图层以及其它媒体文件等图形元素。 提示: 1、图形剪辑不会出现在项目面板中,除非升级为源图。 2、与 Ps 一样&…

PR(Adobe Premiere Pro)软件基础知识

一、基础参数设置 时长 时长为视频时间的长度。基本单位为秒。但是在PR软件中,有更为精准的时间单位计算为帧,也就是把1秒分为若干份,一份就是一帧,一帧也就可以理解为一张图片。所以在PR软件中视频显示的时间长度表述为 时&…

Premiere基础操作

一:设置缓存 二:ctrI导入素材 三:导入图像序列 四:打开吸附。 打开吸附后素材会对齐。 五:按~键可以全屏窗口。 六:向前选择轨道工具。 在时间线上点击,向前选中时间线上素材。向后选择轨道工具…

pr剪视频基本操作

1 打开pr 2 导入设置 1)双击左下角“项目”窗口,导入准备好的视频 2)建立一个序列 点击文件 -> 新建 -> 序列 设置自定义序列 3 修建编辑 1)双击视频素材,在预览框(源)中可以点击播放或…