I did that investigation to implement a quality resize algorithm for my gimage library. I put a short missive about the process in the library as a comment, you’ll find it at https://github.com/butcherg/gimage/blob/master/gimage.cpp, starting at line 1647
The resize algorithms I considered basically work one dimension at a time, width then height, or vice versa. In each operation, one of the interpolation algorithms is used to calculate each resized pixel based on the neighbors of the corresponding center location in the original image. So, when you see a reference to, say, the lancosz3 algorithm, they’re referring to the interpolation, not the overall reduction.
The Graphics Gems book series is probably the definitive reference for most basic image processing. Vol III, article 1.2, “General Filtered Image Rescaling”, by Dale Schumacher, is particularly responsive to your need. My gimage code is an adaptation of the code described therein, with appropriate credit.