DVD结构

21、数据结构设计与文件操作:从 DVD 跟踪程序到文件管理 本文深入解析了一个基于C语言的DVD跟踪程序的设计与实现,涵盖了数据结构(如链表)的应用以及文件操作的基础知识。文章还讨论了如何通过文件持久化存储链表数据,以解决程序退出后数据丢失的问题,并提供了详细的代码示例和流程图。此外,对代码中常见问题进行了分析并提出了改进建议,适合初学者学习数据结构与文件操作的相关知识。 阅读详情
 

DVD的结构 (1)

DVD上面的东西到底都是什么?VOB、IFO、BUP文件都是做什么用的?这里我们会详细讲解。

打开一张DVD光盘的时候你会看到至少两个目录:

22.08.2000 03:20 <DIR> AUDIO_TS
22.08.2000 05:53 <DIR> VIDEO_TS

AUDIO_TS 是用作DVDAudio的(目前我还没见过这种盘)而VIDEO_TS是用来存储电影数据的。可能还有其他一些给个人电脑使用的包含了dvd-rom特性的目录。

让我们看看VIDEO_TS目录:

22.08.2000 05:53 <DIR> .
22.08.2000 03:20 <DIR> ..
22.08.2000 05:23 12'288 VIDEO_TS.BUP
22.08.2000 05:23 12'288 VIDEO_TS.IFO
22.08.2000 05:23 333'824 VIDEO_TS.VOB
22.08.2000 05:23 59'392 VTS_01_0.BUP
22.08.2000 05:23 59'392 VTS_01_0.IFO
22.08.2000 05:23 8'192 VTS_01_0.VOB
22.08.2000 05:27 1'073'643'520 VTS_01_1.VOB
22.08.2000 05:31 1'073'631'232 VTS_01_2.VOB
22.08.2000 05:32 104'785'920 VTS_01_3.VOB
22.08.2000 05:32 88'064 VTS_02_0.BUP
22.08.2000 05:32 88'064 VTS_02_0.IFO
22.08.2000 05:32 59'379'712 VTS_02_0.VOB
22.08.2000 05:36 1'073'436'672 VTS_02_1.VOB
22.08.2000 05:40 1'073'549'312 VTS_02_2.VOB
22.08.2000 05:45 1'073'502'208 VTS_02_3.VOB
22.08.2000 05:49 1'073'371'136 VTS_02_4.VOB
22.08.2000 05:53 1'073'555'456 VTS_02_5.VOB
22.08.2000 05:57 810'952'704 VTS_02_6.VOB

你可以看到DVD上有三种文件: .VOB、 .IFO、 .BUP

VOBs - Video OBjects

VOB
文件包括数个混在一起的流:视频、音频和字幕。视频流是MPEG-2格式的,音频流可以是AC3、Linear PCM、Mpeg2多声道或者Mpeg1 layer2 双声道音频。AC3基本上是标准了,而MPEG-2多声道只能在很少的盘上看到。(one example is "Inthe line of fire, PAL edition") 虽然这种格式最初是作为2区(欧洲和日本)的标准格式设计的,但是最终还是放弃了这样的设计。PCM通常出现在音乐DVD和廉价制作的MP2上。PCM是高质量未压缩的音频格式,占据很大的空间。对于一个全长的,需要多语种的电影来说,它很不合适。AC3的比特率在192和448kbit/s之间。192kbit/s是给双声道用的,384-448kbit/s是给5.1环绕立体声用的。

VOB文件可以包含一个主要的视频流和数个多角度视频流,使你可以在观看的时候切换不同视角。这个功能通常是在回放时用来显示情节串联图板(storyboards)或者一些其他的附加功能。视频流的最大比特率是9.8mbit。视频流和音频流加在一起任何时刻都要小于10mbit/s。最多可以加入9个不同的音轨,使你可以在回放的时候切换(这个功能可以在制作DVD的时候屏蔽掉)。最多可以有32个字幕流。字幕是4色的位图,覆盖到视频流上,而不是直接编码到视频流内。

你可能注意到VOB ID和Cell(单元) ID。一个Cell是DVD上最小的单位。一张简单的DVD上可能只有一个章节但是大多数DVD都要复杂得多。如果你对Cell感兴趣我建议你学着使用Scenarist,这样你才能真正了解他们的工作方法。我不知道VOB ID是如何建立的,也不知道他们对应于什么结构,通常每一个单位都有他自己的VOB ID,比如说电影本身和电影预告。在多角度和多分支盘片中每个角度都有自己的VOB ID。

