📄 yuv4mpeg.5
字号:
.TH "yuv4mpeg" "5" "25 November 2002" "MJPEG Linux Square" "MJPEG Tools Manual".SH "NAME"YUV4MPEG2 \- video stream format used by pipe-based MJPEGtools.hw libmjpegutils yuv4mpeg.h YUV4MPEG YUV4MPEG2 .SH "DESCRIPTION".PPMany of the MJPEGtools communicate via pipes and act as filters(or sources or sinks). The format of video data used in the pipes isreferred to as "YUV4MPEG", or, more precisely, "YUV4MPEG2". (The formatwas extended and codified during v1.5.x of the tools.).PPThe basic structure is a stream header followed by an unlimited number offrames. Each frame itself consists of a header followed by video data.The headers are vaguely human-readable ASCII, but the video data is simplebyte-size binary..PPThe MJPEGtools distribution has a C library (libmjpegutils) which containsfunctions for manipulating YUV4MPEG2 streams. We recommend that you usethis library rather than writing your own code if possible. See the headerfile "yuv4mpeg.h" for a description of these functions..PPDesign Goals:.IP oEasy to parse both via C or sh..IP oExtensible; easy to add new parameters while maintaining backwardscompatibility..IP oSimple upgrade from original "YUV4MPEG" format..PPDrawbacks:.IP oFrame headers do not have constant size, so streams are not seekable..SH "GRAMMAR"The precise description of the the YUV4MPEG2 stream format is as follows:.PP\fISTREAM\fP consists of.IP - 3 one \fISTREAM-HEADER\fP.IP - 3 unlimited number of \fIFRAME\fPs.PP\fISTREAM-HEADER\fP consists of.IP - 3 magic string "YUV4MPEG2".IP - 3 unlimited number of \fITAGGED-FIELD\fPs,each preceeded by a '\ ' (single space) separator.IP - 3single '\en' line terminator.PP\fIFRAME\fP consists of .IP - 3one \fIFRAME-HEADER\fP.IP - 3"length" octets of planar YCbCr 4:2:0 image data(If the stream is interlaced, then the two fields per frame are interleaved,with proper spatial ordering.).PP\fIFRAME-HEADER\fP consists of.IP - 3magic string "FRAME".IP - 3unlimited number of \fITAGGED-FIELD\fPs,each preceeded by a '\ ' (single space) separator.IP - 3single '\en' line terminator.PP.I \fITAGGED-FIELD\fP consists of.IP - 3single ASCII character tag.IP - 3\fIVALUE\fP (which does not contain whitespace).PP\fIVALUE\fPconsists of.IP - 3\fIRATIO\fP,.B or.IP - 3integer (base 10 ASCII representation),.B or.IP - 3single ascii character,.B or.IP - 3string (multiple ASCII characters).PP\fIRATIO\fP consists of.IP - 3numerator (base 10 ASCII integer).IP - 3\&':' (a colon).IP - 3denominator (base 10 ASCII integer).PPHeader tags fall into three categories: \fBoptional\fP, \fBrequired\fP and \fBhas-default\fP.Optional tags are completely optional and may be omitted from a header.Required tags must be present in a header. Has-Default tags have a defaultvalue which is implied if the tag is not present.Independent of these categories, some tags allow an "unknown" value andsome do not..PPThe supported tags for the \fISTREAM-HEADER\fP:.RS.HPW[integer]\ \-\ frame width in pixels, must be > 0 (\fBrequired\fP).HPH[integer]\ \-\ frame height in pixels, must be > 0 (\fBrequired\fP).HPC[string]\ \-\ chroma subsampling, image data format (\fBhas default\fP).RS 420jpeg\ \-\ 4:2:0 with JPEG/MPEG-1 siting (default) 420mpeg2\ \-\ 4:2:0 with MPEG-2 siting 420paldv\ \-\ 4:2:0 with PAL-DV siting 411\ \-\ 4:1:1, cosited 422\ \-\ 4:2:2, cosited 444\ \-\ 4:4:4 (no subsampling) 444alpha\ \-\ 4:4:4 with an alpha channel mono\ \-\ luma (Y') plane only.RE.HPI[char]\ \-\ interlacing specification: (\fBhas default\fP).RS ?\ \-\ unknown (default) p\ \-\ progressive/none t\ \-\ top-field-first b\ \-\ bottom-field-first m\ \-\ mixed-mode: refer to 'I' tag in frame header.RE.HPF[ratio]\ \-\ frame-rate (\fBhas default\fP of 0:0 == unknown).HPA[ratio]\ \-\ sample aspect ratio (\fBhas default\fP of 0:0 == unknown).HPX[string]\ \-\ 'metadata' (\fBoptional\fP; unparsed, but passed around).RE.PPThe currently supported tags for the \fIFRAME-HEADER\fP:.RS.HPI[string]\ \-\ framing and sampling (\fBrequired if-and-only-if\fP Im ispresent in stream header). Value is a string of three characters "xyz"which have the following meanings:.RS x: frame presentation t\ \-\ top-field-first T\ \-\ top-field-first and repeat b\ \-\ bottom-field-first B\ \-\ bottom-field-first and repeat 1\ \-\ single progressive frame 2\ \-\ double progressive frame (repeat) 3\ \-\ triple progressive frame (repeat) y: frame temporal sampling p\ \-\ progressive (fields sampled at same time) i\ \-\ interlaced (fields sampled at different times) z: frame chroma-subsampling p\ \-\ progressive (subsampling over whole frame) i\ \-\ interlaced (each field subsampled independently) ?\ \-\ unknown (allowed only for non-4:2:0 subsampling).RE.HPX[string]\ \-\ 'metadata' (\fBoptional\fP; unparsed, but passed around).RE.PPNote that a filter application must faithfully forward all "X" tags from input pipe to output pipe (unless it uses one of those tags, of course).The supplied library will do this automatically if the functionsy4m_copy_stream_info() and y4m_copy_frame_info() are used appropriately..SH "NOTES ON IMAGE DATA".PPAll image data is in the CCIR-601 Y'CbCr colorspace, presented plane-by-planein row-major order.Each sample within each plane is one octet (8-bits) in size.When all planes are present, they are transmitted in the order Y', Cb, Cr,potentially followed by an alpha/transparency mask plane (for the \fB444alpha\fP chroma format). The alpha channel data is follows the samerange as the Y' luma channel: full transparency is at 16 and full opacityis at 235.All Y' and alpha planes consist of (height\ X\ width) octets.The size of the chroma planes depends on the subsampling mode:.IP - 34:4:4 - (height\ X\ width) octets.IP - 34:2:2 - (height\ X\ width)\ /\ 2 octets.IP - 34:1:1 - (height\ X\ width)\ /\ 4 octets.IP - 34:2:0 - (height\ X\ width)\ /\ 4 octets.SH "NOTES ON FRAMING".PP(More to come here.).SH "SEE ALSO".BR mjpegtools (1),yuv4mpeg.h.SH "AUTHOR"This manual page Copyright 2004 Matthew J. Marjanovic.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -