Dolby Digital Plus, also known as Enhanced AC-3 (and commonly abbreviated as DDP, DD+, E-AC-3 or EC-3) is a digital audio compression scheme developed by Dolby Labs for transport and storage of multi-channel digital audio. It is a successor to Dolby Digital (AC-3), also developed by Dolby, and has a number of improvements including support for a wider range of data rates (32 kbit/s to 6144 kbit/s), increased channel count and multi-program support (via substreams), and additional tools (algorithms) for representing compressed data and counteracting artifacts. While Dolby Digital (AC-3) supports up to five full-bandwidth audio channels at a maximum bitrate of 640 kbit/s, E-AC-3 supports up to 15 full-bandwidth audio channels at a maximum bitrate of 6.144 Mbit/s.
Within each substream, provision is made for encoding five full-bandwidth channels, one low-frequency channel, and one coupling channel. The coupling channel is used for medium-to-high-frequency information which is common to multiple full-bandwidth channels. Its content is mixed in with the other channels in a fashion prescribed by the metadata, it is not reproduced as a discrete channel by the decoder.
A DD+ stream is a collection of fixed-length syncframe packets, each of which corresponds to either 256, 512, 768, or 1536 consecutive time-domain audio samples. (The 1536-sample case is the most common case, and corresponds to Dolby Digital; the shorter subframe lengths are intended for use in interactive applications like video games where reducing encoder latency is an important concern). Each syncframe is independently decodable, and belongs to a specific substream within the service. A syncframe consists of the following syntax elements (some of which may be elided when a Dolby Digital Plus service is encapsulated into another format or transport):
Both Dolby Digital and DD+ encoder converts a multichannel audio signal to the frequency domain using the modified discrete cosine transform (MDCT), with a switchable block length of either 256 or 512 samples (the latter is used with stationary signals, the former with transient signals). The frequency domain representation is then quantized according to a psycho-acoustic model and transmitted. A floating-point format for frequency coefficients is used, and mantissas and exponents are stored and transmitted separately, with both being heavily compressed.
As many multi-channel audio programs have high degrees of correlation between individual channels, a coupling channel is typically used. High frequency information which is common among two or more channels is transmitted in a separate channel (one that is not reproduced by a decoder, but only mixed back into the original channels) known as the coupling channel; along with coefficients known as "coupling coordinates" that guide the decoder on how to reconstruct the original channels.
For broadcast (emission) to consumers, the Dolby Digital Plus bitstream is packetized in an MPEG elementary stream, and multiplexed (with video) into an MPEG Transport Stream. In ATSC systems, the specification for carrying Dolby Digital Plus is described in ATSC A/53 Part 3 & Part 6. In DVB systems, the specification for carrying Dolby Digital Plus is described in ETSI TS 101 154 and ETSI EN 300 468.
Dolby Digital Plus is seeing increasing use in digital television systems, particular in cable and satellite systems, as a replacement for Dolby Digital. Many such applications don't take advantage of its higher channel count or ability to support multiple independent programs; instead it is used as a higher-efficiency codec than AC-3.
Time-sharing is a technique which enables many people, located at various terminals, to use a particular computer system at the same time. Time-sharing or multitasking is a logical extension of multiprogramming. Processor's time which is shared among multiple users simultaneously is termed as time-sharing.
The operating system uses CPU scheduling and multiprogramming to provide each user with a small portion of a time. Computer systems that were designed primarily as batch systems have been modified to time-sharing systems.
A Network Operating System runs on a server and provides the server the capability to manage data, users, groups, security, applications, and other networking functions. The primary purpose of the network operating system is to allow shared file and printer access among multiple computers in a network, typically a local area network (LAN), a private network or to other networks.
Soft real-time systems are less restrictive. A critical real-time task gets priority over other tasks and retains the priority until it completes. Soft real-time systems have limited utility than hard real-time systems. For example, multimedia, virtual reality, Advanced Scientific Projects like undersea exploration and planetary rovers, etc.
Sharing the processor, when two or more programs reside in memory at the same time, is referred as multiprogramming. Multiprogramming assumes a single shared processor. Multiprogramming increases CPU utilization by organizing jobs so that the CPU always has one to execute.
Process scheduling is an essential part of a Multiprogramming operating systems. Such operating systems allow more than one process to be loaded into the executable memory at a time and the loaded process shares the CPU using time multiplexing.
The primary objective of the job scheduler is to provide a balanced mix of jobs, such as I/O bound and processor bound. It also controls the degree of multiprogramming. If the degree of multiprogramming is stable, then the average rate of process creation must be equal to the average departure rate of processes leaving the system.
Medium-term scheduling is a part of swapping. It removes the processes from the memory. It reduces the degree of multiprogramming. The medium-term scheduler is in-charge of handling the swapped out-processes.
A context switch is the mechanism to store and restore the state or context of a CPU in Process Control block so that a process execution can be resumed from the same point at a later time. Using this technique, a context switcher enables multiple processes to share a single CPU. Context switching is an essential part of a multitasking operating system features.
Each thread belongs to exactly one process and no thread can exist outside a process. Each thread represents a separate flow of control. Threads have been successfully used in implementing network servers and web server. They also provide a suitable foundation for parallel execution of applications on shared memory multiprocessors. The following figure shows the working of a single-threaded and a multithreaded process.
In this case, thread management is done by the Kernel. There is no thread management code in the application area. Kernel threads are supported directly by the operating system. Any application can be programmed to be multithreaded. All of the threads within an application are supported within a single process.
Some operating system provide a combined user level thread and Kernel level thread facility. Solaris is a good example of this combined approach. In a combined system, multiple threads within the same application can run in parallel on multiple processors and a blocking system call need not block the entire process. Multithreading models are three types
The following diagram shows the many-to-many threading model where 6 user level threads are multiplexing with 6 kernel level threads. In this model, developers can create as many user threads as necessary and the corresponding Kernel threads can run in parallel on a multiprocessor machine. This model provides the best accuracy on concurrency and when a thread performs a blocking system call, the kernel can schedule another thread for execution.
Many-to-one model maps many user level threads to one Kernel-level thread. Thread management is done in user space by the thread library. When thread makes a blocking system call, the entire process will be blocked. Only one thread can access the Kernel at a time, so multiple threads are unable to run in parallel on multiprocessors.
There is one-to-one relationship of user-level thread to the kernel-level thread. This model provides more concurrency than the many-to-one model. It also allows another thread to run when a thread makes a blocking system call. It supports multiple threads to execute in parallel on microprocessors.
Though performance is usually affected by swapping process but it helps in running multiple and big processes in parallel and that's the reason Swapping is also known as a technique for memory compaction.
There is always a device controller and a device driver for each device to communicate with the Operating Systems. A device controller may be able to handle multiple devices. As an interface its main task is to convert serial bit stream to block of bytes, perform error correction as necessary.
These are the libraries which provide richer and simplified interface to access the functionality of the kernel or ultimately interactive with the device drivers. Most of the user-level I/O software consists of library procedures with some exception like spooling system which is a way of dealing with dedicated I/O devices in a multiprogramming system. 2b1af7f3a8