{"id":60,"date":"2005-07-25T18:19:13","date_gmt":"2005-07-26T00:19:13","guid":{"rendered":"\/?p=60"},"modified":"2006-05-27T09:17:48","modified_gmt":"2006-05-27T16:17:48","slug":"more-nes-video-coding-ideas","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/","title":{"rendered":"More NES Video Coding Ideas"},"content":{"rendered":"<p><em>[a continuation of <a href=\"http:\/\/multimedia.cx\/eggs\/?p=59\">Custom NES Video Codec<\/a>]<\/em><\/p>\n<p>Data compression is all about analyzing the nominal characteristics of a particular type of data and understanding how that data can best be coded using the least amount of information. Let&#8217;s look at some of the characteristics of NES video:<\/p>\n<p><center><\/p>\n<table>\n<tr>\n<th colspan=\"2\">Fun NES Screenshots:<\/th>\n<\/tr>\n<tr>\n<td align=\"center\"><img decoding=\"async\" src=\"\/eggs\/images\/battleto-snap.gif\" alt=\"Battletoads Screenshot\" \/><\/td>\n<td align=\"center\"><img decoding=\"async\" src=\"\/eggs\/images\/blstmstr-snap-0002.gif\" alt=\"Blaster Master Screenshot\" \/><\/td>\n<\/tr>\n<tr>\n<td align=\"center\"><em>Battletoads<\/em><\/td>\n<td align=\"center\"><em>Blaster Master<\/em><\/td>\n<\/tr>\n<\/table>\n<p><\/center><\/p>\n<p><!--more--><\/p>\n<p><center><\/p>\n<table>\n<tr>\n<td align=\"center\"><img decoding=\"async\" src=\"\/eggs\/images\/guardian-snap-0002.gif\" alt=\"The Guardian Legend Screenshot\" \/><\/td>\n<td align=\"center\"><img decoding=\"async\" src=\"\/eggs\/images\/shadowga-snap-0002.gif\" alt=\"Shadowgate Screenshot\" \/><\/td>\n<\/tr>\n<tr>\n<td align=\"center\"><em>The Guardian Legend<\/em><\/td>\n<td align=\"center\"><em>Shadowgate<\/em><\/td>\n<\/tr>\n<\/table>\n<p><\/center><\/p>\n<p>The data is primarily composed of a background made up of 8&#215;8 tiles that is overlaid with a series of 8&#215;8 sprites (or 8&#215;16 sprites which are technically just 2 stacked 8&#215;8 tiles). The sprites may be moving over a background that stays in the same place from frame to frame. Or, the background might scroll horizontally, vertically, or both from frame to frame.<\/p>\n<p>To illustrate using the above screenshots as examples, <em>Shadowgate<\/em> is a game in which the entire frame does not change very often. There is no background scrolling. In <em>Blaster Master<\/em>, the background scrolls in every direction and the status is represented as sprites on the left side of the screen. <em>The Guardian Legend<\/em>, when it does scroll, only scrolls in either the vertical or horizontal directions but never both at one time. It also uses a split screen for a status area; only the top 3\/4 of the screen scrolls. <em>Battletoads<\/em> will be a severe aberration to any underlying assumptions that this codec makes. It achieves graphical effects that were considered very sophisticated on the NES. The screenshot above depicts a level in which there was a horizontally-split status screen and a vertical scrolling split.<\/p>\n<p>If it becomes necessary to encode a block losslessly, it should often be possible to encode in using 4 bits vs. 5 bits. There is a good probability that a given 8&#215;8 block will either be a background tile block or a sprite block. When this is the case, that block can only be rendered with one of the 16-color palettes. Thus, encode each pixel with only 4 bits (with an extra bit or two in front of the block to indicate encoding mode). It may be a little complicated to differentiate between a background\/sprite\/mixed block during encoding, though.<\/p>\n<p>The driving force behind this video coding brainstorm is that a particular frame either does not change very much from one frame to the next. Either that, or the frame essentially remains the same from one frame to the next while shifting (scrolling) some small number of pixels either horizontally, vertically, or both.<\/p>\n<p>Some games use trickier graphics such as split-screen status bars (like in the <em>Battletoads<\/em> and <em>The Guardian Legend<\/em> screenshots above). Some may have an inordinate amount of sprite action. So it may be useful to define a slice that is 8 pixels tall. When encoding each row, take into account the various directions it could have moved. Also, notice whether it has moved at all. Analyze current frame on a per-slice basis and figure out which ones have scrolled.<\/p>\n<p>This codec is meant to be lossless. Thus, it is not necessarily appropriate to compare it to a lossy, constrained bit-rate codec such as MPEG-4. Still, it would be interesting to see how such a codec stacks up against MPEG-4 (and, more recently, H.264), which is what the movies are encoded with. I wrote a little tool to analyze exactly how many bytes are being used to encode the video on various videos taken from the <a href=\"http:\/\/bisqwit.iki.fi\/nesvideos\/\">Time Attack<\/a> site. Here are some statistics (all stats assume 60 frames\/second):<\/p>\n<ul>\n<li>tmnt-timeattackv2-walkerboh.avi<br \/>\n  68550 video frames, 19m2s running time, 43812013 total video bytes<br \/>\n  38364 avg video bytes\/sec, 639 avg video bytes\/frame<br \/>\n  min video frame = 8 bytes, max video frame = 20927 bytes<\/li>\n<li>battletoads-timeattack-phil,genisto.avi<br \/>\n  73386 video frames, 20m23s running time, 133500622 total video bytes<br \/>\n  109158 avg video bytes\/sec, 1819 avg video bytes\/frame<br \/>\n  min video frame = 7 bytes, max video frame = 30814 bytes<\/li>\n<li>aboyblob-timeattack-sjoerd.avi<br \/>\n  25148 video frames, 6m59s running time, 13294322 total video bytes<br \/>\n  31728 avg video bytes\/sec, 528 avg video bytes\/frame<br \/>\n  min video frame = 0 bytes, max video frame = 34679 bytes<\/li>\n<li>shadowgate-timeattack-walkerboh.avi<br \/>\n  35539 video frames, 9m52s running time, 13651521 total video bytes<br \/>\n  23060 avg video bytes\/sec, 384 avg video bytes\/frame<br \/>\n  min video frame = 38 bytes, max video frame = 43470 bytes<\/li>\n<\/ul>\n<p>Hmm, I am not sure what to make of the minimum video frame size for Shadowgate. That&#8217;s one game where the frame does not change much. Then again, with these time attack videos, there is never a dull moment or frame (these folks are on a deadline!).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Further brainstorming on the matter of creating an efficient codec for encoding NES-type video&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,20],"tags":[],"class_list":["post-60","post","type-post","status-publish","format-standard","hentry","category-open-source-multimedia","category-pavc"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Further brainstorming on the matter of creating an efficient codec for encoding NES-type video...\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Multimedia Mike\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Breaking Eggs And Making Omelettes | Topics On Multimedia Technology and Reverse Engineering\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"More NES Video Coding Ideas | Breaking Eggs And Making Omelettes\" \/>\n\t\t<meta property=\"og:description\" content=\"Further brainstorming on the matter of creating an efficient codec for encoding NES-type video...\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2005-07-26T00:19:13+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2006-05-27T16:17:48+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"More NES Video Coding Ideas | Breaking Eggs And Making Omelettes\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Further brainstorming on the matter of creating an efficient codec for encoding NES-type video...\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/more-nes-video-coding-ideas\\\/#article\",\"name\":\"More NES Video Coding Ideas | Breaking Eggs And Making Omelettes\",\"headline\":\"More NES Video Coding Ideas\",\"author\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"\\\/eggs\\\/images\\\/battleto-snap.gif\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/more-nes-video-coding-ideas\\\/#articleImage\"},\"datePublished\":\"2005-07-25T18:19:13-07:00\",\"dateModified\":\"2006-05-27T09:17:48-07:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/more-nes-video-coding-ideas\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/more-nes-video-coding-ideas\\\/#webpage\"},\"articleSection\":\"Open Source Multimedia, PAVC\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/more-nes-video-coding-ideas\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/multimedia.cx\\\/eggs\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/open-source-multimedia\\\/#listItem\",\"name\":\"Open Source Multimedia\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/open-source-multimedia\\\/#listItem\",\"position\":2,\"name\":\"Open Source Multimedia\",\"item\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/open-source-multimedia\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/open-source-multimedia\\\/pavc\\\/#listItem\",\"name\":\"PAVC\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/open-source-multimedia\\\/pavc\\\/#listItem\",\"position\":3,\"name\":\"PAVC\",\"item\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/open-source-multimedia\\\/pavc\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/more-nes-video-coding-ideas\\\/#listItem\",\"name\":\"More NES Video Coding Ideas\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/open-source-multimedia\\\/#listItem\",\"name\":\"Open Source Multimedia\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/more-nes-video-coding-ideas\\\/#listItem\",\"position\":4,\"name\":\"More NES Video Coding Ideas\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/open-source-multimedia\\\/pavc\\\/#listItem\",\"name\":\"PAVC\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#organization\",\"name\":\"Breaking Eggs And Making Omelettes\",\"description\":\"Topics On Multimedia Technology and Reverse Engineering\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/\",\"name\":\"Multimedia Mike\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/more-nes-video-coding-ideas\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2eb93f7cada658f7986b5092062849fa255779eada3342c8f6b9a40764b95fdd?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Multimedia Mike\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/more-nes-video-coding-ideas\\\/#webpage\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/more-nes-video-coding-ideas\\\/\",\"name\":\"More NES Video Coding Ideas | Breaking Eggs And Making Omelettes\",\"description\":\"Further brainstorming on the matter of creating an efficient codec for encoding NES-type video...\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/more-nes-video-coding-ideas\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\"},\"datePublished\":\"2005-07-25T18:19:13-07:00\",\"dateModified\":\"2006-05-27T09:17:48-07:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#website\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/\",\"name\":\"Breaking Eggs And Making Omelettes\",\"description\":\"Topics On Multimedia Technology and Reverse Engineering\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"More NES Video Coding Ideas | Breaking Eggs And Making Omelettes","description":"Further brainstorming on the matter of creating an efficient codec for encoding NES-type video...","canonical_url":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/#article","name":"More NES Video Coding Ideas | Breaking Eggs And Making Omelettes","headline":"More NES Video Coding Ideas","author":{"@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author"},"publisher":{"@id":"https:\/\/multimedia.cx\/eggs\/#organization"},"image":{"@type":"ImageObject","url":"\/eggs\/images\/battleto-snap.gif","@id":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/#articleImage"},"datePublished":"2005-07-25T18:19:13-07:00","dateModified":"2006-05-27T09:17:48-07:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/#webpage"},"isPartOf":{"@id":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/#webpage"},"articleSection":"Open Source Multimedia, PAVC"},{"@type":"BreadcrumbList","@id":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs#listItem","position":1,"name":"Home","item":"https:\/\/multimedia.cx\/eggs","nextItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/open-source-multimedia\/#listItem","name":"Open Source Multimedia"}},{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/open-source-multimedia\/#listItem","position":2,"name":"Open Source Multimedia","item":"https:\/\/multimedia.cx\/eggs\/category\/open-source-multimedia\/","nextItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/open-source-multimedia\/pavc\/#listItem","name":"PAVC"},"previousItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/open-source-multimedia\/pavc\/#listItem","position":3,"name":"PAVC","item":"https:\/\/multimedia.cx\/eggs\/category\/open-source-multimedia\/pavc\/","nextItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/#listItem","name":"More NES Video Coding Ideas"},"previousItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/open-source-multimedia\/#listItem","name":"Open Source Multimedia"}},{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/#listItem","position":4,"name":"More NES Video Coding Ideas","previousItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/open-source-multimedia\/pavc\/#listItem","name":"PAVC"}}]},{"@type":"Organization","@id":"https:\/\/multimedia.cx\/eggs\/#organization","name":"Breaking Eggs And Making Omelettes","description":"Topics On Multimedia Technology and Reverse Engineering","url":"https:\/\/multimedia.cx\/eggs\/"},{"@type":"Person","@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author","url":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/","name":"Multimedia Mike","image":{"@type":"ImageObject","@id":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/2eb93f7cada658f7986b5092062849fa255779eada3342c8f6b9a40764b95fdd?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Multimedia Mike"}},{"@type":"WebPage","@id":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/#webpage","url":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/","name":"More NES Video Coding Ideas | Breaking Eggs And Making Omelettes","description":"Further brainstorming on the matter of creating an efficient codec for encoding NES-type video...","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/multimedia.cx\/eggs\/#website"},"breadcrumb":{"@id":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/#breadcrumblist"},"author":{"@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author"},"creator":{"@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author"},"datePublished":"2005-07-25T18:19:13-07:00","dateModified":"2006-05-27T09:17:48-07:00"},{"@type":"WebSite","@id":"https:\/\/multimedia.cx\/eggs\/#website","url":"https:\/\/multimedia.cx\/eggs\/","name":"Breaking Eggs And Making Omelettes","description":"Topics On Multimedia Technology and Reverse Engineering","inLanguage":"en-US","publisher":{"@id":"https:\/\/multimedia.cx\/eggs\/#organization"}}]},"og:locale":"en_US","og:site_name":"Breaking Eggs And Making Omelettes | Topics On Multimedia Technology and Reverse Engineering","og:type":"article","og:title":"More NES Video Coding Ideas | Breaking Eggs And Making Omelettes","og:description":"Further brainstorming on the matter of creating an efficient codec for encoding NES-type video...","og:url":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/","article:published_time":"2005-07-26T00:19:13+00:00","article:modified_time":"2006-05-27T16:17:48+00:00","twitter:card":"summary","twitter:title":"More NES Video Coding Ideas | Breaking Eggs And Making Omelettes","twitter:description":"Further brainstorming on the matter of creating an efficient codec for encoding NES-type video..."},"aioseo_meta_data":{"post_id":"60","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-31 21:43:32","updated":"2025-12-31 18:13:41","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/multimedia.cx\/eggs\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/multimedia.cx\/eggs\/category\/open-source-multimedia\/\" title=\"Open Source Multimedia\">Open Source Multimedia<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/multimedia.cx\/eggs\/category\/open-source-multimedia\/pavc\/\" title=\"PAVC\">PAVC<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tMore NES Video Coding Ideas\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/multimedia.cx\/eggs"},{"label":"Open Source Multimedia","link":"https:\/\/multimedia.cx\/eggs\/category\/open-source-multimedia\/"},{"label":"PAVC","link":"https:\/\/multimedia.cx\/eggs\/category\/open-source-multimedia\/pavc\/"},{"label":"More NES Video Coding Ideas","link":"https:\/\/multimedia.cx\/eggs\/more-nes-video-coding-ideas\/"}],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/60","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/comments?post=60"}],"version-history":[{"count":0,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/60\/revisions"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=60"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=60"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=60"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}