A graphics processing unit (GPU),
also occasionally called visual processing unit (VPU), is a
specialized electronic circuit designed to rapidly manipulate and alter memory
to accelerate the building of images in a frame buffer intended for output to a
display. GPUs are used in embedded systems, mobile phones, personal computers,
workstations, and game consoles. Modern GPUs are very efficient at manipulating
computer graphics, and their highly parallel structure makes them more
effective than general-purpose CPUs for algorithms where processing of large
blocks of data is done in parallel.
The term GPU was popularized by Nvidia
in 1999, who marketed the GeForce 256 as "the world's first 'GPU', or
Graphics Processing Unit, a single-chip processor with integrated transform,
lighting, triangle setup/clipping, and rendering engines that are capable of
processing a minimum of 10 million polygons per second". Rival ATI
Technologies coined the term visual processing unit or VPU with the release of
the Radeon 9700 in 2002.
Most GPUs made since 1995 support the YUV
color space (YUV is a color space typically used as part of acolor
image pipeline. It encodes a color image or video taking human perception
into account, allowing reduced bandwidth for chrominance components, thereby
typically enabling transmission errors or compression artifacts to be more
efficiently masked by the human perception than using a "direct"
RGB-representation) and hardware overlays, important for digital video
playback, and many GPUs made since 2000 also support MPEG primitives such as
motion compensation and iDCT. This process of hardware accelerated video
decoding, where portions of the video decoding process and video
post-processing are offloaded to the GPU hardware, is commonly referred to as
"GPU accelerated video decoding", "GPU
assisted video decoding", "GPU hardware accelerated video
decoding" or "GPU hardware assisted video decoding".
More recent graphics cards even decode
high-definition video on the card, offloading the central processing unit. The
most common APIs for GPU accelerated video decoding are DxVA for Microsoft
Windows operating system, VDPAU, VAAPI, XvMC, and XvBA for Linux and UNIX based
operating-system. All except XvMC are capable of decoding videos encoded with
MPEG-1, MPEG-2, MPEG-4 ASP (MPEG-4 Part 2), MPEG-4 AVC (H.264 / DivX 6), VC-1,
WMV3/WMV9, Xvid / OpenDivX (DivX 4), and DivX 5 codecs, while XvMC is only
capable of decoding MPEG-1 and MPEG-2.
The video decoding processes that can
be accelerated by today's modern GPU hardware are:
- Motion compensation (mocomp)
- Inverse discrete cosine transform (iDCT)
- Inverse telecine 3:2 and 2:2 pull-down
correction
- Inverse modified discrete cosine transform
(iMDCT)
- In-loop deblocking filter
- Intra-frame prediction
- Inverse quantization (IQ)
- Variable-length decoding (VLD), more commonly
known as slice-level acceleration
- Spatial-temporal deinterlacing and automatic
interlace/progressive source detection
- Bitstream processing (Context-adaptive
variable-length coding/Context-adaptive binary arithmetic coding) and
perfect pixel positioning.
No comments:
Post a Comment