替你的 Studio 挑一個媒體播放器

Apr 5 2010

一個動畫/特效工作室最重要的工作是什麼? 產出對自己來說有創意,對顧客來說達到所要求的目的…的影音作品。通常是一個影片,以一個檔案、一張DVD、一顆硬碟、一捲膠捲或Betacam或DV…等。然後就是收工,把作品的預告片或是幾張代表性的圖放到你的作品集型錄裏頭,接下一個 case…

所以,以一種非常簡易的角度來看待這個產業的話,它長得有點像這個樣子:

需求 -> 故事腳本 -> 製作 -> 後製 -> 交案

交案時東西,就好比是第一段提到的那幾個之一,這個作品最後會被一個播放器放映出來。可能是在一個戲院裏頭的數位放映器(DoReMi?)、展場裏的一台 Power Mac G5、台北信義威秀裏的直立數位看板、電視電台、網路上的 YouTube、podcast,或甚至是壹傳媒。這些播放器(平台)大大小小,有簡單有複雜,但我想聊聊另一種播放器:製作階段會用到的播放器。

製作(in Production)是個非常消耗人力與物力的過程,它的流程有如下幾個特色:

  1. Shot Based:工作是以一小段一小段執行的,每一小段的長度不長,最短不到一秒,最長約莫一分鐘(這種長鏡頭相對來說,比較少見)。
  2. Image Sequence:製作過程中的直接產物是圖片,大量的圖片。看是每秒 24 的電影規格或是 29.973 的 NTSC 規格。換句話說,每一個短短的 shot 都有一大堆的圖片。圖片是直接產物,影片反而是為了方便與其它考量(像是佔用空間,維護方便…)而有的間接產物。
  3. Review and Review:反覆的看。不管是短到一張圖(frame),一卡(shot),或是串起來的一段(shots or a sequence of shots),製作的美術/TD人員、部門組長、導演、製作人,他們每天的工作,就是不斷且反覆地看這些產出的片段,然後決定一些事,接著繼續作下去。觀看時,要非常精確,非常方便,非常容易,非常快速。
  4. Stable Playback:承上,不接受任何來自環境所造成的播放不自然。像是硬體不夠快或 OS 的問題造成的 lag、A/V 同步有問題、掉 frame…等。既然反覆看是工作之一了,怎麼可能會容許「播放」這件事有問題呢?!
  5. More Than 8Bits:影片或圖片,在製作過程中,為了要有完整的顏色呈現,常常在很多階段,影片或圖片是以超過一個 channel 用 8bits 的方式存在的,像是 half floating 的 OpenEXR 格式。
  6. 3-D:立體已經這麼夯了,能不理會嗎?
  7. Big Resolution:輸出給數位戲院時,解析度可以是 2k,寬約 2048,高約 1k,端看 aspect ratio 是 1.85:1 或是 2.39:1,或是直接針對 HDTV 做的 1.78:1。如果同時把 3-D 考量進來,以最少 2-views 來看,那解析度就要 double。ex, 3840x1080。

上述幾點,大略上是依其重要性排列下來,對應到一個 media (or image sequence) player 來看的話,它需要如下的幾個功能(features):

  1. Ram Caching: 不管是串起一大堆 shots 來播放,或是直接播放 image sequence,為了達到穩定的播放,所以一定得有某種層度上的 ram caching 機制,同時要能很巧妙地在編播放的同時,編解開接下來需要播放的 frame 到計憶體中。
  2. Accurate Seeking: frame-by-frame playback 是非常重要的一個過程,就我們的經驗發現,在 review 的過程中,會要求要非常精準的播放,往前一個一個 frame 播放,往後一個一個 frame 播放,A-B loop:等。在太極開發的第一版 movie player 就特別針對這處理,但一直都沒有非常穩定(門外漢是主要問題)。
  3. Annotation: review 的另一個特色,在於事後的修正。如果只是透過口頭上,或是寫下來的文字來描述要改什麼地方的話,很容易失於不精確,或是偶爾會發生人為的遺忘。最好的作法,就是在 review 時,直接把要改的部分,整個畫在影片裏頭,或是寫進去,然後再存出一版影片,或是抓出這些特別 frame 的圖片來,好讓工作人員可以更清楚更改的方向。
  4. Multi-platform or Linux: 理由很簡單,多人的 pipeline 還是以 Unix 的環境為主,為了播放影片而要切換到使用 Windows 的機器,然後還得去處理因為 Samba 帶來的權限問題?! 實在非常不明智。
  5. Remote Sync: 很多時候,負責 review 的人(導演、supervisor)不一定會待在公司,但他們分分秒秒都很寶貴,一但他們有空 review,所有人都會配合。是以,當他們外出洽公(或休假),或是你的 supervisor 根本是在另一個國家的 studio 裏時,可以遠端一起看同一段影片,播放的內容可以 sync,導演拉到哪一個 frame,你這一端就自動反應出來,是非常重要的。配合上前前一點的 annotation, 不失為 animation/vfx industry 的“特化“版視訊。
  6. More Than Full HD: 理由很簡單,影片愈做愈大,你的 player 得能夠處理得好。
  7. Stereoscopic Input/Playback: 這部分很複雜,簡單來說,就是你的 player 可以處理不同格式的 stereo content(ex, side-by-side, top-down, separated files, odd-even frames, interlaced frames),同時依不同的播放硬體/電視/投影機,輸出不同樣式的結果來。ex, red-cyan, side-by-side, interlaced, 120hz flipping, or even TI’s DLP-Link.
  8. Slate/Supering: 可以方便你以程式的方式,控制在影片裏頭內鑲一些資訊,或是加個切換故事片段或場景的標頭…等。這些資訊得透過外部的檔案或資料庫來提供。
  9. Scriptable: 最後這一點最有趣了。因應 production house 的層出不窮的狀況與變化,一個只提供一種 UI、只有一種工作模式、只提供 GUI 讓你操作的 player 是不行的,它必須讓你做各種可能的客制化。舉個例子,你可以寫個小 script, 讓它吃 2 個影片檔,然後一開始 player 時就全營幕,以 side-by-side 的型式秀出來。另一個情況下,你希望它可以自動把一個 1.85:1 的影片,在上下各加上一個遮罩,以 2.35:1 的比例秀出來,而且是自動做到,不需要操作人員進 preferences 或更改 configuration files.

comments powered by Disqus