120 likes | 249 Views
VideoTAG : Information Organization. John Ruble. Motivation / Goal. To create a standardized data structure that is: Easily used by the rest of the program Easily transferred to/from disk Efficient (fast, small). What must it do?. Store Metadata: Title Date
E N D
VideoTAG : Information Organization John Ruble
Motivation / Goal To create a standardized data structure that is: Easily used by the rest of the program Easily transferred to/from disk Efficient (fast, small)
What must it do? Store Metadata: Title Date Filename, length of associated video Number of “Annotation Events”
What must it do? Store “AnnotationEvents” Start, end times Title, Notes (text) Annotation (Microsoft.Ink) Selected Tags
What must it do? Operations on this data: Add/Set Retrieve Example: “the next event after time 0:32.07” Delete
What must it do? File I/O: Save the whole structure to disk Read from disk, reconstruct structure in memory
Previous/ Related Work Custom-designed file format (80 byte header followed by…): +Small, efficient on disk -Complex, difficult to maintain -Difficult to convert to/from data structure
Previous/ Related Work Database (SQL, …): +Very Powerful Queries -Complicated/Costly Implementation (run server with program?) -Portable file?
Challenges: Maintainable (simple) file format Speed at runtime
Approach: Microsoft’s Object Serialization Intended for web RPC stuff (SOAP,..) Very easy to convert to/from file Maintenance-Free
Approach: AnnotationEvent VideoTagFile AnnotationEvent • Metadata: • Title • Date • Filename • length of associated video • Number of AnnotationEvents Data Structure: AnnotationEvent … AnnotationEvent • Start time • End time • Title • Notes • Annotation (Ink) • Selected Tags
Questions: Runtime Speed Is O(n) good enough? (how many AnnotationEvents to expect?) If not, how to quickly grab first event >= time t? Remember last request, start there Other Questions?