常用编码方式有哪些

常用编码方式分为两类:一、音视频编码;二、字符集编码。音视频编码主要有:1、非压缩编码(PCM);2、压缩编码。字符集编码有:1、ASCII码;2、GB2312;3、GBK等。非压缩编码(PCM)是指,一种将模拟语音信号变换为数字信号的编码方式。

常用编码方式有哪些-Worktile社区

一、音视频编码

音频数字化主要有压缩与非压缩两种方式。较早出现的数字音频播放机,如CD唱机和DAT录音机,均采用线性PCM编码来存储音乐信号,为非压缩方式。在高质量要求的音频工作站和数字录像机(如DVCPRO)上,也采用非压缩的格式。我们常见的MPEG、Dolby Digital、DTS等则为压缩方式。压缩分为有损压缩和无损压缩。有损压缩的目的是提高压缩率,降低占用系统资源。可以根据实际需要选用不同的采样速率、样本分辨率(精度)和数据率。

1、非压缩编码(PCM)

PCM(脉冲编码调制)是一种将模拟语音信号变换为数字信号的编码方式。主要经过3个过程:抽样、量化和编码。抽样过程将连续时间模拟信号变为离散时间、连续幅度的抽样信号,量化过程将抽样信号变为离散时间、离散幅度的数字信号,编码过程将量化后的信号编码成为一个二进制码组输出。

2、压缩编码

PCM虽然为无损压缩,但由典型的音频信号表示的信号特性没有达到最佳,也没有很好的适应人耳听觉系统的特定要求。PCM的数据量过高,从而造成存储和传输方面的障碍,因此必须使用相应的技术降低数字信号源的数据率,又尽可能不对节目造成损伤,这就是压缩技术。

二、字符集编码

1、ASCII码

ASCII码是7位编码,编码范围是0x00-0x7F。ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。其中0x00-0x1F和0x7F共33个控制字符。只支持ASCII码的系统会忽略每个字节的最高位,只认为低7位是有效位。HZ字符编码就是早期为了在只支持7位ASCII系统中传输中文而设计的编码。早期很多邮件系统也只支持ASCII编码,为了传输中文邮件必须使用BASE64或者其他编码方式。

2、GB2312

它的全称是《信息交换用汉字编码字符集基本集》,它是双字节编码,总的编码范围是A1-F7,其中从A1-A9是符号区,总共包含682个符号,从B0-F7是汉字区,包含6763个汉字。

3、GBK

全称叫《汉字内码扩展规范》,是国家技术监督局为windows95所制定的新的汉字内码规范,它的出现是为了扩展GB2312,加入更多的汉字,它的编码范围是8140~FEFE(去掉XX7F)总共有23940个码位,它能表示21003个汉字,它的编码是和GB2312兼容的,也就是说用GB2312编码的汉字可以用GBK来解码,并且不会有乱码。

4、GB18030

全称是《信息交换用汉字编码字符集》,是我国的强制标准,它可能是单字节、双字节或者四字节编码,它的编码与GB2312编码兼容,这个虽然是国家标准,但是实际应用系统中使用的并不广泛。

5、UTF-16

说到UTF必须要提到Unicode(UniversalCode统一码),ISO试图想创建一个全新的超语言字典,世界上所有的语言都可以通过这本字典来相互翻译。可想而知这个字典是多么的复杂,关于Unicode的详细规范可以参考相应文档。Unicode是Java和XML的基础,下面详细介绍Unicode在计算机中的存储形式。

UTF-16具体定义了Unicode字符在计算机中存取方法。UTF-16用两个字节来表示Unicode转化格式,这个是定长的表示方法,不论什么字符都可以用两个字节表示,两个字节是16个bit,所以叫UTF-16。UTF-16表示字符非常方便,每两个字节表示一个字符,这个在字符串操作时就大大简化了操作,这也是Java以UTF-16作为内存的字符存储格式的一个很重要的原因。

6、ISO-8859-1

128个字符显然是不够用的,于是ISO组织在ASCII码基础上又制定了一些列标准用来扩展ASCII编码,它们是ISO-8859-1~ISO-8859-15,其中ISO-8859-1涵盖了大多数西欧语言字符,所有应用的最广泛。ISO-8859-1仍然是单字节编码,它总共能表示256个字符。

7、UTF-8

UTF-16统一采用两个字节表示一个字符,虽然在表示上非常简单方便,但是也有其缺点,有很大一部分字符用一个字节就可以表示的现在要两个字节表示,存储空间放大了一倍,在现在的网络带宽还非常有限的今天,这样会增大网络传输的流量,而且也没必要。而UTF-8采用了一种变长技术,每个编码区域有不同的字码长度。不同类型的字符可以是由1~6个字节组成。UTF-8有以下编码规则:

  • 如果一个字节,最高位(第8位)为0,表示这是一个ASCII字符(00-7F)。可见,所有ASCII编码已经是UTF-8了。
  • 如果一个字节,以11开头,连续的1的个数暗示这个字符的字节数,例如:110xxxxx代表它是双字节UTF-8字符的首字节。
  • 如果一个字节,以10开始,表示它不是首字节,需要向前查找才能得到当前字符的首字节。

