HEVC参照ソフトウェアHMのコードの内部(1)

HEVC参照ソフトウェアであるHMのコードは以下のリンクから確認することが出来る。

https://hevc.hhi.fraunhofer.de/HM-doc/files.html

 

App/TAppEncoder/encmain.cppというファイルが存在する。

https://hevc.hhi.fraunhofer.de/HM-doc/dir_24fac828c35f1d44914775059885b0fe.html

の[code]をクリックするとコードが見れる。

encmain.cppには98行目に

cTAppEncTop.encode();

とある。ここではencoding functionを呼び出していて、それは

App/TAppEncoder/TAppEncTop.cpp の550行目に位置する。

Void TAppEncTop::encode()

では以下の作業が実行される。

  • create internal class
  • initialize internal variable
  • until the end of input YUV file, call encoding function in TEncTop class
  • delete allocated buffers
  • destroy internal class

 

中でも赤で示したencodingの部分に着目する。

これはTAppEncTop.cppの630行目に位置する。

633行目と637行目にある

m_cTEncTop.encode()

で1フレームにおいてのエンコードを行っている。

これはLib/TLibEncoder/TEncTop.cpp にあるencoding functionを呼び出していて、

このfunctionはTEncTop.cppの329行目、402行目にある(2種類)。

 

続きは"HEVC参照ソフトウェアHMのコードの内部(2)"に記す。