2015年4月16日 (木)

LXDICのバリエーション

■LXDICのバリエーション(検討資料)
メモリー使用量,複合検索/画像表示の有無によるLXDICのバリエーション
                                       .
LXDIC(通常版)
 名称  アドレス サイズ 圧縮型 複合 画像 メモリー     
・LXDIC long   2GB以下  1   ○  ○  80KB   開発済
・LXDIC long+int 4GB超   1,2  ○  ○  100KB  (未開発)※
 ※20KBの追加メモリーが必要 ==> 実現性に?
                                       .
LXDIC Lite(省メモリー版) Cドライブ:40KB使用
 名称  アドレス サイズ 圧縮型 複合 画像 メモリー     
・LXDIK long+int 4GB超   1,2  ×  ○  66KB   開発済
・LXDIQ long+int 4GB超   1,2  ×  ×  63KB   開発済
                                       .
LXDIC Lite2(最小メモリー版) Cドライブ:56KB使用,速度低下:検索時間1.5倍
 名称  アドレス サイズ 圧縮型 複合 画像 予想メモリー     
・LXDIK long+int 4GB超   1,2  ×  ○  54KB   テスト 
・LXDIQ long+int 4GB超   1,2  ×  ×  51KB   テスト
                                       .
LXDIC Lite3(圧縮率改善版) Cドライブ:56KB使用,メモリー増,速度低下大 
 名称  アドレス サイズ 圧縮型 複合 画像 予想メモリー     
・LXDIK long+int 4GB超   1,3  ×  ○  66KB   未定
・LXDIQ long+int 4GB超   1,3  ×  ×  63KB   未定
                                       .
(備考)
圧縮型1,2,3は,環状バッファ/圧縮単位の違い.
 圧縮型  圧縮率   環状バッファ  圧縮単位 
  1   55%程度    1KB      2KB  
  2   50%程度    4KB      8KB  
  3   45%程度    16KB      16KB  ※実装困難  
 
圧縮型2(現状)の圧縮率改善
 buf-unit    圧縮率
  4- 8KB    50.2%
  4-16KB    48.5%
  4-32KB    47.5%
                                       .
                                       .
[HP200LX/LXDIC]

|

2015年4月10日 (金)

FRESPCテストデータ

■FRESPCテストデータ
.
●INT 21h ファンクション
     AH = 36h - GET FREE DISK SPACE
 Entry: DL = drive number (0=default, 1=A:, etc)
 Return:AX = FFFFh if invalid drive
   AX = sectors per cluster     128  <--4GBカード
   BX = number of free clusters   
   CX = bytes per sector      512  <--4GBカード
   DX = total clusters on drive   
.
 KLの空容量取得箇所
  kl_dos.asm  :容量計算 AX,BX,CX,DX使用  
  kl_copy.asm :ファイルコピー CX使用   
  kl_dir.asm  :容量計算 AX,BX,CX,DX使用  

●セクターサイズを改変する場合: ainfox.exe   <=== 使えない
 ・セクター数   :AX=128
 ・セクターサイズ :CX=512 ==> 511 バイト
 ・クラスターサイズ:128*511 = 65408 = 0xff80
.
 KL1.28でのファイルコピー
 Ainfox22
 ファイルの比較:64KB以上のファイルでエラーが発生
 Ainfox23
.
.
●セクター数を改変する場合: ainfo.exe  <=== 使える可能性
 ・セクター数   :AX=128 ==> 127
 ・空クラスター数 :BX      ==> BX*128/127
 ・セクターサイズ :CX=512
 ・全クラスター数 :DX     ==> DX*128/127
 ・クラスターサイズ:127*512 = 65024 = 0xfe00
 ファイルコピーでの不整合は発生しないが,他の操作は未確認.
 実用性が各段に向上する訳ではないので,開発は中止する.
. 
 Ainfo42
 Ainfo41