延伸阅读

常见ASCII码的大小规则

  • 数字比字母要小。如 “7”<“F”;
  • 数字0比数字9要小,并按0到9顺序递增。如 “3”<“8” ;
  • 字母A比字母Z要小,并按A到Z顺序递增。如“A”<“Z” ;
  • 同个字母的大写字母比小写字母要小32。如“A”<“a” 。

文章标题:常用编码方式有哪些,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/34496

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年1月5日 下午9:45
下一篇 2023年1月5日 下午10:12

相关推荐

  • 为什么C++类之后要加分号,而java和C#不加,是仅仅为了兼容C的结构体吗

    原因和编译原理有关,在做词法分析时有了分号方便处理,分析程序遇到分号就代表一行中一段结束,和写文章用分号句号一样。早期汇编语言不用分号,因为汇编一行代码相对简单。python不用分号,但排版严格不如c类语言灵活,写习惯了都一样。 C++类之后要加分号和编译原理有关,在做词法分析时有了分号方便处理,分…

    2023年2月23日
    9400
  • confluence怎么创建目录

    confluence创建目录的步骤:1、指定要作为目录的标题格式;2、编辑文档;3、将该节作为目录;4、添加目录;5、选择目录的设置方式;6、插入目录。指定要作为目录的标题格式是指,设置标题级别,比如一级标题,二级标题。 一、confluence创建目录的步骤 二、Confluence 页面的编辑 …

    2023年2月3日
    1.6K00
  • 前端、后端、全栈都做什么

    前端工程师主要负责 Web 应用的用户界面设计和开发;后端工程师负责 Web 应用的服务器端开发;全栈工程师是同时具备前端和后端技术能力的工程师,他们的工作内容包括:设计和开发整个 Web 应用;数据库管理;与其他工程师协作。 前端 前端工程师主要负责 Web 应用的用户界面设计和开发。他们的工作内…

    2023年5月29日
    400
  • 排序算法有多少种

    人们常用的排序方法主要有10种,包括:1、冒泡排序;2、选择排序;3、插入排序;4、归并排序;5、快速排序;6、堆排序;7、希尔排序;8、计数排序;9、桶排序;10、基数排序。 冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。…

    2022年10月17日
    11700
  • 智能客服的优缺点有哪些

    智能客服的优点有:1、同时接待海量用户咨询;2、代替人工客服夜班接待;3、自主营销套电,与客户对话并引导留下相关信息;4、主动咨询引导用户开口;5、控制人工客服风险,降低成本。智能客服的缺点有:1、费用较高;2、智能程度达标的产品较少。 智能客服的优点是什么? 客服系统作为帮助企业进行智能化数据分析…

    2022年10月13日
    1.3K00
  • 信息系统数据处理方式有哪些

    信息系统数据处理方式有:1、墓于粗糙集理论;2、基于概念树的数据浓缩方法;3、息论思想和普化知识发现;4、基于统计分析的属性选取方法;5、遗传算法。粗糙集理论是一种研究不精确、不确定性知识的数学工具,利用其对数据进行处理十分有效且精简。 1、墓于粗糙集理论 粗糙集理论是一种研究不精确、不确定性知识的…

    2023年1月10日
    16600
  • linux编排工具有哪些

    linux编排工具有:1、docker-compose;2、Kubernetes;3、OpenShift;4、Docker Swarm;5、Docker machine;6、Mesos。docker-compose更适合单机编排,只能面向一个docker主机进行编排。 1、docker-compos…

    2023年1月5日
    4400
  • 哪些SaaS在线办公工具可以提升工作效率

    一些SaaS在线办公工具可以提升工作效率的有:1、Worktile;2、PingCode;3、Asana;4、Wrike;5、Jira。Worktile 是国内的一款老牌通用项目管理系统,具有非常高的功能成熟度,是一款非常适合中小企业的项目管理系统。 一、Worktile Worktile 是国内的…

    2023年4月29日
    1000
  • Java中线程同步锁和互斥锁有啥区别

    区别是:互斥是通过竞争对资源的独占使用,彼此没有关系,也没有固定的执行顺序。同步是线程通过一定的逻辑顺序占有资源,有一定的合作关系去完成任务。同步锁是为了保证每个线程都能正常执行原子不可更改操作。 同步锁 同步锁是为了保证每个线程都能正常执行原子不可更改操作,同步监听对象/同步锁/同步监听器/互斥锁…

    2023年2月13日
    8500
  • 动态语言和静态语言的本质区别是什么

    区别是1、运行原理区别;2、运作区别;3、优势区别。静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言求在使用变量之前必须声明数据类型;动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明。 1、运行原理区别 静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言…

    2023年2月14日
    6600

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部