這是關於HEVC編碼器和解碼器 EXE我Mixtion調試EXE和釋放的編碼器和解碼器
** encoder and decoder in debug mode
** encoder and decoder in release mode
我知道釋放模式優化的東西。
我們可以使用調試編碼器和解碼器釋放?(我沒有驗證這一點)
如何釋放編碼器和解碼器的調試? (我試試這個,這是確定)
我想都應該是美好的,但我還是想知道爲什麼在理論層面是或爲什麼不。
這是關於HEVC編碼器和解碼器 EXE我Mixtion調試EXE和釋放的編碼器和解碼器
** encoder and decoder in debug mode
** encoder and decoder in release mode
我知道釋放模式優化的東西。
我們可以使用調試編碼器和解碼器釋放?(我沒有驗證這一點)
如何釋放編碼器和解碼器的調試? (我試試這個,這是確定)
我想都應該是美好的,但我還是想知道爲什麼在理論層面是或爲什麼不。
不完全確定你在問什麼,但如果你是看看linux的makefile文件,你會看到這一點:
debug:
$(MAKE) -C lib/TLibVideoIO debug MM32=$(M32)
$(MAKE) -C lib/TLibCommon debug MM32=$(M32)
$(MAKE) -C lib/TLibDecoder debug MM32=$(M32)
$(MAKE) -C lib/TLibEncoder debug MM32=$(M32)
$(MAKE) -C lib/TAppCommon debug MM32=$(M32)
$(MAKE) -C app/TAppDecoder debug MM32=$(M32)
$(MAKE) -C app/TAppEncoder debug MM32=$(M32)
$(MAKE) -C utils/annexBbytecount debug MM32=$(M32)
$(MAKE) -C utils/convert_NtoMbit_YCbCr debug MM32=$(M32)
release:
$(MAKE) -C lib/TLibVideoIO release MM32=$(M32)
$(MAKE) -C lib/TLibCommon release MM32=$(M32)
$(MAKE) -C lib/TLibDecoder release MM32=$(M32)
$(MAKE) -C lib/TLibEncoder release MM32=$(M32)
$(MAKE) -C lib/TAppCommon release MM32=$(M32)
$(MAKE) -C app/TAppDecoder release MM32=$(M32)
$(MAKE) -C app/TAppEncoder release MM32=$(M32)
$(MAKE) -C utils/annexBbytecount release MM32=$(M32)
$(MAKE) -C utils/convert_NtoMbit_YCbCr release MM32=$(M32)
如果你遵循的makefile,你最終在makefile.base
包含以下部分結束了:
#
# debug cpp flags
DEBUG_CPPFLAGS = -g -D_DEBUG
#
# release cpp
RELEASE_CPPFLAGS = -O3 -ffloat-store -Wuninitialized
所以你有調試和發佈模式之間的差異。無論您使用調試二進制文件還是釋放二進制文件,生成的和重建的比特流都是相同的。
你完全可以混合調試和發佈二進制文件。
希望它可以幫助...
通過調試和發佈生成的HEVC比特流構建編碼器應該是相同的。在兩種構建變體中解碼器的行爲也應該是相同的。在開發過程中沒有正式的測試,但是我從來沒有遇到任何與HM有關的問題。
如果您發現這種情況並非如此,那將被認爲是一個錯誤,應該在錯誤跟蹤器中報告。
感謝Fredrik,在視頻編碼方面找到專家並不容易。我只使用Visual Studio來調試HEVC。感謝這些信息,這非常有幫助,我只是對混合調試和發佈感到好奇。 – hellocoding