Moiz's journal

プログラミングやFPGAなどの技術系の趣味に関するブログです

【技術書典6】Colabから印刷所に出せる原稿を作るワークフロー

Colabから印刷所に出せる原稿を作るワークフロー はじめに 先日行われた技術書典6で「PythonとColabでつくる-ゼロから作るRAW現像」をid:uchan_nosさんのブースで頒布していただき、用意していた全100部を完売することができました。 ひと月前に部数を相談し…

【技術書典6】キヤノンD70のRAW画像のPythonによる現像

キヤノンD70のRAW画像のPythonによる現像 このページについて このページでは「技術書典6」にて配布する「PythonとColabでできる - ゼロからできるRAW現像」のデモとして、書籍ではあつわかないキヤノンのRAWファイルの現像を行ってみます。 あくまでデモと…

【技術書典6】 画像処理は低レイヤー

画像処理は低レイヤー はじめに 前回の記事で告知したとおり、4月14日に行われる技術書オンリーイベント『技術書典6』にて『う38』のサークルbitnosのご厚意で「PythonとColabでできる - ゼロから作るRAW現像」を配布します。 サークルbitnosは低レイヤ…

【技術書典6】「PythonとColabでできる-ゼロから作るRAW現像」を出します(書籍版/ダウンロード版)

はじめに 第六回目を迎える 技術書オンリーイベント 「技術書典6」にて『う38』のサークルbitnosにて「PythonとColabでできる-ゼロから作るRAW現像」(以下「ゼロから作るRAW現像」)を配布します。 技術書典について 公式ウェブページによる紹介は以下の…

「低レイヤを知りたい人のための Cコンパイラ作成入門」を読んで、オレオレコンパイラを作り始めた

はじめに 表題通りですが、Rui Ueyama氏の「低レイヤを知りたい人のための Cコンパイラ作成入門」というPDF本を読んでCコンパイラ的なものを作り始めましたよ、というダラっとした内容です。 はじめに 発端 とりあえず書いてみる 別のコンパイラ入門書をよん…

EDA Playgroundで遊んで見る

はじめに ブラウザ上でデジタル回路設計と検証が行えるウェブページEDA Playgroundを紹介します。 https://www.edaplayground.com/ EDA Playgroundの例の一つ(カウンター) 書いている人とEDA PlaygroundおよびDoulosとの間にはなんの関係もありません。 ED…

ゼロから作るRAW現像 - Colabでの実行

はじめに Colabについて。 ColabでのRAW現像の実行 - シェアされたノートブックを使用 CobalでのRAW現像の実行 - Githubからダウンロード まとめ はじめに この記事は「ゼロから作るRAW現像」という一連の記事のフォローアップです。 uzusayuu.hatenadiary.j…

ゼロから作るRAW現像 - まとめページ

ゼロから作るRAW現像 はじめに この一連の記事は、RAW画像現像・カメラ画像処理の内容を実際の動作レベルで解説し、なるべくスクラッチからPython上で実行してみる事を目的としています。この記事で扱うもの 基本的なRAW現像処理・カメラ画像処理の流れ Baye…

ゼロから作るRAW現像 その8- 欠陥画素、エッジ強調、コントラスト補正

はじめに 残りの処理について 準備 シェーディング補正 ノイズフィルター ホワイトバランス raw_process5実行例 欠陥画素補正 エッジ強調 トーンカーブ補正 まとめ 最後に はじめに これは「ゼロから作るRAW現像 」という一連の記事の一つです。 これらの記…

ゼロから作るRAW現像 その7- ノイズモデルとノイズフィルター

はじめに デジタル画像のノイズ 実際の画像のノイズ ノイズフィルターの定番バイラテラルフィルター バイラテラルノイズフィルターの適用 補足:ノイズフィルター処理の高速化 まとめ 最後に 次の記事 はじめに これは「ゼロから作るRAW現像 」という一連の…

ゼロから作るRAW現像 その6 - レンズシェーディング補正

はじめに レンズシェーディング(周辺減光) レンズシェーディングの確認 レンズシェーディングのモデル化 レンズシェーディング補正 通常画像への適用 まとめ 次の記事 はじめに これは「ゼロから作るRAW現像 」という一連の記事の一つです。 これらの記事…

ゼロから作るRAW現像 その5 - ラズベリーパイのRAW画像処理

はじめに ラズベリーパイのRAW画像 ラズベリーパイの準備とRAW画像のキャプチャー RAW画像のキャプチャー ラズベリーパイのRAW画像の抽出 ラズベリーパイカメラのRAW画像の現像 ブラックレベル補正 ホワイトバランス補正 デモザイク カラーマトリクス補正 ガ…

ゼロから作るRAW現像 その4 - デモザイク処理応用編

はじめに モジュールの高速化 前回のデモザイク処理の分析 より高度なデモザイク処理 より高度なデモザイク処理、実行 画像の確認 まとめ 最後に 次の記事 はじめに これは「ゼロから作るRAW現像 」という一連の記事の一つです。 これらの記事の内容を前提と…

ゼロから作るRAW現像 その3 - デモザイク処理基本編

はじめに 簡易デモザイク処理の問題点 ベイヤー配列再訪 線形補完法 FIRフィルターを利用した高速化 まとめ 次の記事 はじめに これは「ゼロから作るRAW現像 その1 - 基本的な処理」および「ゼロから作るRAW現像 その2 - 処理のモジュール化」の続きです。…

ゼロから作るRAW現像 その2 - 処理のモジュール化

