This disc contains updated versions of the compression tools supplied with the Acorn Replay Starter Kit. The updated versions allow them to operate on StrongARM. The !ARMovie supplied on this disc contains a newly developed ARMovie Codec - 'Moving Blocks HQ'. This is an improvement over 'Moving Blocks'. HQ stands for 'High Quality' - the new compressor gives improved quality of movies for a given data rate over that given by Moving Blocks. It provides better coding of new data, and enhanced motion search. Purposes of Applications: !AREncode - desktop movie compression utility !ARWork - temporary work directory for ARMovie tools AREncode -------- AREncode is an application for compressing Replay movies. It is the desktop front end to the Replay compressor program and to the Join program. AREncode acts as a desktop front end to the Replay Type 1 compressor (Moving Lines and Moving Blocks algorithms) as well as other compressors using the same control interface. It offers a quick and simple control mechanism, as well as allowing you to configure precisely all the elements of the compression process. AREncode takes any Replay file and passes it through the chosen compressor to produce a new compressed Replay file. The process usually involves two steps: * Compressing - creating chunks of compressed data * Joining - connecting these chunks together, along with sound files and header information, which can come from another movie. The next section is a quick guide to compressing and joining a Replay file. The rest of the chapter describes in detail how you can fine-tune the compression process. COMPRESSING ----------- Here's how to start compressing a movie: 1 Double-click on the AREncode application to install it on the icon bar. 2 Drag a Replay file from a directory display or from an application such as ReplayDIY or Empire and drop it on the AREncode icon bar icon. The Compress window will open, showing the helpful sprite and textual header of the movie source file. You can also load a file for compression by clicking on the icon bar icon. This brings up a blank Compress window, into which you can drag an uncompressed movie file. 3 If you want to, edit the Header text (the descriptive text in the Name, Date & © and Author fields) and drag a new helpful sprite to the window. 4 Choose whether to compress in single- or multi-tasking mode (you can change this during compression if you want). The default is single-tasking. 5 If in single-tasking mode, choose which screen mode is to be used (can be any mode with 8bpp or more). 6 Click on Compress. This starts the compression process. * In single-tasking mode, the screen will clear, the header of the new file will be displayed and compression will start, displaying the output frame (and possibly the source too) as well as a scrolling progress display of frame sizes and quality levels (1 is the highest quality). * In multi-tasking mode, the Compress window will close and a Summary window will open. This will display the same textual information as described above in a small scrolling window. Below is an example of the first few lines of the Summary text. After the header information, there is compression information for each frame, in this order: Frame number, Quality, Time for frame, Frame size. You can see that, in the example, there wasn't enough memory to compress the second frame (i.e. frame 1) at quality level 7, so AREncode kept trying lower quality levels (i.e. higher q numbers): MovingLines Batch Compressor v 0.21 15th March 1994 Sound data size is 48000 For a 1 buffer read, video data is 145000 (5800 bytes per frame) computer needs at least 940752 bytes free to decompress Chosen frame size is 5800 >>Students at Acorn World `93 >>31st December 1993 >>Dick Wallin Frame 0 q7 13678 (1098) Frame 1 <9198:retry> q8 <8974:retry> q9 <8854:retry> q10 Cut - using 7625 bytes. <8764:retry> q11 <8656:retry> q12 ... JOINING ------- When compression has finished, the Joining process will start automatically. This always takes place in multi-tasking mode (if compression was single-tasking, you'll be asked to press Space or click a mouse button to return to the desktop and start the Joining process). Note: If there's not enough disc space on the current drive to join the movie, see Insufficient disc space in the User Guide. The Summary window will alter (or appear) and display a Joining message. The movie components will be put together to create the finished, compressed movie. 1 When the Save box pops up, choose the location for the compressed movie. 2 Bring up the icon bar menu and Quit AREncode. 3 Load the compressed movie into ARPlayer (or another Replay player application) and play back. Note: You shouldn't try and save directly from AREncode to another application as it will either do nothing, or take a copy of the movie, wasting disc space. If the Delete working files on joining icon in the Control window was ticked, all the working files will be deleted when the compressed movie is successfully created and saved (if it wasn't, you'll have to delete them manually). You can also delete the original uncompressed movie now, unless you want to keep it for future use. FINE-TUNING THE COMPRESSION PROCESS ----------------------------------- AREncode gives you a lot of control over the way a movie is compressed. You can, for example * specify how the source (uncompressed) movie will be handled by the compressor (e.g. alter its frame rate) * choose which type of compressor to use, and alter various parameters associated with the compression process * apply various filters to enhance the compressed movie * choose different sound tracks to include in a movie, and specify how they are processed. Fine-tuning the source movie ---------------------------- You can tell AREncode how to handle the original uncompressed movie when it's sent to the compressor. Press menu over the Compress window and move the pointer to the right of Movie setup: Altering the frame rate of a movie By default, every frame in the source movie will be used in the compressed movie. By altering the Frame rate divisor you can change this to create a movie with a lower frame rate than the original. The Frame rate icon tells you the original frame rate of the movie. By setting the Frame rate divisor to 2 you could, for example, create a 12.5fps movie from one that originally ran at 25fps. The number of frames per chunk changes automatically as you alter the frame rate. Changing the number of frames in a movie chunk Movies are compressed in sections, known as chunks. By default movies are made with 2 second chunks. You can change this by altering the Frames per chunk field. A lower number will mean less memory is needed to play the movie, but it will be less likely to play smoothly from a device with low transfer rate/high access time such as CD-ROM. Choosing the movie's start point Choose Start at to set the frame number of the source movie at which to begin compressing. This allows you to trim the start of your movie. Remember that this is specified in frames, and that frames are numbered from zero (not one). Creating multiple versions of a movie If you want to make several different versions of a movie, experimenting with compression parameters, you'll probably want to keep them in the same directory. The Index option prefixes the working files for each version by the same index value. The output movie will also be postfixed by this value. If the Index flag is turned on, then it will change as the Frame rate divisor is changed. Including key frames By default, if key frames have been created (see Using key frames) then they are included in the compressed movie. You can change this by unticking the Join keys icon. For example, you might want to exclude the key frames after creating them to save memory, or perhaps make one version of a movie with key frames and one without. If you do, then remember to untick the Delete working files option in the Control window before joining the first version of the movie. Applying a movie setup There are three action buttons in the Movie setup window: * Click on Default to reset all values back to their defaults * Click on Cancel to just reset the values back to their state when you opened the Movie setup window or when you last pressed OK. * Click on OK to register the current settings in the Movie default window for use in the next compression. The Movie setup window will disappear when you press any of the action buttons. Fine-tuning the compressor -------------------------- You can choose which type of compressor to use, and change a number of parameters associated with the compression process. Press Menu over the Compress window and choose Configure compressor-. The Configure compressor window will appear: Choosing a compressor If you have more than one compressor installed, the Compressor field will show which one will be used. It's usually set to Moving lines. To change this, click on the popup icon to the right and choose from the menu of available compressors. Two compressors are supported: Moving Lines and Moving Blocks. The latter will generally be faster and produce better results (it is designed to compress YUV movies, and does not compress RGB colour space movies) but you should experiment - the results will depend to a certain extent on your source material. Using key frames If Make keys is enabled, the state of the compressor will be output at the start of every compressed chunk. These key frames are then bound into the compressed movie at the joining stage. They make the movie larger but allow you to restart it during playback from any point with only a small delay. If you will definitely only want to play the movie from the start, disable this option. Changing the compression mode There are three modes in which the compressor can run (although two of these are different ways of specifying the same thing). The window options will change to reflect the mode you choose. Quality mode: In this mode the quality level of the compressed frame is fixed at the chosen level, no matter what the size of the output produced. Note that you may need up to 8MB of RAM to run in this mode (depending on chunk size). The highest quality is zero; the lowest is 99. Quality zero is defined to be the same quality as the original movie. Frame size mode: In this mode you choose an average frame size in bytes and the compressor will adjust the quality to try and ensure this size, recompressing frames as necessary. There are two other options in this mode: * Faster matching gives a slight improvement in speed if you're using Moving lines compression. * Limit to ARM2 ensures that, whatever frame size you enter, the results will always be displayable on an ARM2 machine. Device bandwidth mode: This works in the same way as Frame size mode, with the compressor adjusting quality levels. However, rather than specifying an actual frame size, you specify the characteristics of the delivery device (the Device latency and Data rate) and the compressor works out the average frame size. The default values are for a standard CD-ROM. Assume double buffers assumes the playback machine has enough memory for double-buffered chunks. This allows a slightly larger frame size. Note that the preceding options describe the operation of the Moving Lines compressor. Other compressors may not necessarily support all these options (e.g. they may only have a fixed quality mode, or no fixed frame size mode). Consult the documentation that comes with the compressor for more information. Applying the compressor configuration settings There are three action buttons in the Movie setup window: * Click on Default to reset all values back to their defaults. * Click on Cancel to just reset the values back to their state when you opened the Configure compressor window or when you last pressed OK. * Click on OK to register the current settings for use in the next compression. Filtering a movie ----------------- You can enhance your compressed movies by applying various filters during the compression process. Press Menu over the Compress window and choose Filters-. The Filters window will appear: Image processing filters can make a big difference to the quality of compressed scenes. Here's a brief description of each of the filters supplied with Replay: DirectY Linear filter, dependent on edge direction. SharpenY Enhances changes in the luminance (i.e. 0 -1 0 emphasises the edges) by using a three by -1 5 -1 three filter. 0 -1 0 SMedian5 Replaces a pixel with the median of the pixel and its four adjacent neghbours. SMedian9 Replaces a pixel with the median of the pixel and its eight adjacent neghbours. SmoothY5 Smooths the luminance using a three by three 0 1 0 filter using the following weights (divided by 1 4 1 eight). 0 1 0 SmoothY9 Smooths the luminance using a three by three 1 2 1 filter using the following weights (divided by 2 4 2 16). 1 2 1 TClamp Ignores differences between successive frames if they are smaller than a predefined threshold. Adding filters The lefthand area in the Filters window shows you all the available filters. To add a filter, point at its name and drag it onto the In use window. You can apply as many of the available filters as you want. To add more filters, just drag them from the Available list and drop them onto the In use list. Note that filters are added exactly where you're pointing when you drop them, so you can position a new filter anywhere in the In use list. Changing the order in which filters are applied Filters are applied in the order in which they appear in the In use list. To change a filter's position in the In use list, drag it to the new position and drop it in place (you can drag from either the In use list or from the Available list, it doesn't matter). Removing filters To remove a filter, point at its name in the In use list and drag it back onto the Available list. Alternatively, just double-click with Adjust. Applying the filters When you're happy with your choice of filters, and you've got them in the right order, click on OK. If you don't want the current settings in the Filters window to apply, click on Cancel instead. Handling movie sound tracks --------------------------- Press Menu over the AREncode window and choose Sound tracks-. Adding and deleting sound tracks When you initially load a movie into AREncode, its own sound tracks (if any) will be used by default. The Sound tracks window will show one source file, and how ever many Sound tracks exist in the source movie. Use the arrow icons next to the Sound track icon to see a description of each of the tracks in the file. There are two ways you can add soundtracks to a movie: * Drop another movie containing the desired track onto the Sound tracks window. All the current movie's soundtracks will be replaced by the new soundtracks. * Click on Insert in the Sound tracks window to open a blank Source file field. Drop another movie containing the desired track onto the Sound tracks window. The new soundtracks will be added to those of the current movie. You have to include all the tracks from a new source file in the order in which they occur. You can't pick and choose or rearrange the order. You can, however, control the order in which the various source files are used: they will always be inserted after the currently-displayed file. You can include as many sound files as you like in a movie, but they can only be read from an existing ARMovie file (which may or may not have video in it as well). You can also delete a file from the list and use the arrow icons next to the Source file icon to scroll through the files to be used. Note that a directory of the extracted components of a Replay file may contain sound files in raw data format. These will show up in the Sound tracks window as one file with a number of sound tracks, and their format will be shown (as read from the Header text file) but no filename will be shown in the icon. Compressing movie sound tracks 16-bit sound tracks (sound samples), although very high quality, take up a lot of disc space. If you choose Compress to ADPCM, any 16-bit sound tracks will be compressed to 4-bit ADPCM with only a small loss in quality. Applying and saving sound track settings There are a couple of ways of applying changes to the Sound tracks window: * If you start the compression process while the Sound tracks window is still displayed, any changes you've made will be taken into account. * If you click on Update, any changes you've made to the Sound tracks window will be saved for the current AREncode session and the window will disappear. Note: You can Cancel any changes you've made, redisplay the window and start again. Settings in the Sound tracks window are not saved between sessions - but do remember to save any other choices first. Saving new default configuration settings ----------------------------------------- As long as you're using a copy of AREncode that's on a writable device, you can save the current settings as defaults, so they'll be used next time you start AREncode. Saved settings include: * source file handling settings in the Movie setup window * compressor configuration settings in the Configure compressor window * filter configuration. To do this, choose Save choices from the icon bar menu. Note: Information in the Sound tracks window is not saved. STARTING AND STOPPING A SESSION ------------------------------- When you click on Compress in the Compress window, AREncode will start to process the movie according to your configuration settings. You can start and stop the compression process if you need to. Single-tasking mode ------------------- If the screen mode you've chosen is large enough, the display will consist of the source frame in the lower righthand corner and the compressed version in the lower lefthand corner. In single-tasking mode you can stop the compression process and return to the Desktop as follows: * Press Space to stop at the end of the current frame, saving the compression state. This is the preferred method of returning to the Desktop. * Press Escape to stop the task immediately (this will not save any compression state information) so you'll only be able to restart from the last checkpoint. Multi-tasking mode ------------------ When you choose to compress a movie in multi-tasking mode, a Summary window will appear on the screen: This window shows the progress of the compression task. You have the following controls during the compression process: Abort is equivalent to pressing Escape in single-tasking mode. It will stop the task immediately, without saving the current state, so you will only be able to restart from the last checkpoint. Suspend is equivalent to pressing Space in single-tasking mode. It will send a message to the task asking it to stop and save state at the end of the current frame. This may take a while if the current frame needs several retries. When the frame does finish, the Compress window will be reopened. At this point the Continue icon will be selectable, since there is now a saved state from which to restart. You can set the single-tasking mode, if you want. At this point, you can Quit AREncode, or even switch off your computer. To restart compression, drop the original movie onto the Compress window and click on Continue. On restarting, the correct settings will be used (settings in the Configure compressor window will be overridden if necessary). Pause will freeze the task until you press Continue. All state information is preserved in memory, it simply stops anything happening to the task when Pause mode is engaged. Use this if you temporarily need the full power of the processor (but note that no memory will be returned to you). Pressing the Close icon whilst the task is running kills the task (you're asked to confirm this) and then behaves as if you'd pressed Abort. Saving the Compressor window text --------------------------------- During compression in multi-tasking mode, you have the opportunity to save the output from the Summary window in a text file, for future reference. To do this, click on the Save log- icon in the top righthand corner of the Compressor - running window. This will display a Save as box, which you can drag to an open directory display: Saving a compressed movie ------------------------- Once the compression process has completed, you'll need to save the finished movie file. When a movie has been successfully joined, a save box will open automatically. Drag the Save as icon to your chosen destination directory, or simply click on Save to save it in the work directory. Note: If you click on Cancel, the movie will be deleted from the work directory. Working files ------------- AREncode produces working files during the compression process. Open work directory opens a directory display showing all the working files created. If no movie is loaded then it will show the work root directory, in which individual work directories are created. When you've finished compressing a movie you'll probably want to delete the working files. If you've ticked Delete working files on joining in the Control window then they will be removed as soon as you save the compressed movie. If not, choose Delete working files from the Control window menu. You can then choose which working directories to delete (if you click with Adjust, the menu will stay open and any directories you delete will be shaded). Typical working files are Log, Header, Sprite, Keys directories, Image directories, the output movie, StoppedC, StoppedD and StoppedF. Note that if there are no working directories (because you haven't created any or have deleted them all) then the main menu entry will be greyed out. JOINING AN EXTRACTED MOVIE -------------------------- If you've used the Save data option in ARPlayer to extract a movie into its constituent parts, you can rejoin those parts to make a compressed movie again. To do this: 1 Drag the directory icon containing the extracted movie onto the Compress window. The Join icon will then become selectable: 2 Click on the Join icon. A Summary window will appear, followed by a Save as box: Before joining you can change some aspects of the movie such as * the sound tracks used * whether to compress 16-bit sound down to format 2 ADPCM (4 bits per sample) * whether key frames are used * the descriptive text * the helpful sprite. 3 Drag the Save as icon to a suitable directory display to save the joined movie. Joining a sound-only movie -------------------------- You can use AREncode to join sound-only movies. To do this, drag a directory onto the AREncode icon bar icon. The directory should contain one or more sound files and a header file. As long as the header file says that there is no video, the Join button in the Compress window will be selectable. If you're not sure how to construct a header file, see ARMovie file format. DISC USE -------- Working files are stored within the !ARWork application. This application should be placed on your (writable) work drive (i.e. the one with the most free space). All files are stored within the directory -!ARWork.Work.AREncode - which is known as the work root directory. Within the work root there may be a directory +Sources. This will contain any movies that were dragged to AREncode direct from another application and so copies needed to be taken. Otherwise, when compression starts, a directory will be created with the same name as the leaf name of the source file. For example, if ADFS::NerveNet.$.Movies.Type3.Film93 is started compressing, the directory Film93 will be created in the work root and it will be the work directory for this compression session. The joined movie will by default be given the same name as the source (e.g. Film93). The following files will be created within the work directory: * Header - a textual header describing the parameters of the compressed movie data. Some of this information comes from the source movie, some from the options set up in AREncode. * Sprite - the default sprite. * ImagesN - the compressed data chunks, as many directories as are necessary to store all the chunks in numbered from 0. The chunks will be labelled 00, 01, 02 up to 76 * KeysN - the key frames for the chunks. Numbering as for ImagesN. * StoppedC, StoppedD and StoppedF - saved state. Check points save the state every 20 minutes in case of accidents. They are also saved when you press Space (in single-tasking mode ) or Suspend (in multi-tasking mode) while compression is in progress. If the Index feature is used (see Using key frames) these file names (except Sprite) will all be prefixed by the appropriate index value. The output movie will be postfixed by the same index value. HINTS AND TIPS -------------- This section contains some useful hints on using AREncode, and deals with some problems you might encounter. Has a movie been compressed? ---------------------------- You can tell whether a movie has already been compressed by dropping it onto an ARPlayer window and choosing File/Movie info-. The video field for an uncompressed movie will say something like Type 3: YYUV uncompressed Resources not found ------------------- When you start up AREncode, you might see a message telling you that the ARMovie resources could not be found. This should only occur if !Boot has not been run successfully on start up. Insufficient memory ------------------- Lack of memory will probably manifest itself with the following error: No room for this DIM at line xxxx The solution is to quit some running applications, shrink dynamic areas down as small as possible (e.g. the font cache, RAM disc and System sprite areas are not needed) or change to a screen mode using less memory. Note that the single-tasking mode requires approximately 128kB more than the multi-tasking mode. Exact memory usage depends on the configure options selected but is usually not far short of 2MB, and in practice you'll often need up to 4MB to compress a movie. Insufficient disc space ----------------------- Lack of disc space could be more of a problem. If compression has finished successfully, but there is not enough disc space to join the finished movie, you can try the following to make more space (first close the Summary window, which will cause the AREncode window to reopen): * If you have enough disc space on a different drive from that containing the ARWork directory, then choose Save encoded movie from the application menu. This will join the movie directly to the location you choose. * Delete some unrelated files on the work drive and choose Join from the Control window to try again. * If the movie has no sound, or you do not wish to use the original sound, then you could delete the source movie. Choose Join from the Control window to try again. Invalid movie file ------------------ When you drag an ARMovie file onto AREncode, the file is scanned. Then, if there is a work directory of the same name, it is scanned for relevant components (e.g. Header files). That way, when you restart a compression session, AREncode knows about any changes that have been made to the header details of a given movie, and will incorporate those changes. The header file in the work directory is scanned using the same routines as are used to scan the header of a Replay file. If, for any reason, the header file in the work directory is invalid, you'll see the message Not a movie file After this, the header file is ignored. It's safe to continue - AREncode will just use the original header file. Helpful sprite creation ----------------------- If you're creating a helpful sprite yourself, you need to create it in the correct mode for the machine on which you intend the movie to be played. For example, don't use the new RISC 3.5 or later sprite modes if the movie is going to be played on a RISC OS 3 machine.