2016年7月14日 星期四

AMD Fluid Motion (AFM) for MPC-HC 補禎 技術 如何設定

AMD Fluid Motion

前言

簡單來說就是補禎技術(縮寫AFM),可以將禎數24P的影片補禎捕到60P
過程由顯示卡GPU運算,目前只有AMD部分顯示卡可以啟用
這裡以MPC-HC做說明,需要可以參考官方網站,((記得更新版本

前置任務

  • 更新驅動至最新
  • 更新播放器版本
  • 下載Bluesky Frame Rate Converter

適用顯示卡

AMD

據官方數據200系列的只有部分卡可以支援
300以上的沒有特別去查,猜測應該都可以
不過軟件可以強迫非支援卡的選項,開出來就能用了
以我的例子來說 R9-280X 是不再清單上的
不過確實補的順順的,看起來很舒服
有測試過R6870可以強迫開出那個選項
不過補禎效果似乎沒有R9-280X好(沒有詳細比較)

Intel

更新後可以直接啟用,BlueskyFrameTateConverter
軟件內直接打開 24p 與 30p 就可以了。(30p 有可能不能打勾)

設定

大致需要設定三個地方
  • MPC-HC (播放器)
  • AMD_Driver (驅動)
  • BlueskyFrameTateConverter (軟體)

MPC-HC

BlueskyFrameTateConverter

進階

預設只能開24P這裡我有發現,Enable按鈕按下去
(這裡的圖我已經案過了不然會是灰色,並重新啟動)
之後會要求重新開機,開機之後AMD驅動程式就
解鎖了,可以勾選真正的 Fluid Motion
開啟之後就解鎖瞜,到這邊設定就結束了

以下是其他附加說明

這裡有一個但書,我的顯示卡R9 280X在官方的說明上
其實是不支援 Fluid Motion ,所以沒有這個選項
我猜如果是本身就支援 Fluid Motion 的顯示卡
應該可以直接打開 Fluid Motion 勾選30P

測試

找那種有開頭場景的測試最準,很明顯。
如果沒有的話,注意關注一下畫面移動的時候
人物身上反而會怪怪的(可能是比較複雜不好補)
這裡提供一個很明顯的影片,如果你有在看的話
這種的場面簡單,但是字體會動的,非常精準
動畫名字是 Code Geass Boukoku no Akito Final Itoshiki Monotachi e
這裡的字會移動
這裡的字會變小
你可以很明顯地感覺到,沒開頓頓的
開了超級順的~順順的滑過去
你也可以按 Ctrl+J or Ctrl+J+J
建議連按兩次資訊比較少,重點要看FPS而已
可以看到左上角補禎捕到60了
這是原本的禎數
這太扯了啦~順到不知道該怎麼說了

問題

我發現我如果同時開兩個影片就會變的卡卡的
不曉得是我的問題,還是怎麼樣呢。
某些影片似乎無法成功啟用AFM並且變成有黑框
解決辦法:

這其實是因為打勾了 Seadi Video
後來我去找官方的說明文件,並不用打勾
(有其他中文資料教學是說打勾,這裡我相信官方)
方法我就不刪除了,給不小心踩雷的人看

2016年7月11日 星期一

儲能型熱水器常開省電還是要用才開省電

剛搬新家,以前有看過別人再吵要不要關,加上有發現加熱時會滴水,
覺得有些異常,爬了點看看是怎麼回事,順便整理一下思緒。
意外發現,即便已經隔一天,昨天洗完澡就關掉了,今天仍有足夠的
熱水可供應洗完。洗完看一下,嗯…還真有把他給關了。
思考了一下,這可能是,是否常開才省電的關鍵。

全文就一句話 ( 似乎有錯還在修正,但底下內文是對的 )
X保溫棒的高效率所節省的”能量”,是否大於自然降溫所累積的”能量”。 
重新加熱的”能量”,是否大於,損失(累積)的”能量”

完。

假如你的儲能行熱水正常的話,且每天使用的話
正常的定義包含以下幾點:
  • 定期清理(沒有卡太多水垢)
  • 保溫正常(至少隔天洗澡要還是熱的)
  • 容量適當(不能剛好用到底呀)
  • 每天使用
  • 不要太舊(怕有些只有一根加熱棒又不能調功率)
如果上述條件不成立,就不一定是。模糊的話,只能實際測試了。

能量守恆

簡單來看損失多少能量就要花多少資源補回來,能量是相等的。
可以反向思考,計算損失的能量得知需要花費多少金錢。

從熱能損失來看

假設你的熱水器一天不關會從最高溫度掉到室溫,
那麼你一天需要花費一個額度加熱
發現了嗎,這種情況下不管你是否開啟,損失的能量都是一個額度
都必須耗費相同的資源加熱,損失就這麼多而已。
如果,你的熱水器半天就掉回室溫,一天不關電,
你將必須耗費兩個額度加熱。
這種情下,關掉反而可以節省一個額度。但正常的熱水器不會這樣。

從能源轉換效率看來

熱水器可能會兩根加熱棒,一根加熱的,一根恆溫的。
通常,功率越高,效率會跟著下降
假設,使用加熱棒可以在10分鐘達到最高溫度,
使用1.5個單位的能量。那麼,使用保溫棒,可能需要一小時
但消耗的能量,可能低於1個單位。
假如你將熱水器關掉的話,那你將被迫使用使用加熱棒加溫

關於加熱時會漏水的答案,那個叫做卸壓閥。
為了避免壓力過大(加熱體積會膨脹),水缸爆掉的意外
通常會在桶子屁股,入水口處,是安全裝置。
爬了一下文,排除故障狀況的話
會漏水可能有兩個原因:
更換的卸壓閥壓力過小
房子的水壓太大
我這裡水壓確實大的可怕,東西都是新的估計也不會故障。
也只有加熱會滴水(冷水),就不理他了。

瞬熱型

沒有儲水桶的,直接加熱了
因為要瞬熱,功率必須很大,
效率勢在正常情況勢必會下降。
多數的判定加熱都是水流 開頭水龍頭也啟動加熱,
高功率時常啟斷的話。故障的機率會提高許多。

2016年7月1日 星期五

筷子正確的標準拿法 | 韓國筷子怎麼拿 | 常見的拿法 |

筷子正確的標準拿法~以及常見的拿法

前言

最初會開始學筷子是因為有一次在吃飯的時候,我們四個人
其中座我右邊的人說到,跟OO吃飯好煩,每次都拿左手
就會卡到左邊的人,我看了一下,繼續拿著左手的筷子吃
後來它們注意到我了,問我幹嘛用左手
我只是回答說,右手拿筷子會痠就換左手了
他看了一下我,跟我說你筷子就拿錯了阿~~
什麼!他說不能交叉仔細看一下他,诶居然沒有交叉
第一次注意到,原來筷子不是隨便亂拿的阿XD
那陣子觀察了不少人,吃飯吃的超級痛苦(根本夾不起來)

筷子比較

日本的筷子前端通常都來的比較細一些,這對於操作上的細膩度提升很大
段位較高的筷子會有配重,手拿的地方比較重一些,操作的時候會順手很多
四角且有圓導角的筷子最好用,好施力(平面),八角的筷子反而手會痛
[左]極細,[中]日本筷子通常都這樣,[右]台灣便宜筷子通常都這樣
不同粗細會出現在不同的料理上,原則上就有適用的筷子
一般用餐中間那種粗細是最好的。
再來是握把的部分
[中]間是最舒適的,四角又有導角
木頭的材質似乎會很大的影響筷子價格 (右方的那隻價格高很多)
註:
右邊那隻是日本筷子,上一張圖紅色的是中國筷子 http://goo.gl/uQIMVR
日本筷子其實還有細分很多種 https://goo.gl/GvgMqz

前置任務

事前訓練,拿筷子很吃無名指的力氣
可以試試看把手指張開,僅將無名指折下(中間關節)

上圖這個是正常的肌肉充足的情況,下圖是無名指肌肉比較不足的狀況
下圖如果你的中指會跟著動,你會練得非常吃力(主力要靠無名指撐住)
不過這其實是天生成分居多,我問過無名指能彎的人占多數
我是少數不能彎的人,我從小就沒辦法這樣灣會帶動其他手指
左只之所以可以是因為以前玩過翻滾小子,需要不停地按CTRL
我就是拿無名指去按,那時候將肌肉訓練出來的
所以我的左手可以比較輕鬆的上手
我在剛練的時候,標準夾法左手可以夾住只是不太穩
右手完全沒有力,吃一頓飯手快殘廢了(很痛很酸)


標準拿法

這種方式是搜索一下算是台日的標準拿法,大多數的介紹影片內都這樣拿
日本人的介紹:https://youtu.be/l5MRqOu61GY
介紹2:https://youtu.be/gYZciXfGfAA
::指法
先像在拿筆的方式握住一隻(不要塞到拇指內溝),再將第二支插入無名指與與拇指內溝。
::優點
比較好出力,手部肌肉正常很快就可以上手了
::缺點
  1. 前期肌肉還不足的時候大力壓的時候很容易偏掉(兩隻筷子分叉)
  2. 直接使用手指關節接觸,那裏就是骨頭了,相當的痛
尤其剛開始練習的時候,姿勢錯誤只能使勁的亂出力,真的很痛QuQ
基於要將中指彎曲會卡在兩根筷子中間,筷子角度受限並不能密合

標準拿法2 (我自己改的方法)

這樣拿不好練,對於無名指肌肉要求非常高
前面敘述的無名指沒辦法順利彎不下去大概是拿不了了
個人覺得這樣拿姿勢很優雅,手指纖細的女生更是好看
::指法
跟正規法差不多,最末關節不再彎曲,而是自然伸直,用指腹去接觸筷子
::優點
拇指與食指中指屬於同一個平面,即便用在大也不容易使筷子分叉
指腹接觸而不是骨頭去頂,不會有痛感
可以將筷子幾乎密合的拿著,控制非常靈活
::缺點
出力稍微受限(因為指腹接觸是在側面施力而不是正向施力)

這個指法可以讓兩根筷子完全密合的情況下控制
可以精準到多細小的東西都能輕易夾起
意外發現這個拿法完全可以攻略最難的韓國筷子XD,我第一次拿韓國筷子的時候沒什麼特別感覺,感覺跟一般筷子一樣;有試著用標準拿法拿會卡到超級難夾。

第二型態(偽標準拿法)

前期訓練的時候真的痛到不行,或是需要大力輸出的時候切成這種型態。
初學的時候,我時常切換成這種模式,真的痛死了QuQ
有看過外國人是用這種指法,簡單好上手不需要肌肉訓練
不過控制的靈活度有限(筷子的內側沒有手指撐開)
::指法
先用上述拿法夾住目標,迅速將中指轉換到第二根筷子之下
也就是握筆的姿勢一次握住兩根筷子,此時用力夾住吧XD
可以豪不費力氣穩穩地夾死。夾完再順勢轉回來。
::優點
好上手不需要訓練肌肉
夾力可以很大
::缺點
能夾住,但是不好開

交叉型

如果從來沒有人教,很容易變成這種方式,這種是最省力的
我一開始就是用這種拿法,小時候也沒有人教自己就這麼拿了
::指法
兩支筷子放一起,當作一支筆拿,拇指關節處當交叉點
利用食指與中指將筷子交叉分開
::優點
因為交叉與在同一個指縫中施力可以非常穩
不需肌肉要求直接就可以上手了
::缺點
交叉關係,前端會有一個縫隙,夾不起小東西
磨損筷子
還有一種比較常見的是拿在小妞妞跟無名指中間的,不過我不知道怎麼夾的XD

保養筷子

  • 吃完馬上洗
  • 只能用手搓洗
  • 避免高溫(熱湯、熱水開筷等,保護漆會脫落)
  • 不要夾食物以外的東西
  • 不要夾堅硬的食物(蛤蜊骨頭之類的)
  • 保護漆脫落後需更換(會長黴菌)

2016年5月29日 星期日

C++ OpeCV 2.4.13 for Windows MinGW g++ [在 window上使用 MinGW g++ 編譯 opencv]

C++ OpenCV 2.4.13 for Windows MinGW g++

在 window上使用 MinGW g++ 編譯 opencv

前言

這幾天想用 MinGw 編譯 OpenCV,資料有些零散中文也不多
花了不少時間把搜尋資料,做好之後有順便做了一個懶人包
如果新手剛學,建議可以直接用懶人包就好了
懶人包已經簡化到只需按兩個安裝按鈕,就這樣而已
還有編譯時只要把g++替換成cv2就好了
cv2 file.cpp -o file 就這樣,幫你處理掉重複又很長的代碼了

安裝

檔案:https://goo.gl/2HfaPV
測試程式碼:https://goo.gl/fjcY9P
以下是安裝步驟:(建議使用預設位置)
1.開啟 MingGW AutoInstall
2.開啟 OpenCV2413 AutoInstall
3.開啟 OpenCV_Tester
很神奇的就安裝完畢瞜~
注意:如果已經安裝過MingGW,請移除在安裝(環境變數也要移除)
程序並沒有防呆會處理這個狀況,會出問題的。
看看有沒有跳出測試通過,有的話就可以開始使用了
看到這個就成功摟

懶人包裡面有sublime text3的編譯文檔,
可以直接 CTRL+B 編譯

如何以命令編譯C++檔案

懶人包

如何編譯指令在 OpenCV_Tester 內有說明
終端機輸入 cv2 souce.cpp -o souce 這樣即可

命令

原本的代碼則是:(這裡是依照我的檔案路徑)
g++ -Wall -std=c++14 -IC:\OpenCV\include\ -LC:\OpenCV\MinGw_64\lib\ -lopencv_core2413 -llibopencv_calib3d2413 -llibopencv_core2413 -llibopencv_features2d2413 -llibopencv_flann2413 -llibopencv_highgui2413 -llibopencv_imgproc2413 -llibopencv_video2413 main.cpp -o opencv.exe
如果是安裝我的懶人包,可以使用 cv2 來替換
cv2 souce.cpp -o souce
  • 20170721更新命令先前有缺失,某些庫不能編,懶人包與sublime配置檔我還沒更新

重新編譯OpenCV檔案

如果你要自己編譯其實也沒到多複雜只是很多設定要自己來別漏掉就好了
跟linux一樣,cmake編譯,然後產出的文件在依照規定對應就完成瞜
有興趣的可以參考:http://goo.gl/f7r2C7
還有:http://goo.gl/X1S0P

2016年5月22日 星期日

Arduino Uart 互傳字串 與 字串處理 依特定符號切割

Arduino Uart 互傳字串 與 字串處理 依特定符號切割

兩台arduino要互傳

兩台arduino要互傳字串的話這裡寫一個範例
注意
  • 兩台不要形成死循環,[A給B] [B再給A] [然後A再給B]…..
  • 會新建一個uart通道,而不是使用預設的
通道請參考程式碼頂端的宣告
已經盡量用不會混淆的方式註解
要表達兩台人稱問題其實有些困難XD
缺少的函式庫在這裡可以下載
https://mega.nz/#F!dhlUBaYD!J74z_wKIqvY2lRbjP7l9pA
到這邊兩台都直接用同一個代碼燒錄上去即可,然後把兩台 Arduino 的 RXTX 也就是
A 的 2 接到 B 的 3
A 的 3 接到 B 的 2
然後打開兩個 Arduino IED ,選好 USBport 個別打開 右上角放大鏡(serial port terminal)
再來A發送訊息B的視窗就可以收到了


字串切割

字串切割的話這裡也有一個範例,可以自訂格式
比如說你想要船 0,1,2,3 你想把他們依照逗號存到陣列內
也可以依照其他符號,由你自己設定
裡面忘記放使用範例了
大致來說是這樣的
(第一個放字串,第二個放符號)
str_split(const char* str, const char* sp)
char str="1,2,3";
int *ptr=0;                  //注意星號
ptr=str_split(str,",");  //逗號可以任意修改成你要的形式
println(ptr[0]);           //返回為一個陣列的指標,可以直接使用下標[]呼叫

釋放記憶體

因為是動態陣列,結束時要釋放記憶體
(動態陣列意思就是回便你字串都常都可以適應)
free(ptr);
不過arduino是沒有結束點的,無限循環,
依照你的程式設計去選擇,這裡也不好舉例子說明
通常不放也不會造成問題,新手可以先暫時放置著
完成功能後再去想辦法解決這個問題。

為什麼要使用 C++ 而不要用 C

接觸 [C++] [1個月]
覺得比較重要的概念 (入門)
我在寫C的時候就發現一些問題了
[雙向鏈結](https://goo.gl/XGvMhh)
-
1.如果你寫過一堆副程式,你就會發現資料的傳遞
真的很麻煩,不得不用結構去組成
一堆變數你根本沒辦法搞清楚誰是誰
-
2.再來就是傳遞時候,因為不是在同一個區域(不同副程式)
記憶體不共用,變數沒辦法直接修改
比如說你有一個 i=10; 你沒辦法 add(int i){...}
就修改 i 的數值,這會造成不少困擾
(比如說沒辦法將功能拆到函式內
拆不出去只能寫在主程式,寫多了
等你回頭一看的時候你就知道完蛋了)
逼不得已只能用指標去操作
int x=5, *i=&x; add(int *i){...}
如此一來就能直接改了
-
3.即便滿足以上條件,還是有個大問題
有些根本無關聯的變數你不想塞在
同一個結構內(無關聯的到時候亂掉)
就變成每個副程式都要導入一堆參數
typedef struct struct _node node;
struct struct _node {...};
void fun(node a, int a, int b, int c, int d, int e ){...}
這個就不好解啦XD 乖乖一個一個打
-
如果用類別去寫,上述問題大多能改善
1. 他本身就有點類似結構概念可以放很多變數
2. 在同一個類別內不同副程式仍可以直接存取 this->a
3. 都直接存取了,當然就不用導入了
(即便不同類別還有[朋友], [繼承]的方法可以共用)
-
比較不一樣的地方是類別的使用可以用 點
class demo{...};
demo temp(0); //初始數值0
temp.ad(1).ad(2).ad(3); // 0+1+2+3=6
temp.pri(); //印出
看出來了嗎如果是傳統副程式
1. 上述做法大概要分行了
int temp=0,*p=&temp;
ad(p,1);
ad(p,2);
ad(p,3);
printf(...);
2. 還有一種情況全部都塞在裡面
[ad(ad(ad()));]這真的會害人看不懂XDD
-
阿對了還有一個很重要的概念
不要花太多時間在沒有報酬的程式上
每一次的寫作,考慮以後是否能重複使用
然後就這樣把她留下來,不要同一個坑跌兩次
要嘛就花很多很多時間一次弄到最好
要嘛就隨便剪剪貼貼湊出功能,管他有沒有排版
前者你賺到了一份完整可以重複使用程式碼,
而且不用擔心未來的自己看不懂,
後者你賺到時間,把時間花在有用的事情上吧
畢竟一次性的功能也沒人會去看程式碼的XDD