.
.
●KLを改良する場合              <=== 使える
・公開不可.私家版のみ.
・表示項目を増やし,必要な場合は32ビット整数で計算する.
  追加項目
   Sector /Cluster
   Cluster / Drive
・修正ファイル
  kl_dos.asm
  kl_copy.asm
  kl_dir.asm
  klexe.c
  kl_sub.c
  kl_com.c
  kl_def.h
  kl_func.h
  kl_var.h
  kl_ver.inc
・ainfow.exe+KL1.27改 で使うと,全て正しい数値が表示される.
・ファイル破損等の不具合が発生する可能性もある.
 現在のところ,問題は発生していない..
.
ainfow + KL 1.27(64KBクラスター対応改造版)
Ainfo23
.  

[HP200LX/LXDIC]

|

2015年4月 8日 (水)

FRESPC実験室

■FRESPC実験室
 
4GBカードの場合,FRESPCが正しいデータを通知しても,受け取る側のプロ
グラムが64KBクラスターに対応していないと正しい表示にはならない.
 
この原因は,計算途中における,16ビット整数のオーバーフローにある.
4GBカードでは,
   1クラスタあたりのセクタ数: 128
   1セクタあたりのバイト数 : 512
となっているため,クラスター長(バイト)が,
   128*512 = 65536 = 0x10000 ==> 0x0000
となり,オーバーフローが発生している.(クラスター長 = 0)
全容量,空容量とも,0 になる.
 
 
これを回避するためには,32ビット整数で計算すれば良いのだが,既存プロ
グラムの修正には種々の困難がある.
しかし,元々,リアルタイムに容量を計算している訳ではないので,多少の
誤差を認めるならば,代替のオーバーフロー回避方法がある.
 
●セクターサイズを改変する場合:aifnox.exe
 セクター長 :512 ==> 511
 セクター数 :128
 クラスター長:128*511 = 65408 = 0xff80 (オーバーフローなし)
 (ainfox.exe)
..Scrn0000 .
..Scrn0003
.
コピー操作は外見上は正常に完了するが,ファイル内容が壊れる.
約64KBごとの位置で,1バイトだけ異なるものに変化する.
DOSのcopyコマンドや,シスマネのFilerでは,この不具合は起らない. 
.. 
.
●セクター数を改変する場合:ainfo.exe
 セクター長 :512
 セクター数 :128 ==> 127
 クラスター長:127*512 = 65024 = 0xfe00(オーバーフローなし)
(ainfo.exe)
..Ainfo21 .
..Ainfo22
.
表示およびコピー操作に関しては正常で,ファイルの破損はない.
その他の機能に関しては,テストを継続して様子を見る必要がある.
.
[HP200LX/LXDIC]

|

2015年4月 5日 (日)

HP200LXのソフトウェアによる倍速化

■HP200LXのソフトウェアによる倍速化

●ライトスリープ
電池駆動時,HP200LXのライトスリープは,省電力のため動作スピードをAC駆動
時の最大5分の1程度に落してしまう.
 標準速の最高速度を100としたときの動作速度(無操作時)
   標準速機:100 ===> 9
   倍速機 :200 ===> 18 
キーボード操作等の何らかの入力がある時は,これほどは低下しないため,平均
的には,約1/2程度の速度低下になっている.
 電池駆動時の平均動作速度
   倍速機 :100以下
ハードウェア的に倍速化しても,ライトスープがそれを帳消にしてしまっている.

●ソフトウェアによる倍速化
このような省電力に傾き過ぎたライトスリープ制御を,スピード優先の制御に変
更し,動作を高速化するのが,常駐ソフトAwakeである.
Awakeを常駐させれば,標準速機の動作速度は,Awake非常駐の倍速機のスピード
を上まわる.
 速度の推定値
   標準速機:Awake常駐  100 ===> 100(ほぼ100%のスピード)
   倍速機 :Awakeなし  200 ===> 20~100(平均値)
(参考)Awakeの効果   
  http://hp200lx.cocolog-nifty.com/blog/2012/06/awake-6a6d.html  

