More Related Content
PDF
Precise garbage collection for c PDF
Wavelet matrix implementation PDF
汎用性と高速性を目指したペアリング暗号ライブラリ mcl PDF
PDF
Intro to SVE 富岳のA64FXを触ってみた PDF
PDF
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹 PPTX
What's hot
PDF
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能 PDF
PDF
PDF
PDF
PDF
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen PPTX
PDF
OpenBSD/luna88k news at NBUG Meeting 2013-12 PPT
始めよう!OpenStreetMap Developing PDF
PDF
PDF
PPTX
PDF
松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証 PPT
PDF
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ) PDF
PDF
PDF
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用 PDF
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4 Similar to 20151118卒研進捗LT
PPTX
PDF
PPTX
PDF
openFrameworks Workshop in Kanazawa v001 PPT
Shape morphing (swfstudy) PDF
PDF
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013 PDF
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編) PPTX
PDF
More from mohemohe
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
20151118卒研進捗LT
- 1.
- 2.
2
closed α
• Windows用の GUI を仮実装
• よさそうという反応は得られた
public β
• Reed-Solomon符号・畳み込み符号の実装
• 多少宣伝して反応を得たい
卒論
• スケジュールによっては大炎上🔥
リリース
• OS X, Linux 用の GUI の製作
• リファクタリング
← いまここ
← できれば11月中に
公開したい
← 2016 Q1
- 3.
- 4.
- 5.
var linearBitArray =dataBits.ToLinearIntList().ToArray();
fixed (int* dataPtrZero = linearBitArray)
{
var dataPtr = dataPtrZero;
for (var y = 0; y < bmp.Height - blockSize; y +=
blockSize)
{
var bmpPtrLineStartPos = bmpPtr;
for (var x = 0; x < bmp.Width - blockSize; x +=
blockSize)
{
var bmpPtrBlockStartPos = bmpPtr;
for (var by = y; by < y + blockSize; by++)
{
for (var bx = x; bx < x + blockSize; bx++)
{
var r = (byte)(*(bmpPtr + 2) / 10.0);
byte rVal;
byte gVal;
var b = (byte)(*bmpPtr / 10.0);
byte bVal;
switch (*dataPtr)
{
case 0:
case 1:
rVal = getCappedValue(r,
*dataPtr);
gVal = *(bmpPtr + 1);
bVal = getCappedValue(b,
*dataPtr);
break;
default:
image.Bitmap.UnlockBits(bmp);
}
*(bmpPtr + 2) = rVal;
*(bmpPtr + 1) = gVal;
*(bmpPtr) = bVal;
bmpPtr += 4;
- 6.
- 7.
- 8.
- 9.
リード・ソロモン符号
• 符号
9
𝐶 𝑥= 𝑥 𝑁−𝐾
× 𝐼 𝑥 + 𝑥 𝑁−𝐾
× 𝐼 𝑥 𝑚𝑜𝑑
𝑖=𝑏
2𝑡−1+𝑏
𝑥 − 𝛼 𝑖
• 復号
省略
データを係数にしたガロア体の8次多項式 ← を生成多項式で割った余りを連結
- 10.
- 11.
var linearBitArray =dataBits.ToLinearIntList().ToArray();
fixed (int* dataPtrZero = linearBitArray)
{
var dataPtr = dataPtrZero;
for (var y = 0; y < bmp.Height - blockSize; y +=
blockSize)
{
var bmpPtrLineStartPos = bmpPtr;
for (var x = 0; x < bmp.Width - blockSize; x +=
blockSize)
{
var bmpPtrBlockStartPos = bmpPtr;
for (var by = y; by < y + blockSize; by++)
{
for (var bx = x; bx < x + blockSize; bx++)
{
var r = (byte)(*(bmpPtr + 2) / 10.0);
byte rVal;
byte gVal;
var b = (byte)(*bmpPtr / 10.0);
byte bVal;
switch (*dataPtr)
{
case 0:
case 1:
rVal = getCappedValue(r,
*dataPtr);
gVal = *(bmpPtr + 1);
bVal = getCappedValue(b,
*dataPtr);
break;
default:
image.Bitmap.UnlockBits(bmp);
}
*(bmpPtr + 2) = rVal;
*(bmpPtr + 1) = gVal;
*(bmpPtr) = bVal;
bmpPtr += 4;
- 12.
var dataArray =data.ToCharArray();
fixed (char* dataPtrZero = dataArray)
{
var dataPtr = dataPtrZero;
for (var y = 0; y < bmp.Height - blockSize; y +=
blockSize)
{
var bmpPtrLineStartPos = bmpPtr;
for (var x = 0; x < bmp.Width - blockSize; x +=
blockSize)
{
var bmpPtrBlockStartPos = bmpPtr;
for (var by = y; by < y + blockSize; by++)
{
for (var bx = x; bx < x + blockSize; bx++)
{
var r = Math.Floor(*(bmpPtr + 2) /
10.0);
byte rVal;
var g = Math.Floor(*(bmpPtr + 1) /
10.0);
switch (*dataPtr)
{
case '0':
rVal = Convert.ToByte(r + "2");
gVal = Convert.ToByte(g + "2");
bVal = Convert.ToByte(b + "2");
break;
case '1':
rVal = Convert.ToByte(r + "7");
gVal = Convert.ToByte(g + "7");
bVal = Convert.ToByte(b + "7");
break;
case '0':
image.Bitmap.UnlockBits(bmp);
return image;
default:
throw new
NotImplementedException();
}
*(bmpPtr + 2) = rVal;
- 13.