根據 WIKI 的記載, HDMI 2.1 的規格來自於 Philips HDR 白皮書 [1]. 雖然這句話簡直不能說是中文: “HDMI 2.0A涵蓋HDR EOTF信令和靜態後設資料後設資料的動態是HDMI 2.1所涵蓋。" 那麼, 我們來看一下白皮書吧!
白皮書認為: 電視或影片大致分為 HDR 和 SDR 兩大類. 我們只需要壓出一種品質的片子, 然後帶一些參數, 就可以在 HDR 或 SDR 的電視上播放! (白皮書的圖如下)
如果一開始就製作出 HDR 品質的片子, 那麼以 HDR 播出一定不會是問題. 至於怎麼產生出 SDR 的版本, 白皮書說這是 colorist 或 artist 要做的工作. 他們根據 frame 或是 scene 的場景轉換, 分別調整出對應的 content-dependent 的 tone mapping 參數. 然後把調好的參數, 根據定價 120 USD 的 SMPTE standard ST 2094-20 [2], 放進 video bit stream 的 SEI ( supplemental enhancement information) [3].
class SEIToneMappingInfo : public SEI
{
Public:
PayloadType payloadType() const { return TONE_MAPPING_INFO; }
SEIToneMappingInfo() {}
virtual ~SEIToneMappingInfo() {}
Int m_toneMapId;
Bool m_toneMapCancelFlag;
Bool m_toneMapPersistenceFlag;
Int m_codedDataBitDepth;
Int m_targetBitDepth;
Int m_modelId;
Int m_minValue;
Int m_maxValue;
Int m_sigmoidMidpoint;
Int m_sigmoidWidth;
std::vector<Int> m_startOfCodedInterval;
Int m_numPivots;
std::vector<Int> m_codedPivotValue;
std::vector<Int> m_targetPivotValue;
Int m_cameraIsoSpeedIdc;
Int m_cameraIsoSpeedValue;
Int m_exposureIndexIdc;
Int m_exposureIndexValue;
Bool m_exposureCompensationValueSignFlag;
Int m_exposureCompensationValueNumerator;
Int m_exposureCompensationValueDenomIdc;
Int m_refScreenLuminanceWhite;
Int m_extendedRangeWhiteLevel;
Int m_nominalBlackLevelLumaCodeValue;
Int m_nominalWhiteLevelLumaCodeValue;
Int m_extendedWhiteLevelLumaCodeValue;
};
至於調整參數時用的電視的 st 2086 規範中的參數, 當然也要放進去. ( The characteristics of the display used for grading or monitoring, such as peak luminance and black level, are added as SMPTE ST 2086 metadata to the video stream. )
另外一個變形是, 傳出 SDR 的 video bit stream, 並且帶上一些參數, decoder 端原則可以解出 SDR 版本, 並且透過計算產生 inverse dynamic range conversion 的 HDR 版本. 這些轉換原理不管壓成 SDR 或是 HDR bit stream 時都是一樣的. 但是為了確保在 decoder 端 (通常是 OTT 或是 STB) 可以把 SDR 再還原出 HDR, 在 encoder 端做 HDR 轉 SDR 的時候, 不能夠用到硬砍的方式 (hard clipping is not allowed).
上述的討論只限於 decoder 和 encoder 之間, 還沒有考慮到 HDMI. 畢竟 HDMI 只傳 raw data, 可想而知那些相關的係數都要透過額外的 HDMI 封包來傳. 在 HDMI 2.0 的時代, 我們通常是傳靜態的 ST 2086 metadata. 至ˊ於動態的部分, 目前 HDMI 的網站 [4] 還沒看到 2.1 的規格, 只看到 2.0b 而已.
[REF]