●実験データ
実験条件
 標準速機:HP200LX 2MB新型 無改造: 2MB RAM 4GB-SD,※
      Awake常駐,acecard3使用,電池駆動
 倍速機 :HP200LX 2MB旧型 倍速化: 5MB RAM 4GB-SD,※
      Awakeなし,acecard3使用,電池駆動
 ※SDカードを使用する場合,hppower または,acecard3の省電力制御機能
  が動作していないと,ライトスリープが無効になる.
  その状態では,常時大電流が流れ,電池の消耗が激しくなる.
  常時最高速になっているため,Awakeを使う意味はない.

シスマネ      起動時間   終了時間 [秒]
 標準速機+Awake:  6.8     7.0     
 倍速機    :  17.5     14.6     
 倍速機    :  7.7     5.1  (Ctrlキー押下)

KL起動時間 [秒]
 標準速機+Awake:  3.8  
 倍速機    :  9.3  
 倍速機    :  3.9  (Ctrlキー押下)

LXDIC起動時間 [秒]
 標準速機+Awake:  2.6秒            
 倍速機    :  3.5秒            

LXDIC検索時間(広辞苑)[秒]※2
 (検索語)     "しよう"   "しゆう"
 標準速機+Awake:   19.2     10.9      
 倍速機    :   18.7     10.6      
 ※2 特に時間のかかる特殊な検索語を用いた.通常は1~3秒以内.
 (参照)検索時間に関する記事
    http://hp200lx.cocolog-nifty.com/blog/2012/04/ebrlxdic-88a5.html
    http://hp200lx.cocolog-nifty.com/blog/2011/03/ebr-ver-091c-d4.html

LXDIC Lite検索時間(Wikipedia)[秒]
 (検索語)     "しよう"   "しゆう"   "らっすん"
 標準速機+Awake:   3.8      3.8     1.9  
 倍速機    :   4.0      3.8     2.2  

総合的な使用感
 標準速機+Awake:どの場合も,倍速機より速く感じる.
 倍速機    :プログラムの起動にもたつく印象がある.

 

●結論
電池駆動時のHP200LXの動作については,
Awakeによる標準速機の高速化は,ハード的な倍速化に匹敵する.
ハード的な改造の前に,Awakeを試してみる価値はある.

[HP200LX/LXDIC]

|

2015年4月 3日 (金)

Yahooボックスの理不尽

■Yahooボックスの理不尽

Yahooボックスでは,巨大なファイルをアップロードする場合,何らかの原因で
1度でも失敗すると,サーバー側でファイルがロックされてしまい,以後24時間,
同一ファイルのアップロードができなくなってしまう.

(エラーメッセージ)
 移動中、もしくはコピー中のためロックされています。しばらく時間を
 おいて再度お試しください.

”しばらく”が24時間という理不尽な仕様で,まったく使えない.

このファイルロックを回避するために,ファイル名称を変更して,アップロード
を試みると,今度は,ファイルロックの原因になった最初のエラーが,再び発生
してしまう.(進捗率1~99%のどこで発生するか分からない)
(エラーメッセージ)
 サーバーへの接続に失敗しました.

結局,巨大なファイル(2GiB以上)を確実にアップロードできるような信頼性の高
いプロトコルは使っていないのだろう.何度試しても失敗する.
(巨大ファイルに対しては,故意にエラーを出している可能性もある.)

これで,ファイルサイズに制限を設けていない理由がわかった.
大きなファイルのアップロードは失敗するから,特に制限しないだけなのだ.
非常に不親切かつ理不尽なやり方だ.

[HP200LX/LXDIC]

|

2015年4月 1日 (水)

Wikipedia Reform Kit Ver.5

■Wikipedia Reform Kit Ver.5
                               .
概要
・インデックス :前方一致表記形,および,後方一致表記形
・画像     :数式(bmp)とロゴのjpg(3画像)
・処理可能画像数:200000
                               .
