The MetalFX team has presented a very nice (classical) method for video upscaling. What is the potential of using MPS to achieve machine learning upscaling?
MPSGraph
supports most common neural-network machine learning layers and operations so you should be able to create an upscaling network from the basic components, but MPSGraph
doesn't have prebuilt graphs or networks so you would need to investigate and research the network architecture yourself, train it (using MPSGraph
or other training frameworks) and deploy on MPSGraph
.
One benefit of using MPSGraph
is that you can pretty easily incorporate other Metal kernels (for example MPS image processing kernels or your own kernels) and encode them to the same Metal CommandQueue (or MPSCommandBuffer
) to achieve low-latency, often zero-copy execution between the pre/post-processing kernels and the MPSGraph
segment(s).