DVD-Video SubPictures工作原理3

How SubPictures Work - Part 3

Command Sequences and Timing

The SP_DCSQ
A subpicture is not just a simple bitmap presented at its Presentation TimeStamp (PTS) for a certain duration. Instead it has a command structure comprised of eight commands. These commands are grouped into sequences called SubPicture Display Control SeQuences (
SP_DCSQ) which execute after a defined interval of time. For each subpicture unit (SPU) there can be as few as one SP_DCSQ and as many as will fit in the limited (32,000 bytes) space allotted to commands.
The delay
The very first thing each sequence does is wait. This is how timed effects, such as scrolling, wiping, or fading in/out are realized using the same bitmap. The delay is specified in what may look like a strange unit, but when you examine it, it makes sense. The unit of time is the 90KHz clock divided by 1024. All DVD timing is determined by the master clock, which runs at 27MHz, and the 90KHz clock, which is derived from the master clock by dividing it by 300. Since 90KHz provides more precision than we need to determine a frame or field, another divisor of 1024 (210) is used to yield a granularity of approximately 87 per second. This is fine enough to specify a field in either NTSC or PAL standards (see
table). Division by 2048, the next power of two, would be too coarse to specify a single field of NTSC video.
How it gets started
Once the delay has expired (and it may be zero, for immediate action) the
commands execute. The first sequence must contain at least a SET_COLOR, SET_CONTR, SET_DAREA, and SET_DSPXA command. These define the color and contrast of the pixels, the display area, and pixel data pointers, respectively. All sequences must end with the CMD_END command, after which the next sequence, if one is defined in the current sequence's header, begins its delay.
But what turns it on and off?
There are three more commands to deal with just turning the subpicture on and off, these are:
    •  
  • STA_DSP This command starts the display if the stream has been selected and subpictures are enabled.
  • STP_DSP This command turns the display of this subpicture off.
Scrolling
Vertical scrolling is accomplished by changing the pixel data pointers with
SET_DSPXA at timed intervals. Excess lines in the pixel data area are not a problem, once the display area limit is reached, the remaining data is ignored.
Horizontal scrolling is trickier, and usually requires seperate images for each step of the scroll. However, the SET_DSPXA command aso allows us to store more than one image per SPU, and use each as needed.
Wipes and Fades
These are performed by using the very versatile and complex
CHG_COLCON command. This command allows you to define areas within the subpicture and assign different color and contrast values to the pixels within each area. The command has a large and variable parameter area made up of segments that describe either a vertically bounded area, or a horizontally bounded area within the current vertically bounded area. Sound difficult? It's really not, the first thing is to define a horizontal band using the LN_CTLI structure. This specifies the starting and ending line numbers, and the number of horizontally bounded areas (1 to 15) within the band. After that you define each area with the PX_CTLI structure, which specifies the starting column number (these work left-to-right, and extend to the next area or the right side of the image), and the new color and contrast values.
As you can see, combined with timing, the areas can be slid around the screen causing the pixels to change colors for a wipe effect. Combined with timing, but not sliding around, changes in contrast values can be used to fade a subpicture in or out (or to mask and unmask the underlying video). The command can also be used statically to add more colors to a subpicture.
Animation
This is accomplished with different images, as many as will fit in each SPU. Despite some claims otherwise, the subpicture stream can be rendered at the full frame rate of the video. What limits subpictures is not the rendering ability of DVD players, but the bitrates and the authoring programs. Subpicture bitrate is limited to 3.36 Mbps, so the animation most likely will not be full screen. And, of course, the overall bitrate for all streams excluding DSI must not exceed 10.08 Mbps. Authoring programs, including DVDMaestro and Scenarist, are not able to pack multiple images into one SPU, making animation difficult without the aid of external programs.
The DVD which accompanies "DVD Demystified" 2nd edition has an excellent example of subpicture animation (as well as all the other effects). 
  FSTA_DSP This command starts a forced display. This will display the subpicture if subpictures are enabled, it will not display them under all conditions. This is used for menus, button-over-video features, and even subtitles when the speakers are using no earthly language.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值