CN106354699A - 编码方法、编码装置、解码方法以及解码装置 - Google Patents

编码方法、编码装置、解码方法以及解码装置 Download PDF

Info

Publication number
CN106354699A
CN106354699A CN201610545992.5A CN201610545992A CN106354699A CN 106354699 A CN106354699 A CN 106354699A CN 201610545992 A CN201610545992 A CN 201610545992A CN 106354699 A CN106354699 A CN 106354699A
Authority
CN
China
Prior art keywords
code
allocation table
word
byte
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610545992.5A
Other languages
English (en)
Other versions
CN106354699B (zh
Inventor
片冈正弘
山田树
山田树一
上田晴康
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2015139783A external-priority patent/JP6540306B2/ja
Priority claimed from JP2016098753A external-priority patent/JP6665679B2/ja
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN106354699A publication Critical patent/CN106354699A/zh
Application granted granted Critical
Publication of CN106354699B publication Critical patent/CN106354699B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/149Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/146Coding or compression of tree-structured data
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Document Processing Apparatus (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供一种编码方法、编码装置、解码方法以及解码装置。对出现频率较高的字符、单词分配较短的字节代码。编码装置的代码转换部(150)基于代码分配表(110)对文本数据进行译码。在这里,代码分配表(110)将被分配给以往的代码分配表(50)的1字节区域的字符分配给代码分配表(110)的2字节区域,且对代码分配表(110)的1字节区域分配了严格挑选出的单词。

Description

编码方法、编码装置、解码方法以及解码装置
技术领域
本发明涉及编码方法等。
背景技术
以往,基于ASCII码以及统一码(Unicode)的代码分配表将文本数据转换成规定的代码。图30是用于对以往的基于ASCII码以及统一码的代码分配表进行说明的图。如图30所示,在代码分配表的00h~1Fh中设定规定的控制符号,并对各控制符号分配1字节的代码。在代码分配表的20h~7Fh中设定字母数字,并对各字母数字分配1字节的代码。在代码分配表的80h~FFh中设定CJK字符,并对各CJK字符分配3字节的代码。
在这里,在现有技术1中有如下技术:在代码分配表的分配控制符号的00h~1Fh中存在空闲区域的情况下,在这样的空闲区域登录单词等,并使用这样的代码分配表来执行译码。另外,在现有技术2中有如下技术:在代码分配表的英文大写字母的区域中,代替英文大写字母设定其它字符,并使用这样的代码分配表,来执行译码。
专利文献1:日本特开平7-287716号公报
专利文献2:日本特开平11-143877号公报
然而,在上述的现有技术中,存在不能对出现频率较高的单词、一般符号分配较短的字节代码的问题。
例如,收发文本数据的人彼此只有在共享未使用的控制符号、英文大写字母和其代码分配表的情况下,才能像现有技术1、2那样,向控制符号的空闲区域等分配单词,从而能够对出现频率较高的字符、单词分配较短的字节代码。
另一方面,若根据构成一般的文本数据的单词、一般符号的出现频率来分配可变长度代码,则约40种的代码长度是5~8位,约8千种的代码长度是9~16位。因此,对于单词、一般符号,根据其出现频率,对32种以上分配1字节代码,对8192种以上分配2字节代码,从而能够进行实现较高的压缩率的压缩处理。然而,在这样的现有技术1、2中,不能够对大量的单词、一般符号分配代码。
发明内容
在一个侧面,本发明的目的在于提供一种能够对出现频率较高的单词、一般符号分配较短的字节代码的编码方法以及编码装置。另外,另一目的在于提供一种能够对通过编码方法以及编码装置编码了的数据进行解码的解码程序、解码方法以及解码装置。
在第一方案中,计算机执行下述的处理。计算机参照第二代码分配表,基于第二代码对输入的字符数据进行译码。第二代码分配表是将被分配给第一代码分配表的1字节区域的字符的一部分分配给2字节区域而成的代码分配表。另外,第二代码分配表是对被分配给2字节区域的字符的至少一部分分配了2字节以上的代码的代码分配表。
能够对出现频率较高的字符、单词分配较短的字节代码。
附图说明
图1a是表示本实施例1所涉及的编码装置的处理的一个例子的图。
图1b是表示本实施例1所涉及的解码装置的处理的一个例子的图。
图2a是表示本实施例1所涉及的编码装置的结构的功能框图。
图2b是表示本实施例1所涉及的解码装置的结构的功能框图。
图3是表示本实施例1所涉及的代码分配表的一个例子的图。
图4是表示本实施例1所涉及的2字节代码分配表的一个例子的图。
图5是表示本实施例1所涉及的3字节代码分配表的一个例子的图。
图6a是表示本实施例1所涉及的编码装置的处理顺序的流程图。
图6b是表示本实施例1所涉及的解码装置的处理顺序的流程图。
图7a是表示本实施例2所涉及的编码装置的处理的一个例子的图。
图7b是表示本实施例2所涉及的解码装置的处理的一个例子的图。
图8a是表示本实施例2所涉及的编码装置的结构的功能框图。
图8b是表示本实施例2所涉及的解码装置的结构的功能框图。
图9是表示本实施例2所涉及的代码分配表的一个例子的图。
图10是表示本实施例2所涉及的2字节代码分配表的一个例子的图。
图11是表示本实施例2所涉及的3字节代码分配表的一个例子的图。
图12a是表示本实施例2所涉及的编码装置的处理顺序的流程图。
图12b是表示本实施例2所涉及的解码装置的处理顺序的流程图。
图13a是表示本实施例3所涉及的编码装置的处理的一个例子的图。
图13b是表示本实施例3所涉及的解码装置的处理的一个例子的图。
图14a是表示本实施例3所涉及的编码装置的结构的功能框图。
图14b是表示本实施例3所涉及的解码装置的结构的功能框图。
图15是表示本实施例3所涉及的代码分配表的一个例子的图。
图16是表示本实施例3所涉及的英语单词2字节代码分配表的一个例子的图。
图17是表示本实施例3所涉及的日语单词2字节分配表的一个例子的图。
图18是表示本实施例3所涉及的2/3字节分配表的一个例子的图。
图19a是表示本实施例3所涉及的编码装置的处理顺序的流程图。
图19b是表示本实施例3所涉及的解码装置的处理顺序的流程图。
图20a是表示第一代码转换处理的处理顺序的流程图。
图20b是表示第二代码转换处理的处理顺序的流程图。
图21是表示本实施例4所涉及的解码装置的处理的一个例子的图。
图22是表示第一自动机的一个例子的图。
图23是表示第二自动机的一个例子的图。
图24是表示第三自动机的一个例子的图。
图25是表示本实施例4所涉及的解码装置的结构的功能框图。
图26是表示本实施例4所涉及的解码装置的处理顺序的流程图。
图27是表示计算机的硬件结构例的图。
图28是表示在计算机中动作的程序的结构例的图。
图29是表示实施方式的系统中的装置的结构例的图。
图30是用于对以往的基于ASCII码以及统一码的代码分配表进行说明的图。
具体实施方式
以下,基于附图,对本申请公开的编码方法、编码装置、解码方法以及解码装置的实施例进行详细说明。应予说明,并没有通过该实施例对本发明进行限定。
[实施例1]
图1a是表示本实施例1所涉及的编码装置的处理的一个例子的图。本实施例1所涉及的编码装置代替在现有技术中所使用的代码分配表50,使用代码分配表110来对文本数据10a进行代码转换,从而生成代码转换而成的文本数据10b。
在现有技术的代码分配表50的00h~1Fh中设定控制符号,并对各控制符号分配1字节的代码。“h”是表示十六进制的符号。在代码分配表50的20h~7Fh中设定字母数字,并对各字母数字分配1字节的代码。在代码分配表50的80h~FFh中设定CJK字符,并对各CJK字符分配3字节的代码。
与此相对,在本实施例1所涉及的代码分配表110的00h~2Fh中设定后述的规定的单词,并分配1字节的代码。代码分配表110的00h~2Fh包含代码分配表50中分配了控制符号的区域。
在代码分配表110的30h~5Fh中设定高频单词等。另外,在代码分配表110的30h~5Fh中设定在代码分配表50的00h~1Fh中设定的控制符号、在代码分配表50的20h~7Fh中设定的字母数字。另外,在代码分配表110的30h~5Fh中设定在代码分配表50的80h~FFh中设定的CJK字符的一部分。对在代码分配表110的30h~5Fh中设定的高频单词、控制符号、字母数字、CJK字符分配2字节的代码。
即,将被设定于代码分配表50的00h~7Fh,且在那之前分配有1字节的代码的控制符号以及字母数字分配给代码分配表110的30h~5Fh的一部分,并分配2字节的代码。
在代码分配表110的60h~FFh中设定低频单词等。另外,在代码分配表110的60h~FFh中设定在代码分配表50的80h~FFh中设定的CJK字符的一部分。
对于本实施例1,在以下的说明中,适当地将代码分配表110的00h~2Fh的区域记作“1字节区域”。将代码分配表110的30h~5Fh的区域记作“2字节区域”。将代码分配表110的60h~FFh的区域记作“3字节区域”。
代码转换部150基于代码分配表110,将文本数据10a转换为文本数据10b。在这里,将文本数据10a设为“…he△is△in△the△house△…”。文本数据10a的“△”表示空格。
代码转换部150对用空格“△”隔开的单词和代码分配表110进行比较,将单词转换成代码。文本数据10a所包含的单词“he△”是在代码分配表110的1字节区域中设定的单词,代码转换部150将单词“he△”转换成1字节的代码“12h”。
文本数据10a所包含的单词“is△”是在代码分配表110的1字节区域中设定的单词,代码转换部150将单词“is△”转换成1字节的代码“08h”。
文本数据10a所包含的单词“in△”是在代码分配表110的1字节区域中设定的单词,代码转换部150将单词“in△”转换成1字节的代码“07h”。
文本数据10a所包含的单词“the△”是在代码分配表110的1字节区域中设定的单词,代码转换部150将单词“the△”转换成1字节的代码“00h”。
文本数据10a所包含的单词“house△”是在代码分配表110的2字节区域中设定的单词,代码转换部150例如将单词“house△”转换成2字节的代码“4341h”。
代码转换部150对文本数据10a所包含的各单词执行上述处理,从而将文本数据10a译码成文本数据10b。
图1b是表示本实施例1所涉及的解码装置的处理的一个例子的图。本实施例1所涉及的解码装置代替在现有技术中所使用的代码分配表50,使用代码分配表110将代码转换而成的文本数据10b转换成字符代码,从而生成文本数据10a。与代码分配表110相关的说明与上述的说明相同。
代码转换部550基于代码分配表110,将文本数据10b转换成文本数据10a。在这里,将文本数据10b设为“…12h 08h 07h 00h 4341h…”。
代码转换部550对代码和代码分配表110进行比较,将代码转换成单词。例如,代码转换部550将1字节的代码“12h”转换成单词“he△”。代码转换部550将1字节的代码“08h”转换成单词“is△”。代码转换部550将1字节的代码“07h”转换成单词“in△”。代码转换部550将1字节的代码“00h”转换成单词“the△”。代码转换部550将2字节的代码“4341h”转换成单词“house△”。
代码转换部550对文本数据10b所包含的各代码执行上述处理,从而将文本数据10b转换成文本数据10a。
图2a是表示本实施例1所涉及的编码装置的结构的功能框图。如图2a所示,该编码装置100具有输入部101、输出部102、寄存器105a、105b、存储部106、以及代码转换部150。
输入部101是受理进行代码转换的文本数据的处理部。输入部101将受理的文本数据储存至寄存器105a。
输出部102是输出存储于寄存器105b的代码转换后的文本数据的处理部。
寄存器105a是储存进行代码转换前的文本数据的部件。寄存器105b是储存代码转换后的文本数据的部件。
存储部106具有代码分配表110、2字节代码分配表115a、3字节代码分配表115b。存储部106例如对应于RAM(Random Access Memory:随机存取存储器)、ROM(Read OnlyMemory:只读存储器)、闪存(Flash Memory)等半导体存储器件等存储装置。
图3是表示本实施例1所涉及的代码分配表的一个例子的图。代码分配表110是对单词等与规定的代码建立有对应关系的表,与在图1a中说明的代码分配表110对应。如图3所示,该代码分配表110具有1字节区域110A、2字节区域110B、以及3字节区域110C。
1字节区域110A是代码分配表110的00h~2Fh的区域。在该1字节区域110A中,基于青空文库、牛津英语词典、其它的一般的书籍,设定出现频率较高的上位48个单词。
在1字节区域110A中设定的单词被分配与1字节区域110A的设定位置相应的1字节的代码。单词“the△”被分配1字节的代码“00h”。对于在1字节区域110A中设定的剩余的单词也同样分配1字节的代码。
2字节区域110B是代码分配表110的30h~5Fh的区域。在该2字节区域110B中,基于青空文库、牛津英语词典、其它的一般的书籍,设定出现频率为规定值以上的单词。在以下的说明中,适当地将出现频率为规定值以上的单词记作高频单词。另外,2字节区域110B中还包含字母数字、符号、平假名、片假名、汉字、数值、时刻、标签、语法等。
在这里,在2字节区域110B中仅定义有对在这样的2字节区域110B中设定的高频单词等分配的2字节的代码中的、前一半的1字节的代码。在后述的2字节代码分配表115a中定义有对在2字节区域110B中设定的单词等分配的2字节的代码。
例如,对2字节区域110B的字母数字、符号、平假名、片假名、汉字、数值、时刻、标签、语法分配的2字节的代码中的、前一半的1字节的代码为“30h~3Fh”。而且,在2字节代码分配表115a中定义有前一半的1字节的代码和剩余的1字节的代码。
对2字节区域110B的高频单词分配的2字节的代码中的、前一半的1字节的代码为“40h~5Fh”。而且,在2字节代码分配表115a中定义有前一半的1字节的代码和剩余的1字节的代码。
3字节区域110C是代码分配表110的60h~FFh的区域。在该3字节区域110C中,基于青空文库、牛津英语词典、其它的一般的书籍,设定出现频率不足规定值的低频单词。例如,3字节区域110C中包含CJK字符、英语单词、日语单词、第三国单词、数值、时刻、标签、语法语义解析的结果等。
在这里,在3字节区域110C中仅定义有对在这样的3字节区域110C中设定的单词等分配的3字节的代码中的、前一半的1字节的代码。在后述的3字节代码分配表115b中定义有对在3字节区域110C中设定的单词等分配的3字节的代码。
例如,对3字节区域110C的CJK字符、英语单词、日语单词、第三国单词、数值、时刻、标签、语法语义解析的结果等分配的3字节的代码中的、前一半的1字节的代码为“60h~FFh”。而且,在3字节代码分配表115b中定义有前一半的1字节的代码和剩余的2字节的代码。
图4是表示本实施例1所涉及的2字节代码分配表的一个例子的图。如图4所示,2字节代码分配表115a对高频单词与2字节的代码建立对应关系。另外,2字节代码分配表115a对字母数字、符号、平假名、片假名、汉字、数值、时刻、标签、语法与2字节的代码建立对应关系。
在2字节代码分配表115a中,在“3000h~3FFFh”中设定字母数字、符号、平假名、片假名、汉字、数值、时刻、标签、语法,并分配与设定位置相应的2字节的代码。例如,对“NULL”分配2字节的代码“3000h”。
在2字节代码分配表115a中,在“4000h~5FFFh”中设定高频单词,并分配与设定位置相应的2字节的代码。例如,对在设定位置“4000h”中设定的高频单词分配2字节的代码“4000h”。
图5是表示本实施例1所涉及的3字节代码分配表的一个例子的图。如图5所示,3字节代码分配表115b对CJK字符、英语单词、日语单词、第三国单词、数值、时刻、标签、语法语义解析的结果与3字节的代码建立对应关系。此外,在3字节代码分配表115b中,例如“E00000h~FFFFFFh”为预备的区域。
在3字节代码分配表115b中,在“800000h~DFFFFFh”中设定日语单词、第三国单词、数值、时刻、标签、语法语义解析的结果,并分配与设定位置相应的3字节的代码。例如,对在设定位置“800000h”中设定的日语单词分配3字节的代码“800000h”。
返回到图2a的说明。代码转换部150是基于代码分配表110、2字节代码分配表115a、3字节代码分配表115b对储存于寄存器105a的文本数据进行译码的处理部。代码转换部150将译码出的文本数据储存至寄存器105b。
以下,对代码转换部150的处理的一个例子进行说明。代码转换部150从文本数据中获取用空格“△”隔开的单词,并判定获取到的单词是在1字节区域110A中设定的单词、还是在2字节区域110B中设定的单词、还是在3字节区域110C中设定的单词。
对代码转换部150获取到的单词是在1字节区域110A中设定的单词的情况进行说明。代码转换部150对获取到的单词与1字节区域110A的各单词进行比较,确定相应的设定位置的1字节的代码,并进行译码。例如,代码转换部150在获取到的单词是“the△”的情况下,将这样的单词“the△”译码成“00h”。
接着,对代码转换部150获取到的单词是在2字节区域110B中设定的单词的情况进行说明。代码转换部150对获取到的单词与2字节代码分配表115a进行比较,确定相应的设定位置的2字节的代码,并进行译码。例如,代码转换部150在获取到的单词是在2字节代码分配表115a的“4000h”中设定的某个高频单词的情况下,将这样的高频单词译码成2字节的代码“4000h”。
此外,代码转换部150在获取到的信息是在2字节区域110B中设定的字母数字、符号、平假名、片假名、汉字、数值、时刻、标签、语法的情况下,也与2字节代码分配表115a相比较来进行译码。例如,代码转换部150在获取了“NULL”的情况下,将这样的“NULL”译码成“3000h”。
接着,对代码转换部150获取到的单词是在3字节区域110C中设定的单词的情况进行说明。代码转换部150对获取到的单词与3字节代码分配表115b进行比较,确定相应的设定位置的3字节的代码,并进行译码。例如,代码转换部150在获取到的单词是在3字节代码分配表115b的“700000h”中设定的某个英语单词的情况下,将这样的英语单词译码成3字节的代码“700000h”。
此外,代码转换部150在获取到的信息是在3字节区域110C中设定的日语单词、第三国单词、数值、时刻、标签、语法语义解析的结果的情况下,也与3字节代码分配表115b相比较来进行译码。例如,代码转换部150在获取到的信息是在3字节代码分配表115b的“800000h”中设定的某个日语单词的情况下,将这样的日语单词译码成3字节的代码“800000h”。
代码转换部150对储存于寄存器105a的文本数据反复执行上述处理,从而对文本数据进行译码。代码转换部150将译码出的文本数据储存至寄存器105b。
图2b是表示本实施例1所涉及的解码装置的结构的功能框图。如图2b所示,该解码装置500具有输入部501、输出部502、寄存器505a、505b、存储部506、以及代码转换部550。
输入部501是受理代码转换而成的文本数据的处理部。输入部501将受理到的文本数据储存至寄存器505a。
输出部502是输出储存于寄存器505b的文本数据的处理部。
寄存器505a是储存代码转换而成的文本数据的部件。寄存器505b是储存字符代码转换后的文本数据的部件。
存储部506具有代码分配表110、2字节代码分配表115a以及3字节代码分配表115b。存储部506例如对应于RAM、ROM、闪存等半导体存储器件等存储装置。
有关代码分配表110的说明与在图3中说明的有关代码分配表110的说明相同。有关2字节代码分配表115a的说明与在图4中说明的有关2字节代码分配表115a的说明相同。有关3字节代码分配表115b的说明与在图5中说明的有关3字节代码分配表115b的说明相同。
以下,对代码转换部550的处理的一个例子进行说明。例如,代码转换部550从文本数据中获取代码,并判定获取到的代码是与在1字节区域110A中设定的单词对应的代码、还是与在2字节区域110B中设定的单词对应的代码、还是与在3字节区域110C中设定的单词对应的代码。
对代码转换部550获取到的代码是与在1字节区域110A中设定的单词对应的代码的情况进行说明。与在1字节区域110A中设定的单词对应的代码的第1字节包含于“00h~2Fh”。代码转换部550从在1字节区域110A中设定的单词中选择与代码对应的单词,并根据选择出的单词来进行字符译码。例如,代码转换部550在获取到的代码是“00h”情况下,将“00h”字符译码成“the△”。
对代码转换部550获取到的代码是与在2字节区域110B中设定的单词对应的代码的情况进行说明。与在2字节区域110B中设定的单词对应的代码的第1字节包含于“30h~5Fh”。代码转换部550对由代码的第1字节和紧接着的第2字节组合而成的代码与2字节代码分配表115a进行比较,来对单词进行字符译码。例如,代码转换部550在2字节的代码是“4000h”的情况下,字符译码成在2字节代码分配表115a中设定的与“4000h”对应的单词。
对代码转换部550获取到的代码是与在3字节区域110C中设定的单词对应的代码的情况进行说明。与在3字节区域110C中设定的单词对应的代码的第1字节包含于“60h~FFh”。代码转换部550对由代码的第1字节和紧接着的第2、第3字节组合而成的代码与3字节代码分配表115b进行比较,来对单词进行字符译码。例如,代码转换部550在3字节的代码是“700000h”的情况下,字符译码成在3字节代码分配表115b中设定的与“700000h”对应的单词。
图6a是表示本实施例1所涉及的编码装置的处理顺序的流程图。如图6a所示,编码装置100的输入部101将文本数据储存至寄存器105a(步骤S101)。编码装置100的代码转换部150从储存于寄存器105a的文本数据中获取单词(步骤S102)。在步骤S102中,为了便于说明,虽然记作单词,但代码转换部150所获取的内容除了单词以外,也存在日语单词、第三国单词、数值、时刻、标签、语法语义解析的结果等情况。
代码转换部150对单词和代码分配表110进行比较(步骤S103)。代码转换部150在单词是与代码分配表110的1字节区域110A的单词对应的单词的情况下(步骤S104,是),移至步骤S105。代码转换部150基于代码分配表110将单词转换成1字节的代码(步骤S105),并移至步骤S109。
另一方面,代码转换部150在单词不是与代码分配表110的1字节区域110A的单词对应的单词的情况下(步骤S104,否),移至步骤S106。代码转换部150在单词是与代码分配表110的2字节区域110B的单词对应的单词的情况下(步骤S106,是),移至步骤S107。代码转换部150基于2字节代码分配表115a将单词转换成2字节的代码(步骤S107),并移至步骤S109。
另一方面,代码转换部150在单词不是与代码分配表110的2字节区域110B的单词对应的单词的情况下(步骤S106,否),移至步骤S108。代码转换部150基于3字节代码转换表115b将单词转换成3字节的代码(步骤S108),并移至步骤S109。
代码转换部150判定文本数据的译码是否结束了(步骤S109)。代码转换部150在文本数据的译码未结束的情况下(步骤S109,否),移至步骤S102。
另一方面,代码转换部150在文本数据的译码结束了的情况下(步骤S109,是),将译码出的文本数据储存至寄存器105b(步骤S110)。
图6b是表示本实施例1所涉及的解码装置的处理顺序的流程图。如图6b所示,解码装置500的输入部501将文本数据储存至寄存器505a(步骤S501)。解码装置500的代码转换部550从储存于寄存器505a的文本数据中获取代码(步骤S502)。
代码转换部550对代码与代码分配表110进行比较(步骤S503)。代码转换部550在代码是与代码分配表110的1字节区域110A的单词对应的代码的情况下(步骤S504,是),移至步骤S505。代码转换部550基于代码分配表110将1字节的代码转换成单词(步骤S505),并移至步骤S509。
另一方面,代码转换部550在代码不是与代码分配表110的1字节区域110A的单词对应的代码的情况下(步骤S504,否),移至步骤S506。代码转换部550在代码是与代码分配表110的2字节区域110B的单词对应的代码的情况下(步骤S506,是),移至步骤S507。代码转换部550基于2字节代码分配表115a将2字节的代码转换成单词(步骤S507),并移至步骤S509。
另一方面,代码转换部550在代码不是与代码分配表110的2字节区域110B的单词对应的代码的情况下(步骤S506,否),移至步骤S508。代码转换部550基于3字节代码转换表115b,将3字节的代码转换成单词(步骤S508),并移至步骤S509。
代码转换部550判定文本数据的解码是否结束了(步骤S509)。代码转换部550在文本数据的解码未结束的情况下(步骤S509,否),移至步骤S502。
另一方面,代码转换部550在文本数据的解码结束了的情况下(步骤S509,是),将解码出的文本数据储存至寄存器505b(步骤S510)。
接下来,对本实施例1所涉及的编码装置100的效果进行说明。编码装置100进行使用了使被分配给以往的代码分配表50的1字节区域的字符保存至代码分配表110的2字节区域,并对代码分配表110的1字节区域分配有严格挑选出的单词而成的分配表的代码转换。通过执行这样的处理,能够对出现频率较高的字符、单词分配较短的字节代码。
另外,解码装置500使用上述代码分配表110,对译码出的文本数据进行解码,所以即使在对出现频率较高的单词、一般符号分配了较短的字节代码的情况下,也能够将这样的字节代码转换成单词、一般符号。[实施例2]
图7a是表示本实施例2所涉及的编码装置的处理的一个例子的图。本实施例2所涉及的编码装置代替在现有技术中所使用的代码分配表50,使用代码分配表210对文本数据20a进行代码转换,从而生成代码转换而成的文本数据20b。有关现有技术的代码分配表50的说明与在实施例1中说明的相同。
对本实施例2所涉及的代码分配表210进行说明。在代码分配表210的00h~1Fh中设定后述的规定的单词,并分配1字节的代码。代码分配表210的00h~1Fh包含代码分配表50中分配有控制符号的区域。
在代码分配表210的20h~7Fh中设定字母数字,并分配1字节的代码。在代码分配表210的20h~7Fh中设定的字母数字与在代码分配表50的20h~7Fh中设定的字母数字相同。
在代码分配表210的80h~9Fh中设定高频单词等。另外,在代码分配表210的80h~9Fh中设定在代码分配表50的00h~1Fh中设定的控制符号、在代码分配表50的80h~FFh中设定的CJK字符的一部分。对在代码分配表210的80h~9Fh中设定的高频单词、控制符号、CJK字符分配2字节的代码。
在代码分配表210的A0h~FFh中设定低频单词等。另外,在代码分配表210的A0h~FFh中设定在代码分配表50的80h~FFh中设定的CJK字符的一部分。
对于本实施例2,在以下的说明中,适当地将代码分配表210的00h~1Fh的区域记作“单词1字节区域”。将代码分配表210的20h~7Fh的区域记作“字母数字1字节区域”。将代码分配表210的80h~9Fh的区域记作“2字节区域”。将代码分配表210的A0h~FFh的区域记作“3字节区域”。
代码转换部250基于代码分配表210,将文本数据20a转换成文本数据20b。在这里,将文本数据20a设为“…he△is△in△the△house△…”。文本数据20a的“△”表示空格。
代码转换部250对用空格“△”隔开的单词与代码分配表210进行比较,来将单词转换成代码。文本数据20a所包含的单词“he△”是在代码分配表210的单词1字节区域中设定的单词,代码转换部250将单词“he△”转换成1字节的代码“12h”。
文本数据20a所包含的单词“is△”是在代码分配表210的单词1字节区域中设定的单词,代码转换部250将单词“is△”转换成1字节的代码“08h”。
文本数据20a所包含的单词“in△”是在代码分配表210的单词1字节区域中设定的单词,代码转换部250将单词“in△”转换成1字节的代码“07h”。
文本数据20a所包含的单词“the△”是在代码分配表210的单词1字节区域中设定的单词,代码转换部250将单词“the△”转换成1字节的代码“00h”。
文本数据20a所包含的单词“house△”是在代码分配表210的2字节区域中设定的单词,代码转换部250例如将单词“house△”转换成2字节的代码“8341h”。
代码转换部250对文本数据20a所包含的各单词执行上述处理,从而将文本数据20a译码成文本数据20b。
图7b是表示本实施例2所涉及的解码装置的处理的一个例子的图。本实施例2所涉及的解码装置代替在现有技术中所使用的代码分配表50,使用代码分配表210将代码转换而成的文本数据20b转换成字符代码,从而生成文本数据20a。有关代码分配表210的说明与上述的说明相同。
代码转换部650基于代码分配表210将文本数据20b转换成文本数据20a。在这里,将文本数据20b设为“…12h 08h 07h 00h 8341h…”。
代码转换部650对代码与代码分配表210进行比较,将代码转换成单词。例如,代码转换部650将1字节的代码“12h”转换成单词“he△”。代码转换部650将1字节的代码“08h”转换成单词“is△”。代码转换部650将1字节的代码“07h”转换成单词“in△”。代码转换部650将1字节的代码“00h”转换成单词“the△”。代码转换部650将2字节的代码“8341h”转换成单词“house△”。
代码转换部650对文本数据20b所包含的各代码执行上述处理,从而将文本数据20b转换成文本数据20a。
图8a是表示本实施例2所涉及的编码装置的结构的功能框图。如图8a所示,该编码装置200具有输入部201、输出部202、寄存器205a、205b、存储部206、代码转换部250。
输入部201是受理进行代码转换的文本数据的处理部。输入部201将受理的文本数据储存至寄存器205a。
输出部202是输出储存于寄存器205b的代码转换后的文本数据的处理部。
寄存器205a是储存进行代码转换前的文本数据的部件。寄存器205b是储存代码转换后的文本数据的部件。
存储部206具有代码分配表210、2字节代码分配表215a、以及3字节代码分配表215b。存储部206例如对应于RAM、ROM、闪存等半导体存储器件等存储装置。
图9是表示本实施例2所涉及的代码分配表的一个例子的图。代码分配表210是对单词等与规定的代码建立了对应关系的表,与在图7a中说明的代码分配表210对应。如图9所示,该代码分配表210具有单词1字节区域210A、字母数字1字节区域210B、2字节区域210C、以及3字节区域210D。
单词1字节区域210A是代码分配表210的00h~1Fh的区域。在该单词1字节区域210A中基于青空文库、牛津英语词典、其它的一般的书籍,设定出现频率较高的上位32个单词。
在单词1字节区域210A中设定的单词被分配与单词1字节区域210A的设定位置相应的1字节的代码。例如,单词“the△”被分配1字节的代码“00h”。在单词1字节区域210A中设定的剩余的单词也同样地分配1字节的代码。
字母数字1字节区域210B是代码分配表210的20h~7Fh的区域。在该字母数字1字节区域210B中设定与在代码分配表50的20h~7Fh中设定的字母数字相同的字母数字。
在字母数字1字节区域210B中设定的字母数字被分配与字母数字1字节区域210B的设定位置相应的1字节的代码。例如,数值“0”被分配1字节的代码“30h”。在字母数字1字节区域210B中设定的剩余的字母数字也同样地被分配1字节的代码。
2字节区域210C是代码分配表210的80h~9Fh的区域。在该2字节区域210C中,基于青空文库、牛津英语词典、其它的一般的书籍,设定出现频率为规定值以上的单词。在以下的说明中,适当地将出现频率为规定值以上的单词记作高频单词。另外,2字节区域210C也可以包含控制符号等。
在这里,在2字节区域210C中仅定义有对在这样的2字节区域210C中设定的高频单词等分配的2字节的代码中的、前一半的1字节的代码。在后述的2字节代码分配表215a中定义有对在2字节区域210C中设定的单词等分配的2字节的代码。
例如,对2字节区域210C的高频单词分配的2字节的代码中的、前一半的1字节的代码为“80h~9Fh”。而且,在2字节代码分配表215a中定义有前一半的1字节的代码和剩余的1字节的代码。
3字节区域210D是代码分配表210的A0h~FFh的区域。在该3字节区域210D中,基于青空文库、牛津英语词典、其它的一般的书籍,设定出现频率不足规定值的低频单词。例如,3字节区域210D中包含CJK字符、英语单词、日语单词、数值、标签、动态代码等。动态代码例如对应于人物名称、住所、连结单词等。
在这里,在3字节区域210D中仅定义有对在这样的3字节区域210D中设定的单词等分配的3字节的代码中的、前一半的1字节的代码。在后述的3字节代码分配表215b中定义有对在3字节区域210D中设定的单词等分配的3字节的代码。
图10是表示本实施例2所涉及的2字节代码分配表的一个例子的图。如图10所示,2字节代码分配表215a对高频单词和2字节的代码建立对应关系。
例如,在2字节代码分配表215a中,在“8000h~9FFFh”中设定高频单词,并分配与设定位置对应的2字节的代码。例如,对在设定位置“8000h”设定的高频单词分配2字节的代码“8000h”。
图11是表示本实施例2所涉及的3字节代码分配表的一个例子的图。如图11所示,3字节代码分配表215b对CJK字符、英语单词、日语单词、数值、标签、动态代码与3字节的代码建立对应关系。
返回到图8a的说明。代码转换部250是基于代码分配表210、2字节代码分配表215a、3字节代码分配表215b,对储存于寄存器205a的文本数据进行译码的处理部。代码转换部250将译码出的文本数据储存至寄存器205b。
以下,对代码转换部250的处理的一个例子进行说明。代码转换部250从文本数据中获取用空格“△”隔开的单词。代码转换部250判定获取到的单词是在单词1字节区域210A中设定的单词、还是与在字母数字1字节区域210B中设定的字母数字对应、还是在2字节区域210C中设定的单词、还是在3字节区域210D中设定的单词。
对代码转换部250获取到的单词是在单词1字节区域210A中设定的单词的情况进行说明。代码转换部250对获取到的单词和单词1字节区域210A的各单词进行比较,确定相应的设定位置的1字节的代码,并进行译码。例如,代码转换部250在获取到的单词是“the△”的情况下,将这样的单词“the△”译码成“00h”。
对代码转换部250获取到的信息是在字母数字1字节区域210B中设定的字母数字的情况进行说明。代码转换部250对获取到的字母数字与字母数字1字节区域210B的各字母数字进行比较,确定相应的设定位置的1字节的代码,并进行译码。例如,代码转换部250在获取到的字母数字是“A”的情况下,将这样的字母数字“A”译码成“41h”。
对代码转换部250获取到的单词是在2字节区域210C中设定的单词的情况进行说明。代码转换部250对获取到的单词与2字节代码分配表215a进行比较,确定相应的设定位置的2字节的代码,并进行译码。例如,代码转换部250在获取到的单词是在2字节代码分配表215a的“8000h”中设定的某个高频单词的情况下,将这样的高频单词译码成2字节的代码“8000h”。
对代码转换部250获取到的单词是在3字节区域210D中设定的单词的情况进行说明。代码转换部250对获取到的单词与3字节代码分配表215b进行比较,确定相应的设定位置的3字节的代码,并进行译码。例如,代码转换部250在获取到的单词是在3字节代码分配表215b的“B00000h”中设定的某个英语单词的情况下,将这样的英语单词译码成3字节的代码“B00000h”。
此外,代码转换部250在获取到的信息是在3字节区域210D中设定的日语单词、CJK字符、数值、标签、动态代码的情况下,也与3字节代码分配表215b相比较,并进行译码。
图8b是表示本实施例2所涉及的解码装置的结构的功能框图。如图8b所示,该解码装置600具有输入部601、输出部602、寄存器605a、605b、存储部606、以及代码转换部650。
输入部601是受理代码转换而成的文本数据的处理部。输入部601将受理到的文本数据储存至寄存器605a。
输出部602是输出储存于寄存器605b的文本数据的处理部。
寄存器605a是储存代码转换而成的文本数据的部件。寄存器605b是储存字符代码转换后的文本数据的部件。
存储部606具有代码分配表210、2字节代码分配表215a、以及3字节代码分配表215b。存储部606例如对应于RAM、ROM、闪存等半导体存储器件等存储装置。
有关代码分配表210的说明与在图9中说明的有关代码分配表210的说明相同。有关2字节代码分配表215a的说明与在图10中说明的有关2字节代码分配表215a的说明相同。有关3字节代码分配表215b的说明与在图11中说明的有关3字节代码分配表215b的说明相同。
以下,对代码转换部650的处理的一个例子进行说明。例如,代码转换部650从文本数据中获取代码,并判定获取到的代码是与在单词1字节区域210A中设定的单词对应的代码,还是与在字母数字1字节区域210B中设定的字母数字对应的代码。另外,代码转换部650判定获取到的代码是与在2字节区域210C中设定的单词对应的代码,还是与在3字节区域210D中设定的单词对应的代码。
对代码转换部650获取到的代码是与在单词1字节区域210A中设定的单词对应的代码的情况进行说明。与在单词1字节区域210A中设定的单词对应的代码的第1字节包含于“00h~1Fh”。代码转换部650从在单词1字节区域210A中设定的单词中选择与代码对应的单词,并根据选择出的单词进行字符译码。例如,代码转换部650在获取到的代码是“00h”的情况下,将“00h”字符译码成“the△”。
对代码转换部650获取到的代码是与在字母数字1字节区域210B中设定的字母数字对应的代码的情况进行说明。与在字母数字1字节区域210B中设定的字母数字对应的代码的第1字节包含于“20h~7Fh”。代码转换部650从在字母数字1字节区域210b中设定的字母数字中选择与代码对应的字母数字,并根据选择出的字母数字进行字符译码。例如,代码转换部650在获取到的代码是“41h”的情况下,将“41h”字符译码成“A”。
对代码转换部650获取到的代码是与在2字节区域210C中设定的单词对应的代码的情况进行说明。与在2字节区域210C中设定的单词对应的代码的第1字节包含于“80h~9Fh”。代码转换部650对获取到的代码与2字节代码分配表215a进行比较,确定与代码对应的单词,并进行字符译码。代码转换部650在获取到的代码是“8000h”的情况下,字符译码成与2字节代码分配表215a的“8000h”对应的高频单词。
对代码转换部650获取到的代码是与在3字节区域210D中设定的单词对应的代码的情况进行说明。与在3字节区域210D中设定的单词对应的代码的第1字节包含于“A0h~FFh”。代码转换部650对获取到的代码与3字节代码分配表215b进行比较,确定与代码对应的单词,并进行字符译码。代码转换部650在获取到的代码是“B00000h”的情况下,字符译码成与3字节代码分配表215b的“B00000h”对应的英语单词。
图12a是表示本实施例2所涉及的编码装置的处理顺序的流程图。如图12a所示,编码装置200的输入部201将文本数据储存至寄存器205a(步骤S201)。编码装置200的代码转换部250从储存于寄存器205a的文本数据中获取单词(步骤S202)。在步骤S202中,为了便于说明,记作单词,但代码转换部250所获取的内容除了单词以外,也存在字母数字、CJK字符、日语单词、英语单词、数值、标签、动态代码的情况。
代码转换部250对单词与代码分配表210进行比较(步骤S203)。代码转换部250在单词(信息)是与代码分配表210的单词1字节区域210A的单词或者字母数字1字节区域210B的字母数字对应的单词的情况下(步骤S204,是),移至步骤S205。代码转换部250基于代码分配表210将单词或者字母数字转换成1字节的代码(步骤S205),并移至步骤S209。
另一方面,代码转换部250在单词(信息)不是与代码分配表210的单词1字节区域210A的单词或字母数字1字节区域210B的字母数字对应的单词的情况下(步骤S204,否),移至步骤S206。代码转换部250在单词是与代码分配表210的2字节区域210C的单词对应的单词的情况下(步骤S206,是),移至步骤S207。代码转换部250基于2字节代码分配表215a将单词转换成2字节的代码(步骤S207),移至步骤S209。
另一方面,代码转换部250在单词不是与代码分配表210的2字节区域210C的单词对应的单词的情况下(步骤S206,否),移至步骤S208。代码转换部250基于3字节代码分配表215b将单词转换成3字节的代码(步骤S208),并移至步骤S209。
代码转换部250判定文本数据的译码是否结束了(步骤S209)。代码转换部250在文本数据的译码未结束的情况下(步骤S209,否),移至步骤S202。
另一方面,代码转换部250在文本数据的译码结束了的情况下(步骤S209,是),将译码出的文本数据储存至寄存器205b(步骤S210)。
图12b是表示本实施例2所涉及的解码装置的处理顺序的流程图。如图12b所示,解码装置600的输入部601将文本数据储存至寄存器605a(步骤S601)。解码装置600的代码转换部650从储存于寄存器605a的文本数据中获取代码(步骤S602)。
代码转换部650对代码与代码分配表210进行比较(步骤S603)。代码转换部650在代码是与代码分配表210的单词1字节区域210A的单词或者字母数字1字节区域210B的字母数字对应的代码的情况下(步骤S604,是),移至步骤S605。代码转换部650基于代码分配表210将1字节的代码转换成单词或者字母数字(步骤S605),并移至步骤S609。
另一方面,代码转换部650在代码不是与代码分配表210的单词1字节区域210A的单词或字母数字1字节区域210B的字母数字对应的代码的情况下(步骤S604,否),移至步骤S606。代码转换部650在代码是与代码分配表210的2字节区域210C的单词对应的代码的情况下(步骤S606,是),移至步骤S607。代码转换部650基于2字节代码分配表215a将2字节的代码转换成单词(步骤S607),并移至步骤S609。
另一方面,代码转换部650在代码不是与代码分配表210的2字节区域210C的单词对应的代码的情况下(步骤S606,否),移至步骤S608。代码转换部650基于3字节代码分配表215b将3字节的代码转换成单词(步骤S608),并移至步骤S609。
代码转换部650判定文本数据的解码是否结束(步骤S609)。代码转换部250在文本数据的解码未结束的情况下(步骤S609,否),移至步骤S602。
另一方面,代码转换部250在文本数据的解码结束了的情况下(步骤S609,是),将解码而成的文本数据储存至寄存器605b(步骤S610)。
接下来,对本实施例2所涉及的编码装置200的效果进行说明。编码装置200进行使用了在代码分配表210的单词1字节区域中分配有严格挑选出的单词的分配表的代码转换。此外,在字母数字1字节区域中设定与在以往的代码分配表50的20h~7Fh中设定的字母数字相同的字母数字。通过执行这样的处理,能够将字母数字以与以往相同的方式转换成1字节的代码,并且能够对出现频率较高的字符、单词分配较短的字节代码。
另外,解码装置600使用上述代码分配表210对译码出的文本数据进行解码,所以即使在对出现频率较高的单词、一般符号分配较短的字节代码的情况下,也能够将这样的字节代码转换成单词、一般符号。
[实施例3]
图13a是表示本实施例3所涉及的编码装置的处理的一个例子的图。本实施例3所涉及的编码装置对以往的代码分配表50和本实施例3特有的代码分配表310进行切换来利用。例如,编码装置在从文本数据检测出控制符号“SI(Shift In:移入)”的情况下,使用代码分配表310对控制符号“SI”之后的文本数据进行代码转换。另一方面,编码装置在从文本数据检测出控制符号“SO(Shift Out:移出)”的情况下,使用代码分配表50来进行代码转换。有关现有技术的代码分配表50的说明与在实施例1中说明的相同。
对代码分配表310进行说明。在代码分配表310的00h~1Fh中设定控制符号,并分配1字节的代码。在代码转换表310的00h~1Fh中设定的控制符号与在代码分配表50的00h~1Fh中设定的控制符号相同。
在代码分配表310的20h~3Fh中设定后述的规定的英语单词,并分配1字节的代码。在代码分配表310的40h~5Fh中设定高频英语单词,并分配2字节的代码。
在代码分配表310的60h~7Fh中设定后述的规定的日语单词,并分配1字节的代码。在代码分配表310的80h~9Fh中设定高频率的日语单词。
在代码分配表310的A0h~FFh中设定低频单词,并分配2字节或者3字节的代码。
对于本实施例3,在以下的说明中,适当地将代码分配表310的00h~1Fh的区域记作“控制符号1字节区域”。将代码分配表310的20h~3Fh的区域记作“英语单词1字节区域”。将代码分配表310的40h~5Fh的区域记作“英语单词2字节区域”。将代码分配表310的60h~7Fh的区域记作“日语单词1字节区域”。将代码分配表310的80h~9Fh的区域记作“日语单词2字节区域”。将代码分配表310的A0h~FFh的区域记作“2/3字节区域”。
代码转换部350根据控制符号“SI”或“SO”的检测来切换代码分配表50、310,并基于切换后的代码分配表,将文本数据30a转换成文本数据30b。在这里,将文本数据30a设为“…Is△he△in△the△house?”。
在以下的说明中,作为前提,对代码转换部350检测出控制符号“SI”,并基于代码分配表310对文本数据30a进行代码转换的情况进行说明。此外,由于代码转换部350基于代码分配表50对文本数据30a进行代码转换的处理与现有技术相同,所以省略说明。
代码转换部350对用空格“△”隔开的单词与代码分配表310进行比较,并将单词转换成代码。文本数据30a所包含的单词“Is△”是在代码分配表310的英语单词1字节区域中设定的单词,代码转换部350将单词“Is△”转换成1字节的代码“25h”和“2Fh”。在这里,1字节的代码“25h”是表示单词的前端是大写字母的1字节的代码。“2Fh”是与“is△”对应的1字节的代码。
文本数据30a所包含的“he△”是在代码分配表310的英语单词1字节区域中设定的单词,代码转换部350将单词“he△”转换成1字节的代码“39h”。
文本数据30a所包含的“in△”是在代码分配表310的英语单词1字节区域中设定的单词,代码转换部350将单词“in△”转换成1字节的代码“2Eh”。
文本数据30a所包含的“the△”是在代码分配表310的英语单词1字节区域中设定的单词,代码转换部350将单词“the△”转换成1字节的代码“27h”。
文本数据30a所包含的单词“house”被分割成“house△”和“-△”。“house△”是在代码分配表310的2字节区域中设定的单词,代码转换部350例如将单词“house△”转换成2字节的代码“4341h”,将单词“-△”转换成1字节的代码“21h”。
文本数据30a所包含的单词“?”是在代码分配表310的英语单词2字节区域中设定的符号,代码转换部350例如将单词“?”转换成2字节的代码“403Fh”。
代码转换部350对文本数据30a所包含的各单词执行上述处理,从而将文本数据30a译码成文本数据30b。
图13b是表示本实施例3所涉及的解码装置的处理的一个例子的图。本实施例3所涉及的解码装置对以往的代码分配表50和本实施例3特有的代码分配表310进行切换来利用。例如,解码装置在从文本数据检测出控制符号“SI”的代码的情况下,使用代码分配表310对控制符号“SI”之后的文本数据进行字符代码转换。另一方面,解码装置在从文本数据检测出控制符号“SO”的代码的情况下,使用代码分配表50进行字符代码转换。有关现有技术的代码分配表50的说明与在实施例1中说明的相同。另外,有关代码分配表310的说明与上述的说明相同。
代码转换部750根据控制符号“SI”的代码或“SO”的代码的检测,对代码分配表50、310进行切换,并基于切换后的代码分配表,将文本数据30b转换成文本数据30a。在这里,将文本数据30b设为“…25h 2Fh 39h 2Eh 27h 4341h 21h 403Fh…”。
在以下的说明中,作为前提,对代码转换部750检测出控制符号“SI”的代码,并基于代码分配表310对文本数据30b进行字符代码转换的情况进行说明。此外,由于代码转换部750基于代码分配表50对文本数据30b进行字符代码转换的处理与现有技术相同,所以省略说明。
代码转换部750对代码与代码分配表310进行比较,将代码转换成单词。例如,代码转换部750将1字节的代码“25h”和“2Fh”转换成单词“Is△”。代码转换部750将1字节的代码“39h”转换成单词“he△”。代码转换部750将1字节的代码“2Eh”转换成单词“in△”。代码转换部750将1字节的代码“27h”转换成单词“the△”。代码转换部750将2字节的代码“4341h”和1字节的代码“21h”转换成单词“house”。代码转换部750将2字节的代码“403Fh”转换成符号“?”。
代码转换部750对文本数据30b所包含的各代码执行上述处理,从而将文本数据30b字符译码成文本数据30a。
图14a是表示本实施例3所涉及的编码装置的结构的功能框图。如图14a所示,该编码装置300具有输入部301、输出部302、寄存器305a、305b、存储部306、代码转换部350。
输入部301是受理进行代码转换的文本数据的处理部。输入部301将受理到的文本数据储存至寄存器305a。
输出部302是输出储存于寄存器305b的代码转换后的文本数据的处理部。
寄存器305a是储存进行代码转换前的文本数据的部件。寄存器305b是储存代码转换后的文本数据的部件。
存储部306具有代码分配表50、代码分配表310、英语单词2字节代码分配表315a、日语单词2字节代码分配表315b、以及2/3字节代码分配表316。存储部306例如对应于RAM、ROM、闪存等半导体存储器件等存储装置。
代码分配表50是以往的代码分配表。例如,代码分配表50的说明与在实施例1中说明的相同。
图15是表示本实施例3所涉及的代码分配表的一个例子的图。代码分配表310是对单词等与规定的代码建立了对应关系的表,与在图13a中说明的代码分配表310对应。如图15所示,该代码分配表310具有控制符号1字节区域310A、英语单词1字节区域310B、英语单词2字节区域310C、日语单词1字节区域310D、日语单词2字节区域310E、以及2/3字节区域310F。
控制符号1字节区域310A是代码分配表310的00h~1Fh的区域。在控制符号1字节区域310A中设定的控制符号与在代码分配表50的00h~1Fh中设定的控制符号相同。此外,控制符号中包含“SO”和“SI”。控制符号“SO”是对代码转换部350指示使用代码分配表50进行代码转换的控制符号。控制符号“SI”是对代码转换部350指示使用代码分配表310进行代码转换的控制符号。
英语单词1字节区域310B是代码分配表310的20h~3Fh的区域。对在英语单词1字节区域310B中设定的英语单词分配1字节的代码。在该英语单词1字节区域310B中基于牛津英语词典、其它的一般的书籍,设定出现频率较高的上位25个英语单词。例如,对单词“the”分配1字节的代码“27h”。
另外,在英语单词1字节区域310B中设定空格“△”、退格“-△”、逗号“,”、撇号“′”、表示单词的前端是大写字母的代码、表示单词全部是大写字母的代码。例如,对空格“△”分配1字节的代码“20h”。
英语单词2字节区域310C是代码分配表310的40h~5Fh的区域。在该英语单词2字节区域310C中基于牛津英语词典、其它的一般的书籍,设定出现频率为规定值以上的英语单词。在以下的说明中,适当地将出现频率为规定值以上的单词记作高频英语单词。
在这里,在英语单词2字节区域310C中仅定义有对在这样的英语单词2字节区域310C中设定的高频英语单词分配的2字节的代码中的、前一半的1字节的代码。在后述的英语单词2字节代码分配表315a中定义有对在英语单词2字节区域310C中设定的英语单词分配的2字节的代码。
日语单词1字节区域310D是代码分配表310的60h~7Fh的区域。该日语单词1字节区域310D基于青空文库、其它的一般的书籍,设定出现频率较高的上位的日语。例如,对日语单词“の”分配1字节的代码“65h”。
另外,日语单词1字节区域310D设定逗号“,”、句号“。”、括号。例如,对逗号“,”分配1字节的代码“61h”。
日语单词2字节区域310E是代码分配表310的80h~9Fh的区域。该日语单词2字节区域310E基于青空文库、其它的一般的书籍,设定出现频率较高的上位的日语。在以下的说明中,适当地将出现频率为规定值以上的单词记作高频日语单词。
在这里,在日语单词2字节区域310E中仅设定有对在这样的日语单词2字节区域310E中设定的高频日语单词分配的2字节的代码中的、前一半的1字节的代码。在后述的日语单词2字节代码分配表315b中定义有对在日语单词2字节区域310E中设定的日语分配的2字节的代码。
2/3字节区域310F是代码分配表310的A0h~FFh的区域。在该2/3字节区域310F中基于青空文库、牛津英语词典、其它的一般的书籍,设定出现频率不足规定值的低频单词。在以下的说明中,适当地将低频率的单词记作低频单词。对在2/3字节区域310F中设定的低频单词分配2字节或者3字节的代码。
此外,在2/3字节区域310F中仅设定有对在这样的2/3字节区域310F中设定的单词分配的字节代码中的、前一半的1字节的代码。在后述的2/3字节分配表316中定义有对在2/3字节区域310F中设定的单词分配的2字节或者3字节的代码。
图16是表示本实施例3所涉及的英语单词2字节代码分配表的一个例子的图。如图16所示,英语单词2字节代码分配表315a对高频英语单词和2字节的代码建立对应关系。
在英语单词2字节代码分配表315a中,在“4000h~5FFFh”中设定高频英语单词,并分配与设置位置相应的2字节的代码。例如,对在设定位置“4000h”中设定的高频英语单词分配2字节的代码“4000h”。
图17是表示本实施例3所涉及的日语单词2字节分配表的一个例子的图。如图17所示,该日语单词2字节代码分配表315b对高频日语单词与2字节的代码建立对应关系。
在日语单词2字节分配表315b中,在“8000h~9FFFh”中设定高频日语单词,并分配与设置位置相应的2字节的代码。例如,对在设定位置“8000h”中设定的高频日语单词分配2字节的代码“8000h”。
图18是表示本实施例3所涉及的2/3字节分配表的一个例子的图。如图18所示,该2/3字节分配表316分配低频单词与2字节的代码或者3字节的代码。例如,对在A000h~E7FFh、F000h~F7FFh中设定的低频单词分配2字节的代码。对在E90000h~EFFFFFh、F90000h~FFFFFFh中设定的低频单词分配3字节的代码。
返回到图14a的说明。代码转换部350是基于控制符号来切换代码分配表,并基于切换后的代码分配表对文本数据进行译码的处理部。代码转换部350使用代码分配表310对控制符号“SI”以后的文本数据进行代码转换。另一方面,编码装置300在从文本数据中检测出控制符号“SO”的情况下,使用代码分配表50进行代码转换。有关现有技术的代码分配表50的说明与在实施例1中说明的相同。代码转换部350将译码出的文本数据储存至寄存器305b。
以下,对代码转换部350使用代码分配表310进行译码的处理的一个例子进行说明。代码转换部350从文本数据中获取信息(英语单词、日语单词、控制符号等)。代码转换部350确定从文本数据中获取到的信息是否与各区域310A~310F的某一个区域的信息对应,并进行与确定出的区域相应的译码。
对代码转换部350所获取到的信息是在控制符号1字节区域310A中设定的控制符号的情况进行说明。代码转换部350对获取到的控制符号与在控制符号1字节区域310A中设定的各控制符号进行比较,确定相应的设定位置的1字节的代码,并进行译码。例如,代码转换部350在获取控制符号是“NUL”的情况下,将这样的控制符号“NUL”译码层“00h”。
此外,代码转换部350在获取到的控制符号是“SO”的情况下,将这样的控制符号“SO”译码成“0Eh”,并且将所利用的代码分配表切换成代码分配表50。
代码转换部350在获取到的控制符号是“SI”的情况下,将这样的控制符号“SI”译码成“0Fh”,并且将所利用的代码分配表切换成代码分配表310。
对代码转换部350所获取到的信息是在英语单词1字节区域310B中设定的英语单词的情况进行说明。代码转换部350对获取到的英语单词与在英语单词1字节区域310B中设定的各英语单词进行比较,确定相应的设定位置的1字节的代码,并进行译码。例如,代码转换部350在获取到的英语单词是“the”的情况下,将这样的英语单词“the”译码成“27h”。
对代码转换部350获取到的信息是在英语单词2字节区域310C中设定的英语单词的情况进行说明。代码转换部350对获取到的英语单词与英语单词2字节代码分配表315a进行比较,确定相应的设置位置的2字节的代码,并进行译码。例如,代码转换部350在获取到的单词是在英语单词2字节代码分配表315a的“4000h”中设定的某个高频英语单词的情况下,将这样的高频英语单词译码成2字节的代码“4000h”。
对代码转换部350所获取到的信息是在日语单词1字节区域310D中设定的日语单词的情况进行说明。代码转换部350对获取到的日语单词与在日语单词1字节区域310D中设定的各日语单词进行比较,确定相应的设定位置的1字节的代码,并进行译码。例如,代码转换部350在获取到的日语单词是“の”的情况下,将这样的日语单词“の”译码成“65h”。
对代码转换部350所获取到的信息是在日语单词2字节区域310E中设定的日语单词的情况进行说明。代码转换部350对获取到的日语单词与日语单词2字节代码分配表315b进行比较,确定相应的设置位置的2字节的代码,并进行译码。例如,代码转换部350在获取到的单词是在日语单词2字节代码分配表315b的“8000h”中设定的某个高频日语单词的情况下,将这样的高频日语单词译码成2字节的代码“8000h”。
对代码转换部350所获取到的信息是在2/3字节区域310F中设定的低频单词的情况进行说明。代码转换部350对获取到的单词与2/3字节代码分配表316进行比较,确定相应的设定位置的2字节或者3字节的代码,并进行译码。例如,代码转换部350在获取到的单词是在2/3字节代码分配表316的“A000h”中设定的低频单词的情况下,将这样的低频单词译码成2字节的代码“A000h”。例如,代码转换部350在获取到的单词是在2/3字节代码分配表316的“E90000h”中设定的低频单词的情况下,将这样的低频单词译码成3字节的代码“E90000h”。
图14b是表示本实施例3所涉及的解码装置的结构的功能框图。如图14b所示,该解码装置700具有输入部701、输出部702、寄存器705a、705b、存储部706、以及代码转换部750。
输入部701是受理进行代码转换的文本数据的处理部。输入部701将受理的文本数据储存至寄存器705a。
输出部702是输出储存于寄存器705b的字符代码转换后的文本数据的处理部。
寄存器705a是储存代码转换而成的文本数据的部件。寄存器705b是储存字符代码转换后的文本数据的部件。
存储部706具有代码分配表50、代码分配表310、英语单词2字节代码分配表315a、日语单词2字节代码分配表315b、以及2/3字节代码分配表316。存储部706例如对应于RAM、ROM、闪存等半导体存储器件等存储装置。
代码分配表50的说明与在实施例1中说明的相同。有关代码分配表310的说明与在图15中说明的有关码分配表310的说明相同。有关英语单词2字节代码分配表315a的说明与在图16中说明的有关英语单词2字节代码分配表315a的说明相同。有关日语单词2字节代码分配表315b的说明与在图17中说明的有关日语单词2字节分配表315b的说明相同。有关2/3字节代码分配表316的说明与在图18中说明的有关2/3字节代码分配表316的说明相同。
代码转换部750是基于控制符号的代码来切换代码分配表,并基于切换后的代码分配表,对文本数据进行字符译码的处理部。代码转换部750使用代码分配表310对控制符号“SI”的代码以后的文本数据进行字符代码转换。另一方面,解码装置700在从文本数据中检测出控制符号“SO”的代码的情况下,使用代码分配表50来进行字符代码转换。代码转换部750将译码出的文本数据储存至寄存器705b。
以下,对代码转换部750使用代码分配表310进行字符译码的处理的一个例子进行说明。代码转换部750从文本数据中获取代码。代码转换部750确定从文本数据中获取到的代码是否是与各区域310A~310F的某一个区域的信息对应的代码,并进行与确定出的区域相应的字符译码。
对代码转换部750所获取到的代码是在控制符号1字节区域310A中设定的控制符号的代码的情况进行说明。与在控制符号1字节区域310A中设定的控制符号对应的代码的第1字节包含于“00h~1Fh”。代码转换部750从在控制符号1字节区域310A中设定的控制符号中选择与代码对应的控制符号,并根据选择出的控制符号进行字符译码。例如,代码转换部750在获取到的代码是“00h”的情况下,将“00h”字符译码成“NUL”。
此外,代码转换部750在获取到的代码是“0Eh”的情况下,将这样的代码“0Eh”字符译码成“SO”,并且将所利用的代码分配表切换到代码分配表50。
代码转换部750在获取到的代码是“0Fh”的情况下,将这样的代码“0Fh”字符译码成“SI”,并且将所利用的代码分配表切换到代码分配表310。
对代码转换部750所获取到的代码是与在英语单词1字节区域310B中设定的英语单词对应的代码的情况进行说明。与在英语单词1字节区域310B中设定的英语单词对应的代码的第1字节包含于“20h~3Fh”。代码转换部750对获取到的代码与在英语单词1字节区域310B中设定的各英语单词的代码进行比较,确定相应的设定位置的英语单词,并进行字符译码。例如,代码转换部750在获取到的代码是“27h”的情况下,将这样的代码“27h”字符译码成“the”。
对代码转换部750获取到的代码是与在英语单词2字节区域310C中设定的英语单词对应的代码的情况进行说明。与在英语单词2字节区域310C中设定的英语单词对应的代码的第1字节包含于“40h~5Fh”。代码转换部750对获取到的代码与英语单词2字节代码分配表315a进行比较,确定相应的设置位置的英语单词,并进行字符译码。例如,代码转换部750在获取到的代码是“4000h”的情况下,字符译码成与英语单词2字节代码分配表315a的“4000h”对应的高频英语单词。
对代码转换部750获取到的代码是在2/3字节区域310F中设定的低频单词的情况进行说明。与在2/3字节区域310F中设定的低频单词对应的代码的第1字节包含于“A0h~FFh”。代码转换部750对获取到的代码与2/3字节代码分配表316进行比较,确定对应的设定位置的低频单词,并进行字符译码。例如,代码转换部750在获取到的代码是“A000h”的情况下,字符译码成与2/3字节代码分配表316的“A000h”对应的低频单词。
图19a是表示本实施例3所涉及的编码装置的处理顺序的流程图。如图19a所示,编码装置300的输入部301将文本数据储存至寄存器305a(步骤S301)。编码装置300的代码转换部350从文本数据中获取信息(步骤S302)。在步骤S302中,为了便于说明,记作信息,但代码转换部350获取到的信息中包含英语单词、日语单词、控制符号等信息。
代码转换部350判定获取到的信息是否是控制符号的“SO”或者“SI”(步骤S303)。代码转换部350在信息是控制符号的“SO”或者“SI”的情况下(步骤S303,是),移至步骤S304。
代码转换部350在控制符号是“SO”的情况下,选择代码分配表50,在控制符号是“SI”的情况下,选择代码分配表310(步骤S304),并移至步骤S302。
另一方面,代码转换部350在获取到的信息既不是控制符号的“SO”,也不是“SI”的情况下(步骤S303,否),执行第一代码转换处理(步骤S305)。代码转换部350判定文本数据的译码是否结束了(步骤S306)。
代码转换部350在文本数据的译码未结束的情况下(步骤S306,否),移至步骤S302。另一方面,代码转换部350在文本数据的译码结束了的情况下(步骤S306,是),将译码出的文本数据储存至寄存器305b(步骤S307)。
图20a是表示第一代码转换处理的处理顺序的流程图。该代码转换处理对应于图19a的步骤S305所示的处理。如图20a所示,编码装置300的代码转换部350判定是否是代码分配表50选择中(步骤S401)。
代码转换部350在是代码分配表50选择中的情况下(步骤S401,是),参照代码分配表50(步骤S402),并基于代码分配表50,将信息转换成字节代码(步骤S403)。
另一方面,代码转换部350在不是代码分配表50选择中,而是代码分配表310选择中的情况下(步骤S401,否),移至步骤S404。代码转换部350参照代码分配表310(步骤S404),并基于代码分配表310,将信息转换成字节代码(步骤S405)。
图19b是表示本实施例3所涉及的解码装置的处理顺序的流程图。如图19b所示,解码装置700的输入部701将文本数据储存至寄存器705a(步骤S701)。解码装置700的代码转换部750从文本数据中获取代码(步骤S702)。
代码转换部750判定获取到的代码是否是与控制符号的“SO”或者“SI”对应的代码(步骤S703)。代码转换部750在代码是与控制符号的“SO”或者“SI”对应的代码的情况下(步骤S703,是),移至步骤S704。
代码转换部750在代码是与“SO”对应的代码的情况下,选择代码分配表50,在代码是与“SI”对应的代码的情况下,选择代码分配表310(步骤S704),并移至步骤S702。
另一方面,代码转换部750在获取到的代码既不是与“SO”对应的代码,也不是与“SI”对应的代码的情况下(步骤S703,否),执行第二代码转换处理(步骤S705)。代码转换部750判定文本数据的解码是否结束了(步骤S706)。
代码转换部750在文本数据的解码未结束的情况下(步骤S706,否),移至步骤S702。另一方面,代码转换部750在文本数据的解码结束了的情况下(步骤S706,是),将解码而成的文本数据储存至寄存器705b(步骤S707)。
图20b是表示第二代码转换处理的处理顺序的流程图。该代码转换处理对应于图19b的步骤S705所示的处理。如图20b所示,解码装置700的代码转换部750判定是否是代码分配表50选择中(步骤S801)。
代码转换部750在是代码分配表50选择中的情况下(步骤S801,是),参照代码分配表50(步骤S802),并基于代码分配表50,将字节代码转换成字符代码(步骤S803)。
另一方面,代码转换部750在不是代码分配表50选择中,而是代码分配表310选择中的情况下(步骤S801,否),移至步骤S804。代码转换部750参照代码分配表310(步骤S804),并基于代码分配表310,将字节代码转换成字符代码(步骤S805)。
接下来,对本实施例3所涉及的编码装置300的效果进行说明。编码装置300对以往的代码分配表50和本实施例3特有的代码分配表310进行切换来利用。例如,编码装置300在从文本数据中检测出控制符号“SI”的情况下,使用代码分配表310对控制符号“SI”以后的文本数据进行代码转换。另一方面,编码装置300在从文本数据中检测出控制符号“SO”的情况下,使用代码分配表50来进行代码转换。因此,能够与使用了以往的代码分配表50的代码转换对应,并且对出现频率较高的字符、单词分配较短的字节代码。
另外,解码装置700切换使用上述代码分配表50、310,来对译码出的文本数据进行解码,所以能够与使用了以往的代码分配表50的字符代码转换对应,并且即使在对出现频率较高的单词、一般符号分配了较短的字节代码的情况下,也能够将这样的字节代码转换成单词、一般符号。
[实施例4]
图21是表示本实施例4所涉及的解码装置的处理的一个例子的图。本实施例4所涉及的解码装置使用第一自动机806a、第二自动机806b、第三自动机806c,对代码转换而成的文本数据10b进行字符代码转换,从而生成文本数据10a。文本数据10b例如是由在实施例1中说明的编码装置100代码转换而成的。
第一自动机806a对1字节的代码和与1字节的代码对应的字符建立对应关系。图22是表示第一自动机的一个例子的图。如图22所示,第一自动机806a对“00h~2Fh”与各单词建立有对应关系。例如,与“00h~2Fh”建立了对应关系的各单词与在图3中说明的1字节区域110A的各单词对应。
第二自动机806b对2字节的代码与规定的字符串、空格、符号、高频单词等建立对应关系。图23是表示第二自动机的一个例子的图。如图23所示,第二自动机806b对“3000h~5FFFh”与字符串、空格、符号、高频单词等建立有对应关系。在这里虽然省略图示,但在第二自动机806b中,也可以对2字节的代码与字母数字、符号、平假名、片假名、汉字、数值、时刻、标签、语法建立对应关系。例如,与“3000h~5FFFh”建立对应关系的信息与在图4中说明的2字节代码分配表115a中与“3000h~5FFFh”建立对应关系的信息相对应。
第三自动机806c对3字节的代码与规定的CJK字符、英语单词、日语单词、第三国单词、数值、时刻、标签、语法语义解析的结果建立对应关系。图24是表示第三自动机的一个例子的图。如图24所示,第三自动机806c对“600000h~FFFFFFh”与规定的CJK字符、英语单词、日语单词、第三国单词、数值、时刻、标签、语法语义解析的结果建立有对应关系。此外,“E00000h~FFFFFFh”为预备的区域。例如,与“600000h~FFFFFFh”建立对应关系的信息与在图5中说明的3字节代码分配表115b中与“600000h~FFFFFFh”建立对应关系的信息相对应。
返回到图21的说明。代码转换部850从代码转换而成的文本数据10b中读出代码,并基于代码的前4位的值,选择第一自动机806a、第二自动机806b、第三自动机806c中的任意一个自动机。而且,代码转换部850基于选择出的自动机,来对代码进行转换。
例如,代码转换部850在代码的前4位包含于“00h~2Fh”的情况下,选择第一自动机806a,并基于第一自动机806a对代码进行转换。
代码转换部850在代码的前4位包含于“30h~5Fh”的情况下,选择第二自动机806b,并基于第二自动机806b对代码进行转换。
代码转换部850在代码的前4位包含于“60h~FFh”的情况下,选择第三自动机806c,并基于第三自动机806c对代码进行转换。
由于图21的文本数据10b所包含的各代码“12h、08h、07h、00h”的前4位包含于“00h~2Fh”,所以代码转换部850选择第一自动机806a,来对代码进行转换。例如,代码转换部850基于第一自动机806a将“12h、08h、07h、00h”分别转换成“he△、is△、in△、the△”。
由于图21的文本数据10b所包含的代码“4341h”的前4位包含于“30h~5Fh”,所以代码转换部850选择第二自动机806b,来对代码进行转换。例如,代码转换部850基于第二自动机806b将“4341h”转换成“house△”。代码转换部850执行上述处理,从而将文本数据10b转换成文本数据10a。
图25是表示本实施例4所涉及的解码装置的结构的功能框图。如图25所示,该解码装置800具有输入部801、输出部802、寄存器805a、805b、存储部806、代码转换部850。
输入部801是受理代码转换而成的文本数据的处理部。输入部801将受理的文本数据储存至寄存器805a。
输出部802是输出储存于寄存器805b的文本数据的处理部。
存储部806具有第一自动机806a、第二自动机806b、以及第三自动机806c。存储部806例如对应于RAM、ROM、闪存等半导体存储器件等存储装置。
有关第一自动机806a、第二自动机806b、第三自动机806c的说明与在图21中说明的有关第一自动机806a、第二自动机806b、第三自动机806c的说明相同。
代码转换部850从代码转换而成的文本数据10b中读出代码,并基于代码的前4位的值,选择第一自动机806a、第二自动机806b、第三自动机806c中的任意一个自动机。而且,代码转换部850基于选择出的自动机对代码进行转换。代码转换部850的具体的处理与在图21中说明的代码转换部850的处理相同。
图26是表示本实施例4所涉及的解码装置的处理顺序的流程图。如图26所示,解码装置800的输入部801将文本数据储存至寄存器805a(步骤S901)。解码装置800的代码转换部850从储存于寄存器805a的文本数据中获取代码(步骤S902)。
代码转换部850对代码的前4位的值与各自动机进行比较(步骤S903)。代码转换部850判定代码的前4位的值是否命中了第一自动机806a(步骤S904)。代码转换部850在代码的前4位的值命中了第一自动机806a的情况下(步骤S904,是),选择第一自动机806a(步骤S905)。代码转换部850基于第一自动机806a将代码转换成单词(步骤S906),移至步骤S912。
另一方面,代码转换部850在代码的前4位的值未命中第一自动机806a的情况下(步骤S904,否),判定代码的前4位的值是否命中了第二自动机806b(步骤S907)。代码转换部850在代码的前4位的值命中了第二自动机806b的情况下(步骤S907,是),选择第二自动机806b(步骤S908)。代码转换部850基于第二自动机806b将代码转换成单词(步骤S909),并移至步骤S912。
另一方面,代码转换部850在代码的前4位的值未命中第二自动机806b的情况下(步骤S907,否),选择第三自动机806c(步骤S910)。代码转换部850基于第三自动机806c将代码转换成单词(步骤S911)。
代码转换部850判定文本数据的解码是否结束了(步骤S912)。代码转换部850在文本数据的解码未结束的情况下(步骤S912,否),移至步骤S902。
另一方面,代码转换部850在文本数据的解码结束了的情况下(步骤S912,是),将解码而成的文本数据储存至寄存器805b(步骤S913)。
接下来,对解码装置800的效果进行说明。解码装置800从代码转换而成的文本数据10b中读出代码,并基于代码的前4位的值,选择第一自动机806a、第二自动机806b、第三自动机806c中的任意一个自动机。而且,解码装置800基于选择出的自动机,对代码进行转换。由此,即使在通过编码装置100等,将应分配给较短的代码的、与出现频率较高的字符、单词建立了对应关系的代码等2字节以上的代码分配给1字节代码的情况下,也能够使用解码装置800适当解码。即,能够通过解码装置800,将应分配给较短的代码的、与出现频率较高的字符、单词建立了对应关系的代码等2字节以上的代码分配给1字节代码。
以下,对本实施方式所使用的硬件以及软件进行说明。图27表示计算机1的硬件结构例。计算机1例如包含处理器401、RAM(Random、Access、Memory)402、ROM(Read OnlyMemory)403、驱动器装置404、存储介质405、输入接口(I/F)406、输入设备407、输出接口(I/F)408、输出设备409、通信接口(I/F)410、SAN(Storage Area Network:存储区域网络)接口(I/F)411以及总线412等。各个硬件经由总线412连接。
RAM402是可读写的存储器装置,例如,可使用SRAM(Static RAM:静态RAM)、DRAM(Dynamic RAM:动态RAM)等半导体存储器,或者不使用RAM而使用闪存等。ROM403也包含PROM(Programmable ROM:可编程ROM)等。驱动器装置404是进行记录于存储介质405的信息的读出或写入的至少任意一方的装置。存储介质405对通过驱动器装置404被写入的信息进行存储。存储介质405例如是硬盘、SSD(Solid State Drive:固态硬盘)等闪存、CD(CompactDisc:光盘)、DVD(Digital Versatile Disc:数字多功能光盘)、蓝光盘等存储介质。另外,例如,计算机1对多个种类的存储介质分别设置驱动器装置404以及存储介质405。
输入接口406是与输入设备407连接,将从输入设备407接收到的输入信号传递至处理器401的电路。输出接口408是与输出设备409连接,使输出设备409执行与处理器401的指示相应的输出的电路。通信接口410是进行经由网络3的通信的控制的电路。通信接口410例如是网络接口卡(NIC)等。SAN接口411是通过存储区域网络进行与计算机1连接的存储装置的通信的控制的电路。SAN接口411例如是主机总线适配器(HBA)等。
输入设备407是根据操作发送输入信号的装置。输入信号例如是键盘或安装于计算机1的主体的按钮等键装置、鼠标、触摸面板等指示设备。输出设备409是根据计算机1的控制输出信息的装置。输出设备409例如是显示器等图像输出装置(显示设备)、扬声器等声音输出装置等。另外,例如,触摸屏等输入输出装置作为输入设备407以及输出设备409来使用。另外,输入设备407以及输出设备409也可以与计算机1一体,也可以是不包含于计算机1,例如从外部连接于计算机1的装置。
例如,处理器401将存储于ROM403、存储介质405的程序读出至RAM402,并根据读出的程序的顺序,来进行输入部101、201、301、代码转换部150、250、350、输出部102、202、302的处理。此时,RAM402作为处理器401的工作区域来使用。存储部的功能通过ROM403以及存储介质405存储程序文件(后述的应用程序24、中间件23以及OS22等)、数据文件(文本数据、成为比较对象的字符串),RAM402作为处理器401的工作区域来使用而实现。对于处理器401读出的程序,使用图28来进行说明。
图28是表示在计算机中动作的程序的结构例。在计算机1中,进行如图28所示的硬件组21(401~412)的控制的OS(操作系统)22动作。处理器401按照依据OS22的顺序动作,进行硬件组21的控制/管理,从而由硬件组21执行依据应用程序24、中间件23的处理。并且,在计算机1中,中间件23或者应用程序24被读出至RAM402并被处理器401执行。
处理器401在调出了比较功能的情况下,通过进行基于中间件23或者应用程序24的至少一部分的处理,来(基于OS22来控制硬件组21进行这些处理)实现代码转换部150、250、350的功能。比较功能也可以分别包含于应用程序24本身,也可以是根据应用程序24被调出从而被执行的中间件23的一部分。
图29表示实施方式的系统中的装置的结构例。图29的系统包含计算机1a、计算机1b、基站2以及网络3。计算机1a通过无线或者有线的至少一方,同与计算机1b连接的网络3连接。图2a、图8a、图14a所示的编码装置100、200、300的功能也可以包含于图29所示的计算机1a和计算机1b的任意一方。另外,图2b、图8b、图14b、图25所示的解码装置500、600、700、800的功能也可以包含于图29所示的计算机1a和计算机1b的任意一方。
关于包含以上的各实施例的实施方式,进一步公开以下的附记。
(附记1)一种编码方法,其特征在于,
是由计算机执行的编码方法,该方法执行如下处理:
将储存于存储装置的、被分配给第一代码分配表的1字节区域的字符的一部分分配给2字节区域,并且对被分配给上述2字节区域的上述字符的至少一部分分配2字节以上的代码,从而参照定义了对输入的字符数据进行译码的转换规则的第二代码分配表,
基于上述第二代码分配表,对输入的字符数据进行译码。
(附记2)根据附记1所述的编码方法,其特征在于,上述第二代码分配表是在上述第二代码分配表的1字节区域设定了上述第一代码分配表的1字节区域的字母数字的代码分配表、或者是在上述第二代码分配表的2字节区域设定了上述第一代码分配表的1字节区域的字母数字的代码分配表。
(附记3)根据附记2所述的编码方法,其特征在于,上述存储装置还存储上述第一代码分配表,上述译码的处理基于输入的字符数据所包含的控制符号,来选择上述第一代码分配表或者上述第二代码分配表,并基于选择出的上述第一代码分配表或者上述第二代码分配表,对输入的上述字符数据进行译码。
(附记4)一种编码装置,其特征在于,上述编码装置具有:
存储部,其将被分配给第一代码分配表的1字节区域的字符的一部分分配给2字节区域,并且对被分配给上述2字节区域的上述字符的至少一部分分配2字节以上的代码,从而存储定义了对输入的字符数据进行译码的转换规则的第二代码分配表;以及
代码转换部,其基于上述第二代码分配表对输入的字符数据进行译码。
(附记5)根据附记4所述的编码装置,其特征在于,上述第二代码分配表是在上述第二代码分配表的1字节区域设定了上述第一代码分配表的1字节区域的字母数字的代码分配表、或者是在上述第二代码分配表的2字节区域设定了上述第一代码分配表的1字节区域的字母数字的代码分配表。
(附记6)根据附记4所述的编码装置,其特征在于,上述存储部还存储上述第一代码分配表,上述代码转换部还执行如下处理:基于输入的字符数据所包含的控制符号,选择上述第一代码分配表或者上述第二代码分配表,并基于选择出的上述第一代码分配表或者上述第二代码分配表,对输入的上述字符数据进行译码。
(附记7)一种解码方法,其特征在于,是由计算机执行的解码方法,使计算机执行如下处理:
将储存于存储装置的、被分配给第一代码分配表的1字节区域的字符的一部分分配给2字节区域,并且对被分配给上述2字节区域的上述字符的至少一部分分配2字节以上的代码,从而参照定义了对输入的字符数据进行译码的转换规则的第二代码分配表,
基于上述第二代码分配表,将译码出的数据解码成字符数据。
(附记8)一种解码装置,其特征在于,上述解码装置具有:
存储部,其将被分配给第一代码分配表的1字节区域的字符的一部分分配给2字节区域,并且对被分配给上述2字节区域的上述字符的至少一部分分配2字节以上的代码,从而存储定义了对输入的字符数据进行译码的转换规则的第二代码分配表;以及
代码转换部,其基于上述第二代码分配表将译码出的数据解码成字符数据。
(附记9)一种解码方法,其特征在于,是由计算机执行的解码方法,上述解码方法执行如下处理:
将储存于存储装置的、被分配给第一代码分配表的1字节区域的字符的一部分分配给2字节区域,并且对被分配给上述2字节区域的上述字符的至少一部分分配2字节以上的代码,从而参照定义了对输入的字符数据进行译码的转换规则,且是上述译码出的代码数据的前4位的值根据该代码数据的代码长度而不同的转换规则的第二代码分配表,
利用基于上述第二代码分配表生成的多个自动机,通过上述多个自动机中的、根据该数据的前4位的值选择的自动机,将译码出的数据解码成字符数据。
(附记10)一种解码装置,其特征在于,上述解码装置具有:
存储部,其将被分配给第一代码分配表的1字节区域的字符的一部分分配给2字节区域,并且对被分配给上述2字节区域的上述字符的至少一部分分配2字节以上的代码,从而存储基于定义了对输入的字符数据进行译码的转换规则,且是上述译码出的代码数据的前4位的值根据该代码数据的代码长度而不同的转换规则的第二代码分配表生成的多个自动机;以及
代码转换部,其利用上述多个自动机,通过上述多个自动机中的、根据该数据的前4位的值选择的自动机将译码出的数据解码成字符数据。
附图标记的说明
100、200、300…编码装置;150、250、350…代码转换部。

Claims (6)

1.一种编码方法,其特征在于,
是由计算机执行的编码方法,上述编码方法执行下述处理:
将储存于存储装置的、被分配给第一代码分配表的1字节区域的字符的一部分分配给2字节区域,并且对被分配给上述2字节区域的上述字符的至少一部分分配2字节以上的代码,从而参照定义了对输入的字符数据进行译码的转换规则的第二代码分配表,
基于上述第二代码分配表,对输入的字符数据进行译码。
2.一种编码装置,其特征在于,具有:
存储部,其将被分配给第一代码分配表的1字节区域的字符的一部分分配给2字节区域,并且对被分配给上述2字节区域的上述字符的至少一部分分配2字节以上的代码,从而存储定义了对输入的字符数据进行译码的转换规则的第二代码分配表;以及
代码转换部,其基于上述第二代码分配表,对输入的字符数据进行译码。
3.一种解码方法,其特征在于,
是由计算机执行的解码方法,使计算机执行如下处理:
将储存于存储装置的、被分配给第一代码分配表的1字节区域的字符的一部分分配给2字节区域,并且对被分配给上述2字节区域的上述字符的至少一部分分配2字节以上的代码,从而参照定义了对输入的字符数据进行译码的转换规则的第二代码分配表,
基于上述第二代码分配表,将译码出的数据解码成字符数据。
4.一种解码装置,其特征在于,具有:
存储部,其将被分配给第一代码分配表的1字节区域的字符的一部分分配给2字节区域,并且对被分配给上述2字节区域的上述字符的至少一部分分配2字节以上的代码,从而存储定义了对输入的字符数据进行译码的转换规则的第二代码分配表;以及
代码转换部,其基于上述第二代码分配表,将译码出的数据解码成字符数据。
5.一种解码方法,其特征在于,
是由计算机执行的解码方法,上述解码方法执行如下处理:
将储存于存储装置的、被分配给第一代码分配表的1字节区域的字符的一部分分配给2字节区域,并且对被分配给上述2字节区域的上述字符的至少一部分分配2字节以上的代码,从而参照定义了对输入的字符数据进行译码的转换规则,且是上述译码出的代码数据的前4位的值根据该代码数据的代码长度而不同的转换规则的第二代码分配表,
利用基于上述第二代码分配表生成的多个自动机,通过上述多个自动机中的、根据该数据的前4位的值选择出的自动机,将译码出的数据解码成字符数据。
6.一种解码装置,其特征在于,上述解码装置具有:
存储部,其将被分配给第一代码分配表的1字节区域的字符的一部分分配给2字节区域,并且对被分配给上述2字节区域的上述字符的至少一部分分配2字节以上的代码,从而存储基于定义了对输入的字符数据进行译码的转换规则,且是上述译码出的代码数据的前4位的值根据该代码数据的代码长度而不同的转换规则的第二代码分配表生成的多个自动机;以及
代码转换部,其利用上述多个自动机,通过上述多个自动机中的、根据该数据的前4位的值选择的自动机,将译码出的数据解码成字符数据。
CN201610545992.5A 2015-07-13 2016-07-12 编码方法、编码装置、解码方法以及解码装置 Active CN106354699B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2015139783A JP6540306B2 (ja) 2015-07-13 2015-07-13 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
JP2015-139783 2015-07-13
JP2016098753A JP6665679B2 (ja) 2016-05-17 2016-05-17 復号化プログラム、復号化方法および復号化装置
JP2016-098753 2016-05-17

Publications (2)

Publication Number Publication Date
CN106354699A true CN106354699A (zh) 2017-01-25
CN106354699B CN106354699B (zh) 2021-05-18

Family

ID=56551161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610545992.5A Active CN106354699B (zh) 2015-07-13 2016-07-12 编码方法、编码装置、解码方法以及解码装置

Country Status (3)

Country Link
US (2) US9779071B2 (zh)
EP (1) EP3119003A3 (zh)
CN (1) CN106354699B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108897721A (zh) * 2018-05-28 2018-11-27 华为技术有限公司 一种对多种编码的数据进行解码的方法和装置
CN111832257A (zh) * 2019-04-16 2020-10-27 三星电子株式会社 编码数据的条件转码
US11838035B2 (en) 2019-03-15 2023-12-05 Samsung Electronics Co., Ltd. Using predicates in conditional transcoder for column store

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5928577B2 (ja) * 2012-03-29 2016-06-01 富士通株式会社 判定装置、判定システム、判定方法および判定プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796356A (en) * 1995-03-14 1998-08-18 Fujitsu Limited Data compressing apparatus, data restoring apparatus and data compressing/restoring system
CN1536768A (zh) * 2003-04-08 2004-10-13 株式会社泛泰 2字节字符数据的压缩方法
CN101350624A (zh) * 2008-09-11 2009-01-21 中国科学院计算技术研究所 一种支持ansi编码的中文文本的压缩方法
CN102508824A (zh) * 2011-09-29 2012-06-20 苏州大学 一种微博信息的压缩编码和解码的方法及装置
CN102918524A (zh) * 2010-05-28 2013-02-06 富士通株式会社 信息生成程序、装置、方法以及信息检索程序、装置、方法
CN104584439A (zh) * 2012-08-20 2015-04-29 富士通株式会社 存储程序、存储方法、存储装置、解压缩程序、解压缩方法和解压缩装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07287716A (ja) 1994-02-22 1995-10-31 Ricoh Co Ltd 辞書検索装置
JPH1185459A (ja) 1997-09-01 1999-03-30 Denso Corp 文字データ符号化方法および記録媒体
JPH11143877A (ja) 1997-10-22 1999-05-28 Internatl Business Mach Corp <Ibm> 圧縮方法、辞書の見出し語インデックス・データを圧縮するための方法、及び機械翻訳システム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796356A (en) * 1995-03-14 1998-08-18 Fujitsu Limited Data compressing apparatus, data restoring apparatus and data compressing/restoring system
CN1536768A (zh) * 2003-04-08 2004-10-13 株式会社泛泰 2字节字符数据的压缩方法
CN101350624A (zh) * 2008-09-11 2009-01-21 中国科学院计算技术研究所 一种支持ansi编码的中文文本的压缩方法
CN102918524A (zh) * 2010-05-28 2013-02-06 富士通株式会社 信息生成程序、装置、方法以及信息检索程序、装置、方法
CN102508824A (zh) * 2011-09-29 2012-06-20 苏州大学 一种微博信息的压缩编码和解码的方法及装置
CN104584439A (zh) * 2012-08-20 2015-04-29 富士通株式会社 存储程序、存储方法、存储装置、解压缩程序、解压缩方法和解压缩装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J.PIKE: "《Text compression using a 4 bit coding scheme》", 《THE COMPUTER JOURNAL》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108897721A (zh) * 2018-05-28 2018-11-27 华为技术有限公司 一种对多种编码的数据进行解码的方法和装置
CN108897721B (zh) * 2018-05-28 2022-05-10 华为云计算技术有限公司 一种对多种编码的数据进行解码的方法和装置
US11838035B2 (en) 2019-03-15 2023-12-05 Samsung Electronics Co., Ltd. Using predicates in conditional transcoder for column store
CN111832257A (zh) * 2019-04-16 2020-10-27 三星电子株式会社 编码数据的条件转码
CN111832257B (zh) * 2019-04-16 2023-02-28 三星电子株式会社 编码数据的条件转码

Also Published As

Publication number Publication date
EP3119003A2 (en) 2017-01-18
EP3119003A3 (en) 2017-03-01
CN106354699B (zh) 2021-05-18
US9779071B2 (en) 2017-10-03
US20170017629A1 (en) 2017-01-19
US20180052810A1 (en) 2018-02-22

Similar Documents

Publication Publication Date Title
CN106354699A (zh) 编码方法、编码装置、解码方法以及解码装置
CN101283571A (zh) 利用使用者终端机键盘上的符号字符输入多种语言的方法
CN102934417A (zh) 多语言键输入装置及其方法
CN104461228B (zh) 电子装置及其文字输入界面显示方法
CN104380286A (zh) 索引生成程序以及检索程序
JP6665679B2 (ja) 復号化プログラム、復号化方法および復号化装置
EA005175B1 (ru) Устройство и способ ввода алфавитных символов с кнопочной панели
JP6540306B2 (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
KR20010083120A (ko) 키패드에서의 알파벳 입력장치 및 그 방법
KR100655720B1 (ko) 키패드에서의 알파벳 입력장치 및 그 방법
JPH0683812A (ja) 文書入力装置のかな漢字変換装置
KR100625357B1 (ko) 키패드에서의 알파벳 입력장치 및 그 방법
KR20030008254A (ko) 키패드에서의 알파벳 입력장치 및 그 방법
KR200419298Y1 (ko) 키패드에서의 알파벳 입력장치 및 그 방법
KR20080086070A (ko) 단어 검색 방법
KR100848727B1 (ko) 키패드에서의 알파벳 입력장치 및 그 방법
KR20090036110A (ko) 키패드에서의 수학 연산자 입력 방법 및 그 장치
JP2013174958A (ja) テキスト読み上げ装置およびテキスト読み上げ方法
KR20200015436A (ko) 키패드에서의 수학 연산자 입력 방법 및 그 장치
KR20070036116A (ko) 키패드에서의 알파벳 입력장치 및 그 방법
KR20060017897A (ko) 키패드에서의 알파벳 입력장치 및 그 방법
JP2015166905A (ja) 辞書表示機能を備えた電子機器およびプログラム
KR20200102387A (ko) 키패드에서의 수학 연산자 입력 방법 및 그 장치
JPS6278673A (ja) 仮名漢字変換装置
CN101661466A (zh) 一种语句输入方法及其语句显示方式

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant