2018年6月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
ブログ:ココログ
時間のないサイト運営者リング
時間のないサイト運営者リング

プログラミング

2016.12.07

Wii UでBASIC言語のプログラミングができる『プチコンBIG』が12月14日配信開始 - ファミ通.com

リンク: Wii UでBASIC言語のプログラミングができる『プチコンBIG』が12月14日配信開始 - ファミ通.com.

キーボード繋いで入力できるのはいいな。

2015.04.21

プログラミング関係は別ブログに~

プログラミング関係はこっち に移行しようと思う。

2015.04.13

Amazon.co.jp: 関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間: 岡部健: 本

ちょっと気になるなw

(追記)
安いし、かってみよかな。

2015.03.26

α版のリリースから1年4カ月、「Node.js Tools for Visual Studio」v1.0が正式版に - 窓の杜

リンク: α版のリリースから1年4カ月、「Node.js Tools for Visual Studio」v1.0が正式版に - 窓の杜.

2015.03.13

Nodeビギナーズブック » Node.jsチュートリアル » Node.js 教程

リンク: Nodeビギナーズブック » Node.jsチュートリアル » Node.js 教程.

ふむ、わかりやすかった。

2015.02.21

TypeScript 1.4 for Visual Studio 2013 拡張機能

リンク: TypeScript 1.4 for Visual Studio 2013 拡張機能.

こっから、ダウンロードしたのをインストールすれば
TypeScript 1.4になるんだな。

(追記)
変更内容は↓に書いてくれていますw
TypeScript 1.4.1 変更点
TypeScript 1.3.0 変更点
TypeScript 1.1.0 変更点

2015.02.18

getevent/sendeventでAndroid端末の操作自動化

リンク: getevent/sendeventでAndroid端末の操作自動化.

ほほー、なんかで使えそう。

2015.01.20

傾き補正難しいな。

エッジ抽出して、
二値化して、
ハフ変換して、
直線を検出して回転するだけなんだが、
いっぱい見つかる直線のどれを選ぶか、平均とって回すか
するんだが、

まーー、失敗するときは失敗する。
やっぱ、UIもうけて、チェックしておかしかったら手動で訂正できるようなのに
しないといけないな。

2014.12.22

プチコン3号 メモ こまごましたもの(随時追記していく)

ちっと、こまごましたものをあげてく。

  • waitやvsyncのフレーム数って?
    3DSは約60fpsらいしいのでwait 60で約1秒待ちになる。
  • 配列は()ではなくて[]を使って
    DIM A[10]
    と宣言する。この場合は添字は0〜9になる。
  • コンソールのフォントデータは隠しグラフィックページGRPFにある。LOADや、SAVEしかできないようだ。
  • 文字列変数の各文字は配列でアクセスできる。
    A$="123":PRINT A$[1]
    とすると、"2"が表示される。
  • マイクからのサンプリングデータのサイズはシステム変数MICSIZEを見ろ!w
    MICSTART命令とかの説明のところに書かれていないから8180*32なんてやってた(^^;)
  • "OPTION STRICT"でStrictモードにすると変数の宣言をしないといけなくなるる。このとき、"VAR A=10"なんて書き方で宣言と値の代入ができる。

2014.12.19

Visual Studio Community 2013 再インストール時の”Setup Blocked”対処法 | seyjoh studio blog

TypeScript関係がなんかおかしかったのでアンインストールしたら、
再インストールできなくて、ググってみたら、ありました(^^;)

リンク: Visual Studio Community 2013 再インストール時の”Setup Blocked”対処法 | seyjoh studio blog.

試したら、再インストールできそーです。(まだ、最後まで行ってないので、できたとは言えない)

2014.12.16

プチコン3号 メモ 画面構成

画面構成は、
コンソール画面、
スプライト、
BG画面(0〜3)、
グラフィック画面、
背景色
で構成されている。

Z座標を指定すると重なり順を変更できる。Z座標は、1024〜-256で0が液晶面、1024が奥、-256が手前になる。
コンソール画面はLOCATE命令で文字単位で設定できる。
スプライトは、SPOFS命令でスプライト単位で設定できる。
BG画面は、BGOFS命令でBG画面レイヤー単位で設定できる。
グラフィック画面は、GPIO命令で設定できる。
背景色は一番奥になる。

コンソール画面
上画面
50x30文字表示でき、PRINT文で文字が表示できる。
下画面
40x30文字表示できる。
上下画面連続表示(XSCREEN 4)
40x60文字表示できる。

スプライト
上下画面合わせて、512個使用できる。XSCREEN命令で上画面で使用するスプライト数を指定する。残りがした画面用になる。
キャラクタデータは、デフォルトでグラフィックページ4に描画させてるものを基本16x16ドットで個別に任意サイズのものが使える。

BG画面
上画面
16x16ドットのキャラクタを25x15キャラ分表示できる。
下画面
16x16ドットのキャラクタを20x15キャラ分表示できる。
上下連続表示(XSCREEN 4)
16x16ドットのキャラクタを20x30キャラ分表示できる。

BGSCREEN命令でキャラ単位での画面のサイズ(幅x高で16383以下まで)を指定でき、BGOFS命令で表示位置を指定できる。これでスクロールができることになる。昔のハードウェアスクロールみたいに上下、左右が筒状になっていないようなので注意。
BGキャラクタデータはデフォルトでグラフィックページ5に描画されているものを使用する。

グラフィック画面
上画面
400x240ドット。デフォルトでグラフィックページ0が割り当てられている。
下画面
320x240ドット。デフォルトでグラフィックページ1が割り当てられている。
上下連続表示(XSCREEN 4)
320x480ドット。デフォルトでグラフィックページ0が割り当てられている。

グラフィックページは512x512ドットだが、表示位置を指定するような命令がないのでスクロールのようなものはできないようだ。

背景色
背景色は一番奥に配置され、BACKCOLOR命令で色を指定する。

[Swift] Closureについてメモ - Qiita

リンク: [Swift] Closureについてメモ - Qiita.

sort(&names, >)

ここまで省略するとわかりづらいな〜

sort(&names, {(s1, s2) in return s1 > s2})

個人的には、このへんが丁度いいかな。

2014.12.12

OS X Yosemiteのsortが変

リンク: OS X Yosemiteのsortが変: ときどき日記4.0.

上のリンク先ではJavaで作ったんだが、試しにSwiftでも作ってみたw

バイナリ:xsort.zip
ソース:xsort_src.zip 

2014.12.05

OS X Yosemiteのsortが変

OS X Yosemiteのsortがなんか変なのに最近気がついた。
しゃーないんで、Javaで作ったよ。

と、言っても昇順ソートしかできないんだが(^^;)

バイナリ:sort.jar
ソース:sort_src.zip

2014.12.04

Xcode6.1使用中に「SourceKitService Crashed」というエラーが出てコード補完が効かなくなった | ぼくらの雑食系エンジニア史

リンク: Xcode6.1使用中に「SourceKitService Crashed」というエラーが出てコード補完が効かなくなった | ぼくらの雑食系エンジニア史.

うーん、インストールしなおしたけど、なおらない・・・(>_<)

(追記 12/5)
このエラーが出たプロジェクトは直ってないけど、
別のプロジェクトでは問題ないくなってるな(^^;)

そして、新規プロジェクトを作ってソースをコピーしてみて、コードを追加しようとするとこのエラーがでる(>_<)
このソースのどこかがSourceKitServiceを落とす原因になっているってことか。

2014.11.18

Android - Mac OS X Yosemiteでエミュレータが動かない時の対処法 - Qiita

リンク: Android - Mac OS X Yosemiteでエミュレータが動かない時の対処法 - Qiita.

2014.11.13

Microsoft、“Professional”相当の無償版「Visual Studio Community 2013」を公開 - 窓の杜

リンク: Microsoft、“Professional”相当の無償版「Visual Studio Community 2013」を公開 - 窓の杜.

2014.11.11

TypeScriptメモ(7) jQueryを使う

今まで、http://www.typescriptlang.org/Playgroundを使ってごそごそやってたんだが、本格的に使うなら、Visual Studio 2013 Express 2013 with Update 3 for Webをインストールするのが手っ取り早い。プロジェクトの新規作成にTypeScriptを使用したHTMLアプリケーションがあるのでそれを使うことにする。

まず、jQueryを追加する。ソリューションエクスプローラーのプロジェクト上でコンテキストメニューを表示しNuGetパッケージの管理を選ぶ。

右上のオンラインの検索にjqueryと入力して検索する。

20141008_222533

検索結果のjQueryをインストールする。
このままでは、型定義がないからそのままではTypeScriptでは使えない。
つぎにTypeScriptで使えるように型定義ファイルを追加する。
NuGetパッケージ管理画面でjquery DefinitelyTypedで検索してインストールする。

20141008_222848

htmlファイルに

<script src="Scripts/jquery-2.1.1.js"></script>

を追加して
TypeScriptファイルの頭に

/// <reference path="scripts/typings/jquery/jquery.d.ts" />

を追加するとTypeScriptでjQueryを使えるようになる。
この辺は、ソリューションエクスプローラからソースへドラックアンドドロップでも追加できる。

ほかの有名なJavaScriptのライブラリの型情報ファイルが用意されているようなので同様に検索して追加すると使えるようになる。

2014.10.12

[WinRT] Windowsでマルチタッチ

前にWPFでマルチタッチを試してみたのと同様のWindowsストアアプリを試しに作ってみた。

Windowsストアアプリを新規作成して、canvasを張り付けてPointerPressed、PointerMoved、PointerReleasedイベントを取るようにする。
これらのイベントでマウス、ペン、タッチのイベントが発生する。
イベントで渡されるPointerRoutedEventArgsのGetCurrentPointで
PointerPointを取得してそのPointerDeviceのPointerDeviceTypeプロパティでマウス、ペン、タッチの区別ができる。
複数タッチを区別するのはPointerPointのPointerIdプロパティで行う。

サンプル:TestMultiTouchWS.zip

続きを読む "[WinRT] Windowsでマルチタッチ" ≫

2014.10.10

TypeScriptメモ(6) ジェネリクス

C#やJavaのジェネリクスと同じような感じです。

こんな感じ。
// 関数で使う
function a<T>(val:T):void {
	alert(typeof val);
}

a<number>(12);			// numberと表示
a<string>("hoge");		// stringと表示

// クラスで使う
class hoge<T> {
	private aaa:T;
	
	constructor(val:T) {
		this.aaa = val;
	}
	public show():void {
		alert(typeof this.aaa + ":" + this.aaa);
	}
}

var h1:hoge<number> = new hoge<number>(10);
h1.show();		// number:10と表示
var h2:hoge<string> = new hoge<string>("hoge");
h2.show();		// string:hogeと表示

2014.10.09

TypeScriptメモ(5) モジュール

内部モジュールと外部モジュールというのがある。
内部モジュールは、C#のnamespaceやJavaのpackageなんかと同じように名前の衝突をさけたりするもの。外部モジュールは、外部ファイルから参照やロード(動的ロード?)するためのもの。と、勝手に認識してる(^^;)

内部モジュールは次のような感じ。

module hoge {
	//  class bはexportしてないのでモジュール内でしか使えない。
	class b {
		public message(text:string):void {
			alert(text);
		}
	}

	export class a {
		private bbb:b; // モジュール内なので使える
		
		constructor() {
			this.bbb = new b();
		}
		public message(text:string):void {
			alert(text);
		}
		public messageB():void {
			this.bbb.message("messageB");
		}
	}
}

var aaa:hoge.a;
aaa = new hoge.a();
aaa.message("にょ");		// "にょ"って表示される

var bbb:hoge.b;			// class bをexportしていないのでエラーになる。

外部モジュールは、CommonJSやAMDの仕様に合わせたモジュールとしてコンパイルされるものらしい。
これは必要になったときに調べよーwww

2014.10.07

TypeScriptメモ(4) インターフェイス

インターフェイス
C#やJavaのインターフェイスみたいなもの。

// インターフェイスの定義
interface Hoge {
	aaa:number;
	hoge():string;
}
 
// インターフェイスHogeを実装したクラス
class HogeHoge implements Hoge {
	aaa:number;
	constructor() {
		this.aaa = 10;
	}
	public hoge():string {
		return "hogehoge:" + this.aaa;
	}
}
 
var aaa:Hoge = new HogeHoge();
// ↓こんな書き方も出来る
var bbb:Hoge = {
	aaa:20,
	hoge: function() {
		return "bbb.hoge():" + this.aaa;
	}
}
 
alert(aaa.hoge());        // "hogehoge:10"が表示される
alert(bbb.hoge());        // "bbb.hoge():20"が表示される。

2014.09.18

C# そのスレッド本当に必要ですか? - Qiita

リンク: C# そのスレッド本当に必要ですか? - Qiita.

だよねー
不発弾も怖いけど、
発生したら発生したでどこが悪いのかなかなか掴めなかったりするんだよねー

と、言いつつけっこー使ってたりする(^^;)

2014.09.17

[Java8] PSGぽい音を出す。

JavaでPSGぽい音を出すサンプルです。タイトルでJava8って書いてるけど、古いのでもいけると思います。(どのバージョンから出来るのかは確認してない)

package jp.hemohemo.testaudio;
 
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
 
public class TestAudio {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int SAMPLING_RATE = 44100;  // 44.1kHz(CDと同じ)
       
        // オーディオフォーマットを準備
        AudioFormat format = new AudioFormat(
                SAMPLING_RATE,      // サンプリング周波数
                16,                 // 16ビット
                2,                  // ステレオ
                true,               // 符号
                true                // ビッグエンディアン
        );
        DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
       
        SourceDataLine line;
        try {
            // データラインを取得
            line = (SourceDataLine)AudioSystem.getLine(info);
            // ラインを開く
            line.open();
        } catch (LineUnavailableException ex) {
            Logger.getLogger(TestAudio.class.getName()).log(Level.SEVERE, null, ex);
            return;
        }
 
        // 1秒間の波形データを準備
        int freq = 440;      // ラ(A)の周波数(440Hz)
        int vol = 2000;     // 音量
        byte[] datas = new byte[SAMPLING_RATE * 2 * 2]; // ステレオ、16ビットなので * 2 * 2なる
        int val;
        for(int i = 0; i < SAMPLING_RATE; i++) {
            int tmp = (int)(2 * i * freq / SAMPLING_RATE);
            if(tmp % 2 == 0) {
                val = vol;
            } else {
                val = -vol;
            }
            // 左チャンネル
            datas[i * 2 * 2 + 0] = (byte)((val >> 8) & 0xff);
            datas[i * 2 * 2 + 1] = (byte)(val & 0xff);
            // 右チャンネル
            datas[i * 2 * 2 + 2] = (byte)((val >> 8) & 0xff);
            datas[i * 2 * 2 + 3] = (byte)(val & 0xff);
        }
        line.start();
        // 波形データを書き込む
        line.write(datas, 0, datas.length);
        // 鳴り終わるのを待つ
        line.drain();
        line.stop();
        line.close();           
    }
}

まっ、見ればわかると思いますが、最初のほうでCDと同等の音質でデータラインを取得して、そこに440Hzの矩形波のデータを用意して書き込んでる。このfreqの値を変えると音程が変更でき、volを変更すると音量が変わる。
和音の出し方は別の音程の波形データを加算するだけでOK。ただし、オーバーフローしないようにしないといけない。

2014.09.13

NetBeansで日本語を入力すると落ちる - Така блог

リンク: NetBeansで日本語を入力すると落ちる - Така блог.

JDKを古いのにするのか。

2014.09.11

[WPF] Windowsでマルチタッチ

Windowsでマルチタッチ試してみた。

マルチタッチに対応しているのはOSはWindows7からで対応するアプリを開発するには.NetのWPF4以降か、Win32 APIを使う。Windos8以降だとWindowsストア向けに作れば対応できる。(Windowsストア向けは、まだ調べてない)

WPFアプリのプロジェクトを新規作成してCanvasを貼り付けて、TouchDown、TouchMove、TouchUpイベントを取ればマルチタッチが取れるようになる。これらのイベントはマウスのMouseDown、MouseMove、MouseUpイベントのタッチ版のようなものだ。

複数のタッチ(指)を認識するには、タッチイベントで渡されるTouchEventArgsのTouchDeviceのIdで複数の指を識別する。複数のタッチそれぞれにIDがふられてそれぞれイベントが発生することになる。

サンプルは、タッチしたところに赤丸(かなり大きいが(^^;))とIDが表示されるようになっている。ついでにマウスイベント、スタイラス(デジタイザペン)でも円を描画するようにしてる。マウスは青丸で押してるボタンを表示する。スタイラスは緑丸とIDを表示し、円は筆圧によって大きさが変わるようになっている。
これでわかるのが、タッチするとスタイラス、マウスのイベントが、スタイラスで画面を触るとマウスのイベントが発生する。この辺はそれぞれのEventArgsのhandledプロパティにtrueを設定すると発生しなくなるが、タッチ、スタイラスとも長押しすると右ボタンを押したマウスイベントは発生するようなので都合が悪い場合はなんか別の方法で回避しないといけない。(簡単な方法があるかは調べてないので不明)

サンプル:TestMultiTouchWPF.zip

全体を見ないとわからない部分もあるんだが、サンプルからタッチ関係のイベント部分を抜き取ったものものせとく。

続きを読む "[WPF] Windowsでマルチタッチ" ≫

2014.08.24

TypeScriptメモ(3) クラス

よし、次はクラスだ。

続きを読む "TypeScriptメモ(3) クラス" ≫

2014.08.23

TypeScriptメモ(2) 引数の省略、関数のオーバーロード

クラスに行こうかと思ってたが、引数の省略と関数のオーバーロードについて書く。

引数の省略は変数名の後に?をつけると、省略可能になる。省略された場合、変数の値はundefinedになる。

 function hoge(a:string, b?:number) :void {
	alert("hoge:" + a +"," + b);
 }

 hoge("aaa");

この場合、"hoge:aaa,undefined"と表示される。

省略された時のデフォルト値を指定する方法がある。

 function hoge(a:string, b:number = 10) :void {
	alert("hoge:" + a +"," + b);
 }

 hoge("aaa");

この場合、"hoge:aaa,10"と表示される。

可変長引数は、変数の前に…を付けて配列する。

 function hoge(a:string, ...b:any[]):void {
	alert("hoge:" + a +"," + b);
 }

 hoge("aaa",10,2);

関数のオーバーロードは、引数の型が違う関数の宣言を書いておき、型の違う引数のところをanyやobjectにした関数本体を宣言する。その関数内で型のを調べて処理を分岐することでオーバーロードっぽいことを実現する。

 function hoge(a:number):void;
 function hoge(a:string):void;

 function hoge(a:any):void {
	if(typeof a == "number") {
		alert("number");
	} else {
		alert("string");
	}
 }
 hoge(18);

この場合、"number"と表示される。

2014.08.21

Androidでノイズ除去作ってみたが・・・(2)

NDKでメディアン部分をCで作ってみた。

MedianTestAndroid2.1.zip

