2013年9月30日 星期一

簡短感想

如果對一樣事物有什麼喜怒哀樂的話...

表示你真的不瞭解這個事物的全貌.

2013年9月29日 星期日

Helios 44-2

其實這顆鏡頭在我之前已經有太多人寫過它的心得, 我也只是寫好玩的而已, 也可以說是個人的一點筆記.


在拿到這顆鏡頭後我就來試拍它所謂的旋轉散景, 不過這顆鏡頭的旋轉散景其實有幾個出現條件, 目前整理出來的有..
  1. 不要使用鏡後距修正鏡片. 簡單的說, 裝上後就不會出現.
  2. 允許光圈範圍是 2.0~2.8, 2.8時已經不太明顯.
  3. 理想對焦距離 1.3m ~ 6m, 但要看比例. 後述.
  4. 物距跟背景物的距離差越大越好. 背景最好在無限遠端為佳.
  5. 物距太近造成散景太過強烈時也不會出現. 所以要抓好距離.

從第一點開始講. 鏡後距修正鏡片是因為鏡頭是 M42, 機身是 Nikon-F mount, 機身的法蘭距比較長, 會造成鏡頭 1.無限遠無法對焦 2.會變微距鏡, 所以需要矯正鏡片去拉到正確的鏡後投射點上. 不過這種鏡片也會有很多特別的地方, 以前這一篇有講, 邊緣畫質會下降, 一開始我就是故意要利用這一點才裝上矯正鏡片, 但是怎麼樣都拍不出旋轉散景... 也許是它光路修正的更正常了? 我不知道...  不過我覺的效果跟轉 FD 鏡時是完全不同的狀況.. 
於是在這之後的照片都是拿掉鏡後距校正鏡片拍的..

第二點, 光圈設定跟大眾所知的一樣, 開大光圈~ 開大光圈~ 開大光圈~ 開大光圈~ 開大光圈~ 開大光圈~ 開大光圈~ 開大光圈~ ..... -_-
這顆鏡頭它在光圈開 F2.0~F2.8 時會有這個效果, 再往下的光圈就幾乎不會再出現 (應該這樣說, 收光圈後這種光學暇疵就收斂到幾乎看不到). 所以! 在這樣的光圈下還要把前景拍到清析銳利的話, 我會建議刻意把鏡後距拉長, 就像 M42 直接接 Nikon-F 這樣來讓光路更收斂.

散焦影像的大小雖然會隨著光圈而變動, 但如果要唯持這個效果, 就等於光圈值不能動它, 能動的只剩下跟被攝物的物距...

第四點, 物距差一直都是拍散景很重要的因素, 像這兩張, 這一張物距離的較遠:

這張物距離的較近:

再近一點就可以變這樣:

其實從 lifeview 上就可以看出光點的變化. 近端拍攝會比較適用於片幅較小的機器.

第五點, 旋轉效果是跟著散焦成像的影像大小成正比的, 並不是靠的很近就一定會有這個效果出來...
這張的物距比上一張還要近, 所以即使是相距不到 10cm 的樹枝也會糊的不像話, 但此時想要的效果就會全部糊在一起, 做不出來.

拉遠一點就會發現不一樣了:

上面這張圖其實距離是特地抓的, 如第三點所述. 它有特定的物距內會比較容易生成這樣的效果. 而且這張可以看的出來, 背景 (或講無關的東西) 最好都離前景有段距離, 而且最好是統一的距離 (例如無限遠) 這樣最好, 不要有的前有的後, 這樣效果也不明顯.

其它的測試照片我先擺這裡.

還有值得一提的是, 這顆鏡頭也有支援測光, 而且比 canon FD 的好用 (FD 因為是機身連動, 所以變成轉接鏡時會不太好撥). 它前方其實有兩個轉環, 最前面轉起來有刻度感覺的那個才是光圈, 後面那個其實是測光連動圈:
但其實測光環做工做的不是很確實, 會讓前端整個前移... 所以不要用力轉...

這是光圈全開 (F/2.0). 此時測光環其實是不能動的.

這是光圈調整到 F/16, 測光為全開光圈. (相機看到是 F/2.0)

這是它光圈開 F/4.0, 測光為全開光圈. (相機看到是 F/2.0)

這是關測光, 可以看到第二個環停在 2 那裡. 這時相機看到的才是 F/4.0

不過這顆鏡最好的中央/邊緣收斂光圈值是 F/11, 中央最好時是 F/8.0. 不過我的機子看到的都不是真正 M42 機器上看到的效果, 會比較銳利, 收 F/4.0 時已經很夠我用了.

