0%

前言

本文是对新文学运动以后兴起的现代话剧所使用的剧本(及西方话剧剧本之译本)在印刷时使用的排版实作方式的总结。

本文主要总结自下述具有代表性的剧本作品(及译作):

  • 《雷雨》,曹禺 著,《文學叢刊》(巴金)第一集,1939年 文化生活出版社 第14版
  • 《威尼斯商人》,莎士比亚 著,梁实秋 译,《新中學文庫》,1937年 商務印書館 第3版
  • 《莎士比亞戲劇全集 第一輯》,朱生豪 译,1948年 世界書局 再版
  • 《白毛女》,延安鲁迅文艺学院 集体创作,《中國人民文藝叢書》,1952年 人民文學出版社
  • 《茶館》,老舍 著,1957年7月《收穫》杂志创刊号
  • 《革命现代京剧 智取威虎山》一九六九年十月演出本,上海京剧团《智取威虎山》剧组 集体改编,1970年 人民出版社 第5版

范式实作标准总结

  1. 正文分作左右(直排为上下)二列,左为念述台词的角色名,右为台词本文及动作说明。二列间隔一汉字宽。
  2. 角色名与台词本文的开始行对齐,可用略写;一般地,少字的角色名在第一列遵循两侧对齐。有时人名后会续加一冒号,这时冒号应排版在二列间隔中。
  3. 台词本文中夹有动作或感情描述时以圆括号括起,并多换用仿宋排印。
  4. 台词本文间夹有动作或场景描述等内容时额外缩进两汉字宽,并在第一行前凸排一前导括号。这一前导括号可以是任意括号,但多为前方括号。
    此外,这类内容多换用仿宋或小字号排印。
  5. 台词本文间存在唱段的,一般新起一行写一「唱」字,后随括起的曲名或调式,随后另行排印唱词且额外缩进二汉字宽。少见有将此字换作仿宋排印,以圆括号括起之例。

在雅虎上拍下一台前面板重伤生死不明的PS vita Devkit(开发套件,通称「开发机」),如何才能让它恢复工作呢?

硬件维修

PS vita的Devkit与零售机型(PCH-1000型)共享前后面板、电容按键及摇杆模块,但内部PCB及塑料壳体与零售机完全不同。好在这台机器的外观并无太大损伤,只有几处擦伤;但是它的显示屏已经完全碎裂,无法使用。好在更换了完整的前面板总成之后成功显示。

Devkit与零售机型的硬件差异

外围接口

与零售机型相比,Devkit增加了HDMI输出接口,用于调试的USB Mini-B接口,及代替电池的DC4017供电接口(5V2A)。

  • 虽然该供电接口与PSP通用,但使用库存的国产PSP转USB供电线极易出现因内阻或接触等原因触发断电保护的现象,请购买高质量DC4017转接线或使用PSTV的电源适配器供电。

内部硬件

Devkit存在独立的调试用PCB,编号为GCP-00x。用于调试的USB mini-B接口即从该板引出。
该PCB上存在一颗实时时钟芯片及用于断电运行的RC2032电池,用于处理与Devkit激活相关的时间戳信息。
更多技术细节可见与 https://wiki.henkaku.xyz/vita/Grover

  • 如果电池没电了或者象我一样手残换了电池就有可能触发「伪激活」状态……见下文。

此外,主板和按键板也为了适配调试板等变化而做了相应布局变化,并使用了与零售版不同的电源管理芯片。

软件配置

Devkit需要配合SCE的PS vita SDK才能正常工作……不过这个SDK曾经泄漏过一份。

将Devkit连接到PC

将Devkit链接到电脑上需要安装SCE PS vita SDK中的Devkit Target软件,至少需要安装:

  • Neighborhood-3_60_1_11.msi
  • TMServer-3_60_0_2.msi
  • USBDriver-Win64-1_80_0_70253.msi

然后就可以用USB mini-B线将调试接口连接到电脑上了。不出意外的话,打开桌面上的「Neighborhood for PlayStation(R)Vita」就能看到你的设备了。

