發表文章

目前顯示的是有「audiovisual」標籤的文章

電影膠卷上的聲音

圖片
早期電影聲音 Kinetophone  (蠟管式錄音) 在愛迪生的公司發明了留聲機後,很快的這種媒材便被利用來製作供影片播放時的聲音。這種裝置被稱為 Kinetophone,使用蠟管類的媒材來記錄聲音。目前最早的有聲影片素材可回溯至 1894/95 年的  The Dickson Experimental Sound Film  (連結為修復版本)。且這種由放映機與留聲機所組成的聲音系統並無法達到影音同步的效果。 Chronophone (盤式錄音) 在唱盤發明後,也有使用唱盤唱機做為聲音記錄媒材的電影聲音系統,其中一個重要的代表是 1902 年由 Léon Gaumont 所推出的 Chronophone。其中最有名的作品是 1907-1917 年間播出的  Phonoscène 。 Chronophone Frédéric BISSON from Rouen, France / CC BY 後來著名的盤式電影錄音系統還有如  Vitaphone 和數位時代的 DTS 系統。 早期光學聲軌發展 最早在膠卷上記錄聲音的技術其實不是用於電影,而是電話。 Ernst Ruhmer 發現了硒元素的光敏特性後,將它應用在貝爾 (Bell) 所發明的光學無線電話 ( Photophone ) 上。 而另一個重要的人物是  Eugène Lauste ,於 1906 年的時候在英國申請了一個電影錄音技術的專利, Phonofilm 。這個系統的原型機是使用 Pathé Frères 攝影機搭配 Ruhmer 的系統,在 35mm 膠卷上使用右 1/3 區域來記錄影像,而左側用於錄製光學聲軌。這種光學聲軌為單軌單向式,在播放時會透過使用硒光電池將光轉換為電流,這也是後續光學聲軌的基礎。 1918 年開始, Lee de Forest  透過他自己發明的真空管,得以放大訊號。再加上  Theodore Case 所發明的 Aeo-Light  (專利 pdf 檔)  ,得以將聲音轉換成光度變化。最後在 1920 年代推出了一整套的  Phonofilm  膠卷聲音記錄系統。這個系統是第一個密度式電影聲軌系統。為了要推廣這個系統,在 1923 至 1926 年間, Lee de Forest 向 SMPTE 投了三份論文來解釋這個系統。但由於後期 de Fore

低成本的數位影像修復 (OpenCV Inpainting)

圖片
低成本的數位影像修復 (OpenCV Inpainting)           影像的數位修復一向是個昂貴的工作。造成其價格居高不下的,除了高效能的硬體外,還有不便宜的軟體成本。目前市面上常見的數位修復軟體包括: Phoenix (DigitalVision) , Diamant (HS-ART) , PFClean (The Pixel Farm) ,以及較小眾的 DRS Nova (MTI) ,與部份使用特效軟體如 AE (Adobe) 來進行影像修復。這些產品通常都所費不貲,對於修復需求較小的個人或小型典藏單位而言並不是好的投資目標。如果透過外包給服務商的方式來處理,也是筆不小的花費。          面對這樣的問題,開源程式會是很好的解決方案。在 " Japan as destination in 20th century visual and material culture (2013-2016)" 這個計畫中,便使用 Python 程式語言的 OpenCV 函式庫,用其來進行影像中刮痕,髒點的修復與區域性降噪處理。 Inpainting         在使用這種方式進行數位修復前,需先安裝 Python 與 OpenCV 函式庫。 OpenCV 函式庫中,使用 cv2.inpaint() 這個函式來進行影像修復。修復影像的方式使用了兩種演算法: cv2.INPAINT_TELEA 與 cv2.INPAINT_NS 。           第一種演算法 TELEA 是 由Alexandru Telea在2004年提出的演算法, 使用 快速行進算法 來回溯需修復的區域。這種演算法會從修復區域的邊界開始,並向內填補。演算法的權重對於演算結果會相當大的影響,越往區域內部也可能有越大的誤差。          第二種演算法 NS 於 2001 年由 Bertalmio 等人提出的,使用用來描述流體的 Navier-Stokes 方程式,透過偏微分程式,由修復區域邊緣開始向內計算。由於流體的特性, 會延續其周圍區域的等距線(類似等高線,由相同強度的點所組成),並符合修復區域的邊界的強度變化。以這個方式,預期以最小差異的方式填補修復區域。 編寫程式碼          使用 Inpaint 的基本程式碼如下: import n

影音數位典藏所需的自動化腳本(Bash Script)--case

影音數位典藏所需的自動化腳本(Bash Script)--case     數位典藏中,有些工作是經常性出現的重複任務,這種狀況很適合使用腳本來減輕工作所需。其中一個例子就是轉碼,將典藏母帶轉換為工作時所需的中間素材,或產生供大眾取用的取用版本。在這樣的狀況下,可以預期會有兩種工作需要執行,因此 case ... in ... esac  會是很適合這種狀況的判斷式。 case ... in ... esac  的完整表示方式為: case   variable  in     value_n)  command_n              ;;     value_x)  command_x              command_x              ;;           *)  command              ;; esac 其中 variable 是主要用來進行判斷的變數,當變數數值與括號 ")" 前的數值相同時,則執行該數值所對應段落的指令。指令不限於一行,但每段的結尾需以雙分號 ";;" 為結尾。若數值不屬於上面任何一個指定的數值時,則執行 "*)" 這段的指令。 最簡單的 case 判斷式腳本可能長這樣: #!/usr/bin/env bash # Name: #         show3.sh   # Description: #       Show what you type # History: #       2020-07-02 by Mengchun unset var     # 將 var 這個參數還原,以免之前執行過的腳本影響這個參數 function print_out() {         echo "Your choice is ${1:-Unknown Value.}"         exit 0 }     # 將重複輸出的行為寫成函式 read -p "Please input your choice: " var     # 使用 read