aoce(oeip的android平台扩展版)
android/window 图像处理,多媒体以及游戏引擎交互.
aoceswigtest的封装aar包 如果你没有装swig,就需要手动下载这个.
本项目尽量不引入第三方库,暂时只有aoce_ffmpeg模块需要引入ffmpeg.其中win平台有些samples需要引入opencv显示画面,但是项目本身是不需要opencv做为第三方库,详细情况请转入samples.
本项目编写主要使用vscode,配合相应插件C++/CMake.用anroid studio完成anroid平台特定功能与测试等.visual studio 2019配合Nsight调试CUDA相关代码.通过CMake使vscode/android studio/visual studio针对项目文件统一修改.
第三方库引用备份:aoce_thirdparty 在code平级创建一个目录thirdparty,把aoce_thirdparty里的内容放入这个目录,CMake就会根据项目所需第三方库自动引入.
vulkan项目使用glsl,请安装Vulkan SDK,通过工具glslangValidator把glsl编译成SPIR-V.
如果要使用aoce_cuda模块,请安装CUDA.
在根目录下的CMakeLists.txt,可以根据需求打开/关闭AOCE_INSTALL_FFMPEG/AOCE_ENABLE_SAMPLES/AOCE_ENABLE_WINRT/AOCE_ENABLE_SWIG 这些选项,编译不过可以根据提示关闭对应选项.
Android配置请转到 android build
主要想实现一个能在win/andorid方便组合,扩展的GPU图像处理框架.
统一平台win/andorid的视频源的获取,图像的GPU处理,以及方便对接各种界面显示.
GPU计算模块的选择,win平台准备完成cuda/vulkan模块,android平台原则上只实现vulkan模块,但是能高效对接opengl es纹理.
Camera内置WIN平台MF的SDK,而anroid基于ndk camera2实现.
视频的编解码主要基于ffmpeg实现,以及相应推拉流,打开/关闭媒体的实现.
cuda/vulkan除了内置的一个简单图像处理,使用者可以以相应cuda/vulkan库为基准,方便自己的layer层实现,其中aoce_talkto/aoce_vulkan_extra分别以aoce_cuda/aoce_vulkan库的类来扩展外置的gpugpu实现,各位可以参照实现.
能方便对接各种引擎,使用各种UI框架进行显示,包含不限于Unity3D/UE4/WinForm等.
各模块现主要通过CMake动态链接,其相应CMake编译选项在根目录下的CMakeLists.txt下,各位可以根据环境自己选择,其中使用Swig来转换成C#/Java接口,如果没装swig,请查找对应C#/Java实现提供相应的Swig封装包.
Vulkan移植GpuImage(二)Harris角点检测与导向滤波
各个基本模块接口,结构定义,以及给Swig导出的C风格文件.
android一些特定功能,比如camera/codec相关实现
aoce图像计算层的cuda实现
aoce音视频资源播放/导出的ffmpeg实现
aoce图像计算层的vulkan实现
win平台下特定功能,现包含Media Foundation,dx11各种资源定义等.
win平台下aoce图像获取设备的Media Foundation实现,以及window平台窗口抓取.
win平台有些窗口使用bitblt抓取不到,添加winrt抓取窗口方式.
用vulkan的compute shader实现gpuimage,以及移植相关的opencv算法.