重新激活

  1. 用Neighborhood安装3.60 DEX系统固件
    1. 将Devkit连接到电脑。
    2. 在Neighborhood中右键你的设备,选择「System update…」
    3. 选择3.60 DEX固件,然后等待设备重启。
  2. 安装用于Devkit的henkaku-dex
    1. 通过PS vita浏览器访问 http://vitatricks.xyz/henkek/
    2. 点击「Hack my ACTIVATED kit!」,然后等待。如果失败请参照HENkaku的说明。
    3. 如果molecularShell气泡未显示,请参见第三步。
  3. 安装vitashell
    1. 下载Final h-encore v1.93并解压
    2. Final h-encore v1.91下载「app_VitaShell-2.0.zip」放在上一步解压的目录中
    3. 启动FinalHE.exe并安装PSV USB驱动
    4. 将devkit用multi-USB线(即PCH-1000专用接口)连接到电脑。
    5. 连接完成后点击右侧的小箭头并勾选vitashell,随后按照说明操作。(不要在devkit上安装h-encore,它不起作用。)
  4. 安装Testkit Devkit Activator Vita并启动。

「伪激活」状态?

当我把调试板上的2032更换之后就出现了这种现象。表现为激活到期时间无法显示,Neighborhood中显示的到期时间远远超过90日的上限。「Testkit Devkit Activator Vita」工具也没法在这种情况下正常运行。直到数次Neighborhood执行self报错「API error The DevKit requires activation. For information about activating a DevKit」后重启数次方能正常工作。

安装Debugger(调试器)

Devkit最大的用处就是Debugger啦!但是PS vita的Debugger捆绑为Visual Studio插件,这件事就不是很美好了……

这个插件仅适配于VS2012/2013/2015。(虽然已知的最新版支持2017,但是在我安装VS2017之后它的安装器就故障了,所以还得是2015)

VS的兼容性问题

VS2012/2013/2015使用.NET 3.5版本框架,该框架在本机字体列表中出现过长的字体名时会报错,与TTC字体名冲突。如注册表中有过长的TTC字体名时需要删除才能正常启动VS及其安装程序。

不完整的离线安装包?

微软已经停止了对VS2015的支持,因此在线安装程序很难再下载到对应的安装包。

但是VS2015有两种Size的离线安装包:大部分网站上能下到的只有小于4GiB的ISO镜像,而这种镜像仍需要在线下载一部分安装程序,因此会大量报错;只有另一种大于7GiB的ISO才能完全离线安装。这波真的M$全责!

版本注意

此Debugger无法安装在VS的Standard/Express/Community版本中;同时它依赖于VS的VC++组件,因此在安装的时候需要自定义安装此部分。

接下来呢?

下一步的目标是让零售软件在Devkit上运行:虽然NNP/Mai转储可以工作,但是似乎不能进行调试。
此外还要尝试一下重做被人为毁掉序列号的标签……

1
暂时没翻完。转天会补上的……

日本唱片协会标准
RIS 204-2021
音频CD标识内容及标识方法

  • 本文为《日本レコード協会規格 RIS 204-2021 オーディオCDの表示事項及び表示方法》的非官方中文翻译版。原始链接:https://www.riaj.or.jp/f/pdf/issue/ris/ris204.pdf
  • 下述的法律法规及权利义务均以日本现行法律为准,未作中文本地化。
  • 下述的「国内」及「海外」均遵从原文以日本为基准。

1、范围和目的

本标准规定了按照国际标准IEC 60908生产的普通市售音频用激光唱片(下简称音频CD)的标识内容及标识方法。

2、规范性引用文件

本标准引用的标准如下所示。所有文件的最新版本适用于本文件。

  • IEC 60908 Audio recording - Compact disc digital audio system(音频录制——激光唱片数字音频系统)
    • IDT. GB/T 17576 CD数字音频系统
  • JIS X 0507 バーコードシンボル-EAN/UPC-基本仕様(条码符号——EAN/UPC——基本规格)
    • IDT. ISO/IEC 15420 Information technology — Automatic identification and data capture techniques — Bar code symbology specification — EAN/UPC(信息技术——自动识别和数据采集技术——条码符号技术规范——EAN/UPC)
      • NEQ. GB 12904 商品条码 零售商品编码与条码表示
  • JIS X 0510 二次元バーコードシンボル-QR コード-基本仕様(二维条码符号——QR码——基本规格)
    • IDT. ISO/IEC 18004 Information technology — Automatic identification and data capture techniques — QR Code bar code symbology specification(信息技术——自动识别和数据采集技术——QR码条码符号技术规范)
      • NEQ. GB/T 18284 快速响应矩阵码
  • RIS 203 コンパクトディスク用附属品(用于激光唱片的附件)
  • RIS 502 レコード商品番号体系(唱片类商品编号体系)
  • 容器包装識別表示ガイドライン(容器包装识别标识指南)