IFOs - InFOrmation

IFO
文件为播放器提供十分重要的导航信息。比如一个章节从什么地方开始,一个特定的音频流或者字幕流在什么地方,等等。这就是为什么我们只能用可以读取这种文件的Ripper软件来提取部分电影(比如说一个章节)。

vStrip可以做到这一点。我们来看看使用ifo处理的时候的输出。(命令举例:vStrip f:/video_ts/vts_02_1.vob -if:/video_ts/vts_02_0.ifo)

你可以看到这里有两个PGC(ProGram Chains,故事链)。PGC 0展示的是电影本身,而PGC 1是最开始的制片商Logo。这个结构可能非常复杂,不过很好理解。多角度电影有很多相同长度的PGC,而多分支电影有很多不同长度的PGC。为了选择正确的电影版本你需要选择正确的PGC。PGC是对应于你播放器里面显示的标题数字的。举个例子:Matrix - follow the white rabbit feature = 标题 6或者说PGC 5,因为pc内部是从0开始计数的。



最后一点,IFO文件是不加密的。

BUPs - BackUP

BUP文件是IFO的部分备份,也是不加密的。

仔细看看

我们现在已经了解了各种文件格式,让我们再看看实例:

22.08.2000 05:23 12'288 VIDEO_TS.BUP
22.08.2000 05:23 12'288 VIDEO_TS.IFO
22.08.2000 05:23 333'824 VIDEO_TS.VOB
22.08.2000 05:23 59'392 VTS_01_0.BUP
22.08.2000 05:23 59'392 VTS_01_0.IFO
22.08.2000 05:23 8'192 VTS_01_0.VOB
22.08.2000 05:27 1'073'643'520 VTS_01_1.VOB
22.08.2000 05:31 1'073'631'232 VTS_01_2.VOB
22.08.2000 05:32 104'785'920 VTS_01_3.VOB
22.08.2000 05:32 88'064 VTS_02_0.BUP
22.08.2000 05:32 88'064 VTS_02_0.IFO
22.08.2000 05:32 59'379'712 VTS_02_0.VOB
22.08.2000 05:36 1'073'436'672 VTS_02_1.VOB
22.08.2000 05:40 1'073'549'312 VTS_02_2.VOB
22.08.2000 05:45 1'073'502'208 VTS_02_3.VOB
22.08.2000 05:49 1'073'371'136 VTS_02_4.VOB
22.08.2000 05:53 1'073'555'456 VTS_02_5.VOB
22.08.2000 05:57 810'952'704 VTS_02_6.VOB

VIDEO_TS.*是最先播放的项目。这是在制作时被设定当一张盘被插进播放器时最先播放的东西。通常这些是版权声明,不过也会有一个选择菜单语言、电影预告之类的菜单。
video_ts.vob包含视频和音频,video_ts.ifo包含导航信息,video_ts.bup是video_ts.ifo的备份。

这里还有两个ifo文件: vts_01_0.ifo 和 vts_02_0.ifo。文件名中前两个数字表示标题数,很显然最多只能有99个标题(不存在以vts_00_开头的这类文件)。每个标题下最多可以有10个VOB文件,其中vts_xx_0.vob也就是第一个VOB文件包含那个标题的菜单。每个标题至少有两个VOB,一个是菜单另一个包括主要功能,还有一个IFO一个BUP。

我们的例子中标题1包含幕后花絮和菜单,标题2包含影片和菜单。

你可以看到,一个VOB文件最大是1GB。虽然这些文件必须小于或等于这个尺寸,
但的确是有一些比这个尺寸大,这种VOB文件是不能在电脑上播放的。

最后一个问题:如何在盘上确定主要影片的位置?最大的IFO文件提供了title的数量,接着你需要提取除了菜单VOB以外的所有的VOB文件(当然除非你想要菜单)。大部分Ripper(如果他们不处理IFO文件)都是以这个方法选择所要复制的主要影片和IFO的。

深入VOB文件

