HEVC参照ソフトウェアHMのコードの内部(2)
HEVC参照ソフトウェアHMのコードの内部(1)では
/App/TAppEncoder/TAppEncTop.cpp
/Lib/TLibEncoder/TEncTop.cpp
のencoder functionをおもに見てきた。
/App/TAppEncoder/TAppEncTop.cppの633行目のm_cTEncTop.encode() (encoding function for one frame)には以下の変数がある。
Parameters
flush | cause encoder to encode a partial GOP |
pcPicYuvOrg | original YUV picture |
pcPicYuvTrueOrg | |
snrCSC |
また、以下の値を返す。
Return values
rcListPicYuvRecOut | list of reconstruction YUV pictures |
accessUnitsOut | list of output access units |
iNumEncoded | number of encoded pictures |
pcPicYuvOrgという変数があるが、これは550行目から続くencode()内で定義されている(559行目)。
TComPicYuvというクラスからpcPicYuvOrgというインスタンスが生成されていることが分かる。
TComPicYuvについてはLib/TLibCommon/TComPicYuv.cppで書かれている。
/Lib/TLibEncoder/TEncTop.cppの363行目に(471行目にも) //compress GOPと書かれている。
その直後にm_cGOPEncoder.compressGOP
とあるが、m_cGOPEncoderはTEncTop.hの91行目に定義されている。
関数compressGOP()は/Lib/TLibEncoder/TEncGOP.cppの1155行目にある。