3、标识事项及内容

音频CD应标识的基本项目及内容如下。
1)Compact Disc LOGO
基于CD生产·销售许可协议的,用于音频CD的LOGO。
2)8厘米CD标记
用于8厘米音频CD的业界统一标记。
3)厂牌标记
发售该音频CD的唱片公司所持有·管理的商标,基于母带合同等使用的商标·标记等的总称。
4)收录内容
专辑标题、音轨标题、作者名(作词、作曲者名等)及表演者名(歌手,演奏者,指挥者)等,与该音频CD收录的作品内容的相关信息的总称。
5)音轨编号(TNO)
用于识别音频CD所收录的音轨的编号。
6)录音方式或其缩写
该音频CD使用的音源的录音方式之名称或缩写。用于标识是单声道还是立体声录音,是模拟录音还是数字录音。
此处的缩写指将单声道录音略写作「モノ」或「MONO」,将立体声录音略写作「ステレオ」或「STEREO」,或基于IEC标准的符号标识。
7)录音使用许可标识
明确标识出该音频CD中所收录的音乐作品已获得了权利持有者的许可。
8)℗/©标识
(1)标识关于该音频CD的唱片制作者的权利,是根据《罗马公约》(2)及《唱片公约》(3)的规定而受其保护的必要条件。另外,©(4)标识关于该音频CD及歌词卡等内容的著作权,是根据《世界版权公约》的规定而受其保护的必要条件。
注: (1) Phonogram的略写。
   (2) 保护表演者、唱片制作者和广播组织罗马公约
   (3) 保护录音制品制作者防止未经许可复制其录音制品公约
   (4) Copyright的略写。
9)发行日期
该音频CD的初次发行日期。
10)Ⓛ/Ⓨ标识
识别该音频CD属于「邦盤(本土盘)」还是「洋盤(输入盘)」。「邦盤」与「洋盤」的区分与音乐的邦楽(本土乐,或指J-POP)与洋楽(西洋乐)无关,收录的作品音源为国内母带时即称「邦盤」,为海外母带时称为「洋盤」。
11)禁止租赁标识
明确标识发行该音频CD的唱片公司根据租赁权禁止租赁的商品。(音频CD等商用唱片在发售后一年内受租赁权(许可权)保护;直至其所有收录母带的保护期满为止,均作为报酬请求权的对象受到保护)
12)禁止擅自租赁·复制·传播标识
标识为维护唱片公司及相关权利人的权利,根据租赁权、复制权及传播权、禁止非法租赁·复制·传播。
13)原产国标识
标识该音频CD的制造国名称。基于「景品表示法」中关于商品原产国的不正当标识(告示)有关内容及应用标准。
14)商品编号(品番)
基于RIS 502的商品分类用记号·编号(一般称作「品番」)。
15)JAN编码
基于JAN编码(日本商品编码)体系的,用于POS系统的条形码。
16)价格
发行该音频CD的唱片公司标识的零售价格。
17)转售价格适用期限(再販価格適用期限)
标识基于限时转售制度的转售价格的适用期限(年月日)。
18)发行公司名或略写
发行该音频CD的唱片公司的名称或其略写。
19)制造公司名或略写
制造该音频CD的公司的名称或其略写。
20)注意事项
防止因消费者无意在使用·保存时可能发生的事故的标识。分为「使用时的注意事项(取扱上の注意事項)」和「保管时的注意事项(保管上の注意事項)」。
21)录音相关事项
为了防止消费者产生误解·误认而标识的有关录音的标识事项。
22)容器包装识别标识
外包装薄膜等具有回收义务的容器包装的标识。

4、标识方法