update 2014/01/27:
這個鏡頭後來拿來改, 臺灣區有找到兩篇文章, 另一篇要铣床的, 我沒辦法, 我只能參考這個比較動的了刀的文章:
http://www.bigeye.url.tw/big5/d_heli58_2_2.htm
來改. 特別是第六張圖那個環.
(沒辦法提供我自己改鏡結果的照片是因為... 我把螺絲幾乎都鎖壞掉了, 現在也很難再拆開來一一拍照記錄...) 我改了兩個地方, 僅供參考:
1. 去掉對無限遠的卡筍螺絲. 拿掉這個螺絲後, 還可以再往後退約 0.5mm
2. 我把這個環拿掉, 改用兩條鐵絲 (一般綁土司用的那種, 去掉塑膠皮後) 對絞後做成墊環墊在原本的位置. 這個部份的替代材料我找最久, 因為我沒辦法特別去車這麼一個環 (內徑 30.5mm 外徑 32mm), 還只能要 0.8mm 高....

ok, 然後就可以對無限遠了.....
不建議用這個改法是因為, 對焦環的無限遠刻度要改, 而且對無限遠時很容易打板 =_=

update 2014/03/20:
追加簡單改鏡筆記: http://yoko-hama.blogspot.tw/2014/03/helios-44-2.html

update 2014/03/27 星芒測試. 只要不是離的太近的都還不錯.




2013年9月18日 星期三

筆記 xz + dd

It's note for note, just note..

assume file is "DDimage.img.xz", target device is "/dev/sda"
decompress:
xzcat DDimage.img.xz | dd of=/dev/sda bs=1M

compress:
dd if=/dev/sda | xz -cz9 > DDimage.img.xz

please don't ask me why not multi-thread with xz, I don't know how to do.....

see the progress every 5's
watch -n 5 pkill -USR1 ^dd$

2013年9月8日 星期日

kernel 3.2.50 on i.MX35

1. 這篇是筆記文, 備份用+自爽用, 所以不具參考價值.
2. 這篇重點在講 cross kernel build. 所以 BSP 支援的怎樣那我不管...
3. 我不保證其它平臺這樣 cross-compile 可以用, 最少我 Marvell 88F6281 就沒成功過.

拿 kernel source 前先弄到 toolchain, toolchain 就很多來源了, 所以不討論. 拿到 3.2.50 解開後, 因為我是要 build 到 i.mx35, 它是 ARM, 所以先來這裡看:
find arch/arm/configs/ |grep "mx"
arch/arm/configs/imx_v4_v5_defconfig
arch/arm/configs/mx3_defconfig
arch/arm/configs/mx5_defconfig
arch/arm/configs/mxs_defconfig

好吧, 精簡成這樣. 我要的是 mx35, 所以是 mx3_defconfig.
make ARCH=arm CROSS_COMPILE=${請自行代入 tool-chain 的東西} mx3_defconfig
可以先看到一些 kernel.org 預設的一些選項, 在這建議加上幾個 framebuffer 用的東西:

Device Drivers->Character devices->
[*] Virtual terminal
[*]   Enable character translations in console
[*]   Support for console on virtual terminal
[*]   Support for binding and unbinding console drivers

這樣才可以在 Graphics support 裡看到 Console display driver support.
有這個東西, 在不需要掛 rootfs 就可以測試 framebuffer 是不是運作正常, 像 console message, 像那欠打的企鵝. 那企鵝還可以拿來當校色標準, 看要調整成 RGB565 還 RGB666 還 RGB24 或其它. 當然, Support for frame buffer devices -> MX3 Framebuffer support 也別忘了選上.

panel 的設定可以參考 arch/arm/mach-imx/mach-pcm043.c 裡的設定與註冊方法, SDHC 也可以參考它的. Phytec 這個 PCM043 有相當多有用的 code 可以參考來當自己 target board 的設定.

NAND 的 partition 註冊:
static struct mtd_partition mxc_nand_partitions[] = {
        {
         .name = "nand.bootloader",
         .offset = 0,
         .size = 4 * 1024 * 1024,
        },
        { //自己加, 這個是最後一段.
         .name = "nand.rootfs",
         .offset = MTDPART_OFS_APPEND,
         .size = MTDPART_SIZ_FULL,
        },
};

static const struct mxc_nand_platform_data mx35pdk_nand_board_info __initconst = {
        .width = 1,
        .hw_ecc = 1,
        .flash_bbt = 1,
        .parts = mxc_nand_partitions,
        .nr_parts = ARRAY_SIZE(mxc_nand_partitions),
};

//board_init 加上
//imx35_add_mxc_nand(&mx35pdk_nand_board_info);

再來頂多是自己在 kernel 裡新增加自己的板子代號, 不過老實講意義不大... 所以略過.

ps. 20130930 3.11.1 裡是 imx_v4_v5_defconfig 這一個