DVD视频内容被分为titles(影片或唱片)和分块的titles(章节或歌曲).Titles由cells构成,这些cells 被一个或多个的节目链(PGCs)连接起来。cell是dvd上最小的视频单元。有时一个cell相当于一个章节,但是这样的情况不常出现。Cells时常由VOB IDs组织在一起。例如华纳兄弟(Warner Brothers)电影中每一个layer都有一个VOB ID,对于多视角影片(例如在每一个分支点每一个视角都有自己的VOB ID,当这些视角重新汇集,再命名下一个VOB ID),对于无缝分支影片,影片中由不同回放选项控制的不同部分有不同的VOB ID。
 
 
30、自定义数据结构与文件操作:DVD 管理程序详解 本文详细解析了一个基于C语言的DVD管理程序,涵盖自定义数据结构(如单向链表)的设计与实现,并介绍了如何通过文件操作实现数据持久化。文章还对程序进行了改进,使其支持数据保存至文件、从文件读取数据的功能,并提供了流程图和常见错误分析,帮助读者深入理解数据结构与文件操作的应用。 阅读详情

相关推荐

DVD文件结构解析

DVD目录结构分析,VMG(Video Manager)和VTS Structure结构语法解析,以及DVD章节目录信息解析。 1. VMG(Video Manager) 1) VMGI , VMGM_VOBs 和 VMGI_BUP 各为一个文件,大小不超过1GB. 2) VMGI,VMGM_VOBs(若存在), VMGI_BUP 按序存放. 3) VMGI 和VMGI_BUP应不放在同一个ECC 块上. 4) VMGI 和VMGI_BUP 应完全相同.

【转载】vob格式转换成avi格式的影片和制作的方法

  vob格式转换成avi格式的影片和制作的方法:   打开DVD根目录,你可看到两个子目录:VIDEO_TS和AUDIO_TS。AUDIO_TS中并没有内容,DVD的所有内容都存放在VIDEO_TS目录之下。进入VIDEO_TS,这个目录下包含3种类型的文件:.vob文件、.ifo文件和.bup文件。.vob文件用来保存所有MPEG-2格式的音频和视频数据,这些数据不仅包...

weixin_33742618的博客 3862

video TS文件

一个TS流文件,用于播放TS的视频格式,播放TS

DVD光盘结构

DVD光盘结构     DVD(Digital Versatile Disk,数字多功能光碟,也称作Digital Video Disk,数字影像光碟),以其影院级的音像效果,支持多语音、多字幕、多视角及强大的交互功能,将视听享受带到非VCD所能比拟的层次。DVD采用MPEG2的高画质压缩算法,原版DVD的信号源是高达1000多线的电影原始拷贝转成的数字式Beatcam带,所以可以轻易达到520线的解析度。     而原版DVD影碟声音部分几乎全部

theartedly的博客 1万+

Labview执行adbshell操作

一、目录 1、实现思路 2、adbshell工具配置 3、Labview执行命令窗口 1、实现思路 使用Labview的优点: 1、可以配合电源系统或者调用其他接口工具实现更高程度的自动化测试; 2、直接执行Linux相关命令,编写相关执行顺序或者逻辑更简易; --------可以用adbpush命令将.sh的脚本文件推入控制器内部执行; 3、Ubuntu系统比较大,如果只是日常执行脚本测试还是比较占用磁盘空间; 2、adbshell工具配置 1)下载adbshell工具; adbshell工具下载链

zataji的博客 2053

拆解一个带主动均衡的BMS模块:从变压器、MOS管矩阵到控制逻辑,图文详解内部设计与成本构成

本文深度拆解了一款带主动均衡功能的BMS模块,详细解析了其核心架构、元器件选型与成本构成。通过高频变压器、MOS管矩阵等硬件设计,该模块实现了高达87%的能量转移效率,远超普通被动均衡方案。文章还揭示了汽车级PCB设计、软件策略优化等关键技术细节,为锂电池管理系统设计提供了实用参考。

weixin_42638178的博客 348

深入了解DVD光盘结构

