Transcoding is the direct digital-to-digital conversion of one encoding to another. This is usually done to incompatible or obsolete data in order to convert it into a more suitable format. When transcoding one lossy file to another, the process almost always introduces generation loss.
The most popular method of to transcoding is to decode the original data to a intermediate format (i.e. PCM for audio or YUV for video), in a way that still contains the content of the original, and then encoding the resulting file into the target format.
Transcoding may also refer to the process of directly changing assembled software code to work on a different platform or operating system. While it is usually preferable to use source code and recompile the application, there are times when doing so is either impractical or impossible. This usually occurs when the source code is unavailable. One example, such as in the case of Wine, is taking Direct3D function calls and turning them into OpenGL calls.
In theory, one can have formats with bitrate peeling, that allow one to easily lower the bitrate without re-encoding, but the benefits remain theoretical: in Vorbis bitrate peeling as of 2008, the quality is inferior to re-encoding.
In such a case, compression artifacts are cumulative; therefore transcoding causes a progressive loss of quality with each successive generation (this is known as digital generation loss). For this reason, it is generally discouraged unless unavoidable.
It is better to retain a copy in a lossless format (such as TTA, FLAC or WavPack for sound), and then encode directly from the lossless source file to the lossy formats required.
Likewise for image editing, one is advised to capture images in a raw image format, and edit (a copy of) that image, only converting to other formats for distribution.
One of the most popular technologies in which transcoding is used is the Multimedia Messaging Service, which is the technology used to send or receive messages with media (image, sound, text and video) between mobile phones. For example, when a camera phone is used to take a digital picture, a high-quality image usually of at least 640x480 resolution is created. However, when sending the image to another phone, this high resolution image might be transcoded to a lower resolution image with less color in order to better fit the target device's screen size and color limitation. This size and color reduction not only improves the user experience on the target device but is sometimes the only way for content to be sent between different mobile devices.
Transcoding is extensively used by Home theatre PC software, such as MythTV and Freevo to reduce the usage of disk space by video files. The most common operation in this application is the transcoding of MPEG-2 files to the MPEG-4 format.
Real-time transcoding in a many-to-many way (any input format into any output format) is becoming a necessity to provide true search capability for any multimedia content on any mobile device, with over 500 million videos on the web and a plethora of mobile devices.