変更点
・reform Ver.9.1 辞書再構成 :画像数を200000に増やす
・wconv  Ver.8  画像変換  :処理時間,進捗状況(%)表示を追加
・waddr  Ver.8  アドレス書換:処理時間,進捗状況(%)表示を追加
・wxcomp Ver.2  辞書圧縮  :変更なし
 
ダウンロード
http://hp200lx.cocolog-nifty.com/blog/download.html
 
                               .
Wikipedia(ja)20150313Liteの処理例
・GAI16H.ORG             143,360
・GAI16F.ORG             278,528
・WIKIP .HLZ       3,360,969,615
・WIKIP .BLK           3,937,340
・WIKIP .IMG          51,877,244
  合計   3.4MB
                                             .
 Wikipedia(ja)20150313 のライセンス表示(メニュー検索)
 Wk0313a  

サイズは,前の版より約0.05GB大きくなっている.
少なく見積っても,2016年中には限界に達する.
 2015/ 5   3.45GB
 2015/ 7   3.50GB
 2015/ 9   3.55GB
 2015/11   3.60GB
 2016/ 1   3.65GB
 2016/ 3   3.70GB
 2016/ 5   3.75GB  <--- この辺が限界?
 2016/ 7   3.80GB     辞書以外のための容量が必要
 2016/ 9   3.85GB
 2016/11   3.90GB
 2017/ 1   3.95GB
 2017/ 3   4.00GB
                               .
[HP200LX/LXDIC]

|

2015年3月28日 (土)

memo::画像ファイルフォーマット

LXDICの画像ファイルフォーマット

IMGファイル(画像)
------------------------------------------------
・ファイルヘッダなし
・データヘッダ(8バイト)
    4バイト;'I','M','G','1'
    2バイト:画像の高さ(short)[18の倍数]
    2バイト:画像の幅  (short)  [8の倍数]
・データ
    モノクロビットマップ(非圧縮データ)

 

TBLファイル(アドレス変換テーブル)
-------------------------------------------------
・ファイルヘッダなし
・データヘッダなし
・データ
   旧アドレス[long], 新アドレス[long]

[HP200LX/LXDIC]

|

2015年3月26日 (木)

memo::LXDIC圧縮形式

■memo::LXDIC圧縮形式

●圧縮方式
LZ法のSLIDE辞書方式
 圧縮単位(ユニット) :2KB,8KB(1,4ブロック)
 EPWINGのプロックサイズ=2KB
 
  
●lzcomp5(LXDIC用) 辞書サイズ2GB以下
環状バッファ: 1KB
圧縮単位  : 2KB(1ブロック)
データフォーマット
  "BLKS" + (データサイズ:2byte)+(1ブロック圧縮データ)


●wxcomp2(LXDIC Lite用) 辞書サイズ4GB以上
環状バッファ: 4KB
圧縮単位  : 2KB(1ブロック)インデックス <== 8KBより2倍高速になる
               8KB(4ブロック)本文など
データフォーマット
  "BLKX" + (データサイズ:2byte)+(1,or,4ブロック圧縮データ)
 
 
●LXDIC Lite の対応フォーマット
  "BLKX" + (データサイズ:2byte)+(1,or,4ブロック圧縮データ)
  "BLKL" + (データサイズ:2byte)+(4ブロック圧縮データ)
  "BLKS" + (データサイズ:2byte)+(1ブロック圧縮データ)
   ヘッダなし +(非圧縮データ)
 
 
●LXDIC の対応フォーマット
  "BLKS" + (データサイズ:2byte)+(1ブロック圧縮データ)
   ヘッダなし +(非圧縮データ)
 
 
※テストデータ(500MB程度の辞書の場合)
環状バッファ(KB)と圧縮単位(KB)の組合わせによる圧縮率の変化
環状-単位     圧縮率
-------------------------
 1-2           56.1  <--- LXDIC 速度重視
 1-4           53.3    
 1-8           51.9
-------------------------
 2-4           50.3
 2-8           48.0
-------------------------
 4-2           54.7  <--- LXDIC Lite(インデックス)高速
 4-4           49.1
 4-8           45.4  <--- LXDIC Lite(本文)高圧縮
 4-10          44.6     
 4-16          43.5
-------------------------

[HP200LX/LXDIC]

|

2015年3月24日 (火)

Wikipedia 1/18版

■Wikipedia 1/18版
(対象)
SourceForge.JP:Boookendsプロジェクト
Wikipedia(ja)20150118Lite-EPWING

ファイルサイズデータ
・HONMON.EBZ  3,583,202,718   //オリジナル辞書ファイル
・HONMON.ORG  9,454,745,600   //非圧縮状態の辞書ファイル
・WIKIP .HLZ  3,316,280,624   //LXDIC Lite用辞書ファイル
・WIKIP .BLK    3,887,796   //ブロック情報ファイル
・WIKIP .IMG    50,994,915   //画像ファイル(数式のみの場合)
 WIKIP .IMG   249,788,495   //画像ファイル(全てを含む場合)

オリジナル画像
 サイズ:約640MB
 画像数:約97000

モノクロ変換後の画像
 サイズ:約250MB,または,約51MB
 画像数
 ・bmp  約65000   51MB(数式) 画像処理時間55分  
 ・jpg  約32000  199MB(写真) 画像処理時間55分
  合計 約97000  250MB     画像処理時間110分※

WRefKit4による画像処理の詳細データ
 画像数  :96914
 jpg    :31753
 bmp    :65161
 変換エラー:354 (画像変換に失敗した数)
本文における画像参照箇所
 全参照回数:134003
 参照エラー:2 (参照先アドレスが未解決)
 未使用画像:684(本文から参照されない画像)

[HP200LX/LXDIC]

|

2015年3月22日 (日)

Wikipedia Reform Kit

■Wikipedia Reform Kit
 
SourceForge.JP:Boookendsプロジェクトの Wikipedia(ja)Lite[EPWING版]を
HP200LX上のLXDIC Liteで使用できるように加工するためのプログラムセット.
●構成
・辞書再構成プログラム   reform.exe
・画像コンバータ      wconv .exe ,djpeg.exe
・アドレス書換プログラム  waddr .exe
・辞書圧縮プログラム    wxcomp.exe  ※
 
※圧縮形式について
 ebzip形式は,プログラムサイズとメモリー容量の観点から,EXMプログラム
 LXDIC Liteへの実装は困難であると判断し,圧縮率は低いが,高速でメモリ
 ー消費量が小さく,実装が容易な汎用アルゴリズムを採用している.
 
 
●使い方
実行例
reform honmon.org honmon.ref
wconv honmon.org wikip
waddr honmon.ref wikip
wxcomp wikip.hon wikip.hlz
    
プログラム相互の関係
            
     (EBShrink)    (reform)  
honmon.ebz =====> honmon.org ----> honmon.ref
          ↓(wconv)    |(waddr)
         wikip.tbl --------↓
         wikip.img    wikip.hon -----> wikip.hlzwikip.blk
                       (wxcomp) 
 
LXDIC Lite で使用するファイル
wikip .lhz   LXDIC用に圧縮された辞書本体
wikip .blk   圧縮辞書のブロック位置情報
wikip .img   モノクロ画像

  
●Wikipedia Reform Kit Ver.3
・インデックスは,表記形(前方,後方)のみ.
・画像は,数式(bmp)だけを変換処理する.(bmp)
・画像数上限: 100000
 
 
(参考)
Wikipedia(ja)20150118Lite-EPWING の場合
 画像数
 ・bmp  約65000   51MB(数式) 画像処理時間55分※   
  ※低速機の場合の数値(Pentium 4 CPU 2.8GHz )
  
ダウンロード
http://hp200lx.cocolog-nifty.com/blog/download.html

[HP200LX/LXDIC]

|

«Wikipediaのサイズが限界に