@@ -3,9 +3,9 @@ JData: A general-purpose data annotation and interchange format
33
44- ** Copyright** : (C) Qianqian Fang (2011, 2015-2025) <q.fang at neu.edu>
55- ** License** : Apache License, Version 2.0
6- - ** Version** : V1 (Draft-3 )
6+ - ** Version** : V1 (Draft-4.preview )
77- ** URL** : https://neurojson.org/jdata/draft3
8- - ** Status** : Frozen on March 23, 2025. For future updates, please see the Development URL below
8+ - ** Status** : Under development
99- ** Development** : https://github.com/NeuroJSON/jdata
1010- ** Acknowledgment** : This project is supported by US National Institute of Health (NIH)
1111 grant [ U24-NS124027 (NeuroJSON)] ( https://neurojson.org )
@@ -238,16 +238,17 @@ separated by 0 or multiple permitted white spaces, namely
238238### Binary JData Storage Grammar
239239
240240The Binary JData (BJData) format used in this specification is based on
241- [ BJData Specification (Draft 3 )] ( https://neurojson.org/bjdata/draft3 ) ,
241+ [ BJData Specification (Draft 4 )] ( https://neurojson.org/bjdata/ ) ,
242242which is extended from the widely used [ UBJSON Specification (Draft 12)] ( https://ubjson.org ) ,
243243with the addition of the following features
244244
245- 1 . BJData supports 4 new data type markers: ` [u]: uint16 ` , ` [m]: uint32 ` , ` [M]: uint64 ` , ` [h]: float16 `
246- 2 . BJData uses little-Endian (LE) as the default numeric (integers and floating-point numbers) data byte order
245+ 1 . BJData supports 5 new data type markers: ` [u]: uint16 ` , ` [m]: uint32 ` , ` [M]: uint64 ` , ` [h]: float16 ` and ` [B]: byte `
246+ 2 . BJData allows extension of custom binary data types via the new Extended data type ` [E] `
247+ 3 . BJData uses little-Endian (LE) as the default numeric (integers and floating-point numbers) data byte order
247248as oppose to the big-Endinan (BE) byte order used by UBJSON
248- 3 . BJData uses the respective IEEE 754 binary form to store +/-Infinity and NaN instead
249+ 4 . BJData uses the respective IEEE 754 binary form to store +/-Infinity and NaN instead
249250of converting to [ Z]
250- 4 . optimized array container header was extended to support N-dimensional packed arrays by
251+ 5 . optimized array container header was extended to support N-dimensional packed arrays by
251252attaching a 1-D integer array construct following the ` # ` (count) marker, for example
252253
253254```
@@ -262,15 +263,17 @@ all non-negative numbers specifying the dimensions of the N-dimensional array.
262263` nz/ny/nz/ndim ` types must be one of the BJData integer types (` i,U,I,u,l,m,L,M ` ).
263264The binary data of the N-dimensional array is then serialized in the ** row-major** format
264265(similar to C, C++, Javascript or Python) order, or, in the ** column-major** format
265- as in MATLAB for FORTRAN if using the following BJData Draft-3 syntax
266+ as in MATLAB for FORTRAN if using the following BJData Draft-3 (or newer) syntax
266267
267268```
268269[[] [$] [type] [#] [[] [[] [$] [nx type] [#] [ndim type] [ndim] [nx ny nz ...] []] [nx*ny*nz*...*sizeof(type)]
269270```
271+ 6 . optimized container for packed object storage via structure-of-array (SOA) introduced
272+ in Draft-4.
270273
271274As a special note, all BJData/UBJSON integer and floating-point types must be
272275stored in the ** Little-Endian** format, according to
273- [ BJData Specification (Draft )] ( https://neurojson.org/bjdata/draft3 ) .
276+ [ BJData Specification (Draft-4 )] ( https://neurojson.org/bjdata/ ) .
274277
275278
276279Data Models
0 commit comments