标识方法原则上如下所述。
1)Compact Disc LOGO
2)8厘米CD标记
3)厂牌标记
4)收录内容
5)音轨编号(TNO)
6)录音方式或其缩写
7)录音使用许可标识
8)℗/©标识
9)发行日期
10)Ⓛ/Ⓨ标识
11)禁止租赁标识
12)禁止擅自租赁·复制·传播标识
13)原产国标识
14)商品编号(品番)
15)JAN编码
16)价格
17)转售价格适用期限(再販価格適用期限)
18)发行公司名或略写
19)制造公司名或略写
20)注意事项
21)录音相关事项
22)容器包装识别标识

5、标识位置

标识位置原则上如表1~4所示。
本标准中对附件的称呼方式如RIS 203所定义。

  • 见附录B。

附录A、《〈音频CD标识内容及标识方法〉解说》节译

  • 本文为《RIS 204-2021 オーディオCDの表示事項及び表示方法 解説》的非官方中文节译/转译版。原文附于原标准后。
  • 此处仅节译/转述了部分对原标准进行补充的内容及部分有关激光唱片标识内容史的内容。

2、标准运用时的需注意点
2.1、适用范围(原文第一段)
本标准针对基于IEC 60908生产的音频CD,但除海外制造的输入盘外,亦希望能参考此规范妥善处理CD+G、VCD、CD-ROM、CD-i等其他形式的CD。
2.3、标识的方法(原文第四段)
16)价格
最初引入消费税时,企业协商的结果为同时标识「含税定价」及「不含税价格(本体价格)」。
2001年3月,唱片转售制度决定暂时保留时,「转售价格适用期限」改为标识于接近定价的位置。
2013年10月1日,「消費税転嫁対策特別措置法」实施后,作为「総額表示義務」的特例可以仅标识不含税价格。
2021年4月1日,「消費税転嫁対策特別措置法」失效后,必须表示包含消费税额的总额,遂改为现行表记法。
2.4 标识的位置

附录B、RIS 203-1999《用于激光唱片的附件》第三章「术语定义」

  • 本文为《日本レコード協会規格 RIS 203-1999 コンパクトディスク用附属品》的非官方中文等效节译。原始链接:https://www.riaj.or.jp/f/pdf/issue/ris/ris203.pdf
  • 本文10~12节所述的「封套托盘(トレイジャケット)」形式等效于用于8cm光盘的Digipack包装,不常见。

1)P Case(Pケース)
收纳12厘米CD的塑料合的总称。亦称单盒。
2)Jawel Case(トレイジャケット、单碟盒、宝石盒、珍宝盒、CD盒)
能够收纳一张12厘米CD的P Case。由前盖,托盘和底盘构成。
3)Multi Case(マルチケース、多碟盒、多CD盒)
能够收纳2~4张12厘米CD的P Case。由两个底盘,托盘及中间盘组成。分为可容纳2张光盘的2D型,可容纳3张光盘的3D型,及可容纳4张光盘的4D型。

  • 实作上,2D型Multi Case一般采用Jawel Case尺寸,由前盖,中间盘和底盘组成。附件尺寸亦与Jawel Case相当。
  • 实作上,3D型和4D型(以及更大的Case)均为「前盖-中间盘-(托盘)-底盘」配置。

4)Maxi Case(マキシケース、单曲盒)
能够收纳一张12厘米CD的薄型P Case。由前盖和底盘构成。
5)表卡(表カード)、亦称封面(フロントカバー、Front Cover)
Jawel Case和Maxi Case前盖侧可插入的1张(2页)或折叠卡片。或于Multi Case的表面侧底盘上装入的卡片。
6)背卡(裏カード)、亦称封底(バックカバー、Back Cover)
装于Jawel Case和Multi Case底盘上的,带有侧翼的卡片。
7)小册子(ブックレット、Booklet,BK)
于Jawel Case和Maxi Case内侧,或于Multi Case中插入的册子型印刷品。
8)折叠卡(折り込みカード、折叠式BK)
在表卡、小册子或8厘米CD的封套托盘内,以折叠状态夹入的印有歌词,解说等内容的卡片。
9)Cap P(キャップ P)、亦称侧封(帯、或译作「侧带」)。
于Case侧面装有的,向两侧弯折的,印有标题等内容的卡型印刷品。
10)封套托盘(トレイジャケット)
由封套卡及8cm托盘组成的8厘米CD用包装。
11)封套卡(ジャケットカード)
正面印有照片和标题等,贴有8cm托盘的厚卡片。
12)8cm托盘(8センチトレイ)
用于收纳8厘米CD的,贴在封套卡内部的塑料容器。另外,支持收纳折叠卡的托盘称为迷你托盘(ミニトレイ)。