<br /> <br />DVD(Digital Versatile Disk,数字多功能光碟,也称作Digital Video Disk,数字影像光碟),以其影院级的音像效果,支持多语音、多字幕、多视角及强大的交互功能,将视听享受带到非VCD所能比拟的层次。DVD采用MPEG2的高画质压缩算法,原版DVD的信号源是高达1000多线的电影原始拷贝转成的数字式Beatcam带,所以可以轻易达到520线的解析度。<br />而原版DVD影碟声音部分几乎全部采用5.1声道的数字环绕立体声方式(DOLBY DIGI

wang_390486690的专栏 2424

远程桌面项目

远程桌面项目

weixin_41560737的博客 1934

DVD光盘文件解析

DVD光盘文件解析转自:http://bbs.mov6.com/thread-17439-1-9.html说到DVD格式,一定很多用户都会说这有什么难的,DVD只不过就是把视频信息和音频信息放在不同的文件中。对,你说的没有错,不过说的不是很对,虽然DVD的音频和视频是分开播放的,但它们却存放在一个文件系统中。那么,DVD光盘中那么多文件到底是干什么用的,而DVD盘片里面到底存放了多少信息,以下

yangshu的专栏 3797

10. 重磅!Spring AI 1.0 正式发布,Java 开发者的 AI神器!

重磅!Spring AI 1.0 正式发布,Java 开发者的 AI神器! 全网最详细的Spring AI 文章,每章都会提供代码入口,让你更容易得入门和理解Spring AI 相关概念,直接节约你百分之六十的学习成本时间。

gorgor在码农 1066

基于深度学习的商品标签识别系统:UI界面 + YOLOv8/v7/v6/v5代码 + 训练数据集

基于YOLO系列模型的商品标签识别系统能够有效解决商品信息提取的自动化问题。通过合理的数据集准备、模型训练和UI设计,我们可以实现一个功能强大的商品标签识别系统。希望本文提供的内容能够为大家提供有价值的帮助。

YOLO 474

VOD学习之TS详解

1,有关机顶盒音视频性能的影响因素? 分层,1流媒体传输层,2流媒体编解码层,3解码器工作层。 流媒体传输层主要因素有:丢包,抖动。 丢包:会造成停顿,马赛克。抖动过大:会引起设备缓存上下溢,上溢会引起丢包,下溢使解码器停顿,因此在解码器开始解码之前需要设置好上下溢的百分比。其他因素有,当流媒体编码的速率抖动过大,视频服务器输出的码流抖动过大,网络传输丢包或抖动过大等等,都会使机顶盒收到的码

knight 5833

Yandex复杂还原验证码识别

本文分析了Yandex滑动验证码的识别方法,指出其通过JS判断正确滑动位置而非用户交互还原图像。核心思路是通过像素差异分析,将验证码图像重组后(分为3×3或4×4),计算相邻图像间的像素差异,最小值即为正确位置。与前期某象验证码识别方法类似,需结合图像增强技术统一像素直方图。文章强调该方法仅供学习参考,严禁用于违法行为。完整识别流程包括图像重组、像素差异计算等步骤,最终可准确定位正确拼图位置。

码王吴彦祖的博客 285

DVD 结构

DVD 基础知识 - DVD 的结构 DVD上都有些什么呢?DVD上面的东西到底都是什么?VOB、IFO、BUP文件都是做什么用的?这里我们会详细讲解。打开一张DVD光盘的时候你会看到至少两个目录:22.08.2000 03:20 <DIR> AUDIO_TS22.08.2000 05:53 <DIR> VIDEO_TSAUDIO_TS 是用作DVDAudio的(目前我还没

yangshu的专栏 2057

黑猫带你学UFS协议第13篇:UFS初始化详解(Boot Operation)

本文详细解析了UFS设备的初始化过程,包括部分初始化、加载启动代码(可选)和初始化完成三个阶段。重点介绍了如何通过设备描述符和逻辑单元描述符配置引导特性,以及如何从UFS设备加载启动代码。内容适用于嵌入式硬件和存储领域的开发者。

黑猫奥利奥的博客 3555

Z-Image Turbo随机性增强插件的下载教程及使用方法 z-image生成图像太相似怎么办 Z-Image Turbo 整合包下载

Z-Image Turbo 是出了名的“seed 不敏感”,非常难做多样化图像创作。ComfyUi-ConditioningNoiseInjection 插件通过在conditioning(提示词编码)阶段加入可控噪声,成功解决了 Turbo 随机性不足的问题。它不仅能让 Turbo 产生更丰富的构图差异,还能保持主题稳定,是目前我测试过最有效的 Turbo 随机性增强工具。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1984

简单理解DVD结构

DVD大体上分为DVD视频盘 和DVD音频盘。 目前我们常见的是DVD视频盘。 打开一张DVD盘的目录 我们会发现有以下2个目录 AUDIO_TS和VIDEO_TS2个。其中如果你的DVD盘是DVD视频盘的话那么AUDIO_TS目录为空 反之,如果你的盘是DVD音频盘则VIDEO_TS目录为空.. 我们主要来看看DVD视频盘的结构. 打开VID...

weixin_34275734的博客 316

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

笔记本 光驱 的内部结构及用法: 应急系统启动 (恢复) 光盘 (DVD+R/RW)

如果系统 (软件) 突然崩溃, 就需要从恢复 (盘) 启动. U 盘可以实现这个功能, 但是, U 盘容易丢 (至少对窝来说, 每次都找不到 U 盘在哪里).光盘因为比较大, 相对不容易丢 (狗头). 应急系统恢复 (安装) 光盘, 以及重要数据备份 (存储), 可能是目前光盘仅剩的为数不多的使用场景之一了.

穷人小水滴的博客 1123

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

光盘复制-DVD光盘复制格式剖析

一、引言 DVD是数字通用光盘(Digital Versatile Disc)的缩写。它集计算机技术、光学记录技术和影视技术等为一体,其目的是为了满足人们对大存储容量、高性能的存储媒体的需求,主要用于存储多媒体软件和影视节目。 DVD光盘的大容量特性为软件创作者提供了巨大的想象空间和施展才能的舞台,可以利用它开发出更加丰富多彩的节目。DVD光盘不仅已在民用音视频领域内得到了广泛应用,而且将会带动出

jonfei的专栏 1900

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

迷你项目练习题1DVD

题目 为某音像店开发一个迷你DVD管理器,实现DVD碟片的管理,包括如下功能:新增DVD、查看DVD、删除DVD、借出DVD、归还DVD。 设计: 1) DVD类(属性:id ,name ,lendCount ,lendDate ,status)(默认每张DVD都是唯一的) lendCount字段每借一次加1 2) DVDDB类(提供一个动态数组来保存多张DVD) 3) DVDManager类(提供操纵功能),添加DVD、查看DVD、删除DVD、借出DVD、归还DVD、DVD排行榜(按借出次数降序排序),