はじめに RAW画像を処理するPythonスクリプト スクリプトファイルの内部 Jupyterノートブックでの利用 まとめ 次の記事 はじめに これは「ゼロから作るRAW現像 その1 - 基本的な処理」の続きです。 その1の内容を前提としていますので、まだお読みでない方…

ゼロから作るRAW現像その1 - 基本的な処理

3/25/2019追記 このブログ記事「ゼロから作るRAW現像」を大きく再構成してより読みやすくした書籍「PythonとColabでできる-ゼロから作るRAW現像」を技術書典6にて配布します。 サークルはid:uchan_nosさんのbitnosで配置は(う38)です。 ページ数が多い(…

Raspberry Piのベアメタル環境からSDCARDにアクセスする(BUSモード編)

はじめに Raspberry Piのベアメタル環境からGPIOを経由してSD CARDをアクセスする方法について、BUSモードでも成功したので紹介します BUSモード 前回のエントリーではRaspberry PiでOSなどを介さず、EMMC 1も使わず、GPIO機能のみを使ってSD CARDにSPIモー…

Raspberry Piのベアメタル環境からSDCARDにアクセスする(SPIモード編)

はじめに Raspberry Piのベアメタル環境からSD CARDをアクセスする方法について、限定的ながらある程度成功したので紹介します 周辺機器アクセスはベアメタルの鬼門 ベアメタルというのはOSなしの環境なので、当然ながらプログラミングにあたって各種OSの便…

プロセッサの中のプロセッサとインストラクション・セットの多様性

プロセッサの中にも多数のプロセッサがいる 最近出版された「コンピュータ・アーキテクチャ 定量的アプローチ 第六版」に新設された第7章のドメイン・スペシフィック・アーキテクチャ(DSA)の章を読んでいたところ、面白い記述があった。まず前提としてラ…

「実践コンピュータビジョン」の全演習問題をやってみた、というブログを書いた

夏頃にオライリージャパンの「実践コンピュータビジョン」という本を読み、全演習問題に挑戦しました。もともとこのブログにそのことを書こうと思っていたのですが、はてなブログでは大量のコードが出てくる記事を書くのがなんともおっくうで、延ばし延ばし…

衣類乾燥機を修理してみたよ

衣類乾燥機が壊れた 先日衣類乾燥機が突然動作しなくなった。 パネルやモーターなどは普通に動いていて排気口からは風も出てくるが、温度が上がらず当然衣類もまったく乾かない。買ったのは四年前で当時入ったショップの延長保証も1年前に切れている。さて…

ラズベリーパイ版Haribote OSのビルド環境とインストール方法

だいぶ間があいてしまいましたが、ラズベリーパイ用Haribote OSのビルド方法について紹介します*1 PC環境はUbuntu 16.04を想定していますが、他のバージョンのUbuntu又は、他のLinuxでも同様にビルドできると思います。 2017.10.13追記: Raspberry Pi上のStr…

Brainf**k CPU でマンデルブロー集合を試してみた

FPGA上で動作するBrainf**k CPUを使ってマンデルブロー集合を表示させてみる Brainf**kで書いたマンデルブロー集合を計算するプログラムがある、と聞いてずっと自作のBF CPUで動作させたいと思っていました。HDLを改造することで動作させることに成功したの…

FPGAで動作するBrainf**k CPUをパイプライン化、スーパースカラー化もどきして、ベンチマークをとってみた

はじめに 前回のエントリーで紹介したFPGAで動作するBrainf**k CPU(BF CPU)を高速化しました。 高速化にあたっては 明らかに無駄なところを直す パイプライン化 スーパースカラー的な並列化 の3つを試してみました。また各段階毎にごく簡単なベンチマーク…

FPGAで動作するBrainf**k CPUを作ってみた

はじめに 前回のエントリーに書いたとおり、Brainf**k言語を直接実行するCPUがFPGA(Terasic DE0)で動作したのでまとめてみます。 VerilogのコードとQuartusのプロジェクトファイルはこちらに公開してあります。 github.com 以下この稿では、このCPUをBF CPU…

Brainf**k言語を直接実行するCPUがFPGAで動いた

なんとか動き出したので、そのうちGitHubに上げてブログで紹介します

Ubuntu16.04 64-bitで、Quartus II 13.1からModel-sim

前回の続きでQuartus II 13.1に付属のModel-sim Altera Starter Edition 10.1を64ビット版のUbuntu 16.04で動かしてみました。前回も触れましたが、64bit版Linuxと旧バージョンのQuartusの相性はあまり良くないようです。また、Ubuntuはサポート外となって…

Ubuntuに古いQuartus IIを入れたらいろいろ大変だった

Ubuntu16.04(64ビット)にQuartus II 13.1 Web Editionを入れた際のメモ 久しぶりにFPGAボード(Terasis DE0)を動かそうと思ったのですが、最近デスクトップのメインOSをUbuntuに変えたところなので、ついでにQuartus II 13.1をインストールしたところいろい…

Raspberry Pi用Haribote OSの変更箇所2 - タスクスイッチ

本稿について 先日Githubに公開したラズベリーパイ用Haribote OSについてオリジナルのX86版からの変更箇所解説2回目です。齢のせいか、たったの一月で何をやったのかどんどん忘れて来ているので、なるべく急いで進めて行こうと思います。今回はタスクスイッ…

Brainf**kを直接実行するCPUを作ってみる

Brainf**kについて 先日こちらのブログを拝見しました。 itchyny.hatenablog.com 見に行ったときはLLVMについて興味があったのですが、記事中で使われているBrainf**kという言語に興味津々。恥ずかしながらこれまで存在を知りませんでした。Wikipediaによる…