The shorter timeline is the RESTful delivery. Mileage will of course vary by load and latency but with what I've tested REST delivery is always faster.
For 5 reloads this was the timings I got:
apex_util REST % Faster
259 137 89.05%
362 311 16.40%
250 129 93.80%
245 130 88.46%
269 126 113.49%
Now introducing RESTful type of Media Resource which makes this very easy to do. Colm initially blogged about it a while back. In a nutshell, it's a query that wants 2 columns the first being the content type , mime, and the second being a lob or anything to be delivered. Colm showed how to deliver XML in his post. This is how to serve up images.
In the URI Template, you'll notice {id} which is the ID of the image to be served and used as a bind to query. The select is quite simple to follow.
The table for this example is quite simple but obviously could be anything as long as there's a mime and lob to deliver.
CREATE TABLE myimages
( IMAGE_ID NUMBER NOT NULL ENABLE,
IMAGE_BLOB BLOB NOT NULL ENABLE,
IMAGE_MIMETYPE VARCHAR2(255)
)
/