hypertext123的博客 343

DVD-Video 解谜 - IFO文件 - VMG specific tables

Tables specific to the Video Manager IFO TT_SRPT This table contains pointers to all the titles on the disk, and is indexed by VMG_TTN (ti

yangshu的专栏 2513

彻底了解DVD:从入门到精通(一)[转]

 彻底了解DVD:从入门到精通 -转自山楂树论坛白衣原创 第一章 缘起      那片直径120mm的小小的塑料片,闪耀着一种迷幻般的光泽。一束绚丽的激光照射在这小小的塑料圆片上,成千上万比特的数据流沿着一根细细的光纤从DVD影机输送到AV功率放大器,在那里,经过杜比逻辑解码器无声而神奇的工作,无边无际的光影弥漫开来,在客厅幽暗的灯光下,我们的灵魂仿佛在片刻间从世俗生活中抽离,进入一个由声画构成的...

weixin_33863087的博客 2171

开始DVD相关内容的翻译工作

    从事音视频方面的工作有3年多了,但是接触DVD方面的知识还是近一年的事。感觉DVD知识庞杂而且高深,很难精通。一直在外围徘徊而不得要领。最近发现一个国外的网站(www.mpucoder.com)不错,遗憾的是要付费的而且要美圆,所幸公司比较慷慨不断付费才使得本人一直可以在此网站了解DVD方面的知识。考虑到国内很多朋友也是渴望了解这方面知识但有没办法或不想付费,本人就想到了将其中比较好的文章

yangshu的专栏 1408

DVD光盘的分类和详细资料

关键词:DVD,DVD-ROM,DVD-R,DVD5,DVD9,DVD10,DVD18 [b]DVD+R是一种一次性写入并可永久读取的盘片[/b],是由所谓的7C(PHILIPS/ Sony/YAMAHA/Mitsubishi Chemical- Verbatim/Ricoh/hp/Thomson)所主导的盘片标准,定位于消费类电子产品及电脑储存用途。其与DVD+RW的最大区别就是不能重复写...

来杯咖啡,随便聊聊。 767

DVD-Video 解谜 - NAV pack - DSI packet

Offset Label size Content Sector Packet Table

yangshu的专栏 1757
上一篇: 在VC中用OLE DB读写SQL Server中的BLOB字段
下一篇: 常用网址
jonfei
博客等级 码龄25年 10粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值