Python 源程序编码注意事项

Python 源程序编码注意事项,第1张

默认情况下,Python 源文件是 UTF-8 编码。在此编码下,全世界大多数语言的字符可以同时用在字符串、标识符和注释中 — 尽管 Python 标准库仅使用 ASCII 字符作为标识符,这只是任何可移植代码应该遵守的约定。如果要正确的显示所有的字符,你的编辑器必须能识别出文件是 UTF-8 编码,并且它使用的字体能支持文件中所有的字符。

你也可以为源文件制定不同的字符编码。为此,在 #! 行(首行)后插入至少一行特殊的注释行来定义源文件的编码:

# -- coding: encoding --

通过此声明,源文件中所有的东西都会被当作用 encoding 指代的 UTF-8 编码对待。在 Python 库参考手册 codecs 一节中你可以找到一张可用的编码列表。

例如,如果你的编辑器不支持 UTF-8 编码的文件,但支持像 Windows-1252 的其他一些编码,你可以定义:

# -- coding: cp-1252 --

这样就可以在源文件中使用 Windows-1252 字符集中的所有字符了。这个特殊的编码注释必须在文件中的 第一或第二 行定义。

VBR(Variable Bit Rate)动态比特率。也就是非固定的比特率,音频编码软件在编码时根据音频数据的复杂程度即时确定使用什么比特率,这是以质量为前提兼顾文件大小的编码方式。

对于视频,VBR与固定码率模式不同,其码率可以随着图像的复杂程度的不同而变化,因此其编码效率比较高,快速运动画面的马赛克就很少。编码软件在压缩时,根据视频数据,即时确定使用什么比特率,这样既保证了质量,又兼顾了文件大小。

使用这种方式时,编码程序可以选择从最差音视频质量(一般此时压缩比最高)到最好音视频质量(一般此时压缩比最低)之间的各种视频质量。在视频文件编码的时候,编码程序会尝试保持所选定的整个文件的品质,对视频文件的不同部分选择不同的比特率来编码。

原理:

VBR是一种可变编码速率的MP3压缩方式,其原理就是将一首歌的复杂部分用高比特率编码,简单部分用低比特率编码,通过这种动态调整编码速率的方式,进一步得到音质和文件体积之间的平衡。它的主要优点是可以让整首歌都能大致达到我们的音质要求,缺点是编码时无法估计压缩出来的文件体积大小。

现在推出的MP3机大部分都支持VBR了,不过有些机器虽然能够播放VBR格式的歌曲,但是不能够正确显示播放时间(特别是在汽车音响中),目前许多高品质MP3都是采用VBR编码的,因此在选购的时候要注意MP3随身听对VBR的支持是否有效。

源程序、目标程序和用户指南。

程序实现任务程序实现得依据时软件详细设计说明,程序编码活动得工作制品是源程序,目标程序和用户指南。

编码与排错工具编码工具和排错工具用以辅助程序员进行编码活动。编码工具辅助程序员用某种程序语言编制源程序,并对源程序进行翻译,最终转换成可执行的代码,因此编码工具通常与编码所使用的程序语言密切相关。

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

Windows 98以前版本的 *** 作系统都不直接支持Unicode程序,你这个软件是Unicode版本,你看看它有没有提供对应你的 *** 作系统的版本,不过还是建议你升级 *** 作系统

close all; clear all; clc; %关闭所有图形窗口,清除工作空间所有变量,清空命令行

I=imread('lenabmp');%待编码的矩阵

imshow(I);

thresh = graythresh(I); %自动确定二值化阈值

I2 = im2bw(I,thresh); %对图像二值化

imshow(I2);

[m,n]=size(I2); %计算矩阵大小

I2=double(I2);

p_table=tabulate(I2(:)); %统计矩阵中元素出现的概率,第一列为矩阵元素,第二列为个数,第三列为概率百分数

color=p_table(:,1)';

p=p_table(:,3)'/100; %转换成小数表示的概率

psum=cumsum(p_table(:,3)'); %计算数组各行的累加值

allLow=[0,psum(1:end-1)/100];%由于矩阵中元素只有两种,将[0,1)区间划分为两个区域allLow和 allHigh

allHigh=psum/100;

numberlow=0; %定义算术编码的上下限numberlow和numberhigh

numberhigh=1;

for k=1:m %以下计算算术编码的上下限,即编码结果

for kk=1:n

data=I2(k,kk);

low=allLow(data==color);

high=allHigh(data==color);

range=numberhigh-numberlow;

tmp=numberlow;

numberlow=tmp+rangelow;

numberhigh=tmp+rangehigh;

end

end

fprintf('算术编码范围下限为%1615f\n\n',numberlow);

fprintf('算术编码范围上限为%1615f\n\n',numberhigh);

Mat=zeros(m,n); %解码

for k=1:m

for kk=1:n

temp=numberlow<low;

temp=[temp 1];

indiff=diff(temp);

indiff=logical(indiff);

Mat(k,kk)=color(indiff);

low=low(indiff);

high=allHigh(indiff);

range=high - low;

numberlow=numberlow-low;

numberlow=numberlow/range;

end

end

以上就是关于Python 源程序编码注意事项全部的内容,包括:Python 源程序编码注意事项、vbr是什么意思、程序编码活动的工作制品是等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10631456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存