游戏资料

Nintendo Switch版《Steins;Gate Elite》初回特典。为Famicom ROM+FC模拟器形式。

从美版游戏中剥离的ROM可在互联网档案馆下载。

※该ROM使用的NES 2.0标头中记录了多余数据。

基础参数

Mapper:4(MMC3)

PRG ROM:512KB

CHR ROM:256KB

PRG RAM:8KB

电池记录:无

显示方式

全程使用水平镜像。主要内容排布在名称表0上,对话框文本排布在名称表1上。

CG以精灵+背景复用方式显示。对话框文本在 $6274 == #01 时启用显示在CG下方。

当CG渲染完成后Bank R0 & R1进行切换($6245)以渲染对话框(#46)或LOGO(#E6)。

对话框文字一次写入一个字符(及浊点),讲述人随外框一同写入PPU。

例程分析

待续。写了好多张纸懒得录入……

本文最初完成于2021/07/15,原使用MediaWiki语言写就。

本文记录对CRI Sofdec格式的数据流之结构的分析结果。

除不明数据段之外的所有结构已分析完成。

CRI Sofdec简述

CRI Sofdec格式为CRI Middleware公司开发的视频中间件格式,典型扩展名为SFD。当前CRI Middleware已停止支持该格式。

该格式的数据结构为一种MPEG-1系统层(定义于ISO/IEC 11172-1)的变体。其中至少有一路MPEG-1/2视频流,可能有至少一路SFA(CRI ADX的一种变体)/AIX流,在有SFA流的同时可能有至少一路AC-3流。

CRI Sofdec结构

CRI Sofdec数据流(下简称SFD)内部有多个符合ISO/IEC 11172-1的2.4.3.2节定义的包。每个包的大小均为0x800。

其中,第00-03个包标示了SFD的各种信息,之后的包为经多路复用的音视频流。

以下所提到的各涉及原始MPEG-1结构的数据字段名均由ISO/IEC 11172所定义。

信息包组

信息包组即指SFD内部的第00-03个包(较旧版本的SFD可能缺少第03个包)。

下面列出这些包的结构。

第00个包(音频流声明包)(若无音频流,则该包不存在)

偏址 信息
0x0000 包头
1
2
3
pack_start_code = default ('00 00 01 BA'[hex])
system_clock_refence = [default]
mux_rate = default
偏址 信息
0x000C 系统头
1
2
3
4
5
6
7
8
9
10
11
12
13
system_header_start_code = default ('00 00 01 BB'[hex])
header_length = [default]
rate_bound = [mux_rate]
audio_bound = [default]
flxed_flag = '1'
CSPS_flag = '0'
system_audio_lock_flag = '0'
system_video_lock_flag = '0'
video_bound = '0 0000'
reserved_byte = default ('1111 1111')
stream_id = [default]
STD_buffer_bound_scale = '0'
STD_buffer_size_bound = '0 0000 0000 0100'
偏址 信息
0x001B + 3 * audio_bound 分组头
1
2
3
4
5
packet_start_codec_prefix = default ('00 00 01'[hex])
stream_id = 'BE'[hex] (填充流)
packet_length = [default]
'0000 1111'
填充流数据(长度[packet_length])。全为 'FF'[hex] 。结束于0x07FF。

第01个包(视频流声明包)

偏址 信息
0x0000 包头
1
2
3
pack_start_code = default ('00 00 01 BA'[hex])
system_clock_refence = [default]
mux_rate = default
偏址 信息
0x000C 系统头
1
2
3
4
5
6
7
8
9
10
11
12
13
system_header_start_code = default ('00 00 01 BB'[hex])
header_length = [default]
rate_bound = [mux_rate]
audio_bound = '0000 00'
flxed_flag = '1'
CSPS_flag = '0'
system_audio_lock_flag = '0'
system_video_lock_flag = '0'
video_bound = [default]
reserved_byte = default ('1111 1111')
stream_id = [default]
STD_buffer_bound_scale = '1'
STD_buffer_size_bound = '0 0000 0010 1110'
偏址 信息
0x001B + 3 * video_bound 分组头
1
2
3
4
5
packet_start_codec_prefix = default ('00 00 01'[hex])
stream_id = 'BE'[hex] (填充流)
packet_length = [default]
'0000 1111'
填充流数据(长度[packet_length])。全为 'FF'[hex] 。结束于0x07FF。

第02个包(Sofdec信息包)[版本1]

偏址 信息
未声明 填充字段。全为'00'[hex]。
0x0000 包头(长度12)
1
2
3
pack_start_code = default ('00 00 01 BA'[hex])
system_clock_refence = [default]
mux_rate = default
偏址 信息
0x000C 分组头(长度6)
1
2
3
packet_start_codec_prefix = default ('00 00 01'[hex])
stream_id = 'BF'[hex] (private_stream_2, 私用流)
packet_length = [default] ( 典型值:'07 EE'[hex] )
偏址 信息
0x0020 流类型标记?长度24。恒定值。
1
2
'53 6F 66 64 65 63 53 74 72 65 61 6D 20 20 20 20 20 20 20 20 20 20 20 20'[hex]
= [SofdecStream ]
偏址 信息
0x0038 版本标记。长度8。
0x0040 SFD文件名及生成时间。
1
2
3
0x00:生成文件名。长度8。不足以空格('20'[hex])填充。
0x08:'2E 73 66 64'[hex] (".sfd")
0x0C:生成时间。长度12。YYYYMMDDhhmm。
偏址 信息
0x0060 多路复用器内部ID。长度32。示例:
1
2
3
4
'53 46 4D 20 56 65 72 2E 32 2E 32 35 20 32 30 30 34 2D 30 37 2D 32 31 20 43 52 49 2D 4D 57 20 20'[hex]
= [SFM Ver.2.25 2004-07-21 CRI-MW ]
'53 6F 66 64 65 63 20 43 52 41 46 54 2F 47 55 49 20 56 65 72 2E 31 2E 37 34 00 00 00 00 00 00 00'[hex]
= [Sofdec CRAFT/GUI Ver.1.74]
偏址 信息
0x0080 - 0x008F 不明数据段。
0x00B0 - 0x00CF 不明数据段。
0x0180 原始I/O记录。每长度64记述一条文件信息。
1
2
3
4
0x00:文件名。长度8。
0x08:后缀名。长度4。
0x0C:生成时间。长度12。YYYYMMDDhhmm。
0x18:不明数据段。

第02个包(Sofdec信息包)[版本2]

偏址 信息
未声明 填充字段。全为'00'[hex]。
0x0000 包头(长度12)
1
2
3
pack_start_code = default ('00 00 01 BA'[hex])
system_clock_refence = [default]
mux_rate = default
偏址 信息
0x000C 分组头(长度6)
1
2
3
packet_start_codec_prefix = default ('00 00 01'[hex])
stream_id = 'BF'[hex] (private_stream_2, 私用流)
packet_length = [default] ( 典型值:'07 EE'[hex] )
偏址 信息
0x0020 流类型标记?长度24。恒定值。
1
2
'53 6F 66 64 65 63 53 74 72 65 61 6D 32 20 20 20 20 20 20 20 20 20 20 20'[hex]
= [SofdecStream2 ]
偏址 信息
0x0038 版本标记。长度8。
0x0040 多路复用器内部ID。长度32。
其他部分 不明数据段。

第03个包(起始地址:0x00001800,源信息包(暂称))

可确认SFM 1.61版本即有此包。记述子流的一些参数?疑似供官方播放器使用。

多路复用流包组

多路复用流包即指SFD内部信息包组以后的所有包。

这些包的顺序可能是以分组头中 'decoding_time_stamp' 字段(若不存在,则为 'persentation_time_stamp' 字段)的升序排列。没有该字段的包和后一个包捆绑排列。

下面列出这些包的结构。

音频流子包结构

偏址 信息
0x0000 包头。
1
2
3
pack_start_code = default ('00 00 01 BA'[hex])
system_clock_refence = [default]
mux_rate = default
偏址 信息
0x000C 分组头。
1
2
3
4
5
6
7
8
packet_start_codec_prefix = default ('00 00 01'[hex])
stream_id = [default]
packet_length = [default] ( 典型值:'07 E7'[hex] )
'01'
STD_buffer_scale = 0
STD_buffer_size = '00000 00000100'
'0010'
presentation_time_stamp = default
偏址 信息
0x0019 包数据。结束于0x07F8。
0x07F9 补偿填充流(长度7)。'00 00 01 BE 00 01 0F'[hex]。

视频流子包结构

偏址 信息
0x0000 包头。
1
2
3
pack_start_code = default ('00 00 01 BA'[hex])
system_clock_refence = [default]
mux_rate = default
偏址 信息
0x000C 分组头。

当本组数据中第一个picture_head为 I/P图(帧)的head时:

1
2
3
4
5
6
7
8
9
10
packet_start_codec_prefix = default ('00 00 01'[hex])
stream_id = [default]
packet_length = [default] ( 典型值:'07 EE'[hex] )
'01'
STD_buffer_scale = 1
STD_buffer_size = '00000 00101110'
'0011'
presentation_time_stamp = default
'0001'
decoding_time_stamp = default

当本组数据中第一个picture_head为 B图(帧)的head时:

1
2
3
4
5
6
7
8
9
packet_start_codec_prefix = default ('00 00 01'[hex])
stream_id = [default] ( 典型值:'E0'[hex] )
packet_length = [default] ( 典型值:'07 EE'[hex] )
stuffing_byte ( '1111 1111' ) × 5
'01'
STD_buffer_scale = default ( '1', 对于视频流 )
STD_buffer_size = '00000 00101110'
'0010'
presentation_time_stamp = default

当本组中不存在picture_head时:

1
2
3
4
5
6
7
8
packet_start_codec_prefix = default ('00 00 01'[hex])
stream_id = [default] ( 典型值:'E0'[hex] )
packet_length = [default] ( 典型值:'07 EE'[hex] )
stuffing_byte ( '1111 1111' ) × 9
'01'
STD_buffer_scale = default ( '1', 对于视频流 )
STD_buffer_size = '00000 00101110'
'0000 1111'
偏址 信息
0x001E 包数据。结束于0x07FF。

对于每个子流的最后一个子包,在这个包的后部应当添加一个填充流分组以保持各包0x800对齐。

对于SFD的最后一个包,在这个包的后部应当添加一个以 '00 00 01 B9'[hex]
开始且其他位均为 'FF'[hex] 的,长度为0x800的数据块。

数据计算

system_clock_refence字段计算时,system_clock_frequency值应稍大于90000。

mux_rate/rate_bound字段的计算公式:1 + 0x40F38 * m1v数 + 0x471 * AC3数 + 所有SFA的basic_rate和。

其中,对于双声道SFA,其basic_rate = 1097 / 48000 * 采样率;对于采样率24000的单声道SFA,其basic_rate = 322。

音频流presentation_time_stamp字段的计算公式:该音频流包序号 * 该音频流时基。

对于AC3音频流,其时基为0xCA8;对于SFA音频流,其时基为322,560,000 / (采样率 * 声道数) 。

视频流decoding_time_stamp字段的计算公式:该包中第一个picture_head所指的图(帧)在整个视频流中的序号(位流顺序)* 该视频流时基。

视频流presentation_time_stamp字段的计算公式:该包中第一个picture_head所指的图(帧)在整个视频流中的序号(演播顺序)* 该视频流时基。

关于视频流中图(帧)的位流顺序与演播顺序的差异请参看 ISO/IEC 11172-2:1993 的D2.3节。

视频流的时基为 90000 / 该视频流的图速率(帧率)。

其他

SFA音频流与一般的ADX文件的差异:其空白填充段结束标志 ‘(c)CRI’ 在0x11A~0x11F处。

Sofdec格式文件中的AIX流一般以遵循 “Dobly Digital AIX” 的方式排布子流。

依据本文的Sofdec混流器实现已基本完成。

参考标准

ISO/IEC 11172-1:1993

GB/T 17191.1-1997 (idt ISO/IEC 11172-1:1993)

ISO/IEC 11172-1:1993/Cor.1:1996

ISO/IEC 11172-1:1993/Cor.2:1999

GB/T 17191.2-1997 (idt ISO/IEC 11172-2:1993)

建立了一个博客。

用来记录一些技术资料。

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment