Image-based digital documents are composed of multiple pages, each of which may be composed of multiple components such as the test, pictures background, and annotations. We describe the image structure and software architecture that allows the DjVu system to load and render the required components on demand while minimizing the bandwidth requirements, and the memory requirements in the client. DjVu document files are merely a list of enriched URLs that point to individual files (or file elements) that contain image components. Image components include :text images, background images, shape dictionaries shared by multiple pages, OCRed text, and several types of annotations. A multithreaded software architecture with smart caching allows individual components to be loaded and pre-decoded and rendered on-demand. Pages are pre-fetched or loaded on demand, allowing users to randomly access pages without downloading the entire document, and without the help of a byte server. Components that are shared across pages (e.g. shape dictionaries, or background layers) are loaded as required and cached. This greatly reduces the overall bandwidth requirements. Shared dictionaries allow 40% typical file size reduction for scanned bitonal documents at 300dpi. Compression ratios on scanned US patents at 300dpi are 5.2 to 10.2 times higher than GroupIV with shared dictionaries and 3.6 to 8.5 times higher than GroupIV without shared dictionaries.