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行目に位置する。
では以下の作業が実行される。
- 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)"に記す。