Nexus7(2012)で測ってみた結果がこんな感じ。

001.jpg:1.2672秒
002.jpg:1.2042秒
003.jpg:1.1373秒
004.jpg:1.1525秒
005.jpg:1.1444秒
006.jpg:1.1462999999999999秒
007.jpg:1.1276秒
008.jpg:1.1260999999999999秒
009.jpg:1.1236000000000002秒
010.jpg:1.1218秒

Javaが6.5秒ぐらいだったんで、むっちゃ速い!てか、Dalvik遅すぎ。

2014.08.13

TypeScriptメモ(1) 変数宣言、関数宣言

とりあえず(1)とあるが、(2)以降があるかどうかはわからんw

TypeScriptとはJavaScriptに静的型付け、クラスが追加されたものと認識してる。
他にもいろいろあるみたいだが、とりあえずこれだけ押さえておこう(^^;)

静的型付け

変数の宣言に型を指定できて、コンパイル時に違う型の値を代入するとエラーになる。
宣言方法は、

 var hoge:string;         // 変数の宣言
 hoge = "hogehoge";
 hoge = 123;       // ←コンパイル時、エラーになる。

データ型には、number型(数値)、string型(文字列)、boolean型(真偽値)、any型(何でもあり?)、enum型(列挙型)なんかがある。 列挙型の宣言は、

 enum {
     hoge1,
     hoge2
 }

みたいな感じで行う。

関数型?
( a: T1, b:T2 …) => T3 みたいに書く。T1,T2は引数a,bの型、T3は戻り値の型。これはデータ型を書けるとこに書ける。
 var hoge:(a:number) => string;
 
 hoge = function (a:number):string {
	 return "hoge" + a.toString();
 }
関数宣言
こんな感じ。戻り値の型、引数の型を指定する。
function hoge1(a:number) : string {
	return "hoge1_" + a.toString();
}
戻り値のない関数の場合は、voidを指定する。
ふー、ちと疲れた。というかちょっと長くなってきたので今回はここまで。
ということは、クラスについてまだ書いてないのでTypeScriptメモ(2)もありそーだw

2014.08.11

Androidでノイズ除去作ってみたが・・・

リンク: Java8でノイズ除去作ってみたが・・・: ときどき日記4.0.

Androidでも作ってみた。

MedianTestAndroid2.zip
appcompat_v7関係で開くとエラーになるけど、これってどうしたらいいんだろー
(追記 21:58) すでにappcompat_v7がworkspaceに作られている状態だと、たぶんエラーにならなくなった。

Nexus7(2012)で測定してみた結果がこんな感じ。

 

001.jpg:6.9938秒
002.jpg:6.2264秒
003.jpg:6.51秒
004.jpg:6.6198秒
005.jpg:6.6396秒
006.jpg:6.617400000000001秒
007.jpg:6.6432秒
008.jpg:6.624秒
009.jpg:6.5998秒
010.jpg:6.566秒

2014.08.08

タッチ操作向けサイト構築のガイドライン - IEBlog 日本語 - Site Home - MSDN Blogs

リンク: タッチ操作向けサイト構築のガイドライン - IEBlog 日本語 - Site Home - MSDN Blogs.

にゃるほど。

-ms-touch-actionでスワイプで戻る、進むを無効にできるんか。

2014.06.20

Swift本が出てる

もう、Swift本が出てる。おまけに安いし。

2014.06.17

Java8でノイズ除去作ってみたが・・・

リンク: OpenCLでノイズ除去作ってみたが・・・(2): ときどき日記4.0.

で作ったやつをJava8で作り直してみた。単にJava8(てか、JavaFX8)でなんか
作ってみようと思って、これが丁度手頃なサイズなんでこれを選んだ。
当然、目的からしてOpenCLを呼ぶようなところは移植していない。

MedianTestFX.zip

ついでにC#でもノイズ除去するのを上のリンク先のソースに追加もした。
もともと、.Net 4.0以降のParallel.Forを使っていたので、
それをThreadPoolを使うように書き直している。
(公開しているソースはVS2008のコードなもんで(^^;))

ということで、測定。Java8、C#での結果を追加した。

Core2 Quad Q9400 Atom Z3740 Core i7 2620M
OpenCL OpenMP C# Java8 OpenCL OpenMP C# Java8 OpenMP C# Java8
001.jpg 0.3068 0.503 0.8498 0.4409 7.99577952 0.88127284 1.61415786 1.4767 0.48360084 0.74568131 0.5579
002.jpg 0.1804 0.3168 0.6712 0.2817 7.34302774 0.75004404 1.4016307 1.2794 0.32448058 0.56004098 0.3448
003.jpg 4.6952 0.5056 0.7354 0.4164 2.90403514 0.82185144 1.48132308 1.4183 0.43056076 0.81900144 0.448
004.jpg 0.3222 0.5096 0.7656 0.443 7.57648828 0.85317542 1.51101251 1.3729 0.45864082 0.84864149 0.4901
005.jpg 0.3282 0.519 0.7658 0.4426 7.55618022 0.85627354 1.50788813 1.4303 0.46800082 0.85176149 0.5267
006.jpg 0.3292 0.5238 0.7765 0.4371 7.6182202 0.86250938 1.51726157 1.3811 0.46488082 0.87360154 0.5195
007.jpg 0.3242 0.5176 0.7686 0.4393 7.46120562 0.85002122 1.51102694 1.3936 0.45864082 0.88466381 0.5171
008.jpg 0.329 0.5164 0.7715 0.4419 7.47796678 0.87192582 1.52507566 1.369 0.48360086 0.90168159 0.5305
009.jpg 0.365 0.5202 0.7986 0.4508 7.5596978 0.84685846 1.5157 1.377 0.47736084 0.91260161 0.5401
010.jpg 2.2004 0.514 0.7772 0.4382 2.7020981 0.8594254 1.49538439 1.3958 0.48360084 0.89076156 0.533

Javaけっこー速い。

2014.04.13

OpenCLでノイズ除去作ってみたが・・・(2)

リンク: OpenCLでノイズ除去作ってみたが・・・: ときどき日記4.0.

のプログラムをちょっと整理したのを公開しときます。(C#の分は省いてる)
前のやつはRGBを合計した値でソートしてたけど
輝度値でするように変更している。そのせいでちょっと、遅くなっている。

MedianTest.zip

ということで再測定。ついでにAtom Z3740(1.33GHz)、HD Graphicsと
Core i7 2620M(2.7GHz)でも測定してみた。

Core2 Quad Q9400 Atom Z3740 Core i7 2620M
OpenCL OpenMP OpenCL OpenMP OpenMP
001.jpg 0.3068 0.503 7.99577952 0.88127284 0.48360084
002.jpg 0.1804 0.3168 7.34302774 0.75004404 0.32448058
003.jpg 4.6952 0.5056 2.90403514 0.82185144 0.43056076
004.jpg 0.3222 0.5096 7.57648828 0.85317542 0.45864082
005.jpg 0.3282 0.519 7.55618022 0.85627354 0.46800082
006.jpg 0.3292 0.5238 7.6182202 0.86250938 0.46488082
007.jpg 0.3242 0.5176 7.46120562 0.85002122 0.45864082
008.jpg 0.329 0.5164 7.47796678 0.87192582 0.48360086
009.jpg 0.365 0.5202 7.5596978 0.84685846 0.47736084
010.jpg 2.2004 0.514 2.7020981 0.8594254 0.48360084

Atom遅い(^_^;)

おもしろいことに、Geforceでなぜか遅い003.jpg、010.jpgがHD Graphicsでは
速いという逆の結果になっている。

2014.04.12

Intel OpenCL SDKをインストール

リンク: Intel® SDK for OpenCL* Applications 2013.

ここからダウンロードして実行。

インストールに失敗するようだったら

この画面

4
でチェックを全部はずして続けるとインストールできる
かも。(うちはそれでできた)

2014.04.09

OpenCLでノイズ除去作ってみたが・・・

OpenCLでノイズ除去(メディアン法)を作ってみたんだが
CPUより遅い結果に(^_^;)

とりあえず、こんな結果に

時間(秒)
OpenCL 12.693
C言語(OpenMP使用) 10.145
C# 11.682

約2350x3520のJPEG画像10枚分を読み込んで処理して保存するのにかかった時間。
ハードウェアはCPUがCore2 Quad Q9400 2.66GHz、GPUがGeforce GTS 250でちと古が・・・

ノイズ除去の処理をしているところを詳しく測ってみると

OpenCL C言語(OpenMP使用) C#
001.jpg 0.3854 0.4928 0.827
002.jpg 0.302 0.338 0.7846
003.jpg 3.5322 0.49 0.7492
004.jpg 0.3528 0.4908 0.6914
005.jpg 0.3762 0.5196 0.684
006.jpg 0.3808 0.521 0.6946
007.jpg 0.3528 0.5258 0.681
008.jpg 0.3734 0.5378 0.6848
009.jpg 0.3624 0.537 0.6928
010.jpg 1.6578 0.5728 0.681

003.jpgと010.jpgが極端に遅く、それ以外はC言語に勝っていることがわかる。
念のため003.jpg単独で何度か測ってみたが、だいたい3.5秒という結果になった。
つまり、データ依存してるってことだ。

メディアン法でデータの内容で時間が変わりそうなのが最後にソートしているところになる。
ソートしなければどうなるか測ってみた(メディアン法でもなんでもなくなるんだがw)

0.25
0.237
1.134
0.229
0.229
0.233
0.229
0.23
0.227
0.473

003.jpg,010.jpgが極端に速くなったが、
それでも他と比べると遅い。

ふむ、これだとよくわからないという結論に・・・

2012.02.05

XBee解説本が出るらしいです。XBeeとフリスクサイズXBee/USBインタフェース基板付き #xbee:Under Power 研究所:So-netブログ

リンク: XBee解説本が出るらしいです。XBeeとフリスクサイズXBee/USBインタフェース基板付き #xbee:Under Power 研究所:So-netブログ.

お仕事で使ったことあるXBeeの解説本が出るらしいです。
ちょっと、気になる。

2012.02.03

BASICが更にパワーアップ!? 『プチコンmkII』の発売が決定 | インサイド (任天堂、3DSのニュース)

リンク: BASICが更にパワーアップ!? 『プチコンmkII』の発売が決定 | インサイド (任天堂、3DSのニュース).

MML形式で音階を書いて音楽を演奏したり、TALK文で音声合成することもできるようになりました。


MMLにTALK文!!!

ほしいかもw

2012.01.29

DeNA、スマホ向けゲームのHTML5開発支援フレームワークをオープンソース公開 -INTERNET Watch

リンク: DeNA、スマホ向けゲームのHTML5開発支援フレームワークをオープンソース公開 -INTERNET Watch.

ほー

2009.09.14

gccで定義されているマクロを見る方法

リンク: P2P@i 開発メモ: gccで定義されているマクロを見る.

で、みれるそーです。

2009.02.15

JavaScript:ブックマークレット

リンク: Bookmarklet - ブックマークレットを作成する際のポイント.

なるほど、こんなふうに書けばいいのね。

2009.02.10

ゲームプログラマになる前に覚えておきたい技術



ゲームプログラマでもゲームプログラマになる予定もないですが、
ちょっと、気になりますね。明日、本屋さんにちょっと見にいってみます。

2008.05.14

wchar_tって

wchar_t型って、MacOSXやLinuxは32ビットで
Windowsは16ビットなのね。



Google

サーチする:
Amazon.co.jp のロゴ









携帯URL