  Satellites have become more widely available due to the reduction in size and
cost of their components. As a result, there has been an advent of smaller
organizations having the ability to deploy satellites with a variety of
data-intensive applications to run on them. One popular application is image
analysis to detect, for example, land, ice, clouds, etc. for Earth observation.
However, the resource-constrained nature of the devices deployed in satellites
creates additional challenges for this resource-intensive application.
  In this paper, we present our work and lessons-learned on building an Image
Processing Unit (IPU) for a satellite. We first investigate the performance of
a variety of edge devices (comparing CPU, GPU, TPU, and VPU) for
deep-learning-based image processing on satellites. Our goal is to identify
devices that can achieve accurate results and are flexible when workload
changes while satisfying the power and latency constraints of satellites. Our
results demonstrate that hardware accelerators such as ASICs and GPUs are
essential for meeting the latency requirements. However, state-of-the-art edge
devices with GPUs may draw too much power for deployment on a satellite. Then,
we use the findings gained from the performance analysis to guide the
development of the IPU module for an upcoming satellite mission. We detail how
to integrate such a module into an existing satellite architecture and the
software necessary to support various missions utilizing this module.
